「Openbox」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「Compton」を「Picom」に置換)
(Pkg/AUR テンプレートの更新)
69行目: 69行目:
 
=== XDG ===
 
=== XDG ===
   
アプリケーションを自動実行するのに、Openbox はローカルの {{ic|~/.config/openbox/autostart}} ファイルだけでなく、パッケージによってグローバルな {{ic|/etc/xdg/autostart}} ディレクトリに自動的にインストールされた {{ic|.desktop}} ファイルも読み込みます。{{pkg|python2-xdg}} は Openbox の xdg-autostart に必要です。
+
アプリケーションを自動実行するのに、Openbox はローカルの {{ic|~/.config/openbox/autostart}} ファイルだけでなく、パッケージによってグローバルな {{ic|/etc/xdg/autostart}} ディレクトリに自動的にインストールされた {{ic|.desktop}} ファイルも読み込みます。{{pkg|python2-xdg}}{{Broken package link|パッケージが存在しません}} は Openbox の xdg-autostart に必要です。
   
例えば、[[NetworkManager]] のアプレット (nm-applet) などをローカルで自動実行を行っていて、後で {{Pkg|python2-xdg}} をインストールしていた場合、グローバルな XDG {{ic|.desktop}} ファイルが読み込まれることになり、結果としてシステムトレイに2つアイコンが表示されてしまいます。したがって、{{Pkg|python2-xdg}} を明示的にインストールしておいて、インストールしたときに自動的にアプリケーションが自動実行されるようにしておくのを推奨します。
+
例えば、[[NetworkManager]] のアプレット (nm-applet) などをローカルで自動実行を行っていて、後で {{Pkg|python2-xdg}}{{Broken package link|パッケージが存在しません}} をインストールしていた場合、グローバルな XDG {{ic|.desktop}} ファイルが読み込まれることになり、結果としてシステムトレイに2つアイコンが表示されてしまいます。したがって、{{Pkg|python2-xdg}}{{Broken package link|パッケージが存在しません}} を明示的にインストールしておいて、インストールしたときに自動的にアプリケーションが自動実行されるようにしておくのを推奨します。
   
 
{{ic|Downloads}}, {{ic|Documents}} などの {{ic|Home}} フォルダが存在しない場合は [[XDG ユーザーディレクトリ]]を見て下さい。
 
{{ic|Downloads}}, {{ic|Documents}} などの {{ic|Home}} フォルダが存在しない場合は [[XDG ユーザーディレクトリ]]を見て下さい。
512行目: 512行目:
   
 
{{Warning|アクショングループに他のアクションが定義されている場合、上手く行かないことがあります。}}
 
{{Warning|アクショングループに他のアクションが定義されている場合、上手く行かないことがあります。}}
{{Pkg|transset-df}} パッケージに含まれている ''transset-df'' を使えばすぐにウィンドウ透過を有効にできます。
+
{{AUR|transset-df}} パッケージに含まれている ''transset-df'' を使えばすぐにウィンドウ透過を有効にできます。
   
 
例えば以下を {{ic|~/.config/openbox/rc.xml}} ファイルの ''<mouse>'' セクションに追加すれば、タイトルバー上でマウスのホイールを回すことでウィンドウの透明度を調整できるようになります:
 
例えば以下を {{ic|~/.config/openbox/rc.xml}} ファイルの ''<mouse>'' セクションに追加すれば、タイトルバー上でマウスのホイールを回すことでウィンドウの透明度を調整できるようになります:

2020年12月31日 (木) 14:46時点における版

関連記事

Openbox は軽量で設定が自由なスタック型ウィンドウマネージャです。デスクトップ環境とは独立して動作させることも、KDEXfce など他のデスクトップ環境に入っているウィンドウマネージャの代替として使うことも可能です。LXDE デスクトップ環境は Openbox を初めから組み込んでいます。

目次

インストール

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 Shellmutter のプラグインであり、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-xdg[リンク切れ: パッケージが存在しません] は Openbox の xdg-autostart に必要です。

例えば、NetworkManager のアプレット (nm-applet) などをローカルで自動実行を行っていて、後で python2-xdg[リンク切れ: パッケージが存在しません] をインストールしていた場合、グローバルな XDG .desktop ファイルが読み込まれることになり、結果としてシステムトレイに2つアイコンが表示されてしまいます。したがって、python2-xdg[リンク切れ: パッケージが存在しません] を明示的にインストールしておいて、インストールしたときに自動的にアプリケーションが自動実行されるようにしておくのを推奨します。

Downloads, Documents などの Home フォルダが存在しない場合は XDG ユーザーディレクトリを見て下さい。

Openbox

ノート: ファイルの編集は Openbox を使用する一般ユーザーで実行してください。
ヒント: ローカルの設定ファイルはグローバルの設定を上書きします。

