我想切换到一个新的编辑器 - 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++时Alt,T它会打开一个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
。不过,有一种方法:
明确启动终端仿真器(例如
kitty
)并让其加载终端应用程序,例如kitty lvim
。确保
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++;