¿Cómo suspender con un atajo de teclado?

11

Me gustaría suspender mi sistema xubuntu (14.04) desde un atajo de teclado sin ingresar mi contraseña de superusuario ( sudo ). Estoy buscando una línea de comando que puedo convertir en un acceso directo.

Hasta ahora, probé dos soluciones:

Comando Xfce:

xfce4-session-logout --suspend

Problema: el sistema no bloquea la sesión. No necesito ingresar mi contraseña para el despertar y quiero hacerlo.

Dbus :

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Problema: después del despertar, la conexión a Internet no funciona y tengo que reiniciar el sistema para recuperarlo.

¿Hay una tercera solución que 1. solicite la contraseña durante el proceso de activación y 2. no interfiera con la conexión a Internet?

De hecho, el acceso directo gráfico predeterminado (desde el menú) funciona bien. Simplemente no sé qué línea de comando se llama.

ppr
fuente

Respuestas:

8

Escribí un guion. Parece hacer lo que pides:

#!/usr/bin/env zsh
# Custom suspend
#
# (That 'zsh' up there can be switched to 'bash', or 
# pretty much any shell - this doesn't do anything too fancy.)
#
# Dependencies are mostly xfce stuff:
#
#   xbacklight
#   xflock4
#   xfce4-session-logout

# Set how dim we want the screen to go (percentage, out of 100)
dim=5

# Pack up your toys
previous_dimness=$(xbacklight -get)

# Turn down the lights
xbacklight -set $dim

# Lock the door (this requires a password to get back in)
xflock4

# And go to sleep
xfce4-session-logout --suspend

# When we wake up, turn the lights back on
xbacklight -set $previous_dimness
Jon Carter
fuente
1
+1 por los maravillosos comentarios. Creo que usaré este script cuando instale Ubuntu.
Comodín el
Lo siento, pero ¿dónde debo colocar este script? ¿Cómo debo conectarlo con un atajo de teclado (por ejemplo, ctrl + alt + s)? Estoy usando Lubuntu
hipoglucido
Técnicamente puedes poner el script en cualquier lugar. Tengo un directorio bin / debajo de mi directorio personal solo para scripts personales como este que quiero usar. En este caso, la ruta al script es: / home / <nombre de usuario> / bin / custom-suspend Deberá asegurarse de que el script sea ejecutable. Una forma de hacerlo es ejecutar el siguiente comando: $ chmod + x / home / <username> / bin / custom-suspend Para darle un acceso directo bajo LXDE (que Lubuntu) usa, debería poder buscar algo como 'teclado' desde el menú de inicio, que debería mostrar la aplicación de configuración del teclado.
Jon Carter
4

Simplemente puede enviar el comando para que primero bloquee la pantalla y luego suspenderlo:

xscreensaver-command -lock ; xfce4-session-logout --suspend

Para uso de xscreensaver-command, ejecutarxscreensaver-command --help

Wilf
fuente
Eso funciona desde la línea de comandos (aunque la pantalla de bloqueo es innecesaria ya que es automática con suspensión), pero no como un atajo de aplicación de teclado (al menos con Ubuntu 12.04). Por cierto, la aplicación Xfce para bloquear la pantalla es xflock4 (sin argumentos), que por defecto está destinada a control-alt-delete.
BobDoolittle
xscreensaver-commandparece haberse ido en 15.10.
Jesse Glick
@JesseGlick - solo instala el xscreensaverpaquete
Wilf
2

Curiosamente xfce4-session-logout --suspendfunciona bien, y mi sistema es xubuntu 14.04. También bloquea la sesión, aunque he activado la opción "pantalla de bloqueo antes de dormir", vaya a Configuración-> Sesión y Inicio-> Avanzado, y compruebe si se activó allí.

Ovnis
fuente
Eso funciona desde la línea de comandos (aunque la pantalla de bloqueo es innecesaria ya que es automática con suspensión), pero no como un atajo de aplicación de teclado (al menos con Ubuntu 12.04).
BobDoolittle
bueno, se supone que funciona en x ubuntu, no en ubuntu. No estoy seguro de por qué tienes el xfce4-session-logoutcomando.
Ovnis
Estamos hablando de Xfce, que se puede agregar a cualquier distribución de ubuntu. Xubuntu es simplemente una distribución de conveniencia que agrega paquetes Xfce y los configura como escritorio. Puede comenzar con ubuntu y agregarlo / configurarlo usted mismo. La distinción xubuntu / ubuntu es una pista falsa aquí.
BobDoolittle
Funciona bien para mí, con bloqueo de pantalla, en Xubuntu 15.10.
Jesse Glick
0

Este comando funciona para mí: acabo de hacer un lanzador para escritorio y configuro el icono de apagado para eso. poner este comando en el comando archivado:

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

primera vez pídeme que haga Ejecutable y después de eso funciona muy bien.

Estoy usando wicd para la conexión a Internet y también funciona bien después de despertar.

Vahid
fuente
Xubuntu 15.10:Error org.freedesktop.DBus.Error.UnknownMethod: Method "Suspend" with signature "" on interface "org.freedesktop.UPower" doesn't exist
Jesse Glick
0

Si estás en una computadora portátil y solo quieres presionar una tecla. Puedes usar el botón de encendido. El comportamiento se puede establecer desde la configuración de Energía:

  1. Abra el Administrador de configuración (o por comando: xfce4-settings-manager)
  2. Abra la configuración de Power Manager
  3. En general: configurar cuando se presiona el botón de encendido para preguntar
  4. Cerrar la configuración de Power Manager

Si tiene instaladas secuencias de comandos ACPI, desactive o actualice la secuencia de comandos del botón de encendido desde

/etc/acpi/events/, and change the action field to /bin/true:
# EXAMPLE
event=button/power.*
#action=/usr/lib/acpid/power_button
action=/bin/true

Ref: https://wiki.xfce.org/tips#solution_2

Mads Hansen
fuente