Stow

Stow

GNU Stow — это менеджер символьных ссылок. Он позволяет управлять файлами конфигурации и установкой программ из исходников. При помощи Stow можно устанавливать программы из исходных кодов в обход менеджера пакетов, не боясь сломать систему. Также им удобно управлять файлами конфигурации (далее дот-файлами) в домашнем каталоге пользователя.

Управление дот-файлами

Пример - конфиг alacritty. Хранить все наши конфиги будем в $HOME/dotfiles/

alacritty.toml должен находиться в $HOME/dotfiles/alacritty/.config/alacritty/, в ~/.config/ не должно быть папки alacritty.

В итоге softlink конфига генерируется так

cd ~/dotfiles/
stow alacritty

А чтобы убрать softlink конфига

cd ~/dotfiles/
stow -D alacritty

В итоге вы можете менять файл по пути $HOME/dotfiles/alacritty/.config/alacritty/alacritty.toml или по пути $HOME/.config/alacritty/alacritty.toml, меняться будет везде, так по сути все конфиги будут физически находиться в $HOME/dotfiles/

Примерно такой путь должен быть в dotfiles: ~/dotfiles/<название для команды stow>/<.config или другая папка, в которой должен лежать файл>

Примеры:

~ » tree -a ~/dotfiles
├── alacritty
│   └── .config
│       └── alacritty
│           └── alacritty.toml
├── bin
│   └── .bin
│       ├── tmrun.sh
│       └── translate.sh
├── docker
│   └── Documents
│       └── Projects
│           └── docker
│               └── docker-compose.yml

Git

В итоге можно держать все конфиги в git и потом раскатывать все конфиги удобным образом через символьные ссылки.

Отредактировать на GitHub