restaurer les fenêtres chrome / firefox dans l'espace de travail / bureau d'origine

9

J'ai une configuration à trois moniteurs, avec deux moniteurs pilotés directement par Ubuntu 12.04 pour une surface totale de travail / bureau de 3840x1200¹. Je travaille généralement avec 5 espaces de travail virtuels, souvent plus si je travaille sur plusieurs projets en parallèle. J'ai généralement au moins 15 fenêtres de navigateur ouvertes (principalement Firefox la nuit, mais aussi 12.04 Firefox et Chrome standard).

Chaque fois que les navigateurs doivent redémarrer à la suite d'une mise à jour (crash cq), ou doivent démarrer après une connexion, les fenêtres du navigateur reviennent à leurs positions d'origine, mais toutes sont sur le même espace de travail. Après cela, je dois déplacer fastidieusement au moins 80% des fenêtres vers d'autres espaces de travail².

Ni Firefox ni Chrome n'enregistrent les informations EWMH supplémentaires nécessaires à la restauration dans l'espace de travail d'origine. J'ai lu des rapports de bugs non résolus datant de 4 à 5 ans à ce sujet.

Il semble qu'au moins quelques années en arrière, KDE ait géré les espaces de travail comme de grands décalages (plus larges que la largeur de l'écran), ce qui a permis au navigateur de restaurer dans l'espace de travail correct. Mais cela ne semble plus être le cas (déduit d'un rapport de bug, pas d'une expérience personnelle).

Existe-t-il un espace de travail / gestionnaire de bureau qui n'a pas ce comportement de restauration tout en un avec Firefox et Chrome (de préférence activé pour Ubuntu ou Linux Mint)?

Ou existe-t-il un autre moyen d'améliorer Firefox et Chrome (par exemple un module complémentaire) pour appliquer ce comportement?

Le mien n'est pas une mise en page fixe, où le navigateur X sur l'espace de travail Y s'ouvre toujours à une URL spécifique. La fonction de restauration me donne les fenêtres, les positions et les URL exactement comme je les veux. Ils doivent "juste" être sur le bon espace de travail.

¹ Un troisième moniteur 1200x1920 se trouve sur une machine distincte et x2vncsert à partager une seule souris et un seul clavier. Cela garde bien mon matériel de lecture comme les pages de manuel et la documentation disponible (en mode portrait).
² Tous les éléments U&L se trouvent dans l'espace de travail 3. Je laisse normalement la machine en marche et je reste connecté, pendant des semaines à la fois, l'une des raisons étant la restauration des différentes fenêtres.

Anthon
la source

Réponses:

6

Il ne semble pas trop motivé pour implémenter une prise en charge EWMH dans Firefox ni dans Chrome, même si cela résoudrait le problème de restauration de l'espace de travail avec un grand nombre de postes de travail. Un bogue est ouvert pour Firefox depuis 2007 et un pour Chrome depuis 2009.

Ce que vous pouvez faire en dehors de Firefox et Chrome, si les onglets actifs dans différentes fenêtres de navigateur pointent vers des URL différentes, est d'utiliser la tendance selon laquelle les différentes URL ont généralement des titres différents associés aux pages et donc à la fenêtre dans laquelle elles sont affichées.

En partant de cette idée, vous pouvez utiliser la sortie wmctrl -l -G -pqui vous fournit

  • identifiant de fenêtre
  • numéro d'espace de travail
  • identifiant du processus
  • Position x, y de la fenêtre
  • largeur et hauteur de la fenêtre
  • nom de la machine
  • titre de la fenêtre (le cas échéant)

pour chaque fenêtre. Étant donné un identifiant de processus PID, vous pouvez voir où le lien /proc/PID/exepointe et filtrer les fenêtres non-navigateur. Pour les fenêtres liées au navigateur, enregistrez au moins le titre de la fenêtre et le numéro de l'espace de travail (également possible le type de navigateur et toutes les autres informations).

Après un (re) démarrage du navigateur, lorsque toutes les fenêtres sont restaurées, mais dans un seul espace de travail, utilisez les données enregistrées pour rechercher le nouvel identifiant de fenêtre, WID, associé à un titre spécifique et le pousser vers l'espace de travail associé récupéré avec wmctrl -i -r WID -t workspacenumber.


Si vous ne voulez pas implémenter ce qui précède vous-même (c'est principalement du traitement de texte et une recherche de lien symbolique) dans votre shell ou le langage de script de votre choix, vous pouvez télécharger un programme qui fait tout cela pour vous (et un peu plus). Ou vous pouvez l'installer à partir de PyPI en utilisant:

sudo pip install ruamel.bws

après quoi la bwscommande devrait être disponible avec des options pour save(plusieurs enregistrements sont conservés, 10 par défaut), list(afficher les dates enregistrées avec le nombre de fenêtres enregistrées), ou restore(par défaut les dernières informations enregistrées).

Anthon
la source
Firefox 75 inclut l'API nécessaire pour cela avec plusieurs mises en garde hg.mozilla.org/integration/autoland/rev/323e2a212629
Braiam