跳转至

Ricing My Arch Linux

花了点时间从 i3 迁移到 Hyprland,终于把凌乱的 Dotfiles 整理好了。

这次除了整理配置文件,还将整体配色方案从 Nord 切换到了 Catppuccin Macchiato,并且统一了包括网站在内的所有主题。

Dotfiles 仓库:github.com/13m0n4de/dotfiles

预览

clean tools windows development

主题

从全套 Nord 配色更换到了 Catppuccin Macchiato 配色。

系统信息

各类软件都是 非常克制 地选出来的,遵循以下几个原则:

  • 轻量:尽量避免繁重的依赖项
  • 简单:专注于单一功能,易于配置
  • 快速:响应迅速,资源占用低
  • 现代:采用新技术,没有历史包袱
  • 活跃:项目持续更新,社区积极维护

YADM

YADM 是一个 Dotfiles 管理器,看仓库 Languages 概览会误以为它是 Python 项目,其实它是一个 Shell 脚本,Python 只用来编写测试用例。

YADM 本质上是对 Git 的封装,它在 $HOME/.local/share/yadm/repo.git 创建一个 Git 仓库,并将工作目录设置为 $HOME。它的使用方式也几乎与 Git 一模一样:

yadm init
yadm add <important file>
yadm commit
yadm remote add origin <url>
yadm push -u origin <local branch>:<remote branch>
yadm clone <url>
yadm status

YADM 裸仓库管理 Dotfiles 的方式不同,虽然初始时使用 --bare 选项创建裸仓库,但随后立即修改配置 core.barefalsecore.worktree$HOME

如果直接用不带 --bare 的初始化方式,需要在 $HOME/.local/share/yadm/repo.git 初始化,并手动移动 .git 目录,重新配置工作目录这个过程会比较复杂且容易出错,所以才有先创建裸仓库再设置为普通仓库的操作。

我需要 Bootstrap 等功能,所以没选用裸仓库手动管理,而是 YADM,但它也足够 Simple 了。

为什么没用其他管理器

  • GNU Stow:有点古早,而且我不是很喜欢符号链接,无论是自己创建还是让工具帮我创建。并且从使用文档来看,感觉没有比我自己手动管理符号链接容易,许多操作宁愿写几个简单的 Shell 脚本来完成。
  • Punktf:需要编写 YAML 配置文件,并且看上去开发者非常关注于跨平台,而我不在乎这个。
  • toml-bombadil:需要编写 TOML 配置文件,感觉维护不够积极,并且官方示例的某个仓库从 toml-bombadil 迁移到了 chezmoi(宣传危机)
  • Dotter:需要编写 TOML 配置文件,基本上是通过配置文件控制模板和符号链接来管理 dotfiles。还算是符合要求,但是作者的 dotfiles 仓库的组织风格我不太喜欢,导致第一印象不是很好。
  • Dotdrop:需要编写 YAML 配置文件(半自动
  • Dotbot:需要编写 YAML 配置 文件,使用符号链接。
  • chezmoi:

YADM 的问题

遇到的最大问题可能就是,仓库 README 不是很方便放置。

因为默认的工作目录在 $HOME,常规情况下需要放置一个 $HOME/README.md 才能在 Github 仓库主页中显示。

解决方法也有,使用 sparse-checkout 可以做到“展示”和“使用”上的分离,详细见 issues#93

# 在 bootstrap 时切换到 $HOME 目录并执行:
yadm sparse-checkout set --no-cone '/*' '!README.md' '!UNLICENSE.md'

但单纯针对 Github 的话,可以在 $HOME/.github/ 目录下放置 README.md,见 Github Docs - About READMEs

If you put your README file in your repository's hidden .github, root, or docs directory, GitHub will recognize and automatically surface your README to repository visitors.

If a repository contains more than one README file, then the file shown is chosen from locations in the following order: the .github directory, then the repository's root directory, and finally the docs directory.

Guix System

其实这次与其说是迁移,更像是重装,我直接把盘给格式化了。

新发行版先是在 NixOS Guix System 里纠结,前者是这两年的时尚单品,但对比后者,感觉 Guix System NixOS 更“精致”、文档也更清晰,并且 Scheme(Guile) Nix 语言要好。

再加上以往有体验过 Guix 包管理器,于是就先装了 Guix System,花了两天时间在折腾 Guix 上。

结果是大失败,从安装到配置每一步都花了很大精力去看文档、试错,对着 TTY Scheme 也很痛苦。我逐渐意识到还要继续写非常非常多的配置才能达到基本可用,而我根本不是 Scheme 高手,于是灰溜溜就回到了 Arch

现在正在使用虚拟机继续配置 Guix System,等配置好了就可以直接安装(最快也会是明年了吧)

网站配色

你可能注意到,网站也全部替换为了 Catppuccin Macchiato 配色,这是让 AI 辅助写的 Custom color schemes

不像以前在官方亮暗色主题下修修补补,这次配色覆盖的更加全面,代码高亮也更好看。