Something went wrong. Try again.
System scripts and configurations
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495#!/usr/bin/env bash
# setup - setup system packages and configuration files.## usage: setup <link|install>## link - symlink configuration files# install - install system packages and tools
set -euo pipefail
export XDG_CONFIG_HOME="$HOME/.config"export XDG_CACHE_HOME="$HOME/.cache"export XDG_DATA_HOME="$HOME/.local/share"export XDG_STATE_HOME="$HOME/.local/state"
usage() { echo "setup - setup system packages and configuration files." echo "usage: setup <link|install>" echo "" echo "link - symlink configuraion files" echo "install - install system packages and tools"}
link() { mkdir -p "$HOME/.local" mkdir -p "$HOME/.local/bin" mkdir -p "$HOME/.claude" mkdir -p "$XDG_CONFIG_HOME/agents" mkdir -p "$XDG_CONFIG_HOME/autostart" mkdir -p "$XDG_CONFIG_HOME/emacs" mkdir -p "$XDG_CONFIG_HOME/fontconfig" mkdir -p "$XDG_CONFIG_HOME/mise" mkdir -p "$XDG_CONFIG_HOME/rustfmt" mkdir -p "$XDG_CONFIG_HOME/systemd/user" mkdir -p "$XDG_CONFIG_HOME/tmux"
ln -s "$PWD/bin/caps-to-ctrl" "$HOME/.local/bin/caps-to-ctrl" ln -s "$PWD/bin/dl-music" "$HOME/.local/bin/dl-music" ln -s "$PWD/bin/rctrl-to-compose" "$HOME/.local/bin/rctrl-to-compose" ln -s "$PWD/bin/theme" "$HOME/.local/bin/theme"
ln -s "$PWD/shell/.bashrc" "$HOME/.bashrc" ln -s "$PWD/shell/.profile" "$HOME/.profile" ln -s "$PWD/shell/.inputrc" "$HOME/.inputrc" ln -s "$PWD/shell/tmux.conf" "$XDG_CONFIG_HOME/tmux/tmux.conf"
sudo cp "$PWD/shell/disable-admin-flag" /etc/sudoers.d/disable-admin-flag sudo chown root:root /etc/sudoers.d/disable-admin-flag sudo chmod 0440 /etc/sudoers.d/disable-admin-flag
ln -s "$PWD/emacs/init.el" "$XDG_CONFIG_HOME/emacs/init.el" ln -s "$PWD/emacs/themes" "$XDG_CONFIG_HOME/emacs/themes"
ln -s "$PWD/git" "$XDG_CONFIG_HOME/git"
ln -s "$PWD/fonts/archives" "$XDG_DATA_HOME/fonts" ln -s "$PWD/fonts/fonts.conf" "$XDG_CONFIG_HOME/fontconfig/fonts.conf"
ln -s "$PWD/agents/AGENTS.md" "$XDG_CONFIG_HOME/agents/AGENTS.md" ln -s "$PWD/agents/conventions" "$XDG_CONFIG_HOME/agents/conventions" ln -s "$PWD/agents/claude/CLAUDE.md" "$HOME/.claude/CLAUDE.md" ln -s "$PWD/agents/claude/settings.json" "$HOME/.claude/settings.json" ln -s "$PWD/agents/pi" "$XDG_CONFIG_HOME/pi"
ln -s "$PWD/langs/mise/config.toml" "$XDG_CONFIG_HOME/mise/config.toml" ln -s "$PWD/langs/rust/rustfmt.toml" "$XDG_CONFIG_HOME/rustfmt/rustfmt.toml"
ln -s "$PWD/systemd/theme-auto.service" "$XDG_CONFIG_HOME/systemd/user/theme-auto.service" ln -s "$PWD/systemd/theme-auto.timer" "$XDG_CONFIG_HOME/systemd/user/theme-auto.timer"
ln -s "$PWD/xfce/caps-to-ctrl.desktop" "$XDG_CONFIG_HOME/autostart/caps-to-ctrl.desktop" ln -s "$PWD/xfce/rctrl-to-compose.desktop" "$XDG_CONFIG_HOME/autostart/ctrl-to-compose.desktop"
cp "$PWD/xfce/xfce4-keyboard-shortcuts.xml" "$XDG_CONFIG_HOME/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml" cp "$PWD/xfce/xfce4-panel.xml" "$XDG_CONFIG_HOME/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml" cp "$PWD/xfce/xfce4-terminal.xml" "$XDG_CONFIG_HOME/xfce4/xfconf/xfce-perchannel-xml/xfce4-terminal.xml" cp "$PWD/xfce/xfwm4.xml" "$XDG_CONFIG_HOME/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml" cp "$PWD/xfce/xsettings.xml" "$XDG_CONFIG_HOME/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml"}
install() { sudo apt install -y $(xargs <packages) for tool in $(cat tools); do tool=$(printf "%s" "$tool" | tr -d "\n") curl -fsS "$tool" | sh done}
case "${1:-}" in link) link;; install) install;; *) usage;;esac