Openbox
Openbox は軽量で設定が自由なスタック型ウィンドウマネージャです。デスクトップ環境とは独立して動作させることも、KDE や Xfce など他のデスクトップ環境に入っているウィンドウマネージャの代替として使うことも可能です。LXDE デスクトップ環境は Openbox を初めから組み込んでいます。
目次
- 1 インストール
- 2 Openbox の起動
- 3 設定
- 4 Openbox の再設定
- 5 キーバインド
- 6 メニュー
- 7 デスクトップテーマ
- 8 コンポジット効果
- 9 デスクトップアイコンと壁紙
- 10 ヒントとテクニック
- 10.1 カーソルとアイコンのテーマ
- 10.2 デスクトップのアイコンと壁紙
- 10.3 コンポジタ効果
- 10.4 oblogout
- 10.5 ホットキーを使用して複雑なコマンドを起動する
- 10.6 マウスホイールによるデスクトップ切り替えを循環しないようにする
- 10.7 規定のアプリケーション/ファイルの関連付けの設定
- 10.8 ウィンドウ透過
- 10.9 obxprop を使って素早く設定を行う
- 10.10 アプリケーションの Xprop の値
- 10.11 キーボードレイアウトの切り替え
- 10.12 仮想デスクトップのグリッドレイアウトの設定
- 10.13 ホットコーナーの有効化
- 10.14 ウィンドウのスナップ
- 10.15 ディスプレイマネージャのスムーズな遷移
- 10.16 ウィンドウのデコレーション
- 11 トラブルシューティング
- 12 参照
インストール
openbox パッケージをインストールしてください。
Openbox の起動
スタンドアロン
Openbox は単独のウィンドウマネージャ (WM) として使うことができます。デスクトップ環境と一緒に Openbox を使うよりもインストールや設定はシンプルになります。openbox だけを使うことは CPU やメモリの使用量を減らすこともできます。
Openbox をスタンドアロンのウィンドウマネージャとして実行するには、以下を ~/.xinitrc
に追加してください:
exec openbox-session
logind (や consolekit) セッションの維持などについては xinitrc を見て下さい。
以前に他のウィンドウマネージャ (Xfwm 等) を使っていて、Openbox が起動しないときは、autostart フォルダを削除してみてください:
mv ~/.config/autostart ~/.config/autostart.bak
他のデスクトップ環境
デスクトップ環境のネイティブのウィンドウマネージャを Openbox で置き換えるときは、Openbox に (透過などの) コンポジット効果が存在しないことに注意してください。#コンポジット効果を参照。
GNOME
GNOME Shell
は mutter のプラグインであり、Openbox で使うことはできません。Openbox は GNOME アプリケーションで動作しません (GTK+#クライアントサイドデコレーションを参照) [1]。
KDE
KDE#KDE/Openbox Session を見てください。
Xfce
Xfce#デフォルトウィンドウマネージャを見てください。
MATE
MATE#MATE で他のウィンドウマネージャを使うを見てください。
設定
XDG
アプリケーションを自動実行するのに、Openbox はローカルの ~/.config/openbox/autostart
ファイルだけでなく、パッケージによってグローバルな /etc/xdg/autostart
ディレクトリに自動的にインストールされた .desktop
ファイルも読み込みます。python2-xdgAUR は Openbox の xdg-autostart に必要です。
例えば、NetworkManager のアプレット (nm-applet) などをローカルで自動実行を行っていて、後で python2-xdgAUR をインストールしていた場合、グローバルな XDG .desktop
ファイルが読み込まれることになり、結果としてシステムトレイに2つアイコンが表示されてしまいます。したがって、python2-xdgAUR を明示的にインストールしておいて、インストールしたときに自動的にアプリケーションが自動実行されるようにしておくのを推奨します。
Downloads
, Documents
などの Home
フォルダが存在しない場合は XDG ユーザーディレクトリを見て下さい。
Openbox
Openbox の基本的な設定は主に4つのファイルを使って行い、それぞれに固有の役割があります: rc.xml
, menu.xml
, autostart
, environment
。これらのファイルの詳細は以下で記述していますが、Openbox の設定を始めるには、まず (特定のユーザーアカウントの) ローカルの Openbox プロファイルを作成する必要があります。グローバルな /etc/xdg/openbox
プロファイル (全てのユーザーに適用されます) をテンプレートとしてコピーすることで作成できます:
$ cp -R /etc/xdg/openbox ~/.config/
rc.xml
~/.config/openbox/rc.xml
はメインの設定ファイルです。以下の設定を定義します:
- キーボードショートカット (例: アプリケーションの起動やボリュームのコントロール)
- テーマ
- デスクトップと仮想デスクトップの設定
- アプリケーションウィンドウの設定
このファイルにはあらかじめ設定がされており、個人的な好みで修正するほかは既存の内容に変更を加える必要はありません。
~/.config/openbox/menu.xml
はデスクトップを右クリックしたときに表示されるメニューの中身を定義するファイルです。デフォルトのメニューは静的なメニュー (新しいアプリケーションをインストールしてもメニューが更新されない) ですが、自動的に更新されるダイナミックメニューを使うこともできます。
メニューについては下のメニューセクションで詳しい説明をしています。
autostart
~/.config/openbox/autostart
には Openbox セッションが開始したときにどのアプリケーションを起動するか記述します。
コマンドはアンパサンド (&
) を付けて終了する必要があります。コマンドにアンパサンドが付いていないと、それから先に記述されたコマンドが実行されなくなります。
また、autostart ファイルではコマンドの実行を遅延させることを推奨します。そうしないと全てのコマンドが同時に実行されることになり、結果的にアイテムが起動しなくなることがあります。コマンドの実行を遅延させるには以下のような形式で記述します:
(sleep <number of seconds>s && <command>) &
例えば、Conky の実行を3秒だけ遅らせたい場合、コマンドは以下の通りです:
(sleep 3s && conky) &
python2 スクリプトの /usr/lib/openbox/openbox-xdg-autostart
は XDG の autostart 規格に沿ってアプリケーションを実行します。
environment
~/.config/openbox/environment
は以下のような環境変数を設定するのに使います:
- 新しいパスの定義 (例: パスを必要とする実行コマンド)
- 言語設定の変更
- 他の使用される変数 (例: GTK テーマの修正)
GUI 設定パッケージ
Openbox デスクトップを簡単に設定するための GUI が複数存在します:
- ObConf — Openbox ウィンドウマネージャのための GTK2 ベースの設定ツール。
- LXAppearance ObConf — Openbox を設定するための LXAppearance のプラグイン。
- LXInput — LXDE のキーボード・マウス設定。
- LXRandR — LXDE のモニター設定。
- obkey — Openbox のキーボードショートカットを設定。
- ob-autostart — Openbox のためのシンプルな自動起動アプリケーション。
- obapps — Openbox のアプリケーション設定を変えるためのグラフィカルツール。
Openbox のデスクトップメニューを設定するアプリケーションについてはメニューセクションを見て下さい。
Openbox の再設定
Openbox は常に設定ファイルの変更をセッションに反映させるわけではありません。そのため、設定ファイルを編集したら手動でリロードする必要があります。再設定を行うには、次のコマンドを実行してください:
$ openbox --reconfigure
上のコマンドを実行するキーバインドを ~/.config/openbox/rc.xml
に追加すれば、いちいちターミナルを開く必要がなくなります。例えば Super
+F11
キーバインドを使用する場合:
<keybind key="W-F11"> <action name="Reconfigure"/> </keybind>
キーバインド
全てのキーバインドは ~/.config/openbox/rc.xml
ファイルの <!-- Keybindings for running aplications -->
の下に追加します。ここでは簡単な説明をするにとどめるので、キーバインドの詳しい説明は openbox.org を読んで下さい。
特殊なキー
基本的な英数字キーをキーバインドに使うのはわかりやすいですが modifiers
, multimedia
, navigation
キーなど他のタイプのキーには特殊な名前が割り当てられています。
修飾キー
Modifier
キーにはキーバインドで重要な役割があります (例: shift
や CTRL / control
キーを押しながら他のキーを押すことでアクションを実行する)。修飾キーを使うことでキーバインドの衝突を減らし、同一のキーに複数のアクションを指定することができます。修飾キーと他のキーを使う場合の構文は:
"<modifier>-<key>"
modifier のコードは以下の通りです:
S
: ShiftC
: Control / CTRLA
: AltW
: Super / WindowsM
: MetaH
: Hyper (何かにバインドしている場合)
例えば、以下のコードは super
と t
で lxterminal を起動します:
<keybind key="W-t"> <action name="Execute"> <command>lxterminal</command> </action> </keybind>
マルチメディアキー
ボリュームや画面の明るさの調整など、適切な multimedia
キーで予期した操作が実行されるように設定することが可能です。通常はマルチメディアキーは function
キーに統合されますが、適当なシンボルで識別できます。詳しくは特別なキーボードキーを見て下さい。
ボリュームと輝度のマルチメディアキーは以下の通りです (マルチメディアキーを機能させるにはコマンドを割り当てる必要があります):
XF86AudioRaiseVolume
: ボリュームを上げるXF86AudioLowerVolume
: ボリュームを下げるXF86AudioMute
: ボリュームをミュート / ミュート解除XF86MonBrightnessUp
: 画面の明るさを上げるXF86MonBrightnessDown
: 画面の明るさを下げる
上記のキーを ~/.config/openbox/rc.xml
で使用する例は下にあります。
ナビゲーションキー
矢印キーは通常、カーソルを上下左右に動かすのに使われます。navigation のコードは以下の通りです:
Up
: 上Down
: 下Left
: 左Right
: 右
ボリュームコントロール
音量のコントロールにどのコマンドを使うかは、サウンドシステムとして ALSA, PulseAudio, OSS のどれを使っているかによって変わってきます。
- ALSA: Advanced Linux Sound Architecture#キーボードのボリュームコントロールを見てください。
- PulseAudio: PulseAudio#キーボードのボリュームコントロールを見てください。
- OSS: OSS#OSS でマルチメディアキーを使うを見てください。
デスクトップメニュー
デスクトップメニューにアクセスするキーバインドを作成することもできます。例えば、以下のコードは CTRL
+ m
を押すことでメニューが表示されるようにします:
<keybind key="C-m"> <action name="ShowMenu"> <menu>root-menu</menu> </action> </keybind>
メニュー
Openbox では3つのタイプのメニューを使うことができます: static
, pipes
(dynamic), generators
(static または dynamic)。どれか一つだけを使うこともできますし組み合わせることも可能です。
Static
名前の通り、デフォルトのメニュータイプであり決して変更されることがありません。手動で編集したり、適切なソフトウェアパッケージを使って自動で生成することが可能です。
このタイプのメニューはアプリケーションを選択するだけでなく、アプリケーションから他のプロセス (例: synapse または xfce4-appfinder アプリケーション) にアクセスして、特定の関数にアクセスしたりタスク (デスクトップの設定など) を実行することもできます。
~/.config/openbox/menu.xml
ファイルが static デスクトップメニューの唯一の設定ファイルです。
menumaker は Openbox, Fluxbox, IceWM, Xfce など複数のウィンドウマネージャに対応した xml
メニューを自動で作成します。MenuMaker はあなたのコンピュータにある実行可能ファイルを検索して、その結果からメニューファイルを作成します。特定のアプリケーション (GNOME, KDE など) を省くように設定することも可能です。
インストールして実行すると、新しい ~/.config/openbox/menu.xml
ファイルが生成されます。既存のファイルが上書きされないようにするには、次を実行:
$ mmaker -v OpenBox3
もしくは、既存のファイルを上書きしたい場合は、force
引数を追加 (f
):
$ mmaker -vf OpenBox3
新しい ~/.config/openbox/menu.xml
ファイルが作成されたら、手動で編集しても良いですし、obmenuAUR などの GUI のメニューエディタを使って設定を行ってもかまいません。
obmenuAUR は ~/.config/openbox/menu.xml
を編集するためのユーザーフレンドリな GUI アプリケーションで、xml
のコードを編集したくない人にうってつけでしょう。
archlinux-xdg-menu は Openbox を含む、様々なウィンドウマネージャのメニューを /etc/xdg/
ディレクトリに含まれている xdg
ファイルから自動で作成することができます。詳しくは Xdg-menu#OpenBox を見て下さい。
ログアウトメニューのオプション
~/.config/openbox/menu.xml
ファイルを編集することで oblogout のオプションと同じサブメニューを作成することができます。以下のサンプルスクリプトは画面のロック以外の全てのオプションを備えます:
<menu id="exit-menu" label="Exit"> <item label="Log Out"> <action name="Execute"> <command>openbox --exit</command> </action> </item> <item label="Shutdown"> <action name="Execute"> <command>systemctl poweroff</command> </action> </item> <item label="Restart"> <action name="Execute"> <command>systemctl reboot</command> </action> </item> <item label="Suspend"> <action name="Execute"> <command>systemctl suspend</command> </action> </item> <item label="Hibernate"> <action name="Execute"> <command>systemctl hibernate</command> </action> </item> </menu>
エントリを作成したら、以下の行をメインデスクトップメニューの中でサブメニューを表示したいところに追加してください (普通は最後のエントリにします):
<menu id="exit-menu"/>
Pipes
このタイプのメニューは基本的にスクリプトで、実行時に即座に更新される動的なリストを提供します。リストが使用される目的は複数あり、アプリケーションを一覧したり、情報を表示したり、機能を制御したりします。定義済みのパイプメニューをインストールすることができ、上級者であればカスタムスクリプトを作成・修正することができます。また、~/.config/openbox/menu.xml
には複数のパイプメニューを定義することができます。
サンプル
- openbox-xdgmenuAUR: xdg-menu を xml-pipe-menu に変換
- obfilebrowserAUR: アプリケーションとファイルブラウザ
- obdevicemenuAUR: udisks によるリムーバブルメディアの管理
- wifi pipe menu: Netctl による無線ネットワーク
Openbox.org にも様々なパイプメニューのリストが載っています。
Generators
このタイプのメニューは Xfce や LXDE などのデスクトップ環境で使われているタスクバーに似ています。このタイプのメニューは自動的に更新され、強力でとても便利です。カスタムカテゴリやメニューエントリを追加することもできます。使用するダイナミックメニューのドキュメントを読んで下さい。
メニュージェネレータは ~/.config/openbox/menu.xml
ファイルから実行する必要があります。
obmenu-generatorAUR は非公式パッケージながら強く推奨されています。静的または動的なメニューとして使うことができ、細かくカスタマイズすることが可能です。メニューのカテゴリや個々のエントリは簡単に非表示にすることができ、カスタマイズしたり追加するのもお茶の子さいさい。詳しい説明やスクリーンショットが 公式ホームページ にあります。
以下は ~/.config/openbox/menu.xml
でアイコンを使わずに obmenu-generator を動的に実行する例です:
<?xml version="1.0" encoding="utf-8"?> <openbox_menu> <menu id="root-menu" label="OpenBox 3" execute="/usr/bin/obmenu-generator"> </menu> </openbox_menu>
自動的にエントリをアイコン化するには、-i
オプションを追加します:
<menu id="root-menu" label="OpenBox 3" execute="/usr/bin/obmenu-generator -i">
openbox-menuAUR は LXDE プロジェクトによる menu-cache を使って Openbox のダイナミックメニューを作成します。詳細については 公式ホームページ を見て下さい。
ObmenugenAUR[リンク切れ: アーカイブ: aur-mirror] を使うことで .desktop
ファイルから静的なまたは動的なアプリケーションメニューを生成することができます。詳しくは 公式ホームページ を見て下さい。
メニューアイコン
メニューエントリの横にアイコンを表示するには、~/.config/openbox/rc.xml
ファイルの <menu>
セクションでアイコンを有効にする必要があります:
<applicationIcons>yes</applicationIcons>
固定メニューを使用する際は ~/.config/openbox/menu.xml
ファイルを編集して icon =
コマンドとエントリのフルパス・アイコン名が必要です。カテゴリのアイコンを指定する例:
<menu id="apps-menu" label="[label name]" icon="[pathway to icon]/[icon name]">
デスクトップメニューをパネルメニューとして使う
xdotool はキーの押下やキーバインドを擬態するコマンドが実行できるパッケージです。XDoTool を使うことで実際に特定のキーを押さなくても、キーバインドが設定されたアクションを実行することができます。Openbox のデスクトップメニューのキーバインドも実行できるため、XDoTool を利用して Openbox のデスクトップメニューをパネルメニューにすることが可能になります。特に、デスクトップメニューをとことんカスタマイズして様々なことができるようにしている場合、非常に便利です:
- 既存のパネルメニューを置き換える。
- パネルメニューが存在しない場合にパネルメニューを追加する (例: Tint2)。
- xfdesktop などのアプリケーションを使っている場合にデスクトップメニューを開けなくなったときにデスクトップを管理する。
XDoTool をインストールしたら、ルートメニューにアクセスするキーバインドを ~/.config/openbox/rc.xml
の <!-- Keybindings for running aplications -->
の下に作成してください。例えば、以下のコードは CTRL
+ m
でメニューを表示します:
<keybind key="C-m"> <action name="ShowMenu"> <menu>root-menu</menu> </action> </keybind>
Openbox の再設定が必要です。ここでは XDoTool を使って以下のコマンドで CTRL
+ m
をシミュレートしてデスクトップメニューにアクセスします (+
は -
の代わりとして使っています):
xdotool key control+m
パネルランチャーやアイコンとして上記のコマンドを使用するやりかたは使用するパネルによります。パネルによっては新しいランチャーを作成するのに直接上記のコマンドを実行できますが、実行スクリプトを使う必要がある場合もあります。例えば ~/.config
フォルダに obpanelmenu.sh
という名前のカスタム実行スクリプトを作成:
$ text editor ~/.config/obpanelmenu.sh
空のファイルを開いたら、適切な XDoTool コマンドを空のファイルに追加してください (以下の例では CTRL
+ m
をシミュレート):
xdotool key control+m
ファイルを保存したら、以下のコマンドで実行可能属性を付与してください:
$ chmod +x ~/.config/obpanelmenu.sh
デスクトップテーマ
大量の Openbox 専用の GTK+ テーマと、汎用の Openbox 対応の GTK+ テーマが存在し、ウィンドウ装飾やデスクトップメニューの外観を変更することができます。汎用のテーマは様々なデスクトップ環境やウィンドウマネージャでも利用できるように作られており、その中に Openbox も含まれています。例は パッケージの説明 を見て下さい。
設定
GTK テーマを選択したり設定するには obconf や lxappearance-obconf を使います。VirtualBox など Qt ベースのアプリケーションのテーマについての情報は Qt と GTK アプリケーションの外観の統合を見て下さい。
インストール
openbox-themesAUR パッケージに様々なテーマが入っています。
インストールした Openbox のテーマは /usr/share/themes
ディレクトリに自動的にインストールされます。すぐに選択することが可能です。
box-look.org や deviantART.com にも様々なテーマが存在します。
トラブルシューティング
稀に、以下の問題が発生することがあります。特にサポートされないウェブサイトからテーマをダウンロードしたときに発生します。
テーマが使えない
何らかの理由で展開したテーマが選択できない場合、テーマディレクトリを開いて openbox-3
ディレクトリが存在するか、また、ディレクトリ内に themerc
ファイルが存在することを確認してください。テーマによっては .obt
(OpenBox Theme) ファイルが存在することもあり、obconf から手動でロードすることができます。
ファイルやディレクトリが存在する場合、ファイルのパーミッションが正しく設定されていない可能性があります。フォルダとファイルのパーミッションの所有者が root になっていることを確認してください:
# chown -R root /user/share/themes
テーマの編集または新しいテーマの作成
新しいテーマを作成したり既存のテーマを修正する方法は公式ウェブサイトの openbox.org で詳しく解説されています。また、obthemeAUR を使うことで GUI で行うことができます。
コンポジット効果
Openbox はネイティブではコンポジットをサポートしておらず、したがって、コンポジットを使うにはコンポジタをインストールする必要があります。コンポジットを使用することで透過や影などの様々なデスクトップ効果を使うことができるようになります。コンポジットは必須のコンポーネントではありませんが、見た目の良い環境を作るのに役立ち、oblogout を使うときの画面の乱れや、ターミナルウィンドウの透過を有効にしたときに起こるグリッチを防ぐことができます。一般的には以下からコンポジタを選択します:
- Picom: パワフルで信頼性があり、拡張性のあるコンポジタ。
- Xcompmgr: 旧式ながらシンプルなコンポジタ。
- Cairo Compmgr: 高度なコンポジット効果があり、プラグインをサポートし、ユーザーフレンドリな GUI を提供。ただしバグが多くてシステムリソースの消費も著しい。
デスクトップアイコンと壁紙
Openbox はネイティブではデスクトップアイコンや壁紙の使用をサポートしていません。したがって、必要であればアプリケーションを追加でインストールする必要があります。
ファイルマネージャによるデスクトップ管理
ファイルマネージャの中には完全にデスクトップを管理できる機能を持っているものがあり、そうしたファイルマネージャを使うことでデスクトップ上での壁紙やアイコンの使用をすることができます。LXDE デスクトップ環境ではそのために PCManFM を使っています。
PCManFM#デスクトップの管理や SpaceFM#デスクトップの管理を見て下さい。
壁紙
アプリケーション一覧#壁紙設定を見て下さい。
アイコンプログラム
デスクトップアイコンを使うためだけのプログラムというものも存在しますが、ファイルマネージャを利用するよりも利便性は大きく劣ります。
idesk
idesk は壁紙の管理に加えてアイコンを使えるようにもできるシンプルなプログラムです。~/.idesktop
ディレクトリを作成する必要があり、デスクトップアイコンは手動で作成しなくてはなりません。idesk を使ってアイコンを表示するには、~/.config/openbox/autostart
ファイルに以下のコマンドを追加してください:
idesk &
xfdesktop
xfdesktop は Xfce のデスクトップマネージャです。Thunar ファイルマネージャも依存パッケージとしてダウンロードされます。xfdesktop を使用しているときは、壁紙を右クリックして Openbox のデスクトップメニューにアクセスすることはできなくなります。
そのため、キーバインドを作成するか、パネルをインストールしてデスクトップメニューをパネルメニューとして使うかして、他の方法でアクセスできるようにする必要があります。xfdesktop を使ってアイコンを表示するには、以下のコマンドを ~/.config/openbox/autostart
ファイルに追加します:
xfdesktop &
conky の設定
ファイルマネージャを使ってデスクトップを管理するときは、conky を使っている場合、~/.conkyrc
を編集して own_window_type
コマンドを変更する必要があります。コマンドは以下のように修正してください:
own_window_type normal
ヒントとテクニック
カーソルとアイコンのテーマ
詳細については、カーソルテーマ および アイコン を参照してください。
デスクトップのアイコンと壁紙
Openbox は、デスクトップアイコンや壁紙の使用をネイティブにサポートしていません。
PCManFM、SpaceFM、Ideskを参照してください。
アプリケーション一覧#壁紙設定 を参照してください。
コンポジタ効果
Openbox は compositing のネイティブサポートを提供していないため、この目的には外部コンポジタが必要です。
コンポジタは必須のコンポーネントではありませんが、特に oblogout による画面の歪みや、ターミナルウィンドウの透明度による視覚的な不具合などの問題を回避できる可能性があります。一般的な選択肢については、Xorg#コンポジットマネージャ一覧 を参照してください。
oblogout
この便利なグラフィカルなログアウトスクリプトの使用方法の概要については、Oblogout の記事を参照してください。
ホットキーを使用して複雑なコマンドを起動する
複雑なコマンドを実行する必要がある場合は、シェル機能を使用してください。
独自のスクリプトを作成するときは、"&
" ("&"), "<
" ("<"), ">
" (">") など) の XML 特殊文字を必ずエスケープしてください。)、(詳細は XML の事前定義されたエンティティ を参照してください)。
この例では、表示をすぐにオフにし、slock で画面をロックします。これは このスレッド から取得したものです。
<keybind key="W-l"> <action name="Execute"> <command>sh -c 'slock & (sleep .5 && xset dpms force off)'</command> </action> </keybind>
場合によっては、アプリケーションの環境変数を指定する必要があります:
<keybind key="A-F7"> <action name="Execute"> <command>sh -c "LC_ALL=C obconf"</command> </action> </keybind>
別の例では、すべての stdout および stderr 出力をファイルに保存してアプリケーションを起動します:
<keybind key="A-f"> <action name="Execute"> <command>sh -c sh -c "exec gimp >/tmp/gimp.out 2>&1"</command> </action> </keybind>
スクリーンショットを有効にする:
<keybind key="Print"> <action name="Execute"> <command>gnome-screenshot --clipboard</command> </action> </keybind> <keybind key="A-Print"> <action name="Execute"> <command>gnome-screenshot --clipboard --window</command> </action> </keybind> <keybind key="W-Print"> <action name="Execute"> <command>gnome-screenshot --interactive</command> </action> </keybind>
マウスホイールによるデスクトップ切り替えを循環しないようにする
デフォルトではマウスホイールを回すことで Openbox は最後のデスクトップから最初のデスクトップに切り替えます。mousebind
セクションで <wrap>no</wrap>
を使うことでこの挙動を無効化することが可能です。
<context name="Desktop"> <mousebind button="Up" action="Click"> <action name="GoToDesktop"> <to>previous</to> <wrap>no</wrap> </action> </mousebind> <mousebind button="Down" action="Click"> <action name="GoToDesktop"> <to>next</to> <wrap>no</wrap> </action> </mousebind> </context>
規定のアプリケーション/ファイルの関連付けの設定
デフォルトアプリケーションを見て下さい。
ウィンドウ透過
transset-dfAUR パッケージに含まれている transset-df を使えばすぐにウィンドウ透過を有効にできます。
例えば以下を ~/.config/openbox/rc.xml
ファイルの <mouse> セクションに追加すれば、タイトルバー上でマウスのホイールを回すことでウィンドウの透明度を調整できるようになります:
<context name="Titlebar"> ... <mousebind button="Up" action="Click"> <action name= "Execute" > <execute>transset-df -p .2 --inc </execute> </action> </mousebind> <mousebind button="Down" action="Click"> <action name= "Execute" > <execute>transset-df -p .2 --dec </execute> </action> </mousebind> ... </context>
obxprop を使って素早く設定を行う
openbox パッケージには rc.xml
のアプリケーション設定の値を解析することができる obxprop
バイナリが付属しています。公式では obxprop | grep "^_OB_APP"
を使うことが推奨されています。コマンドを実行してプロセスを開始したら、ウィンドウをクリックすることでターミナルにプロパティが表示されます。
アプリケーションの Xprop の値
xorg-xprop パッケージをインストールして、選択したアプリケーションのプロパティの値を中継することができます。頻繁にアプリケーションごとの設定をする場合、以下の Bash エイリアスが役に立つでしょう:
alias xp='xprop | grep "WM_WINDOW_ROLE\|WM_CLASS" && echo "WM_CLASS(STRING) = \"NAME\", \"CLASS\""'
Xorg-XProp を使用するときは、xp
と定義したエイリアスを使って起動し、アプリケーションごとの設定を定義したいプログラムをクリックしてください。Openbox が必要とする情報だけが表示されます。つまり WM_WINDOW_ROLE
と WM_CLASS
(名前とクラス) の値です:
WM_WINDOW_ROLE(STRING) = "roster" WM_CLASS(STRING) = "gajim.py", "Gajim.py" WM_CLASS(STRING) = "NAME", "CLASS"
キーボードレイアウトの切り替え
キーボードレイアウトの管理に他のプログラムを使いたくない場合、特定のキーボードショートカットでレイアウトを切り替えるように X を手動で設定することができます。詳しい方法は Xorg#キーボードレイアウトの切り替えを見てください。
仮想デスクトップのグリッドレイアウトの設定
obsetlayoutAUR をインストールしてください。2x2 のグリッドを設定するには:
obsetlayout 0 2 2 0
引数を付けないで実行することで引数の意味を知ることができます。
ホットコーナーの有効化
lead は openbox などの軽量なウィンドウマネージャのためのホットコーナーです。autostart ファイルで以下のようにアプリケーションを起動してください:
mlde.lead &
~/.config/mlde/lead.conf
設定ファイルでコマンドを編集できます:
[eDP1] bottom= bottomLeft=chromium bottomRight=thunar left= right= top= topLeft=mlde.californium toggle topRight=skippy-xd
ウィンドウのスナップ
多数のデスクトップ環境やウィンドウマネージャはウィンドウのスナップ (例: Windows 7 の Aero スナップ) をサポートしています。画面の端に移動された時に自動的にウィンドウの大きさが変更されます。ウィンドウに関するキーバインドを使用することで Openbox でもこの効果を再現することが可能です。
下の例であるように、パーセンテージを使ってウィンドウの大きさを決定します (詳しくは openbox.org を参照)。ここでは、super
キーを navigation
キーと組み合わせて使っています:
<keybind key="W-Left"> <action name="UnmaximizeFull"/> <action name="MaximizeVert"/> <action name="MoveResizeTo"> <width>50%</width> </action> <action name="MoveToEdge"><direction>west</direction></action> </keybind> <keybind key="W-Right"> <action name="UnmaximizeFull"/> <action name="MaximizeVert"/> <action name="MoveResizeTo"> <width>50%</width> </action> <action name="MoveToEdge"><direction>east</direction></action> </keybind>
ウィンドウを端にスナップすると、一度最大化してから戻すまで縦に最大化された状態になります。down
と up
キーを使用するキーバインドを追加することで解決できます。スナップされたウィンドウを画面の端から素早く引き出します:
<keybind key="W-Down"> <action name="Unmaximize"/> </keybind> <keybind key="W-Up"> <action name="Maximize"/> </keybind>
Ubuntu フォーラムのスレッド に詳しい情報が載っています。opensnap-gitAUR[リンク切れ: アーカイブ: aur-mirror] などのアプリケーションはキーバインドを使わずにウィンドウのスナップを自動的にシミュレートします。また、bunsen-utilities-gitAUR の bl-aerosnap --left
や bl-aerosnap --right
コマンドを使うことで、スナップされていない場合にアクティブなウィンドウを左端または右端にスナップして、スナップしている場合に元のサイズ・位置に戻すことができます。コマンドを適当なキーバインドに設定してください。
ディスプレイマネージャのスムーズな遷移
ディスプレイマネージャを使用している場合、ディスプレイマネージャから Openbox のデスクトップに遷移するときにちらつきが発生することがあります。ちらつきの原因は Openbox が起動時にルートウィンドウの色を設定しているためです。ディスプレイマネージャの背景とデスクトップの背景の間に、一瞬だけグレーの色が表示されてしまいます。
/usr/lib/openbox/openbox-autostart
にある Openbox のスタートアップスクリプトを編集することでルートウィンドウの背景色の設定を無効にできます。# Set a background color
から始まるブロックをコメントアウト(あるいは削除)してください。
ウィンドウのデコレーション
すべてまたは特定のアプリケーションのウィンドウのデコレーションを削除するには、rc.xml の <applications> セクションの <decor> オプションを使用します (ユーザー: ~/.config/openbox/ またはシステム: /etc/xdg/openbox/)
Firefox の例 (Firefox-Beta や Firefox-Nightly などの亜種を含む):
<application class="Firefox*"> <decor>no</decor> </application>
また、すべてのアプリケーションのデコレーションを無効にし (クラス * を使用)、個別のアプリケーションに対して装飾を有効にする (yes を使用) こともできます。変更を適用するには、デスクトップセッションを再起動し、Openbox を再起動します。参照: Openbox FAQ
トラブルシューティング
Firefox
Mozilla ベースのブラウザは、class="Firefox"
が使用されない限り、アプリケーションルール (例: <desktop>
) を無視する可能性があります。Xprop 値 を参照してください。
テーマが見つからない
何らかの理由で新しく抽出したテーマを選択できない場合は、まずテーマディレクトリを開いて Openbox と互換性があることを確認します。openbox-3
ディレクトリと themerc
ファイルがあるはずですその中で。場合によっては、.obt
(OpenBox 'Theme) ファイルも存在する場合があり、obconf に手動でロードできます。
間違った権限が原因でテーマにアクセスできない場合もあります。詳細については、ファイルのパーミッションと属性 を参照してください。
デスクトップの連続切り替えを停止する
デフォルトでは、Openbox はマウスのホイールスクロール時に最後のデスクトップから最初のデスクトップに戻ります。この動作を無効にするには、mousebind
セクションで <wrap>no</wrap>
を使用します。
<context name="Desktop"> <mousebind button="Up" action="Click"> <action name="GoToDesktop"> <to>previous</to> <wrap>no</wrap> </action> </mousebind> <mousebind button="Down" action="Click"> <action name="GoToDesktop"> <to>next</to> <wrap>no</wrap> </action> </mousebind> </context>
ウィンドウがアクティブウィンドウの後ろにロードされる
(Firefox のウィンドウなど) アプリケーションウィンドウが現在のアクティブウィンドウの後ろにロードされ、ウィンドウをフォーカスして切り替える必要が生じることがあります。この挙動を修正するには以下を ~/.config/openbox/rc.xml
ファイルの <openbox_config>
と </openbox_config>
タグの間に追加してください:
<applications> <application class="*"> <focus>yes</focus> </application> </applications>
参照
- Openbox Website – 公式ウェブサイト
- Box-Look.org – テーマやアートワーク
- Openbox Hacks and Configs Thread @ Arch Linux フォーラム
- Openbox Screenshots Thread @ Arch Linux フォーラム
- Using GNOME 3 with Openbox Tutorial