Dotfile manager —— Dotbot

Dotfile manager —— Dotbot

Introduction

Dotbot makes installing your dotfiles as easy as git clone $url && cd dotfiles && ./install, even on a freshly installed system!

Dotfiles狭义上指以.开头的隐藏文件,通常用来存储程序的配置信息,如.bashrc.gitconfig等;广义上可以代指用户的所有配置文件。

Windows系统中,不同程序的配置文件路径相对分散,以下都有可能是xxx程序的配置文件路径,

  • C:\Users\<username>\AppData\Roaming
  • C:\Users\<username>\AppData\Local
  • C:\Users\<username>\Documents
  • C:\Users\<username>\.config

配置文件的不集中,使得配置文件的管理&备份&恢复变得困难,Dotbot是一个轻量级的Python工具,通过解析简单的配置文件(json/yaml)来自动化dotfiles的安装和管理;与之类似的工具还有yadm,gnu stow,dot drap etc.

Usage

原理很简单,通过创建软链接,将配置文件链接到指定的目录,这样就可以实现配置文件的集中管理

部分软件支持通过环境变量指定config path,比如yazi,但遗憾的是并非所有软件都支持。如果都支持的话写个envrc里面统一进行export或者Set-Env语句即可;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
- defaults:
    link:
      create: true
      relink: true
- clean: ['~','~/.config','~/AppData/Roaming','~/AppData/Local','~/Documents']
- link:
    ~/.config/btop: tui_cli/btop
    ~/.config/fastfetch: tui_cli/fastfetch
    ~/.config/procs: tui_cli/procs
    ~/.config/scoop: misc/scoop
    ~/.config/wezterm: terminal/wezterm
    ~/.config/yasb: misc/yasb
    ~/.gitconfig: misc/.gitconfig
    ~/.wslconfig: misc/.wslconfig
    ~/AppData/Local/lazygit: tui_cli/lazygit
    ~/AppData/Local/nvim: tui_cli/nvim
    ~/AppData/Roaming/bat: tui_cli/bat
    ~/AppData/Roaming/bottom: tui_cli/bottom
    ~/AppData/Roaming/gitui: tui_cli/gitui
    ~/AppData/Roaming/nushell: shells/nushell
    ~/AppData/Roaming/yazi/config: tui_cli/yazi
    ~/Documents/PowerShell: shells/pwsh7
    D://envir_vars/scoop/apps/vscode/current/data/user-data/User/custom.css: vscode/custom.css
    D://envir_vars/scoop/apps/vscode/current/data/user-data/User/keybindings.json: vscode/keybindings.json
    D://envir_vars/scoop/apps/vscode/current/data/user-data/User/settings.json: vscode/settings.json
    D://envir_vars/scoop/apps/vscode/current/data/user-data/User/snippets: vscode/snippets
    D://envir_vars/scoop/apps/windows-terminal-preview/current/settings: terminal/windows-terminal
- shell: []
dotbot

Advantages

个人在配置文件仓库Efterklang/config,使用了Dotbot进行配置文件的管理,相比手动管理方便很多。如果经常对配置文件进行修改,那么使用Dotbot进行管理是一个不错的选择,支持Windows & Linux & Mac。此外,Linux系统下还可以使用GNU stow进行配置文件的管理,原理类似。

过去使用Onedrive/Github进行配置文件的备份,有以下几方面限制:

OneDriveGitHubDotbot
备份修改将配置文件从不同目录拷贝到云盘与OneDrive类似在统一目录下修改,修改后推送至远程仓库
配置迁移下载云盘配置文件到app目录与OneDrive类似git clone 仓库,执行 install.ps1
版本控制⛔ (聊胜于无)
扩展性支持通过 git submodule 安装插件,可以同步 scoop 应用、Windows 字体等

当然,这些限制在一定程度上可以通过其他方式解决,但毕竟都有现成的轮子了,不妨直接使用🤓

More

Dotfile manager —— Dotbot

https://vluv.space/Tools/Terminal/dotbot/

作者

GnixAij

发布于

2025-01-07

更新于

2025-01-29

许可协议

评论