Minuterie pour écran de verrouillage
![systray.gif]()
Créez votre propre minuteur de verrouillage d'écran au lieu d'utiliser des applications tierces.
Bien qu'il existe des applications tierces pour ce faire, vous pouvez créer la vôtre. Résumé des étapes :
- Utilice
gedit
pour créer script lock-screen-timer
- Copiez et collez le code de cette fenêtre dans
lock-screen-timer
- Mark
lock-screen-timer
comme un exécutable
- Testez-le !
- Configurer Nautilus pour exécuter les scripts de bash
- Créer un lien vers le raccourci du bureau
- Contrôle du temps restant
Utilice gedit
pour créer script lock-screen-timer
Ouvrez le Terminal
en utilisant Ctrl + Alt + T et le type :
gedit lock-screen-timer
Copiez et collez le code de la fenêtre ci-dessous dans lock-screen-timer
Retournez à cet écran et copiez le code suivant en le mettant en surbrillance et en appuyant sur la touche 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 Nov 13, 2021.
# UPDT: Updated to support WSL (Windows Subsystem for Linux)
# Remove hotplugtv. Replace ogg with paplay.
# May 30 2018 - Cohesion with multi-timer. New sysmonitor indicator style.
# Nov 13 2021 - Wrap long lines with \ continuation. Shorten comments.
# 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 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 countdown work file
if [[ $WSL_running == true ]]; then
# Call lock screen for Windows 10
rundll32.exe user32.dll,LockWorkStation
else
# Call screen saver lock for Unbuntu 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.
Puis basculer à nouveau vers le vide gedit
et coller le code en utilisant Ctrl + V . Enregistrez le fichier et quittez l'éditeur pour revenir à l'invite de commande.
Mark lock-screen-timer
comme un exécutable
Maintenant, nous devons rendre le script exécutable en tapant :
chmod +x lock-screen-timer
Testez-le !
Avant d'appeler le script depuis l'interface graphique, nous allons l'appeler depuis le terminal afin de voir si des messages d'erreur s'affichent :
~/lock-screen-timer
Vous êtes invité à indiquer le nombre de minutes :
![Lock Screen Timer]()
Réglez le nombre de minutes souhaité et cliquez sur OK pour lancer le minuteur. Lorsqu'il reste 15, 10, 5, 3, 2 et 1 minute(s), le système émet un son et une bulle de message apparaît pour indiquer que 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 les scripts de bash
Nautilus définit ce qui se passe lorsque nous double-cliquons sur un exécutable script lorsque c'est la fenêtre d'affichage des fichiers ou un lien sur le bureau. Le comportement normal est d'éditer le script à l'aide de gedit
. Nous voulons changer ce comportement de façon à ce qu'il soit exécuté.
Lancez Nautilus et naviguez dans le répertoire contenant lock-screen-timer
. Cliquez une fois avec le bouton gauche de la souris pour lui donner le focus. Passez la souris sur la barre de menu supérieure jusqu'à ce que le menu "File Edit..." apparaisse, utilisez :
- Cliquez sur
Edit
menu déroulant
- Cliquez sur
Properties
option
- Cliquez sur
Behavior
onglet
- Observez les boutons d'option radio sous
Executable Text Files
- Cocher le bouton radio
Run executable text files when they are opened
Créer un lien vers le raccourci du bureau
De la section précédente lock-screen-timer
a encore de la concentration. Sinon, naviguez jusqu'au script et faites un clic gauche dessus une fois pour lui donner le focus. Puis 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 vers votre bureau.
Vous pouvez maintenant double-cliquer sur le lien du 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 Cancel y OK . Si vous cliquez sur le bouton X
pour fermer la fenêtre, c'est la même chose que de sélectionner Cancel .
Une fois que la minuterie est en marche et que vous double-cliquez à nouveau dessus, la première copie en marche est "tuée". Vous pouvez maintenant lancer un nouveau compte à rebours pour le verrouillage des scren ou cliquer sur Cancel pour aucun compte à rebours.
Afficher le temps restant dans la barre d'état système / zone de notification
Pendant que le minuteur de l'écran de verrouillage fonctionne, il enregistre le nombre de minutes restantes dans le fichier. ~/.lock-screen-timer-remaining
. Vous pouvez consulter ce fichier avec la fonction watch
ou l'afficher dans la barre d'état système / barre d'indicateurs d'applications d'Ubuntu, comme indiqué en haut de cette réponse. Pour afficher le temps restant dans la zone de notification, suivez les instructions de cette question-réponse : BASH peut-il s'afficher dans la barre d'état système comme indicateur d'application ? .