web-dev-qa-db-fra.com

Terminator: guichet unique, focus sur le lancement

Je configure Terminator pour mon bureau. J'utilise le raccourci Ctrl + Alt + T pour le lancer. Comme je ne veux qu’une seule instance en cours d’exécution, j’utilise run-one terminator comme 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 centrée.

Des idées sur la façon dont je pourrais obtenir le focus sur la fenêtre de Terminator?

8
Mr Hyde

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

run-one terminator; wmctrl -a Terminator
4
Denis

Voici une méthode qui fonctionne sans run-one en supposant que wmctrl est 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 de terminator. Cela vous permettra de garder votre raccourci du terminateur séparé de l'instance normale terminateur:

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

Cela ne fait que renforcer la réponse de Denis sans qu'il soit nécessaire d'utiliser run-one.

8
loleary

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

Ensuite

  1. Modifier la commande de raccourci Terminator dans Main Menu pour qu'elle pointe vers le script ci-dessus
  2. Dans les raccourcis clavier, Ctrl + Alt + T active le script.

En cherchant sur l’Internet, j’ai aussi découvert par hasard this

Depuis que je suis nouveau sur les scripts bash, je me réjouis de tout raffinement du hack!

1
Mr Hyde