我创建了一个自定义文件来启动我最喜欢的终端 Tilix 和我喜欢的会话。除了和.desktop
行之外,该文件与默认文件完全相同。Exec
DBusActivatable
~/.local/share/applications/com.gexperts.Tilix.desktop
(省略 i18n 行):
[Desktop Entry]
Version=1.0
Name=Tilix
Comment=A tiling terminal for Gnome
Keywords=shell;prompt;command;commandline;cmd;
Exec=tilix -s /home/phydeaux/.tilix/Default.json
Terminal=false
Type=Application
StartupNotify=true
Categories=System;TerminalEmulator;X-GNOME-Utilities;
Icon=com.gexperts.Tilix
DBusActivatable=false
Actions=new-window;new-session;
[Desktop Action new-window]
Name=New Window
Exec=tilix --action=app-new-window
[Desktop Action new-session]
Name=New Session
Exec=tilix --action=app-new-session
然后我通过搜索并使用“添加到收藏夹”将此快捷方式添加到 Dock。
在我升级到 17.10 之前,这个功能运行良好(在 16.04 和 17.04 上,都是 GNOME)。现在,单击 dock 中的快捷方式即可打开 Tilix没有我的会话(即默认行为)。
当我在“活动中”搜索“Tilix”并点击该快捷方式时,或者当我在 Nautilus 中导航到~/.local/share/applications/
并双击该.desktop
文件时,Tilix 与我的会话一起运行,一如既往。只有当我将快捷方式添加到收藏夹时才会发生不必要的行为。
什么原因可能导致这种情况发生?我该如何解决?
更新 1:将该Exec
行更改为绝对路径没有帮助,使用自定义 shell 脚本也没有帮助。
更新 2:我把这条Exec
线改成了两个都我的自定义文件(在~/.local/...
)和原始文件放入/usr/...
中Exec=gedit
,看看会发生什么。从 Nautilus 或搜索运行任一文件都会按预期打开 Gedit,但是码头中的版本仍然打开了Tilix!它怎么可能知道该这么做?
更新 3:我添加了一个全新的文件:~/.local/.../com.phydeaux.Tlx.desktop
,内容与上面的相同,只是多了Name=Tlx
。从 dock 运行它会根据需要使用我的会话打开 Tilix,所以这足以作为一个(愚蠢的)解决方法。然而,如果我从 更改为Name=Tlx
,Name=Tilix
不良行为会再次出现,并且即使我随后将名称改回 ,它仍然会持续存在Tlx
。当我这样做时,快捷方式文件是否会以某种方式与 Tilix 应用程序“关联”?GNOME 是否认为它知道运行该应用程序的“正确”方式?这与 D-Bus 有关吗?
更新 4:18.04 中仍然存在问题。删除 Tilix 的服务文件/usr/share/dbus-1/services/
没有帮助。
答案1
添加一个全新的快捷方式文件~/.local/share/applications/com.phydeaux.Tlx.desktop
,其内容与原始文件完全相同,但不包括Name=Tlx
,然后将该快捷方式添加到 Dock,这样就接近我想要的行为。
这成功地通过我的会话打开了 Tilix,尽管它在 Dock 中的不同图标下打开了一个窗口,并且以不同的名称出现(更改名称会Tilix
导致不良行为的复发)。