Ubuntu 18.04:某些基于Qt的应用程序缺少“添加到收藏夹”选项?

操作系统:Ubuntu 18.04(最小安装选项):
dkb@dkb-ubu1804:~$ cat /etc/X11/default-display-manager
/usr/sbin/gdm3
dkb@dkb-ubu1804:~$ echo $XDG_SESSION_TYPE
x11
dkb@dkb-ubu1804:~$ 

我使用apt install安装了以下基于Qt的应用程序:dolphin、featherpad、gwenview、kate和qterminal。
其中,当我在启动器上右键单击它们的图标时,dolphin、gwenview和kate没有显示“添加到收藏夹”选项。但是featherpad和qterminal有“添加到收藏夹”选项。为什么会这样呢?
(即使重新启动后,情况仍然存在。)
它们的.desktop文件没有提供任何线索。
• Dolphin
[Desktop Entry]
Name=Dolphin
Exec=dolphin %u
Icon=system-file-manager
Type=Application
X-DocPath=dolphin/index.html
Categories=Qt;KDE;System;FileTools;FileManager;
GenericName=File Manager
Terminal=false
MimeType=inode/directory;
InitialPreference=10
X-DBUS-ServiceName=org.kde.dolphin

• FeatherPad
[Desktop Entry]
Name=FeatherPad
GenericName=Text Editor
Comment=Lightweight Qt5 text editor
Exec=featherpad %F
Icon=featherpad
Terminal=false
Type=Application
MimeType=text/plain;
Categories=Qt;Utility;TextEditor;
X-KDE-StartupNotify=false

• Gwenview
[Desktop Entry]
Name=Gwenview
GenericName=KDE Image Viewer
Comment=A simple image viewer
Exec=gwenview %U
Terminal=false
Icon=gwenview
Type=Application
Categories=Qt;KDE;Graphics;Viewer;Photography;
MimeType=inode/directory;image/gif;image/jpeg;image/png;image/bmp;image/x-eps;image/x-icns;image/x-ico;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/tiff;image/x-psd;image/x-webp;image/webp;image/x-tga;
X-DocPath=gwenview/index.html
# InitialPreference should be greater than Okular so that Gwenview is the
# primary application associated with images, but less than Konqueror or Dolphin
# so that Gwenview is not the primary applications for folders.
InitialPreference=8
X-DBUS-ServiceName=org.kde.gwenview

• 凯特

[Desktop Entry]
GenericName=Advanced Text Editor
Name=Kate
Comment=KDE Advanced Text Editor
MimeType=text/plain;
Exec=kate -b %U
StartupNotify=true
X-KDE-HasTempFileOption=true
Icon=kate
X-DocPath=kate/index.html
Type=Application
Terminal=false
InitialPreference=9
X-DBUS-StartupType=Multi
X-DBUS-ServiceName=org.kde.kate
Categories=Qt;KDE;Utility;TextEditor;

• QTerminal
[Desktop Entry]
Name=QTerminal
Type=Application
GenericName=Terminal emulator

Comment=Terminal emulator

Icon=utilities-terminal
Exec=qterminal
Terminal=false
Categories=Qt;System;TerminalEmulator;
Actions=Dropdown;

[Desktop Action Dropdown]
Name=Drop-down terminal
Exec=qterminal --drop
Icon=utilities-terminal

Name[en_GB]=Drop-down Terminal

海豚(如下所示),gwenview和kate没有显示“添加到收藏夹”的选项。

dolphin

 

Featherpad(如下所示)和qterminal都有预期的“添加到收藏夹”选项。

featherpad


