O BASH pode ser exibido no systray como indicador de aplicação?

2

Eu tenho um script bash que bloqueia a tela após um determinado período de tempo ( Aplicativo que bloqueará a tela após um determinado período de tempo para o Ubuntu . Gostaria de exibir o tempo restante na barra do sistema do Ubuntu / indicador de aplicação.

    
por WinEunuuchs2Unix 12.02.2017 / 00:34

1 resposta

5

O melhor método que encontrei é o Indicador do Monitor do Sistema deste artigo: webupd8.org - indicador de aplicativo do Ubuntu que exibe o bash . Ele exibe o texto na bandeja do sistema Unity / barra de indicadores do aplicativo que o seu script bash "echos".

O artigo acima é direcionado para o Ubuntu 16.04 com Unity. Para mais informações sobre o Xubuntu, a extensão Gnome-Shell + app-indicator, e o Budgie, acesse o site Developers: fossfreedom / indicator-sysmonitor . Visite também o site para obter instruções de instalação e configuração mais detalhadas.

Instalar e configurar indicator-sysmonitor

Para instalar o Indicador do Monitor do Sistema você precisa primeiro especificar o PPA onde indicator-sysmonitor pode ser encontrado:

sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor
sudo apt-get update
sudo apt-get install indicator-sysmonitor

Agora, execute a GUI "indicator-sysmonitor" do Dash ( Alt + F2 ).

  • Clique na área do systray que aparece com "cpu: 99% mem: 99%"
  • Selecione "Preferências"
  • A guia "Geral" está inicialmente ativa, clique na caixa "Executar na inicialização"
  • Selecione a guia "Avançado"
  • Clique no botão Novo para adicionar um novo controle
  • No campo Sensor, insira custom
  • No campo Descrição, digite Bash Indicator _ No campo de comando digite o nome do seu script bash, ou seja, /mnt/e/bin/indicator-sysmonitor-display
  • Salvar seu novo indicador personalizado
  • Destaque a linha custom e clique no botão Adicionar para ativá-la.
  • Você pode remover as variáveis padrão para "CPU" e "Mem", que podem não ser úteis para você.
  • Alterei o intervalo de tempo de atualização de 2 segundos para .3 segundo. Para apoiar "pizza girando" explicado abaixo.
  • Agora clique no botão Salvar .

Indicador Sysmonitor em ação

Este .gif mostra como fica quando a Bandeja do sistema Unity do Ubuntu é atualizada.

  • No início da animação, nossa saída do systray contém "Brilho: 3000".
  • Em seguida, multi-timer (link abaixo) é iniciado e passa por vários temporizadores.
  • Uma pizza giratória aparece junto com uma contagem regressiva do tempo restante.

NOTA: O indicador do monitor do sistema também exibe "Brilho: 3000". Esta é a configuração diurna para o nível de brilho do hardware da Backlight da Intel (link abaixo).

Script BASH do Indicador Sysmonitor

Crie um script semelhante ao seguinte e atribua-o à variável {Custom} no Sysmonitor Indicator :

#!/bin/bash

# UPDT: May 30 2018 - Cohesion with new multi-timer and old lock-screen-timer.

if [ -f ~/.lock-screen-timer-remaining ]; then
    text-spinner
    Spinner=$(cat ~/.last-text-spinner) # read last text spinner used
    String=$(cat ~/.lock-screen-timer-remaining)
    systray="$Spinner  $String"
else
    systray=""
fi

if [ -f /tmp/display-current-brightness ]; then
    Brightness=$(cat /tmp/display-current-brightness)
    systray="$systray  Brightness: $Brightness"
else
    systray="$systray  Brightness: OFF"
fi

# Below for AU answer: https://sobrelinux.info/questions/274901/is-it-possible-to-show-ip-address-on-top-bar-near-the-time"0.0.0.0" {print ; exit}')
# ip_address=$(ifconfig "$default_interface" | awk 'sub(/.* inet addr:/, "") {print }')
# systray="$systray  $ip_address"

echo "$systray" # sysmon-indidicator will put echo string into systray for us.

exit 0

Depois de informar ao Sysmonitor Indicator o nome do seu script bash, definindo a variável {Custom} , ele executa cada intervalo de atualização. Seja qual for o resultado do seu script bash via o comando echo aparece na bandeja do sistema do Ubuntu.

OBSERVAÇÃO: O script exibe os valores Tempo restante e Exibir nível de brilho . Esses valores são definidos por scripts documentados em Ask Ubuntu : Aplicativo que irá bloquear a tela após um determinado período de tempo para o Ubuntu , Um temporizador para configurar alarmes diferentes simultaneamente e Ajustar automaticamente o brilho da tela com base no nascer e pôr do sol , respectivamente.

Pizza giratória - text-spinner script BASH

O script text-spinner bash cria um efeito de pizza girando percorrendo os caracteres | , / , e \ . Este efeito destaca o fato de que algo está "trabalhando" ou "pensando". Para obter o "efeito de rotação", você deseja alterar o intervalo de atualização Indicador Sysmonitor do padrão 2 segundos para cerca de 0.30 segundos.

Aqui está o script text-spinner bash:

#!/bin/bash

# return '|', '/', '─', '\' sequentially with each call to this script.
# Use ~/.last-text-spinner to store last used

FILE=~/.last-text-spinner

if ! [ -f $FILE ]; then
    echo '|' > $FILE
    exit 124 # ASCII equivalent for '|'. Bash doesn't allow character return codes
fi

LAST=$(cat $FILE) # read last character used

if [[ $LAST == '|' ]]; then
    echo '/' > $FILE
    exit 47 # ASCII equivalent of "/"
elif [[ $LAST == '/' ]]; then  # NOTE: you must have spaces around " == " else code breaks
    echo '─' > $FILE
    exit 9472 # ASCII equivalent
elif [[ $LAST == '─' ]]; then
    echo '\' > $FILE # NOTE: must use single quote because double quote BASH reinterprets
    exit 92 # ASCII
else
    echo '|' > $FILE
    exit 124 # ASCII
fi
    
por WinEunuuchs2Unix 12.02.2017 / 00:34