Contents

Archlinux 小记-002 桌面环境

零、准备工作


0.1. 连接网络


0.1-1 有线连接

1
2
systemctl enable --now NetworkManager # 设置开机自启并立即启动 NetworkManager 服务
ping www.bilibili.com # 测试网络连接

0.1-2 无线连接

1
2
3
4
systemctl enable --now NetworkManager # 设置开机自启并立即启动 NetworkManager 服务
nmcli dev wifi list # 显示附近的 Wi-Fi 网络
nmcli dev wifi connect "Wi-Fi 名(SSID)" password "网络密码" # 连接指定的无线网络
ping www.bilibili.com # 测试网络连接

0.2. 检查更新


1
pacman -Syu #确保系统最新

0.3. 配置非 root 用户


0.3-1 建立账户并设置密码

1
2
useradd -m -G wheel -s /bin/bash myusername
passwd myusername

0.3-2 编辑 sudoers 文件

1
EDITOR=nvim visudo # 这里需要显式的指定编辑器,因为上面的环境变量还未生效

去掉如下一行的注释 #

1
#%wheel ALL=(ALL:ALL) ALL

:wq保存退出

0.4. 启用 32 位支持库和 archlinuxcn 库


0.4-1 编辑 /etc/pacman.conf 文件

1
nvim /etc/pacman.conf

0.4-2 去掉 [multilib] 注释以启用32位库支持

0.4-3 于文档末尾加入 archlinuxcn 源:

1
2
3
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch # 中国科学技术大学开源镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch # 清华大学开源软件镜像站

0.4-4 :wq 保存退出

0.4-5 刷新数据库并更新

1
pacman -Syyu

0.5. 重启并以非 root 用户登录


一、图形界面


1. 显示服务


1.1. X 窗口系统

X 窗口系统 (X Window System,也常称为 X11 或 X,天窗口系统)是一种以位图方式显示的软件窗口系统。现在,几乎任何操作系统都支持 X,比如知名的 GNOME 和 KDE 就是以 X 为基础建构而成的。X 本身只是工具包和架构规范,依据此规范开发的可使用、可执行的实体被称为实现体,在实现体中,以X.Org 最受欢迎。1987 年 9 月,X11 发布,如今,最新的参考实现 版本为 X11 Release 7.8。

1.2. Wayland

Wayland 是一个旨在替代 X 窗口系统的显示服务协议,其本身并不提供图形环境,需安装混成器——使用 Wayland 协议的显示服务器,才可使用。

1.3. 比较

详情可参见此处 ,本系列沿用 X 窗口系统。

1.4. 安装 Xorg

1
sudo pacman -S xorg #默认安装全部 xorg 包

2. 桌面环境和窗口管理器


2.1. 桌面环境

桌面环境 (DE)由诸多组件协同工作,以提供图形界面元素,且多数桌面环境包含集成的应用程序和窗口管理器。 目前主流桌面环境有 KDE、GNOME 等等,可参见桌面环境的比较 选择。

我最早接触的 DE 是 xfce,随着常用系统换成 Ubuntu ,桌面环境随之换成了 GNOME,但不到一周,GNOME 反复卡死,我顺势将换为了 Manjaro + KDE。奈何 KDE 赏心悦目的代价是大额占用我捉襟见肘的系统资源,后来,我选择了 Archlinux,并不再安装桌面环境。

2.2. 窗口管理器

窗口管理器 (WM)是控制 GUI 中窗口的位置和外观的系统软件,是 Xorg 独有的,常做为桌面环境的一部分。为了使系统观性能最大化,用户可以只安装窗口管理器和所需实用软件。窗口管理器按照窗口处理方式不同,可分为:动态式堆栈式平铺式

3. Dwm


我选择 dwm 为窗口管理器,它由 C 语言编写,代码简洁清晰,功能朴素,且通过直接编译源代码,辅以补丁 ,可在兼顾美观的同时定制诸多实用功能。

3.1. dwm 下载

可以从suckless 官网下载,也可以从 arch 支持库下载,还可以从 github 克隆源码。

1
2
3
4
5
6
sudo pacman -S dwm #从 arch 支持库下载

wget https://dl.suckless.org/dwm/dwm-6.4.tar.gz #从官网下载
tar xpvf dwm-6.4.tar.gz #解压

git clone https://git.suckless.org/dwm #从 github 下载

此外,也可以直接使用配置完成的 dwm ,感谢为此贡献精力和时间的开发者们。


3.2. dwm 编译

我直接从我的仓库 中下载经配置的 dwm。

1
2
3
4
cd ~
git clone https://github.com/Rhino-Nine/dwm
mkdir ~/.config/suckless
mv ~/dwm ~/.config/suckless/dwm

创建~/.config/suckless/dwm是为了调用Scripts中的脚本

在编译前,需要下载必要包:

1
2
sudo pacman -S imlib2 gd xorg-xrdb xorg-xset xorg-xsetroot
sudo pacman -S iosevka-nerd

编译安装:

1
2
cd ~/.config/suckless/dwm
sudo make clean install

3.3. dwm 启动

3.3-1 xinit

若使用startx,会在家目录下生成.xauthority,且通过设置环境变量重定向其存储路径后,会出现无法启动X-server的问题,故,建议使用startx的平替sx启动dwm

1
2
3
sudo pacman -S sx #安装 sx
mkdir ~/.config/sx
nvim ~/.config/sx/sxrc

sx的配置文件中写入启动命令:

1
~/.config/suckless/dwm/scripts/run.sh
3.3-2 显示管理器

显示管理器 通常是一个图形用户界面,会在启动过程结束时替代默认shell,实现简单的登录功能,以sddm举例。

  • 安装并开启 sddm 守护进程
1
2
sudo pacman -S sddm #安装 sddm
sudo systemctl enable sddm #启动守护进程
1
2
3
4
5
6
7
sudo nvim /usr/share/xsessions/dwm.desktop #创建桌面项
#写入以下内容
[Desktop Entry]
Name=dwm
Comment=dwm - suckless wm
Exec=~/.config/suckless/scripts/./run.sh #启动脚本位置
Type=Application

二、安装常用软件


不要着急重启登录,此时,由于没有配置壁纸和安装默认Terminal软件,系统还不能正常使用,因此仍需安装基础功能软件:

1
2
3
4
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra #安装谷歌开源字体及表情
sudo pacman -S chromium # 按喜好安装浏览器
sudo pacman -S lf #终端文件管理器
sudo pacman -S sxiv #图片查看器

此外,我选择st作为终端软件:

1
2
3
4
5
cd ~/.config/suckless/
git clone https://github.com/Rhino-Nine/st #从我的仓库下载成品

cd ~/.config/suckless/st/
sudo make clean install
  • dwm快捷键可在源码中查看和修改,我的dwm常用快捷键有:

super + enter————打开终端

super + shift + r————重启 dwm

super + ctrl + q————退出 dwm

参考链接

  1. chdwm
  2. Archwiki