O que parece
Você pode imprimir um banner de introdução quando o terminal é aberto usando o script ~/.bashrc
. Se você tiver um figlet ( sudo apt install figlet
), pode tirar proveito de letras grandes para exibir a hora:
Na primeira instância, figlet
é usado para exibir a hora e, na segunda, uma fonte regular é usada.
Exemplos adicionais de tela usando toilet
Esta tela usa fontes do pacote toilet
. O último exemplo usa future
font e é usado no código abaixo. Além disso, o calendário é definido para cor ciano no código abaixo.
O pacote toilet
permite tipos de fontes e estilos de formatação adicionais sobre o pacote figlet
do qual ele é bifurcado. Para instalar o pacote, use sudo apt install toilet
após instalar figlet
conforme descrito acima.
O código
Aqui está o código que você precisa para fazer tudo funcionar. É recomendável colocar esse script no diretório /home/user/bin
, pois ele é adicionado automaticamente ao seu caminho. Este script é chamado de now
, mas você pode usar qualquer nome exclusivo que desejar.
#!/bin/bash
# NAME: now
# PATH: $HOME/bin
# DESC: Display current calendar and time
# CALL: Called from terminal or ~/.bashrc
# DATE: Apr 6, 2017. Modified: Apr 10, 2017.
# NOTE: To display all available toilet fonts use this one-liner:
# for i in ${TOILET_FONT_PATH:=/usr/share/figlet}/*.{t,f}lf; do j=${i##*/}; toilet -d "${i%/*}" -f "$j" "${j%.*}"; done
# calendar current month with today higlighted.
# colors 00=bright white, 31=red, 32=green, 33=yellow, 34=blue, 35=purple,
# 36=cyan, 37=white
printf "3[36m" # color 36=cyan
echo ""; cal;
printf "3[00m" # color bright white (default)
echo ""
tput sc # Save cursor position.
# Move up 9 lines
while [ $((++i)) -lt 10 ]; do tput cuu1; done
tput cuf 25 # Move 25 columns right
# Do we have the toilet package?
if hash toilet 2>/dev/null; then
echo " "$(date +"%I:%M %P")" " | \
toilet -f future --filter border > /tmp/terminal
# Do we have the figlet package?
elif hash figlet 2>/dev/null; then
echo $(date +"%I:%M %P") | figlet > /tmp/terminal
# else use standard font
else
echo $(date +"%I:%M %P") > /tmp/terminal
fi
while IFS= read -r Time; do
printf "3[01;32m" # color green
printf "$Time"
tput cud1 # Up one line
tput cuf 25 # Move 25 columns right
done < /tmp/terminal
tput rc # Restore saved cursor position.
exit 0
Marcar script como executável
Copie este código no seu editor e salve-o no arquivo now
. Em seguida, marque-o como executável usando:
sudo chmod +x now
Adicione o script a ~./bashrc
Quando isso estiver concluído, você pode digitar now
no terminal e você verá o calendário e a hora. Para finalizar tudo e exibi-lo automaticamente toda vez que você abrir o terminal:
- Edite o arquivo
~/.bashrc
- Vá até o final e insira uma nova linha contendo
now
- Salve o arquivo
Agora, ao abrir o terminal, você será saudado com o dia atual destacado no calendário do mês atual seguido pela hora atual.
Dissecando o código
Aqui, veremos resumidamente como o código funciona sem discutir todas as linhas.
figlet
e toilet
packages
O script primeiro verifica se toilet
está instalado com o comando hash
. Se sim, isso é usado para exibir a hora. Se não for usado figlet
se instalado. Se nenhum dos dois estiver instalado, será usada uma fonte regular.
No código acima, um comentário pode ser copiado para sua linha de comando e executado para mostrar as fontes figlet
e toilet
disponíveis no seu terminal:
for i in ${TOILET_FONT_PATH:=/usr/share/figlet}/*.{t,f}lf; do j=${i##*/}; toilet -d "${i%/*}" -f "$j" "${j%.*}"; done
Para alterar a fonte usada na pesquisa por horário, pesquise o código desta linha:
toilet -f future --filter border > /tmp/terminal
e altere o nome da fonte future
para o nome da fonte que você escolher. Lembre-se de que algumas fontes são muito grandes para caber na tela.
Selecionando cores
Defina a cor desejada para o calendário e a hora separadamente. No código acima, observe o comando:
printf "3[36m" # color 36=cyan
Altere os dois últimos dígitos para o código de cores que você deseja usar. De mexer com o código, encontrei estes valores:
00 = branco brilhante, 31 = vermelho, 32 = verde, 33 = amarelo, 34 = azul, 35 = roxo, 36 = ciano, 37 = branco
Se você encontrar códigos de cor adicionais, poste um comentário abaixo ou atualize esta resposta.