!GNU Stow - менеджер symlink’ов (Необходимо доработать)
2023-03-22T14:11:44+05:00
linuxОчень удобен в создании dot файлов
sudo pacman -S stow
Как пользоваться Gnu Stow и создать свой dotfiles
Проведем настройку git с добавлением пользователя (чтобы мы могли добавлять, коммитить и обновлять наш репозиторий не выходя из терминала)
git config --global user.email "твой@адрес.com"
git config --global user.name "имя или никнейм"
После этого мы можем спокойно делать всё что угодно с нашим репозиторием
Создаём начальные папки
mkdir -p dotfiles/base && cd dotfiles/base
# Пример имитации структуры файловой системы
# [любое_название]/[.config]/[точное_название_папки_конфига]/[сам_конфиг]
mkdir -p i3wm/.config/i3/
Вставляем данные конфиг файлы внутрь или копируем свои
cp ~/.config/i3/config ~/dotfiles/base/i3wm/.config/i3/
Создаём локальное репо
cd dotfiles
git init
git add --all
git commit -am "Creating dotfiles"
Создаём на github (или всякие подобные) пустое репо с названием dotfiles
В настройках репо gitlab "Repository" - "Protected branches" необходимо поставить Allowed to force push
В терминале добавляем созданный url к локальному репо
git remote add origin https://gitlab.com/[NAME]/dotfiles.git
git branch -M main
git push -uf origin main
Всё))
# Действия по установке dotfiles
Скачиваем GNU Stow
sudo pacman -S stow
Клонируем репо и переходим в него
git clone --recurse-submodules https://gitlab.com/[NAME]/dotfiles && cd dotfiles/base
Опции:
- (n) - действия будут эмитироваться
- (v) - действия будут подробными
- (D) - удаляет симлинк
- (t) - целевая директория
- (/) - файлы по типу README.md будут игнорироваться
- (*) - stow будет вытягивать всё из папки dotfiles в целевую директорию
- (~) - HOME директория
# Вытащить всё
stow -vt ~ */
# Вытянуть отдельный конфиг
stow -vt ~ alacritty
# Удалить симлинк с директории
# Ошибки "BUG in find_stowed_path?"
# просто игнорируйте
stow -Dvt ~ alacritty