Applicazione che bloccherà lo schermo dopo un determinato periodo di tempo per Ubuntu


10

Esiste un'applicazione per Ubuntu che bloccherà il computer dopo un periodo di tempo definito (ad es. 30 minuti). Ne ho bisogno per i bambini per limitare il tempo che guardano i cartoni animati. Ad esempio, 30 minuti a guardare e poi i blocchi del PC richiedono che un genitore lo sblocchi.

Per Windows ho usato l'app Eyes Relax, che mostra la schermata nera e la barra di avanzamento verde (tempo rimasto per sbloccare il PC) e richiede una password per ignorare il blocco.


Sei solo curioso di sapere se una delle risposte di seguito ha funzionato per te?
WinEunuuchs2Unix,

Li metterò alla prova quando ne avrò la possibilità e segnerò la risposta
Dmitriy,

Ho appena scoperto domande e risposte simili che potrebbero essere utili 1) askubuntu.com/questions/715721/… 2) askubuntu.com/questions/68918/… e 3) askubuntu.com/questions/696620/…
WinEunuuchs2Unix

Risposte:


15

Aggiornamento del 4 giugno 2018

È multi-timerstato creato un programma molto superiore chiamato : un timer per impostare contemporaneamente diversi allarmi

Blocco schermo timer

systray.gif

Crea il tuo timer di blocco schermo anziché applicazioni di terze parti

Sebbene ci siano applicazioni di terze parti per farlo, puoi crearne una tua. Riepilogo dei passaggi:

  • Usa gedit per creare uno script lock-screen-timer
  • Copia e incolla il codice da questa finestra in lock-screen-timer
  • Segna lock-screen-timercome eseguibile
  • Provalo!
  • Configurare Nautilus per eseguire script bash
  • Crea collegamento sul desktop
  • Monitorare il tempo rimanente

Modifica 1 (19 novembre 2016): versione finale. Avvisi di blocco imminenti a 15, 10, 5, 3, 2 e 1 minuto / i rimanenti utilizzando messaggi e audio. Usa zenity per ottenere il numero di minuti (il valore predefinito è 30).

Modifica 2 (Nov 20,2016): modifica del codice per eliminare il precedente copione dormiente.

Modifica 3 (20 gennaio 2017): rivedi l' uccisione del precedente codice di script. Aggiungi un messaggio informativo se la versione precedente era già in esecuzione e terminata.

Modifica 4 (4 febbraio 2007): esegui in loop per più conto alla rovescia senza dover fare nuovamente clic sull'icona del desktop. cioè Notte della biancheria - 16 minuti per lavare il ciclo (ammorbidente), 13 minuti per caricare l'asciugatrice, 58 minuti per estrarla.

Modifica 5 (11 febbraio 2017): Scrivi i minuti rimanenti su /tmp/lock-screen-timer-remaining. Ciò consente ad altri programmi di visualizzare la quantità di tempo prima che lo schermo sia bloccato.

Modifica 6 (ago 07,2017): modifica il /tmp/file di lavoro in modo ~/.da supportare più utenti in rete.

EDIT: Nota che lo script dipende da ogg123 per riprodurre il suono del promemoria. Questo programma fa parte del pacchetto vorbis-tool dal repository universe. Lo script qui presentato tenta anche di utilizzare lo script hotplugtv trovato qui.

Modifica 8 (12 novembre 2017): aggiungi il supporto WSL (sottosistema Windows 10 per Linux). Si noti che è necessario aggiungere VcXsrve ubuntu-desktopo xubuntu-desktop(preferito) utilizzare la GUI di Linux in WSL. La visualizzazione del tempo restante nell'area di notifica / area di notifica di Windows 10 richiede l'integrazione di ciò che indicator-sysmonitoraccade in Linux. È powershell.exeprevisto uno script futuro per il supporto dell'area di notifica di Windows 10.

Modifica 9 (febbraio 19,2018): correzione dell'animazione mancante della \sequenza "|, /, ─, \" di spinning pizza.

Usa gedit per creare uno script lock-screen-timer

Apri Terminalutilizzando Ctrl+ Alt+ Te digita:

gedit lock-screen-timer

Copia e incolla il codice dalla finestra in basso a lock-screen-timer

Torna a questa schermata e copia il seguente codice evidenziandolo e premendo 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.

Quindi tornare alla geditfinestra vuota e incollare il codice usando Ctrl+ V. Salvare il file e uscire dall'editor al prompt dei comandi.

Segna lock-screen-timercome eseguibile

Ora dobbiamo rendere eseguibile lo script digitando:

chmod +x lock-screen-timer

Provalo!

