Archlinux + Dwm 配置流程

本着学习C的态度来了解dwm,本身作为一个i3wm的追崇者,与dwm会擦出怎么样的火花呢?
下载安装dwmarchlinuxcn源配置编辑/etc/pacman.conf文件,添加bfsu的archlinuxcn源
sudo vim /etc/pacman.conf---------------------------------------------[archlinuxcn]Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$archsudo pacman -Sy archlinuxcn-keyring安装dwm所需要的基本包sudo pacman -S xorg xorg-xinit feh pcmanfm compton xfce4-terminal下载dwm可以建立单独的目录用于管理dwm相关的配置,也可以像我一样直接把相关的仓库放在家目录下
git clone https://git.suckless.org/dwmgit clone https://git.suckless.org/stgit clone https://git.suckless.org/dmenu首次编译dwm并配置启动dwm分别进入到自己克隆的这三个仓库中执行:
sudo make clean install# 需要注意的是在这个仓库下操作需要使用sudo权限配置xinit来启动dwm:
首先将xinit的配置文件拷贝一份到家目录下:
cp /etc/X11/xinit/xinitrc .xinitrc然后编辑.xinitrc文件:
删除掉最后五行,这五行我们不会用到,直接删除即可,然后在最后加上exec dwm,上图:

Archlinux + Dwm 配置流程

文章插图
配置dwm快捷键更改尤其对于i3wm的老用户来说,这个太必要了 。比如我更习惯用win+q去关闭窗口、习惯用alt+enter来打开终端等等,这些都是需要配置的 。
首先进入dwm仓库,编辑config.h文件:
cd dwmsudo vim config.h-------------------------------------------// 首先找到 key definitions ,我个人比较习惯设置两个mod键,// win键更趋向于一些窗口管理// alt键更趋向于一些动作/* key definitions */#define MODKEY1 Mod1Mask// alt键#define MODKEY Mod4Mask//win键#define TAGKEYS(KEY,TAG) \ { MODKEY,KEY,view,{.ui = 1 << TAG} }, \ { MODKEY|ControlMask,KEY,toggleview,{.ui = 1 << TAG} }, \ { MODKEY|ShiftMask,KEY,tag,{.ui = 1 << TAG} }, \ { MODKEY|ControlMask|ShiftMask, KEY,toggletag,{.ui = 1 << TAG} },上图:
Archlinux + Dwm 配置流程

文章插图
更改几个常用的快捷键,涉及关闭窗口、打开终端、退出dwm
static const Key keys[] = { /* modifierkeyfunctionargument *//* 打开dmenu win + p */ { MODKEY,XK_p,spawn,{.v = dmenucmd } },/* 打开终端 Alt + Enter */ { MODKEY1,XK_Return, spawn,{.v = termcmd } }, { MODKEY,XK_b,togglebar,{0} }, { MODKEY,XK_j,focusstack,{.i = +1 } }, { MODKEY,XK_k,focusstack,{.i = -1 } }, { MODKEY,XK_i,incnmaster,{.i = +1 } }, { MODKEY,XK_d,incnmaster,{.i = -1 } }, { MODKEY,XK_h,setmfact,{.f = -0.05} }, { MODKEY,XK_l,setmfact,{.f = +0.05} }, { MODKEY,XK_Return, zoom,{0} }, { MODKEY,XK_Tab,view,{0} },/* 关闭当前聚焦的窗口 win + p */ { MODKEY,XK_q,killclient,{0} }, { MODKEY,XK_t,setlayout,{.v = &layouts[0]} }, { MODKEY,XK_f,setlayout,{.v = &layouts[1]} }, { MODKEY,XK_m,setlayout,{.v = &layouts[2]} }, { MODKEY,XK_space,setlayout,{0} }, { MODKEY|ShiftMask,XK_space,togglefloating, {0} }, { MODKEY,XK_0,view,{.ui = ~0 } }, { MODKEY|ShiftMask,XK_0,tag,{.ui = ~0 } }, { MODKEY,XK_comma,focusmon,{.i = -1 } }, { MODKEY,XK_period, focusmon,{.i = +1 } }, { MODKEY|ShiftMask,XK_comma,tagmon,{.i = -1 } }, { MODKEY|ShiftMask,XK_period, tagmon,{.i = +1 } }, TAGKEYS(XK_1,0) TAGKEYS(XK_2,1) TAGKEYS(XK_3,2) TAGKEYS(XK_4,3) TAGKEYS(XK_5,4) TAGKEYS(XK_6,5) TAGKEYS(XK_7,6) TAGKEYS(XK_8,7) TAGKEYS(XK_9,8)/* 退出dwm win + shfit + c */ { MODKEY|ShiftMask,XK_c,quit,{0} }, /* klelee's volume config */ { MODKEY,XK_F1,spawn, SHCMD("amixer sset Master toggle") }, { MODKEY,XK_F2,spawn, SHCMD("amixer sset Master 5%- ") }, { MODKEY,XK_F3,spawn, SHCMD("amixer sset Master 5%+ ") },/* 截屏需要安装flameshot */ { MODKEY1,XK_p,spawn, SHCMD("flameshot gui") }, { MODKEY,XK_minus,setgaps,{.i = -1 } }, { MODKEY,XK_equal,setgaps,{.i = +1 } }, { MODKEY|ShiftMask,XK_equal,setgaps,{.i = 0} },};

经验总结扩展阅读