跳转至

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

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

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

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

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

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

网站配色

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

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