web-dev-qa-db-fra.com

Faites Ctrl-Alt-T pour ouvrir un onglet de terminal si un terminal était ouvert

Y a-t-il un moyen d'obtenir Ctrl+Alt+T ouvrir un onglet de terminal, si vous avez déjà un terminal ouvert, au lieu d'une autre fenêtre de terminal?

J'ai déjà changé mes préférences pour ouvrir de nouveaux terminaux dans l'onglet. (Je veux toujours que la liaison de clé ouvre un terminal si aucun n'est ouvert.)

1
KT12

Voici ce que j'ai fait et le travail a été très bon.

  1. remplacez les préférences gnome-terminal par défaut si vous les avez modifiées.
    alors, réglez le Ctrl+Shift+t comme raccourci pour ouvrir un nouvel onglet.

    enter image description here

  2. Nous avons besoin de xdotool (environ 30 Ko), installez-le via:

    Sudo apt install xdotool
    
  3. Maintenant, créez un fichier (par exemple dans votre maison nommée .custom-terminal-key.sh) et mettez-y ces lignes (Merci à Jacob Vlijm):

    #!/bin/bash
    
    if [[ "$(xprop -id "$(xdotool getactivewindow)" WM_CLASS)" == *"gnome-terminal"* ]]; then
      sleep 0.1
      xdotool key ctrl+shift+t
    Elif ! pgrep 'gnome-terminal'; then
      gnome-terminal
    fi
    

    A chaque fois que nous l'utilisons, si un gnome-terminal était ouvert, il simulera une Ctrl+Shift+t liaison de clé, sinon il exécute gnome-terminal.

  4. Enfin, nous changeons le comportement par défaut de Ctrl+Alt+t, au lieu d'ouvrir un terminal à chaque fois que vous appuyez dessus, notre script sera exécuté.

    gsettings set org.gnome.desktop.default-applications.terminal exec '/home/USER/.custom-terminal-key.sh'
    

    Changez USER avec votre vrai nom d’utilisateur .

  5. N'oubliez pas de donner à notre script le bit exécutable:

    chmod +x ~/.custom-terminal-key.sh
    

Nous avons fini.


Retour en arriere

Chaque fois que vous avez changé d'avis, lancez simplement:

gsettings set org.gnome.desktop.default-applications.terminal exec 'gnome-terminal'

Supprimez notre script rm ~/.custom-terminal-key.sh et xdotool: Sudo apt remove xdotool.


Obtenir le nom de la fenêtre active

1
Ravexina