cwm
cwm 是一款 X11 窗口管理器,它的重点是让你摆脱困境,提高工作效率。 它最初源于 evilwm,但代码库已从头开始重新编写。
cwm 是作为 OpenBSD 基本系统的一部分开发的。此外,还有一个可在 Linux 上运行的 "便携"版本。
安装[编辑 | 编辑源代码]
安装下列软件包之一:
配置[编辑 | 编辑源代码]
cmw 通过编辑 ~/.cwmrc
进行配置。没有默认的 cwmrc
文件;所有默认设置(包括按键绑定)都在 conf.c 中定义。cwm(1)列出了默认按键;cwmrc(5)列出了所有配置指令。
不过,您可以使用 unbind-key all
和 unbind-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 或方向键将窗口移到侧面。
参见[编辑 | 编辑源代码]
- OpenBSD 源
- 便携版
- cwmrc 示例:[1]
- Absolute OpenBSD 包含 CWM 简介。