Openboxのメニューには頻繁に使わないコマンドを埋め込む

はじめに

こんにちは、野村です。

今回は、Openboxのメニューの設定メモです。

Debian系の場合、Openboxのメニューは「Debianメニュー」になっています。
なので、OSにアプリを追加すると、そのアプリのショートカットがメニューに追加されるのですよ。
それが当たり前に思われるかも知れないけど、FreeBSD+Openboxの環境じゃそうなりません。

自力でメニューを編集しなきゃいけないのです。

面倒そうだけど、やってみると意外とそうでもなかったりする。
メニューなんてものは、自分で編集するくらいがいいかも知れないな。

メニューを開くショートカットを設定

デフォルトでは、デスクトップの何もない領域を右クリックすればメニューが開きます。
でも、キー操作でメニューを開けるようにしたほうが便利です。

設定ファイル「~/.config/openbox/rc.xml」のノード「keyboard」内に以下のコードを記述すると「Ctrl+Escape」がメニューを開くショートカットになります。

    <keybind key="C-Escape">
      <action name="ShowMenu">
        <menu>root-menu</menu>
      </action>
    </keybind>

デフォルトのメニュー設定ファイルをコピーする

設定メニューを編集する前にデフォルトの設定ファイルをホームデレクトリ内にコピーします(FreeBSDの場合)。

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

環境によっては「/usr/local/etc/xdg/openbox/menu.xml」ではなく「/etc/xdg/openbox/menu.xml」なのかも。よくわからない。

デフォルトの設定ファイルには、インストールされていないアプリの起動コマンドや使わないコマンドなどがいっぱい書き込まれています。
これをタタキ台として編集していきます。

編集後のソース

だいぶスッキリしました。

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

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

<menu id="apps-term-menu" label="Terminals">
  <item label="Rxvt Unicode">
    <action name="Execute">
      <command>urxvt</command>
    </action>
  </item>
  <item label="Xterm">
    <action name="Execute"><command>xterm</command></action>
  </item>
</menu>

<menu id="apps-net-menu" label="Internet">
  <item label="Firefox">
    <action name="Execute">
      <command>firefox</command>
      <startupnotify>
        <enabled>yes</enabled>
        <wmclass>Firefox</wmclass>
      </startupnotify>
    </action>
    </item>
</menu>

<menu id="system-menu" label="System">
  <item label="1920x1080">
    <action name="Execute">
      <command>xrandr --output VGA-0 --mode 1920x1080</command>
      <startupnotify><enabled>yes</enabled></startupnotify>
    </action>
  </item>
  <item label="800x600">
    <action name="Execute">
      <command>xrandr --output VGA-0 --mode 800x600</command>
      <startupnotify><enabled>yes</enabled></startupnotify>
    </action>
  </item>
  <item label="Reconfigure Openbox">
    <action name="Reconfigure" />
  </item>
</menu>

<menu id="root-menu" label="Openbox 3">
  <separator label="Applications" />
  <menu id="apps-net-menu"/>
  <menu id="apps-term-menu"/>
  <separator label="System" />
  <menu id="system-menu"/>
  <separator />
  <item label="Log Out">
    <action name="Exit">
      <prompt>yes</prompt>
    </action>
  </item>
</menu>

</openbox_menu>

特筆すべきなのは、画面解像度を変更するコマンド。
どういうわけか、GUIを起動するとたまに低い解像度で表示されてしまうのですよ。原因不明。
なので、強制的に高解像度に再設定するコマンドをメニューにぶち込んでみました。

最後に

以上、Openboxのメニューを自力で設定した際のメモでした。

しかし、アプリを起動したり、コマンドを実行したりするのって、本当に頻繁に使うものであれば、デスクトップのショートカットに設定する方が楽ちんだったりする。

・頻繁というほどには使わない
・コマンドを打ち込むのが面倒
・コマンドを覚えられない

のような場合にメニューを活用するのがいいのかも。
解像度の再設定あたりが丁度いいです。

というわけで、今回はこれにて。