¿Es posible configurar un acceso directo para habilitar / deshabilitar wifi?

Respuestas:

14

Este script alternará el estado y mostrará un mensaje para confirmar lo que se ha hecho.

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

Para que desaparezcan las indicaciones de zenity, cámbielas así:

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

O haga notificaciones que aparecen en la esquina de su pantalla. texto alternativo

sudo apt-get install libnotify-bin

Reemplace las líneas zenity con

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."
misterben
fuente
agradable con rfkill ;-)
Pavlos G.
bien, ¿hay alguna manera de desaparecer automáticamente el mensaje zenity después de uno o dos segundos?
NES
Sí, respuesta actualizada. Hay una --timeout="n"opción indocumentada para zenity.
misterben
¿Puede describir en detalle lo que hace el guión? ¿Me interesa saber si es posible deshabilitar wifi solo cuando se conecta Ethernet ?
JJD
@misterben ¿El script considera el estado conectado de ethernet?
JJD
4

He estado buscando una solución para esto por un tiempo, y he usado muchos consejos y trucos para todo. Finalmente encontré la solución que funciona para mí y decidí crear un tutorial para novatos. Tenga paciencia conmigo, esto también es para aquellos menos capaces de programar en Linux que muchos de ustedes, como yo;

Haga clic en el icono del iniciador en la barra deslizante superior izquierda (Inicio de tablero), escriba 'gedit' y haga clic en Intro.

Ahora va a crear la secuencia de comandos que alternará el wifi;

Usé el acceso directo del administrador de red; nmcli nm wifi, para determinar el estado de wifi y también para controlarlo. Usé el script de notificación que se muestra en el ejemplo anterior para mostrar el estado de wifi. Aquí está mi guión;

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

Copie y pegue esto en el editor que acaba de abrir, y guárdelo como cualquier nombre de archivo que considere apropiado (el mío era wifitoggle).

El siguiente paso fue hacer que el archivo sea ejecutable (en la carpeta de inicio; haga clic con el botón derecho en su archivo, propiedades, pestaña de permisos, marque la casilla 'Ejecutar como ejecutable').

Luego, coloque una copia en el directorio del sistema de archivos / usr / bin (abra la terminal, escriba sudo nautilus. Navegue hasta Sistema de archivos, luego usr, luego abra bin. Pegue y).

Finalmente, vaya a Configuración del sistema -> Teclado -> pestaña Accesos directos; presione el pequeño botón + debajo, complete el nombre de su palanca y complete el nombre del archivo para el script que dio (en mi caso, wifitoggle). Haga clic en aplicar y haga clic en el texto 'marcado' a la derecha de eso, y luego presione las teclas de acceso rápido. ¡HECHO!

Johno
fuente
3

Para deshabilitar el uso de su adaptador wifi rfkill block wifi, para habilitarlo userfkill unblock wifi

En lugar de wifi, puede usar una de las siguientes palabras clave: all wifi wlan bluetooth uwb ultrawideband wimax wwan gps fm

david
fuente
1

Sí, puedes hacerlo con cnetworkmanager . Está en el repositorio, así que instálelo y cree un iniciador con el comando cnetworkmanager --wifi=nosi desea deshabilitar la cnetworkmanager --wifi=yesconexión inalámbrica y el comando si desea habilitar la conexión inalámbrica.

Shakipu
fuente
1

Algo como: sudo ifconfig <wlan0> downo sudo ifconfig <wlan0> up?

Aquí está mi guión:

#!/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 como david y misterben sugirieron es mejor en caso de que estés usando Network-Manager .
ifconfig deshabilitará la interfaz, pero Network-Manager la volverá a habilitar automáticamente.

Pavlos G.
fuente
¿Una idea para usarlo con el mismo atajo?
NES
Lo comprobaré y te lo haré saber ;-)
Pavlos G.
0

Otro método rápido que uso es eliminar el módulo del núcleo wl.

Apagado:

rmmod wl

En:

modprobe wl

Pete Ashdown
fuente