it-swarm.com.de

Anwendung, die den Bildschirm nach einer festgelegten Zeitspanne für Ubuntu sperrt

Gibt es eine Ubuntu-Anwendung, die den Computer nach einer festgelegten Zeitspanne (z. B. 30 Minuten) sperrt? Ich brauche es, damit Kinder die Zeit begrenzen, die sie Zeichentrickfilme ansehen. Z.B. 30 Minuten schauen und dann PC-Sperren, bei denen ein Elternteil die Sperre aufheben muss.

Unter Windows, für das ich die Eyes Relax-App verwendet habe, werden der schwarze Bildschirm und der grüne Fortschrittsbalken (verbleibende Zeit zum Entsperren des PCs) angezeigt. Zum Überschreiben der Sperre ist ein Kennwort erforderlich.

10
Dmitriy

Update vom 4. Juni 2018

Ein viel besseres Programm mit dem Namen multi-timer wurde erstellt: Ein Timer zum gleichzeitigen Einrichten verschiedener Alarme

Bildschirm-Timer sperren

systray.gif

Erstellen Sie Ihren eigenen Bildschirmsperr-Timer anstelle von Anwendungen von Drittanbietern

Obwohl es hierfür Anwendungen von Drittanbietern gibt, können Sie Ihre eigenen erstellen. Zusammenfassung der Schritte:

  • Verwenden Sie gedit, um das Skript lock-screen-timer zu erstellen.
  • Kopieren Sie den Code aus diesem Fenster und fügen Sie ihn in lock-screen-timer ein.
  • Markiere lock-screen-timer als ausführbare Datei
  • Probier es aus!
  • Konfigurieren Sie Nautilus zum Ausführen von Bash-Skripten
  • Erstellen Sie einen Desktop-Verknüpfungslink
  • Verbleibende Zeit überwachen

Edit 1 (19. November 2016): Endgültige Version. Bevorstehende Sperrwarnungen nach 15, 10, 5, 3, 2 und 1 Minute (n), die mit der Meldung und dem Ton angezeigt werden. Verwenden Sie Zenity, um die Anzahl der Minuten abzurufen (standardmäßig 30).

Edit 2 (Nov 20,2016): Codeänderung zum Beenden des vorherigen Sleeping-Skripts.

Edit 3 (Jan 20,2017): Überarbeitung des vorherigen Skriptcodes. Fügen Sie eine Informationsmeldung hinzu, wenn die vorherige Version bereits ausgeführt und beendet wurde.

Edit 4 (Feb 4,2017): Führen Sie eine Endlosschleife für mehrere Countdowns aus, ohne erneut auf das Desktopsymbol klicken zu müssen. dh Waschnacht - 16 Minuten zum Spülen (Weichspüler), 13 Minuten zum Laden des Trockners, 58 Minuten zum Herausnehmen aus dem Trockner.

Edit 5 (Feb 11,2017): Schreibe die verbleibenden Minuten in /tmp/lock-screen-timer-remaining. Auf diese Weise können andere Programme die Zeitspanne anzeigen, bevor der Bildschirm gesperrt wird.

Edit 6 (Aug 07,2017): Ändern Sie die Arbeitsdatei /tmp/ in ~/., um mehrere Benutzer im Netzwerk zu unterstützen.

BEARBEITEN: Beachten Sie, dass das Skript von ogg123 abhängt, um den Erinnerungston abzuspielen. Dieses Programm ist Teil des vorbis-tool-Pakets aus dem Universums-Repository. Das hier vorgestellte Skript versucht auch, das hier zu findende hotplugtv-Skript zu verwenden

Edit 8 (Nov 12,2017): Unterstützung für WSL (Windows 10-Subsystem für Linux) hinzufügen. Beachten Sie, dass Sie VcXsrv und ubuntu-desktop oder xubuntu-desktop (bevorzugt) hinzufügen müssen, um die Linux-GUI in WSL zu verwenden. Die Anzeige der verbleibenden Zeit in der Taskleiste/im Benachrichtigungsbereich von Windows 10 erfordert eine Ergänzung zu den Funktionen von indicator-sysmonitor unter Linux. Ein zukünftiges powershell.exe Skript ist für die Unterstützung von Windows 10-Infobereichen geplant.

