O que acontece?
TL; DR # 1 : basicamente, você gera x-terminal-emulator
e o Unity pesquisa qualquer coisa que tenha x-terminal-emulator
em seu arquivo de atalho.
- Você pressiona Ctrl + Alt + T , que gera
x-terminal-emulator
. No sistema Debian Alternatives,x-terminal-emulator
é um link simbólico para qualquer aplicativo de emulador de terminal que você queira usar.
Os mecanismos do - Unity pesquisam a lista de arquivos "atalhos" em
/usr/share/applications
. Ele encontra o arquivogksu.desktop
, que possuiExec=gksu /usr/bin/x-terminal-emulator
line e, em seguida, retira a linhaName=Root Terminal
. EsseRoot Terminal
é então exibido no painel da Unity
Por que a mesma coisa não acontece com o gnome-terminal?
TL; DR # 2: gnome-terminal
na verdade é gerada por um script de wrapper, ao qual o atalho padrão está vinculado.
Quando você executa sudo update-alternatives --config x-terminal-emulator
, você recebe opções, mas nenhuma delas é /usr/bin/gnome-terminal
. Em vez disso, você tem /usr/bin/gnome-terminal.wrapper
, que é um script em perl que configura gnome-terminal
primeiro! Se você ler esse script, no final ele terá a seguinte linha:
exec('gnome-terminal',@args);
A chamada exec
, em seguida, gera /usr/bin/gnome-terminal
, como aplicativo separado. A unidade novamente pesquisa o diretório /usr/share/applications/
e encontra o arquivo gnome-terminal.desktop
, que tem Name=Terminal
linha, e mostra no iniciador.
O que pode ser feito?
TL; DR # 3: reatribui o atalho de teclado, usa um wrapper personalizado ou cria um arquivo .desktop
personalizado. Eu recomendo o .desktop
way.
A maneira mais fácil é reatribuir o atalho. Use gsettings para isso
gsettings set org.gnome.desktop.default-applications.terminal exec 'sakura'
Mas isso ainda não resolve a peculiaridade do traço da Unity. Minha solução preferida é criar o .desktop
file /usr/share/applications/x-terminal-emulator.desktop
personalizado com o seguinte conteúdo
[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;
Dessa forma, você não precisa alterar nada, mas o Unity exibirá MY CUSTOM NAME
no inicializador.
Terceira maneira, se você está se sentindo aventureiro é escrever um script wrapper, algo assim:
#!/bin/sh
exec /path/to/terminal-emulator ${1+"$@"}
Depois, você pode adicioná-lo como uma das opções no sistema de alternativas usando
sudo update-alternatives --install /path/to/wrapper name /path/to/wrapper priority
Nota lateral: a prioridade é um inteiro, como 10.
Mais informações