为什么 Ubuntu 22 总是使用 gnome-terminal 或 xterm 启动应用程序,即使配置了替代方案?

为什么 Ubuntu 22 总是使用 gnome-terminal 或 xterm 启动应用程序,即使配置了替代方案?

我想切换到一个新的编辑器 - LunarVim - 以及一个支持字体连字的新终端 - Kitty。两者都在我的系统上全局安装。我使用以下方法将其启用为默认终端应用程序:

gsettings set org.gnome.desktop.default-applications.terminal exec /usr/local/bin/kitty

... 使其成为当前用户的默认设置,

sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/local/bin/kitty 50
sudo update-alternatives --config x-terminal-emulator

...使其成为系统上 x-terminal-emulator 的默认设置。(尝试了使用和不使用 sudo 两种方法)

当我按下Ctrl++时AltT它会打开一个Kitty终端,到目前为止一切顺利。

我还.desktop为 LunarVim 添加了文件,并将 LunarVim 添加为默认editor和打开文本文件的默认应用程序。我可以确认这有效,我在启动器中看到了桌面条目,并且文本文件使用 LunarVim 打开。

问题是 ...LunarVim 总是在 gnome-terminal 中打开。当我点击应用启动器中的图标时,它会在 gnome-terminal 中打开。当我点击文件资源管理器中的 txt 文件时,它会打开 gnome-terminal。我只是想了解为什么会发生这种情况?

我甚至尝试删除gnome-terminal。我会总是xterm然后 lunarvim 将会安装总是用 打开xterm。当我尝试删除时xterm,它会自动gnome-terminal再次安装...

如果有人能告诉我那就太好了,我已经花了几个小时在 Ubuntu 上安装终端这个简单的任务。

出于完整性考虑,以下是桌面文件lvim

[Desktop Entry]
Name=LunarVim
GenericName=Text Editor
Comment=An IDE layer for Neovim with sane defaults. Completely free and community driven.
TryExec=lvim
Exec=lvim %F
Terminal=true
Type=Application
Keywords=Text;editor;
Icon=/opt/lunarvim/lvim/utils/desktop/64x64/lvim.svg
Categories=Utility;TextEditor;
StartupNotify=false
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;

答案1

在 Gnome Shell 中,无法更改desktop启动器指定时要使用的终端仿真器Terminal=true。不过,有一种方法:

  1. 明确启动终端仿真器(例如kitty)并让其加载终端应用程序,例如kitty lvim

  2. 确保lvim在任务栏中拥有自己的图标,与常规实例的图标分开kitty

    a. 使用命令行选项让您的终端采用特定的窗口类,例如在终端仿真器--class lunarvim的情况下。kitty

    b.StartupWMClass=lunarvim向启动器添加一条语句。

你的.desktop启动器将变成:

[Desktop Entry]
Name=LunarVim
GenericName=Text Editor
Comment=An IDE layer for Neovim with sane defaults. Completely free and community driven.
TryExec=lvim
Exec=kitty --class lunarvim lvim %F
StartupWMClass=lunarvim
Terminal=false
Type=Application
Keywords=Text;editor;
Icon=/opt/lunarvim/lvim/utils/desktop/64x64/lvim.svg
Categories=Utility;TextEditor;
StartupNotify=false
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;

相关内容