Arch Linux配置cinnamon桌面与常用应用
注:官方源的软件包用角标pkg标注;archlinuxcn社区源的软件包用角标cn标注;arch4edu源的用角标edu标注;来自AUR的软件包用角标aur标注,并且附上AUR地址的链接,便于查看源码。
涉及到ArchWiki的只贴英文链接啦,反正英文界面可以很简单地跳转到中文版的
配置的最终效果应该类似这样:


配置的起点是一个只执行了最基本安装的,只有root用户的最基本Arch Linux系统,主要的配置类似上一篇文章中的安装过程。
下面正文开始。
安装桌面环境之前
这部分配置应该是无论安装什么桌面环境都需要做的。
0.确保系统为最新
1 |
|
滚动更新的系统最新的才是最稳定的。
1.配置普通用户
1 |
|
Arch Linux似乎约定俗成的把wheel
用户组作为特权组给予sudo
权限;如果想像其它发行版一样使用sudo
用户组当然也是可以的。
然后还需要配置sudo
权限:
1 |
|
使用EDITOR
环境变量指定编辑器是不可省略的;visudo
命令默认使用vi
编辑器,但是咱没安装,因此如果不指定编辑器就会执行失败。编辑器可以换为nano
等等,前提是安装了它。
定位到图示的行(在文件的最后),然后取消注释。


