web-dev-qa-db-fra.com

Application qui verrouille l'écran après un laps de temps défini pour Ubuntu

Existe-t-il une application pour Ubuntu qui verrouille 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 passent à regarder des dessins animés. Par exemple. 30 minutes à regarder, puis les verrous de l’ordinateur obligeant un parent à le déverrouiller.

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

10
Dmitriy

Mise à jour du 4 juin 2018

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

Verrouiller la minuterie de l'écran

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 les vôtres. Résumé des étapes:

  • Utilisez gedit pour créer le script lock-screen-timer
  • Copiez et collez le code de cette fenêtre dans lock-screen-timer
  • Marquer lock-screen-timer comme un 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 nov. 2016): Version finale. Avertissements de verrouillage imminents à 15, 10, 5, 3, 2 et 1 minute restants avec message et son. Utilisez zenity pour obtenir le nombre de minutes (30 par défaut).

Edit 2 (Nov 20,2016): Changement de code pour supprimer le script en veille précédent.

Edit 3 (Jan 20,2017): Révisez le code de script précédent. Ajouter un message d'information si la version précédente était déjà en cours d'exécution et terminée.

Éditer 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. blanchisserie le soir - 16 minutes pour le cycle de rinçage (assouplissant), 13 minutes pour charger la sécheuse, 58 minutes pour la sortir de la sécheuse.

Éditer 5 (11 février 2017): Écrire les minutes restantes dans /tmp/lock-screen-timer-remaining. Cela permet aux autres programmes d’afficher la durée avant que l’écran ne soit verrouillé.

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

EDIT: Notez que le script dépend de ogg123 pour jouer le son de rappel. Ce programme fait partie du paquet vorbis-tool du référentiel des univers. Le script présenté ici tente également d’utiliser le script script hotplugtv trouvé ici.

Éditez 8 (12 nov. 2017): Ajoutez la prise en charge de WSL (Windows 10 Subsystem for Linux). Notez que vous devez ajouter VcXsrv et ubuntu-desktop ou xubuntu-desktop (recommandé) pour utiliser l'interface graphique Linux dans WSL. L’affichage du temps restant dans la zone de notification et dans la zone de notification de Windows 10 nécessite de compléter ce que indicator-sysmonitor fait sous Linux. Un futur script powershell.exe est prévu pour la prise en charge de la zone de notification Windows 10.

Éditer 9 (19 février 1818): Correction de l'animation ne contenant pas la séquence \ de la pizza en rotation "|, /, \".

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

Ouvrez le Terminal en utilisant Ctrl+Alt+T et type:

gedit lock-screen-timer

Copiez et collez le code de la fenêtre ci-dessous dans 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 fenêtre vide gedit et collez le code à l'aide de Ctrl+V. Enregistrez le fichier et quittez l'éditeur pour revenir à l'invite de commande.

Marquer lock-screen-timer comme un 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 de voir si des messages d'erreur sont affichés:

~/lock-screen-timer

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

Lock Screen Timer

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, un son système est entendu et une bulle apparaît indiquant que l'écran sera verrouillé. Une fois l'écran verrouillé, vous devez entrer votre mot de passe pour le déverrouiller.

Configurer Nautilus pour exécuter des scripts bash

Nautilus définit ce qui se produit lorsque l'on double-clique sur un script exécutable lorsqu'il s'agit de la fenêtre d'affichage des fichiers ou d'un lien sur le bureau. Le comportement normal consiste à éditer le script en utilisant gedit. Nous voulons changer ce comportement pour qu'il soit exécuté.

Démarrez Nautilus et accédez au répertoire contenant lock-screen-timer. Cliquez dessus une fois pour le mettre en évidence. Passez la souris sur la barre de menu supérieure jusqu'à ce que le menu "Fichier Éditer ..." apparaisse, utilisez:

  1. Cliquez sur le menu déroulant Edit
  2. Cliquez sur l'option Properties
  3. Cliquez sur l'onglet Behavior
  4. Observez les boutons d’option de la radio sous Executable Text Files
  5. Bouton d'option de vérification Run executable text files when they are opened

Créer un lien de raccourci sur le bureau

De la section précédente, lock-screen-timer a toujours le focus. Sinon, naviguez jusqu'au script et cliquez une fois dessus pour le mettre en évidence. Alors utilisez:

  • 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 sur votre bureau.

Maintenant, vous pouvez double-cliquer sur le lien de raccourci sur le 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 Cancel et OK. Si vous cliquez sur la touche X pour fermer la fenêtre, la procédure est identique à la sélection de Cancel.

Une fois que le chronomètre est en marche et que vous double-cliquez dessus, la première copie en cours est "tuée". Vous pouvez maintenant commencer un nouveau compte à rebours de verrouillage du scren ou cliquer sur Cancel pour pas de compte à rebours.

Temps d'affichage restant dans la zone de notification/système

Pendant le fonctionnement de l’écran de verrouillage, il enregistre le nombre de minutes restantes dans le fichier ~/.lock-screen-timer-remaining. Vous pouvez consulter ce fichier à l'aide de la commande watch ou l'afficher dans la barre d'état de la barre d'état système/de l'application 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 & A: ( BASH peut-il afficher le tableau de bord en tant qu'indicateur d'application? ).

14
WinEunuuchs2Unix

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

1
Chris Matenaers