Devilspie est un petit utilitaire très pratique. En effet, son rôle est « d’écouter » les fenêtres qui s’ouvrent et les compare à une série de règles. Si la fenêtre correspond à une des conditions données alors Devilspie lui fait subir une série d’actions. Prenons des exemples concrets : Ouvrir le navigateur sur le 2ème bureau en plein écran, faire apparaitre pidgin sur tous les bureaux à la fois, ne pas faire apparaître un programme dans ma barre de tâche …
Nous allons voir aujourd’hui comment gérer l’opacité avec Devilspie.
Je pars du principe que vous avez déjà un composite manager (xcompmgr ou compiz-fusion) pour pouvoir gérer la transparence réelle. On aura aussi besoin de transset-df (une version améliorée de transset) et bien sûr de devilspie. Je vous laisse voir si vous avez ces paquetages sous vos distributions respectives, en tout cas sur Arch c’est pas compliqué, ils y sont tous :)
Devilspie
Ok, donc ce que nous voulons c’est de pouvoir ouvrir certains programmes avec une transparence donnée. Par exemple, ouvrir mes terminaux avec une transparence de 75%, un conky avec une transparence de 50% etc. Donc pouvoir mettre une règle par applications.
Les fichiers de configurations de devilspie se trouvent dans un dossier ~/.devilspie et ont pour extension .ds
urxvt.ds
(if (matches (window_class) "URxvt") (begin (wintype "dock") (spawn_async (str "transset-df -i " (window_xid) " .75")) ) )
Si le processus devilspie est lancé alors à l’ouverture de mon terminal urxvt, il lancera la commande transset-df et mon terminal se retrouvera avec une opacité de 75%
Vous avez juste besoin de connaître la class du programme que vous voulez écouter. Ici URxvt. Pour connaître une classe facilement utilisez la petite croix magique xprop.

21 Commentaires
Merci, j’attends la suite.
Pourquoi ne pas avoir juste utilisé ceci:
(if (is (window_class) « URxvt ») (opacity 75))
@realniko : Je n’ai jamais réussi à la faire fonctionner et je doute que ça soit de la vraie transparence.
il y’a une autre maniére de connaitre la classe de sa fenêtre expliquer dans la doc ubuntu, il suffit de crée un fichier debug.ds dans notre .devilspie et d’y ajouter juste la ligne (debug).
Ensuite on lance la commande devilspie -d en terminal et on a la class et le nom de toutes le fenêtre ouverte.
Bonjour,
J’ai un problème,
J’ai créer /.devilspie et dedans j’ai créer un xterm.ds,
Dedans, j’ai mis :
(if
(matches (window_class) « xterm »)
(begin
(wintype « dock »)
(spawn_async (str « transset-df -i » (window_xid) » .75″))
)
)
Je lance devilspie (par terminal pour voir les erreur) :
(devilspie:6875): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
Et quand j’ouvre Xterm, il s’ouvre normalement …
Je vois pas d’ou viens le problème
@Valentin: Salut,
Tu es sur de ça : (matches (window_class) « xterm ») ?
Vérifie la classe de Xterm.
WM_CLIENT_MACHINE(STRING) = « Pc2vAl »
WM_COMMAND(STRING) = { « xterm » }
WM_ICON_NAME(STRING) = « val@Pc2vAl: ~ »
WM_NAME(STRING) = « val@Pc2vAl: ~ »
Donc c’est bien xterm ?
@Valentin: WM_CLASS(STRING) = « xterm », « XTerm »
Et j’espère aussi que tu as xcompmgr d’actif et transset-df d’installé.
Xcompmgr est lancé avec -c
Transset-df est installer sans problème,
Quand je fais une transparence juste avec transset-df (clique sur xterm), cela marche sans problème,
Mais si je lance devilspie, il me met à chaque fois :
(devilspie:5333): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
Ce n’est pas une erreur mais un warning, et ça n’a pas de rapport avec transset-df. Par contre je suis pas sur que la classe de Xterm soit « xterm ». J’aurais mis « XTerm ». Essai avec ça. Et si ça ne marche toujours pas, je ne sais pas trop..
Work fine !
Ca marche avec XTerm
Parcontre, comment savoir pour les autres ?
@Valentin: Avec xprop. La ligne qui nous interesse est la suivante : WM_CLASS(STRING) = « xterm », « XTerm ».
Il faut donc prendre le deuxième, soit XTerm dans notre cas.
Ben,
MERCI
J’ai encore un problème, j’ai déja mis la transparence dans thunar et xterm, ca marche bien,
Mais quand je veux mettre tint2 transparent,
xprop:
WM_NAME(STRING) = « tint2″
Il n’y as pas 2 nom, et si je met tint2, don’t work !
@Valentin: Tu confonds encore WM_NAME et WM_CLASS.
Si tu veux que ça marche avec la valeur de WM_NAME met :
bonjour!
J’aimerais configurer devilspie, de façon à ce qu’il passe en transparence les fenetres qui n’ont pas le focus…Comment puis-je lui indiquer cela, je n’ai rien vu de tel dans les options.
merci
Super application qu’est ce devilspie !
Mais, dite moi, est il possible de l’utiliser directement pour openbox ou ses composants?
Cela dans l’intention de rendre les menus d’acces sur le bureau…transparent !
Salut Ridgel,
Je voulais savoir, comment fais-t-on pour avoir un script quand on ouvre Xterm (comme sur ton images) ou celle qu’on voit sur quasiment tout les screenshoot d’Arch ? Je suis nouveau sur Arch et j’aimerais ton aide !!
Merci
C’est un script perl http://arch.pastebin.com/m5580d98a
Comment on le lance ? comment il faut l’appeller ? il s’ouvre aussi avec xterm ?