PekWM
Pek Window Manager は Claes Nästen によって書かれました。コードは aewm++ ウィンドウマネージャをベースとしていますが、もはや aewm++ の面影は全くないくらいに進化しています。PekWM には様々な機能が揃っており、ウィンドウのグループ化 (pwm, fluxbox と同様)、自動プロパティ、xinerama、キーチェインをサポートするキーグラブなど、拡張された機能セットも備えています。
目次
インストール
pekwm パッケージをインストールしてください。
起動
xinit を指定して pekwm
を実行します。
PekWM の設定
メインの設定は ~/.pekwm/config
ファイルに保存されています。ワークスペースやビューポートの設定、メニューやハーバーの挙動、ウィンドウエッジの抵抗などを設定します。PekWM ドキュメント に完全なドキュメントが付属したサンプルファイルが存在します。
メニュー
PekWM にはデフォルトでメニューが付属しており ~/.pekwm/menu
に保存されています。使用しているシステムから作られたメニューではないので、使えるかどうかは微妙です。あくまでサンプルとして考えて下さい。
MenuMaker
インストールしたアプリケーションのメニューを自動的に作成する方法として menumaker があります。インストールしたアプリケーション全てのメニューを設定する場合は次のコマンドを実行してください:
mmaker --no-desktop pekwm
オプションのリストを見るには、mmaker --help
を実行してください。
メニューファイルを手動で修正しても良いし、新しいソフトウェアをインストールするたびにリストを再生成するのも良いでしょう。
AUR の pekwm-menuAUR は freedesktop.org の xdg メニュースペックに基づいてアプリケーションが動的に更新されるメニューを作成します。使用方法は簡単です。~/.pekwm/menu
ファイルに以下のようなセクションを追加してください:
Submenu = "Applications" { Icon = "ICON" Entry { Actions = "Dynamic pekwm-menu MENUFILE" } }
"ICON" と "MENUFILE" は適当なアイコンとメニューファイルに置き換えてください。メニューファイルは gnome, xfce, lxde などが作成します。Xdg のメニューファイルは通常 /etc/xdg/menus
に保存されます。
オプションのリストを確認したいときは pekwm-menu --help
を実行してください。
手動
メニューファイルは ~/.pekwm/menu
です。構文はとても簡単です。エントリは以下のようになっています:
Entry = "NAME" { Actions = "Exec COMMAND &" }
サブメニューは以下のようになります:
Submenu = "NAME" { Entry = "NAME" { Actions = "Exec COMMAND &" } Entry = "NAME" { Actions = "Exec COMMAND &" } }
メニューに分割線を追加するには、以下を使ってください:
Separator {}
PekWM はダイナミックメニューもサポートしています。エントリやサブメニューを開くたびにスクリプトの実行結果が表示されるメニューエントリやサブメニューです。メニューが必要とする正確な構文をチェックしてください。
Gmail とネットワーク接続用の動的メニューや、時刻と日付を表示するメニューがあります。
以前は、pekwm_menu_tools というプロジェクトがあり、pekwm の動的メニューを生成するための便利なアプリケーションのセットを目指していました。
ホットキー
ホットキー設定は ~/.pekwm/keys
に保存されます。このファイルは、PekWM で使用されるすべてのキーボードバインディングとキーチェーンを制御します。キーボードバインディングを追加して、プログラムを起動したり、メニューの表示、ウィンドウの移動、デスクトップの切り替えなどの PekWM のアクションを実行したりできます。pekwm のアクションの完全なリストについては、the documentation を参照してください。
1つのキーの組み合わせに複数のアクションを割り当てることができます。これを行うには、アクションをセミコロンで区切るだけです。以下に例を示します:
KeyPress = "Ctrl Mod1 R" { Actions = "Exec osdctl -s 'Reconfiguring'; Reload" }
Ctrl+Alt+R を押すと、Pekwm は画面に 'Reconfiguring' というテキストを表示し (osdctl -s 'Reconfiguring')、再構成 (リロード) します。(これには osdsh がインストールされている必要があることに注意してください)
次の例では、メディアキーをバインドして音量を下げます:
KeyPress = "XF86AudioLowerVolume" { Actions = "exec amixer set Master 5%- unmute &" }
キーの チェーン も実行できます。たとえば、次のようなコードです。
Chain = "Ctrl Mod1 C" { KeyPress = "Q" { Actions = "MoveToEdge TopLeft" } KeyPress = "W" { Actions = "MoveToEdge TopCenterEdge" } }
最初に Ctrl+Alt+c
を押してから q
を押すとアクティブなウィンドウが画面の左上隅に移動し、Ctrl+Alt+c
を押してから w
を押すとウィンドウが上端に移動します。
マウス
マウス設定は ~/.pekwm/mouse
に保存します。このファイルもわかりやすいレイアウトになっています。例:
FrameTitle { ButtonRelease = "1" { Actions = "Raise; Focus" } }
これは、ウィンドウのフレームタイトル上でボタン 1 (通常はマウスの左ボタン) を放すと、そのウィンドウが他のウィンドウの上に "Raised"、フォーカスされたウィンドウになることを意味します。
PekWM がデフォルトで行うように設定されているものの 1 つは、("クリックしてフォーカスする" スタイルとは対照的に) マウスがウィンドウ上に移動したときにウィンドウにフォーカスすることです。これは、かなりの数のユーザーが、より "伝統的な" 方法に変更したいと考えているものの 1 つです。これを変更するには、ファイル内で次の行を探し、その内容を実行します (最初の行はかなりの数ありますが、2 番目の行は 1 つしかありません)
# Remove the following line if you want to use click to focus. # Uncomment the following line if windows should raise when clicked.
スタートアッププログラム
The startup programs file is ~/.pekwm/start
. If you'd like to display a wallpaper or launch a panel whenever Pekwm is started, you can add entries for these things in that file. Note, though, that these applications are run every time Pekwm is started -- including when you run 'Restart' in the root menu. The commands are executed only after Pekwm is started.
To add an application, use the following structure:
nameofapplication &
The & at the end is crucial, or anything after it won't be run. To give you an example of what this file could look like, here is mine:
xfce4-panel & conky & hsetroot -fill ~/images/darkwood.jpg &
Before you can use this file, you will have to make it executable with the following command:
$ chmod +x ~/.pekwm/start
Variables
Variables ファイルには PekWM で使用する一般的な変数を記述します。デフォルトエントリを見ればすぐに分かります:
$TERM="xterm -fn fixed +sb -bg white -fg black"
PekQM の設定ファイルで $TERM 変数を使用した場合、xterm -fn fixed +sb -bg white -fg black
コマンドが実行されます。以下のように変更することでターミナルコマンドで urxvt がロードされるようになります:
$TERM="urxvt"
Autoproperties
特定のワークスペースで特定のアプリケーションを開かないようにしたい場合や、(ウィンドウ) メニューを省略したい場合、自動的にタブに収納したい場合、Autoproperties ファイルで全て指定することができます。おそらく PekWM で一番複雑な設定ファイルですが、最も強力なファイルでもあります。設定できることはここに書くには多すぎるため、詳しくは ドキュメントの autoproperties のページ を見てください。デフォルトの ~/.pekwm/autoproperties
ファイルを見るのも手っ取り早いでしょう。
テーマ
テーマをインストールするには、圧縮ファイルを解凍してテーマのディレクトリに配置してください:
- グローバル:
/usr/share/pekwm/themes
- ユーザー別:
~/.pekwm/themes
壁紙の設定
PekWM はただのウィンドウマネージャであり、デスクトップの壁紙を設定するには別のプログラムを使う必要があります。アプリケーション一覧#壁紙設定を見て下さい。
トラブルシューティング
Nvidia TwinView を使用しているときに、ウィンドウを最大化すると両方のスクリーンに表示されてしまう
~/.pekwm/config
を編集して以下の行を:
HonourRandr = "True"
次のように変更してください:
HonourRandr = "False"
コンポジットや透過が上手く動作しない
v0.1.11 現在、PekWM はコンポジットを正しくサポートしていません。xcompmgr は動作しますが、透過ドッグやパネルは動作せず、ウィンドウに影をつけるとグラフィックに問題が生じます。修正するには devilspie と transset-dfAUR を使って全てのウィンドウの透過度を .999
(あるいは他の値) に設定すれば影が問題なく付くようになります。
transset-df を使って全てのウィンドウの透過度を .999 に設定する devilspie スクリプトの例:
(spawn_async (str "transset-df -i " (window_xid) " .999" ))
GTK 3 アプリケーションでスクロールが出来ない
GDK_CORE_DEVICE_EVENTS
環境変数を設定してみてください。PekWM bug #350 を参照。