Openbox の基本的な設定は主に4つのファイルを使って行い、それぞれに固有の役割があります: rc.xml, menu.xml, autostart, environment。これらのファイルの詳細は以下で記述していますが、Openbox の設定を始めるには、まず (特定のユーザーアカウントの) ローカルの Openbox プロファイルを作成する必要があります。グローバルな /etc/xdg/openbox プロファイル (全てのユーザーに適用されます) をテンプレートとしてコピーすることで作成できます:

$ cp -R /etc/xdg/openbox ~/.config/

rc.xml

ヒント: カスタムキーボードショートカット (キーバインド) はこのファイルの <keyboard> セクションの、<!-- Keybindings for running aplications --> の下に追加します。

~/.config/openbox/rc.xml はメインの設定ファイルです。以下の設定を定義します:

  • キーボードショートカット (例: アプリケーションの起動やボリュームのコントロール)
  • テーマ
  • デスクトップと仮想デスクトップの設定
  • アプリケーションウィンドウの設定

このファイルにはあらかじめ設定がされており、個人的な好みで修正するほかは既存の内容に変更を加える必要はありません。

menu.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 ベースの設定ツール。
http://openbox.org/wiki/ObConf:About || obconf
  • LXAppearance ObConf — Openbox を設定するための LXAppearance のプラグイン。
http://lxde.org || lxappearance-obconf
  • LXInput — LXDE のキーボード・マウス設定。
http://lxde.org || lxinput
  • LXRandR — LXDE のモニター設定。
http://wiki.lxde.org/en/LXRandR || lxrandr
  • obkey — Openbox のキーボードショートカットを設定。
https://code.google.com/p/obkey/ || obkeyAUR
  • ob-autostart — Openbox のためのシンプルな自動起動アプリケーション。
https://pastebin.com/012YgXTk || ob-autostartAUR
  • obapps — Openbox のアプリケーション設定を変えるためのグラフィカルツール。
https://sourceforge.net/projects/obapps/ || obappsAUR

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 キーにはキーバインドで重要な役割があります (例: shiftCTRL / control キーを押しながら他のキーを押すことでアクションを実行する)。修飾キーを使うことでキーバインドの衝突を減らし、同一のキーに複数のアクションを指定することができます。修飾キーと他のキーを使う場合の構文は:

"<modifier>-<key>"

modifier のコードは以下の通りです:

  • S: Shift
  • C: Control / CTRL
  • A: Alt
  • W: Super / Windows
  • M: Meta
  • H: Hyper (何かにバインドしている場合)

例えば、以下のコードは supertlxterminal を起動します:

<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 のどれを使っているかによって変わってきます。

デスクトップメニュー

デスクトップメニューにアクセスするキーバインドを作成することもできます。例えば、以下のコードは 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

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 のメニューエディタを使って設定を行ってもかまいません。

obmenu

警告: obm-xdg - GTK+GNOME アプリケーションのリストを生成するパイプメニュー - も存在しますが、長い間解決してないバグが存在し、出力に誤りが混ざったりあるいは全く使えないことがあります。従って、語るに値しないものとします。

obmenuAUR~/.config/openbox/menu.xml を編集するためのユーザーフレンドリな GUI アプリケーションで、xml のコードを編集したくない人にうってつけでしょう。

xdg-menu

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.org にも様々なパイプメニューのリストが載っています。

Generators

このタイプのメニューは XfceLXDE などのデスクトップ環境で使われているタスクバーに似ています。このタイプのメニューは自動的に更新され、強力でとても便利です。カスタムカテゴリやメニューエントリを追加することもできます。使用するダイナミックメニューのドキュメントを読んで下さい。

メニュージェネレータは ~/.config/openbox/menu.xml ファイルから実行する必要があります。

obmenu-generator

ヒント: ~/.config/openbox/rc.xml でアイコンを有効にしていても、obmenu-generatorAUR でアイコンを無効化することができます。

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-menu

ヒント: このメニューでエラーが発生する場合、~/.config/openbox/rc.xml でアイコンを有効にすることで解決します。

openbox-menuAURLXDE プロジェクトによる menu-cache を使って Openbox のダイナミックメニューを作成します。詳細については 公式ホームページ を見て下さい。

obmenugen

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 はキーの押下やキーバインドを擬態するコマンドが実行できるパッケージです。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

デスクトップテーマ

