我已在计算机上安装了不同的环境风格(Unity、Mate、Xfce、KDE……)。我已设置登录时使用 Xfce。但其他环境中有一些应用程序/软件,我希望无需注销/登录到其他桌面即可使用,也无需尝试发现该特定程序的命令是什么,这样我就可以直接从 Xfce 的终端运行它。
我希望以自动的方式将所有这些应用程序列在我的菜单中(因此应该排除“从头开始创建每个快捷方式条目”的答案)。
答案1
.desktop
我怀疑关键在于中最常见的文件内容/usr/share/applications
。(用户可能还会自动或手动.desktop
放置一些文件$HOME/.local/share/applications
。)
这里有两个条目值得关注:
无显示
表示“此应用程序存在,但不在菜单中显示”。这很有用,例如,将此应用程序与 MIME 类型关联,以便从文件管理器(或其他应用程序)启动它,而无需为其设置菜单项(这样做有很多好的理由,例如包括 netscape -remote 或 kfmclient openURL 之类的东西)。
仅显示于、不显示于
标识应该显示/不显示给定桌面条目的桌面环境的字符串列表。
默认情况下,应该显示桌面文件,除非存在 OnlyShowIn 键,在这种情况下,默认不显示该文件。
在我的系统(只有“KDE”)上,我看到:
$ grep -E "NoDisplay" /usr/share/applications/*.desktop
/usr/share/applications/display-im6.desktop:NoDisplay=true
/usr/share/applications/display-im6.q16.desktop:NoDisplay=true
/usr/share/applications/geoclue-where-am-i.desktop:NoDisplay=true
/usr/share/applications/hplj1020.desktop:NoDisplay=true
/usr/share/applications/ktelnetservice5.desktop:NoDisplay=true
/usr/share/applications/kwalletmanager5-kwalletd.desktop:NoDisplay=true
/usr/share/applications/libreoffice-math.desktop:NoDisplay=false
/usr/share/applications/libreoffice-startcenter.desktop:NoDisplay=false
/usr/share/applications/libreoffice-xsltfilter.desktop:NoDisplay=true
(plus many more entries)
$ grep -E "OnlyShowIn" /usr/share/applications/*.desktop
/usr/share/applications/org.kde.kcolorschemeeditor.desktop:OnlyShowIn=KDE;
/usr/share/applications/org.kde.kinfocenter.desktop:OnlyShowIn=KDE;
/usr/share/applications/org.kde.kmenuedit.desktop:OnlyShowIn=KDE;
/usr/share/applications/org.kde.plasmashell.desktop:OnlyShowIn=KDE;
/usr/share/applications/org.kde.polkit-kde-authentication-agent-1.desktop:OnlyShowIn=KDE;
/usr/share/applications/systemsettings.desktop:OnlyShowIn=KDE;
$
$ grep -E "NotShowIn" /usr/share/applications/*.desktop
/usr/share/applications/kdesystemsettings.desktop:NotShowIn=KDE;
/usr/share/applications/libreoffice-math.desktop:NotShowIn=GNOME;
/usr/share/applications/libreoffice-startcenter.desktop:NotShowIn=GNOME;
/usr/share/applications/org.kde.kdeconnect.kcm.desktop:NotShowIn=KDE;
/usr/share/applications/org.kde.kdeconnect.nonplasma.desktop:NotShowIn=KDE;
/usr/share/applications/org.kde.klipper.desktop:NotShowIn=KDE;
/usr/share/applications/system-config-printer.desktop:NotShowIn=KDE;GNOME;
$
如果您在系统上运行上述命令,您会发现,某些应用程序未包含在菜单中(无论是原始桌面环境还是其他任何环境)可能是有充分理由的。在某些情况下,您可能认为没有正当理由。
如果你确实想更改某些应用程序的显示状态,我建议你复制将相应的.desktop
文件复制到~/.local/share/applications
那里并进行更改。在那里所做的更改将
- 不需要 sudo
- 仅供您使用,不供其他用户使用
- 如果/当应用程序更新时,它将保持不变,而
.desktop
文件/usr/share/applications
将被覆盖。
答案2
您可以使用它alacarte
来编辑应用程序菜单。它不像从头开始创建每个快捷方式,也不是自动化的......
在某些版本中alacarte
,还显示来自其他桌面环境的软件……