当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 介绍一下 dwm 窗口管理器
帖子发表于 : 2009-03-21 21:10 
头像

注册: 2007-07-04 21:54
帖子: 88
送出感谢: 0 次
接收感谢: 0 次
dwm = dynamic window manager

首先上图
附件:
dwm1.png
dwm1.png [ 756.66 KiB | 被浏览 1622 次 ]


附件:
dwm2.png
dwm2.png [ 165.69 KiB | 被浏览 1564 次 ]


如果你会 C 语言,哪怕是门外汉的程度,你就能愉快地使用 dwm。对 linux 系统 API 的了解是不必要的,只要懂 C 语言的语法就可以了。但是如果你是 linux 新手或者完全不会 C 就不要往下看了,dwm 不适合你。

优点(对于某些人来说是缺点)

1、可以根据用户的规则管理窗口,你甚至可以直接修改 applyrules 函数来达成你的所想。

2、适合用键盘控制。

3、小就是美。less is more.

4、用 C 语言写成,容易 hack。

dwm 的作者之前写过 wmii 窗口管理器,但是后来觉得结构太复杂了,交由别人维护,开始写 dwm,为了保证简单性,代码永不超过 2000 行。dwm 是 awesome 窗口管理器的原型,其他流行的分支有 xmonad,dwm-gtx 等等,其中 dwm-gtx 是保持和 dwm 同步的。

dwm 的代码短而且清晰(实际上近来大半的修改都是在简化代码),非常容易修改,这正是它能有很多分支的原因吧,也正是它相比于它的分支的主要优势。只要你心情好,你也可以从修改 dwm 开始写出自己的窗口管理器。

dwm 的安装及使用

首先安装 libx11-dev。可能你还会需要 libxinerama-dev,图省事的话我建议装上 gnome-core-devel

下载最新版
代码:
hg clone http://code.suckless.org/hg/dwm
cd dwm

修改 config.mk 中的 PREFIX = /usr/local,改为你喜欢的目录。我改为了 PREFIX = ${HOME},如果你的 $HOME/bin 在 $PATH 中,你也可以这样改,但是这样就不能用 man 看帮助了。接下来 make; make install 即可(如果需要安装到需要权限的目录则要 sudo make install)

源里的 dwm 比较老,现在 git 中的是 5.5 版,下面所说的以 5.5 版为准。

在 $HOME/.xsession 中加入
代码:
dwm

登录时在 gdm 中选择 default XClient Scripts 即可,也可在控制台中直接 startx。

建议 man 一下 dwm 看看快捷键。下面是最常用的,ModKey 默认为 Alt。
ModKey + Shift + c 结束进程
ModKey + 数字 n 切换到第 n 个标签
ModKey + Shift + 数字 把窗口移动到第 n 个标签
ModKey + j/k 向上/下切换窗口
ModKey + Enter 设置当前窗口为主窗口
ModKey + Shift + Enter 打开 uxterm
ModKey + Shift + Space 切换窗口的浮动/平铺
你八成会需要 dmenu,大多数 dwm 的使用者用 dmenu 启动程序。dwm 的快捷键中 Modkey + p 为启动 dmenu。

dwm 的配置

右上角的状态栏显示的是 root window 的标题,可以用下面的方法修改
代码:
xsetroot -name 新标题

在 bash 中运行下面命令的效果是在状态栏中显示时间(每秒一更新)。
代码:
while true
  do xsetroot -name $(date)
  sleep 1
done


除此之外配置 dwm 主要是修改它的源代码,每次配置完都要重新编译安装,这真是吓跑新手的绝妙方法。还好在我电脑上编译安装 dwm 只要两秒钟。为了方别修改配置,可以把 ~/.xsession 中的 dwm 换成
代码:
while true
  do dwm
done

这样修改完成后只需用快捷键结束 dwm 即可重启 dwm。

其实只要你没什么特殊的需要配置起来并没有难度,常用的配置都放在了 config.h 文件中,包括字体,配则,快捷键,控制窗口的规则。大部分变量的意义是显然的,如果你感到困惑 可以到 dwm 的网页上看更详细的解释

字体和系统栏

dwm 不支持 XFT(导致显示非英语效果不好或者乱码),不提供系统栏(notification area),但是我们可以给它打补丁。

补丁的使用方法:进入 dwm 源文件所在的目录,然后
代码:
patch < 补丁文件

如果补丁之间有冲突,则要手动解决。

附件:
pango.diff.gz [2.66 KiB]
被下载 50 次

pango.diff.gz 是让 dwm 支持 fontconfig 的补丁,使用之后可以把字体指定 Sans 之类由 fontconfig 提供的字体。作者我已经不记得了,补丁写得不太自然,但是通用性很好,应该能用很久。

附件:
panel.diff.gz [1.04 KiB]
被下载 34 次

panel.diff.gz 是我写的和 trayer (源里有)一起用的用来提供系统栏的补丁,如果你的 bar 的高度是 16 个像素,你需要用下面的命令运行 trayer
代码:
trayer --height 16 --widthtype request

注意,这个补丁要求 git 版的 dwm。如果用老版的 dwm,需要给该补丁中的 resize 函数多加一个参数 True(添在最后)。

最后我放上我的 dwm,除了上面所讲的,我把 ModKey 换成了 Windows 键(默认是 Alt),两外加上了两个新的 layout(窗口排列方式),分别对应快捷键 ModKey + Shift + s 和 ModKey + Shift + b,其他的对应 ModKey + Shift + t/m/f 。
附件:
dwm.tar.bz2 [15.29 KiB]
被下载 53 次


_________________
Study or die.


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 介绍一下 dwm 窗口管理器
帖子发表于 : 2009-03-27 12:35 

注册: 2008-09-27 15:57
帖子: 10
送出感谢: 0 次
接收感谢: 0 次
好专业阿
WIN7好像也有个dwm


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译