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

10

Gibt es eine Anwendung für Ubuntu, die den Computer nach einer festgelegten Zeit (z. B. 30 Minuten) sperrt? Ich brauche es für Kinder, um die Zeit zu begrenzen, in der sie Cartoons schauen. ZB 30 Minuten beobachten und dann PC sperren, wobei ein Elternteil es entsperren muss.

Unter Windows habe ich die Eyes Relax-App verwendet. Sie zeigt einen schwarzen Bildschirm und einen grünen Fortschrittsbalken (verbleibende Zeit zum Entsperren des PCs) und erfordert ein Kennwort, um die Sperre aufzuheben.

Dmitriy
quelle
Nur neugierig, ob eine der folgenden Antworten für Sie funktioniert hat?
WinEunuuchs2Unix
Ich werde sie testen, wenn ich die Chance bekomme und die Antwort markieren
Dmitriy
Ich habe gerade ähnliche Fragen und Antworten entdeckt, die von Nutzen sein können. 1) askubuntu.com/questions/715721/… 2) askubuntu.com/questions/68918/… und 3) askubuntu.com/questions/696620/…
WinEunuuchs2Unix

Antworten:

15

Update vom 4. Juni 2018

Es wurde ein viel besseres Programm namens multi-timererstellt: 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 dafür Anwendungen von Drittanbietern gibt, können Sie Ihre eigenen erstellen. Zusammenfassung der Schritte:

  • Verwenden Sie gedit, um ein Skript zu erstellen lock-screen-timer
  • Kopieren Sie Code aus diesem Fenster und fügen Sie ihn in ein lock-screen-timer
  • Mark lock-screen-timerals ausführbares
  • Probier es aus!
  • Konfigurieren Sie Nautilus so, dass Bash-Skripte ausgeführt werden
  • Erstellen Sie einen Desktop-Verknüpfungslink
  • Überwachen Sie die verbleibende Zeit

Bearbeiten 1 (19. November 2016): Endgültige Version. Bevorstehende Sperrwarnungen nach 15, 10, 5, 3, 2 und 1 Minute (n) verbleiben mit Nachricht und Ton. Verwenden Sie Zenity, um die Anzahl der Minuten zu ermitteln (standardmäßig 30).

Bearbeiten 2 (20.11.2016): Codeänderung zum Beenden des vorherigen Schlafskripts .

Bearbeiten 3 (20. Januar 2017): Überarbeiten Sie das Beenden des vorherigen Skriptcodes . Informationsmeldung hinzufügen, wenn die vorherige Version bereits ausgeführt und beendet wurde.

Bearbeiten 4 (4. Februar 2017): Führen Sie eine Schleife für mehrere Countdowns aus, ohne erneut auf das Desktop-Symbol klicken zu müssen. dh Wäsche Nacht - 16 Minuten zum Spülen (Weichspüler), 13 Minuten zum Laden des Trockners, 58 Minuten zum Herausnehmen aus dem Trockner.

Bearbeiten 5 (11. Februar 2017): Schreiben Sie die verbleibenden Minuten an /tmp/lock-screen-timer-remaining. Dadurch können andere Programme die Zeit anzeigen, bevor der Bildschirm gesperrt ist.

Bearbeiten 6 (Aug 07,2017): Ändern Sie die /tmp/Arbeitsdatei so ~/., dass mehrere Benutzer im Netzwerk unterstützt werden.

BEARBEITEN: Beachten Sie, dass das Skript von ogg123 abhängt, um den Erinnerungston abzuspielen. Dieses Programm ist Teil des Vorbis-Tool-Pakets aus dem Universum-Repository. Das hier vorgestellte Skript versucht auch, das hier gefundene 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 hinzufügen VcXsrvund / ubuntu-desktopoder xubuntu-desktop(bevorzugt) Linux-GUI in WSL verwenden müssen. Die Anzeige der verbleibenden Zeit in der Taskleiste / im Benachrichtigungsbereich von Windows 10 erfordert eine Ergänzung indicator-sysmonitorder Funktionen unter Linux. Für die powershell.exeUnterstützung des Windows 10-Benachrichtigungsbereichs ist ein zukünftiges Skript geplant.

Bearbeiten 9 (19. Februar 2008): Die Animation wurde korrigiert\ , bei der die Sequenz "|, /, ─, \" der sich drehenden Pizza fehlte .

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

Öffnen Sie das Terminalusing Ctrl+ Alt+ Tund geben Sie Folgendes ein:

gedit lock-screen-timer

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

