Application qui verrouillera l'écran après une durée définie pour Ubuntu

10

Existe-t-il une application pour Ubuntu qui verrouillera l'ordinateur après un laps de temps défini (par exemple 30 minutes). J'en ai besoin pour que les enfants limitent le temps qu'ils regardent les dessins animés. Par exemple, 30 minutes de visionnage, puis les verrous du PC nécessitant un parent pour le déverrouiller

Pour Windows, j'ai utilisé l'application Eyes Relax, elle affiche un écran noir et une barre de progression verte (il reste du temps pour déverrouiller le PC) et nécessite un mot de passe pour annuler le verrouillage.

Dmitriy
la source
Juste curieux de savoir si l'une des réponses ci-dessous a fonctionné pour vous?
WinEunuuchs2Unix
Je vais les tester quand j'en aurai l'occasion et marquer la réponse
Dmitriy
Je viens de découvrir des questions et réponses similaires qui peuvent être utiles 1) askubuntu.com/questions/715721/… 2) askubuntu.com/questions/68918/… et 3) askubuntu.com/questions/696620/…
WinEunuuchs2Unix

Réponses:

15

Mise à jour du 4 juin 2018

Un programme appelé bien supérieur multi-timera été créé: Une minuterie pour configurer simultanément différentes alarmes

Minuterie d'écran de verrouillage

systray.gif

Créez votre propre minuterie de verrouillage d'écran au lieu d'applications tierces

Bien qu'il existe des applications tierces pour ce faire, vous pouvez créer la vôtre. Résumé des étapes:

  • Utilisez gedit pour créer un script lock-screen-timer
  • Copiez et collez le code de cette fenêtre vers lock-screen-timer
  • Marquer lock-screen-timercomme exécutable
  • Essaye-le!
  • Configurer Nautilus pour exécuter des scripts bash
  • Créer un lien de raccourci sur le bureau
  • Surveiller le temps restant

Edit 1 (19 novembre 2016): version finale. Avertissements de verrouillage imminents à 15, 10, 5, 3, 2 et 1 minute (s) restants à l'aide du message et du son. Utilisez la zénité pour obtenir le nombre de minutes (par défaut à 30).

Edit 2 (20 novembre 2016): changement de code pour tuer le script de sommeil précédent.

Édition 3 (20 janvier 2017): révision de la suppression du code de script précédent. Ajoutez un message d'information si la version précédente était déjà en cours d'exécution et terminée.

Edit 4 (4 février 2017): exécuter en boucle pour plusieurs comptes à rebours sans avoir à re-cliquer sur l'icône du bureau. c.-à-d. nuit de lavage - 16 minutes pour rincer le cycle (assouplissant), 13 minutes pour charger la sécheuse, 58 minutes pour sortir de la sécheuse.

Edit 5 (11 février 2017): Ecrivez les minutes restantes à /tmp/lock-screen-timer-remaining. Cela permet à d'autres programmes d'afficher la durée avant le verrouillage de l'écran.

Edit 6 (août 07,2017): changez le /tmp/fichier de travail pour ~/.prendre en charge plusieurs utilisateurs sur le réseau.

EDIT: Notez que le script dépend de ogg123 pour jouer le son de rappel. Ce programme fait partie du package vorbis-tool du référentiel de l'univers. Le script tel que présenté ici tente également d'utiliser le script hotplugtv qui se trouve ici.

Edit 8 (12 novembre 2017): ajout de la prise en charge WSL (sous-système Windows 10 pour Linux). Notez que vous devez ajouter VcXsrvet ubuntu-desktopou xubuntu-desktop(de préférence) pour utiliser l'interface graphique Linux dans WSL. L'affichage du temps restant dans la barre d'état système / zone de notification de Windows 10 nécessite de compléter ce qui indicator-sysmonitorfonctionne sous Linux. Un futur powershell.exescript est prévu pour la prise en charge de la zone de notification Windows 10.

Edit 9 (19 février 2018): correction de l'animation manquante dans la \séquence de rotation de pizza "|, /, ─, \".

Utilisez gedit pour créer un script lock-screen-timer

Ouvrez l' Terminalaide de Ctrl+ Alt+ Tet tapez:

gedit lock-screen-timer

Copiez et collez le code de la fenêtre ci-dessous vers lock-screen-timer

Revenez à cet écran et copiez le code suivant en le mettant en surbrillance et en appuyant sur 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.

Revenez ensuite à la geditfenêtre vide et collez le code à l'aide de Ctrl+ V. Enregistrez le fichier et quittez l'éditeur à l'invite de commande.

Marquer lock-screen-timercomme exécutable

Maintenant, nous devons rendre le script exécutable en tapant:

chmod +x lock-screen-timer

Essaye-le!

