Ответы:
Этот скрипт переключит статус и покажет сообщение для подтверждения того, что было сделано.
#!/bin/bash
if [ $(rfkill list wifi | grep "Soft blocked: yes" | wc -l) -gt 0 ] ; then
rfkill unblock wifi
zenity --info --text "Enabled wireless"
else
rfkill block wifi
zenity --info --text "Disabled wireless"
fi
Чтобы приглашения zenity исчезли, измените их следующим образом:
zenity --info --text "Enabled wireless" --timeout="5"
zenity --info --text "Disabled wireless" --timeout="5"
Или сделайте уведомления, которые появляются в углу вашего экрана.
sudo apt-get install libnotify-bin
Заменить линии zenity на
notify-send -i network-wireless-full "Wireless enabled" "Your wireless adaptor has been enabled."
notify-send -i network-wireless-disconnected "Wireless disabled" "Your wireless adaptor has been disabled."
--timeout="n"
вариант для zenity.
Некоторое время я искал решение для себя и использовал множество советов и хитростей для всех. Я наконец нашел решение, которое работает для меня, и решил создать новичок. Имейте в виду, это также для тех, кто менее способен программировать в Linux, чем многие из вас, как я;
Нажмите на значок запуска на верхней левой выдвижной панели (Dash Home), введите «gedit» и нажмите ввод.
Теперь вы собираетесь создать скрипт, который будет переключать Wi-Fi;
Я использовал ярлык сетевого менеджера; nmcli nm wifi, чтобы определить состояние wifi, а также управлять им. Я использовал скрипт уведомлений, приведенный в примере выше, для отображения состояния Wi-Fi. Вот мой сценарий;
#!/bin/bash
if [ $(nmcli nm wifi | grep "disabled" | wc -l) -eq 1 ] ; then
nmcli nm wifi on
notify-send -i network-wireless-full "Wireless enabled" "Your wireless adaptor has been enabled."
else
nmcli nm wifi off
notify-send -i network-wireless-disconnected "Wireless disabled" "Your wireless adaptor has been disabled."
fi
Скопируйте и вставьте это в редактор, который вы только что открыли, и сохраните его как любое имя файла, которое вы считаете подходящим (мое было wifitoggle).
Следующим шагом было сделать файл исполняемым (в Домашней папке; щелкните правой кнопкой мыши по файлу, свойствам, вкладке разрешений, отметьте «Запускать как исполняемый файл»).
Затем поместите копию в каталог файловой системы / usr / bin (откройте терминал, введите sudo nautilus. Перейдите к Файловой системе, затем usr, затем откройте bin. Вставьте y).
Наконец, перейдите в Настройки системы -> Клавиатура -> вкладка Ярлыки; нажмите маленькую кнопку + внизу, введите имя для вашего переключателя и введите имя файла для сценария, который вы дали (в моем случае wifitoggle). Нажмите «Применить», нажмите «набранный» текст справа от него и нажмите горячие клавиши. СДЕЛАНО!
Да, вы можете с помощью cnetworkmanager . Он находится в репозитории, поэтому установите его и создайте панель запуска с командой, cnetworkmanager --wifi=no
если вы хотите отключить беспроводную связь, и команду, cnetworkmanager --wifi=yes
если вы хотите включить беспроводную связь.
Что-то вроде: sudo ifconfig <wlan0> down
или sudo ifconfig <wlan0> up
?
Вот мой сценарий:
#!/bin/bash
echo "Checking wireless iface status...."
if iwconfig wlan0 | grep Quality
then
echo "Wi/Fi is being disabled...."
if rfkill block wifi
then
echo "Wi/Fi is now OFF!"
fi
else
echo "Wi/Fi is being enabled...."
if rfkill unblock wifi
then
echo "Wi/Fi is now ON!"
fi
fi
К вашему сведению: rfkill, как предлагали Дэвид и Мистербен, лучше, если вы используете Network-Manager .
ifconfig отключит интерфейс, но Network-Manager включит его автоматически.
Другой способ, которым я пользуюсь, - это удаление модуля ядра wl.
Off:
Rmmod WL
На:
Modprobe WL