Compré la computadora portátil ROG G551JM Asus que demostró ser compatible con Ubuntu. El teclado de la computadora está mal diseñado con la tecla "Poweroff" como una tecla ordinaria, colocada en el lugar, donde generalmente se encuentra la tecla "Fin". De lo contrario, la computadora está bien, así que la compré suponiendo que de alguna manera podría "solucionar" el problema, es decir, reasignar el botón PowerOff en la tecla "Fin".
El botón PowerOff está mal (ASUS G551JM):
Normalmente hay una tecla «Fin» (ASUS N56VZ):
Los eventos de botón "de apagado" son producidas por el /dev/input/event2: Power Button
dispositivo (como se informa por evtest
) con código 116 (ejemplo de línea de evtest
: Event: time 1422895638.246142, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
)
La clave también es visible para el servidor X, y finalmente Ubuntu puede identificar las pulsaciones de teclas como una PowerOff
tecla y lanza el cuadro de diálogo semitransparente "Adiós usuario Adam ..." que confirma mi voluntad de apagar la computadora.
El problema es que el enlace que une la tecla PowerOff con la rutina que muestra ese diálogo de confirmación no es visible en dconf-editor y no tengo idea de dónde encontrarlo.
¿Alguien puede decirme dónde cambiar (o eliminar) el enlace predeterminado para la tecla PowerOff?
Debería ser algo fácil.
editar 21.IX.2016:
Hay una manera de deshabilitar permanentemente el cuadro de diálogo, consulte ¿Cómo modifico las opciones para el botón de encendido? . Espero que después de deshabilitar el botón de encendido, sea posible reasignarlo a otra cosa.
fuente
Home
yEnd
son las teclas "meta" que más uso ... :(Respuestas:
Pude hacerlo funcionar en mi ASUS N751JK en Ubuntu 18.04 LTS y Ubuntu 16.04 LTS (probado con el entorno de escritorio Unity en ambos casos y KDE Plasma en 18.04):
En primer lugar, configure la acción del botón "Apagar" en
nothing
.Unidad
Como se menciona en la respuesta de Johano Fierra :
o alternativamente
sudo apt install dconf-tools
y usardconf-editor
para cambiar laorg.gnome.settings-daemon.plugins.power
propiedad (como se describe aquí ). Se requiere reiniciar o cerrar sesión para que funcione.KDE
Vaya a "Configuración del sistema" , seleccione la pestaña "Administración de energía" en la sección "Hardware" y luego seleccione la pestaña "Ahorro de energía" , desplácese hacia abajo, busque la lista desplegable "Al presionar el botón de encendido" y cambie su valor a "No hacer nada" . Haga clic en el botón "Aplicar" para que los cambios surtan efecto.
Instalar xdotool :
Este nos permitirá activar eventos clave.
El siguiente paso es activar la tecla "Fin" al presionar el botón "Apagar" .
Ubuntu 18.04
Cree un
/etc/acpi/events/power
archivo con los siguientes contenidos:y crea un
/etc/acpi/power.sh
script con los siguientes contenidos:y agregarle permisos de ejecución:
Ubuntu 16.04
Secuencia de comandos ACPI de respaldo utilizada para manejar el evento del botón "Apagar" :
Luego edítelo, encuentre lo siguiente:
y modifique el código a continuación para que se vea así:
Para aplicar estos cambios, se debe ejecutar:
Gracias a Adam , es posible reiniciar
acpid
automáticamente cuando un usuario inicia sesión (en el arranque del sistema). Entonces, en lugar del manualsudo acpid restart
en la terminal cada vez que se reinicie, agregue la siguiente línea:hasta el final del
/etc/pam.d/common-session
archivo.fuente
sudo acpid reload
lugar de reiniciar? Funcionaría eso?acpid restart
problema es agregar una líneasession optional pam_exec.so /usr/sbin/acpid restart
al final de/etc/pam.d/common-session
. De esta forma, el acpid se reiniciará justo después del inicio de sesión del usuario y esto es suficiente para mí. ¡Problema resuelto por fin!gsettings set
lugar degsettings get
.sudo chmod +x /etc/acpi/power.sh
@Ezze, tal vez podría actualizar su respuesta para incluir esto.Esto debería funcionar.
Ingrese en la terminal:
fuente
xev
comando y evitaxmodmap
volver a asignarlo. Y, por cierto, el código clave del botón "Apagar" puede ser diferente (124 para mi ASUS N751JK).gsettings set org.gnome.settings-daemon.plugins.power button-power "shutdown"
(al presionar el botón se captura), luego edite/etc/acpi/events/powerbtn
y comente la línea#action=/etc/acpi/powerbtn.sh
, y luego ingrese en la terminal:xmodmap -e "keycode 124 = End"
Esto debería evitar que el botón de encendido haga algo y al mismo tiempo asignarlo a la tecla Finalizar.powerbtn.sh
script sino también por (al menos)systemd-logind
servicio (probablemente, utiliza labutton-power
configuración que mencionó en su respuesta). Puede encontrarif pidof systemd-logind >/dev/null; then
... laexit 0
línea enpowerbtn.sh
la que el script permitesystemd-logind
controlar el evento "Apagar" por sí solo cuando la sesión de escritorio está activa. Algo en lo que tiene razón: cambiar elbutton-power
valor no afecta la capacidad de capturar la clave, pero ya está capturada por algún proceso (systemd-logind
u otro).