Dotfiles Management

20th August 2020 at 2:19pm
Productivity

管理 dotfiles,用 yadm。使用方法很简单,直接看文档即可。

现在的 Dotfiles 放在 GitHub 的 私有仓库 中。

yadm 有 alt 功能,可以针对同一文件,在不同设备使用不同的文件。

这个功能,最好按设备来,同时兼顾操作系统。考虑几点:

  • 我将同时使用 Linux 和 macOS
  • 不同的设备有做出区别的需要,比如 kglobalshortcutsrc 这种,里面包含 Widget ID,在不同机器上不一样
  • 笔记本即在家用又在公司用,在公司里用有一些不同的配置需求,比如在公司要给 SVN 配 proxy server,在家里不用

yadm 提供了 CLASS, OS, HOSTNAME, USER 等多层条件,用来选择文件。因此:

  • 使用 CLASS 区分设备:
    • pc1: 家里的台式机电脑
    • nb1: Dell 燃 7000 笔记本电脑
    • wsl1: 家里的台式机电脑上的 Arch Linux WSL(不再使用)
    • wsl2: 公司的台式机电脑上的 Arch Linux WSL(不再使用)
    • wsl3: Dell 笔记本电脑上的 Arch Linux WSL(不再使用)
    • mac1: 公司发的 15 存 Macbook Pro(不再使用)
  • 使用 OS 区分操作系统(暂未使用,等有了 Macbook 再考虑下)
  • 不使用 HOSTNAME 区分设备:
    • WSL 上的 host name 往往跟着宿主 Windows 走(比如家里的台式机叫 DESKTOP-V8LAOO3,公司的 onlyicelin-PC8),可以灵活定制的情况不多,比如公司入域的设备可能不方便改 host name
    • Mac 系统的 host name(比如 onlyice's Macbook Pro)与 Windows 的不太一致,不费力去修改成一致的观感

比如 .xprofile 中放了跟 DPI 相关的匹配,而家里的 pc1 设备用了 4K 显示屏,其他的设备是 1080P 显示屏,那么需要区分开:

  • pc1~/.xprofile##c.pc1
  • 其他:~/.xprofile#### 表示默认的)

CLASS 通过 yadm 命令行配置:

yadm config local.class pc1