WMFS
関連記事
WMFS (Window Manager From Scratch) は X 用の軽量かつ柔軟な設定が可能なタイル型ウィンドウマネージャです。設定ファイルで設定を行うことができ、Xft (Freetype) フォントをサポートしていて Extended Window Manager Hints (EWMH) 仕様に準拠しています。
wmds のコードは古すぎてプロジェクトの新しいアイデアや概念に沿っていません。そのため (スクラッチから) 書き直されています。変更点や設定については wiki に説明があります。
インストール
WMFS2 は wmfs2-gitAUR パッケージでインストールできます。
使用方法
WMFS2 はオリジナルの WMFS とウィンドウの管理方法が異なっています。前のバージョンでは DWM や Awesome などのウィンドウマネージャと同じようにウィンドウは事前定義したレイアウトにあわせて整列していました。WMFS2 はタグを使ってユーザーが手動でレイアウトを設定できるキーとマウスのバインドを特徴としており、wmii や i3 などのウィンドウマネージャと似ています。
例えば、ターミナルを複数開いた場合 (デフォルトでは Super+Enter で urxvt が開きます)、画面上に螺旋を描くように整列され、ウィンドウを開くたびにサイズが小さくなります。ウィンドウは回転させたり、マスターウィンドウやスレーブウィンドウの向きを変えることができます。また、ウィンドウをタブでまとめて、全てのクライアントを最大化してウィンドウの上部に表示されるタイトルバーにタブを配置することが可能です。フォーカスしたウィンドウを最大化した状態のまま、キーバインドで切り替えることができ、タスクバーやドックを何度もクリックする必要がありません。
個々のクライアントはキーボードショートカットで再配置できます。また、ウィンドウはタイトルバーでドラッグすることが可能で、Alt や Super ("Windows" キー) などの mod キーを押している間はクライアントのどこからでもドラッグできます。さらに、ウィンドウは "free" または "floating" モードに切り替えることでスタック型ウィンドウマネージャのように移動できるようになります。
キーバインドとマウスの設定は wmfsrc の [keys] セクションの下にあり、キーバインド や 利用可能な機能 は WMFS2 wiki で説明されています。
設定
デフォルト設定ファイルをホームフォルダにコピーしてください:
$ cp /etc/xdg/wmfs/wmfsrc ~/.config/wmfs/wmfsrc
この設定ファイルだけでも全てを設定できますが、必要であれば複数のファイルに分けることができます (テーマ用の設定とキーバインド用の設定など)。wmfsrc の上の方で @include コマンドを使ってください。例:
@include ~/.config/wmfs/themes
上記の設定で WMFS は "themes" という名前のテキストファイルを読み込みます。ファイルには様々なテーマやカラースキームを書くことができ、起動時に WMFS によって wmfsrc から適用されます。テーマはパネル・タグ・ウィンドウのボーダー・タイトルバーと個別に適用されます。
テーマ
wmfsrc の [themes] セクションではステータスバーやタグ、ウィンドウボーダー、タイトルバーの色と幅を指定します。色は16進数コードで指定することができます。例えば白なら "#FFFFFF"、黒なら "#000000" となります。複数のテキストファイルにテーマを書き出して、"theme" セクションを追加することでエレメントごとにテーマを適用できます。
クライアント
wmfsrc の [client] セクションでは全てのクライアントの挙動のルールを指定します。[rules] セクションでは個別のアプリケーションの挙動を指定できます。
[client]
theme = "default"
key_modifier = "Super"
[mouse] button = "1" func = "client_focus_click" [/mouse]
[mouse] button = "1" func = "mouse_swap" [/mouse]
[mouse] button = "2" func = "mouse_tab" [/mouse]
[mouse] button = "3" func = "mouse_resize" [/mouse]
[mouse] button = "4" func = "client_focus_next_tab" [/mouse]
[mouse] button = "5" func = "client_focus_prev_tab" [/mouse]
[/client]
[rules]
[rule]
instance = "chromium"
# class = ""
# role = ""
# name = ""
# theme = "default"
tag = 1 # 2nd tag
screen = 0
free = false
tab = false
[/rule]
[/rules]
デフォルトでは、全てのクライアントはアクティブなタグで開かれ、デフォルトのマウス・キーバインドで操作できます。アプリケーションごとにルールを指定することで、どのタグでアプリケーションを開くか制御でき、デフォルトでフロートさせたりすることができます。
- theme: [theme] で定義したウィンドウボーダーやタイトルバーの色 ([theme] で設定されていない場合、デフォルトは "default" です)
- key_modifier: クライアントをドラッグするのに使用する修飾キー ("Alt," "Shift," "Super," "Ctrl")
- tag: ウィンドウを開くときに使うタグ。タグ番号は 0 から始まり、タグの順番で左から右に並びます。
- screen: マルチモニターを使っている場合、クライアントを表示するディスプレイ。プライマリディスプレイは 0 です。
- free: クライアントをフローティングで開くか否か。
- tab: 既に開いている既存のクライアントと一緒にタブでまとめるかどうか。
- ignore_tag: タグを無視するクライアントの指定 (クライアントはすべてのタグで表示されます)
- autofocus: 新しく作成したクライアントにフォーカス。デフォルトは false。
最初のオプションは実行中のプログラムやプロセスに割り当てられる名前で、xorg-xprop の出力で確認できます。instance エントリが正しく xprop の出力の "WM_Class" を表しているかぎり class, role, name はコメントアウトしたままで問題ありません。
ステータスバー
ステータスバーは画面の端に表示されるパネルです。タグやクライアントについての情報が表示されます。外部スクリプトによってシステムデータを収集して wmfs -c status コマンドで wmfs に渡すことで、ステータスバーに情報を表示できます。WMFS2 でステータスバーを複数使いたい場合、個別に wmfsrc で名前を指定してください。"top" や "bottom" などのシンプルな名前で十分です。
# Position:
#
# 0 Top
# 1 Bottom
# 2 Hide
# Element type:
#
# t Tags
# s Statustext (will take available space)
# y Systray (can be set only ONE time among all element)
# l Launcher (will be expended at launcher use)
[bar]
name = "top"
position = 0
screen = 0
elements = "tsy" # element order in bar
theme = "default"
[/bar]
[bar]
name = "bottom"
position = 1
screen = 0
elements = "s" # element order in bar
theme = "default"
[/bar]
ステータスバーがひとつだけの場合 name エントリは不要です。