Temporizador de tela de bloqueio
Crie seu próprio Temporizador de bloqueio de tela em vez de aplicativos de terceiros
Embora existam aplicativos de terceiros para fazer isso, você pode criar o seu próprio. Resumo das etapas:
- Use
gedit
para criar o scriptlock-screen-timer
- Copie e cole o código desta janela para
lock-screen-timer
- Marcar
lock-screen-timer
como executável - Teste!
- Configure o Nautilus para executar scripts bash
- Criar link de atalho na área de trabalho
- Monitorar o tempo restante
Use gedit
para criar o script lock-screen-timer
Abra o Terminal
usando Ctrl + Alt + T e digite:
gedit lock-screen-timer
Copie e cole o código da janela abaixo para lock-screen-timer
Volte a esta tela e copie o seguinte código destacando-o e pressionando 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 Mar 22, 2018.
# UPDT: Updated to support WSL (Windows Subsystem for Linux)
# Remove hotplugtv. Replace ogg with paplay.
# 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="" # 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 "$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 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.
Em seguida, volte para a janela gedit
vazia e cole o código usando Ctrl + V . Salve o arquivo e saia do editor de volta ao prompt de comando.
Marque lock-screen-timer
como um executável
Agora, precisamos tornar o script executável digitando:
chmod +x lock-screen-timer
Teste-o!
Antes de chamar o script da GUI, nós o chamaremos do terminal para que possamos ver se alguma mensagem de erro é exibida:
~/lock-screen-timer
Você é solicitado a informar o número de minutos:
Defina o número desejado de minutos e clique em OK para iniciar o cronômetro. Quando há 15, 10, 5, 3, 2 e 1 minuto (s), um som do sistema é ouvido e um balão de mensagem aparece avisando quando a tela será bloqueada. Depois que a tela é bloqueada, você precisa digitar sua senha para desbloquear a tela.
Configure o Nautilus para executar scripts bash
O Nautilus define o que acontece quando clicamos duas vezes em um script executável quando é a janela de exibição de arquivos ou um link na área de trabalho. O comportamento normal é editar o script usando gedit
. Queremos mudar esse comportamento de tal forma que ele seja executado.
Inicie o Nautilus e navegue até o diretório contendo lock-screen-timer
. Esquerda clique nela uma vez para dar foco. Passe o mouse sobre a barra de menu superior até que o menu "File Edit ..." apareça, use:
- Clique no menu suspenso
Edit
- Clique em
Properties
option - Clique na guia
Behavior
- Observe os botões de opção de rádio em
Executable Text Files
- Verifique o botão de opções
Run executable text files when they are opened
Criar link de atalho na área de trabalho
Da seção anterior lock-screen-timer
ainda tem foco. Se não, navegue até o script e clique nele uma vez para dar foco. Então use:
- Clique com o botão direito no arquivo e as opções do menu de contexto são exibidas.
- No menu, selecione
Make Link
. - Um novo ícone aparece chamado
Link to lock-screen-timer
. - Clique com o botão esquerdo no novo ícone e arraste-o do Nautilus para a sua área de trabalho.
Agora você pode clicar duas vezes no link de atalho da área de trabalho e o script é executado. Aparece uma caixa de diálogo para obter o número minutos. Dois botões são apresentados Cancel e OK . Se você clicar em X
para fechar a janela, será o mesmo que selecionar Cancelar .
Depois que o cronômetro estiver em execução e você clicar duas vezes nele novamente, a primeira cópia em execução será "eliminada". Agora você pode iniciar uma nova contagem regressiva de scren lock ou clicar em Cancelar para nenhuma contagem regressiva.
Tempo de exibição restante na área do systray / notificação
Enquanto o temporizador da tela de bloqueio está sendo executado, ele registra quantos minutos restam no arquivo ~/.lock-screen-timer-remaining
. Você pode olhar esse arquivo com o comando watch
ou exibi-lo na barra do sistema da bandeja do sistema / aplicativo do Ubuntu, como mostrado na parte superior desta resposta. Para exibir o tempo restante na área de notificação, siga as instruções desta Q & amp; A: ( O BASH pode exibir na bandeja do sistema como indicador de aplicativo? ).