Edit 9 (Feb 19,2018): Die Animation, bei der der \ in der Sequenz "|, /, ─, \" fehlt, wurde korrigiert.

Verwenden Sie gedit, um das Skript lock-screen-timer zu erstellen.

Öffnen Sie das Terminal mit Ctrl+Alt+T und Typ:

gedit lock-screen-timer

Kopieren Sie den Code aus dem folgenden Fenster und fügen Sie ihn in lock-screen-timer ein.

Kehren Sie zu diesem Bildschirm zurück und kopieren Sie den folgenden Code, indem Sie ihn markieren und drücken Ctrl+C:

#!/bin/bash

# NAME: lock-screen-timer
# PATH: $HOME/bin
# DESC: Lock screen in x minutes
# CALL: Place on Desktop or call from Terminal with "lock-screen-timer 99"
# DATE: Created Nov 19, 2016. Last revision May 30, 2018.
# UPDT: Updated to support WSL (Windows Subsystem for Linux)
#       Remove hotplugtv. Replace ogg with paplay.
#       Cohesion with multi-timer. New sysmonitor indicator style.

# NOTE: Time defaults to 30 minutes.
#       If previous version is sleeping it is killed.
#       Zenity is used to pop up entry box to get number of minutes.
#       If zenity is closed with X or Cancel, no screen lock timer is launched.
#       Pending lock warning displayed on-screen at set intervals.
#       Write time remaining to ~/.lock-screen-timer-remaining

MINUTES="$1" # Optional parameter 1 when invoked from terminal.

# if no parameters set default MINUTES to 30
if [ $# == 0 ]; then
    MINUTES=30
fi

DEFAULT="$MINUTES" # When looping, minutes count down to zero. Save deafult for subsequent timers.

# Check if lock screen timer already running
pID=$(pgrep -f "${0##*/}") # All PIDs matching lock-screen-timer name
PREVIOUS=$(echo "$pID" | grep -v ^"$$") # Strip out this running copy ($$$)
if [ "$PREVIOUS" != "" ]; then
    kill "$PREVIOUS"
    rm ~/.lock-screen-timer-remaining
    zenity --info --title="Lock screen timer already running" --text="Previous lock screen timer has been terminated."
fi

# Running under WSL (Windows Subsystem for Linux)?
if cat /proc/version | grep Microsoft; then
    WSL_running=true
else
    WSL_running=false
fi


while true ; do # loop until cancel

    # Get number of minutes until lock from user
    MINUTES=$(zenity --entry --title="Lock screen timer" --text="Set number of minutes until lock" --entry-text="$DEFAULT")

    RESULT=$? # Zenity return code
    if [ $RESULT != 0 ]; then
        break ; # break out of timer lock screen loop and end this script.
    fi

    DEFAULT="$MINUTES" # Save deafult for subsequent timers.
    if [[ $MINUTES == 0 ]] || [[ $MINUTES == "" ]]; then
        break ; # zero minutes considered cancel.
    fi

    # Loop for X minutes, testing each minute for alert message.
    (( ++MINUTES )) 
    while (( --MINUTES > 0 )); do
        case $MINUTES in 1|2|3|5|10|15|30|45|60|120|480|960|1920)
            notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/appointment-soon.png "Locking screen in ""$MINUTES"" minute(s)." ;
            if [[ $WSL_running == true ]]; then  
                powershell.exe -c '(New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").PlaySync();'
            else
               paplay /usr/share/sounds/freedesktop/stereo/complete.oga ;
            fi
           ;;
        esac;

        # Record number of minutes remaining to file other processes can read.
        echo "Lock screen in: $MINUTES Minutes" > ~/.lock-screen-timer-remaining

        sleep 60

    done

    rm ~/.lock-screen-timer-remaining # Remove work file others can see our progress with

    if [[ $WSL_running == true ]]; then  
        # Call lock screen for Windows 10
        rundll32.exe user32.dll,LockWorkStation
    else
        # Call screen saver lock for Ubuntu versions > 14.04.
        dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
    fi

done # End of while loop getting minutes to next lock screen

exit 0 # Closed dialog box or "Cancel" selected.

Wechseln Sie dann zurück zum leeren Fenster gedit und fügen Sie den Code mit ein Ctrl+V. Speichern Sie die Datei und beenden Sie den Editor wieder mit dem Befehl Eingabeaufforderung.