Avant d'appeler le script depuis l'interface graphique, nous l'appellerons depuis le terminal afin que nous puissions voir si des messages d'erreur sont affichés:

~/lock-screen-timer

Vous êtes invité à indiquer le nombre de minutes:

Minuterie d'écran de verrouillage

Définissez le nombre de minutes souhaité et cliquez sur OK pour démarrer le chronomètre. Lorsqu'il reste 15, 10, 5, 3, 2 et 1 minute (s), un son du système se fait entendre et une bulle de message s'affiche pour vous indiquer quand l'écran sera verrouillé. Une fois l'écran verrouillé, vous devez entrer votre mot de passe pour déverrouiller l'écran.

Configurer Nautilus pour exécuter des scripts bash

Nautilus définit ce qui se passe lorsque nous double-cliquons sur un script exécutable lorsque c'est la fenêtre d'affichage des fichiers ou un lien sur le bureau. Le comportement normal consiste à modifier le script à l'aide de gedit. Nous voulons changer ce comportement de sorte qu'il soit exécuté.

Démarrez Nautilus et accédez au répertoire contenant lock-screen-timer. Faites un clic gauche dessus une fois pour lui donner le focus. Passez la souris sur la barre de menu supérieure jusqu'à ce que le menu "File Edit ..."

  1. Cliquez Editsur le menu déroulant
  2. Cliquez sur l' Propertiesoption
  3. Cliquez sur l' Behavioronglet
  4. Observez les boutons d'option radio sous Executable Text Files
  5. Vérifier le bouton radio Run executable text files when they are opened

Créer un lien de raccourci sur le bureau

De la section précédente a lock-screen-timertoujours le focus. Sinon, accédez au script et faites un clic gauche dessus pour lui donner le focus. Utilisez ensuite:

  • Faites un clic droit sur le fichier et les options du menu contextuel apparaissent.
  • Dans le menu, sélectionnez Make Link.
  • Une nouvelle icône apparaît appelée Link to lock-screen-timer.
  • Faites un clic gauche sur la nouvelle icône et faites-la glisser de Nautilus vers votre bureau.

Vous pouvez maintenant double-cliquer sur le lien de raccourci du bureau et le script est exécuté. Une boîte de dialogue apparaît pour obtenir le nombre de minutes. Deux boutons sont présentés Cancelet OK. Si vous cliquez sur Xpour fermer la fenêtre, cela revient à sélectionner Cancel.

Une fois le chronomètre exécuté et que vous double-cliquez à nouveau dessus, la première copie en cours d'exécution est «tuée». Vous pouvez maintenant démarrer un nouveau compte à rebours de verrouillage de scren ou cliquer Cancelpour aucun compte à rebours.

Afficher le temps restant dans la zone de notification / système

Pendant que la minuterie de l'écran de verrouillage fonctionne, elle enregistre le nombre de minutes restantes dans le fichier ~/.lock-screen-timer-remaining. Vous pouvez consulter ce fichier avec la watchcommande ou l'afficher sur la barre d'état système / barre d'indication d'Ubuntu comme indiqué en haut de cette réponse. Pour afficher le temps restant dans la zone de notification, suivez les instructions de ce Q&R: ( BASH peut-il s'afficher dans la barre d'état système comme indicateur d'application? ).

WinEunuuchs2Unix
la source
kids-tv-timer 1 donne à kids-tv-timer: commande introuvable. Existe-t-il un moyen de créer un raccourci sur le bureau ou dans la barre des tâches? Pour simplement cliquer dessus et activer l'application?
Dmitriy
le fichier est là, si je double-clique dessus il s'ouvre dans gedit. J'ai exécuté toutes vos commandes
Dmitriy
J'ai changé la dernière ligne en ~/kids-tv-timer 1. Désolé le chemin manquait devant. Essayez ça.
WinEunuuchs2Unix
oui, cela a aidé. Mais vous n'avez pas répondu à la 2e question? :)
Dmitriy
@geotavros Un affichage de progression qui se trouve sur la vidéo nécessiterait une approche totalement différente de la sleepcommande utilisée dans le kids-tv-timerscript bash. Il serait possible de créer une boucle où chaque minute une bulle de notification qui dure environ 10 secondes apparaissait sur la vidéo disant "29 minutes à gauche", puis "28 minutes à gauche", etc. interrompre la vidéo, la tuer kids-tv-timeret la redémarrer avec une nouvelle attribution de temps. Il est presque plus facile de laisser le temps expirer, de se connecter et de redémarrer kids-tv-timer.
WinEunuuchs2Unix
1

Vous voudrez peut-être utiliser quelque chose comme Mkahawa , qui est utilisé pour administrer les cybercafés.

Chris Matenaers
la source
1
Cela semble trop compliqué. Il y a un serveur et un client. Comment l'installer?
Dmitriy