Concentrez le terminal existant avec le raccourci `Ctrl-Alt-T`

16

J'ai tendance à beaucoup utiliser le terminal,

Je me demande donc s'il y a un moyen de faire Ctrl+ Alt+ Tfocaliser le terminal existant s'il y en a un, sinon créer un nouveau terminal?

Hailwood
la source

Réponses:

24

Créez un petit script qui soulèvera le terminal GNOME:

echo 'xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)'> ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh

ou si vous souhaitez vérifier si Terminal est déjà en cours d'exécution, utilisez:

echo -e $'if ps aux | grep "[g]nome-terminal" > /dev/null\n then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)\n else gnome-terminal &\nfi' > ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh

Cela va créer le script ~ / raiseterminal.sh avec ce contenu:

if ps aux | grep "[g]nome-terminal" > /dev/null                                                                                                                                                                                
 then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)                                                                                                                                            
 else gnome-terminal&                                                                                                                                                                                                          
fi          

Ouvrez les préférences pour configurer un raccourci clavier personnalisé et définissez la commande sur /home/$USER/raiseterminal.sh, mais assurez-vous de remplacer $ USER par votre nom d'utilisateur réel.

Si vous souhaitez uniquement soulever le terminal sur un écran ou un bureau spécifique, reportez-vous à xdotool search --helppour plus d'informations sur la façon de procéder.

Il existe également diverses autres méthodes qui fonctionnent mieux avec d'autres gestionnaires de fenêtres.

zerwas
la source
Vous pouvez ajouter un | head -n1après avoir recherché les fenêtres de gnome-terminal pour éviter une erreur si plusieurs fenêtres sont trouvées
ggalmazor
8

pourquoi ne pas essayer tildaou guake, tous deux disponibles dans les référentiels ubuntu. Bien qu'ils ne fassent pas spécifiquement ce que vous recherchez, je suis sûr que c'est ce que vous cherchiez mais que vous ne saviez pas qu'il existait. ;)

EDIT : ok, j'étais un peu vague, plus d'informations suivent:

de wikipedia :

Tilda est un émulateur de terminal GTK +. Sa conception est inspirée des consoles de jeux informatiques comme Quake qui glissent du haut de l'écran lorsqu'une touche est enfoncée, généralement le tilde, et remontent lorsque la touche est enfoncée à nouveau.

L'exécution de Tilda peut être plus rapide que le lancement d'un nouveau terminal avec un raccourci clavier car le programme est déjà chargé en mémoire; il peut être utile aux personnes qui se trouvent fréquemment à ouvrir et fermer des terminaux pour des tâches étranges.

guake c'est vraiment la même chose, la seule différence que j'ai remarquée, c'est que je ne pouvais pas le faire ouvrir des liens http par ctrl + clic, ce que j'ai trouvé ennuyeux

bartekbrak
la source
1

Ma version (=

Script pour exécuter / augmenter n'importe quelle application:

PID=$$
xdotool search --class $1 | while read line
do
  echo "$line"
  if [ `xdotool windowactivate $line 2> /dev/stdout | grep -c fail` -eq 0 ]
    then
    kill $PID
    exit
  fi
done
## Launch the program if we reach here
$1 & disown

par exemple

sh ~/raise.sh chromium
Possum Gallo
la source
0

essayer

sudo apt-get install wmctrl
wmctrl -xa 'gnome-terminal-server.Gnome-terminal'

accédez aux paramètres système - Keyborad, ajoutez un raccourci personnalisé et collez-y la commande wmctrl. Ça marche.

d'où vient la chaîne gnome-terminal- *

wmctrl -xl
Jake
la source
0

Encore une autre option: lancer ou basculer. Le script s'appuie sur wmctrl pour vérifier si une fenêtre est déjà ouverte. Si tel est le cas, le script passe à un script existant, en donnant la priorité à une fenêtre existante sur le bureau actuel. Sinon, une nouvelle fenêtre est lancée. Ce script est publié par Vaughn Dickson .

#!/bin/sh

terminal_wm_class="gnome-terminal"
terminal_exec="gnome-terminal"

# no terminal started, so start one
if [ -z "`wmctrl -lx | grep gnome-terminal`" ]; then
    $terminal_exec &
else
    # search for existing terminals on current desktop
    current_desk=`wmctrl -d | grep '*' | cut -d ' ' -f 1`
    term_on_this_desk=`wmctrl -lx | grep "$current_desk[ ]*$terminal_wm_class" | cut -d ' ' -f 1`
    if [ -n "$term_on_this_desk" ]; then
        wmctrl -i -a $term_on_this_desk
    else
        # no terminals on current desktop, so just open the first one we find
        wmctrl -x -a $terminal_wm_class
    fi;
fi;

Placez ce script dans le dossier bin de votre dossier de départ et rendez-le exécutable. Ensuite, sous Raccourcis clavier (Paramètres - Clavier), désactivez le raccourci clavier existant pour "Lancer le terminal" dans la section "Lanceurs": cliquez dessus, puis appuyez sur Retour arrière pour désactiver l'affectation actuelle. Ensuite, dans la section "Raccourcis personnalisés", créez un nouveau raccourci personnalisé en cliquant sur l'icône +. Remplissez le nom de votre script comme "commande" et affectez-lui le raccourci Ctrl+ Alt+ t.

vanadium
la source