这三行分别表示:
- 给
wheel
用户组赋予sudo
权限 - 给
wheel
用户组赋予sudo
权限,并且无需输入密码 - 给
sudo
用户组赋予sudo
权限
挑选想要的其中一行取消注释即可。
另外,还可以在文件中添加这样一行:
1 |
|
添加后sudo
输入密码时会以星号(*
)回显,而非像通常那样什么都不显示。
之后可以exit
退出root用户,然后重新登录到非特权用户;也可以使用su -l myusername
直接切换用户。
2.安装AUR助手
通常最常见的选择是yaycn/aur或者parucn/aur,archlinuxcn社区源已经打好了包,直接安装即可:
1 |
|
- 个人更喜欢
paru
;但是从交互体验来看yay
的反馈可能会更好些; - Arch Linux更希望用户能手动从AUR安装一遍,熟悉手动打包的过程:
1
2
3git clone https://aur.archlinux.org/paru.git --depth 1
cd paru
makepkg -si - 出于安全原因,
makepkg
命令和AUR助手均会拒绝直接在root用户下运行,所以记得切换用户。
通常来说,一个开源软件包foo
会在AUR上存在至少三种分支:
foo
:使用发布版本的源码包编译安装(源码包从release里面下载)foo-bin
:直接打包上游编译好的二进制包foo-git
:从git拉取最新的源码编译安装
其它后缀的阅读包描述可以看出。通常情况下,-bin
因为是现成的二进制文件,只需要解压然后重打包,安装速度最快;源码编译的则会兼容性更好,并且如果动态链接了系统依赖,可能一定程度节省硬盘空间(比如相比于一堆包一人打包一个electron,全部共用系统的electron库明显更节省空间)。
另外,yay
是go语言编写的,国内网络环境可能会拉取依赖困难。yay-bin
就能避免这一问题。
pamac是Manjaro团队开发的另一套辅助性的包管理软件,在Manjaro系统中默认预装,ArchLinux也可以从AUR中获取到;
pamac提供了另一套不同于pacman的命令,命令的整体特征更类似于apt
等常见的包管理器(例如pamac install foo
等等),命令的用法参照Manjaro Wiki - pamac (此wiki的汉化约等于没有)
此外pamac也提供了图形化操作界面,预览同样可以在前述的wiki界面找到。
下面列出在AUR中pamac不同包的区别:
pamac-cli –只提供命令行;
pamac-aur –提供图形界面,包含基本的软件包和AUR包支持;
pamac-flatpak –提供图形界面,在上一个的基础上增加了flatpak支持(需要自己配置安装flatpakpkg);
pamac-all –提供图形界面,在上一个的基础上增加了snap支持(需要自己配置安装snapdaur);
3.关于显卡驱动
由于Linux的宏内核的特点,内核已经集成了至少能亮机的驱动(N卡是开源驱动nouveau),所以驱动可以先不装;配置好能正常点亮的桌面,然后把快照等措施准备好了,再来大战驱动也不迟。
另外由于咱目前还只是在虚拟机做的测试,就不写驱动的配置啦,三家显卡分别参考各自的wiki就好了(包括核显):
Intel 和 NVIDIA
AMD: 先参考这里 根据显卡架构确定安装的驱动类型,然后参考 AMDGPU 和 ATI ,由于RX400系已经属于GCN4架构了,现在能见到的常见A卡只要比RX400系新,就装AMDGPU就行
安装开源的open-vm-tools以及必要的驱动,然后启动相应的服务:
1 |
|
如果主机和客户机间复制粘贴功能无法正常工作,尝试安装gtkmm3pkg。
4.优化AUR编译参数
编辑/etc/makepkg.conf
,主要做三个方面的修改:
启用多核编译:
定位到MAKEFLAGS
处,取消注释,并把-j2改成需要的线程数(这里咱给虚拟机分配了6核)。有一种说法是,如果希望CPU能彻底吃满,应当设定成比CPU线程数多1的超负荷。所以咱最终给了-j7
更改软件包的压缩格式:
默认情况下打好的软件包使用兼顾速度和压缩率的zstd压缩格式(Arch官方的pacman源也使用这种格式),这里只列举两种极端需求。两种需求均是定位到PKGEXT
处。
- 对速度有极端需求,不介意占用空间的:直接不压缩
- 对硬盘空间有极端需求,不介意压缩和解压速度的:改用xz压缩格式
- 对速度有极端需求,不介意占用空间的:直接不压缩
阻止生成debug包:
正常情况下,makepkg会生成一个正常包和一个debug软件包;对于普通用户而言,debug包没有任何意义,因此取消掉以节省时间:
定位到GLOBAL PACKAGE OPTION
处,然后把最下面的括号中的debug
前面加上!
。
cinnamon桌面环境
1.安装桌面环境和中文字体等必要组件
安装cinnamonpkg桌面本体以及一些属于cinnamon的软件:
功能 | 应用 |
---|---|
文字编辑器 | xedpkg |
图片查看器 | xvieweraur |
文档阅读器 | xreaderpkg |
媒体播放器 | xplayeraur |
图像管理器 | pixaur |
1 |
|
这里AUR包先不装,由于AUR包的发布特点无法做镜像站,因此总会遇到点网络问题,所以先去基本的桌面解决了网络问题再回来整这些。
当Cinnamon发生崩溃事件时, 会激活其后备模式。要控制此模式下打开的窗口,需要安装metacity软件包以及gnome-shell以显示任务栏。
但是存在两个问题:
- 信息矛盾:参见cinnamon包页面, 被标记为可选依赖,并提供”fallback mode”的包是metacity和gnome-panel,而不是gnome-shell;
- 引入大量无关依赖:无论是gnome-panel还是gnome-shell,均会引入大量gnome桌面相关的依赖(甚至包含gnome-desktoppkg,然后再间接引入nautiluspkg等等一大堆gnome应用)。
综合考虑这些信息,并去Linux Mint预装的软件包中一顿搜索后,咱决定只安装metacitypkg,等触发了后备模式再看看能不能正常运作。
1 |
|
然后安装一些常见的开源字体:
1 |
|
中文字体的设置只能通过配置文件;如果不想在这上面花时间,就只安装一套字体(下文的微软字体也不配置)。例如,如果想开箱就有类似mint的字体,就只安装第二行的noto一系。
当然还有cinnamon的语言包:
1 |
|
在这里直接把ntfs-3gpkg安了,提供ntfs文件系统的完整支持:
1 |
|
1.5.微软字体
参考ArchWiki
只建议把Windows的字体文件复制到Linux系统下,不建议使用软链接;因为按照咱的使用习惯,咱并不喜欢开机自动挂载Windows分区(甚至希望尽量完全避免挂载Windows系统盘分区)。
首先挂载Windows的系统盘(这里考虑直接挂载到/mnt
目录,并假设Windows的系统盘分区是/dev/nvme0n1p3
)。
1 |
|
然后复制相应的字体文件到对应目录,并设定好权限:
1 |
|
最后重新生成字体缓存:
1 |
|
以及卸下挂载的Windows分区:
1 |
|
2.startx启动桌面环境
安装启动图形环境的脚本:
1 |
|
然后使用脚本启动桌面环境(此处应切换到非root用户):
1 |
|
初始状态下的cinnamon真的很丑:
xinit的更多用法参考ArchWiki
使用这个脚本启动桌面可以绕开桌面管理器(以下简称dm),在桌面崩溃的时候,可以使用这个脚本排除问题(xorg/dm/桌面三者均可能出问题,用这个可以排除dm的问题,不过大部分时候都是xorg在抽风)
这里不装dm还有一个比较难绷的理由,曾经有一段很长的时间,lightdm-slick-greeter
pkg这个包是坏的或者只是单纯是咱那会wiki没看全没配置对,启动lightdm会无法显示登录界面;而这个greeter是mint主题的默认登录界面,而且有些mint相关的应用程序直接硬依赖这个greeter,因此只能去AUR里面取两个包曲线救国: lightdm-slick-greeter-mint-themeaur和lightdm-guestaur。不过现在这个包已经好了,所以跳过xinit
环节也行,但是咱还是更喜欢留着xinit脚本在排查故障的时候用。
2.5.一点必要的小手段
AUR是源码发布机制,从源码可以发现很多开源包的source是直接从github上面拉的,所以难免遇到网络问题,需要一些必要的小手段。
pacman上面有一些已经打包好的客户端可以直接用(善用pacman -Ss
多做搜索)。
总之就是现在有了一只可爱的小猫来解决网络问题:
3.安装桌面管理器
1 |
|
lightdm-guestaur: 除了提供lightdm本体外,额外支持访客用户登录。
lightdm-slick-greeter-mint-themeaur: 额外提前设置好了一些选项,具体参考AUR页面的置顶评论。这个包强制依赖lightdm-guestaur。由于这个包还会使用wget
命令下载当日的微软壁纸并设置为锁屏壁纸,因此确保系统安装了wget
否则会打包失败。
如果使用了这两个包,下面的配置greeter可以不做,这两个包会帮你配置好。
然后还要配置greeter:编辑/etc/lightdm/lightdm.conf
,找到[Seat:*]
模块,然后修改greeter-session
变量,就像这样:
1 |
|


