Czy można skonfigurować skrót do włączania / wyłączania Wi-Fi?


Odpowiedzi:


14

Ten skrypt przełącza status i wyświetla komunikat potwierdzający, co zostało zrobione.

#!/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

Aby zniknęły monity zenity, zmień je w następujący sposób:

zenity --info --text "Enabled wireless" --timeout="5"
zenity --info --text "Disabled wireless" --timeout="5"

Lub rób powiadomienia, które pojawiają się w rogu ekranu. alternatywny tekst

sudo apt-get install libnotify-bin

Zamień linie zenity na

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."

fajnie tam z rfkill ;-)
Pavlos G.

fajnie, czy jest sposób na automatyczne zniknięcie wiadomości zenity po jednej czy dwóch sekundach?
NES,

Tak, zaktualizowana odpowiedź. Istnieje nieudokumentowana --timeout="n"opcja zenity.
misterben

Czy możesz opisać szczegółowo, co robi skrypt? Jestem zainteresowany, czy można wyłączyć Wi-Fi tylko wtedy, gdy podłączony jest Ethernet ?
JJD

@misterben Czy skrypt uwzględnia stan podłączenia do sieci Ethernet?
JJD

4

Od jakiegoś czasu szukałem rozwiązania tego problemu i skorzystałem z wielu porad i wskazówek. W końcu znalazłem rozwiązanie, które działa dla mnie, i postanowiłem stworzyć przewodnik dla początkujących. Bądźcie ze mną, jest to również dla tych, którzy są mniej zdolni do programowania w systemie Linux niż wielu z was, takich jak ja;

Kliknij ikonę programu uruchamiającego w lewym górnym wysuwanym pasku (Dash Home), wpisz „gedit” i kliknij Enter.

Teraz stworzysz skrypt, który będzie przełączał Wi-Fi;

Użyłem skrótu menedżera sieci; nmcli nm wifi, aby określić stan wifi, a także kontrolować go. Użyłem skryptu powiadomień podanego w powyższym przykładzie, aby wyświetlić stan Wi-Fi. Oto mój skrypt;

#!/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

Skopiuj i wklej to do edytora, który właśnie otworzyłeś, i zapisz jako dowolną nazwę pliku, którą uważasz za właściwą (moja była wifitoggle).

Kolejnym krokiem było uczynienie pliku wykonywalnym (w folderze domowym; kliknij prawym przyciskiem myszy plik, właściwości, kartę uprawnień, zaznacz opcję „Uruchom jako plik wykonywalny”).

Następnie umieść kopię w katalogu system plików / usr / bin (otwórz terminal, wpisz sudo nautilus. Przejdź do systemu plików, następnie usr, a następnie otwórz bin. Wklej y).

Na koniec przejdź do Ustawienia systemu -> Klawiatura -> karta Skróty; naciśnij mały przycisk + pod spodem, wpisz nazwę swojego przełącznika i wpisz nazwę pliku dla skryptu, który podałeś (w moim przypadku wifitoggle). Kliknij przycisk Zastosuj, a następnie kliknij tekst „diabled” po prawej stronie, a następnie naciśnij klawisze skrótu. GOTOWY!


3

Aby wyłączyć korzystanie z adaptera Wi-Fi rfkill block wifi, aby go użyćrfkill unblock wifi

Zamiast wifi możesz użyć jednego z następujących słów kluczowych: all wifi wlan bluetooth uwb ultrawideband wimax wwan gps fm


1

Tak, możesz dzięki cnetworkmanager . Jest w repozytorium, więc zainstaluj go i utwórz program uruchamiający z poleceniem, cnetworkmanager --wifi=nojeśli chcesz wyłączyć połączenie bezprzewodowe, i poleceniem, cnetworkmanager --wifi=yesjeśli chcesz włączyć połączenie bezprzewodowe.


1

Coś w stylu: sudo ifconfig <wlan0> downlub sudo ifconfig <wlan0> up?

Oto mój skrypt:

#!/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, jak sugerowali David i Misterben , jest lepszy, jeśli używasz Network-Managera .
ifconfig wyłączy interfejs, ale Network-Manager ponownie go włączy automatycznie.


Pomysł, aby użyć go z tym samym skrótem?
NES,

sprawdzę to i dam ci znać ;-)
Pavlos G.

0

Innym szybkim rozwiązaniem, którego używam, jest usunięcie modułu jądra wl.

Poza:

rmmod wl

Na:

modprobe wl

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.