Markiere lock-screen-timer als ausführbare Datei

Jetzt müssen wir das Skript ausführbar machen, indem wir Folgendes eingeben:

chmod +x lock-screen-timer

Probier es aus!

Bevor wir das Skript von der GUI aufrufen, rufen wir es vom Terminal aus auf, damit wir sehen können, ob Fehlermeldungen angezeigt werden:

~/lock-screen-timer

Sie werden aufgefordert, die Anzahl der Minuten einzugeben:

Lock Screen Timer

Stellen Sie die gewünschte Anzahl von Minuten ein und klicken Sie auf OK, um den Timer zu starten. Wenn noch 15, 10, 5, 3, 2 und 1 Minute (n) vergangen sind, ertönt ein Systemton und eine Meldung mit dem Hinweis, wann der Bildschirm gesperrt wird. Nachdem der Bildschirm gesperrt wurde, müssen Sie Ihr Kennwort eingeben, um den Bildschirm zu entsperren.

Konfigurieren Sie Nautilus zum Ausführen von Bash-Skripten

Nautilus definiert, was passiert, wenn wir auf ein ausführbares Skript doppelklicken, wenn es sich um das Dateianzeigefenster oder einen Link auf dem Desktop handelt. Normalerweise wird das Skript mit gedit bearbeitet. Wir möchten dieses Verhalten so ändern, dass es ausgeführt wird.

Starten Sie Nautilus und navigieren Sie zu dem Verzeichnis, das lock-screen-timer enthält. Klicken Sie einmal mit der linken Maustaste darauf, um den Fokus zu erhalten. Bewegen Sie die Maus über die obere Menüleiste, bis das Menü "Datei bearbeiten ..." angezeigt wird. Verwenden Sie:

  1. Klicken Sie auf das Dropdown-Menü Edit
  2. Klicken Sie auf die Option Properties
  3. Klicken Sie auf die Registerkarte Behavior
  4. Beachten Sie die Optionsfelder unter Executable Text Files
  5. Aktivieren Sie das Optionsfeld Run executable text files when they are opened

Erstellen Sie einen Desktop-Verknüpfungslink

Aus dem vorherigen Abschnitt hat lock-screen-timer immer noch den Fokus. Wenn nicht, navigieren Sie zum Skript und klicken Sie einmal mit der linken Maustaste darauf, um es in den Fokus zu setzen. Dann benutze:

  • Klicken Sie mit der rechten Maustaste auf die Datei und die Optionen des Kontextmenüs werden angezeigt.
  • Wählen Sie im Menü Make Link.
  • Ein neues Symbol mit dem Namen Link to lock-screen-timer wird angezeigt.
  • Klicken Sie mit der linken Maustaste auf das neue Symbol und ziehen Sie es von Nautilus auf Ihren Desktop.

Jetzt können Sie auf den Desktop-Verknüpfungslink doppelklicken und das Skript wird ausgeführt. In einem Dialogfeld wird die Anzahl der Minuten angezeigt. Es werden zwei Schaltflächen angezeigt Cancel und OK. Wenn Sie auf X klicken, um das Fenster zu schließen, entspricht dies der Auswahl Cancel.

Nachdem der Timer läuft und Sie erneut darauf doppelklicken, wird die erste laufende Kopie "getötet". Sie können jetzt einen neuen Scren-Lock-Countdown starten oder auf klicken Cancel für keinen Countdown.

Verbleibende Zeit im Systray/Benachrichtigungsbereich anzeigen

Während der Sperrbildschirm-Timer läuft, wird aufgezeichnet, wie viele Minuten noch in der Datei ~/.lock-screen-timer-remaining verbleiben. Sie können diese Datei mit dem Befehl watch anzeigen oder sie in der Taskleiste/Anwendungsanzeigeleiste von Ubuntu anzeigen, wie oben in dieser Antwort gezeigt. Befolgen Sie die Anweisungen in diesen Fragen und Antworten, um die verbleibende Zeit im Infobereich anzuzeigen: ( Kann BASH im Systray als Anwendungsindikator angezeigt werden? ).

14

Vielleicht möchten Sie etwas wie Mkahawa verwenden, um Internetcafés zu verwalten.

1
Chris Matenaers