Atualização de 4 de junho de 2018
Um programa muito superior chamado multi-timer
foi criado: A timer para configurar alarmes diferentes simultaneamente
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 o gedit para criar o script
lock-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
Editar 1 (19 de novembro de 2016): versão final. Advertências de bloqueio iminentes a 15, 10, 5, 3, 2 e 1 minuto (s) restantes usando mensagem e som. Use zenity para obter o número de minutos (o padrão é 30).
Edit 2 (Nov 20,2016): Alteração de código para matar o script adormecido anterior.
Edit 3 (Jan 20,2017): Revise o código de script anterior. Adicione uma mensagem informativa se a versão anterior já estiver em execução e terminada.
Edit 4 (Feb 4,2017): Executar em loop por várias contagens regressivas sem precisar clicar novamente no ícone da área de trabalho. ou seja, lavanderia noite - 16 minutos para enxaguar ciclo (amaciante), 13 minutos para carregar secador, 58 minutos para tirar do secador.
Editar 5 (Fev 11,2017): Escreva os minutos restantes para %código%. Isso permite que outros programas exibam quantidade de tempo antes que a tela seja bloqueada.
Editar 6 (Ago 07,2017): Altere o arquivo de trabalho /tmp/lock-screen-timer-remaining
para /tmp/
para suportar vários usuários na rede.
EDIT: Note que o script depende do ogg123 para reproduzir o som do lembrete. Este programa faz parte do pacote vorbis-tool do repositório universe. O script apresentado aqui também tenta usar o script hotplugtv encontrado aqui.
Editar 8 (Nov 12,2017): Adicionar suporte ao WSL (Windows 10 Subsystem para Linux). Observe que você precisa adicionar ~/.
e VcXsrv
ou ubuntu-desktop
(preferencial) para usar a GUI do Linux no WSL. A exibição de tempo restante na bandeja do sistema / área de notificação do Windows 10 requer a complementação do que o xubuntu-desktop
faz no Linux. Um futuro script indicator-sysmonitor
está planejado para o suporte à área de notificação do Windows 10.
Edit 9 (Feb 19,2018): Corrija a animação que está faltando a powershell.exe
da pizza girando "|, /, ─, \".
Use o gedit para criar o script \
Abra o lock-screen-timer
usando Ctrl + Alt + T e digite:
gedit lock-screen-timer
Copie e cole o código da janela abaixo para Terminal
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 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="" # 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 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 lock-screen-timer
vazia e cole o código usando Ctrl + V . Salve o arquivo e saia do editor de volta ao prompt de comando.
Marque gedit
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 lock-screen-timer
. Queremos mudar esse comportamento de tal forma que ele seja executado.
Inicie o Nautilus e navegue até o diretório contendo gedit
. 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
lock-screen-timer
- Clique em
Edit
option - Clique na guia
Properties
- Observe os botões de opção de rádio em
Behavior
- Verifique o botão de opções
Executable Text Files
Criar link de atalho na área de trabalho
Da seção anterior Run executable text files when they are opened
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
lock-screen-timer
. - Um novo ícone aparece chamado
Make Link
. - 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 Link to lock-screen-timer
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 X
. Você pode olhar esse arquivo com o comando ~/.lock-screen-timer-remaining
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? ).