コンテンツにスキップ

「Cwm」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
Kusakata がページ「CWM」を「Cwm」に移動しました
翻訳
1行目: 1行目:
#redirect[[ウィンドウマネージャ#スタック型ウィンドウマネージャ]]
[[Category:スタック型ウィンドウマネージャ]]
{{Lowercase title}}
[[en:Cwm]]
[[it:Cwm]]
'''cwm''' は直感的に使って生産性を高めることができる X11 [[ウィンドウマネージャ]]です。元は [[evilwm]] から分岐して生まれましたが、今ではスクラッチからコードベースが書き直されています。

cwm は OpenBSD のベースシステムとして開発されています。Linux で動作する「ポータブル版」も存在します。

==インストール==
{{AUR|cwm}} パッケージが [[AUR]] からインストールできます。

==設定==
cmw は {{ic|~/.cwmrc}} を編集して設定します。デフォルトの {{ic|cwmrc}} ファイルは存在しません。キーバインドなどのデフォルト設定は全て [https://github.com/chneukirchen/cwm/blob/linux/conf.c conf.c] に定義されています。{{man|1|cwm|url=https://man.openbsd.org/cwm.1}} にデフォルトのキーバインドが載っており、{{man|5|cwmrc|url=https://man.openbsd.org/cwmrc.5}} に設定ディレクティブが記載されています。

{{ic|unbind-key all}} と {{ic|unbind-mouse all}} を使うことでデフォルトのキーバインドを全て削除することができます。

===ウィンドウグループ===
cwm には伝統的な「ワークスペース」が存在しません。かわりとしてウィンドウを「グループ」に割り当てることができます。2つ以上のグループを同時に表示することができ柔軟に運用できます。

例えばチャットや IRC アプリケーションをグループ 4 に配置して、他のウィンドウやグループと一緒に割り当てたキーを使ってグループの表示を切り替えることができます ({{ic|bind-key <k> group-toggle 4}})。

{{ic|bind-key <k> group-only <n>}} を使って特定のグループのウィンドウだけを表示して、他のウィンドウを非表示にすることも可能です。

新しいウィンドウはデフォルトではどのグループにも配置されないため、常に表示されます (常時表示ウィンドウ)。{{ic|sticky yes}} で “sticky group mode” を有効にすることで、現在選択されているグループに割り当てるようにすることもできます。{{ic|autogroup}} ディレクトリを使うことで自動的にウィンドウをグループ化できます。

===ウィンドウの移動===
ウィンドウを特定の場所に移動するアクションはありませんが、{{Pkg|xdotool}} を使うことで移動できます。{{ic|PATH}} の通っている場所に以下の {{ic|cwm-w-mv}} スクリプトを配置してください:

#!/bin/sh
# Move a window to the side of a screen.
case "$1" in
"left") xdotool getactivewindow windowmove 0 y ;;
"top") xdotool getactivewindow windowmove x 0 ;;
"right")
screen_width=$(xwininfo -root | grep Width | cut -d: -f2 | tr -d ' ')
win_width=$(xdotool getactivewindow getwindowgeometry --shell | grep WIDTH | cut -d= -f2)
xdotool getactivewindow windowmove $(( $screen_width - $win_width )) y
;;
"bottom")
screen_height=$(xwininfo -root | grep Height | cut -d: -f2 | tr -d ' ')
win_height=$(xdotool getactivewindow getwindowgeometry --shell | grep HEIGHT | cut -d= -f2)
xdotool getactivewindow windowmove x $(( $screen_height - $win_height ))
;;
*)
echo "Unsupported: \"$1\""
exit 1
esac

そして以下のように cwm にバインド:

bind-key 4-h cwm-w-mv left # Move window to side of the screen.
bind-key 4-j cwm-w-mv bottom
bind-key 4-k cwm-w-mv top
bind-key 4-l cwm-w-mv right
bind-key 4-Left cwm-w-mv left
bind-key 4-Down cwm-w-mv bottom
bind-key 4-Up cwm-w-mv top
bind-key 4-Right cwm-w-mv right