Wechseln Sie zurück zu diesem Bildschirm und kopieren Sie den folgenden Code, indem Sie ihn markieren und Ctrl+ drücken 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 geditFenster und fügen Sie den Code mit Ctrl+ ein V. Speichern Sie die Datei und beenden Sie den Editor zurück zur Eingabeaufforderung.

Mark lock-screen-timerals ausführbares

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 über die 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:

Bildschirm-Timer sperren

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) übrig sind, ertönt ein Systemton und eine Meldungsblase zeigt an, wann der Bildschirm gesperrt wird. Nachdem der Bildschirm gesperrt ist, müssen Sie Ihr Passwort eingeben, um den Bildschirm zu entsperren.

Konfigurieren Sie Nautilus so, dass Bash-Skripte ausgeführt werden

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

Starten Sie Nautilus und navigieren Sie zu dem Verzeichnis, das enthält lock-screen-timer. 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 EditDropdown-Menü
  2. Klicken Sie auf die PropertiesOption
  3. Klicken Sie auf die BehaviorRegisterkarte
  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-timernoch Fokus. Wenn nicht, navigieren Sie zum Skript und klicken Sie einmal mit der linken Maustaste darauf, um es zu fokussieren. Dann benutze:

  • Klicken Sie mit der rechten Maustaste auf die Datei und die Kontextmenüoptionen werden angezeigt.
  • Wählen Sie aus dem Menü Make Link.
  • Ein neues Symbol wird angezeigt Link to lock-screen-timer.
  • 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. Ein Dialogfeld wird angezeigt, in dem die Anzahl der Minuten angezeigt wird. Es werden zwei Schaltflächen angezeigt Cancelund OK. Wenn Sie auf klicken X, 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 Countdown Cancelfür die Scren-Sperre starten oder auf "Kein Countdown" klicken .

Anzeige der verbleibenden Zeit im Systray- / Benachrichtigungsbereich

Während der Timer für den Sperrbildschirm ausgeführt wird, wird aufgezeichnet, wie viele Minuten noch in der Datei verbleiben ~/.lock-screen-timer-remaining. Sie können diese Datei mit dem watchBefehl anzeigen oder in der Taskleiste / Anwendungsanzeigeleiste von Ubuntu anzeigen, wie oben in dieser Antwort gezeigt. Befolgen Sie die Anweisungen in diesem Q & A, um die im Benachrichtigungsbereich verbleibende Zeit anzuzeigen: ( Kann BASH als Anwendungsindikator in Systray angezeigt werden? ).

WinEunuuchs2Unix
quelle
Kinder-TV-Timer 1 gibt Kinder-TV-Timer: Befehl nicht gefunden. Gibt es eine Möglichkeit, eine Verknüpfung auf dem Desktop oder in der Taskleiste zu erstellen? Um einfach darauf zu klicken und die Anwendung zu aktivieren?
Dmitriy
Die Datei ist da. Wenn ich darauf doppelklicke, wird sie in gedit geöffnet. Ich habe alle Ihre Befehle ausgeführt
Dmitriy
Ich habe die letzte Zeile in geändert ~/kids-tv-timer 1. Entschuldigung, der Pfad fehlte vorne. Versuch das.
WinEunuuchs2Unix
Ja, das hat geholfen. Aber du hast die 2. Frage nicht beantwortet? :)
Dmitriy
@geotavros Eine Fortschrittsanzeige, die sich über dem Video befindet, würde einen völlig anderen Ansatz erfordern als der sleepim kids-tv-timerBash-Skript verwendete Befehl . Es wäre möglich, eine Schleife zu erstellen, in der jede Minute eine Benachrichtigungsblase, die etwa 10 Sekunden dauert, über dem Video mit den Worten "Noch 29 Minuten", dann "Noch 28 Minuten" usw. auftauchte. Um sie jedoch zu überschreiben, müssten Sie sie noch überschreiben Unterbrechen Sie das Video, beenden Sie es kids-tv-timerund starten Sie es mit einer neuen Zeiteinteilung neu. Es ist fast einfacher, die Zeit ablaufen zu lassen, sich anzumelden und neu zu starten. kids-tv-timerLassen Sie es mich wissen.
WinEunuuchs2Unix
1

Vielleicht möchten Sie etwas wie Mkahawa verwenden , mit dem Internetcafés verwaltet werden.

Chris Matenaers
quelle
1
Das sieht zu kompliziert aus. Es gibt Server und Client. Wie installiere ich es?
Dmitriy