我有 Ubuntu 18.04 和 Plasma 5 桌面。我是一名程序员,我对一种罕见的情况有疑问。
我有一个桌面文件,~/.local/share/applications/xapp.desktop
其内容如下:
#!/usr/bin/env xdg-open
[Desktop Entry]
Terminal=false
Icon=org-xapp
Type=Application
Categories=Development;
Exec=/home/james/Electron/dist/electron /home/james/path-to-electron-app
MimeType=
Name=XAPP
Comment=
#NoDisplay=true
好吧,应用程序显示在应用程序菜单中并完美打开,但当我将其固定到 KDE 中的任务栏时,可执行文件被固定,而桌面文件中没有完整的命令。我预计它会被桌面文件的完整命令行固定。
我看到 Chrome 应用程序被正确固定,并且这些应用程序的桌面文件没有任何特殊之处。
我的自定义应用无法正确固定的原因是什么?如何在 Plasma 5 KDE 上正确固定它?
答案1
经过多次测试,我发现了为什么无法识别。但是我仍然认为这是一种奇怪的行为,并且使应用程序难以分发。好吧,为了正确的观点,我将展示我的所有测试。
我的应用程序将基于电子,因此我尝试了这个:
~/[email protected]
使用 electron dist 内容和~/developer/electron-quick-start
electron 示例应用程序ln -s ~/electron-6.0.11 ~/Electron
文件夹的符号链接- 包含以下内容的bash
/home/james/execute
文件:
#!/usr/bin/bash
/home/james/electron-6.0.11/electron /home/james/developer/electron-quick-start
现在我将展示我尝试过的不同桌面文件:
- 无法正常工作。应用程序打开,但 KDE 任务栏无法识别桌面文件,因此无法正确固定。原因是桌面文件中的可执行文件目录是符号链接
[Desktop Entry]
Terminal=false
Icon=org-xapp
....
Exec=/home/james/Electron/electron /home/james/developer/electron-quick-start
...
- 不起作用。和以前一样
[Desktop Entry]
Terminal=false
Icon=org-xapp
....
Exec="/home/james/Electron/electron" /home/james/developer/electron-quick-start
...
- 工作正常。KDE 任务栏可以识别使用真实规范路径,而不是符号链接。
[Desktop Entry]
Terminal=false
Icon=org-xapp
....
Exec=/home/james/electron-6.0.11/electron /home/james/developer/electron-quick-start
...
- 无法正常工作。应用程序打开,但 KDE 任务栏无法识别桌面文件。我使用与上例类似的规范路径,但由于可执行文件中的“”符号,无法识别。从我的角度来看,这是 KDE 的错误行为。
[Desktop Entry]
Terminal=false
Icon=org-xapp
....
Exec="/home/james/electron-6.0.11/electron" /home/james/developer/electron-quick-start
...
- 不起作用。将环境变量添加到 exec,使 KDE 任务栏无法识别桌面文件。因此,我再次认为这是 KDE 任务栏的错误行为。
[Desktop Entry]
Terminal=false
Icon=org-xapp
....
Exec=env MYVAR=1 /home/james/electron-6.0.11/electron /home/james/developer/electron-quick-start
...
- 无法正常工作。应用程序打开,但无法识别桌面。设置 bash(或使用 child_process 的其他文件类型)来调用原始参数,导致 KDE 任务栏无法识别该文件。
[Desktop Entry]
Terminal=false
Icon=org-xapp
....
Exec=/home/james/execute
...
好的,我的观点是:行为 6 是可以接受的并且是稳定的,行为 1 和 2 是值得怀疑的(没有办法知道是否指向同一个文件吗?),行为 4 和 5 是不可接受的,并且从我的角度来看是错误的,在这种情况下,KDE 任务栏应该识别桌面文件。