Jak zawiesić za pomocą skrótu klawiaturowego?

11

Chciałbym zawiesić mój system xubuntu (14.04) ze skrótu klawiaturowego bez wpisywania hasła administratora ( sudo ). Szukam wiersza polecenia, który mogę przekonwertować na skrót.

Do tej pory wypróbowałem dwa rozwiązania:

Komenda Xfce:

xfce4-session-logout --suspend

Problem: System nie blokuje sesji. Nie muszę wprowadzać hasła do budzenia i chcę to zrobić.

Dbus :

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

Problem: Po przebudzeniu połączenie internetowe jest wyłączone i muszę ponownie uruchomić system, aby go odzyskać.

Czy istnieje trzecie rozwiązanie, które 1. pyta o hasło podczas procesu budzenia, a 2. nie psuje się przy połączeniu z Internetem?

W rzeczywistości domyślny skrót graficzny (z menu) działa dobrze. Po prostu nie wiem, która linia poleceń jest nazywana.

ppr
źródło

Odpowiedzi:

8

Napisałem scenariusz. Wydaje się robić to, o co prosisz:

#!/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
źródło
1
+1 za wspaniałe komentarze. Myślę, że użyję tego skryptu podczas instalacji Ubuntu.
Wildcard,
Przykro mi, ale gdzie mam umieścić ten skrypt? jak mam to połączyć za pomocą skrótu klawiaturowego (na przykład ctrl + alt + s)? Używam Lubuntu
hipoglucido
Możesz technicznie umieścić skrypt w dowolnym miejscu. Mam katalog bin / w moim katalogu domowym tylko dla osobistych skryptów takich jak ten, których chcę używać. W takim przypadku ścieżka do skryptu to: / home / <nazwa użytkownika> / bin / custom-suspend. Upewnij się, że skrypt jest wykonywalny. Jednym ze sposobów na to jest uruchomienie następującego polecenia: $ chmod + x / home / <nazwa użytkownika> / bin / custom-suspend Aby dać mu skrót w LXDE (którego używa Lubuntu), powinieneś być w stanie wyszukać coś takiego „klawiatura” z menu Start, która powinna pokazać aplikację do konfiguracji klawiatury.
Jon Carter
4

Możesz po prostu wysłać polecenie, aby najpierw zablokowało ekran, a następnie zawiesiło:

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

Aby użyć xscreensaver-command, uruchomxscreensaver-command --help

Wilf
źródło
Działa to z wiersza poleceń (chociaż ekran blokady jest niepotrzebny, ponieważ jest to automatyczne z zawieszeniem), ale nie jako skrót do aplikacji na klawiaturze (przynajmniej w Ubuntu 12.04). Nawiasem mówiąc, aplikacją Xfce do blokowania ekranu jest xflock4 (bez argumentów), który domyślnie jest powiązany z klawiszem control-alt-delete.
BobDoolittle,
xscreensaver-commandwydaje się, że zniknął w 15.10.
Jesse Glick
@JesseGlick - wystarczy zainstalować xscreensaverpakiet
Wilf
2

Dziwne, że xfce4-session-logout --suspenddziała dobrze, a mój system to Xubuntu 14.04. Blokuje także sesję, chociaż włączyłem opcję „blokuj ekran przed snem”, przejdź do Ustawienia-> Sesja i uruchomienie-> Zaawansowane i sprawdź, czy tam się włączyła.

Ufos
źródło
Działa to z wiersza poleceń (chociaż ekran blokady jest niepotrzebny, ponieważ jest to automatyczne z zawieszeniem), ale nie jako skrót do aplikacji na klawiaturze (przynajmniej w Ubuntu 12.04).
BobDoolittle,
Cóż, powinien działać w X Ubuntu, a nie Ubuntu. Nie jestem pewien, dlaczego w ogóle masz xfce4-session-logoutrozkaz.
Ufos
Mówimy o Xfce, który można dodać do dowolnej dystrybucji ubuntu. Xubuntu to po prostu wygodna dystrybucja, do której dodano pakiety Xfce i skonfigurowano je jako pulpit. Możesz zacząć od Ubuntu i dodać / skonfigurować go samodzielnie. Wyróżnienie xubuntu / ubuntu to tutaj czerwony śledź.
BobDoolittle,
Działa dla mnie dobrze, z blokadą ekranu, w Xubuntu 15.10.
Jesse Glick
0

To polecenie działa dla mnie: właśnie uruchamiam program uruchamiający na pulpicie i ustawiam dla tego ikonę Shutdown. wstaw to polecenie w polu polecenia:

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

po raz pierwszy poproś mnie, aby uczynić plik wykonywalny, a potem działa bardzo dobrze.

Używam WICD do połączenia z Internetem i działa dobrze po przebudzeniu!

Vahid
źródło
Xubuntu 15.10:Error org.freedesktop.DBus.Error.UnknownMethod: Method "Suspend" with signature "" on interface "org.freedesktop.UPower" doesn't exist
Jesse Glick
0

Jeśli korzystasz z laptopa i chcesz tylko nacisnąć klawisz. Możesz użyć przycisku zasilania. Zachowanie można ustawić w ustawieniach zasilania:

  1. Otwórz Menedżera ustawień (lub za pomocą polecenia: xfce4-settings-manager)
  2. Otwórz ustawienia Power Managera
  3. Ogólnie: ustaw Po naciśnięciu przycisku zasilania na Pytaj
  4. Zamknij ustawienia Power Managera

Jeśli masz zainstalowane skrypty ACPI, wyłącz lub zaktualizuj skrypt przycisku zasilania za pomocą

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

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

Mads Hansen
źródło