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
Другие вопросы по тегам