Wyłączenie monitora za pomocą skrótu klawiszowego

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

Aby wyłączyć monitor z poziomu terminala, możesz wydać polecenie:

xset dpms force off

Wzbudzisz go za pomocą myszki bądź klawiatury.
Utwórz teraz skrypt, który przypiszesz za chwilę do skrótu klawiszowego:

gedit ~/wylacz_monitor.sh

Wklej do edytora poniższy kod:

#!/usr/bin/bash
xset dpms force off

Przejdź teraz do punktu Przypisanie skryptu do skrótu.

Jeśli nie działa to polecenie, możesz użyć skryptu napisanego w Pythonie. Aby go poprawnie uruchomić zainstaluj potrzebne zależności:

sudo apt-get install python python-xlib

Teraz utwórz plik, w którym znajdzie się kod źródłowy skryptu:

gedit ~/wylacz_monitor.sh

Wklej do edytora poniższy kod:

#!/usr/bin/python

import time
import subprocess
from Xlib import X
from Xlib.display import Display

display = Display(':0')
root = display.screen().root
root.grab_pointer(True,
        X.ButtonPressMask | X.ButtonReleaseMask | X.PointerMotionMask,
        X.GrabModeAsync, X.GrabModeAsync, 0, 0, X.CurrentTime)
root.grab_keyboard(True,
        X.GrabModeAsync, X.GrabModeAsync, X.CurrentTime)

subprocess.call('xset dpms force off'.split())
p = subprocess.Popen('gnome-screensaver-command -i'.split())
time.sleep(1)

while True:
    print display.next_event()
    p.terminate()
    break

Zapisz plik Ctrl + S i nadaj mu prawa do uruchamiania:

chomod +x ~/wylacz_monitor.sh

Sprawdź czy działa poprawnie:

~/wylacz_monitor.sh

Przypisanie skryptu do skrótu

Uruchom konfigurację skrótów klawiszowych. W zależności od wersji systemu/środowiska graficznego może to być:

  • Skróty klawiszowe
  • Klawiatura → Skróty.

Wyłączenie monitora za pomocą skrótu klawiszowego

Własne skróty


Dodaj nowy skrót. Nazwij go dowolnie. W polu Polecenie podaj ścieżkę do pliku ze skryptem.

Teraz na liście skrótów kliknij dwukrotnie w dodaną pozycję, aby przypisać do niej skrót – w moim przypadku jest to Shift + Z – proszę nie komentować trafności tego wyboru, jedynie dla testów :)
Wyłączenie monitora za pomocą skrótu klawiszowego

Przypisanie skrótu


Zamknij wszystkie okna i wciśnij ustaloną kombinację klawiszy, aby wyłączyć monitor.

Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • RA

    kiedyś zmajstrowałem podobny skrypt bash+zenity, dający czas do zastanowienia się, choć równie dobrze można go podpiąć jako wygaszacz

    #!/bin/sh
    (
    echo „100” ; sleep 1
    echo „# Monitor wyłączy sie za 4 sekund(y)”
    echo „80” ; sleep 1
    echo „# Monitor wyłączy sie za 3 sekund(y)”
    echo „60” ; sleep 1
    echo „# Monitor wyłączy sie za 2 sekund(y)”
    echo „40” ; sleep 1
    echo „# Monitor wyłączy sie za 1 sekund(y)”
    echo „20” ; sleep 1
    echo „# Monitor wyłączy sie za 0 sekund(y)”
    ) |
    zenity –progress \
    –title=”Wyłączanie monitora” \
    –text=”Monitor wyłączy sie za 5 sekund(y)” \
    –percentage=0 \
    –timeout 5

    if [ „$?” = 1 ] ; then
    zenity –warning \
    –text=”Zaniechano wyłączenia monitora.”
    else
    # zenity –info \
    # –text=”Wyłączono monitor.”
    xset dpms force off
    fi

  • muchar81

    skrypt działa krótkotrwale :( po wciśnięciu zadanej kombinacji ctrl f3 ekran się wygasza i zaraz się sam włącza. Jak temu zaradzić?

  • Elvis

    Na moim Ubuntu 11.10 w Gnome-Shell:

    Sposób 1: U mnie ścieżka do shell’a to: „#!/bin/bash” a nie „#!/usr/bin/bash”, więc podmieniłem. Co do działania, podobnie jak u „muchar81”, po ułamku sekundy powraca obraz.

    Sposób 2: Również ta sama sytuacja, jak w przypadku 1 – obraz powraca po niespełna sekundzie.

    Ciekawą rzecz jednak zauważyłem. Ustawiłem sobie skrót klawiszy na „CTRL + ALT + P”.
    Gdy nacisnę i przytrzymam CTRL+ALT a P nacisnę i puszczę, to obraz po chwili powraca – standardowa sytuacja, że nie działa poprawnie. Jednak gdy np nacisnę wszystkie trzy i przytrzymam P, a CTRL+ALT puszczę, następnie puszczam P i…. ekran jest wygaszony. Czekam kilka chwil dłużej, myśląc o zapętleniu, jednak.. nie! Wtedy działa prawidłowo. Po ruchu myszą ukazuje się obraz. No ale być może tylko u mnie takie dziwne rzeczy :)

  • jozek

    w tekście jest błąd, ma być „chmod” a nie „chomod”

  • drit

    Zadziałała druga część porady czyli zastosowanie ”

    sudo apt-get install python python-xlib

    Teraz utwórz plik, w którym znajdzie się kod źródłowy skryptu:

    gedit ~/wylacz_monitor.sh

    Wklej do edytora poniższy kod:

    #!/usr/bin/python

    import time
    import subprocess
    from Xlib import X
    from Xlib.display import Display

    display = Display(‚:0’)
    root = display.screen().root
    root.grab_pointer(True,
    X.ButtonPressMask | X.ButtonReleaseMask | X.PointerMotionMask,
    X.GrabModeAsync, X.GrabModeAsync, 0, 0, X.CurrentTime)
    root.grab_keyboard(True,
    X.GrabModeAsync, X.GrabModeAsync, X.CurrentTime)

    subprocess.call(‚xset dpms force off’.split())
    p = subprocess.Popen(‚gnome-screensaver-command -i’.split())
    time.sleep(1)

    while True:
    print display.next_event()
    p.terminate()
    break

    Zapisz plik Ctrl + S i nadaj mu prawa do uruchamiania:

    chmod +x ~/wylacz_monitor.sh

    Sprawdź czy działa poprawnie:

    ~/wylacz_monitor.sh

    Uwaga na błąd w składni „chomod” ma być chmod.

    • drit

      Jeszcze przed chmod sudo.

  • eker247

    Ustawienia > Klawiatura > Skróty klawiaturowe > Własne skróty > dodaj skrót [+]

    xset dpms force off

    Przypisz skrót np. shift+f1

    Nie trzeba tworzyć skryptów, działa w Ubuntu 14.04.

    • eker247

      Jeśli ekran gaśnie i włącza się po sekundzie powtórzyć skrót. Dzieje się tak przy utworzeniu skryptu jak i w tej metodzie.