!GNU Stow - менеджер symlink’ов (Необходимо доработать)
2023-03-22
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