!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