J'ai une application utilisant plusieurs fenêtres. Comment mettre rapidement toutes les fenêtres de cette application au premier plan?
Lorsque je fais défiler les applications avec la molette de défilement, une seule fenêtre s'affiche. Lorsque vous passez à la fenêtre suivante, la dernière fenêtre est à nouveau mise en arrière-plan.
Lorsque je clique sur l'icône de l'application, j'obtiens un aperçu plein écran de toutes les fenêtres. Je dois sélectionner chaque fenêtre manuellement et déplacer ma souris sur la moitié de l'écran plusieurs fois.
Ma meilleure solution jusqu'à présent est de minimiser toutes les fenêtres ( Ctrl+ Super+ D), puis d'afficher les fenêtres de mon application à l'aide de la molette de défilement.
Y a-t-il une meilleure solution?
Réponses:
EDIT -nouvelle réponse-
La ou les réponses ci-dessous sont / sont toujours totalement valables, et donc les options suggérées. Cependant, un aperçu continu m'a fait ajouter cette option pour utiliser l'indicateur ci-dessous, qui est probablement la solution la plus élégante.
En tant que tel, il devrait probablement remplacer l'option 5 (en utilisant un fichier .desktop).
Choisissez simplement l'application dans la liste et toutes les fenêtres de l'application correspondante (présentes dans la fenêtre courante) afficheront:
Comment utiliser
de ppa:
... ou manuellement:
L'indicateur a besoin
wmctrl
Copiez l'indicateur dans un fichier vide, enregistrez-le sous
raise_apps.py
Copiez l'image ci-dessous, enregistrez-la exactement
raise.png
dans un seul et même répertoire que l'indicateur.Ensuite, exécutez-le simplement par la commande:
python3 /path/to/raise_apps.py
Ajoutez si vous souhaitez démarrer des applications:
ANCIENNE RÉPONSE:
À propos de la question
Avec les bons outils, il n'est pas très compliqué de "simplement" soulever toutes les fenêtres d'une application. Il est un peu plus compliqué de s'assurer que seules les fenêtres de la fenêtre courante sont levées. Le vrai défi est cependant de trouver un moyen pratique de mettre l'action à la disposition de l'utilisateur.
Ci-dessous cinq options pour prendre soin de cela, pour montrer comment cela peut être fait. Toutes les options sont prêtes à être utilisées. Cependant, la dernière option est plutôt expérimentale; cela fonctionne bien mais a quelques inconvénients cosmétiques mineurs, comme expliqué dans la description de l'option. Je l'ai quand même ajouté comme concept .
Répartir les fenêtres automatiquement de manière non superposée, comme suggéré dans un commentaire, ne me semble pas une idée pratique; si vous travaillez dans une configuration de fenêtre groupée (au niveau de l'application), le script pourrait éventuellement réorganiser les fenêtres.
Comment utiliser
Pour toutes les options, vous devez:
installer
wmctrl
s'il n'est pas encore sur votre système:créer, s'il n'existe pas encore, le répertoire:
(explication: le répertoire
~/bin
est dans $ PATH, vous pouvez donc exécuter les exécutables par leur nom)Copiez le script, correspondant à l'option, collez-le dans un fichier vide, enregistrez-le sous
raise_app
(sans extension)~/bin
et rendez-le exécutableDans les options séparées, les étapes supplémentaires possibles seront expliquées.
Option 1: choisissez l'application en saisissant un ou plusieurs caractères
zenity
fenêtre apparaîtraCela fera apparaître toutes les fenêtres de l'application correspondante (dans la fenêtre courante ).
ouvrir toutes les
gnome-terminal
fenêtres de la fenêtre courante:Comment utiliser:
Testez-le par la commande:
Si tout fonctionne correctement, ajoutez-le à une combinaison de touches de raccourci de votre choix: Choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande
Le script:
Option 2: parcourir les applications et augmenter leurs fenêtres avec une combinaison de touches:
Disons que j'ai le script ci-dessous sous une combinaison de touches Alt+ 1. J'ai plusieurs fenêtres ouvertes de:
L'état actuel:
J'appuie une fois Alt+ 1, toutes les
nautilus
fenêtres sont levées:J'appuie à nouveau sur Alt+ 1, toutes les
firefox
fenêtres sont relevées:J'appuie à nouveau sur Alt+ 1, toutes les
gnome-terminal
fenêtres se relèvent, le cycle recommence:Comment utiliser
Ajoutez-le à une combinaison de touches de raccourci de votre choix: Choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande
Parcourez ensuite vos applications avec des fenêtres d'applications regroupées avec votre combinaison de touches.
Le script:
Option 3: appuyez sur la combinaison de touches + cliquez sur l'icône du lanceur -ou- fenêtre d'application pour afficher toutes les fenêtres de la fenêtre courante
C'est probablement l'option qui se rapproche le plus de ce qui est décrit dans la question / le commentaire.
Disons que j'ai un bureau en désordre avec trois
nautilus
fenêtres enfouies sous d'autres fenêtres.Pour ouvrir toutes les fenêtres nautilus (exemple de raccourci: Alt+ 1):
Dans les 3 secondes, soit:
cliquez sur l'icône de l'application dans le lanceur
ou:
cliquez sur l'une des fenêtres de l'application
résultat:
Comment utiliser:
Testez-le par la commande:
Si tout fonctionne correctement, ajoutez-le à une combinaison de touches de raccourci de votre choix: Choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande
Alors:
Appuyez sur votre combinaison de touches et dans les 3 secondes, soit:
Le script
Option 4: une combinaison de touches appelle une liste d'options, indiquant le nombre de fenêtres par application dans la fenêtre courante
Celui-ci s'est avéré plus pratique que j'ai supposé:
En appuyant sur (encore une fois l'exemple-) combinaison de touches Alt+ 1appelle une
zenity
fenêtre, répertoriant toutes les applications et le nombre de leurs fenêtres dans la fenêtre actuelle:Une simple pression sur les flèches ▴ou ▾vous amènera à la bonne option. Appuyez sur Enteret toutes les fenêtres de l'application choisie sont ouvertes.
Comment utiliser:
Testez-le par la commande:
Si tout fonctionne correctement, ajoutez-le à une combinaison de touches de raccourci de votre choix: Choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande
Le script
Option 5: augmenter les fenêtres des applications en cours d'exécution à partir d'une icône de lancement
Cette option existe d'une icône de lanceur, avec les applications en cours d'exécution dans une liste rapide. Choisissez-en une et toutes les fenêtres des applications seront ouvertes.
Le lanceur est automatiquement mis à jour lorsque la liste des applications en cours d'exécution (dans la fenêtre actuelle) change. La liste rapide affiche une liste différente sur d'autres fenêtres, où les fenêtres d'autres applications sont ouvertes (cela prendra 1 à 2 secondes pour s'adapter).
Comme mentionné, bien que pleinement fonctionnelle, cette option est conçue comme un concept . Il a quelques inconvénients cosmétiques mineurs. Le plus important:
De plus, la configuration est légèrement plus compliquée (bien qu'expliquée en détail ci-dessous):
Comment utiliser
Vous trouverez ci-dessous:
deux scripts / une icône / un
.desktop
fichierraise_app
dans~/bin
Enregistrez l'icône ci-dessous (clic droit, enregistrer sous) sous
raise.png
Copiez le
.desktop
fichier dans un fichier vide, modifiez la lignevers le chemin réel vers l'icône (chemins avec des espaces entre guillemets)
Enregistrez-le comme
raise.desktop
dans~/.local/share/applications
Faites glisser le
.desktop
fichier vers le lanceur pour l'ajouterupdate_apps
dans~/bin
, le rendre exécutable.Ajoutez la commande suivante à vos applications de démarrage (Dash> Applications de démarrage> Ajouter):
Le premier script
Le deuxième script
Le fichier .desktop
Brève explication
Toutes les solutions ci-dessus utilisent
wmctrl
pour créer une liste de fenêtres, à l'aide de lawmctrl -lpG
commande. Cette commande produit des lignes, ressemblant à:Ces lignes comprennent:
xrandr
)Le pid est recherché dans la sortie de
ps -u <username>
pour obtenir une identification (nom) "lisible par l'utilisateur" de l'application.Ainsi, nous pouvons allouer des fenêtres aux applications. Par la suite, nous pouvons soulever les fenêtres d'une application donnée en
for
boucle avec la commandewmctrl -ia
.Dans l'option 3,
le script démarre une boucle "en attente" de 3 secondes, en utilisant la
xprop -root
commande à plusieurs reprises pour voir s'il y a un changement dans la fenêtre la plus en avant; cela se produira si l'utilisateur clique sur une icône de lanceur pour ouvrir la fenêtre d'une application ou clique directement sur une fenêtre. Si c'est le cas, la boucle while se rompt et recherche la "nouvelle" application la plus en avant, puis ouvre toutes les autres fenêtres de cette application.la source
Option 2
script, lorsqu'une fenêtre d'application est focalisée (qui n'est pas agrandie) et que je clique sur une autre fenêtre qui est visible "ci-dessous", l'application ci-dessous ne reçoit pas le focus.Il y a un raccourci Super+ Wqui affichera l'expo de toutes les fenêtres actuellement ouvertes, mais cela inclura d'autres applications. Cela vient par défaut et ne nécessite aucune modification, donc c'est peut-être une option la plus simple disponible.
Entre autres choses, vous pouvez positionner les fenêtres sur les moitiés droite et gauche de l'écran avec les boutons Ctrl+ Super+ Left/ Right, et basculer entre elles avec Alt + ~ (tilde, celui à côté de la touche numéro un).
la source
Si vous appuyez sur Alt + Tab pour parcourir les applications et que vous en arrivez à une avec plusieurs fenêtres, maintenez simplement la touche alt enfoncée et après environ 1 seconde complète, l'icône sera remplacée par une vue de toutes les fenêtres de cette application.
C'est peut-être ce que vous cherchez, mais cela fonctionne pour moi et c'est beaucoup plus simple, alors j'ai pensé que je partagerais l'option!
la source
J'ai pris le script raise_apps.py de @ JacobVlijm et y ai apporté quelques améliorations, notamment en le rendant plus robuste.
Plus précisément, j'avais constaté qu'après un jour ou deux, le script de @ JacobVlijm cesserait de fonctionner, et je devrais redémarrer manuellement le script, pour le faire fonctionner à nouveau. Rétrospectivement, ma meilleure supposition est que les nombreux appels à xrandr finissent par causer des problèmes.
Quoi qu'il en soit, j'ai adapté son code, augmenté la fréquence d'interrogation de 5 secondes à toutes les 1 seconde, car il n'utilise pas beaucoup de CPU de toute façon et l'a rendu plus robuste. Je peux généralement le faire fonctionner pendant des jours / semaines sans problème.
Une mise en garde est que je n'appelle xrandr qu'une seule fois au démarrage, pour obtenir les dimensions de la résolution d'écran. Donc, si vous changez la résolution de votre écran (par exemple de 1920x1080 à une autre résolution), vous voudrez probablement redémarrer manuellement raise-apps.py afin qu'il récupère la nouvelle résolution. Personnellement, je ne change jamais ma résolution d'écran, donc ce n'est pas un problème pour moi. De plus, j'ai de bonnes raisons de croire que trop d'appels à xrandr étaient à l'origine de l'arrêt de la version @ JacobVlijm du script après un jour ou deux, donc je vous recommande fortement de ne pas simplement remettre les nombreux appels à xrandr.
BTW, vous devez placer l'image raise.png dans le répertoire / usr / local / icons /. Ou si vous souhaitez placer raise.png dans un répertoire différent, apportez la modification appropriée au script, afin que le script puisse trouver le fichier image.
Avec un peu de chance, Ubuntu intégrera ce type de fonctionnalité «augmenter toutes les fenêtres» dans leur système plus tôt que tard car il est très utile:
la source