Prima di chiamare lo script dalla GUI, lo chiameremo dal terminale in modo da poter vedere se vengono visualizzati messaggi di errore:

~/lock-screen-timer

Viene richiesto il numero di minuti:

Blocco schermo timer

Impostare il numero desiderato di minuti e fare clic su OK per avviare il timer. Quando mancano 15, 10, 5, 3, 2 e 1 minuto, viene emesso un suono di sistema e viene visualizzato un fumetto che avvisa quando lo schermo verrà bloccato. Dopo aver bloccato lo schermo, è necessario inserire la password per sbloccare lo schermo.

Configurare Nautilus per eseguire script bash

Nautilus definisce cosa succede quando facciamo doppio clic su uno script eseguibile quando si tratta della finestra di visualizzazione dei file o di un collegamento sul desktop. Il comportamento normale è modificare lo script usando gedit. Vogliamo cambiare questo comportamento in modo che venga eseguito.

Avviare Nautilus e navigare nella directory contenente lock-screen-timer. Fai clic sinistro su di esso una volta per dargli fuoco. Passa il mouse sulla barra dei menu in alto fino a quando appare il menu "Modifica file ...", usa:

  1. Fai clic Editsul menu a discesa
  2. Fare clic Propertiessull'opzione
  3. Fare clic sulla Behaviorscheda
  4. Osservare i pulsanti di opzione radio sotto Executable Text Files
  5. Controlla il pulsante di opzione Run executable text files when they are opened

Crea collegamento sul desktop

Dalla sezione precedente è lock-screen-timerancora attivo. In caso contrario, vai allo script e fai clic con il pulsante sinistro del mouse una volta per attivarlo. Quindi utilizzare:

  • Fare clic con il tasto destro sul file e vengono visualizzate le opzioni del menu contestuale.
  • Dal menu selezionare Make Link.
  • Viene visualizzata una nuova icona chiamata Link to lock-screen-timer.
  • Fai clic con il pulsante sinistro del mouse sulla nuova icona e trascinala da Nautilus sul desktop.

Ora puoi fare doppio clic sul collegamento di collegamento sul desktop e lo script viene eseguito. Viene visualizzata una finestra di dialogo per ottenere i minuti numerici. Sono presenti due pulsanti Cancele OK. Se si fa clic su Xper chiudere la finestra, equivale a selezionare Cancel.

Dopo che il timer è in esecuzione e fai di nuovo doppio clic su di esso, la prima copia in esecuzione viene "uccisa". Ora puoi avviare un nuovo conto alla rovescia per il blocco dello scren o fare clic Cancelper nessun conto alla rovescia.

Visualizza tempo rimanente nell'area systray / notifica

Mentre il timer della schermata di blocco è in esecuzione, registra quanti minuti rimangono nel file ~/.lock-screen-timer-remaining. Puoi guardare questo file con il watchcomando o visualizzarlo sulla barra delle applicazioni / barra degli indicatori dell'applicazione di Ubuntu come mostrato nella parte superiore di questa risposta. Per visualizzare il tempo rimanente nell'area di notifica, seguire le istruzioni in queste domande e risposte : ( BASH può essere visualizzato nel systray come indicatore dell'applicazione? ).


kids-tv-timer 1 fornisce timer-tv per bambini: comando non trovato. C'è un modo per creare un collegamento sul desktop o nella barra delle applicazioni? Basta fare clic e attivare l'applicazione?
Dmitriy,

il file è lì, se faccio doppio clic su di esso si apre in gedit. Ho eseguito tutti i tuoi comandi
Dmitriy il

Ho cambiato l'ultima riga in ~/kids-tv-timer 1. Mi dispiace che il percorso mancasse di fronte. Prova questo.
WinEunuuchs2Unix,

sì, questo ha aiutato. Ma non hai risposto alla seconda domanda? :)
Dmitriy,

@geotavros Una visualizzazione dei progressi che si trova sopra il video richiederebbe un approccio totalmente diverso rispetto al sleepcomando usato nello kids-tv-timerscript bash. Sarebbe possibile creare un ciclo in cui ogni minuto viene visualizzata una bolla di notifica che dura circa 10 secondi sul video dicendo "29 minuti rimasti", quindi "28 minuti rimasti", ecc. Tuttavia, per eseguire l'override dovresti comunque interrompere il video, ucciderlo kids-tv-timere riavviarlo con una nuova assegnazione temporale. È quasi più facile far scadere il tempo, accedere e riavviare kids-tv-timerFammi sapere.
WinEunuuchs2Unix

1

Potresti voler usare qualcosa come Mkahawa , che viene utilizzato per amministrare gli internet café.


1
Sembra troppo complicato. C'è server e client. Come lo installo?
Dmitriy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.