Openbox - 共通事項 - メニュー - openbox-xdg-menu - カスタマイズ第一弾

 クラウディア
1. 概要
2. 用意
3. 最上位日本語化
4. サブカテゴリ日本語化
5. 反映

1. 概要

 とりあえず

/etc/xdg/openbox/lxqt-rc.xml
~/.config/openbox/lxqt-rc.xml
 は違いがないようだし

~/.config/openbox/menu.xml
 がなくて

/etc/xdg/openbox/menu.xml
 を使っているようなので、ユーザ用ファイルに持ってきて

~/.config/openbox/menu.xml
~/.config/openbox/lxqt-rc.xml
 をごりごりと手動で、カスタマイズしてみることにします。  以下、今んとこ(2020年11月30日)、「Fedora 33 Openbox」決め打ちです。

2. 用意

 カスタマイズ用のファイルを用意します。

cp /etc/xdg/openbox/menu.xml ~/.config/openbox/menu.xml

3. 最上位日本語化

 メニューの最上位の項目を日本語化します。

vi ~/.config/openbox/menu.xml

<?xml version="1.0" encoding="UTF-8"?>

<openbox_menu xmlns="http://openbox.org/3.4/menu">

<menu id="applications-menu" label="Applications" execute="/usr/libexec/openbox-xdg-menu applications"/>
<menu id="preferences-menu" label="Preferences" execute="/usr/libexec/openbox-xdg-menu preferences"/>
<menu id="administration-menu" label="Administration" execute="/usr/libexec/openbox-xdg-menu system-settings"/>
<menu id="terminals-menu" label="Terminals" execute="/usr/libexec/openbox-xdg-menu /etc/xdg/openbox/terminals"/>

<menu id="root-menu" label="Openbox 3">
  <separator label="Openbox"/>
  <menu id="applications-menu"/>
  <menu id="preferences-menu"/>
  <menu id="administration-menu"/>
  <separator/>
  <menu id="terminals-menu"/>
  <separator/>
  <item label="Reconfigure">
    <action name="Reconfigure" />
  </item>
  <item label="Exit">
    <action name="Exit">
      <prompt>yes</prompt>
    </action>
  </item>
  <separator/>
  <item label="Log Out">
    <action name="SessionLogout">
      <prompt>yes</prompt>
    </action>
  </item>
</menu>

</openbox_menu>
 を下記へ変更します。

<?xml version="1.0" encoding="UTF-8"?>

<openbox_menu xmlns="http://openbox.org/3.4/menu">

<menu id="applications-menu" label="アプリケーション" execute="/usr/libexec/openbox-xdg-menu applications"/>
<menu id="preferences-menu" label="設定" execute="/usr/libexec/openbox-xdg-menu preferences"/>
<menu id="administration-menu" label="システム設定" execute="/usr/libexec/openbox-xdg-menu system-settings"/>
<menu id="terminals-menu" label="端末" execute="/usr/libexec/openbox-xdg-menu /etc/xdg/openbox/terminals"/>

<menu id="root-menu" label="Openbox 3">
  <separator label="Openbox"/>
  <menu id="applications-menu"/>
  <menu id="preferences-menu"/>
  <menu id="administration-menu"/>
  <separator/>
  <menu id="terminals-menu"/>
  <separator/>
  <item label="再定義">
    <action name="Reconfigure" />
  </item>
  <item label="終了">
    <action name="Exit">
      <prompt>yes</prompt>
    </action>
  </item>
  <separator/>
  <item label="ログアウト">
    <action name="SessionLogout">
        <prompt>yes</prompt>
    </action>
  </item>
</menu>

</openbox_menu>
 本当は、メニューの最上位にもアイコンをつけたかったのですが、どうも「<item>」の項目には「icon="パス/アイコンファイル名"」でアイコンを表示できるのですが。  「<item>」の項目には「icon=""」が効かないようなので、断念しました。

4. サブカテゴリ日本語化

 最上位のメニューアイコン化は、断念しましたが、アプリケーションメニューのサブカテゴリまでは、日本語化したい。  「menu.xml」をながめて、まぁ

/usr/libexec/openbox-xdg-menu
 を起動していることがわかるのですが・・・。  「openbox-xdg-menu」のソースをながめていると、下記のような記述があります。

if len(sys.argv) > 1:
    menufile = sys.argv[1] + '.menu'
else:
    menufile = 'applications.menu'

lang = os.environ.get('LANG')
if lang:
    xdg.Config.setLocale(lang)

# lie to get the same menu as in GNOME
xdg.Config.setWindowManager('GNOME')

if icons:
  theme = Gtk.IconTheme.get_default()

menu = xdg.Menu.parse(menufile)
 「applications.menu」てなファイルを読み込んでおるぞ・・・と。  (ちなみに、ライブラリとして「/usr/lib/python3.9/site-packages/xdg/」以下をインポートしています)  そのファイルが