这个配置过程不是可选的,不设置的话会导致greeter无法启动,如果配置了自动登录会无法切换用户,如果没配置自动登录就会直接导致lightdm启动失败。
但是作为lightdm默认的lightdm-gtk-greeter
例外。
最后把lightdm设置为开机自启,由于现在还开着桌面就不立即启动lightdm了:
1 |
|
4.设置中文
编辑/etc/locale.conf
,把LANG=en_US.UTF-8
改为LANG=zh_CN.UTF-8
。
但是这样修改之后,tty终端就会试图显示中文(但是只会显示菱形方块),当桌面崩溃需要tty救急时这会导致tty输出完全不可读。
所以在/etc/profile.d/
路径下新建一个空文件,取一个喜欢的名字(例如tty-en.sh
),然后填入以下内容:
1 |
|
这会当检测到窗口处于tty时,把语言设为英文。添加在这里和把代码追加在/etc/profile
文件中等效,并且对所有用户生效。
mintlocaleaur会在cinnamon桌面的设置菜单中添加一个语言设置菜单,允许设置当前用户或者所有用户的语言,其中设置所有用户时会修改/etc/locale.conf
。
这个包无论在什么语言环境下安装,最终菜单都会以英文显示,无法完美的像原生Mint系统下变为中文菜单。
完成设置语言之后重启计算机。
1 |
|
重启后就能看到登录界面了:
为防止系统用户出现在登录界面,安装可选依赖accountsservicepkg, 或者把这些用户名添加到
/etc/lightdm/users.conf
下的hidden-users
里。前者优势在于添加/删除用户时不用更新列表。
4.5.配置自动登录:
编辑/etc/lightdm/lightdm.conf
,同样找到[Seat:*]
模块,然后修改autologin-user
变量,改为想要自动登录的用户名;
然后还需要确保自动登录的用户在autologin
用户组中:
1 |
|
或者可以使用cinnamon桌面的图形化设置操作用户组:



