Terminator: guichet unique, focus sur le lancement

8

Je configure Terminator pour mon bureau. J'utilise le raccourci Ctrl+ Alt+ Tpour le lancer. Comme je ne veux qu'une seule instance en cours d'exécution, je l'utilise run-one terminatorcomme commande de lancement.

Maintenant, si une instance Terminator est en cours d'exécution, une nouvelle instance n'est pas lancée, mais l' instance existante n'est pas focalisée .

Avez-vous des idées sur la façon dont je pourrais obtenir la fenêtre Terminator pour se concentrer?

Mr Hyde
la source

Réponses:

4

Essayez d'installer wmctrl : sudo apt-get install wmctrl
maintenant la commande wmctrl -a STRINGdonne le focus à une fenêtre contenant STRING dans son titre
donc votre commande finale sera:

run-one terminator; wmctrl -a Terminator
Denis
la source
Merci pour le pointeur. J'ai trouvé une solution qui fonctionne plutôt bien, détaillée ci-dessous.
M. Hyde
8

Voici une méthode qui fonctionne sans run-onesupposer qu'elle wmctrlest disponible:

wmctrl -xa terminator.Terminator || terminator

Cela suppose que le nom de classe de fenêtre par défaut est utilisé. Vous pouvez faire preuve de créativité si vous le souhaitez et utiliser un nom de classe personnalisé lors du lancement terminator. Cela vous permettra de garder votre raccourci de terminaison distinct d'une instance de terminateur normale :

wmctrl -xa MyCustomTerminator.Terminator || terminator -c MyCustomTerminator

Cela s'appuie simplement sur la réponse de Denis sans avoir besoin de run-one.

loleary
la source
Une idée de comment faire basculer la mise au point?
Joe Eifert
Excellente solution. J'ai dû utiliser bash -c 'wmctrl -xa terminator.Terminator || terminator'sur Ubuntu 18.10 en utilisant Gnome 3.30.1. Sinon, le raccourci ne fonctionnerait qu'une fois que terminator était déjà en cours d'exécution.
stebu92
1

Voici le hack sur lequel j'ai décidé d'utiliser run-one et xdotool

Dans /home/(user)/my_scripts/single_terminator_instance.sh

#!/usr/bin/bash

# run a single instance of terminator
/usr/bin/run-one /usr/bin/terminator

# search for the terminator window and focus!!!
/usr/bin/xdotool search --onlyvisible --class terminator windowactivate

alors

  1. Modifier la commande de raccourci Terminator Main Menupour pointer vers le script ci-dessus
  2. Dans les raccourcis clavier, Ctrl+ Alt+ Tactive le script

En cherchant sur i'net, je suis également tombé sur cette

Depuis que je suis nouveau dans les scripts bash, je salue toutes les améliorations apportées au hack!

Mr Hyde
la source
Plus facile: /usr/bin/wmctrl -xa terminator:-) au lieu de xdotool! Merci Denis.
M. Hyde
tu as raison! la bonne façon estwmctrl -xa terminator
Denis
J'ai essayé vos solutions, mais run-one ne fonctionne pas sur mon ordinateur avec Terminator. Il lance toujours une nouvelle instance. Tu sais pourquoi? Merci.
Tamás Barta
ps aux | grep terminatorne renvoie rien. Le processus s'exécute comme émulateur x-terminal pour moi, donc cela pourrait être la cause. J'ai fait une vérification manuelle comme ceci: RUNNING = $ (ps aux | grep x-terminal-emulator | grep -v grep) if [[-z $ RUNNING]]; puis x-terminal-emulator & fi
Tamás Barta
@ BartaTamás Avez-vous résolu votre problème. Mon script n'est que deux lignes de bash attachées au raccourci clavier. Je l'utilise maintenant avec gnome-terminal et tmux, et je suis très content de la solution. Mais cela fonctionne également de manière fiable avec Terminator. Peut-être que le même raccourci clavier est attribué deux fois (Ctrl + Alt + T). Juste deviner!
M. Hyde