cwm

来自 Arch Linux 中文维基

cwm 是一款 X11 窗口管理器,它的重点是让你摆脱困境,提高工作效率。 它最初源于 evilwm,但代码库已从头开始重新编写。

cwm 是作为 OpenBSD 基本系统的一部分开发的。此外,还有一个可在 Linux 上运行的 "便携"版本。

安装[编辑 | 编辑源代码]

安装下列软件包之一:

  • cwmAUR - 最新版本。
  • cwm-gitAUR - 主版本的最新提交

配置[编辑 | 编辑源代码]

cmw 通过编辑 ~/.cwmrc 进行配置。没有默认的 cwmrc 文件;所有默认设置(包括按键绑定)都在 conf.c 中定义。cwm(1)列出了默认按键;cwmrc(5)列出了所有配置指令。

不过,您可以使用 unbind-key allunbind-mouse all 删除所有默认键绑定。

窗口分组[编辑 | 编辑源代码]

cwm 没有传统的"工作区",但可以将窗口分配到"组"中。这是一种更灵活的方法,因为可以同时显示两个或多个组,而且与许多平铺窗口管理器的工作区功能相似或相同。

例如,可以将聊天/IRC 应用程序放在第 4 组,然后指定一个键来切换该组的可见性(bind-key <k> group-toggle 4),以便在显示其他窗口/组的同时显示该组。

您还可以使用 bind-key <k> group-only <n> 来显示该组中的窗口,隐藏其他所有窗口。

新窗口的默认设置是不归入任何组,这意味着它们将始终显示(许多 WM 将其称为 "粘性 "窗口)。不过,通过使用 sticky yes 启用 "粘性组模式",窗口将默认分配到当前选定的组中。 您还可以使用 autogroup 目录对窗口进行自动分组。

移动窗口[编辑 | 编辑源代码]

没有将窗口移动到预定义位置的操作;但可以使用 xdotool 解决这个问题;将 cwm-w-mv 脚本放到 PATH 中:

#!/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 或方向键将窗口移到侧面。

参见[编辑 | 编辑源代码]