Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 20/01/2023, à 13:33

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Hello,

Je reviens car j'ai peut-être une solution, viable cette fois-ci (du moins je pense roll).

Il existe le mot not pour inverser une condition.

Je vais mettre mon cas en exemple.
J'utilise déjà des règles devilspie pour placer certaines fenêtres (firefox, evolution, xfce4-terminal, virtualbox).
Et je suis sous Xfce, comme on l'aura compris.
J'ai donc des fenêtres que je ne voudrais pas voir bouger : les applications citées ci dessus et des conky et mes tableaux de bord.
J'ai aussi remarqué que toutes ces fenêtres avaient une "window_class" définie.

J'ai testé cette mouture de règles dans mon fichier VirtualboxVM.ds (qui place toutes les autres fenêtres sur le bureau 1) :

(begin
    (if (and (matches (window_name) ".*") (not matches (window_class) "Xfce4-panel|conky|Xfce4-terminal|Firefox-esr|Evolution"))
        (begin
            (set_workspace 1)
        )
    )

    (if (contains (application_name) "VirtualBox")

        (begin

            ; Mes règles de placement persos ici ...
        )
    )
)

On peut jouer aussi sur d'autres propriétés en même temps avec les mots or et and :

(if (and (matches (window_name) ".*") (not (or (matches (window_class) "Xfce4-panel|conky") (contains (application_name) "VirtualBox"))))
    (begin
        (set_workspace 1)
    )
)

par exemple.

Je te l'avais dit, c'est assez lourdingue tongue
Edit: sans parler de la gestion des parenthèses ...

Edit2:
Il faudra peut-être sûrement affiner les règles pour ne pas impacter les fenêtres annexes des applications placées.
Hmmm, pas très clair hmm

Edit3:
Bref, ça demande une période de test avec devilspie -d dans un terminal pour capter les informations de toutes les fenêtres indésirablement déplacées.
Et, ainsi, affiner les règles.

Edit4:
Je sais le mot not n'est pas renseigné dans le manuel de devilspie.
Je viens de découvrir ce mot et il fonctionne.
Je vais faire le signalement de ce manquement au mainteneur.
Je suppose que tu as la même version que moi (sur Debian) : Devil's Pie 0.23.
D'ailleurs, pas très POSIX ... pas d'option --version ! L'option --help renseigne la version.

Dernière modification par Tawal (Le 20/01/2023, à 14:16)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#52 Le 20/01/2023, à 14:16

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Bof... En ce moment c'est ma période de donner dans le lourdingue comme tu dis... Entre ça et l'autre sujet que j'ai en cours sur lequel on joue avec les macro de LibreOffice... Par contre je ne suis pas sûr d'avoir compris ton exemple... Mais j'avoue que je n'ai pas encore pris le temps de me concentrer dessus car je suis sur le départ pour cette aprem...

Dernière modification par Qid (Le 20/01/2023, à 14:17)


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#53 Le 20/01/2023, à 14:24

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Quand je disais "une solution aberrante", c'est que les règles impactaient trop de fenêtres indésirablement.
Là, ce que je te présente, c'est une règle qui exclut des fenêtres "connues" (le dock, les tableaux de bords [ça dépend des DE], conky, ...)

Donc, en gros, tu ouvres une session fraîche.
Tu lances un devilspie -d.
Tu notes toutes les fenêtres et tu crées les règles d'exclusions en fonction des données (window_class, application_name, window_name ...)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#54 Le 23/01/2023, à 17:26

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

coucou
je confirme qu'on a bien la même version de devilspie
par contre je maintiens que je ne vois pas trop comment appliquer le "not"
car je n'ai pas de conky ou de truc du genre qui est impacté : juste les applications :
je ne vais pas donner à devilspie toutes les applications que j'utilise !?
là pour le coups c'est vachement lourd et pas très pratique... wink


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#55 Le 23/01/2023, à 19:46

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

C'est à dire que tu n'expérimentes aucuns désagréments ou comportements non voulus de fenêtre ?
Dans ce cas là, tu peux garder les règles que je traitais d'aberrantes.