这个链接可能会有帮助。 - pomsky
1@pomsky,我觉得在19.10版本中问题已经解决了。无论是Dolphin还是Gwenview都可以成功地添加到Ubuntu 19.10的Dock中作为收藏夹。 - DK Bose
1我无法在使用Gnome 3、gnome-shell 3.36.1-5ubuntu1 amd64和Ubuntu 20的情况下添加Kate。也许可以通过创建一个.desktop文件并将其放在某个位置来实现替代方法吗? - sancho.s ReinstateMonicaCellio
@sancho.sReinstateMonicaCellio 你是用snap还是deb安装的? - DK Bose
我刚刚将Kate作为快照安装在Ubuntu 20.04上,并且可以将其添加到收藏夹中。如果你尝试过程中发现了两个Kate图标的问题,请参考这里;当然,你需要删除相应的.desktop文件,即/var/lib/snapd/desktop/applications/kate_org.kde.kate.desktop - DK Bose
@sancho.sReinstateMonicaCellio 试试这个:点击左下角的九宫格图标。在打开的屏幕中搜索Kate,并右键点击其图标。"添加到收藏夹"选项就在那里。参考这个链接 - DK Bose
@DKBose - 我是通过 apt-get.deb 安装的。 请注意,我成功将其添加到了收藏夹中(我现在不记得当时使用了什么方法),但是当我启动它时,在 Dash 中出现了两个图标。这是一个进步,但还不是想要的结果。 - sancho.s ReinstateMonicaCellio
@DKBose - 关于snap和deb的比较,我曾经阅读过一篇文章(现在找不到来源了,但我非常确定它是一个SE网站,很可能是askubuntu),其中提到snaps通常运行速度较慢,并且占用更多空间;从稍微差一点到更糟糕都有可能。 - sancho.s ReinstateMonicaCellio
4个回答

一个方便的解决方法是从地址栏将其添加到我的收藏夹中。

enter image description here


谢谢你的解决办法 :) - prkos
4如果一个实例已经打开,Workaround通常会产生两个图标,一个是固定的图标,但新的图标通常会作为第二个图标添加进来。 - JoKalliauer
在Ubuntu桌面18上对我来说非常好用 - 嗯,Ubuntu团队应该将此视为一个用户界面错误。 - Nam G VU

这个用户体验完全奇怪、不可预测和意想不到。

我在Ubuntu 18.04 LTS的Ubuntu会话(GNOME Shell)中以及19.10(开发版本)中确认了你的结果。

我的第一个想法是Exec字段指向了某个符号链接,但其中声明的所有文件都是简单的ELF可执行文件。 更糟糕的是,这些桌面文件没有OnlyShowIn指令...


我在Unity、MATE(使用Mutiny面板布局)和Lubuntu的18.04 LTS版本以及19.10(开发版本)中都没有这个问题。
而且我还能将这些应用程序停靠到Cairo-Dock、Docky和Plank上。

所以这是GNOME Shell的一个错误。
我已经向LaunchPad报告了这个问题(实际上它是2018-05-02的bug 1768609的重复)。


请稍微详细解释一下ELF可执行文件的含义。谢谢! - DK Bose
1我的意思是它们是普通的Linux可执行文件,而不是用bash/python或其他脚本来包装的。 - N0rbert
我认为在19.10版本中问题已经解决了。无论是Dolphin还是Gwenview都可以成功地添加到Ubuntu 19.10的Dock中作为收藏夹。 - DK Bose
在干净的19.10虚拟机上,我只能通过从“Dash”上右键单击图标并选择“添加到收藏夹”来添加图标。但是,使用<Alt+F2> → kate / gwenview 或 <Super> → kategwenview仍然无法在码头中显示“添加到收藏夹”。 - N0rbert
1啊!我是通过在Dock栏上的图标上右键点击来添加到收藏夹的,而不是使用Alt+F2。但之前,即使右键点击也不起作用。 - DK Bose

Jokalliauer给出了正确的答案:
将.desktop文件重命名为应用程序的WM_CLASS。打开您想要更改的应用程序。输入以下内容,然后按回车键以查找WM_CLASS。
xprop | grep WM_CLASS

在命令行界面中,直到你点击应用程序的打开窗口之前,你将看不到任何内容。将应用程序的.desktop文件重命名为...
wm_classNameGoesHere.desktop

关闭相关应用程序,重新启动它,然后在工具栏中右键单击图标时将出现添加到收藏夹的选项。

桌面文件必须与打开的程序具有相同的WM_CLASS

  • 对于Dolphin: dolphin.desktop
  • 对于JabRef: org.jabref.gui.JabRefMain.desktop
  • 对于Maple: java-lang-Thread.desktop
  • 对于Eclipse: eclipse.desktopsource
  • 对于nemo:nemo.desktop不是 Files.desktop)
  • 对于学术版MatlabR2022b:MATLAB R2022b - academic use

可以使用以下命令找到WM_CLASS

xprop

更多详细信息,请查看https://askubuntu.com/a/1155956/676490https://unix.stackexchange.com/a/225409/241592