Jouons avec devilspie et l'opacité

Devilspie est un petit uti­li­taire très pra­tique. En effet, son rôle est "d'écouter" les fenêtres qui s'ouvrent et les com­pare à une série de règles. Si la fenêtre cor­res­pond à une des condi­tions don­nées alors Devilspie lui fait subir une série d'actions. Prenons des exemples concrets : Ouvrir le navi­ga­teur sur le 2ème bureau en plein écran, faire appa­raitre pid­gin sur tous les bureaux à la fois, ne pas faire appa­raître un pro­gramme dans ma barre de tâche ...

Nous allons voir aujourd'hui com­ment gérer l'opacité avec Devilspie.

La transparence facile avec Devilspie

La trans­pa­rence facile avec Devilspie

Je pars du prin­cipe que vous avez déjà un com­po­site mana­ger (xcompmgr ou compiz-fusion) pour pou­voir gérer la trans­pa­rence réelle. On aura aussi besoin de transset-df (une ver­sion amé­lio­rée de trans­set) et bien sûr de devils­pie. Je vous laisse voir si vous avez ces paque­tages sous vos dis­tri­bu­tions res­pec­tives, en tout cas sur Arch c'est pas com­pli­qué, ils y sont tous :)

Devilspie

Ok, donc ce que nous vou­lons c'est de pou­voir ouvrir cer­tains pro­grammes avec une trans­pa­rence don­née. Par exemple, ouvrir mes ter­mi­naux avec une trans­pa­rence de 75%, un conky avec une trans­pa­rence de 50% etc. Donc pou­voir mettre une règle par applications.

Les fichiers de confi­gu­ra­tions de devils­pie se trouvent dans un dos­sier ~/.devilspie et ont pour exten­sion .ds

urxvt.ds

(if
 
(matches (window_class) "URxvt")
(begin
    (wintype "dock")
	(spawn_async (str "transset-df -i " (window_xid) " .75"))
)
)

Si le pro­ces­sus devils­pie est lancé alors à l'ouverture de mon ter­mi­nal urxvt, il lan­cera la com­mande transset-df et mon ter­mi­nal se retrou­vera avec une opa­cité de 75%

Vous avez juste besoin de connaître la class du pro­gramme que vous vou­lez écou­ter. Ici URxvt. Pour connaître une classe faci­le­ment uti­li­sez la petite croix magique xprop.



Post comment as twitter logo facebook logo
Sort: Newest | Oldest

Comment on le lance ? comment il faut l'appeller ? il s'ouvre aussi avec xterm ?

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

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

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.

Comment on le lance ? comment il faut l'appeller ? il s'ouvre aussi avec xterm ?

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

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

@Valentin: Tu confonds encore WM_NAME et WM_CLASS.
Si tu veux que ça marche avec la valeur de WM_NAME met :
(matches (application_name) "tint2")

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: 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.

Work fine !
Ca marche avec XTerm
Parcontre, comment savoir pour les autres ?

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..

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

Et j'espère aussi que tu as xcompmgr d'actif et transset-df d'installé.

@Valentin: WM_CLASS(STRING) = "xterm", "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: Salut,
Tu es sur de ça : (matches (window_class) « xterm ») ?
Vérifie la classe de Xterm.

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

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.

@realniko : Je n'ai jamais réussi à la faire fonctionner et je doute que ça soit de la vraie transparence.

Pourquoi ne pas avoir juste utilisé ceci:
(if (is (window_class) "URxvt") (opacity 75))

Merci, j'attends la suite.

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 !