5.cinnamon配置
terminal
编辑
→首选项
,把字体改为source code pro
且大小为10号,颜色主题改为Tango 暗色


桌面与主题
安装以下包:
包名 | 内容 |
---|---|
bibata-cursor-themeaur | 鼠标指针 |
mint-y-iconsaur | 图标主题 |
mint-artworkaur | 壁纸和开始菜单图标,顺便绑定了一堆mint常用的主题、字体等等 |
事实上,mint-artworkaur已经包含了bibata-cursor-themeaur和mint-y-iconsaur作为依赖,因此直接安装mint-artworkaur即可。
1 |
|
全部安装完成之后,进入系统设置,主题菜单已经发生了变化:
点开高级设置展开可以看到以前的界面,然后做一些想要的调整就行。
此外还有壁纸:
调整一下字体(pacman -S ttf-dejavu
):
到这一步后,基本的设置大体完成,但是中文字体似乎还没统一。针对中文字体的更详细配置参考ArchWiki
此外,还有一份 半透明主题 可以安装:
1 |
|
然后把三个主题文件夹放在~/.themes/
(对单用户生效)或者/usr/local/share/themes/
(对所有用户生效),之后就可以使用了。
不通过包管理器而是自行安装的东西都放在/usr/local/
目录下。
6.补齐系统应用
到这一步,cinnamon桌面的外观已经基本没有问题了,但是系统设置里面还缺少了很多项。
(左ArchLinux, 右LinuxMint22.1)




接下来逐一补充。
- 输入法:与
apt
高度耦合,无法补充,自行配置。 - 语言:安装mintlocaleaur
- 在线账户:安装gnome-online-accounts-gtkaur
- 磁盘:安装gnome-disk-utilitypkg
- 打印机:安装system-config-printerpkg
- 蓝牙:安装bluemanpkg
- 驱动管理和软件源:与
apt
高度耦合,无法补充,自行配置。 - 防火墙:安装gufwpkg
1 |
|
其中大部分应用安装即可使用,但也有一些只是前端窗口,使用需要额外配置后台服务(如打印机可能需要配置cups
pkg)
此外还有一些其它的系统软件:
重要的:
nemo-filerollerpkg: 压缩与解压文件,同时提供Nemo文件管理器的右键压缩与解压支持
其它的Linux Mint预装软件:
软件 | 在Arch Linux的包名 |
---|---|
归档管理器 | fileroller-linuxmintaur取代默认的gnome主题的fileroller;留意fileroller的可选依赖,其中包含对其它各种压缩格式的额外支持,自选安装 |
便笺 | stickyaur |
磁盘使用情况分析器 | baobab-gtk3aur |
电源统计 | gnome-power-managerpkg |
计算器 | gnome-calculator-gtk3aur |
截图 | gnome-screenshotpkg |
密码和密钥 | 后端gnome-keyringpkg,前端seahorsepkg |
日历 | gnome-calendarpkg只有gnome版,没有与cinnamon契合的旧版 |
书库 | thingyaur |
网络电视 Hypnotix | hypnotixaur或者hypnotix-waylandaur |
文档扫描仪 | simple-scan-linuxmintaur |
文件重命名工具 | bulkyaur |
系统监视器 | cinnamon版本gnome-system-monitor-linuxmintaur显示效果更好,但是gnome版本gnome-system-monitorpkg在系统参数页面多显示一项磁盘读写速度 |
字符映射表 | gucharmappkg |
Web应用 | webapp-manageraur |
未列在此表中的内容:
libreoffice全家桶,以及下图:


