web-dev-qa-db-ja.com

コマンドラインからGnomeの[アプリケーション]メニューにメニュー項目を追加するにはどうすればよいですか?

Ubuntu 9.10を使用していますが、Ubuntuの[アプリケーション]メニューのいくつかのメニュー項目の追加を自動化したいと思います。

アラカルトを使用して1回限りの追加を行うことができることは知っていますが、このメニューへの多くのメニュー項目の追加を(PerlまたはBashを介して)自動化することを検討しています。

何か案は?

6
Mick

ここにリンクがあります GNOMEのメニューにエントリを作成するシェルスクリプトの場合

投稿の抜粋:

私はこの質問がUbuntuフォーラムで頻繁に尋ねられるのを見てきました。このページではその方法を説明します。ユーザーは、左上隅のメニューアイコンを右クリックし、[メニューの編集]を選択することで、独自のメニューエントリを作成できます。これによりGUIが表示され、メニュー項目をインストールするセクションを選択できます。シェルスクリプトを使用してGUIを作成します。

すべてのメニュー項目は/ usr/share/applicationsフォルダーに保存されます。そのフォルダには、メニューエントリごとに.desktopファイルがあります。それらの.desktopファイルに入りましょう。

.desktopファイルの内容の例を次に示します。次のコードは、GnomeメニューのプログラミングセクションにKompozerというメニューエントリを作成します。

4
Sathyajith Bhat

アラカルトは、追加したアイテムを/usr/share/applicationsに入れないことに注意してください。それはあなたのホームディレクトリにそれらを追加します。したがって、現在のユーザーだけでなく、すべてのユーザーのエントリを作成したいnotの場合は、以下の変更を行う必要があります。

以下は、アラカルトを介して追加されたテストエントリと、作成された結果のファイルです。

(1)ローカルapplications.menファイルが更新されます。 <Filename>エントリに注意してください。

# cat /home/user/.config/menus/applications.menu 
<!DOCTYPE Menu
 PUBLIC '-//freedesktop//DTD Menu 1.0//EN'
 'http://standards.freedesktop.org/menu-spec/menu-1.0.dtd'>
<Menu>
<Name>Applications</Name>
<MergeFile type="parent">/etc/xdg/menus/applications.menu</MergeFile>
<Menu>
<Name>Internet</Name>
<Include>
<Filename>alacarte-made.desktop</Filename>
</Include>
</Menu>
</Menu>

(2)alacarte-made.desktopファイルは~/.local/share/applicationsに作成されます。

# ls -ltr ~/.local/share/applications/
-rw------- 1 user user  495 2010-04-14 15:48 Nokia-QtCreator.desktop
-rw------- 1 user user  403 2010-04-14 15:48 defaults.list
-rw-r--r-- 1 user user  134 2010-12-20 10:33 userapp-gvim-JYONNV.desktop
-rw-r--r-- 1 user user  321 2010-12-20 10:33 mimeinfo.cache
-rw-r--r-- 1 user user  165 2010-12-20 10:33 mimeapps.list
drwx------ 9 user user 4096 2011-05-26 15:34 ..
-rw------- 1 user user  108 2011-05-26 15:34 installjammer-program.desktop
-rw------- 1 user user  182 2011-05-26 15:34 installjammer-help.desktop
-rw------- 1 user user  201 2011-05-26 15:34 installjammer-userguide.desktop
-rw------- 1 user user  114 2011-05-26 15:34 installjammer-uninstall.desktop
-rwxr-xr-x 1 user user  202 2011-06-10 09:27 alacarte-made.desktop
-rw-r--r-- 1 user user  202 2011-06-10 09:28 alacarte-made.desktop.undo-0
drwxr-xr-x 2 user user 4096 2011-06-10 09:28 .

(3)alacarte-made.desktopの内容を見ると、私のメニューに追加された「テスト」エントリが表示されます。

# cat ~/.local/share/applications/alacarte-made.desktop
#!/usr/bin/env xdg-open

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=gnome-panel-launcher
Name[en_US]=test
Exec=secretsync
Name=test
Icon=gnome-panel-launcher

上記の1のapplications.menuファイルを変更する最善の方法がわかりません。これは明らかに特別にフォーマットされたファイルであり、スクリプトまたはコマンドラインからエントリを作成するために使用できるユーティリティがあるかどうかはわかりません。

3
jar

Sathyaが提供したリンクに加えて、これは、アプリケーションメニューへのメニューの追加を自動化する方法も示しています。

http://wiki.matusov.sk/howto/gnome-menu-edit

0
Mick

ここにある他の回答のいくつかは、パスが正しくないか(少なくとも、Ubuntu 10.10システムには存在しません)、システムレベルのメニューのみに対応しています。 Gnomeユーザーレベルメニューは、$ XDG_CONFIG_HOME/menusディレクトリ(デフォルトでは〜/ .config/menus /)および$ XDG_DATA_HOME/applicationsディレクトリ(デフォルトでは〜/ .local/share/applications)に保存されます。これらのファイルは手動で編集できます。詳細については、これを参照してください buntoフォーラムスレッド ;具体的には デスクトップメニュー仕様 ファイルとその形式について詳しく説明します。

0
djb