Відповіді:
Цей скрипт переключить стан і покаже повідомлення, щоб підтвердити, що зроблено.
#!/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 --info --text "Enabled wireless" --timeout="5"
zenity --info --text "Disabled wireless" --timeout="5"
Або робити сповіщення, які з’являються у куті екрана.
sudo apt-get install libnotify-bin
Замініть лінії зенності на
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"
варіант для зен.
Я певний час шукав для цього рішення цього питання і використовував безліч порад і прийомів для всіх. Нарешті я знайшов рішення, яке працює для мене, і вирішив створити новачком прохідний шлях. Майте на увазі, це також для тих, хто не вміє програмувати в Linux, ніж багато хто з вас, як я;
Клацніть піктограму запуску в лівій верхній панелі висування (Dash Home), наберіть 'gedit' та натисніть клавішу Enter.
Тепер ви збираєтеся створити сценарій, який буде перемикати wifi;
Я використав ярлик мережевого менеджера; nmcli nm wifi, щоб визначити стан wifi, а також керувати ним. Я використовував сценарій сповіщень, наведений у наведеному вище прикладі, для відображення стану wifi. Ось мій сценарій;
#!/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, потім відкрийте бін. Вставте 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
FYI: rfkill, як запропоновано David та misterben , краще, якщо ви використовуєте Network-Manager .
ifconfig відключить інтерфейс, але Менеджер мережі повторно включить його.
Ще одне швидке використання, яке я використовую, - це видалення модуля ядра wl.
Вимкнено:
rmmod wl
Увімкнено:
modprobe wl