电源模式(平衡,节能,以及只在部分设备开放的高性能)由power-profiles-daemonpkg提供。
搜索时优先寻找gtk3
后缀的AUR老版本,通常会跟cinnamon桌面的契合度更高。
错误日志:
1 |
|
解决方案:安装glib2-devel
pkg
7.挂载硬盘设置
还有一个问题:Nemo挂载硬盘时,会要求输入密码,而不是像mint一样直接挂载:
Nemo挂载硬盘使用的是udisks2
服务,因此在nemo中挂载硬盘等价于:
1 |
|
需要配置一项放行规则:
1 |
|
这个规则会给用户组storage
中的用户放行挂载;然后还需要把用户添加到storage
组中。把规则中的用户组直接给wheel
组也行。
或者,按需取用这份更详细的规则
此外,默认会把硬盘挂载到/run/media/<username>
目录下,路径太长很不优雅,添加这份配置可以把挂载目录改为/media
:
文件路径:/etc/udev/rules.d/99-udisks2.rules
1 |
|
更多设置项参见ArchWiki-udisks
安装桌面之后
1.常用软件
浏览器
开源的:firefoxpkg,chromiumpkg
闭源但是常用的:microsoft-edge-stable-binedu,google-chromeedu,或者在AUR上获取更新更快的版本以及beta测试版等等(arch4edu源通常同步会慢些)
下载器
主力: freedownloadmanageraur
FDM浏览器插件: edge/chrome (需要科学上网),firefox
备用:motrixaur
Motrix上次更新时间已经是2023年5月,有一个现在持续维护的fork版imfileaur
微信/QQ
为了避免扫盘,可以使用flatpak精细地控制权限。 flatpak配置指南 以及SJTU镜像源
个人喜欢直接使用简单版本。
软件 | 纯净版(简单破事少) | 沙盒版(使用bubblewarp做简单的沙盒隔离,但是系统文件访问可能不便,例如收发其它目录的文件) | 备注 |
---|---|---|---|
linuxqqaur | linuxqq-nt-bwrapaur | 直接去官网下载appimage版也可运行;还有 基于portable的另一种沙盒版 可选 | |
微信 | gitee / github | wechat-universal-bwrapaur以及备用的github仓库 | 直接去官网下载appimage版也可运行; 2024年12月,AUR上的微信包所有权争夺撕了很久,最终留下了一地鸡毛;现在的Kimiblock维护者维护的版本引入了一大堆无用依赖,不建议使用 |
文本编辑器
cinnamon桌面配套的xed
已经可以满足基本的需求;
官方仓库里的codepkg是对 开源vscode仓库 编译而来,可能不包含一些微软增加的功能;由微软发布的版本可以通过visual-studio-code-binaur安装。
轻量的文本编辑器,notepadqqpkg本来是个好选择,但是该项目最后一次有实质的更新已经是2021年的事了,而现在的版本在ArchLinux中会频繁闪退;
notepad--( gitee / github )曾经是个开源的文本编辑器,但是现版本已经转向闭源;notepad---gitaur从git拉取开源的版本然后编译安装,目前还算好用;
notepadnext 是个很有潜力的好项目,可惜现在还不支持转换文件编码。
其它软件多在AUR上面搜索基本都能搜到。
2.脚本update-grub
在Debian/Ubuntu系统上,修改了grub配置后只需要简单地以sudo
权限运行:
1 |
|
就可以完成配置更新,但是Arch上面却需要:
1 |
|
实际上update-grub
就是一个简单的脚本,因此可以很简单地移植过来:
可以直接安装update-grubaur包来实现,或者手动创建这个脚本:
在/usr/local/bin
目录下,以root权限创建文本文件,命名为update-grub
,然后把权限设为755(所有者可读、写、执行,其他用户可读和执行):
1 |
|
然后填入以下内容:
1 |
|
保存即可。
3.timeshift快照
安装:
1 |
|
timeshift快照分为两种类型,在页面上都有介绍,这里提取其中的几个关键要素:
快照类型 | 特点 |
---|---|
RSYNC | 适用于任何文件系统,不依赖文件系统特性;基于全盘复制,因此占用空间较大,但是可以把快照储存在非系统盘上;第一次快照的时候是完全复制整个系统,此后的快照中与前面的快照相同的文件使用硬链接保存,不同的文件直接复制。快照占用的空间一经创建就确定下来;可以精细地选择需要快照和不需要快照的文件夹 |
BTRFS | 仅适用于btrfs文件系统,且仅支持@ 和@home 的子卷布局;由于基于文件系统,因此只能把快照储存在同一个盘上;快照在刚刚创建的时候不占据任何空间,随着系统本身的文件和快照的差距越来越大,占用的空间也越来越大,但是占用的空间一定不会大于RSYNC类型。 |
按照页面向导操作即可,其中定期快照需要启用cron
服务:
1 |
|
或者,根据 ArchWiki ,安装timeshift-systemd-timeraur可以替代cron
服务。
此外,timeshift-autosnapaur提供了一个钩子,可以在检测到pacman
执行了更新操作时,在更新前创建一份快照。
但是注意,使用AUR助手更新时,来自AUR的软件包是逐一打包安装的,因此每有一个AUR包被更新就会创建一个快照;不过不必担心空间不足,两份快照由于绝大部分内容是一致的,因此几乎不会占用额外的空间;适时清理即可。
btrfs快照
- 配置btrfs快照之后,检查
/etc/fstab
文件,如果存在subvolid
项则去除:回滚快照后subvolid
会发生变化,这一项的存在会导致系统盘无法正确挂载;只靠subvol
名称已经足以让系统分辨子卷;在2025.02.01镜像中,
genfstab
脚本生成的fstab文件已经不再会包含subvolid
项。 - 由于
/boot
分区并不属于btrfs文件系统的一部分,因此回滚快照的时候不会跟着回滚;有时候这会导致/boot
分区的initramfs内核版本与系统linux内核版本不一致,从而导致进不去系统。解决办法是,在回滚快照后,重启计算机之前,立即执行以下两项中的一项:如果重启的手速太快,忘记执行这些,导致进不去系统的话,liveCD启动,挂载硬盘,然后1
2mkinitcpio -P #保守的选择:重新生成全部initramfs,这样就与系统内一致了;也可以使用mkinitcpio -p <内核名,例如linux>只生成其中一个内核的,然后启动的时候选择这个内核
pacman -Sy <内核,例如linux> <相应的头文件,例如linux-headers> #激进的选择:先把其中一个内核更新了,这会在更新的同时为这个内核生成initramfs;然后启动的时候选择这个内核arch-chroot
进去执行。 - grub-btrfspkg提供了一项独特的功能:开机的时候直接引导进入快照。
如果安装了timeshift-autosnapaur,则这个包会在自动创建快照的同时,更新grub配置文件。
手动增删快照后也要刷新一次grub配置以让启动列表中的快照列表与实际的快照一致。
启动到快照的时候,同样要注意/boot
分区挂载的问题;不同的是,/boot
分区只有一份,不可能让其中的initramfs放弃跟随系统盘,去跟快照中一致。因此,要直接启动到快照,必须确保目标快照中的内核版本与当前系统的内核版本一致。 - 如果最初分区的时候,不为
/boot
单独分区,则以上两个问题均不存在;但是这样就没法让grub菜单记住上次选择的启动项。取舍在这。
到这里咱已经把目前能想到的,日用的Arch Linux系统必需的配置(除了显卡驱动)之外都配置完成了。由于目前还是在虚拟机上面整,暂时没有条件配置显卡驱动;不知道是虚拟机的问题还是其它什么问题,休眠目前也没配置成功。这两个问题以后在物理机上解决了另开一篇。
显卡驱动参考前述章节根据显卡品牌不同分列的wiki;
休眠配置参考 ArchWiki 。