No próximo artigo, daremos uma olhada em um utilitário chamado Undistract-me. Este script nós irá mostrar um aviso quando os comandos forem concluídos que estamos executando no terminal. Isso pode ser útil quando, após lançar um comando, começarmos a trabalhar em outra coisa. Com ele não precisaremos checar constantemente o terminal para ver se o comando foi completado ou não. O utilitário Undistract-me nos notificará quando um comando de longa duração for concluído. Funcionará em Arch Linux, Debian, Ubuntu e outros derivados.
Este utilitário será útil quando você não for disciplinado o suficiente para sentar e observar a execução dos comandos. O roteiro nós exibe um prompt na área de trabalho quando os comandos de longa execução terminam, para que possamos dedicar nosso tempo a algo diferente de olhar para o terminal enquanto os comandos chegam ao fim.
Instale o Undistract-me
Não distrair-me é disponível nos repositórios Debian padrão e suas variantes, como o Ubuntu. Eu testei no Ubuntu 17.10. Quem quiser pode consultar o código fonte deste script na página por GitHub o projeto.
Para adicioná-lo ao seu sistema, basta executar o seguinte comando no terminal (Ctrl + Alt + T) para instalá-lo:
sudo apt install undistract-me
Quando a instalação terminar, no mesmo terminal, execute o seguinte comando para adicione "não distrair-me" à sua festa:
echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc
Como alternativa, você pode executar este comando para adicioná-lo ao seu Bash:
echo "source /usr/share/undistract-me/long-running.bash\nnotify_when_long_running_commands_finish_install" >> .bashrc
Finalmente atualizar mudanças rodando no mesmo terminal:
source ~/.bashrc
Configurando o Undistract-me
Alterar hora para notificação
Por padrão, Undistract-me considerará qualquer comando que leve mais de 10 segundos para ser concluído como um comando de longa execução. Mas isso pode ser alterado. Este intervalo de tempo pode ser alterado editando e editando o arquivo /usr/share/undistract-me/long-running.bash.
sudo nano /usr/share/undistract-me/long-running.bash
Dentro do arquivo teremos que encontrar a variável "LONG_RUNNING_COMMAND_TIMEOUT" e mude o padrão (10 segundos) por outro valor de sua escolha. Em seguida, salve e feche o arquivo. Não se esqueça de atualizar as alterações executando o comando:
source ~/.bashrc
Ativar / desativar notificações para comandos específicos
Além disso, seremos capazes de desabilitar notificações para comandos específicos. Para fazer isso, teremos que procurar a variável "LONG_RUNNING_IGNORE_LIST" e adicione o comandos para afetar separados por espaços.
Ativar / desativar verificação de janela ativa
Por padrão, a notificação só será exibida se a janela ativa não for a janela na qual o comando é executado. Isso significa que só receberemos a notificação se o comando estiver sendo executado na janela de fundo. Se o comando for executado na janela ativa, a notificação não será exibida. Se quisermos que essa distinção seja feita, seremos capazes de configurar IGNORE_WINDOW_CHECK. Vamos selecionar 1 para pular a verificação da janela.
Habilitar notificação de áudio
O outro recurso interessante do Undistract-me é que você pode definir a notificação de áudio junto com a notificação visual quando um comando é concluído. Por padrão, ele enviará apenas uma notificação visual. Você pode alterar este comportamento definindo a variável UDM_PLAY_SOUND en um inteiro diferente de zero na linha. No entanto, nosso sistema Ubuntu deve ter os utilitários pulseaudio-utils y desktop livre de tema de som instalado para habilitar essa funcionalidade.
Lembre-se de que você deve executar o seguinte comando para atualizar as alterações feitas:
source ~/.bashrc
Testing Undistract-me
É hora de verificar se isso realmente funciona e ver se a notificação será exibida quando os comandos de terminal de longa execução forem concluídos. Agora corra qualquer comando que leve mais de 10 segundos ou o período de tempo que você definiu a configuração Undistract-me.
Para este exemplo, eu simplesmente faço ping em um dos roteadores da minha rede um determinado número de vezes. Este comando levou cerca de 25 segundos para ser concluído. Após completar o comando, recebi a seguinte notificação na área de trabalho.
Lembre-se de que o script Undistract-me relata apenas se o comando fornecido levou mais de 10 segundos para ser concluído e o terminal em que está sendo executado não é a janela ativa. Se o comando for concluído em menos de 10 segundos, você não será notificado. Claro, você pode alterar essa configuração de intervalo de tempo conforme descrevi na seção Configurações.
Acho esta ferramenta muito útil para todos nós que trabalhamos no terminal. E sendo tão simples de usar e instalar, acho que é algo que não deveria faltar em nenhum computador.
Isso tem sistema operacional elementar e é ótimo