Como suspender com um atalho de teclado?

11

Gostaria de suspender meu sistema xubuntu (14.04) a partir de um atalho de teclado sem inserir minha senha de superusuário ( sudo ). Estou procurando uma linha de comando que possa ser convertida em um atalho.

Até agora, tentei duas soluções:

Comando Xfce:

xfce4-session-logout --suspend

Problema: O sistema não bloqueia a sessão. Não preciso digitar minha senha para a ativação e quero fazer isso.

Dbus :

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

Problema: Após a ativação, a conexão com a Internet está inoperante e preciso reiniciar o sistema para recuperá-la.

Existe uma terceira solução que 1. solicite a senha durante o processo de ativação e 2. não atrapalhe a conexão com a Internet?

De fato, o atalho gráfico padrão (no menu) funciona bem. Só não sei qual linha de comando é chamada.

ppr
fonte

Respostas:

8

Eu escrevi um roteiro Parece fazer o que você pede:

#!/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
fonte
1
+1 nos comentários maravilhosos. Acho que vou usar esse script quando instalar o Ubuntu.
Curinga
Sinto muito, mas onde devo colocar esse script? como conectá-lo com um atalho de teclado (por exemplo, ctrl + alt + s)? Estou usando o Lubuntu
hipoglucido
Tecnicamente, você pode colocar o script em qualquer lugar. Eu tenho um diretório bin / no meu diretório pessoal apenas para scripts pessoais como esse que eu quero usar. Nesse caso, o caminho para o script é: / home / <nome do usuário> / bin / custom-suspend Você deseja garantir que o script seja executável. Uma maneira de fazer isso é executar o seguinte comando: $ chmod + x / home / <nome do usuário> / bin / custom-suspend Para atribuir um atalho no LXDE (que o Lubuntu) usa, você deve procurar algo como 'keyboard' no menu Iniciar, que deve mostrar o aplicativo de configuração do teclado.
Jon Carter
4

Você pode simplesmente enviar o comando para bloquear a tela primeiro e depois suspender:

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

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

Wilf
fonte
Isso funciona na linha de comando (embora a tela de bloqueio seja desnecessária, pois é automática com a suspensão), mas não como um atalho do aplicativo de teclado (pelo menos no Ubuntu 12.04). A propósito, o aplicativo Xfce para bloquear a tela é o xflock4 (sem argumentos), que por padrão está vinculado a control-alt-delete.
BobDoolittle
xscreensaver-commandparece ter desaparecido em 15.10.
Jesse Glick
@JesseGlick - basta instalar o xscreensaverpacote
Wilf
2

Estranhamente, xfce4-session-logout --suspendfunciona muito bem, e meu sistema é o xubuntu 14.04. Ele também bloqueia a sessão, embora eu tenha ativado a opção "tela de bloqueio antes de dormir", vá para Configurações-> Sessão e Inicialização-> Avançado e verifique se ela foi ativada lá.

Ufos
fonte
Isso funciona na linha de comando (embora a tela de bloqueio seja desnecessária, pois é automática com a suspensão), mas não como um atalho do aplicativo de teclado (pelo menos no Ubuntu 12.04).
BobDoolittle
bem, ele deve funcionar no x ubuntu, não no ubuntu. Não sei por que você tem o xfce4-session-logoutcomando.
Ufos
Estamos falando do Xfce, que pode ser adicionado a qualquer distribuição do Ubuntu. O Xubuntu é simplesmente uma distribuição de conveniência que adiciona pacotes do Xfce e os configura como um desktop. Você pode começar com o ubuntu e adicionar / configurar você mesmo. A distinção xubuntu / ubuntu é um arenque vermelho aqui.
precisa saber
Funcionando bem para mim, com bloqueio de tela, no Xubuntu 15.10.
Jesse Glick
0

Este comando funciona para mim: acabei de criar um iniciador para desktop e defino o ícone Shutdown para isso. coloque este comando no comando arquivado:

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

Pela primeira vez, peça-me para tornar Executable e, depois disso, funcionando muito bem.

Estou usando o wicd para conexão com a Internet e também está funcionando bem depois de acordar!

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

Se você estiver em um laptop e quiser apenas pressionar uma tecla. Você pode usar o botão liga / desliga. O comportamento pode ser definido nas configurações de energia:

  1. Abra o Gerenciador de configurações (ou pelo comando: xfce4-settings-manager)
  2. Abra as configurações do Power Manager
  3. Em geral: defina Quando o botão liga / desliga é pressionado para Perguntar
  4. Feche as configurações do Power Manager

Se você tiver scripts ACPI instalados, desative ou atualize o script do botão liga / desliga em

/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
fonte