216. dwm

安装

下载

  1. 打开 官网, 找到 Development
  2. 下载: 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
2
3
4
5
6
sudo apt-get install suckless-tools libx11-dev libxft-dev libxinerama-dev gcc make
sudo apt install compton
sudo apt install feh
sudo apt install acpi acpitool
sudo apt install light
sudo apt install numlockx

安装dwm

  1. cd dwn
  2. 编译: make
  3. 安装: sudo make clean install

QAs

  1. 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
2
3
4
5
6
#twm &
#xclock -geometry 50x50-1+1 &
#xterm -geometry 80x50+494+51 &
#xterm -geometry 80x20+494-0 &
#exec xterm -geometry 80x66+0+0 -name login
exec dwm

启动: startx

方法3

  1. 配置 ~/.xinitrc, 添加 exec dwm
  2. 然后执行: startx

方法4

添加启动选项

具体配置方式,进入/usr/share/xsessions/目录,新建文件dwm.desktop,输入内容:

1
2
3
4
5
6
7
[Desktop Entry]
Encoding=UTF-8
Name=Dwm
Comment=Dynamic window manager
Exec=dwm
Icon=dwm
Type=XSession

使用字符界面登录

使用startx命令从文字界面启动

此方式开机更加快速,使用更加灵活,系统资源占用更少。 首先将系统改为默认进入文字界面 修改grub配置,打开文件/etc/default/grub

1
2
将GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
改为GRUB_CMDLINE_LINUX_DEFAULT="text"

然后执行命令: $ 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的用户登录界面。

补丁

托盘

  1. 安装 tayer
  2. 打trayer补丁

在不登出和退出程序的情况下重启 dwm

建议无需这样设置

添加:

1
2
3
4
5
6
while true; do
# Log stderror to a file
dwm 2> ~/.dwm.log
# No error logging
#dwm >/dev/null 2>&1
done

QAs

  1. togglefloating只能浮动, 不能平铺

    仅使用于没有打补丁之前的原始文件, 当打了补丁后, 这个问题已经被解决

    1
    2
    3
    4
    修改
    { MODKEY|ShiftMask, XK_space, togglefloating, {0} },

    { MODKEY|ShiftMask, XK_space, togglefloating, {1} },

参考