Je prends mon cas.
J'ai 3 Bureaux virtuels sous Xfce.
Mon environnement est classique : une barre en haut (tableau de bord), un simili de dock en bas (un autre tableau de bord) et des conkys sur le coté droit.
Tous ces éléments se "répètent" sur chaque Bureau virtuel (même le fond d'écran, identique pour tous).
Lorsque j'applique la règle "aberrante" de devilspie, ces éléments se trouvent impactés par la règle.
Donc quand je suis sur le Bureau 1, tout va bien, tout est affiché.
Par contre, dès que je vais sur le Bureau 2 ou 3, il ne me reste à l'écran que le fond d'écran.
Toutes les fenêtres (dont les tableaux de bords et les conkys) sont sur le Bureau 1.
Mince alors tongue

C'est là qu'intervient ma dernière proposition : le not.
Le principe est d'identifier absolument toutes les fenêtres que l'on veut retrouver sur chaque Bureau.
Puis de les inclure dans le "not" par une propriété (window_name, application_name ...) ou une combinaison de propriétes (avec les and et or).
Le tout pour obtenir une règle conditionnelle typique :
SI window_name = .* ET SI N'EST PAS combinaison définissant les fenêtres à ne pas bouger
ALORS bouger sur Bureau 1.
Ce qui donne pour mon cas :

(if (and (matches (window_name) ".*") (not (or (is (window_role) "Panel") (is (window_class) "conky"))))
   (set_workspace 1)
)

Les informations pour window_role et window_class sont obtenues par prospection avec

devilspie -d

(cf. #17)

Edit:
quelques corrections.
Et tu peux mettre 3,4... propriétés dans un and ou or.
Pour illustrer, mon cas ci-dessus ne fonctionne pas. Il manque une fenêtre importante : Le Bureau.

(if (and (matches (window_name) ".*") (not (or (is (window_role) "Panel") (is (application_name) "xfdesktop") (is (window_class) "conky"))))
   (set_workspace 1)
)

Là le or s'applique sur 3 bits. Le not s'applique sur le résultat du or.
Au final, c'est un NOR à 3 entrées, pour parler logique.

Dernière modification par Tawal (Le 23/01/2023, à 20:24)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#56 Le 26/01/2023, à 09:17

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Tawal a écrit :

Là le or s'applique sur 3 bits. Le not s'applique sur le résultat du or.
Au final, c'est un NOR à 3 entrées, pour parler logique.

Je suis désolé mais tu m'as perdu...
Je suis complètement largué sur l'aspect logique du truc

En fait je vois plusieurs parade :
- je viens de penser que quitte à rentrer toutes les appli dans devilspie je pouvais très bien le faire via l'extension gnome que j'utilise (c'est elle qui m'impose volontairement la fenêtre de contrôle de virtualbox sur le bureau 2)
- ou alors l'autre idée serait à l'inverse de chercher justement à ne garder sur le dock de tous les bureaux sauf le 1 que le Switch de bureau mais en tous cas pas de lancement de nouvelles appli

Oui j'avoue que mon idée de départ en réalité c'est d'utiliser le Switch de bureau pour jongler entre les machines virtuelles un peu comme on utilise normalement le alt tab : Sur chaque bureau il ne doit y avoir que la VM et ses éventuelles fenêtres enfants...
Mais là on sort clairement de devilspie je te l'accorde...


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#57 Le 26/01/2023, à 15:16

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Pas sûr que l'on sorte du domaine d'application de devilspie.

Cette règle :

(if (and (matches (window_name) ".*") (not (or (is (window_role) "Panel") (is (application_name) "xfdesktop") (is (window_class) "conky"))))
   (set_workspace 1)
)

Donnée en exemple dans mon message précédent va mettre toutes les fenêtres sur le Bureau 1.
Sauf les fenêtres ayant la propriété window_role égale à Panel et les fenêtres ayant la propriété application_name égale à xfdesktop.

Mais si avec ces règles :

(begin
    (if (matches (window_name) ".*")
        (set_workspace 1)
    )
    (if (contains (application_name) "VirtualBox")
        (begin
            (if (matches (window_name) "ubuntu \\[.*\\] - Oracle VM VirtualBox")
                (begin
                    (set_workspace 3)
                )
            )
[...]

Tu n'expérimentes aucun déplacement de fenêtre non désiré alors applique là.
Sans te prendre la tête.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#58 Le 26/01/2023, à 15:48

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

    (if (matches (window_name) ".*")
        (set_workspace 1)
    )

mais celle-là on l'avait essayé et ça avait foiré... on en avait parlé... après moi je suis sur gnome


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#59 Le 26/01/2023, à 18:23

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Bon reprenons,

Ouvre une session fraîche, n'ouvre pas d'application (ou alors referme la avant de poursuivre).
Mets en action le fichier debug.ds
Ouvre un terminal et donne le retour de

killall devilspie
devilspie -d

Je pourrais te concocter une règle.

Mais tu parles de "Switch", quelles applications places-tu et où ?
Je pourrais aussi les inclure dans les exclusions.
Pour cela, ouvre toutes les fenêtres qui sont déjà placées automatiquement (sauf les VM, ouvre le gestionnaire VirtualBox),
et lance enfin

devilspie -d

et donne le retour.

Edit:
Avant, édite ton fichier ~/.devilspie/debug.ds et mets ce contenu :

(begin (debug print "Window Role: '"(window_role)"'; Window Workspace: '"(window_workspace)"'; "))

Dernière modification par Tawal (Le 26/01/2023, à 18:32)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#60 Le 26/01/2023, à 19:22

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Tawal a écrit :

tu parles de "Switch", quelles applications places-tu et où ?

Je parlais de Switch dans le sens de changement de bureau par une extension gnome qui n'affiche que les numéros de bureaux où il y a au moins une application d'ouverte... Donc je reformule moi aussi : j'ai 8 bureau virtuels...
1 principal qui doit accueillir toutes les applications que j'utilise...
Les autres n'étant destiné que pour virtualbox à raison d'un pour le module principal de virtualbox et les machines virtuelles auxiliaires (non renseigné dans devilspie)
+ 1 par machine virtuelle (entre lesquelles je jongle grâce au changement de bureau virtuels plutôt que par le classique alt tab)...


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#61 Le 26/01/2023, à 19:51

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Ok, donc pas la peine de modifier le fichier ~/.devilspie.
Donne les retours comme indiqué (session "neuve").


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#62 Le 26/01/2023, à 23:30

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Remis dans l'ordre on en est là donc ?

Tawal a écrit :

Ouvre une session fraîche, n'ouvre pas d'application (ou alors referme la avant de poursuivre).

édite ton fichier ~/.devilspie/debug.ds et mets ce contenu :

(begin (debug print "Window Role: '"(window_role)"'; Window Workspace: '"(window_workspace)"'; "))

Mets en action le fichier debug.ds
Ouvre un terminal et donne le retour de

killall devilspie
devilspie -d

Et après ? Parceque on cherche quoi au juste ?
J'ai dû rater un truc dans ton processus...
D'ailleurs pourquoi on retouche le fichier debug ?


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#63 Le 27/01/2023, à 05:20

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Pas besoin d'éditer le fichier debug.ds

Ensuite, on cherche à créer une règle qui va te ramener toutes les fenêtres sur le Bureau 1 sauf les virtualbox.
Je te demande les retours parce que j'ai bien l'intention de te la créer.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#64 Le 27/01/2023, à 09:11

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Tawal a écrit :

Je te demande les retours parce que j'ai bien l'intention de te la créer.

C'est très gentil de ta part...
Donc en fait tu veux juste savoir si devilspie repère quelque-chose quand il est supposé être le premier démarré... Ok je te ferai ça...


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#65 Le 27/01/2023, à 18:28

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

"quand il est supposé être le premier démarré"

Oui, dans ton espace utilisateur prêt à démarrer une application.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#66 Le 30/01/2023, à 15:54

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Qid a écrit :

tu veux juste savoir si devilspie repère quelque-chose quand il est supposé être le premier démarré... Ok je te ferai ça...

voilà donc le résultat de ta demande : devilspie ne repère donc rien de plus que le terminal depuis lequel il a été lancé

killall devilspie ; devilspie -d
Devil's Pie 0.23 starting...
Loading /etc/devilspie
/etc/devilspie doesn't exist
Loading /home/qid/.devilspie
Loading /home/qid/.devilspie/debug.ds
Loading /home/qid/.devilspie/vb.ds
2 s-expressions loaded.
Window Role: ''; Window Title: 'qid sur Qid-UbuntuDesktop'; Application Name: 'terminator'; Class: 'Terminator'; Geometry: 1920x1025+0+55

"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#67 Le 02/02/2023, à 09:28

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Hello,

Je n'avais pas vu ton message.
Désolé pour le temps mis à répondre sad

En effet, devilspie ne voit rien d'autre que ton terminal.
Donc ton bureau et ses "éléments" ne devraient pas bouger avec (matches (window_name) ".*").

Je reprends ta demande :
   - mettre chaque VM sur un Bureau dédié
   - mettre le gestionnaire de VM sur un autre Bureau dédié
   - mettre toutes les autres applications sur le Bureau 1

Avec cet énoncé, je te propose cet exemple de règle (que tu pourras compléter avec tes autres VM) :

(begin
    (if (matches (window_name) ".*")
        (set_workspace 1)
    )
    (if (contains (application_name) "VirtualBox")
        (begin
            (if (and (is (window_name) "Oracle VM VirtualBox - Gestionnaire de machines") (is (window_class) "VirtualBox Manager"))
                (set_workspace 2)
            )

            (if (matches (window_name) "ubuntu \\[.*\\] - Oracle VM VirtualBox")
                (set_workspace 3)
            )

            (if (matches (window_name) "ubuntu budgie \\[.*\\] - Oracle VM VirtualBox")
                (set_workspace 4)
            )

            ; les autres VM à placer ici ....

        )
    )
)

PS: la syntaxe.
Les (begin ne sont nécessaires que si ils englobent plusieurs actions/test.
Dans l'exemple ci dessus, il n' y a que les (begin strictement nécessaires.

Voilà, fais des tests et dis moi si c'est bon ou pas.
Si non, décris bien les symptômes et désagréments rencontrés afin que je puisse affiner tes règles.

Edit:
Tu auras compris que ce fichier de règles place le gestionnaire de VirtualBox sur le Bureau 2 et les VM sur les Bureaux suivants.

Dernière modification par Tawal (Le 02/02/2023, à 09:34)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#68 Le 02/02/2023, à 09:51

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Donc on reste là-dessus ?

Qid a écrit :
    (if (matches (window_name) ".*")
        (set_workspace 1)
    )

mais celle-là on l'avait essayé et ça avait foiré... on en avait parlé... après moi je suis sur gnome

C'était au post 48 pour info...
Par contre je soupçonne d'avoir vu la différence par rapport à ce précédent test à l'époque :
En gros tu me dit que devilspie passe en priorité par rapport à l'extension gnome que j'utilisais au départ et que j'ai gardé pour le placement de la fenêtre maître de VB ? Et donc que de faite l'extension était inutile car il me faut quand-même renseigner le placement de cette fenêtre que je veux sur le 2 contrairement à "toutes les autres"... Je comprends... C'est vrai que ce n'est pas complétement illogique


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#69 Le 02/02/2023, à 10:02

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Je ne sais pas trop si devilspie est prioritaire sur ton extension.
Mais j'en ai l'impression.

Pour bien saisir l'interaction entre les deux, il me faudrait faire des tests.
Mais je n'ai pas de Gnome sous la main.

En tout cas, le dernier exemple de fichier de règles devrait très bien fonctionner sans l'extension.
Reste à savoir comment se comporteront les fenêtres "annexes" ou "enfants".
Chez moi, je n'ai pas de désagréments constaté avec ce genre de règles.
Mais je n'ai peut-être pas tout testé ...


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#70 Le 02/02/2023, à 10:19

Qid

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Tawal a écrit :

En tout cas, le dernier exemple de fichier de règles devrait très bien fonctionner sans l'extension.
Reste à savoir comment se comporteront les fenêtres "annexes" ou "enfants".
Chez moi, je n'ai pas de désagréments constaté avec ce genre de règles.
Mais je n'ai peut-être pas tout testé ...

ok... j'ai désactivé l’extension et mis a jour la config de devilspie...
je te tiendrais au courant si je vois des désagréments à la longue...
merci beaucoup


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#71 Le 02/02/2023, à 11:45

Tawal

Re : ouvrir automatiquement 1 machine virtualbox par bureaux virtuel

Oki, pas de soucis.
Je reste à l'écoute dans le temps au cas où wink


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne