Posted on May 11, 2009 - by Jérôme M.
Jouons avec devilspie et l’opacité
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.






Visit My Website
May 12, 2009
Permalink
Di@bl@l said:
Merci, j’attends la suite.
Visit My Website
August 27, 2009
Permalink
ufffstok said:
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 !
Visit My Website
May 12, 2009
Permalink
realniko said:
Pourquoi ne pas avoir juste utilisé ceci:
(if (is (window_class) « URxvt ») (opacity 75))
Visit My Website
May 12, 2009
Permalink
Jérôme M. said:
@realniko : Je n’ai jamais réussi à la faire fonctionner et je doute que ça soit de la vraie transparence.
Visit My Website
June 5, 2009
Permalink
Alexisonfire said:
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.
Visit My Website
July 16, 2009
Permalink
Valentin said:
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
Visit My Website
July 16, 2009
Permalink
Jérôme M. said:
@Valentin: Salut,
Tu es sur de ça : (matches (window_class) « xterm ») ?
Vérifie la classe de Xterm.
Visit My Website
July 16, 2009
Permalink
Valentin said:
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 ?
Visit My Website
July 16, 2009
Permalink
Jérôme M. said:
@Valentin: WM_CLASS(STRING) = « xterm », « XTerm »
Visit My Website
July 16, 2009
Permalink
Jérôme M. said:
Et j’espère aussi que tu as xcompmgr d’actif et transset-df d’installé.
Visit My Website
July 17, 2009
Permalink
Valentin said:
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
Visit My Website
July 17, 2009
Permalink
Jérôme M. said:
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..
Visit My Website
July 17, 2009
Permalink
Valentin said:
Work fine !
Ca marche avec XTerm
Parcontre, comment savoir pour les autres ?
Visit My Website
July 17, 2009
Permalink
Jérôme M. said:
@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.
Visit My Website
July 17, 2009
Permalink
Valentin said:
Ben,
MERCI
Visit My Website
July 22, 2009
Permalink
Valentin said:
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 !
Visit My Website
July 22, 2009
Permalink
Jérôme M. said:
@Valentin: Tu confonds encore WM_NAME et WM_CLASS.
Si tu veux que ça marche avec la valeur de WM_NAME met :
Visit My Website
August 3, 2009
Permalink
thuban said:
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
Visit My Website
October 29, 2009
Permalink
valentin2105 said:
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
Visit My Website
October 29, 2009
Permalink
Jérôme M. said:
C’est un script perl http://arch.pastebin.com/m5580d98a
Visit My Website
October 29, 2009
Permalink
valentin2105 said:
Comment on le lance ? comment il faut l’appeller ? il s’ouvre aussi avec xterm ?