终极桌面环境

操作系统

Arch Linux, 无需多言,纯粹的系统;优秀的包管理系统使得我可以减少应用安装时各种依赖和建构的麻烦。

参见:《Arch Linux 系统安装

桌面环境

桌面环境提供了整套完整的图形环境,包含了各式各样的基础性的工具。自定义桌面环境的过程中,可以针对不同的模块,可以选择自己喜欢的应用,因此可以随时更换,保持折腾的状态。这部分内容参考的是 Arch Wiki 上关于桌面环境提供的帮助。详见:Desktop environment - ArchWiki.

我的桌面环境讲求实用,不追求华丽的装饰,大道至简。

窗口管理

控制窗口的布局,主要分三类:堆叠、平铺和动态。

  • 堆叠,就是 Windows 默认的窗口管理,各窗口之间可以相互覆盖,窗口尺寸需要用户手动控制。
  • 平铺,通过算法控制,窗口会自动铺满整个屏幕,且各窗口之间不会交叠覆盖。
  • 动态,平铺和堆叠(浮动)的混合,即后台确定哪些窗口是平铺状态,哪些窗口可以浮动在其他窗口前。

详见:Window manager - ArchWiki.

Qtile

目前用的是动态窗口管理 Qtile, 它是用 Python 写成,支持多种平铺方式。

参见:《Arch Linux 下 Qtile 桌面管理器

登录管理

登录界面,用于管理登录的用户和选择桌面环境。详见:Display manager - ArchWiki.

LightDM

目前使用的是 LightDM, 理由:轻量,且可以搭配 light-locker 来锁屏(见锁屏)。

lightdm 有两个部分,后台进程和前端(greeter),不同的前端由不同的样式和功能。目前使用的前端是简单的 GTK.

安装:

yay -S lightdm lightdm-gtk-greeter
# 安装前端图形工具,方便设置
yay -S lightdm-gtk-greeter-settings

终端

st

轻量,秒开,不带任何卡顿。我更喜欢多开终端,不用内部分割窗口。

美中不足是对中文字体的支持并不太友好,不过勉强能用。

文件管理

其实用的并不多,大部分使用的是终端的 cp, mv, rm, 或者是 Emacs 的 Dirvish (更好用的 Dired)。

Spacedrive 是一个比较期待的项目,它可以把各种网盘云盘集成到一个管理器中。不过目前在 Arch Linux 上的安装不太得行,且它本身还是各新项目。保持观望态度。

更多应用详见:File managers - ArchWiki.

文件编辑

Emacs is the best!

混成器

用来增加一些可选图形的设置,比如背景透明图、切换窗口时的淡入淡出。之前用的 Picom, 后来发现花里胡哨没啥必要,就不用混成器了。

详见:Composite - ArchWiki.

任务栏

或者状态栏,用来显示有用的信息,以及可以做一些快捷的交互。

之前用了几个主流的都挺好用,比如 eww, polybar. 更多详见:Taskbars.

Qtile Widgets

目前用的是 Qtile 带的 widget 功能设计的一个状态栏,显示一些诸如时间、音量等信息即可。之前也跟风,想搞得炫酷一点,于是什么 CPU 温度、内存情况都放上去,结果发现我根本就不看一眼。所以现在走简约风格,最多就是有个当前正在播放的音乐。

通知进程

监听系统通知,收到信号后生成图形窗口。详见:Desktop notifications - ArchWiki.

dunst

挺好用的,项目主页 Dunst.

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 的界面,不需要单独配置一个锁屏界面。

程序启动器

Rofi

足够美观和轻量,且功能强大。用得不多,常用程序已经绑定快捷键。地址:Rofi.

图形认证

就是非 root 用户要执行一些 root 权限的操作时需要输入密码认证,在终端下直接输入密码得了,如果是点击某个图形界面的按钮时需要认证,那么就需要另一个图形窗口来输入密码,这个就是 Polkit.

lxqt-policykit

足够轻量。

yay -S lxqt-policykit

在启动脚本添加 pgrep -f lxqt-policykit-agent > /dev/null || lxqt-policykit-agent & 即可。

截图

flameshot

功能丰富,对标 Windows 下的 Snipaste.

yay -S flameshot

添加启动项 flameshot &.

桌面壁纸

可以选择幻灯片或者动态的桌面壁纸,一开始配合混成器的透明窗口搭配好看的壁纸的确赏心悦目。现在不搞这种了,讲求实用。

Qtile Wallpaper

Qtile 可以设置壁纸,因此不需要其他工具。

详见:Wallpaper setters.

关机界面

关机按钮界面。有用但不多,直接 rebootshutdown 0.

详见:Logout UI.

音频管理

事实上只需一个简单的命令行工具,能够用键盘去控制即可。

键盘使用的是 Qtile Widget 中的 Python 关于 PluseAudio 的模块。命令行装一个 pulseaudio-ctl.

Volume control - ArchWiki.

背光管理

一个简单的命令行工具即可。目前使用的是 brightnessctl.

Backlight - ArchWiki.

媒体管理

没什么实际作用,所以没装。

MPRIS - ArchWiki.

电源管理

在状态栏显示电量就差不多了。

要调整一些如休眠等设置,可以安装一个 powerkit.

yay -S powerkit
Powered by Org Mode.