web-dev-qa-db-fra.com

Ctrl-Alt-t ouvre le terminal racine au lieu du terminal normal

J'ai installé Terminator et en ai fait mon terminal par défaut avec cette solution , mais maintenant Ctrl-Alt-T ouvre Terminator en tant que terminal racine. Comment puis-je l'obtenir pour ouvrir Terminator en tant que terminal normal?

enter image description here

5
adamconkey

Qu'est-ce qui se passe?

TL; DR # 1 : Fondamentalement, vous générez x-terminal-emulator et Unity recherche tout ce qui contient x-terminal-emulator dans leur fichier de raccourci.

  1. Vous appuyez sur Ctrl+Alt+T, qui engendre x-terminal-emulator. Dans le système Debian Alternatives, x-terminal-emulator est un lien symbolique vers n'importe quelle application d'émulateur de terminal que vous souhaitez utiliser.
  2. Les mécanismes de Unity recherchent dans la liste des fichiers "raccourcis" dans /usr/share/applications. Il trouve le fichier gksu.desktop, qui contient la ligne Exec=gksu /usr/bin/x-terminal-emulator, puis la ligne Name=Root Terminal. Ce Root Terminal est ensuite affiché sur le panneau de l'unité

Pourquoi la même chose n'arrive-t-elle pas avec gnome-terminal?

TL; DR # 2: gnome-terminal est en réalité généré par un script d'encapsuleur, auquel le raccourci par défaut est lié.

Lorsque vous exécutez Sudo update-alternatives --config x-terminal-emulator, vous avez le choix, mais aucun d'entre eux n'est /usr/bin/gnome-terminal. Vous avez plutôt /usr/bin/gnome-terminal.wrapper qui est un script Perl qui configure gnome-terminal en premier! Si vous lisez ce script, vous verrez à la fin la ligne suivante:

exec('gnome-terminal',@args);

L'appel exec engendre alors /usr/bin/gnome-terminal, en tant qu'application distincte. Unity consulte à nouveau le répertoire /usr/share/applications/ et trouve le fichier gnome-terminal.desktop contenant la ligne Name=Terminal et l'affiche dans le programme de lancement.

Que peut-on faire?

TL; DR # 3: réaffectez un raccourci clavier, utilisez un wrapper personnalisé ou créez un fichier personnalisé .desktop. Je recommande la méthode .desktop.

Le moyen le plus simple consiste à réaffecter le raccourci. Utilisez gsettings pour cela

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

Mais cela ne résout toujours pas le problème avec le tiret d'Unity. Ma solution préférée consiste à créer le fichier personnalisé .desktop/usr/share/applications/x-terminal-emulator.desktop avec le contenu suivant.

[Desktop Entry]
Name=MY CUSTOM TERMINAL
Encoding=UTF-8
Exec=/usr/bin/x-terminal-emulator
Icon=gksu-root-terminal
StartupNotify=true
Terminal=false
Type=Application
Categories=GTK;Utility;TerminalEmulator;

De cette façon, vous ne devez rien changer, mais Unity affichera MY CUSTOM NAME sur le lanceur.

Troisièmement, si vous vous sentez aventureux, écrivez un script wrapper, comme ceci:

   #!/bin/sh
   exec /path/to/terminal-emulator ${1+"$@"}

Ensuite, vous pouvez l’ajouter aux options du système alternatif en utilisant

Sudo update-alternatives   --install /path/to/wrapper name /path/to/wrapper priority 

Remarque secondaire: la priorité est un entier, tel que 10.

Plus d'infos

7

J'ai essayé le lien suivant: https://bugs.launchpad.net/terminator/+bug/144758 .

Et exécutez la commande suivante et cela a fonctionné pour moi:

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

Bonne chance!!

4
nakulkumar