Un script sympa pour retrouver la transparence des fenêtres sous Gnome Terminal

Si vous tournez sous GNU/Linux depuis un bon moment et plus particulièrement sous Gnome, vous n’avez sans doute pas manqué de remarquer que Gnome-Terminal a perdu ses options de transparence, depuis la version 3.8 de GS. Ceci est dû à un bug dont la résolution était apparemment compliquée, qui a poussé les développeurs de la team Gnome à supprimer tout bonnement cette option. Alors même s’il y a sans doute des choses plus graves dans la vie, cette option était bien pratique pour ceux qui utilisent régulièrement le terminal et qui ont ponctuellement besoin de surveiller ce qui se passe en arrière-plan, lors de l’exécution d’une commande. Si vous avez envie de retrouver cette possibilité il n’y a pas de solution miracle, mais il existe un petit script bien sympathique, dont le but est de permettre aux utilisateurs de gérer la transparence des fenêtres X Window. Si ça vous branche nous allons voir tout de suite comment l’utiliser.

La première chose à faire est bien entendu de vous le procurer, ce que vous pouvez faire en vous rendant sur la page Github du projet, ou en copiant ces quelques lignes dans un fichier texte :

Script :

#!/bin/bash
# vim: set sts=4 sw=4 et tw=0 :
#
# License: BSD

AUTOMAGIC_MODE="false"

: ${XWININFO:=$(type -P xwininfo)}
[[ -z ${XWININFO} ]] && { echo "You need to install xwininfo"; exit 1; }
: ${XPROP:=$(type -P xprop)}
[[ -z ${XPROP} ]] && { echo "You need to install xprop"; exit 1; }

TRANSPARENCY_PERCENT=$1
[[ -z ${TRANSPARENCY_PERCENT} ]] && { echo "Usage: $0 "; exit 1; }

if [[ ${AUTOMAGIC_MODE} != true ]]; then
    echo "Click on a terminal window to set its transparency as specified (${TRANSPARENCY_PERCENT}%)"
    TERMINAL_WINDOW_XID=$("$XWININFO" | sed -n 's/.*Window id: \\([0-9a-fx]\\+\\).*/\\1/p')
else
    # This is very fragile
    TERMINAL_WINDOW_XID=$("$XWININFO" -root -tree | grep -v "Terminal" | sed -n 's/^[[:space:]]\\+\\([0-9a-fx]\\+\\).*gnome-terminal.*/\\1/p')
fi

if [[ ${TRANSPARENCY_PERCENT} = 100 ]]; then
    TRANSPARENCY_HEX="0xffffffff"
elif [[ ${TRANSPARENCY_PERCENT} = 0 ]]; then
    TRANSPARENCY_HEX="0x00000000"
else
    TRANSPARENCY_HEX=$(printf "0x%x" $((4294967295/100 * $TRANSPARENCY_PERCENT)))
fi

echo "Setting transparency to $TRANSPARENCY_HEX (${TRANSPARENCY_PERCENT}%)"
for each in $TERMINAL_WINDOW_XID; do
    "$XPROP" -id $each -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY $TRANSPARENCY_HEX
done

Une fois que c’est fait enregistrez le fichier dans le répertoire de votre choix, en lui donnant le nom que vous voulez, l’extension .sh et les droits d’exécution à l’aide d’un chmod +x "nom du script".

Pour l’utiliser ensuite, c’est très simple. Il suffit d’ouvrir un terminal dans le dossier qui héberge le script et de le lancer à l’aide de la commande suivante où gterm-t.sh est le nom que j’ai donné au script et où 90 représente le taux de transparence souhaité :

./gterm-t.sh 90

Vous aurez alors un retour de ce type :

Click on a terminal window to set its transparency as specified (90%)
Setting transparency to 0xffffffff (90%)

Une petite croix va également apparaître, afin de vous permettre de cliquer sur la fenêtre que vous voulez rendre transparente (celle de votre terminal par exemple) :

Si vous voulez aller plus loin (sachant que cela concerne « toutes » les fenêtres de type X Window) vous passer l’option AUTOMAGIC_MODE="false" de « false » à « true », pour activer le taux de transparence à toutes les fenêtres « X ».

Sur la capture ci-dessous vous pouvez voir que la fenêtre de Gedit est également passée à 90% de transparence.

Concrètement et comme je le disait plus haut ce n’est pas la solution miracle, mais c’est toujours mieux que rien et puis ça fait très « So Geek ». Nous n’allons donc pas nous en priver :). Vous pouvez bien entendu parfaire le tout à l’aide d’un lanceur personnalisé, vous permettant d’exécuter la commande en 1 clic , quand vous en avez besoin.

Amusez-vous bien.

source

Vus : 1486
Publié par La vache libre : 587