4 de junho de 2018 Atualização
Um programa muito superior chamado multi-timer
foi criado: Um cronômetro para configurar diferentes alarmes simultaneamente
Temporizador da tela de bloqueio
Crie seu próprio Screen Lock Timer em vez de aplicativos de terceiros
Embora existam aplicativos de terceiros para fazer isso, você pode criar seus próprios. Resumo das etapas:
- Use o gedit para criar script
lock-screen-timer
- Copie e cole o código desta janela para
lock-screen-timer
- Marcar
lock-screen-timer
como executável
- Teste-o!
- Configurar 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. Avisos de bloqueio iminentes aos 15, 10, 5, 3, 2 e 1 minuto (s) restantes (s) usando mensagem e som. Use o zenity para obter o número de minutos (o padrão é 30).
Edit 2 (Nov 20,2016): alteração de código para eliminar o script anterior anterior.
Edit 3 (Jan 20,2017): Revise matando o código de script anterior. Adicione mensagem informativa se a versão anterior já estiver em execução e finalizada.
Edit 4 (Feb 4,2017): Execute um loop para várias contagens regressivas sem precisar clicar novamente no ícone da área de trabalho. ie Lavanderia - 16 minutos para enxaguar o ciclo (amaciante), 13 minutos para carregar a secadora, 58 minutos para retirar a secadora.
Edição 5 (11 de fevereiro de 2017): escreva os minutos restantes para
/tmp/lock-screen-timer-remaining
. Isso permite que outros programas exibam a quantidade de tempo antes que a tela seja bloqueada.
Edit 6 (Aug 07,2017): Altere o /tmp/
arquivo de trabalho ~/.
para suportar vários usuários na rede.
EDIT: Observe 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.
Edição 8 (12 de novembro de 2017): adicione suporte ao WSL (Windows 10 Subsystem para Linux). Observe que você precisa adicionar VcXsrv
e ubuntu-desktop
ou xubuntu-desktop
(preferencialmente) usar a GUI do Linux na WSL. O tempo restante da exibição da bandeja do sistema / área de notificação do Windows 10 requer a complementação do que indicator-sysmonitor
faz no Linux. Um futuro powershell.exe
script está planejado para o suporte da área de notificação do Windows 10.
Edit 9 (Feb 19,2018): Corrija a animação sem a \
sequência "|, /, ─, \" da pizza giratória.
Use o gedit para criar script lock-screen-timer
Abra o Terminal
uso de Ctrl+ Alt+ Te digite:
gedit lock-screen-timer
Copie e cole o código da janela abaixo para lock-screen-timer
Volte para 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="$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.
Volte para a gedit
janela vazia e cole o código usando Ctrl+ V. Salve o arquivo e saia do editor de volta ao prompt de comando.
Marcar lock-screen-timer
como executável
Agora precisamos tornar o script executável digitando:
chmod +x lock-screen-timer
Teste-o!
Antes de chamar o script a partir da GUI, vamos chamá-lo a partir do terminal para podermos ver se alguma mensagem de erro é exibida:
~/lock-screen-timer
Você é solicitado pelo número de minutos:
Defina o número de minutos desejado e clique em OK para iniciar o cronômetro. Quando restam 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 estiver bloqueada, você precisará digitar sua senha para desbloquear a tela.
Configurar o Nautilus para executar scripts bash
O Nautilus define o que acontece quando clicamos duas vezes em um script executável quando a janela é exibida ou um link na área de trabalho. O comportamento normal é editar o script usando gedit
. Queremos mudar esse comportamento para que seja executado.
Inicie o Nautilus e navegue para o diretório que contém lock-screen-timer
. Clique esquerdo uma vez para focar. Passe o mouse sobre a barra de menus superior até que o menu "Edição de arquivo ..." seja exibido, use:
- Clique
Edit
no menu suspenso
- Clique na
Properties
opção
- Clique na
Behavior
guia
- Observe os botões de opção de rádio em
Executable Text Files
- Verifique o botão de opção
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. Caso contrário, navegue até o script e clique nele uma vez para focar. Então use:
- Clique com o botão direito do mouse no arquivo e as opções do menu de contexto aparecem.
- 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 área de trabalho.
Agora você pode clicar duas vezes no link de atalho da área de trabalho e o script é executado. Uma caixa de diálogo aparece para obter o número de minutos. Dois botões são apresentados Cancele OK. Se você clicar no botão X
para fechar a janela, será o mesmo que selecionar Cancel.
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 bloqueio de scren ou clicar Cancelem sem contagem regressiva.
Tempo de exibição restante na área da bandeja / notificação
Enquanto o temporizador da tela de bloqueio estiver em execução, ele registra quantos minutos restam no arquivo ~/.lock-screen-timer-remaining
. Você pode olhar para esse arquivo com o watch
comando ou exibi-lo na barra de indicadores 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 nesta seção de perguntas e respostas: ( O BASH pode ser exibido no sistema como indicador de aplicativo? ).