NoneBash : отображать простую синусоидальную анимацию в заголовке активного окна
Я использую Xubuntu 18.04.2 LTS с базовой темой Greybird. Мой файловый менеджер - Nemo (3.8.6), а менеджер оконного оформления - xfwm4.
Благодаря этому bash script1 (код ниже и исходный код здесь https://forum.ubuntu-fr.org/viewtopic.php?pid=22123363) я могу отобразить простую синусоиду в окне консоли. Эта анимация также автоматически адаптируется при изменении размера окна:
[Script1]
#!/bin/bash
motif="⠁⠂⠄⡀⢀⠠⠐⠈ "
tempo=0.04
recalcule() {
columns=$( tput cols )
repet=$(( columns / longMotif ))
reste=$(( columns % longMotif ))
}
affPointApoint() {
longChaine=${#1}
for (( i=0; i<$longChaine; i++ )); do
printf "${1:$i:1}"
trap 'recalcule' SIGWINCH
sleep $tempo
done
}
longMotif="${#motif}"
while :; do
recalcule
tput clear
for (( x=0; x<$repet; x++ )); do
affPointApoint "$motif"
done
affPointApoint "${motif:0:$reste}"
done
Теперь я хотел бы отобразить эту простую синусоиду в окне, отличном от консольного. Возможно ли это сделать даже при оформлении активного окна, например, рядом с заголовком окна?
Моя первая идея - использовать wmctrl с script2 ниже, но мне не удалось это сделать. Как вы думаете, вы могли бы помочь? Спасибо!
[Скрипт2]
#!/bin/bash
while true
do
wmctrl -r :ACTIVE: -N "$(awk -F' \\|\\|' '{print $1}' <<< $(xdotool getwindowfocus getwindowname)) || $(sinusoid variable here)"
sleep .1
done
Спасибо за ваше время и помощь!
1 ответ
На самом деле работает следующее (запуск в терминале, наведение на другие окна); Я надеюсь, что это то, о чем вы думали:
#!/bin/bash
motif="⠁⠂⠄⡀⢀⠠⠐⠈ "
tempo=0.04
len=${#motif}
i=0
while true
do
left=${motif:0:i}
right=${motif:i:len}
wmctrl -r :ACTIVE: -N "${right}${left}"
i=$((i+1))
[ $i -eq $len ] && i=0
sleep 0.1
done