216. dwm
安装
下载
- 打开 官网, 找到 Development
- 下载:
git clone https://git.suckless.org/dwm
安装依赖
archlinux
首先是安装Xorg相关软件包:
1 | sudo pacman -S xorg-server xorg-xinit libxft |
安装字体,否则可能会导致后续步骤无法进入图形化界面,如果安装的是别的字体,后续修改配置文件时记得修改成别的对应的字体:
1 | sudo pacman -S ttf-dejavu |
安装DWM下载及编辑源码所需要的依赖:
1 | sudo pacman -S git vim dmenu |
如果ArchLinux安装的时候,没有安装base-devel包,在安装DWM之前需要安装上:
1 | sudo pacman -S base-devel # 非必须,如果安装ArchLinux时安装过了,无需再次安装 |
额外的,终端软件包,我不喜欢dwm同门的suckless出品的st,如果不需要的话可以不装:
1 | sudo pacman -S alacritty |
ubuntu
安装依赖
1 | sudo apt-get install suckless-tools libx11-dev libxft-dev libxinerama-dev gcc make |
安装dwm
cd dwn
- 编译:
make
- 安装:
sudo make clean install
QAs
drw.c:6:10: fatal error: X11/Xft/Xft.h: No such file or directory
安装: libxft 和 libxinerama
1
sudo pacman -S libxft libxinerama
配置
config
源码的config.h文件, 如果要固定就修改 config.def.h 文件
开机启动
谷歌搜索前先看官方文件
方法1
修改 /etc/x11/xinit/xinitrc
添加 exec dwm
看官方文档
方法2
复制 /etc/X11/xinit/xinitrc
到 ~/.xinitrc
1 | cp /etc/X11/xinit/xinitrc ~/.xinitrc |
注释掉 ~/.xinitrc
最后5行,并添加exec dwm
1 | #twm & |
启动: startx
方法3
- 配置
~/.xinitrc
, 添加exec dwm
- 然后执行:
startx
方法4
添加启动选项
具体配置方式,进入/usr/share/xsessions/目录,新建文件dwm.desktop,输入内容:
1 | [Desktop Entry] |
使用字符界面登录
使用startx命令从文字界面启动
此方式开机更加快速,使用更加灵活,系统资源占用更少。 首先将系统改为默认进入文字界面 修改grub配置,打开文件/etc/default/grub
1 | 将GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" |
然后执行命令: $ sudo update-grub
将启动等级改为多用户等级,执行如下命令: systemctl set-default multi-user.target
如果想改回启动图形界面, 执行: $ systemctl set-default graphical.target
最后修改~/.xsession文件(如果没有就新建),在最后一行加入: exec dwm
重启电脑,执行startx命令,直接进入dwm,同时也可以执行sudo systemctl start gdm.service
命令,打开gdm3的用户登录界面。
补丁
alpha: 状态栏透明效果
autostart: dwm自动启动一个脚本
脚本内容
awesomebar: 状态栏显示多个窗口的名字fullscreen: 窗口全屏能力
hide-and-restore: 可以隐藏和恢复窗口hide_vacant_tags: 只显示有窗口的标签
noborder: 视觉增强pertag: 不同标签具有不同的窗口管理方式
viewontag: 当前这个窗口移动到第N个标签, 并切换到第N个标签
rotatestack: 管理栈
scratchpad: 临时打开一个小窗口
vanitygaps: 窗口之间加空隙
托盘
- 安装 tayer
- 打trayer补丁
在不登出和退出程序的情况下重启 dwm
建议无需这样设置
添加:
1 | while true; do |
QAs
togglefloating只能浮动, 不能平铺
仅使用于没有打补丁之前的原始文件, 当打了补丁后, 这个问题已经被解决
1
2
3
4修改
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
为
{ MODKEY|ShiftMask, XK_space, togglefloating, {1} },