Ctrl-Alt-t打开根终端而不是普通终端

我安装了终结者并使用此解决方案将其设为我的默认终端,但现在按CtrlAltT打开终结者作为根终端。 如何让它作为普通终端打开终结者?

在此处输入图像描述

怎么了 ?

TL; DR#1 :基本上,您生成x-terminal-emulator并且Unity在其快捷方式文件中搜索任何具有x-terminal-emulator东西。

  1. Ctrl + Alt + T ,生成x-terminal-emulator 。 在Debian Alternatives系统中, x-terminal-emulator是您想要使用的终端仿真器应用程序的符号链接。
  2. Unity的机制搜索/usr/share/applications中的“快捷方式”文件列表。 它找到gksu.desktop文件,它有Exec=gksu /usr/bin/x-terminal-emulator line,然后取出Name=Root Terminal 。 然后, Root Terminal将显示在Unity的面板上

为什么gnome-terminal不会发生同样的事情?

TL; DR#2: gnome-terminal实际上是由包装器脚本生成的,默认快捷方式链接到该脚本。

当您运行sudo update-alternatives --config x-terminal-emulator您会看到选项,但它们都不是/usr/bin/gnome-terminal 。 相反,你有/usr/bin/gnome-terminal.wrapper这是一个首先设置gnome-terminal的perl脚本! 如果您通读该脚本,最后它有以下行:

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

exec调用然后生成/usr/bin/gnome-terminal ,作为单独的应用程序。 Unity再次搜索/usr/share/applications/目录并找到具有Name=Terminal line的gnome-terminal.desktop文件,并在启动器上显示它。

可以做些什么?

TL; DR#3:重新分配键盘快捷键,使用自定义包装器或创建自定义.desktop文件。 我推荐.desktop方式。

最简单的方法是重新分配快捷方式。 使用gsettings

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

但这仍然无法解决Unity的破折号。 我首选的解决方案是创建自定义.desktop文件/usr/share/applications/x-terminal-emulator.desktop其中包含以下内容

 [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; 

这样,您不必更改任何内容,但Unity将在启动器上显示MY CUSTOM NAME

第三种方式,如果你喜欢冒险,就是写一个包装脚本,如下所示:

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

然后,您可以将其添加为替代系统中的一个选项

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

附注:优先级是整数,例如10。

更多信息

  • Ubuntu Manpage:update-alternatives
  • 包装脚本
  • 什么是终端包装?

我尝试了以下链接: https : //bugs.launchpad.net/terminator/+bug/1447580 。

并运行以下命令,它对我有用:

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

祝好运!!