从零开始dwm安装配置
前言
本篇博文会带你从零开始安装配置dwm
你也可以看看我的dwm配置,虽然说不是很完美,但是正常使用是没有什么问题的:
https://github.com/Aidens-fox/dwm
配置完成的效果


下载安装&启动dwm
在安装dwm之前我们需要安装一些必要的软件,比如xorg,编译工具等等sudo pacman -S base-devel git xorg-server xorg-xinit xorg-xrandr xorg-xsetroot xorg-xset xsel xorg-xkill libx11 libxft libxinerama xwallpaper
我们可以使用git工具来克隆dwm项目git clone https://git.suckless.org/dwm
其他的比如st,dmenu也需要克隆,不然进入后无法打开终端和软件启动器
st: git clone https://git.suckless.org/st
dmenu: git clone https://git.suckless.org/dmenu
克隆完成后cd到项目目录编译安装dwm(st和dmenu也一样)
`sudo make clean install
编译安装好后我们在.xinitrc文件添加:exec dwm
保存后只需要用在tty输入startx就可以启动
(注:exec dwm必须放在最后一行,不然无法启动)
配置dwm
我们cd到dwm目录下会发现有很多文件,其中config.def.h是我们修改配置的文件,虽然在第一次编译后产生的config.h文件也可以配置dwm,但是很多补丁添加快捷键都是修改在config.def.h上面,如果直接使用config.h来配置dwm可能就需要手动添加补丁的快捷键了,使用我比较习惯修改config.def.h在rm -rf config.h删除之前旧配置,不然再次编译安装就还是之前的配置
状态栏配置字体和位置&颜色
在默认配置中的状态栏字体是十分丑陋的,中文显示不友好,所有需要修改字体:
1 | static const char *fonts[] = { |
字体使用更纱黑体和jetbrains,notosudo pacman -S ttf-sarasa-gothic noto-fonts noto-fonts-emoji noto-fonts-cjk ttf-jetbrains-mono-nerd
状态栏默认的配色方案可能有一点难看,所有可以更改颜色
1 | static const char col_gray1[] = "#282828"; // 背景色 |
本配色方案参考gruvbox
tags工作区默认显示的是1234,如果你觉得太普通也可以改成中国数字大写
`static const char *tags[] = { “壹”, “貳”, “叁”, “肆”, “伍”, “陸”, “柒”, “捌”, “玖” };
修改mod键
在dwm中默认是alt为mod键,我本人不太习惯,所以我把它更改为win键#define MODKEY Mod4Mask
亮度&音量快捷键支持
在config.h中添加下面内容,启用多媒体按键#include <X11/XF86keysym.h>
调节音量
1 | static const char *up_vol[] = { "pactl", "set-sink-volume", "@DEFAULT_SINK@", "+10%", NULL }; |
调节亮度(需要安装brightnessctl)
1 | static const char *brighter[] = { "brightnessctl", "set", "10%+", NULL }; |
状态栏显示内容
我们可以通过xsetroot -name的方式来让状态栏显示我们需要的内容,在.xinitrc添加:
1 | while true; do |
如果你觉得那么多东西塞在.xinitrc很乱,可以创建一个脚本文件,里面写入上面的内容,在.xinitrc只需要循环执行这个脚本就可以了
脚本内容:
1 |
|
.xinit文件写入
1 | while true; do |
或者你也可以使用例如slstatus这样的软件,配置参考「slstatus 状态栏」使用参考
在suckless里git克隆下来源代码:git clone https://git.suckless.org/slstatus
克隆完成cd进入该目录,使用文本编辑器打开config.def.h文件,在下面的static const struct arg args[]部分添加:
1 | static const struct arg args[] = { |
添加完成后保存再使用make编译安装:sudo make clean install
然后在.xinitrc里添加slstatus &
其他类似的软件自行google
自启动软件
我们编辑.xinitrc文件
在里面添加你需要自启动的软件,比如fcitx5exec fcitx5 &
打补丁
补丁是dwm的一大特色,我们可以到https://dwm.suckless.org/patches/去找补丁,然后在dwm目录下新建一个叫patches的文件夹mkdir patches
把你想要的补丁下载下来,如attachaside,再安装补丁patch < patches/dwm-xxxxxxx.diff
卸载补丁patch -R < patches/dwm-xxxxxxxxx.diff
不过在打补丁的过程中可能会出现报错,这个时候就要查config.def.h.rej和dwm.c.rej文件来看看需要删除什么和添加什么,然后在重新编译基本就可以解决问题了
解决dwm浏览器无法弹出文件对话框
参考https://forum.archlinuxcn.org/t/topic/13788
把以下命令添加到.xinitrc文件中
1 | dbus-update-activation-environment --systemd DISPLAY |
关闭自动熄屏
在.xinitrc添加xset s off -dpms
添加一个壁纸
安装xwallpaper后在.xinitrc添加xwallpaper --zoom 壁纸.png
解决火焰截图无法截屏
参考https://bbs.archlinux.org/viewtopic.php?id=313917
在/.config/flameshot/flameshot.ini文件添加
1 | [General] |