ヒント: 外観の設定やテーマを設定するときは GUI アプリケーションの obconflxappearance-obconf をインストールすることを強く推奨します。特に後者は ~/.gtkrc-2.0 ファイルを生成するのに必要なので特に重要です (GTK+#テーマを参照)。

大量の Openbox 専用GTK+ テーマと、汎用の Openbox 対応GTK+ テーマが存在し、ウィンドウ装飾やデスクトップメニューの外観を変更することができます。汎用のテーマは様々なデスクトップ環境やウィンドウマネージャでも利用できるように作られており、その中に Openbox も含まれています。例は パッケージの説明 を見て下さい。

設定

GTK テーマを選択したり設定するには obconflxappearance-obconf を使います。VirtualBox など Qt ベースのアプリケーションのテーマについての情報は Qt と GTK アプリケーションの外観の統合を見て下さい。

インストール

openbox-themesAUR パッケージに様々なテーマが入っています。

インストールした Openbox のテーマは /usr/share/themes ディレクトリに自動的にインストールされます。すぐに選択することが可能です。

box-look.orgdeviantART.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

xfdesktopXfce のデスクトップマネージャです。Thunar ファイルマネージャも依存パッケージとしてダウンロードされます。xfdesktop を使用しているときは、壁紙を右クリックして Openbox のデスクトップメニューにアクセスすることはできなくなります。

そのため、キーバインドを作成するか、パネルをインストールしてデスクトップメニューをパネルメニューとして使うかして、他の方法でアクセスできるようにする必要があります。xfdesktop を使ってアイコンを表示するには、以下のコマンドを ~/.config/openbox/autostart ファイルに追加します:

xfdesktop &

conky の設定

ファイルマネージャを使ってデスクトップを管理するときは、conky を使っている場合、~/.conkyrc を編集して own_window_type コマンドを変更する必要があります。コマンドは以下のように修正してください:

own_window_type normal

ヒントとテクニック

マウスを使ってデスクトップを切り替える

画面の端にマウスを移動することでデスクトップを切り替えることが可能です。まず xdotool をインストールして以下の2行を ~/.xinitrc に追加してください:

xdotool behave_screen_edge --delay 500 left set_desktop --relative -- -1 &
xdotool behave_screen_edge --delay 500 right set_desktop --relative -- +1 &

規定のアプリケーション/ファイルの関連付けの設定

デフォルトアプリケーションを見て下さい。

マウスホイールによるデスクトップ切り替えを循環しないようにする

デフォルトではマウスホイールを回すことで 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_ROLEWM_CLASS (名前とクラス) の値です:

WM_WINDOW_ROLE(STRING) = "roster"
WM_CLASS(STRING) = "gajim.py", "Gajim.py"
WM_CLASS(STRING) = "NAME", "CLASS"

Firefox

何らかの理由で、Firefox やその亜種は class="Firefox*" を使用しないかぎりアプリケーションルール (例: <desktop>) を無視します。xprop によって報告されるプログラムの WM_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>

ウィンドウを端にスナップすると、一度最大化してから戻すまで縦に最大化された状態になります。downup キーを使用するキーバインドを追加することで解決できます。スナップされたウィンドウを画面の端から素早く引き出します:

<keybind key="W-Down">
   <action name="Unmaximize"/>
</keybind>
<keybind key="W-Up">
   <action name="Maximize"/>
</keybind>

Ubuntu フォーラムのスレッド に詳しい情報が載っています。opensnap-gitAUR[リンク切れ: アーカイブ: aur-mirror] などのアプリケーションはキーバインドを使わずにウィンドウのスナップを自動的にシミュレートします。また、bunsen-utilities-gitAURbl-aerosnap --leftbl-aerosnap --right コマンドを使うことで、スナップされていない場合にアクティブなウィンドウを左端または右端にスナップして、スナップしている場合に元のサイズ・位置に戻すことができます。コマンドを適当なキーバインドに設定してください。

ディスプレイマネージャのスムーズな遷移

ノート: 以下の設定は LightDM で機能することを確認済みです。

ディスプレイマネージャを使用している場合、ディスプレイマネージャから Openbox のデスクトップに遷移するときにちらつきが発生することがあります。ちらつきの原因は Openbox が起動時にルートウィンドウの色を設定しているためです。ディスプレイマネージャの背景とデスクトップの背景の間に、一瞬だけグレーの色が表示されてしまいます。

/usr/lib/openbox/openbox-autostart にある Openbox のスタートアップスクリプトを編集することでルートウィンドウの背景色の設定を無効にできます。# Set a background color から始まるブロックをコメントアウト(あるいは削除)してください。

ノート: ルートウィンドウの色設定を無効化して、Openbox の背景色を特に設定していなかった場合、ディスプレイマネージャの背景が継承されます。

トラブルシューティング

ウィンドウがアクティブウィンドウの後ろにロードされる

(Firefox のウィンドウなど) アプリケーションウィンドウが現在のアクティブウィンドウの後ろにロードされ、ウィンドウをフォーカスして切り替える必要が生じることがあります。この挙動を修正するには以下を ~/.config/openbox/rc.xml ファイルの <openbox_config></openbox_config> タグの間に追加してください:

<applications>
  <application class="*">
    <focus>yes</focus>
  </application>
</applications>

参照