终极桌面环境
Table of Contents
操作系统
Arch Linux, 无需多言,纯粹的系统;优秀的包管理系统使得我可以减少应用安装时各种依赖和建构的麻烦。
参见:《Arch Linux 系统安装》
桌面环境
桌面环境提供了整套完整的图形环境,包含了各式各样的基础性的工具。自定义桌面环境的过程中,可以针对不同的模块,可以选择自己喜欢的应用,因此可以随时更换,保持折腾的状态。这部分内容参考的是 Arch Wiki 上关于桌面环境提供的帮助。详见:Desktop environment - ArchWiki.
我的桌面环境讲求实用,不追求华丽的装饰,大道至简。
窗口管理
控制窗口的布局,主要分三类:堆叠、平铺和动态。
- 堆叠,就是 Windows 默认的窗口管理,各窗口之间可以相互覆盖,窗口尺寸需要用户手动控制。
- 平铺,通过算法控制,窗口会自动铺满整个屏幕,且各窗口之间不会交叠覆盖。
- 动态,平铺和堆叠(浮动)的混合,即后台确定哪些窗口是平铺状态,哪些窗口可以浮动在其他窗口前。
登录管理
登录界面,用于管理登录的用户和选择桌面环境。详见:Display manager - ArchWiki.
文件管理
其实用的并不多,大部分使用的是终端的 cp, mv, rm
, 或者是 Emacs 的 Dirvish (更好用的 Dired)。
Spacedrive 是一个比较期待的项目,它可以把各种网盘云盘集成到一个管理器中。不过目前在 Arch Linux 上的安装不太得行,且它本身还是各新项目。保持观望态度。
更多应用详见:File managers - ArchWiki.
文件编辑
Emacs is the best!
任务栏
或者状态栏,用来显示有用的信息,以及可以做一些快捷的交互。
之前用了几个主流的都挺好用,比如 eww, polybar. 更多详见:Taskbars.
Qtile Widgets
目前用的是 Qtile 带的 widget 功能设计的一个状态栏,显示一些诸如时间、音量等信息即可。之前也跟风,想搞得炫酷一点,于是什么 CPU 温度、内存情况都放上去,结果发现我根本就不看一眼。所以现在走简约风格,最多就是有个当前正在播放的音乐。
通知进程
监听系统通知,收到信号后生成图形窗口。详见:Desktop notifications - ArchWiki.
graphical_notifications.py
Qtile 内置了一个通知进程,它只是缺少一个前端。在官网的例子中给了一个前端的例子,地址,把这个下载放到 Qtile 的配置目录。配置中添加:
from graphical_notifications import Notifier
notifier = Notifier(
font="LXGW WenKai",
width=300,
height=100,
y=50,
x=1600,
max_windows=4,
gap=10,
actions=False,
background=Color.Black,
foreground=(Color.White, Color.Yellow, Color.Red),
border=(Color.White, Color.Yellow, Color.Red),
border_width=2,
timeout=(3000, 5000, 0)
)
里面的配置看一下注释就知道什么意思了。
锁屏
light-locker
配合 lightdm 使用,它自己不提供锁屏界面,它把锁屏引导到 lightdm greeter 的界面,不需要单独配置一个锁屏界面。
图形认证
就是非 root 用户要执行一些 root 权限的操作时需要输入密码认证,在终端下直接输入密码得了,如果是点击某个图形界面的按钮时需要认证,那么就需要另一个图形窗口来输入密码,这个就是 Polkit.
lxqt-policykit
足够轻量。
yay -S lxqt-policykit
在启动脚本添加 pgrep -f lxqt-policykit-agent > /dev/null || lxqt-policykit-agent &
即可。
桌面壁纸
可以选择幻灯片或者动态的桌面壁纸,一开始配合混成器的透明窗口搭配好看的壁纸的确赏心悦目。现在不搞这种了,讲求实用。
Qtile Wallpaper
Qtile 可以设置壁纸,因此不需要其他工具。
音频管理
事实上只需一个简单的命令行工具,能够用键盘去控制即可。
键盘使用的是 Qtile Widget 中的 Python 关于 PluseAudio 的模块。命令行装一个 pulseaudio-ctl
.
背光管理
一个简单的命令行工具即可。目前使用的是 brightnessctl
.
媒体管理
没什么实际作用,所以没装。