上記の設定では Mod4 (‘Windows キー’) と hjkl あるいは方向キーでウィンドウを移動できるようになります。

==参照==
* [http://cvsweb.openbsd.org/cgi-bin/cvsweb/xenocara/app/cwm/ OpenBSD ソース]
* [https://github.com/chneukirchen/cwm Portable version]
* Example cwmrc: [https://blather.michaelwlucas.com/archives/873 one], [https://github.com/Carpetsmoker/dotfiles/blob/master/x11/cwmrc two].
* [https://www.nostarch.com/obenbsd2e Absolute OpenBSD] contains an introduction to cwm.

2017年7月17日 (月) 00:50時点における版

cwm は直感的に使って生産性を高めることができる X11 ウィンドウマネージャです。元は evilwm から分岐して生まれましたが、今ではスクラッチからコードベースが書き直されています。

cwm は OpenBSD のベースシステムとして開発されています。Linux で動作する「ポータブル版」も存在します。

インストール

cwmAUR パッケージが AUR からインストールできます。

設定

cmw は ~/.cwmrc を編集して設定します。デフォルトの cwmrc ファイルは存在しません。キーバインドなどのデフォルト設定は全て conf.c に定義されています。cwm(1) にデフォルトのキーバインドが載っており、cwmrc(5) に設定ディレクティブが記載されています。

unbind-key allunbind-mouse all を使うことでデフォルトのキーバインドを全て削除することができます。

ウィンドウグループ

cwm には伝統的な「ワークスペース」が存在しません。かわりとしてウィンドウを「グループ」に割り当てることができます。2つ以上のグループを同時に表示することができ柔軟に運用できます。

例えばチャットや IRC アプリケーションをグループ 4 に配置して、他のウィンドウやグループと一緒に割り当てたキーを使ってグループの表示を切り替えることができます (bind-key <k> group-toggle 4)。

bind-key <k> group-only <n> を使って特定のグループのウィンドウだけを表示して、他のウィンドウを非表示にすることも可能です。

新しいウィンドウはデフォルトではどのグループにも配置されないため、常に表示されます (常時表示ウィンドウ)。sticky yes で “sticky group mode” を有効にすることで、現在選択されているグループに割り当てるようにすることもできます。autogroup ディレクトリを使うことで自動的にウィンドウをグループ化できます。

ウィンドウの移動

ウィンドウを特定の場所に移動するアクションはありませんが、xdotool を使うことで移動できます。PATH の通っている場所に以下の cwm-w-mv スクリプトを配置してください:

#!/bin/sh
# Move a window to the side of a screen.

case "$1" in
	"left") xdotool getactivewindow windowmove 0 y ;;
	"top")  xdotool getactivewindow windowmove x 0 ;;

	"right")
		screen_width=$(xwininfo -root | grep Width | cut -d: -f2 | tr -d ' ')
		win_width=$(xdotool getactivewindow  getwindowgeometry --shell | grep WIDTH | cut -d= -f2)
		xdotool getactivewindow windowmove $(( $screen_width - $win_width )) y
		;;
	"bottom")
		screen_height=$(xwininfo -root | grep Height | cut -d: -f2 | tr -d ' ')
		win_height=$(xdotool getactivewindow  getwindowgeometry --shell | grep HEIGHT | cut -d= -f2)
		xdotool getactivewindow windowmove x $(( $screen_height - $win_height ))
		;;
	*)
		echo "Unsupported: \"$1\""
		exit 1
esac

そして以下のように cwm にバインド:

bind-key 4-h      cwm-w-mv left   # Move window to side of the screen.
bind-key 4-j      cwm-w-mv bottom
bind-key 4-k      cwm-w-mv top
bind-key 4-l      cwm-w-mv right
bind-key 4-Left   cwm-w-mv left
bind-key 4-Down   cwm-w-mv bottom
bind-key 4-Up     cwm-w-mv top
bind-key 4-Right  cwm-w-mv right

上記の設定では Mod4 (‘Windows キー’) と hjkl あるいは方向キーでウィンドウを移動できるようになります。

参照