refactor: migrate from shell-based sync to mise dotfiles management
- Replace sync-config/sync-script with mise.toml [dotfiles] directives - Convert installer scripts to mise tasks (shells, desktop, theme, webapps) - Remove config/nvim-old (deprecated neovim config) - Add omarchy theme system with multi-app configs (btop, hyprland, kitty, foot, tmux, etc.) - Move SSH hosts to config.d/* include pattern - Add Tera templates for dynamic config generation (git-local, dofiles.conf) - Update pi agent settings (0.80.10, packages list) - Add mise tasks for pi plugin setup and nvim tooling
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
pacman -Sy --noconfirm networkmanager
|
||||
sudo pacman -Sy --noconfirm networkmanager
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
sudo systemctl enable --now NetworkManager.service
|
||||
|
||||
@@ -2,14 +2,12 @@
|
||||
# SjB TODO:
|
||||
# - install public keys
|
||||
|
||||
sudo pacman -Syu --noconfirm
|
||||
|
||||
if [[ "$(uname -m)" == "x86_64" ]]; then
|
||||
|
||||
if ! pacman-key --list-keys 882DCFE48E2051D48E2562ABF3B607488DB35A47 >/dev/null 2>&1; then
|
||||
sudo pacman-key --recv-key 882DCFE48E2051D48E2562ABF3B607488DB35A47 && sudo pacman-key --lsign-key 882DCFE48E2051D48E2562ABF3B607488DB35A47
|
||||
fi
|
||||
if sudo pacman -U --noconfirm https://cdn77.cachyos.org/repo/x86_64/cachyos/archlinux-keyring-20260420-2-any.pkg.tar.zst &&
|
||||
if sudo pacman -U --noconfirm https://cdn77.cachyos.org/repo/x86_64/cachyos/archlinux-keyring-20260707.1-1-any.pkg.tar.zst &&
|
||||
sudo pacman -U --noconfirm https://cdn77.cachyos.org/repo/x86_64/cachyos/cachyos-mirrorlist-27-1-any.pkg.tar.zst; then
|
||||
|
||||
if ! grep -q "^\[cachyos\]" /etc/pacman.conf; then
|
||||
|
||||
@@ -17,4 +17,4 @@ if [[ -f "/etc/sdboot-manage.conf" ]]; then
|
||||
sudo sed -i '/^LINUX_OPTIONS=/ s/splash\"/splash quiet\"/' /etc/sdboot-manage.conf
|
||||
fi
|
||||
|
||||
/usr/bin/sdboot-manage gen
|
||||
sudo /usr/bin/sdboot-manage gen
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh -e
|
||||
#!/usr/bin/sudo /bin/sh
|
||||
|
||||
if [[ $UID != 0 ]]; then
|
||||
echo "need to be root"
|
||||
|
||||
@@ -8,7 +8,6 @@ paru --noconfirm --needed -Sy \
|
||||
cups \
|
||||
cups-filters \
|
||||
cups-pdf \
|
||||
cups-browsed \
|
||||
system-config-printer \
|
||||
avahi \
|
||||
nss-mdns \
|
||||
@@ -37,6 +36,3 @@ if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then
|
||||
echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf
|
||||
fi
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
sudo systemctl enable --now cups-browsed.service
|
||||
fi
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/btop
|
||||
THEME_DIR="${HOME}/.config/omarchy/current/theme"
|
||||
|
||||
# theme link
|
||||
mkdir -p ~/.config/btop/themes
|
||||
ln -snf ${THEME_DIR}/btop.theme ${HOME}/.config/btop/themes/current.theme
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
systemctl --user enable --now syncthing
|
||||
fi
|
||||
|
||||
THEME_DIR="${HOME}/.config/omarchy/current/theme"
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/hypr
|
||||
|
||||
${DOTFILES_DIR}/sync-script script/hyprland-activeworkspace
|
||||
${DOTFILES_DIR}/sync-script script/hyprland-keybindings
|
||||
${DOTFILES_DIR}/sync-script script/hyprland-fetch-client
|
||||
${DOTFILES_DIR}/sync-script script/hyprland-focus-client
|
||||
${DOTFILES_DIR}/sync-script script/rofi-pass
|
||||
|
||||
sjb-script-installer ${SJB_CONF_DIR}/bin/bing-wallpaper
|
||||
|
||||
${DOTFILES_DIR}/sync-script script/bing-wallpaper
|
||||
|
||||
if [[ ! -x "$(command -v gsettings)" ]]; then
|
||||
gsettings set org.gnome.desktop.interface gtk-enable-primary-paste true
|
||||
fi
|
||||
${DOTFILES_DIR}/sync-config config/rofi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/mako
|
||||
ln -snf ${THEME_DIR}/current/theme/mako.ini ${HOME}/.config/mako/config
|
||||
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/ghostty
|
||||
ln -snf ${THEME_DIR}/current/theme/ghostty ${HOME}/.config/ghostty/theme
|
||||
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/chromium-flags.conf
|
||||
|
||||
xdg-settings set default-web-browser firefox.desktop
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
${DOTFILES_DIR}/sync-config config/systemd
|
||||
systemctl --user enable mako.service
|
||||
systemctl --user enable hypridle.service
|
||||
systemctl --user enable awww-daemon.service
|
||||
systemctl --user enable gnome-keyring-daemon.service
|
||||
systemctl --user enable hyprpolkitagent.service
|
||||
systemctl --user enable wallpaper.timer
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/emacs
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
mkdir -p ${HOME}/.config/environment.d
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/environment.d/
|
||||
echo "DOTFILES_DIR=${DOTFILES_DIR}" | tee -a ${HOME}/.config/environment.d/dotfiles.conf
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v fish)" ]]; then
|
||||
paru -Sy --needed --noconfirm fish fisher
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/fish
|
||||
|
||||
if [[ -x /usr/bin/fisher ]]; then
|
||||
fisher install franciscolourenco/done
|
||||
fisher install kidonng/zoxide.fish
|
||||
fisher install PatrickF1/fzf.fish
|
||||
fi
|
||||
|
||||
chsh -s /bin/fish $USER
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/fontconfig
|
||||
|
||||
rsync -av ${DOTFILES_DIR}/fonts/ ${HOME}/.local/share/fonts/
|
||||
|
||||
fc-cache
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v git)" ]]; then
|
||||
paru -Sy --needed --noconfirm git
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/git
|
||||
|
||||
GIT_CONFIG="${HOME}/.config/git/local"
|
||||
|
||||
# Set identification from install inputs
|
||||
if [[ -n "${SJB_USER_NAME//[[:space:]]/}" ]]; then
|
||||
git config -f ${GIT_CONFIG} user.name "$SJB_USER_NAME"
|
||||
fi
|
||||
|
||||
if [[ -n "${SJB_USER_EMAIL//[[:space:]]/}" ]]; then
|
||||
git config -f ${GIT_CONFIG} user.email "$SJB_USER_EMAIL"
|
||||
fi
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v goose-desktop)" ]]; then
|
||||
paru -Sy --needed --noconfirm goose-desktop-bin
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/goose
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v goose)" ]]; then
|
||||
paru -Sy --needed --noconfirm codename-goose-bin
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/goose
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v jj)" ]]; then
|
||||
paru -Sy --needed --noconfirm jj
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/jj
|
||||
|
||||
JJ_CONFIG="${HOME}/.config/jj/conf.d/local.toml"
|
||||
|
||||
mkdir -p "$(dirname ${JJ_CONFIG})"
|
||||
cp ${DOTFILES_DIR}/installer/templates/local.toml.tmpl ${JJ_CONFIG}
|
||||
|
||||
if [[ -n "${SJB_USER_NAME//[[:space:]]/}" ]]; then
|
||||
sed -i "s/NAME_PLACEHOLDER/${SJB_USER_NAME}/g" ${JJ_CONFIG}
|
||||
fi
|
||||
|
||||
if [[ -n "${SJB_USER_EMAIL//[[:space:]]/}" ]]; then
|
||||
sed -i "s/EMAIL_PLACEHOLDER/${SJB_USER_EMAIL}/g" ${JJ_CONFIG}
|
||||
fi
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v nvim)" ]]; then
|
||||
paru -Sy --noconfirm neovim harper tree-sitter-cli
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/nvim
|
||||
|
||||
# Set specific app links for current theme
|
||||
PLUGINS_DIR="${HOME}/.config/nvim/plugin"
|
||||
THEME_DIR="${HOME}/.config/omarchy/current/theme"
|
||||
|
||||
mkdir -p ${PLUGINS_DIR}
|
||||
ln -snf ${THEME_DIR}/current/theme/neovim-vimpack.lua ${PLUGINS_DIR}/theme.lua
|
||||
|
||||
uv tool install vectorcode
|
||||
|
||||
npm_config_prefix="$HOME/.local" npm install -g mcp-hub@latest
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v obsidian)" ]]; then
|
||||
paru -Sy --needed --noconfirm obsidian
|
||||
fi
|
||||
|
||||
xdg-mime default obsidian.desktop x-scheme-handler/obsidian
|
||||
xdg-settings set default-url-scheme-handler obsidian obsidian.desktop
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v opencode)" ]]; then
|
||||
paru -Sy --needed --noconfirm opencode-bin
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/opencode
|
||||
ln -snf ${HOME}/.agents/prompts ${HOME}/.config/opencode/agents
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v pi)" ]]; then
|
||||
node -v || paru -Sy --noconfirm nodejs npm
|
||||
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
|
||||
npm install -g pi-acp
|
||||
fi
|
||||
|
||||
mkdir ~/.pi
|
||||
ln -snf ~/.pi ~/.config/pi
|
||||
ln -snf ~/.agents/.agents/AGENTS.md ~/.pi/agent/AGENTS.md
|
||||
${DOTFILES_DIR}/sync-config config/pi
|
||||
|
||||
if [[ -x "$(command -v pass)" ]]; then
|
||||
pass show agent/pi/agent/auth.json > ~/.pi/agent/auth.json
|
||||
fi
|
||||
|
||||
pi install npm:pi-lens
|
||||
pi install npm:@gotgenes/pi-permission-system
|
||||
pi install npm:pi-native-search
|
||||
pi install npm:pi-subagents
|
||||
pi install npm:context-mode
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
[user]
|
||||
name = "NAME_PLACEHOLDER"
|
||||
email = "EMAIL_PLACEHOLDER"
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# Use dark mode for QT apps too (like kdenlive)
|
||||
# Allow icons to match the theme
|
||||
# Prefer dark mode everything
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
paru -Sy --needed --noconfirm kvantum-qt5 gnome-themes-extra yaru-icon-theme
|
||||
fi
|
||||
|
||||
if [[ ! -x "$(command -v gsettings)" ]]; then
|
||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
|
||||
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
||||
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-script script/omarchy-theme-bg-next
|
||||
${DOTFILES_DIR}/sync-script script/omarchy-theme-list
|
||||
${DOTFILES_DIR}/sync-script script/omarchy-theme-set
|
||||
|
||||
# Set initial theme
|
||||
THEME_DIR="${HOME}/.config/omarchy/current/theme"
|
||||
mkdir -p ${THEME_DIR}
|
||||
omarchy-theme-set "tokyo-night"
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v tmux)" ]]; then
|
||||
paru -Sy --needed --noconfirm tmux git zoxide fzf
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/tmux
|
||||
THEME_DIR="${HOME}/.config/omarchy/current/theme"
|
||||
|
||||
ln -snf ${THEME_DIR}/tmux ${HOME}/.config/tmux/theme
|
||||
|
||||
# setup tmux
|
||||
if [[ ! -d ~/.config/tmux/plugins/tpm ]]; then
|
||||
git clone https://github.com/tmux-plugins/tpm ${HOME}/.config/tmux/plugins/tpm
|
||||
tmux run-shell ~/.config/tmux/plugins/tpm/bindings/install_plugins
|
||||
fi
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
paru -Sy --needed --noconfirm chromium
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-script script/sjb-webapp-installer
|
||||
|
||||
sjb-webapp-installer "WhatsApp" https://web.whatsapp.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/whatsapp.png
|
||||
sjb-webapp-installer "Google Photos" https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png
|
||||
sjb-webapp-installer "Google Contacts" https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png
|
||||
sjb-webapp-installer "Google Messages" https://messages.google.com/web/conversations https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-messages.png
|
||||
sjb-webapp-installer "ChatGPT" https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png
|
||||
sjb-webapp-installer "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png
|
||||
sjb-webapp-installer "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png
|
||||
sjb-webapp-installer "Figma" https://figma.com/ https://www.veryicon.com/download/png/application/app-icon-7/figma-1?s=256
|
||||
sjb-webapp-installer "Discord" https://discord.com/channels/@me https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/discord.png
|
||||
sjb-webapp-installer "Twitch" https://twitch.tv/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/twitch.png
|
||||
sjb-webapp-installer "Team" https://teams.microsoft.com/v2/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-teams.svg
|
||||
sjb-webapp-installer "Outlook" https://outlook.office.com/mail/inbox/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-outlook.svg
|
||||
sjb-webapp-installer "Slack" https://app.slack.com/client/T09M8T3BB1N/C09KZ5N0ZK9 https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/slack.svg
|
||||
sjb-webapp-installer "Copilot" https://m365.cloud.microsoft https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-copilot.svg
|
||||
sjb-webapp-installer "Augureal" https://chat.augureai.ca/chat https://www.svgrepo.com/download/375527/ai-platform.svg
|
||||
|
||||
Reference in New Issue
Block a user