/etc/xdg/menus
 にあります。  ホームディレクトリにコピーしてカスタマイズします。

cp -R /etc/xdg/menus ~/.config/menus
vi ~/.config/menus/applications.menu
 編集後の状態のみ掲載しちゃいます。

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
 "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">

<Menu>

  <Name>Applications</Name>
  <Directory>X-GNOME-Menu-Applications.directory</Directory>

  <!-- Scan legacy dirs first, as later items take priority -->
  <LegacyDir>/usr/share/gnome/apps</LegacyDir>
  <LegacyDir>/etc/X11/applnk</LegacyDir>

  <!-- Read standard .directory and .desktop file locations -->
  <KDELegacyDirs/>
  <DefaultAppDirs/>
  <DefaultDirectoryDirs/>

  <!-- Add stock tarball installs to menus -->
  <AppDir>/usr/local/share/applications</AppDir>

  <!-- Accessories submenu -->
  <Menu>
    <Name>アクセサリ</Name>
    <Directory>Utility.directory</Directory>
    <Include>
      <And>
        <Category>Utility</Category>
        <Not>
          <Category>System</Category>
        </Not>
      </And>
    </Include>
  </Menu> <!-- End Accessories -->

  <!-- Development Tools -->
  <Menu>
    <Name>開発</Name>
    <Directory>Development.directory</Directory>
    <Include>
      <And>
        <Category>Development</Category>
      </And>
    </Include>
  </Menu> <!-- End Development Tools -->

  <!-- Education -->
  <Menu>
    <Name>教育</Name>
    <Directory>Education.directory</Directory>
    <Include>
      <And>
        <Category>Education</Category>
      </And>
    </Include>
  </Menu> <!-- End Education -->

  <!-- Games -->
  <Menu>
    <Name>ゲーム</Name>
    <Directory>Game.directory</Directory>
    <Include>
      <And>
        <Category>Game</Category>
      </And>
    </Include>
  </Menu> <!-- End Games -->

  <!-- Graphics -->
  <Menu>
    <Name>グラフィックス</Name>
    <Directory>Graphics.directory</Directory>
    <Include>
      <And>
        <Category>Graphics</Category>
      </And>
    </Include>
  </Menu> <!-- End Graphics -->

  <!-- Internet -->
  <Menu>
    <Name>ネットワーク</Name>
    <Directory>Network.directory</Directory>
    <Include>
      <And>
        <Category>Network</Category>
        <Not><Category>Settings</Category></Not>
      </And>
    </Include>
  </Menu>   <!-- End Internet -->

  <!-- Multimedia -->
  <Menu>
    <Name>マルチメディア</Name>
    <Directory>AudioVideo.directory</Directory>
    <Include>
      <And>
        <Category>AudioVideo</Category>
        <Not><Category>Settings</Category></Not>
      </And>
    </Include>
  </Menu>   <!-- End Multimedia -->

  <!-- Office -->
  <Menu>
    <Name>オフィス</Name>
    <Directory>Office.directory</Directory>
    <Include>
      <And>
        <Category>Office</Category>
      </And>
    </Include>
  </Menu> <!-- End Office -->

  <!-- System Tools-->
  <Menu>
    <Name>システムツール</Name>
    <Directory>System-Tools.directory</Directory>
    <Include>
      <And>
        <Category>System</Category>
        <Not><Category>Settings</Category></Not>
        <Not><Category>Screensaver</Category></Not>
      </And>
    </Include>
  </Menu>   <!-- End System Tools -->

  <!-- Other -->
  <Menu>
    <Name>その他</Name>
    <Directory>X-GNOME-Other.directory</Directory>
    <OnlyUnallocated/>
    <Include>
      <And>
        <Not><Category>Core</Category></Not>
        <Not><Category>Settings</Category></Not>
        <Not><Category>SystemSetup</Category></Not>
        <Not><Category>X-Red-Hat-ServerConfig</Category></Not>
        <Not><Category>Screensaver</Category></Not>
        <Not><Category>Documentation</Category></Not>
      </And>
    </Include>
  </Menu> <!-- End Other -->

  <MergeFile>applications-kmenuedit.menu</MergeFile>

  <!-- Read in overrides and child menus from applications.d -->
  <DefaultMergeDirs/>
</Menu> <!-- End Applications -->
 「<Name>」タグの行を日本語にしているだけです。

5. 反映

 前項までの設定を反映します。  デスクトップ上を右クリックして  「Reconfigure」
「Openbox」「openbox-xdg-menu」-「Reconfigure」

 メニューがこうなります。

「Openbox」-「変更後のメニュー」

 今回(2020年12月1日)は、ここまでくらいかな。

ハイスピードプランJETBOY弁当TSUKUMOネットショップ
 
 
カウンタバックグラウンド