web-dev-qa-db-ja.com

さまざまなデスクトップ環境のメニューアプリで表示する方法

マシンに異なる環境フレーバー(Unity、Mate、Xfce、KDE ​​...)をインストールしました。ログイン時にXfceを使用するように設定しました。しかし、他のデスクトップにログアウト/ログインせずに、特定のプログラムのコマンドが何であるかを見つけようとせずに使用したい他の環境のアプリ/ソフトウェアがあり、Xfceから直接ターミナルから実行できます。

自動化された方法で、これらすべてのアプリをメニューに表示したいと思います(したがって、「すべてのショートカットエントリをゼロから作成する」という回答は除外する必要があります)。

5
ce0xtkpiq45ul

alacarteを使用して、アプリメニューを編集できます。すべてのショートカットを一から作成するようなものではなく、自動化もされていません...他のデスクトップ環境のalacarteソフトウェアの一部のバージョンでも表示されます。

2

キーは、.desktopで最も一般的に見られる/usr/share/applicationsファイルの内容にあると思われます。 (ユーザーは、いくつかの.desktopファイルを$HOME/.local/share/applicationsに自動または手動で配置することもできます。)

.desktopファイルの形式は、通常、 freedesktop.org によって規定されている specifications に基づいています。

ここで興味深いのは、2つのエントリです。

ディスプレイなし

「このアプリケーションは存在しますが、メニューには表示しません」という意味です。これは、たとえばこのアプリケーションをMIMEタイプに関連付けると、メニューエントリがなくてもファイルマネージャー(または他のアプリ)から起動されます(これには、netscape -remoteやkfmclient openURLなどを含む、多くの正当な理由があります)ものの)。

OnlyShowIn、NotShowIn

特定のデスクトップエントリを表示/非表示するデスクトップ環境を識別する文字列のリスト。

デフォルトでは、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/applicationscopyコピーして変更することをお勧めします。そこで行われた変更は

  • 須藤は必要ありません
  • あなただけのためであり、他のユーザーのためではない
  • .desktop内の/usr/share/applicationsファイルが上書きされるのに対して、アプリケーションが更新された場合は、変更されません。
4
DK Bose