PekWM

提供: ArchWiki
2024年2月11日 (日) 16:43時点におけるKgx (トーク | 投稿記録)による版 (→‎スタートアッププログラム: 翻訳)
ナビゲーションに移動 検索に移動

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
ノート: 上記のコマンドは既存のメニューファイルを上書きしません。上書きしたい場合は、コマンドに -f フラグを付けてください。

オプションのリストを見るには、mmaker --help を実行してください。

メニューファイルを手動で修正しても良いし、新しいソフトウェアをインストールするたびにリストを再生成するのも良いでしょう。

pekwm-menu を使う

AURpekwm-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.

スタートアッププログラム

スタートアッププログラムファイルは ~/.pekwm/start です。Pekwm を起動するたびに壁紙を表示したり、パネルを起動したりしたい場合は、そのファイルにこれらのエントリを追加できます。ただし、これらのアプリケーションは、ルート メニューで '再起動' を実行するときも含め、Pekwm が起動されるたびに実行されることに注意してください。コマンドは Pekwm の起動後にのみ実行されます。

アプリケーションを追加するには、次の構造を使用します:

nameofapplication &

最後の & は重要であり、それ以降は実行されません。以下に例を示します:

xfce4-panel &
conky &
hsetroot -fill ~/images/darkwood.jpg &

このファイルを使用する前に、ファイルを 実行可能 にする必要があります。

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 は動作しますが、透過ドッグやパネルは動作せず、ウィンドウに影をつけるとグラフィックに問題が生じます。修正するには devilspietransset-dfAUR を使って全てのウィンドウの透過度を .999 (あるいは他の値) に設定すれば影が問題なく付くようになります。

transset-df を使って全てのウィンドウの透過度を .999 に設定する devilspie スクリプトの例:

(spawn_async (str "transset-df -i " (window_xid) " .999" ))

GTK 3 アプリケーションでスクロールが出来ない

GDK_CORE_DEVICE_EVENTS 環境変数を設定してみてください。PekWM bug #350 を参照。

参照