From dd3753fab47187cc3d1c598772997b87b8cb947a Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Tue, 23 Sep 2025 13:19:48 +0000 Subject: [PATCH] refactor --- .bashrc | 202 ----------- README.md | 2 +- {config/ansible => ansible}/README.md | 0 {config/ansible => ansible}/ansible.cfg | 0 .../group_vars/servers.yml | 0 .../group_vars/workstations.yml | 0 {config/ansible => ansible}/handlers/main.yml | 0 {config/ansible => ansible}/inventory.ini | 2 +- {config/ansible => ansible}/playbook.yml | 0 {config/ansible => ansible}/requirements.yml | 0 .../tasks/global/docker.yml | 0 .../tasks/global/global.yml | 0 .../tasks/global/ollama.yml | 0 .../tasks/global/openssh-server.yml | 0 .../tasks/global/tailscale.yml | 0 .../tasks/global/utils.yml | 4 +- .../global/utils/dynamic-dns-cf-setup.md | 0 .../tasks/global/utils/dynamic-dns-cf.go | 0 .../tasks/global/utils/flitsmeister.go | 0 .../tasks/global/utils/helloworld.go | 0 .../tasks/global/utils/inuse.go | 0 .../tasks/global/utils/ipaddr | 0 .../tasks/global/utils/llm | 0 .../tasks/global/utils/smart-ssh/README.md | 0 .../tasks/global/utils/smart-ssh/config.yaml | 0 .../tasks/global/utils/smart-ssh/go.mod | 0 .../tasks/global/utils/smart-ssh/go.sum | 0 .../tasks/global/utils/smart-ssh/smart-ssh.go | 0 .../tasks/global/utils/vm-device | 0 .../ansible => ansible}/tasks/global/wsl.yml | 0 .../tasks/servers/borg-backup.yml | 0 .../tasks/servers/borg-local-sync.yml | 0 .../tasks/servers/dynamic-dns.yml | 2 +- .../tasks/servers/juicefs.yml | 0 .../tasks/servers/server.yml | 0 .../servers/services/arr-stack/arr-stack.yml | 0 .../services/arr-stack/docker-compose.yml.j2 | 0 .../servers/services/avorion/avorion.yml | 0 .../services/avorion/docker-compose.yml.j2 | 0 .../tasks/servers/services/beszel/beszel.yml | 0 .../services/beszel/docker-compose.yml.j2 | 0 .../tasks/servers/services/caddy/Caddyfile.j2 | 0 .../tasks/servers/services/caddy/Dockerfile | 0 .../tasks/servers/services/caddy/caddy.yml | 0 .../services/caddy/country-blocking.yml | 0 .../services/caddy/docker-compose.yml.j2 | 0 .../tasks/servers/services/dashy/conf.yml.j2 | 0 .../tasks/servers/services/dashy/dashy.yml | 0 .../services/dashy/docker-compose.yml.j2 | 0 .../downloaders/docker-compose.yml.j2 | 0 .../services/downloaders/downloaders.yml | 0 .../services/dozzle/docker-compose.yml.j2 | 0 .../tasks/servers/services/dozzle/dozzle.yml | 0 .../services/echoip/docker-compose.yml.j2 | 0 .../tasks/servers/services/echoip/echoip.yml | 0 .../services/factorio/docker-compose.yml.j2 | 0 .../servers/services/factorio/factorio.yml | 0 .../services/gitea/act-runner-config.yaml.j2 | 0 .../services/gitea/docker-compose.yml.j2 | 0 .../tasks/servers/services/gitea/gitea.yml | 0 .../services/golink/docker-compose.yml.j2 | 0 .../tasks/servers/services/golink/golink.yml | 0 .../home-assistant/docker-compose.yml.j2 | 0 .../home-assistant/home-assistant.yml | 0 .../services/immich/docker-compose.yml.j2 | 0 .../tasks/servers/services/immich/dotenv.j2 | 0 .../tasks/servers/services/immich/immich.yml | 0 .../services/nextcloud/docker-compose.yml.j2 | 0 .../servers/services/nextcloud/nextcloud.yml | 0 .../services/plex/docker-compose.yml.j2 | 0 .../tasks/servers/services/plex/plex.yml | 0 .../servers/services/privatebin/conf.php.j2 | 0 .../services/privatebin/docker-compose.yml.j2 | 0 .../services/privatebin/privatebin.yml | 0 .../services/redis/docker-compose.yml.j2 | 0 .../tasks/servers/services/redis/redis.yml | 0 .../servers/services/service_cleanup.yml | 0 .../services/stash/docker-compose.yml.j2 | 0 .../tasks/servers/services/stash/stash.yml | 0 .../services/tautulli/docker-compose.yml.j2 | 0 .../servers/services/tautulli/tautulli.yml | 0 .../docker-compose.yml.j2 | 0 .../unifi-network-application.yml | 0 .../services/wireguard/docker-compose.yml.j2 | 0 .../servers/services/wireguard/wireguard.yml | 0 .../tasks/workstations/1password-browsers.yml | 0 .../tasks/workstations/autostart.yml | 0 .../tasks/workstations/cliphist.yml | 0 .../tasks/workstations/firefox-apt.yml | 0 .../tasks/workstations/flatpaks.yml | 0 .../tasks/workstations/gnome-extensions.yml | 0 .../manage_gnome_extension.yml | 0 .../workstations/gnome-extensions/pano.yml | 0 .../gnome-extensions/quick-settings.yml | 0 .../gnome-extensions/tilingshell.yml | 0 .../tasks/workstations/purge-libreoffice.yml | 0 .../tasks/workstations/snaps.yml | 0 .../tasks/workstations/symlinks.yml | 4 - .../tasks/workstations/workstation.yml | 0 .../tasks/workstations/zen-browser.yml | 0 .../templates/borg-backup.service.j2 | 0 .../templates/borg-backup.sh.j2 | 0 .../templates/borg-backup.timer.j2 | 0 .../templates/borg-local-sync.service.j2 | 0 .../templates/borg-local-sync.sh.j2 | 0 .../templates/borg-local-sync.timer.j2 | 0 .../templates/dynamic-dns-systemd.env.j2 | 0 .../templates/juicefs.service.j2 | 0 .../templates/sshd_config.j2 | 0 bin/actions/update.py | 15 +- cloud-config | 22 -- config/ansible/tasks/global/symlinks.yml | 41 --- config/autostart/1password.desktop | 12 - config/autostart/1password.ignition_delay.sh | 2 - config/autostart/Nextcloud.desktop | 11 - .../autostart/io.github.mrvladus.List.desktop | 6 - config/autostart/jetbrains-toolbox.desktop | 15 - config/autostart/mimeinfo.cache | 11 - .../autostart/org.fkoehler.KTailctl.desktop | 11 - .../org.fkoehler.KTailctl.ignition_delay.sh | 2 - config/autostart/org.telegram.desktop.desktop | 23 -- .../org.telegram.desktop.ignition_delay.sh | 2 - .../org.telegram.ignition_delay.sh.desktop | 2 - config/autostart/signal-desktop.desktop | 14 - .../signal-desktop.ignition_delay.sh | 2 - config/autostart/steam.desktop | 283 ---------------- config/autostart/steam.ignition_delay.sh | 2 - config/bash.nix | 271 +++++++++++++++ config/default.nix | 8 + config/git.nix | 255 ++++++++++++++ config/git/gitconfig.linux | 43 --- config/git/gitconfig.macos | 16 - config/home-manager/flake.nix | 65 ---- config/home-manager/packages/common/bash.nix | 31 -- .../packages/common/hosts/default.nix | 1 - .../packages/common/hosts/fallback.nix | 4 - .../common/hosts/mennos-cachyos-desktop.nix | 4 - .../common/hosts/mennos-cachyos-laptop.nix | 4 - .../packages/common/hosts/mennos-desktop.nix | 4 - .../packages/common/hosts/mennos-laptop.nix | 4 - .../packages/common/hosts/mennos-server.nix | 4 - .../packages/common/hosts/mennos-vm.nix | 4 - .../home-manager/packages/common/packages.nix | 105 ------ config/home-manager/workstation/dconf.nix | 82 ----- .../workstation/gnome-extensions.nix | 314 ------------------ .../workstation/keyboard-shortcuts.nix | 39 --- config/nextcloud.cfg | 102 ------ config/ssh/config | 8 - config/starship.nix | 183 ++++++++++ config/starship.toml | 170 ---------- {vscode => config/vscode}/argv.json | 0 {vscode => config/vscode}/settings.json | 0 {zed => config/zed}/settings.json | 0 config/home-manager/flake.lock => flake.lock | 29 +- flake.nix | 45 +++ config/home-manager/home.nix => home.nix | 7 +- .../packages => packages}/common/default.nix | 0 packages/common/packages.nix | 93 ++++++ .../packages => packages}/common/secrets.nix | 0 .../packages => packages}/server/default.nix | 0 .../packages => packages}/server/packages.nix | 0 .../workstation/default.nix | 0 .../workstation/fix-electron-apps.sh | 0 .../workstation/packages.nix | 2 +- .../packages => packages}/workstation/php.nix | 0 .../server => server}/default.nix | 0 setup.sh | 2 +- .../workstation => workstation}/default.nix | 0 .../workstation => workstation}/fonts.nix | 0 workstation/gtk-theme.nix | 31 ++ 170 files changed, 907 insertions(+), 1715 deletions(-) delete mode 100644 .bashrc rename {config/ansible => ansible}/README.md (100%) rename {config/ansible => ansible}/ansible.cfg (100%) rename {config/ansible => ansible}/group_vars/servers.yml (100%) rename {config/ansible => ansible}/group_vars/workstations.yml (100%) rename {config/ansible => ansible}/handlers/main.yml (100%) rename {config/ansible => ansible}/inventory.ini (82%) rename {config/ansible => ansible}/playbook.yml (100%) rename {config/ansible => ansible}/requirements.yml (100%) rename {config/ansible => ansible}/tasks/global/docker.yml (100%) rename {config/ansible => ansible}/tasks/global/global.yml (100%) rename {config/ansible => ansible}/tasks/global/ollama.yml (100%) rename {config/ansible => ansible}/tasks/global/openssh-server.yml (100%) rename {config/ansible => ansible}/tasks/global/tailscale.yml (100%) rename {config/ansible => ansible}/tasks/global/utils.yml (93%) rename config/ansible/docs/dynamic-dns-setup.md => ansible/tasks/global/utils/dynamic-dns-cf-setup.md (100%) rename {config/ansible => ansible}/tasks/global/utils/dynamic-dns-cf.go (100%) rename {config/ansible => ansible}/tasks/global/utils/flitsmeister.go (100%) rename {config/ansible => ansible}/tasks/global/utils/helloworld.go (100%) rename {config/ansible => ansible}/tasks/global/utils/inuse.go (100%) rename {config/ansible => ansible}/tasks/global/utils/ipaddr (100%) rename {config/ansible => ansible}/tasks/global/utils/llm (100%) rename {config/ansible => ansible}/tasks/global/utils/smart-ssh/README.md (100%) rename {config/ansible => ansible}/tasks/global/utils/smart-ssh/config.yaml (100%) rename {config/ansible => ansible}/tasks/global/utils/smart-ssh/go.mod (100%) rename {config/ansible => ansible}/tasks/global/utils/smart-ssh/go.sum (100%) rename {config/ansible => ansible}/tasks/global/utils/smart-ssh/smart-ssh.go (100%) rename {config/ansible => ansible}/tasks/global/utils/vm-device (100%) rename {config/ansible => ansible}/tasks/global/wsl.yml (100%) rename {config/ansible => ansible}/tasks/servers/borg-backup.yml (100%) rename {config/ansible => ansible}/tasks/servers/borg-local-sync.yml (100%) rename {config/ansible => ansible}/tasks/servers/dynamic-dns.yml (96%) rename {config/ansible => ansible}/tasks/servers/juicefs.yml (100%) rename {config/ansible => ansible}/tasks/servers/server.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/arr-stack/arr-stack.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/arr-stack/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/avorion/avorion.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/avorion/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/beszel/beszel.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/beszel/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/caddy/Caddyfile.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/caddy/Dockerfile (100%) rename {config/ansible => ansible}/tasks/servers/services/caddy/caddy.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/caddy/country-blocking.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/caddy/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/dashy/conf.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/dashy/dashy.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/dashy/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/downloaders/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/downloaders/downloaders.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/dozzle/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/dozzle/dozzle.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/echoip/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/echoip/echoip.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/factorio/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/factorio/factorio.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/gitea/act-runner-config.yaml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/gitea/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/gitea/gitea.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/golink/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/golink/golink.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/home-assistant/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/home-assistant/home-assistant.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/immich/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/immich/dotenv.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/immich/immich.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/nextcloud/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/nextcloud/nextcloud.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/plex/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/plex/plex.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/privatebin/conf.php.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/privatebin/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/privatebin/privatebin.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/redis/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/redis/redis.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/service_cleanup.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/stash/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/stash/stash.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/tautulli/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/tautulli/tautulli.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/unifi-network-application/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/unifi-network-application/unifi-network-application.yml (100%) rename {config/ansible => ansible}/tasks/servers/services/wireguard/docker-compose.yml.j2 (100%) rename {config/ansible => ansible}/tasks/servers/services/wireguard/wireguard.yml (100%) rename {config/ansible => ansible}/tasks/workstations/1password-browsers.yml (100%) rename {config/ansible => ansible}/tasks/workstations/autostart.yml (100%) rename {config/ansible => ansible}/tasks/workstations/cliphist.yml (100%) rename {config/ansible => ansible}/tasks/workstations/firefox-apt.yml (100%) rename {config/ansible => ansible}/tasks/workstations/flatpaks.yml (100%) rename {config/ansible => ansible}/tasks/workstations/gnome-extensions.yml (100%) rename {config/ansible => ansible}/tasks/workstations/gnome-extensions/manage_gnome_extension.yml (100%) rename {config/ansible => ansible}/tasks/workstations/gnome-extensions/pano.yml (100%) rename {config/ansible => ansible}/tasks/workstations/gnome-extensions/quick-settings.yml (100%) rename {config/ansible => ansible}/tasks/workstations/gnome-extensions/tilingshell.yml (100%) rename {config/ansible => ansible}/tasks/workstations/purge-libreoffice.yml (100%) rename {config/ansible => ansible}/tasks/workstations/snaps.yml (100%) rename {config/ansible => ansible}/tasks/workstations/symlinks.yml (90%) rename {config/ansible => ansible}/tasks/workstations/workstation.yml (100%) rename {config/ansible => ansible}/tasks/workstations/zen-browser.yml (100%) rename {config/ansible => ansible}/templates/borg-backup.service.j2 (100%) rename {config/ansible => ansible}/templates/borg-backup.sh.j2 (100%) rename {config/ansible => ansible}/templates/borg-backup.timer.j2 (100%) rename {config/ansible => ansible}/templates/borg-local-sync.service.j2 (100%) rename {config/ansible => ansible}/templates/borg-local-sync.sh.j2 (100%) rename {config/ansible => ansible}/templates/borg-local-sync.timer.j2 (100%) rename {config/ansible => ansible}/templates/dynamic-dns-systemd.env.j2 (100%) rename {config/ansible => ansible}/templates/juicefs.service.j2 (100%) rename {config/ansible => ansible}/templates/sshd_config.j2 (100%) delete mode 100644 cloud-config delete mode 100644 config/ansible/tasks/global/symlinks.yml delete mode 100755 config/autostart/1password.desktop delete mode 100755 config/autostart/1password.ignition_delay.sh delete mode 100755 config/autostart/Nextcloud.desktop delete mode 100755 config/autostart/io.github.mrvladus.List.desktop delete mode 100755 config/autostart/jetbrains-toolbox.desktop delete mode 100755 config/autostart/mimeinfo.cache delete mode 100755 config/autostart/org.fkoehler.KTailctl.desktop delete mode 100755 config/autostart/org.fkoehler.KTailctl.ignition_delay.sh delete mode 100755 config/autostart/org.telegram.desktop.desktop delete mode 100755 config/autostart/org.telegram.desktop.ignition_delay.sh delete mode 100755 config/autostart/org.telegram.ignition_delay.sh.desktop delete mode 100755 config/autostart/signal-desktop.desktop delete mode 100755 config/autostart/signal-desktop.ignition_delay.sh delete mode 100755 config/autostart/steam.desktop delete mode 100755 config/autostart/steam.ignition_delay.sh create mode 100644 config/bash.nix create mode 100644 config/default.nix create mode 100644 config/git.nix delete mode 100644 config/git/gitconfig.linux delete mode 100644 config/git/gitconfig.macos delete mode 100644 config/home-manager/flake.nix delete mode 100644 config/home-manager/packages/common/bash.nix delete mode 100644 config/home-manager/packages/common/hosts/default.nix delete mode 100644 config/home-manager/packages/common/hosts/fallback.nix delete mode 100644 config/home-manager/packages/common/hosts/mennos-cachyos-desktop.nix delete mode 100644 config/home-manager/packages/common/hosts/mennos-cachyos-laptop.nix delete mode 100644 config/home-manager/packages/common/hosts/mennos-desktop.nix delete mode 100644 config/home-manager/packages/common/hosts/mennos-laptop.nix delete mode 100644 config/home-manager/packages/common/hosts/mennos-server.nix delete mode 100644 config/home-manager/packages/common/hosts/mennos-vm.nix delete mode 100644 config/home-manager/packages/common/packages.nix delete mode 100644 config/home-manager/workstation/dconf.nix delete mode 100644 config/home-manager/workstation/gnome-extensions.nix delete mode 100644 config/home-manager/workstation/keyboard-shortcuts.nix delete mode 100644 config/nextcloud.cfg delete mode 100644 config/ssh/config create mode 100644 config/starship.nix delete mode 100755 config/starship.toml rename {vscode => config/vscode}/argv.json (100%) rename {vscode => config/vscode}/settings.json (100%) rename {zed => config/zed}/settings.json (100%) rename config/home-manager/flake.lock => flake.lock (76%) create mode 100644 flake.nix rename config/home-manager/home.nix => home.nix (84%) rename {config/home-manager/packages => packages}/common/default.nix (100%) create mode 100644 packages/common/packages.nix rename {config/home-manager/packages => packages}/common/secrets.nix (100%) rename {config/home-manager/packages => packages}/server/default.nix (100%) rename {config/home-manager/packages => packages}/server/packages.nix (100%) rename {config/home-manager/packages => packages}/workstation/default.nix (100%) rename {config/home-manager/packages => packages}/workstation/fix-electron-apps.sh (100%) rename {config/home-manager/packages => packages}/workstation/packages.nix (98%) rename {config/home-manager/packages => packages}/workstation/php.nix (100%) rename {config/home-manager/server => server}/default.nix (100%) rename {config/home-manager/workstation => workstation}/default.nix (100%) rename {config/home-manager/workstation => workstation}/fonts.nix (100%) create mode 100644 workstation/gtk-theme.nix diff --git a/.bashrc b/.bashrc deleted file mode 100644 index e57da96..0000000 --- a/.bashrc +++ /dev/null @@ -1,202 +0,0 @@ -# HISTFILE Configuration (Bash equivalent) -HISTFILE=~/.bash_history -HISTSIZE=1000 -HISTFILESIZE=2000 # Adjusted to match both histfile and size criteria - -if [ -f /etc/os-release ]; then - distro=$(awk -F= '/^NAME/{print $ssss2}' /etc/os-release | tr -d '"') - if [[ "$distro" == *"Pop!_OS"* ]]; then - export CGO_CFLAGS="-I/usr/include" - fi -fi - -# For microsoft-standard-WSL2 in uname -a -if [[ "$(uname -a)" == *"microsoft-standard-WSL2"* ]]; then - source $HOME/.agent-bridge.sh - alias winget='winget.exe' -fi - -# Set SSH_AUTH_SOCK to ~/.1password/agent.sock, but only if we don't already have a SSH_AUTH_SOCK -if [ -z "$SSH_AUTH_SOCK" ]; then - export SSH_AUTH_SOCK=~/.1password/agent.sock -fi - -# If brave is available as browser set CHROME_EXECUTABLE to that. -if command -v brave-browser &> /dev/null; then - export CHROME_EXECUTABLE=/usr/bin/brave-browser -fi - -# Docker Compose Alias (Mostly for old shell scripts) -alias docker-compose='docker compose' - -# Modern tools aliases -alias l="eza --header --long --git --group-directories-first --group --icons --color=always --sort=name --hyperlink -o --no-permissions" -alias ll='l' -alias la='l -a' -alias cat='bat' -alias du='dust' -alias df='duf' -alias augp='sudo apt update && sudo apt upgrade -y && sudo apt autopurge -y && sudo apt autoclean' - -# Docker Aliases -alias d='docker' -alias dc='docker compose' -alias dce='docker compose exec' -alias dcl='docker compose logs' -alias dcd='docker compose down' -alias dcu='docker compose up' -alias dcp='docker compose ps' -alias dcps='docker compose ps' -alias dcpr='dcp && dcd && dcu -d && dcl -f' -alias dcr='dcd && dcu -d && dcl -f' -alias ddpul='docker compose down && docker compose pull && docker compose up -d && docker compose logs -f' -alias docker-nuke='docker kill $(docker ps -q) && docker rm $(docker ps -a -q) && docker system prune --all --volumes --force && docker volume prune --force' - -# Git aliases -alias g='git' -alias gg='git pull' -alias gl='git log --stat' -alias gp='git push' -alias gs='git status -s' -alias gst='git status' -alias ga='git add' -alias gc='git commit' -alias gcm='git commit -m' -alias gco='git checkout' -alias gcb='git checkout -b' - -# Kubernetes aliases (Minikube) -alias kubectl="minikube kubectl --" -alias zeditor=~/.local/bin/zed -alias zed=~/.local/bin/zed -alias ssh="~/.local/bin/smart-ssh" - -# random string (Syntax: random ) -alias random='openssl rand -base64' - -# Alias for ls to l but only if it's an interactive shell because we don't want to override ls in scripts which could blow up in our face -if [ -t 1 ]; then - alias ls='l' -fi - -# PATH Manipulation -export DOTFILES_PATH=$HOME/.dotfiles -export PATH=$PATH:$HOME/.local/bin -export PATH=$PATH:$HOME/.cargo/bin -export PATH=$PATH:$DOTFILES_PATH/bin -export PATH="/usr/bin:$PATH" - -if [ -d /usr/lib/pkgconfig ]; then - export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH -fi - -# Include spicetify if it exists -if [ -d "$HOME/.spicetify" ]; then - export PATH=$PATH:$HOME/.spicetify -fi - -# Include pyenv if it exists -if [ -d "$HOME/.pyenv" ]; then - export PYENV_ROOT="$HOME/.pyenv" - [[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" - eval "$(pyenv init - bash)" -fi - -# Include pnpm if it exists -if [ -d "$HOME/.local/share/pnpm" ]; then - export PATH=$PATH:$HOME/.local/share/pnpm -fi - -# Miniconda -export PATH="$HOME/miniconda3/bin:$PATH" - -# In case $HOME/.flutter/flutter/bin is found, we can add it to the PATH -if [ -d "$HOME/.flutter/flutter/bin" ]; then - export PATH=$PATH:$HOME/.flutter/flutter/bin - export PATH="$PATH":"$HOME/.pub-cache/bin" - - # Flutter linux fixes: - export CPPFLAGS="-I/usr/include" - export LDFLAGS="-L/usr/lib/x86_64-linux-gnu -lbz2" - export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH -fi - -# Add flatpak to XDG_DATA_DIRS -export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share - -# Allow unfree nixos -export NIXPKGS_ALLOW_UNFREE=1 - -# Allow insecure nixpkgs -export NIXPKGS_ALLOW_INSECURE=1 - -# Tradaware / DiscountOffice Configuration -if [ -d "/home/menno/Projects/Work" ]; then - export TRADAWARE_DEVOPS=true -fi - -# 1Password Source Plugin (Assuming bash compatibility) -if [ -f /home/menno/.config/op/plugins.sh ]; then - source /home/menno/.config/op/plugins.sh -fi - -# Initialize starship if available -if ! command -v starship &> /dev/null; then - echo "FYI, starship not found" -else - export STARSHIP_ENABLE_RIGHT_PROMPT=true - export STARSHIP_ENABLE_BASH_CONTINUATION=true - eval "$(starship init bash)" -fi - -# Read .op_sat -if [ -f ~/.op_sat ]; then - export OP_SERVICE_ACCOUNT_TOKEN=$(cat ~/.op_sat) - - # Ensure .op_sat is 0600 and only readable by the owner - if [ "$(stat -c %a ~/.op_sat)" != "600" ]; then - echo "WARNING: ~/.op_sat is not 0600, please fix this!" - fi - - if [ "$(stat -c %U ~/.op_sat)" != "$(whoami)" ]; then - echo "WARNING: ~/.op_sat is not owned by the current user, please fix this!" - fi -fi - -# Source nix home-manager -if [ -f "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" ]; then - . "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" -fi - -# Source ble.sh if it exists -if [[ -f "${HOME}/.nix-profile/share/blesh/ble.sh" ]]; then - source "${HOME}/.nix-profile/share/blesh/ble.sh" - - # Custom function for fzf history search - function fzf_history_search() { - local selected - selected=$(history | fzf --tac --height=40% --layout=reverse --border --info=inline \ - --query="$READLINE_LINE" \ - --color 'fg:#ebdbb2,bg:#282828,hl:#fabd2f,fg+:#ebdbb2,bg+:#3c3836,hl+:#fabd2f' \ - --color 'info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54' \ - | sed 's/^ *[0-9]* *//') - if [[ -n "$selected" ]]; then - READLINE_LINE="$selected" - READLINE_POINT=${#selected} - fi - ble-redraw-prompt - } - - # Bind Ctrl+R to our custom function - bind -x '"\C-r": fzf_history_search' -fi - -# In case a basrc.local exists, source it -if [ -f $HOME/.bashrc.local ]; then - source $HOME/.bashrc.local -fi - -# Display a welcome message for interactive shells -if [ -t 1 ]; then - helloworld -fi diff --git a/README.md b/README.md index aa0fd02..35d0098 100755 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ Here are some paths that contain files named after the hostname of the system. If you add a new system you should add the relevant files to these paths. - `config/ssh/authorized_keys`: Contains the public keys per hostname that will be symlinked to the `~/.ssh/authorized_keys` file. -- `config/home-manager/flake.nix`: Contains an array `homeConfigurations` where you should be adding the new system hostname and relevant configuration. +- `flake.nix`: Contains an array `homeConfigurations` where you should be adding the new system hostname and relevant configuration. ### Server reboots diff --git a/config/ansible/README.md b/ansible/README.md similarity index 100% rename from config/ansible/README.md rename to ansible/README.md diff --git a/config/ansible/ansible.cfg b/ansible/ansible.cfg similarity index 100% rename from config/ansible/ansible.cfg rename to ansible/ansible.cfg diff --git a/config/ansible/group_vars/servers.yml b/ansible/group_vars/servers.yml similarity index 100% rename from config/ansible/group_vars/servers.yml rename to ansible/group_vars/servers.yml diff --git a/config/ansible/group_vars/workstations.yml b/ansible/group_vars/workstations.yml similarity index 100% rename from config/ansible/group_vars/workstations.yml rename to ansible/group_vars/workstations.yml diff --git a/config/ansible/handlers/main.yml b/ansible/handlers/main.yml similarity index 100% rename from config/ansible/handlers/main.yml rename to ansible/handlers/main.yml diff --git a/config/ansible/inventory.ini b/ansible/inventory.ini similarity index 82% rename from config/ansible/inventory.ini rename to ansible/inventory.ini index 28093a2..8b5f653 100644 --- a/config/ansible/inventory.ini +++ b/ansible/inventory.ini @@ -3,6 +3,6 @@ mennos-laptop ansible_connection=local mennos-desktop ansible_connection=local [servers] -mennos-server ansible_connection=local +mennos-vps ansible_connection=local mennos-vm ansible_connection=local mennos-desktop ansible_connection=local diff --git a/config/ansible/playbook.yml b/ansible/playbook.yml similarity index 100% rename from config/ansible/playbook.yml rename to ansible/playbook.yml diff --git a/config/ansible/requirements.yml b/ansible/requirements.yml similarity index 100% rename from config/ansible/requirements.yml rename to ansible/requirements.yml diff --git a/config/ansible/tasks/global/docker.yml b/ansible/tasks/global/docker.yml similarity index 100% rename from config/ansible/tasks/global/docker.yml rename to ansible/tasks/global/docker.yml diff --git a/config/ansible/tasks/global/global.yml b/ansible/tasks/global/global.yml similarity index 100% rename from config/ansible/tasks/global/global.yml rename to ansible/tasks/global/global.yml diff --git a/config/ansible/tasks/global/ollama.yml b/ansible/tasks/global/ollama.yml similarity index 100% rename from config/ansible/tasks/global/ollama.yml rename to ansible/tasks/global/ollama.yml diff --git a/config/ansible/tasks/global/openssh-server.yml b/ansible/tasks/global/openssh-server.yml similarity index 100% rename from config/ansible/tasks/global/openssh-server.yml rename to ansible/tasks/global/openssh-server.yml diff --git a/config/ansible/tasks/global/tailscale.yml b/ansible/tasks/global/tailscale.yml similarity index 100% rename from config/ansible/tasks/global/tailscale.yml rename to ansible/tasks/global/tailscale.yml diff --git a/config/ansible/tasks/global/utils.yml b/ansible/tasks/global/utils.yml similarity index 93% rename from config/ansible/tasks/global/utils.yml rename to ansible/tasks/global/utils.yml index f36e07b..28bc627 100644 --- a/config/ansible/tasks/global/utils.yml +++ b/ansible/tasks/global/utils.yml @@ -15,14 +15,14 @@ - name: Scan utils folder for files ansible.builtin.find: - paths: "{{ dotfiles_path }}/config/ansible/tasks/global/utils" + paths: "{{ dotfiles_path }}/ansible/tasks/global/utils" file_type: file register: utils_files become: false - name: Scan utils folder for Go projects (directories with go.mod) ansible.builtin.find: - paths: "{{ dotfiles_path }}/config/ansible/tasks/global/utils" + paths: "{{ dotfiles_path }}/ansible/tasks/global/utils" file_type: directory recurse: true register: utils_dirs diff --git a/config/ansible/docs/dynamic-dns-setup.md b/ansible/tasks/global/utils/dynamic-dns-cf-setup.md similarity index 100% rename from config/ansible/docs/dynamic-dns-setup.md rename to ansible/tasks/global/utils/dynamic-dns-cf-setup.md diff --git a/config/ansible/tasks/global/utils/dynamic-dns-cf.go b/ansible/tasks/global/utils/dynamic-dns-cf.go similarity index 100% rename from config/ansible/tasks/global/utils/dynamic-dns-cf.go rename to ansible/tasks/global/utils/dynamic-dns-cf.go diff --git a/config/ansible/tasks/global/utils/flitsmeister.go b/ansible/tasks/global/utils/flitsmeister.go similarity index 100% rename from config/ansible/tasks/global/utils/flitsmeister.go rename to ansible/tasks/global/utils/flitsmeister.go diff --git a/config/ansible/tasks/global/utils/helloworld.go b/ansible/tasks/global/utils/helloworld.go similarity index 100% rename from config/ansible/tasks/global/utils/helloworld.go rename to ansible/tasks/global/utils/helloworld.go diff --git a/config/ansible/tasks/global/utils/inuse.go b/ansible/tasks/global/utils/inuse.go similarity index 100% rename from config/ansible/tasks/global/utils/inuse.go rename to ansible/tasks/global/utils/inuse.go diff --git a/config/ansible/tasks/global/utils/ipaddr b/ansible/tasks/global/utils/ipaddr similarity index 100% rename from config/ansible/tasks/global/utils/ipaddr rename to ansible/tasks/global/utils/ipaddr diff --git a/config/ansible/tasks/global/utils/llm b/ansible/tasks/global/utils/llm similarity index 100% rename from config/ansible/tasks/global/utils/llm rename to ansible/tasks/global/utils/llm diff --git a/config/ansible/tasks/global/utils/smart-ssh/README.md b/ansible/tasks/global/utils/smart-ssh/README.md similarity index 100% rename from config/ansible/tasks/global/utils/smart-ssh/README.md rename to ansible/tasks/global/utils/smart-ssh/README.md diff --git a/config/ansible/tasks/global/utils/smart-ssh/config.yaml b/ansible/tasks/global/utils/smart-ssh/config.yaml similarity index 100% rename from config/ansible/tasks/global/utils/smart-ssh/config.yaml rename to ansible/tasks/global/utils/smart-ssh/config.yaml diff --git a/config/ansible/tasks/global/utils/smart-ssh/go.mod b/ansible/tasks/global/utils/smart-ssh/go.mod similarity index 100% rename from config/ansible/tasks/global/utils/smart-ssh/go.mod rename to ansible/tasks/global/utils/smart-ssh/go.mod diff --git a/config/ansible/tasks/global/utils/smart-ssh/go.sum b/ansible/tasks/global/utils/smart-ssh/go.sum similarity index 100% rename from config/ansible/tasks/global/utils/smart-ssh/go.sum rename to ansible/tasks/global/utils/smart-ssh/go.sum diff --git a/config/ansible/tasks/global/utils/smart-ssh/smart-ssh.go b/ansible/tasks/global/utils/smart-ssh/smart-ssh.go similarity index 100% rename from config/ansible/tasks/global/utils/smart-ssh/smart-ssh.go rename to ansible/tasks/global/utils/smart-ssh/smart-ssh.go diff --git a/config/ansible/tasks/global/utils/vm-device b/ansible/tasks/global/utils/vm-device similarity index 100% rename from config/ansible/tasks/global/utils/vm-device rename to ansible/tasks/global/utils/vm-device diff --git a/config/ansible/tasks/global/wsl.yml b/ansible/tasks/global/wsl.yml similarity index 100% rename from config/ansible/tasks/global/wsl.yml rename to ansible/tasks/global/wsl.yml diff --git a/config/ansible/tasks/servers/borg-backup.yml b/ansible/tasks/servers/borg-backup.yml similarity index 100% rename from config/ansible/tasks/servers/borg-backup.yml rename to ansible/tasks/servers/borg-backup.yml diff --git a/config/ansible/tasks/servers/borg-local-sync.yml b/ansible/tasks/servers/borg-local-sync.yml similarity index 100% rename from config/ansible/tasks/servers/borg-local-sync.yml rename to ansible/tasks/servers/borg-local-sync.yml diff --git a/config/ansible/tasks/servers/dynamic-dns.yml b/ansible/tasks/servers/dynamic-dns.yml similarity index 96% rename from config/ansible/tasks/servers/dynamic-dns.yml rename to ansible/tasks/servers/dynamic-dns.yml index 7bfdc7d..95fabd5 100644 --- a/config/ansible/tasks/servers/dynamic-dns.yml +++ b/ansible/tasks/servers/dynamic-dns.yml @@ -83,6 +83,6 @@ - Manual run: sudo /usr/local/bin/dynamic-dns-update.sh - Domains: vleeuwen.me, mvl.sh, mennovanleeuwen.nl - when: inventory_hostname == 'mennos-desktop' + when: inventory_hostname == 'mennos-desktop' or inventory_hostname == 'mennos-vps' tags: - dynamic-dns diff --git a/config/ansible/tasks/servers/juicefs.yml b/ansible/tasks/servers/juicefs.yml similarity index 100% rename from config/ansible/tasks/servers/juicefs.yml rename to ansible/tasks/servers/juicefs.yml diff --git a/config/ansible/tasks/servers/server.yml b/ansible/tasks/servers/server.yml similarity index 100% rename from config/ansible/tasks/servers/server.yml rename to ansible/tasks/servers/server.yml diff --git a/config/ansible/tasks/servers/services/arr-stack/arr-stack.yml b/ansible/tasks/servers/services/arr-stack/arr-stack.yml similarity index 100% rename from config/ansible/tasks/servers/services/arr-stack/arr-stack.yml rename to ansible/tasks/servers/services/arr-stack/arr-stack.yml diff --git a/config/ansible/tasks/servers/services/arr-stack/docker-compose.yml.j2 b/ansible/tasks/servers/services/arr-stack/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/arr-stack/docker-compose.yml.j2 rename to ansible/tasks/servers/services/arr-stack/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/avorion/avorion.yml b/ansible/tasks/servers/services/avorion/avorion.yml similarity index 100% rename from config/ansible/tasks/servers/services/avorion/avorion.yml rename to ansible/tasks/servers/services/avorion/avorion.yml diff --git a/config/ansible/tasks/servers/services/avorion/docker-compose.yml.j2 b/ansible/tasks/servers/services/avorion/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/avorion/docker-compose.yml.j2 rename to ansible/tasks/servers/services/avorion/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/beszel/beszel.yml b/ansible/tasks/servers/services/beszel/beszel.yml similarity index 100% rename from config/ansible/tasks/servers/services/beszel/beszel.yml rename to ansible/tasks/servers/services/beszel/beszel.yml diff --git a/config/ansible/tasks/servers/services/beszel/docker-compose.yml.j2 b/ansible/tasks/servers/services/beszel/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/beszel/docker-compose.yml.j2 rename to ansible/tasks/servers/services/beszel/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/caddy/Caddyfile.j2 b/ansible/tasks/servers/services/caddy/Caddyfile.j2 similarity index 100% rename from config/ansible/tasks/servers/services/caddy/Caddyfile.j2 rename to ansible/tasks/servers/services/caddy/Caddyfile.j2 diff --git a/config/ansible/tasks/servers/services/caddy/Dockerfile b/ansible/tasks/servers/services/caddy/Dockerfile similarity index 100% rename from config/ansible/tasks/servers/services/caddy/Dockerfile rename to ansible/tasks/servers/services/caddy/Dockerfile diff --git a/config/ansible/tasks/servers/services/caddy/caddy.yml b/ansible/tasks/servers/services/caddy/caddy.yml similarity index 100% rename from config/ansible/tasks/servers/services/caddy/caddy.yml rename to ansible/tasks/servers/services/caddy/caddy.yml diff --git a/config/ansible/tasks/servers/services/caddy/country-blocking.yml b/ansible/tasks/servers/services/caddy/country-blocking.yml similarity index 100% rename from config/ansible/tasks/servers/services/caddy/country-blocking.yml rename to ansible/tasks/servers/services/caddy/country-blocking.yml diff --git a/config/ansible/tasks/servers/services/caddy/docker-compose.yml.j2 b/ansible/tasks/servers/services/caddy/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/caddy/docker-compose.yml.j2 rename to ansible/tasks/servers/services/caddy/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/dashy/conf.yml.j2 b/ansible/tasks/servers/services/dashy/conf.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/dashy/conf.yml.j2 rename to ansible/tasks/servers/services/dashy/conf.yml.j2 diff --git a/config/ansible/tasks/servers/services/dashy/dashy.yml b/ansible/tasks/servers/services/dashy/dashy.yml similarity index 100% rename from config/ansible/tasks/servers/services/dashy/dashy.yml rename to ansible/tasks/servers/services/dashy/dashy.yml diff --git a/config/ansible/tasks/servers/services/dashy/docker-compose.yml.j2 b/ansible/tasks/servers/services/dashy/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/dashy/docker-compose.yml.j2 rename to ansible/tasks/servers/services/dashy/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/downloaders/docker-compose.yml.j2 b/ansible/tasks/servers/services/downloaders/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/downloaders/docker-compose.yml.j2 rename to ansible/tasks/servers/services/downloaders/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/downloaders/downloaders.yml b/ansible/tasks/servers/services/downloaders/downloaders.yml similarity index 100% rename from config/ansible/tasks/servers/services/downloaders/downloaders.yml rename to ansible/tasks/servers/services/downloaders/downloaders.yml diff --git a/config/ansible/tasks/servers/services/dozzle/docker-compose.yml.j2 b/ansible/tasks/servers/services/dozzle/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/dozzle/docker-compose.yml.j2 rename to ansible/tasks/servers/services/dozzle/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/dozzle/dozzle.yml b/ansible/tasks/servers/services/dozzle/dozzle.yml similarity index 100% rename from config/ansible/tasks/servers/services/dozzle/dozzle.yml rename to ansible/tasks/servers/services/dozzle/dozzle.yml diff --git a/config/ansible/tasks/servers/services/echoip/docker-compose.yml.j2 b/ansible/tasks/servers/services/echoip/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/echoip/docker-compose.yml.j2 rename to ansible/tasks/servers/services/echoip/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/echoip/echoip.yml b/ansible/tasks/servers/services/echoip/echoip.yml similarity index 100% rename from config/ansible/tasks/servers/services/echoip/echoip.yml rename to ansible/tasks/servers/services/echoip/echoip.yml diff --git a/config/ansible/tasks/servers/services/factorio/docker-compose.yml.j2 b/ansible/tasks/servers/services/factorio/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/factorio/docker-compose.yml.j2 rename to ansible/tasks/servers/services/factorio/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/factorio/factorio.yml b/ansible/tasks/servers/services/factorio/factorio.yml similarity index 100% rename from config/ansible/tasks/servers/services/factorio/factorio.yml rename to ansible/tasks/servers/services/factorio/factorio.yml diff --git a/config/ansible/tasks/servers/services/gitea/act-runner-config.yaml.j2 b/ansible/tasks/servers/services/gitea/act-runner-config.yaml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/gitea/act-runner-config.yaml.j2 rename to ansible/tasks/servers/services/gitea/act-runner-config.yaml.j2 diff --git a/config/ansible/tasks/servers/services/gitea/docker-compose.yml.j2 b/ansible/tasks/servers/services/gitea/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/gitea/docker-compose.yml.j2 rename to ansible/tasks/servers/services/gitea/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/gitea/gitea.yml b/ansible/tasks/servers/services/gitea/gitea.yml similarity index 100% rename from config/ansible/tasks/servers/services/gitea/gitea.yml rename to ansible/tasks/servers/services/gitea/gitea.yml diff --git a/config/ansible/tasks/servers/services/golink/docker-compose.yml.j2 b/ansible/tasks/servers/services/golink/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/golink/docker-compose.yml.j2 rename to ansible/tasks/servers/services/golink/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/golink/golink.yml b/ansible/tasks/servers/services/golink/golink.yml similarity index 100% rename from config/ansible/tasks/servers/services/golink/golink.yml rename to ansible/tasks/servers/services/golink/golink.yml diff --git a/config/ansible/tasks/servers/services/home-assistant/docker-compose.yml.j2 b/ansible/tasks/servers/services/home-assistant/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/home-assistant/docker-compose.yml.j2 rename to ansible/tasks/servers/services/home-assistant/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/home-assistant/home-assistant.yml b/ansible/tasks/servers/services/home-assistant/home-assistant.yml similarity index 100% rename from config/ansible/tasks/servers/services/home-assistant/home-assistant.yml rename to ansible/tasks/servers/services/home-assistant/home-assistant.yml diff --git a/config/ansible/tasks/servers/services/immich/docker-compose.yml.j2 b/ansible/tasks/servers/services/immich/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/immich/docker-compose.yml.j2 rename to ansible/tasks/servers/services/immich/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/immich/dotenv.j2 b/ansible/tasks/servers/services/immich/dotenv.j2 similarity index 100% rename from config/ansible/tasks/servers/services/immich/dotenv.j2 rename to ansible/tasks/servers/services/immich/dotenv.j2 diff --git a/config/ansible/tasks/servers/services/immich/immich.yml b/ansible/tasks/servers/services/immich/immich.yml similarity index 100% rename from config/ansible/tasks/servers/services/immich/immich.yml rename to ansible/tasks/servers/services/immich/immich.yml diff --git a/config/ansible/tasks/servers/services/nextcloud/docker-compose.yml.j2 b/ansible/tasks/servers/services/nextcloud/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/nextcloud/docker-compose.yml.j2 rename to ansible/tasks/servers/services/nextcloud/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/nextcloud/nextcloud.yml b/ansible/tasks/servers/services/nextcloud/nextcloud.yml similarity index 100% rename from config/ansible/tasks/servers/services/nextcloud/nextcloud.yml rename to ansible/tasks/servers/services/nextcloud/nextcloud.yml diff --git a/config/ansible/tasks/servers/services/plex/docker-compose.yml.j2 b/ansible/tasks/servers/services/plex/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/plex/docker-compose.yml.j2 rename to ansible/tasks/servers/services/plex/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/plex/plex.yml b/ansible/tasks/servers/services/plex/plex.yml similarity index 100% rename from config/ansible/tasks/servers/services/plex/plex.yml rename to ansible/tasks/servers/services/plex/plex.yml diff --git a/config/ansible/tasks/servers/services/privatebin/conf.php.j2 b/ansible/tasks/servers/services/privatebin/conf.php.j2 similarity index 100% rename from config/ansible/tasks/servers/services/privatebin/conf.php.j2 rename to ansible/tasks/servers/services/privatebin/conf.php.j2 diff --git a/config/ansible/tasks/servers/services/privatebin/docker-compose.yml.j2 b/ansible/tasks/servers/services/privatebin/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/privatebin/docker-compose.yml.j2 rename to ansible/tasks/servers/services/privatebin/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/privatebin/privatebin.yml b/ansible/tasks/servers/services/privatebin/privatebin.yml similarity index 100% rename from config/ansible/tasks/servers/services/privatebin/privatebin.yml rename to ansible/tasks/servers/services/privatebin/privatebin.yml diff --git a/config/ansible/tasks/servers/services/redis/docker-compose.yml.j2 b/ansible/tasks/servers/services/redis/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/redis/docker-compose.yml.j2 rename to ansible/tasks/servers/services/redis/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/redis/redis.yml b/ansible/tasks/servers/services/redis/redis.yml similarity index 100% rename from config/ansible/tasks/servers/services/redis/redis.yml rename to ansible/tasks/servers/services/redis/redis.yml diff --git a/config/ansible/tasks/servers/services/service_cleanup.yml b/ansible/tasks/servers/services/service_cleanup.yml similarity index 100% rename from config/ansible/tasks/servers/services/service_cleanup.yml rename to ansible/tasks/servers/services/service_cleanup.yml diff --git a/config/ansible/tasks/servers/services/stash/docker-compose.yml.j2 b/ansible/tasks/servers/services/stash/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/stash/docker-compose.yml.j2 rename to ansible/tasks/servers/services/stash/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/stash/stash.yml b/ansible/tasks/servers/services/stash/stash.yml similarity index 100% rename from config/ansible/tasks/servers/services/stash/stash.yml rename to ansible/tasks/servers/services/stash/stash.yml diff --git a/config/ansible/tasks/servers/services/tautulli/docker-compose.yml.j2 b/ansible/tasks/servers/services/tautulli/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/tautulli/docker-compose.yml.j2 rename to ansible/tasks/servers/services/tautulli/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/tautulli/tautulli.yml b/ansible/tasks/servers/services/tautulli/tautulli.yml similarity index 100% rename from config/ansible/tasks/servers/services/tautulli/tautulli.yml rename to ansible/tasks/servers/services/tautulli/tautulli.yml diff --git a/config/ansible/tasks/servers/services/unifi-network-application/docker-compose.yml.j2 b/ansible/tasks/servers/services/unifi-network-application/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/unifi-network-application/docker-compose.yml.j2 rename to ansible/tasks/servers/services/unifi-network-application/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/unifi-network-application/unifi-network-application.yml b/ansible/tasks/servers/services/unifi-network-application/unifi-network-application.yml similarity index 100% rename from config/ansible/tasks/servers/services/unifi-network-application/unifi-network-application.yml rename to ansible/tasks/servers/services/unifi-network-application/unifi-network-application.yml diff --git a/config/ansible/tasks/servers/services/wireguard/docker-compose.yml.j2 b/ansible/tasks/servers/services/wireguard/docker-compose.yml.j2 similarity index 100% rename from config/ansible/tasks/servers/services/wireguard/docker-compose.yml.j2 rename to ansible/tasks/servers/services/wireguard/docker-compose.yml.j2 diff --git a/config/ansible/tasks/servers/services/wireguard/wireguard.yml b/ansible/tasks/servers/services/wireguard/wireguard.yml similarity index 100% rename from config/ansible/tasks/servers/services/wireguard/wireguard.yml rename to ansible/tasks/servers/services/wireguard/wireguard.yml diff --git a/config/ansible/tasks/workstations/1password-browsers.yml b/ansible/tasks/workstations/1password-browsers.yml similarity index 100% rename from config/ansible/tasks/workstations/1password-browsers.yml rename to ansible/tasks/workstations/1password-browsers.yml diff --git a/config/ansible/tasks/workstations/autostart.yml b/ansible/tasks/workstations/autostart.yml similarity index 100% rename from config/ansible/tasks/workstations/autostart.yml rename to ansible/tasks/workstations/autostart.yml diff --git a/config/ansible/tasks/workstations/cliphist.yml b/ansible/tasks/workstations/cliphist.yml similarity index 100% rename from config/ansible/tasks/workstations/cliphist.yml rename to ansible/tasks/workstations/cliphist.yml diff --git a/config/ansible/tasks/workstations/firefox-apt.yml b/ansible/tasks/workstations/firefox-apt.yml similarity index 100% rename from config/ansible/tasks/workstations/firefox-apt.yml rename to ansible/tasks/workstations/firefox-apt.yml diff --git a/config/ansible/tasks/workstations/flatpaks.yml b/ansible/tasks/workstations/flatpaks.yml similarity index 100% rename from config/ansible/tasks/workstations/flatpaks.yml rename to ansible/tasks/workstations/flatpaks.yml diff --git a/config/ansible/tasks/workstations/gnome-extensions.yml b/ansible/tasks/workstations/gnome-extensions.yml similarity index 100% rename from config/ansible/tasks/workstations/gnome-extensions.yml rename to ansible/tasks/workstations/gnome-extensions.yml diff --git a/config/ansible/tasks/workstations/gnome-extensions/manage_gnome_extension.yml b/ansible/tasks/workstations/gnome-extensions/manage_gnome_extension.yml similarity index 100% rename from config/ansible/tasks/workstations/gnome-extensions/manage_gnome_extension.yml rename to ansible/tasks/workstations/gnome-extensions/manage_gnome_extension.yml diff --git a/config/ansible/tasks/workstations/gnome-extensions/pano.yml b/ansible/tasks/workstations/gnome-extensions/pano.yml similarity index 100% rename from config/ansible/tasks/workstations/gnome-extensions/pano.yml rename to ansible/tasks/workstations/gnome-extensions/pano.yml diff --git a/config/ansible/tasks/workstations/gnome-extensions/quick-settings.yml b/ansible/tasks/workstations/gnome-extensions/quick-settings.yml similarity index 100% rename from config/ansible/tasks/workstations/gnome-extensions/quick-settings.yml rename to ansible/tasks/workstations/gnome-extensions/quick-settings.yml diff --git a/config/ansible/tasks/workstations/gnome-extensions/tilingshell.yml b/ansible/tasks/workstations/gnome-extensions/tilingshell.yml similarity index 100% rename from config/ansible/tasks/workstations/gnome-extensions/tilingshell.yml rename to ansible/tasks/workstations/gnome-extensions/tilingshell.yml diff --git a/config/ansible/tasks/workstations/purge-libreoffice.yml b/ansible/tasks/workstations/purge-libreoffice.yml similarity index 100% rename from config/ansible/tasks/workstations/purge-libreoffice.yml rename to ansible/tasks/workstations/purge-libreoffice.yml diff --git a/config/ansible/tasks/workstations/snaps.yml b/ansible/tasks/workstations/snaps.yml similarity index 100% rename from config/ansible/tasks/workstations/snaps.yml rename to ansible/tasks/workstations/snaps.yml diff --git a/config/ansible/tasks/workstations/symlinks.yml b/ansible/tasks/workstations/symlinks.yml similarity index 90% rename from config/ansible/tasks/workstations/symlinks.yml rename to ansible/tasks/workstations/symlinks.yml index a5dd1dd..e76ee80 100644 --- a/config/ansible/tasks/workstations/symlinks.yml +++ b/ansible/tasks/workstations/symlinks.yml @@ -15,10 +15,6 @@ dest: "~/.config/zed/settings.json", } - { src: "$DOTFILES_PATH/config/autostart", dest: "~/.config/autostart" } - - { - src: "$DOTFILES_PATH/config/nextcloud.cfg", - dest: "~/.config/Nextcloud/nextcloud.cfg", - } - name: Ensure parent directories for workstation symlinks exist ansible.builtin.file: diff --git a/config/ansible/tasks/workstations/workstation.yml b/ansible/tasks/workstations/workstation.yml similarity index 100% rename from config/ansible/tasks/workstations/workstation.yml rename to ansible/tasks/workstations/workstation.yml diff --git a/config/ansible/tasks/workstations/zen-browser.yml b/ansible/tasks/workstations/zen-browser.yml similarity index 100% rename from config/ansible/tasks/workstations/zen-browser.yml rename to ansible/tasks/workstations/zen-browser.yml diff --git a/config/ansible/templates/borg-backup.service.j2 b/ansible/templates/borg-backup.service.j2 similarity index 100% rename from config/ansible/templates/borg-backup.service.j2 rename to ansible/templates/borg-backup.service.j2 diff --git a/config/ansible/templates/borg-backup.sh.j2 b/ansible/templates/borg-backup.sh.j2 similarity index 100% rename from config/ansible/templates/borg-backup.sh.j2 rename to ansible/templates/borg-backup.sh.j2 diff --git a/config/ansible/templates/borg-backup.timer.j2 b/ansible/templates/borg-backup.timer.j2 similarity index 100% rename from config/ansible/templates/borg-backup.timer.j2 rename to ansible/templates/borg-backup.timer.j2 diff --git a/config/ansible/templates/borg-local-sync.service.j2 b/ansible/templates/borg-local-sync.service.j2 similarity index 100% rename from config/ansible/templates/borg-local-sync.service.j2 rename to ansible/templates/borg-local-sync.service.j2 diff --git a/config/ansible/templates/borg-local-sync.sh.j2 b/ansible/templates/borg-local-sync.sh.j2 similarity index 100% rename from config/ansible/templates/borg-local-sync.sh.j2 rename to ansible/templates/borg-local-sync.sh.j2 diff --git a/config/ansible/templates/borg-local-sync.timer.j2 b/ansible/templates/borg-local-sync.timer.j2 similarity index 100% rename from config/ansible/templates/borg-local-sync.timer.j2 rename to ansible/templates/borg-local-sync.timer.j2 diff --git a/config/ansible/templates/dynamic-dns-systemd.env.j2 b/ansible/templates/dynamic-dns-systemd.env.j2 similarity index 100% rename from config/ansible/templates/dynamic-dns-systemd.env.j2 rename to ansible/templates/dynamic-dns-systemd.env.j2 diff --git a/config/ansible/templates/juicefs.service.j2 b/ansible/templates/juicefs.service.j2 similarity index 100% rename from config/ansible/templates/juicefs.service.j2 rename to ansible/templates/juicefs.service.j2 diff --git a/config/ansible/templates/sshd_config.j2 b/ansible/templates/sshd_config.j2 similarity index 100% rename from config/ansible/templates/sshd_config.j2 rename to ansible/templates/sshd_config.j2 diff --git a/bin/actions/update.py b/bin/actions/update.py index 42d5544..efc0bec 100755 --- a/bin/actions/update.py +++ b/bin/actions/update.py @@ -290,15 +290,11 @@ def main(): # Set cores and jobs based on full-speed flag if args.full_speed: import multiprocessing - cores = jobs = multiprocessing.cpu_count() else: cores = 8 jobs = 1 - printfe("cyan", f"Limiting to {cores} cores with {jobs} jobs.") - - # Home Manager update if args.ha: dotfiles_path = os.environ.get( "DOTFILES_PATH", os.path.expanduser("~/.dotfiles") @@ -306,7 +302,7 @@ def main(): hostname = os.uname().nodename printfe("cyan", "Updating Home Manager flake...") - os.chdir(f"{dotfiles_path}/config/home-manager") + os.chdir(f"{dotfiles_path}") status, output = run_command( [ "nix", @@ -326,11 +322,6 @@ def main(): # Check if home-manager is installed status, _ = run_command(["which", "home-manager"], shell=False) if status: - printfe("cyan", "Cleaning old backup files...") - backup_file = os.path.expanduser("~/.config/mimeapps.list.backup") - if os.path.exists(backup_file): - os.remove(backup_file) - printfe("cyan", "Upgrading Home Manager packages...") env = os.environ.copy() env["NIXPKGS_ALLOW_UNFREE"] = "1" @@ -377,12 +368,12 @@ def main(): return 1 printfe("cyan", "Running Ansible playbook...") - playbook_path = f"{dotfiles_path}/config/ansible/playbook.yml" + playbook_path = f"{dotfiles_path}/ansible/playbook.yml" ansible_cmd = [ "/usr/bin/env", "ansible-playbook", "-i", - f"{dotfiles_path}/config/ansible/inventory.ini", + f"{dotfiles_path}/ansible/inventory.ini", playbook_path, "--extra-vars", f"hostname={hostname}", diff --git a/cloud-config b/cloud-config deleted file mode 100644 index 3f08b70..0000000 --- a/cloud-config +++ /dev/null @@ -1,22 +0,0 @@ -#cloud-config - -# Create a user named menno with sudo privileges -users: - - name: menno - sudo: ALL=(ALL) NOPASSWD:ALL - groups: sudo, adm - shell: /bin/bash - ssh_authorized_keys: - - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr menno_1password - - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD menno_fallback - -# Update package lists and install latest updates -package_update: true -package_upgrade: true - -# Configure system to preserve hostname -preserve_hostname: false -hostname: mennos-vm - -# Final message when cloud-init completes -final_message: "Cloud-init has finished setting up the system with user 'menno'. System boot completed after $UPTIME seconds." diff --git a/config/ansible/tasks/global/symlinks.yml b/config/ansible/tasks/global/symlinks.yml deleted file mode 100644 index 9b7b22b..0000000 --- a/config/ansible/tasks/global/symlinks.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -- name: Server setup - block: - - name: Set user home directory - ansible.builtin.set_fact: - user_home: "{{ ansible_env.HOME if ansible_user_id == 'root' else lookup('env', 'HOME') }}" - - - name: Create basic symlinks - ansible.builtin.file: - src: "{{ item.src | replace('~', user_home) | replace('$DOTFILES_PATH', lookup('env', 'DOTFILES_PATH')) }}" - dest: "{{ item.dest | replace('~', user_home) }}" - state: link - force: true - follow: false - loop: - - { - src: "$DOTFILES_PATH/config/home-manager", - dest: "~/.config/home-manager", - } - - { src: "$DOTFILES_PATH/config/ssh/config", dest: "~/.ssh/config" } - - { - src: "$DOTFILES_PATH/config/starship.toml", - dest: "~/.config/starship.toml", - } - - { src: "$DOTFILES_PATH/.bashrc", dest: "~/.bashrc.extra" } - - - name: Create gitconfig symlink - ansible.builtin.file: - src: "{{ gitconfig_mapping[inventory_hostname] | replace('~', user_home) | replace('$DOTFILES_PATH', lookup('env', 'DOTFILES_PATH')) }}" - dest: "{{ user_home }}/.gitconfig" - state: link - force: true - follow: false - vars: - gitconfig_mapping: - mennos-desktop: "$DOTFILES_PATH/config/git/gitconfig.linux" - mennos-laptop: "$DOTFILES_PATH/config/git/gitconfig.linux" - mennos-server: "$DOTFILES_PATH/config/git/gitconfig.mennos-server" - mennos-vm: "$DOTFILES_PATH/config/git/gitconfig.mennos-server" - tags: - - symlinks diff --git a/config/autostart/1password.desktop b/config/autostart/1password.desktop deleted file mode 100755 index 7747433..0000000 --- a/config/autostart/1password.desktop +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env xdg-open -[Desktop Entry] -Name=1Password -Exec=/home/menno/.config/autostart/1password.ignition_delay.sh -Terminal=false -Type=Application -Icon=1password -StartupWMClass=1Password -Comment=Password manager and secure wallet -MimeType=x-scheme-handler/onepassword;x-scheme-handler/onepassword8; -Categories=Office; -Hidden=false diff --git a/config/autostart/1password.ignition_delay.sh b/config/autostart/1password.ignition_delay.sh deleted file mode 100755 index 75e278d..0000000 --- a/config/autostart/1password.ignition_delay.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -sleep 3 && /opt/1Password/1password %U diff --git a/config/autostart/Nextcloud.desktop b/config/autostart/Nextcloud.desktop deleted file mode 100755 index 219765f..0000000 --- a/config/autostart/Nextcloud.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Name=Nextcloud -GenericName=File Synchronizer -Exec="/usr/bin/nextcloud" --background -Terminal=false -Icon=Nextcloud -Categories=Network -Type=Application -StartupNotify=false -X-GNOME-Autostart-enabled=true -X-GNOME-Autostart-Delay=10 diff --git a/config/autostart/io.github.mrvladus.List.desktop b/config/autostart/io.github.mrvladus.List.desktop deleted file mode 100755 index 258c71f..0000000 --- a/config/autostart/io.github.mrvladus.List.desktop +++ /dev/null @@ -1,6 +0,0 @@ -[Desktop Entry] -Type=Application -Name=io.github.mrvladus.List -X-XDP-Autostart=io.github.mrvladus.List -Exec=flatpak run --command=errands io.github.mrvladus.List --gapplication-service -X-Flatpak=io.github.mrvladus.List diff --git a/config/autostart/jetbrains-toolbox.desktop b/config/autostart/jetbrains-toolbox.desktop deleted file mode 100755 index 3357e67..0000000 --- a/config/autostart/jetbrains-toolbox.desktop +++ /dev/null @@ -1,15 +0,0 @@ -[Desktop Entry] -Icon=/home/menno/.jetbrains-toolbox/toolbox.svg -Exec=/home/menno/.jetbrains-toolbox/jetbrains-toolbox --minimize -Version=1.0 -Type=Application -Categories=Development -Name=JetBrains Toolbox -StartupWMClass=jetbrains-toolbox -Terminal=false -MimeType=x-scheme-handler/jetbrains; -X-GNOME-Autostart-enabled=true -StartupNotify=false -X-GNOME-Autostart-Delay=10 -X-MATE-Autostart-Delay=10 -X-KDE-autostart-after=panel diff --git a/config/autostart/mimeinfo.cache b/config/autostart/mimeinfo.cache deleted file mode 100755 index 37c6411..0000000 --- a/config/autostart/mimeinfo.cache +++ /dev/null @@ -1,11 +0,0 @@ -[MIME Cache] -x-scheme-handler/discord=io.github.equicord.equibop.desktop; -x-scheme-handler/jetbrains=jetbrains-toolbox.desktop; -x-scheme-handler/onepassword=1password.desktop; -x-scheme-handler/onepassword8=1password.desktop; -x-scheme-handler/sgnl=org.signal.Signal.desktop; -x-scheme-handler/signalcaptcha=org.signal.Signal.desktop; -x-scheme-handler/spotify=com.spotify.Client.desktop; -x-scheme-handler/tg=org.telegram.desktop.desktop; -x-scheme-handler/tonsite=org.telegram.desktop.desktop; -x-scheme-handler/whatsapp=com.rtosta.zapzap.desktop; diff --git a/config/autostart/org.fkoehler.KTailctl.desktop b/config/autostart/org.fkoehler.KTailctl.desktop deleted file mode 100755 index 4690af0..0000000 --- a/config/autostart/org.fkoehler.KTailctl.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Name=KTailctl -Comment=GUI for tailscale on the KDE Plasma desktop -Version=1.5 -Exec=/home/menno/.config/autostart/org.fkoehler.KTailctl.ignition_delay.sh -Icon=org.fkoehler.KTailctl -Type=Application -Terminal=false -Categories=Qt;KDE;System; -X-Flatpak=org.fkoehler.KTailctl -Hidden=false diff --git a/config/autostart/org.fkoehler.KTailctl.ignition_delay.sh b/config/autostart/org.fkoehler.KTailctl.ignition_delay.sh deleted file mode 100755 index ee33c27..0000000 --- a/config/autostart/org.fkoehler.KTailctl.ignition_delay.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -sleep 5 && /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=ktailctl org.fkoehler.KTailctl diff --git a/config/autostart/org.telegram.desktop.desktop b/config/autostart/org.telegram.desktop.desktop deleted file mode 100755 index f5abf17..0000000 --- a/config/autostart/org.telegram.desktop.desktop +++ /dev/null @@ -1,23 +0,0 @@ -[Desktop Entry] -Name=Telegram -Comment=New era of messaging -TryExec=Telegram -Exec=/home/menno/.config/autostart/org.telegram.desktop.ignition_delay.sh -Icon=org.telegram.desktop -Terminal=false -StartupWMClass=TelegramDesktop -Type=Application -Categories=Chat;Network;InstantMessaging;Qt; -MimeType=x-scheme-handler/tg;x-scheme-handler/tonsite; -Keywords=tg;chat;im;messaging;messenger;sms;tdesktop; -Actions=quit; -DBusActivatable=false -SingleMainWindow=true -X-GNOME-UsesNotifications=true -X-GNOME-SingleWindow=true -Hidden=false - -[Desktop Action quit] -Exec=Telegram -quit -Name=Quit Telegram -Icon=application-exit diff --git a/config/autostart/org.telegram.desktop.ignition_delay.sh b/config/autostart/org.telegram.desktop.ignition_delay.sh deleted file mode 100755 index 59667f5..0000000 --- a/config/autostart/org.telegram.desktop.ignition_delay.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -sleep 2 && Telegram -- %u diff --git a/config/autostart/org.telegram.ignition_delay.sh.desktop b/config/autostart/org.telegram.ignition_delay.sh.desktop deleted file mode 100755 index ceb25b4..0000000 --- a/config/autostart/org.telegram.ignition_delay.sh.desktop +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -sleep 1 && /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=telegram-desktop --file-forwarding org.telegram.desktop -- @@u %u @@ diff --git a/config/autostart/signal-desktop.desktop b/config/autostart/signal-desktop.desktop deleted file mode 100755 index c9d39f1..0000000 --- a/config/autostart/signal-desktop.desktop +++ /dev/null @@ -1,14 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Signal -Comment=Signal - Private Messenger -Comment[de]=Signal - Sicherer Messenger -Icon=signal-desktop -Exec=/home/menno/.config/autostart/signal-desktop.ignition_delay.sh -Terminal=false -Categories=Network;InstantMessaging; -StartupWMClass=signal -MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha; -Keywords=sgnl;chat;im;messaging;messenger;security;privat; -X-GNOME-UsesNotifications=true -Hidden=false diff --git a/config/autostart/signal-desktop.ignition_delay.sh b/config/autostart/signal-desktop.ignition_delay.sh deleted file mode 100755 index 05a765b..0000000 --- a/config/autostart/signal-desktop.ignition_delay.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -sleep 2 && signal-desktop -- %u diff --git a/config/autostart/steam.desktop b/config/autostart/steam.desktop deleted file mode 100755 index 3e40b01..0000000 --- a/config/autostart/steam.desktop +++ /dev/null @@ -1,283 +0,0 @@ -[Desktop Entry] -Name=Steam -Comment=Application for managing and playing games on Steam -Comment[pt_BR]=Aplicativo para jogar e gerenciar jogos no Steam -Comment[bg]=Приложение за ръководене и пускане на игри в Steam -Comment[cs]=Aplikace pro spravování a hraní her ve službě Steam -Comment[da]=Applikation til at håndtere og spille spil på Steam -Comment[nl]=Applicatie voor het beheer en het spelen van games op Steam -Comment[fi]=Steamin pelien hallintaan ja pelaamiseen tarkoitettu sovellus -Comment[fr]=Application de gestion et d'utilisation des jeux sur Steam -Comment[de]=Anwendung zum Verwalten und Spielen von Spielen auf Steam -Comment[el]=Εφαρμογή διαχείρισης παιχνιδιών στο Steam -Comment[hu]=Alkalmazás a Steames játékok futtatásához és kezeléséhez -Comment[it]=Applicazione per la gestione e l'esecuzione di giochi su Steam -Comment[ja]=Steam 上でゲームを管理&プレイするためのアプリケーション -Comment[ko]=Steam에 있는 게임을 관리하고 플레이할 수 있는 응용 프로그램 -Comment[no]=Program for å administrere og spille spill på Steam -Comment[pt_PT]=Aplicação para organizar e executar jogos no Steam -Comment[pl]=Aplikacja do zarządzania i uruchamiania gier na platformie Steam -Comment[ro]=Aplicație pentru administrarea și jucatul jocurilor pe Steam -Comment[ru]=Приложение для игр и управления играми в Steam -Comment[es]=Aplicación para administrar y ejecutar juegos en Steam -Comment[sv]=Ett program för att hantera samt spela spel på Steam -Comment[zh_CN]=管理和进行 Steam 游戏的应用程序 -Comment[zh_TW]=管理並執行 Steam 遊戲的應用程式 -Comment[th]=โปรแกรมสำหรับจัดการและเล่นเกมบน Steam -Comment[tr]=Steam üzerinden oyun oynama ve düzenleme uygulaması -Comment[uk]=Програма для керування іграми та запуску ігор у Steam -Comment[vi]=Ứng dụng để quản lý và chơi trò chơi trên Steam -Exec=/home/menno/.config/autostart/steam.ignition_delay.sh -Icon=steam -Terminal=false -Type=Application -Categories=Network;FileTransfer;Game; -MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink; -Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends; -PrefersNonDefaultGPU=true -X-KDE-RunOnDiscreteGpu=true -Hidden=false - -[Desktop Action Store] -Name=Store -Name[pt_BR]=Loja -Name[bg]=Магазин -Name[cs]=Obchod -Name[da]=Butik -Name[nl]=Winkel -Name[fi]=Kauppa -Name[fr]=Magasin -Name[de]=Shop -Name[el]=ΚΑΤΑΣΤΗΜΑ -Name[hu]=Áruház -Name[it]=Negozio -Name[ja]=ストア -Name[ko]=상점 -Name[no]=Butikk -Name[pt_PT]=Loja -Name[pl]=Sklep -Name[ro]=Magazin -Name[ru]=Магазин -Name[es]=Tienda -Name[sv]=Butik -Name[zh_CN]=商店 -Name[zh_TW]=商店 -Name[th]=ร้านค้า -Name[tr]=Mağaza -Name[uk]=Крамниця -Name[vi]=Cửa hàng -Exec=steam steam://store - -[Desktop Action Community] -Name=Community -Name[pt_BR]=Comunidade -Name[bg]=Общност -Name[cs]=Komunita -Name[da]=Fællesskab -Name[nl]=Community -Name[fi]=Yhteisö -Name[fr]=Communauté -Name[de]=Community -Name[el]=Κοινότητα -Name[hu]=Közösség -Name[it]=Comunità -Name[ja]=コミュニティ -Name[ko]=커뮤니티 -Name[no]=Samfunn -Name[pt_PT]=Comunidade -Name[pl]=Społeczność -Name[ro]=Comunitate -Name[ru]=Сообщество -Name[es]=Comunidad -Name[sv]=Gemenskap -Name[zh_CN]=社区 -Name[zh_TW]=社群 -Name[th]=ชุมชน -Name[tr]=Topluluk -Name[uk]=Спільнота -Name[vi]=Cộng đồng -Exec=steam steam://url/SteamIDControlPage - -[Desktop Action Library] -Name=Library -Name[pt_BR]=Biblioteca -Name[bg]=Библиотека -Name[cs]=Knihovna -Name[da]=Bibliotek -Name[nl]=Bibliotheek -Name[fi]=Kokoelma -Name[fr]=Bibliothèque -Name[de]=Bibliothek -Name[el]=Συλλογή -Name[hu]=Könyvtár -Name[it]=Libreria -Name[ja]=ライブラリ -Name[ko]=라이브러리 -Name[no]=Bibliotek -Name[pt_PT]=Biblioteca -Name[pl]=Biblioteka -Name[ro]=Colecţie -Name[ru]=Библиотека -Name[es]=Biblioteca -Name[sv]=Bibliotek -Name[zh_CN]=库 -Name[zh_TW]=收藏庫 -Name[th]=คลัง -Name[tr]=Kütüphane -Name[uk]=Бібліотека -Name[vi]=Thư viện -Exec=steam steam://open/games - -[Desktop Action Servers] -Name=Servers -Name[pt_BR]=Servidores -Name[bg]=Сървъри -Name[cs]=Servery -Name[da]=Servere -Name[nl]=Servers -Name[fi]=Palvelimet -Name[fr]=Serveurs -Name[de]=Server -Name[el]=Διακομιστές -Name[hu]=Szerverek -Name[it]=Server -Name[ja]=サーバー -Name[ko]=서버 -Name[no]=Tjenere -Name[pt_PT]=Servidores -Name[pl]=Serwery -Name[ro]=Servere -Name[ru]=Серверы -Name[es]=Servidores -Name[sv]=Servrar -Name[zh_CN]=服务器 -Name[zh_TW]=伺服器 -Name[th]=เซิร์ฟเวอร์ -Name[tr]=Sunucular -Name[uk]=Сервери -Name[vi]=Máy chủ -Exec=steam steam://open/servers - -[Desktop Action Screenshots] -Name=Screenshots -Name[pt_BR]=Capturas de tela -Name[bg]=Снимки -Name[cs]=Snímky obrazovky -Name[da]=Skærmbilleder -Name[nl]=Screenshots -Name[fi]=Kuvankaappaukset -Name[fr]=Captures d'écran -Name[de]=Screenshots -Name[el]=Φωτογραφίες -Name[hu]=Képernyőmentések -Name[it]=Screenshot -Name[ja]=スクリーンショット -Name[ko]=스크린샷 -Name[no]=Skjermbilder -Name[pt_PT]=Capturas de ecrã -Name[pl]=Zrzuty ekranu -Name[ro]=Capturi de ecran -Name[ru]=Скриншоты -Name[es]=Capturas -Name[sv]=Skärmdumpar -Name[zh_CN]=截图 -Name[zh_TW]=螢幕擷圖 -Name[th]=ภาพหน้าจอ -Name[tr]=Ekran Görüntüleri -Name[uk]=Скріншоти -Name[vi]=Ảnh chụp -Exec=steam steam://open/screenshots - -[Desktop Action News] -Name=News -Name[pt_BR]=Notícias -Name[bg]=Новини -Name[cs]=Zprávy -Name[da]=Nyheder -Name[nl]=Nieuws -Name[fi]=Uutiset -Name[fr]=Actualités -Name[de]=Neuigkeiten -Name[el]=Νέα -Name[hu]=Hírek -Name[it]=Notizie -Name[ja]=ニュース -Name[ko]=뉴스 -Name[no]=Nyheter -Name[pt_PT]=Novidades -Name[pl]=Aktualności -Name[ro]=Știri -Name[ru]=Новости -Name[es]=Noticias -Name[sv]=Nyheter -Name[zh_CN]=新闻 -Name[zh_TW]=新聞 -Name[th]=ข่าวสาร -Name[tr]=Haberler -Name[uk]=Новини -Name[vi]=Tin tức -Exec=steam steam://open/news - -[Desktop Action Settings] -Name=Settings -Name[pt_BR]=Configurações -Name[bg]=Настройки -Name[cs]=Nastavení -Name[da]=Indstillinger -Name[nl]=Instellingen -Name[fi]=Asetukset -Name[fr]=Paramètres -Name[de]=Einstellungen -Name[el]=Ρυθμίσεις -Name[hu]=Beállítások -Name[it]=Impostazioni -Name[ja]=設定 -Name[ko]=설정 -Name[no]=Innstillinger -Name[pt_PT]=Definições -Name[pl]=Ustawienia -Name[ro]=Setări -Name[ru]=Настройки -Name[es]=Parámetros -Name[sv]=Inställningar -Name[zh_CN]=设置 -Name[zh_TW]=設定 -Name[th]=การตั้งค่า -Name[tr]=Ayarlar -Name[uk]=Налаштування -Name[vi]=Thiết lập -Exec=steam steam://open/settings - -[Desktop Action BigPicture] -Name=Big Picture -Exec=steam steam://open/bigpicture - -[Desktop Action Friends] -Name=Friends -Name[pt_BR]=Amigos -Name[bg]=Приятели -Name[cs]=Přátelé -Name[da]=Venner -Name[nl]=Vrienden -Name[fi]=Kaverit -Name[fr]=Amis -Name[de]=Freunde -Name[el]=Φίλοι -Name[hu]=Barátok -Name[it]=Amici -Name[ja]=フレンド -Name[ko]=친구 -Name[no]=Venner -Name[pt_PT]=Amigos -Name[pl]=Znajomi -Name[ro]=Prieteni -Name[ru]=Друзья -Name[es]=Amigos -Name[sv]=Vänner -Name[zh_CN]=好友 -Name[zh_TW]=好友 -Name[th]=เพื่อน -Name[tr]=Arkadaşlar -Name[uk]=Друзі -Name[vi]=Bạn bè -Exec=steam steam://open/friends diff --git a/config/autostart/steam.ignition_delay.sh b/config/autostart/steam.ignition_delay.sh deleted file mode 100755 index 59ae7e0..0000000 --- a/config/autostart/steam.ignition_delay.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -sleep 10 && /usr/bin/steam %U diff --git a/config/bash.nix b/config/bash.nix new file mode 100644 index 0000000..da63707 --- /dev/null +++ b/config/bash.nix @@ -0,0 +1,271 @@ +{ config, pkgs, lib, ... }: + +{ + programs.bash = { + enable = true; + enableCompletion = true; + + # History configuration + historySize = 1000; + historyFileSize = 2000; + historyControl = [ "ignoredups" "ignorespace" ]; + + # Bash options and extra configuration + bashrcExtra = '' + # Set various bash options + shopt -s histappend + shopt -s checkwinsize + shopt -s cdspell + shopt -s cmdhist + shopt -s dotglob + shopt -s expand_aliases + shopt -s extglob + shopt -s histreedit + shopt -s histverify + shopt -s no_empty_cmd_completion + shopt -s nocaseglob + + # Detect distribution and set CGO_CFLAGS for Pop!_OS + if [ -f /etc/os-release ]; then + distro=$(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"') + if [[ "$distro" == *"Pop!_OS"* ]]; then + export CGO_CFLAGS="-I/usr/include" + fi + fi + + # WSL2 specific configuration + if [[ "$(uname -a)" == *"microsoft-standard-WSL2"* ]]; then + [ -f "${config.home.homeDirectory}/.agent-bridge.sh" ] && source "${config.home.homeDirectory}/.agent-bridge.sh" + alias winget='winget.exe' + fi + + # Set SSH_AUTH_SOCK to 1Password agent if not already set + if [ -z "$SSH_AUTH_SOCK" ]; then + export SSH_AUTH_SOCK=~/.1password/agent.sock + fi + + # Set Chrome executable to Brave if available + if command -v brave-browser &> /dev/null; then + export CHROME_EXECUTABLE=/usr/bin/brave-browser + fi + + # Source 1Password plugins if available + if [ -f ${config.home.homeDirectory}/.config/op/plugins.sh ]; then + source ${config.home.homeDirectory}/.config/op/plugins.sh + fi + + # Read 1Password service account token + if [ -f ~/.op_sat ]; then + export OP_SERVICE_ACCOUNT_TOKEN=$(cat ~/.op_sat) + + # Security checks for .op_sat file + if [ "$(stat -c %a ~/.op_sat)" != "600" ]; then + echo "WARNING: ~/.op_sat is not 0600, please fix this!" + fi + + if [ "$(stat -c %U ~/.op_sat)" != "$(whoami)" ]; then + echo "WARNING: ~/.op_sat is not owned by the current user, please fix this!" + fi + fi + + # Source nix home-manager session variables + if [ -f "${config.home.homeDirectory}/.nix-profile/etc/profile.d/hm-session-vars.sh" ]; then + . "${config.home.homeDirectory}/.nix-profile/etc/profile.d/hm-session-vars.sh" + fi + + # Source ble.sh if available and configure fzf history search + if [[ -f "${config.home.homeDirectory}/.nix-profile/share/blesh/ble.sh" ]]; then + source "${config.home.homeDirectory}/.nix-profile/share/blesh/ble.sh" + + # Custom function for fzf history search + function fzf_history_search() { + local selected + selected=$(history | fzf --tac --height=40% --layout=reverse --border --info=inline \ + --query="$READLINE_LINE" \ + --color 'fg:#ebdbb2,bg:#282828,hl:#fabd2f,fg+:#ebdbb2,bg+:#3c3836,hl+:#fabd2f' \ + --color 'info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54' \ + | sed 's/^ *[0-9]* *//') + if [[ -n "$selected" ]]; then + READLINE_LINE="$selected" + READLINE_POINT=$${#selected} + fi + ble-redraw-prompt + } + + # Bind Ctrl+R to custom fzf function + bind -x '"\C-r": fzf_history_search' + fi + + # Source local bashrc if it exists + if [ -f "${config.home.homeDirectory}/.bashrc.local" ]; then + source "${config.home.homeDirectory}/.bashrc.local" + fi + + # Display welcome message for interactive shells + if [ -t 1 ]; then + command -v helloworld &> /dev/null && helloworld + fi + ''; + + # Shell aliases + shellAliases = { + # Folder navigation + "." = "cd ."; + ".." = "cd .."; + "..." = "cd ../.."; + "...." = "cd ../../.."; + "....." = "cd ../../../.."; + + # Docker Compose alias (for old scripts) + "docker-compose" = "docker compose"; + + # Modern tools aliases + "l" = "eza --header --long --git --group-directories-first --group --icons --color=always --sort=name --hyperlink -o --no-permissions"; + "ll" = "l"; + "la" = "l -a"; + "cat" = "bat"; + "du" = "dust"; + "df" = "duf"; + "augp" = "sudo apt update && sudo apt upgrade -y && sudo apt autopurge -y && sudo apt autoclean"; + + # Docker aliases + "d" = "docker"; + "dc" = "docker compose"; + "dce" = "docker compose exec"; + "dcl" = "docker compose logs"; + "dcd" = "docker compose down"; + "dcu" = "docker compose up"; + "dcp" = "docker compose ps"; + "dcps" = "docker compose ps"; + "dcpr" = "dcp && dcd && dcu -d && dcl -f"; + "dcr" = "dcd && dcu -d && dcl -f"; + "ddpul" = "docker compose down && docker compose pull && docker compose up -d && docker compose logs -f"; + "docker-nuke" = "docker kill $(docker ps -q) && docker rm $(docker ps -a -q) && docker system prune --all --volumes --force && docker volume prune --force"; + + # Git aliases + "g" = "git"; + "gg" = "git pull"; + "gl" = "git log --stat"; + "gp" = "git push"; + "gs" = "git status -s"; + "gst" = "git status"; + "ga" = "git add"; + "gc" = "git commit"; + "gcm" = "git commit -m"; + "gco" = "git checkout"; + "gcb" = "git checkout -b"; + + # Kubernetes aliases + "kubectl" = "minikube kubectl --"; + + # Editor aliases + "zeditor" = "${config.home.homeDirectory}/.local/bin/zed"; + "zed" = "${config.home.homeDirectory}/.local/bin/zed"; + + # SSH alias + "ssh" = "${config.home.homeDirectory}/.local/bin/smart-ssh"; + + # Utility aliases + "random" = "openssl rand -base64"; + }; + + # Session variables + sessionVariables = { + # Basic environment + DOTFILES_PATH = "${config.home.homeDirectory}/.dotfiles"; + + # Nix configuration + NIXPKGS_ALLOW_UNFREE = "1"; + NIXPKGS_ALLOW_INSECURE = "1"; + + # XDG configuration + XDG_DATA_DIRS = "$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share"; + + # Starship configuration + STARSHIP_ENABLE_RIGHT_PROMPT = "true"; + STARSHIP_ENABLE_BASH_CONTINUATION = "true"; + }; + + # Profile extra (runs for login shells) + profileExtra = '' + # PATH manipulation + export PATH="$PATH:${config.home.homeDirectory}/.local/bin" + export PATH="$PATH:${config.home.homeDirectory}/.cargo/bin" + export PATH="$PATH:$DOTFILES_PATH/bin" + export PATH="/usr/bin:$PATH" + + # PKG_CONFIG_PATH + if [ -d /usr/lib/pkgconfig ]; then + export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH + fi + + # Spicetify + if [ -d "${config.home.homeDirectory}/.spicetify" ]; then + export PATH="$PATH:${config.home.homeDirectory}/.spicetify" + fi + + # Pyenv + if [ -d "${config.home.homeDirectory}/.pyenv" ]; then + export PYENV_ROOT="${config.home.homeDirectory}/.pyenv" + [[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" + eval "$(pyenv init - bash)" + fi + + # pnpm + if [ -d "${config.home.homeDirectory}/.local/share/pnpm" ]; then + export PATH="$PATH:${config.home.homeDirectory}/.local/share/pnpm" + fi + + # Miniconda + export PATH="${config.home.homeDirectory}/miniconda3/bin:$PATH" + + # Flutter + if [ -d "${config.home.homeDirectory}/.flutter/flutter/bin" ]; then + export PATH="$PATH:${config.home.homeDirectory}/.flutter/flutter/bin" + export PATH="$PATH:${config.home.homeDirectory}/.pub-cache/bin" + + # Flutter Linux fixes + export CPPFLAGS="-I/usr/include" + export LDFLAGS="-L/usr/lib/x86_64-linux-gnu -lbz2" + export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH + fi + + # Tradaware / DiscountOffice Configuration + if [ -d "${config.home.homeDirectory}/Projects/Work" ]; then + export TRADAWARE_DEVOPS=true + fi + ''; + + # Interactive shell specific configuration + initExtra = '' + # Override ls with l only for interactive shells + if [ -t 1 ]; then + alias ls='l' + fi + + # Initialize starship prompt if available + if command -v starship &> /dev/null; then + eval "$(starship init bash)" + else + echo "FYI, starship not found" + fi + ''; + }; + + # Configure fzf + programs.fzf = { + enable = true; + enableBashIntegration = true; + defaultCommand = "fd --type f"; + defaultOptions = [ + "--height 40%" + "--layout=reverse" + "--border" + "--inline-info" + "--color 'fg:#ebdbb2,bg:#282828,hl:#fabd2f,fg+:#ebdbb2,bg+:#3c3836,hl+:#fabd2f'" + "--color 'info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54'" + ]; + }; + + +} diff --git a/config/default.nix b/config/default.nix new file mode 100644 index 0000000..f630c52 --- /dev/null +++ b/config/default.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + imports = [ + ./bash.nix + ./git.nix + ./starship.nix + ]; +} diff --git a/config/git.nix b/config/git.nix new file mode 100644 index 0000000..23e6b5d --- /dev/null +++ b/config/git.nix @@ -0,0 +1,255 @@ +{ config, pkgs, lib, ... }: + +{ + programs.git = { + enable = true; + + # Basic configuration + userName = "Menno van Leeuwen"; + userEmail = "menno@vleeuwen.me"; + + # Git settings + extraConfig = { + init = { + defaultBranch = "main"; + }; + + core = { + editor = "nvim"; + autocrlf = false; + filemode = true; + ignorecase = false; + }; + + push = { + default = "simple"; + autoSetupRemote = true; + }; + + pull = { + rebase = true; + }; + + branch = { + autosetupmerge = "always"; + autosetuprebase = "always"; + }; + + merge = { + tool = "nvim"; + conflictstyle = "diff3"; + }; + + diff = { + tool = "delta"; + }; + + color = { + ui = "auto"; + branch = { + current = "yellow reverse"; + local = "yellow"; + remote = "green"; + }; + diff = { + meta = "yellow bold"; + frag = "magenta bold"; + old = "red"; + new = "green"; + }; + status = { + added = "yellow"; + changed = "green"; + untracked = "cyan"; + }; + }; + + # URL rewrites for SSH + url = { + "git@github.com:" = { + insteadOf = "https://github.com/"; + }; + "git@gitlab.com:" = { + insteadOf = "https://gitlab.com/"; + }; + }; + + # Security + gpg = { + program = "${pkgs.gnupg}/bin/gpg"; + }; + + # Performance + feature = { + manyFiles = true; + }; + + index = { + version = 4; + }; + + protocol = { + version = 2; + }; + }; + + # Git aliases + aliases = { + # Status and info + st = "status -sb"; + s = "status"; + stat = "status"; + + # Logging + l = "log --oneline --graph --decorate"; + ll = "log --graph --pretty=format:'%C(yellow)%h%Creset -%C(red)%d%Creset %s %C(green)(%cr) %C(blue)<%an>%Creset' --abbrev-commit --date=relative"; + lol = "log --graph --decorate --pretty=oneline --abbrev-commit"; + lola = "log --graph --decorate --pretty=oneline --abbrev-commit --all"; + hist = "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"; + + # Diff + d = "diff"; + dc = "diff --cached"; + ds = "diff --staged"; + dt = "difftool"; + + # Add and commit + a = "add"; + aa = "add -A"; + ap = "add -p"; + c = "commit"; + cm = "commit -m"; + ca = "commit -am"; + amend = "commit --amend"; + + # Checkout and branch + co = "checkout"; + cb = "checkout -b"; + br = "branch"; + bra = "branch -a"; + bd = "branch -d"; + bdd = "branch -D"; + + # Remote + r = "remote"; + rv = "remote -v"; + + # Push and pull + p = "push"; + pf = "push --force-with-lease"; + pu = "push -u origin"; + pl = "pull"; + pom = "push origin main"; + plom = "pull origin main"; + + # Reset and clean + unstage = "reset HEAD --"; + undo = "reset --soft HEAD~1"; + undohard = "reset --hard HEAD~1"; + clean-branches = "!git branch --merged | grep -v '\\*\\|master\\|main\\|develop' | xargs -n 1 git branch -d"; + + # Stash + ss = "stash save"; + sp = "stash pop"; + sl = "stash list"; + sd = "stash drop"; + + # Tags + tags = "tag -l"; + + # Show + show-files = "show --pretty=\"\" --name-only"; + + # Worktree + wt = "worktree"; + + # Maintenance + cleanup = "!git remote prune origin && git gc && git clean -df && git stash clear"; + + # Find + find = "!git ls-files | grep -i"; + grep = "grep -Ii"; + + # Contributors + contributors = "shortlog --summary --numbered --email"; + + # Current branch + current = "rev-parse --abbrev-ref HEAD"; + + # Ignore + ignore = "!gi() { curl -sL https://www.toptal.com/developers/gitignore/api/$@ ;}; gi"; + }; + + # Global gitignore + ignores = [ + # OS generated files + ".DS_Store" + ".DS_Store?" + "._*" + ".Spotlight-V100" + ".Trashes" + "ehthumbs.db" + "Thumbs.db" + + # Editor files + "*.swp" + "*.swo" + "*~" + ".idea/" + + # Logs + "*.log" + + # Runtime data + "pids" + "*.pid" + "*.seed" + "*.pid.lock" + + # Coverage directory used by tools like istanbul + "coverage/" + + # Dependency directories + "node_modules/" + + # Optional npm cache directory + ".npm" + + # Optional REPL history + ".node_repl_history" + + # Environment variables + ".env.local" + ".env.*.local" + + # Temporary folders + "tmp/" + "temp/" + ]; + }; + + # Delta for better git diffs + programs.git.delta = { + enable = true; + options = { + features = "decorations"; + syntax-theme = "Dracula"; + plus-style = "syntax #003800"; + minus-style = "syntax #3f0001"; + navigate = true; + light = false; + line-numbers = true; + side-by-side = false; + hunk-header-decoration-style = "blue box"; + hunk-header-file-style = "red"; + hunk-header-line-number-style = "#067a00"; + hunk-header-style = "file line-number syntax"; + }; + }; + + # Git hooks (if you want to add any) + # home.file.".config/git/hooks" = { + # source = ./git-hooks; + # recursive = true; + # }; +} diff --git a/config/git/gitconfig.linux b/config/git/gitconfig.linux deleted file mode 100644 index 0528522..0000000 --- a/config/git/gitconfig.linux +++ /dev/null @@ -1,43 +0,0 @@ -[user] - signingkey = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr - email = menno@vleeuwen.me - name = Menno van Leeuwen - -[gpg] - format = ssh - -[gpg "ssh"] - program = /opt/1Password/op-ssh-sign - -[commit] - gpgsign = true - -[color] - ui = true - -[push] - autoSetupRemote = true - -[pull] - rebase = false - -[filter "lfs"] - process = git-lfs filter-process - required = true - clean = git-lfs clean -- %f - smudge = git-lfs smudge -- %f - -[init] - defaultBranch = main -[credential "https://github.com"] - helper = - helper = !/home/menno/.nix-profile/bin/gh auth git-credential -[credential "https://gist.github.com"] - helper = - helper = !/home/menno/.nix-profile/bin/gh auth git-credential - -[safe] - directory = * - -[alias] - pushall = "!f() { for var in $(git remote show); do echo \"pushing to $var\"; git push $var; done; }; f" diff --git a/config/git/gitconfig.macos b/config/git/gitconfig.macos deleted file mode 100644 index e8b66c7..0000000 --- a/config/git/gitconfig.macos +++ /dev/null @@ -1,16 +0,0 @@ -[user] - signingkey = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr - email = menno@vleeuwen.me - name = Menno van Leeuwen - -[gpg] - format = ssh - -[commit] - gpgsign = true - -[safe] - directory = * - -[alias] - pushall = "!f() { for var in $(git remote show); do echo \"pushing to $var\"; git push $var; done; }; f" diff --git a/config/home-manager/flake.nix b/config/home-manager/flake.nix deleted file mode 100644 index 0980974..0000000 --- a/config/home-manager/flake.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - description = "menno's dotfiles"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - - home-manager = { - url = "github:nix-community/home-manager/release-25.05"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - opnix.url = "github:brizzbuzz/opnix"; - }; - - outputs = - { - self, - nixpkgs, - nixpkgs-unstable, - home-manager, - opnix, - }: - let - system = if builtins.currentSystem == "aarch64-linux" then "aarch64-linux" else "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - config.allowUnfree = true; - }; - pkgs-unstable = import nixpkgs-unstable { - inherit system; - config.allowUnfree = true; - }; - in - { - homeConfigurations = { - "mennos-desktop" = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - modules = [ ./home.nix ]; - extraSpecialArgs = { - inherit - pkgs - pkgs-unstable - opnix - ; - isServer = false; - hostname = "mennos-desktop"; - }; - }; - - "mennos-laptop" = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - modules = [ ./home.nix ]; - extraSpecialArgs = { - inherit - pkgs - pkgs-unstable - opnix - ; - isServer = false; - hostname = "mennos-laptop"; - }; - }; - }; - }; -} diff --git a/config/home-manager/packages/common/bash.nix b/config/home-manager/packages/common/bash.nix deleted file mode 100644 index aa9aab9..0000000 --- a/config/home-manager/packages/common/bash.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ config, pkgs, ... }: - -let - dotfilesPath = builtins.getEnv "DOTFILES_PATH"; -in -{ - programs.bash = { - enable = true; - enableCompletion = true; - - initExtra = '' - if [ -f ~/.bashrc.extra ]; then - source ~/.bashrc.extra - fi - ''; - }; - - programs.fzf = { - enable = true; - enableBashIntegration = true; - defaultCommand = "fd --type f"; - defaultOptions = [ - "--height 40%" - "--layout=reverse" - "--border" - "--inline-info" - "--color 'fg:#ebdbb2,bg:#282828,hl:#fabd2f,fg+:#ebdbb2,bg+:#3c3836,hl+:#fabd2f'" - "--color 'info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54'" - ]; - }; -} diff --git a/config/home-manager/packages/common/hosts/default.nix b/config/home-manager/packages/common/hosts/default.nix deleted file mode 100644 index c915eb0..0000000 --- a/config/home-manager/packages/common/hosts/default.nix +++ /dev/null @@ -1 +0,0 @@ -{ ... }: { } diff --git a/config/home-manager/packages/common/hosts/fallback.nix b/config/home-manager/packages/common/hosts/fallback.nix deleted file mode 100644 index 46f1ad7..0000000 --- a/config/home-manager/packages/common/hosts/fallback.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs-unstable, ... }: -{ - home.packages = with pkgs-unstable; [ ]; -} diff --git a/config/home-manager/packages/common/hosts/mennos-cachyos-desktop.nix b/config/home-manager/packages/common/hosts/mennos-cachyos-desktop.nix deleted file mode 100644 index 46f1ad7..0000000 --- a/config/home-manager/packages/common/hosts/mennos-cachyos-desktop.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs-unstable, ... }: -{ - home.packages = with pkgs-unstable; [ ]; -} diff --git a/config/home-manager/packages/common/hosts/mennos-cachyos-laptop.nix b/config/home-manager/packages/common/hosts/mennos-cachyos-laptop.nix deleted file mode 100644 index 46f1ad7..0000000 --- a/config/home-manager/packages/common/hosts/mennos-cachyos-laptop.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs-unstable, ... }: -{ - home.packages = with pkgs-unstable; [ ]; -} diff --git a/config/home-manager/packages/common/hosts/mennos-desktop.nix b/config/home-manager/packages/common/hosts/mennos-desktop.nix deleted file mode 100644 index 46f1ad7..0000000 --- a/config/home-manager/packages/common/hosts/mennos-desktop.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs-unstable, ... }: -{ - home.packages = with pkgs-unstable; [ ]; -} diff --git a/config/home-manager/packages/common/hosts/mennos-laptop.nix b/config/home-manager/packages/common/hosts/mennos-laptop.nix deleted file mode 100644 index 46f1ad7..0000000 --- a/config/home-manager/packages/common/hosts/mennos-laptop.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs-unstable, ... }: -{ - home.packages = with pkgs-unstable; [ ]; -} diff --git a/config/home-manager/packages/common/hosts/mennos-server.nix b/config/home-manager/packages/common/hosts/mennos-server.nix deleted file mode 100644 index 46f1ad7..0000000 --- a/config/home-manager/packages/common/hosts/mennos-server.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs-unstable, ... }: -{ - home.packages = with pkgs-unstable; [ ]; -} diff --git a/config/home-manager/packages/common/hosts/mennos-vm.nix b/config/home-manager/packages/common/hosts/mennos-vm.nix deleted file mode 100644 index 46f1ad7..0000000 --- a/config/home-manager/packages/common/hosts/mennos-vm.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs-unstable, ... }: -{ - home.packages = with pkgs-unstable; [ ]; -} diff --git a/config/home-manager/packages/common/packages.nix b/config/home-manager/packages/common/packages.nix deleted file mode 100644 index bbe59f7..0000000 --- a/config/home-manager/packages/common/packages.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ - pkgs, - pkgs-unstable, - hostname, - ... -}: -{ - # Import host-specific packages - imports = - if hostname == "mennos-desktop" then - [ ./hosts/mennos-desktop.nix ] - else if hostname == "mennos-laptop" then - [ ./hosts/mennos-laptop.nix ] - else - [ ./hosts/fallback.nix ]; - - home.packages = - with pkgs; - [ - # General packages - git - onefetch - gnupg - gh - nixfmt-rfc-style - nixd - nil - wget - fastfetch - _1password-cli - - # Package management - devbox - - # Development SDKs/Toolkits - gcc - pkg-config - gnumake - stdenv.cc - act # GitHub Actions CLI - - # File and directory operations - eza # Modern ls - bat # Modern cat - broot # Interactive directory navigator - du-dust # Modern du - duf # Modern df - zip - unzip - glances # Advanced system monitoring tool - procs # Modern ps - hyperfine # Benchmarking tool - - # Search and text processing - ripgrep # Modern grep - sd # Modern sed - choose # Modern cut - jq # JSON processor - yq # YAML processor - xan # CSV processor (xsv is no longer maintained) - ncdu # Disk usage analyzer - - # System monitoring and process management - procs # Modern ps - hyperfine # Benchmarking tool - bandwhich # Network utilization tool - doggo # Modern dig - gping # Ping with graph - htop # Interactive process viewer - - # Development utilities - delta # Better git diff - difftastic # Structural diff tool - fzf # Fuzzy finder - tokei # Code statistics - tealdeer # Modern tldr client - lazygit # Terminal UI for git - - # Shell and terminal - starship # Cross-shell prompt - blesh # Bash ble.sh - zellij # Modern terminal multiplexer - screen # Terminal multiplexer - - # File viewers and processors - hexyl # Modern hexdump - chafa # Terminal image viewer - glow # Markdown renderer - - # Editors - neovim - ## Neovim plugins - vimPlugins.LazyVim - - nano - micro - - # Lolz - fortune - cowsay - cmatrix - figlet - lolcat - ]; -} diff --git a/config/home-manager/workstation/dconf.nix b/config/home-manager/workstation/dconf.nix deleted file mode 100644 index f992566..0000000 --- a/config/home-manager/workstation/dconf.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ config, pkgs, ... }: -{ - # GTK Theme - gtk = { - enable = true; - - iconTheme = { - name = "Yaru"; - }; - - theme = { - name = "Yaru-dark"; - }; - - cursorTheme = { - name = "Yaru"; - }; - - gtk3.extraConfig = { - Settings = '' - gtk-application-prefer-dark-theme=1 - ''; - }; - - gtk4.extraConfig = { - Settings = '' - gtk-application-prefer-dark-theme=1 - ''; - }; - }; - # Only apply dconf settings if running GNOME - dconf = pkgs.lib.mkIf (builtins.getEnv "XDG_CURRENT_DESKTOP" == "GNOME") { - enable = true; - settings = { - "org/gnome/desktop/background" = { - show-desktop-icons = true; - }; - - "org/gnome/desktop/applications/file-manager" = { - exec = "nautilus"; - }; - - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - font-name = "Hack Nerd Font 11"; - monospace-font-name = "Hack Nerd Font Mono 10"; - document-font-name = "Hack Nerd Font 11"; - }; - - # Pinned apps - "org/gnome/shell" = { - favorite-apps = [ - "firefox.desktop" - "nemo.desktop" - "com.spotify.Client.desktop" - "signal-desktop.desktop" - "whatsapp-desktop-client_whatsapp-desktop-client.desktop" - "telegram-desktop_telegram-desktop.desktop" - "code.desktop" - "vesktop.desktop" - "scrcpy.desktop" - ]; - }; - - # GNOME Terminal settings - "org/gnome/Console" = { - use-system-font = false; - custom-font = "Hack Nerd Font 13"; - theme = "night"; - }; - - # Set wallpaper - "org/gnome/desktop/background" = { - picture-uri-dark = "file:///usr/share/backgrounds/Ubuntu_Legacy_by_Aaron_J_Prisk_dark.png"; - picture-uri = "file:///usr/share/backgrounds/Ubuntu_Legacy_by_Aaron_J_Prisk_light.png"; - picture-options = "zoom"; - primary-color = "#000000"; - }; - }; - }; - -} diff --git a/config/home-manager/workstation/gnome-extensions.nix b/config/home-manager/workstation/gnome-extensions.nix deleted file mode 100644 index 4cb5bfe..0000000 --- a/config/home-manager/workstation/gnome-extensions.nix +++ /dev/null @@ -1,314 +0,0 @@ -{ config, pkgs-unstable, pkgs, lib, ... }: - -lib.mkIf (builtins.match ".*GNOME.*" (builtins.getEnv "XDG_CURRENT_DESKTOP") != null) { - # We run most extensions from unstable because they are more up-to-date - home.packages = - with pkgs.gnomeExtensions; - [ - user-themes - weather-oclock - native-window-placement - kimpanel - ] - ++ (with pkgs-unstable.gnomeExtensions; [ - dash-to-panel - arcmenu - lilypad - tailscale-qs - blur-my-shell - gtk4-desktop-icons-ng-ding - media-controls - burn-my-windows - coverflow-alt-tab - appindicator - just-perfection - smile-complementary-extension - clipboard-indicator - ]); - - # Copy burn-my-windows profile to user config - home.file.".config/burn-my-windows/profiles/default.conf".text = '' - [burn-my-windows-profile] - fire-enable-effect=false - tv-glitch-enable-effect=true - tv-glitch-animation-time=250 - ''; - - dconf = { - settings = { - # dash-to-panel - "org/gnome/shell/extensions/dash-to-panel" = { - appicon-padding = 8; - appicon-margin = 4; - trans-panel-opacity = 0.40; - appicon-style = "SYMBOLIC"; - trans-use-custom-opacity = true; - animate-appicon-hover = false; - dot-style-unfocused = "DOTS"; - tray-size = 16; - hoy-keys = true; - panel-element-positions = "{\"0\":[{\"element\":\"showAppsButton\",\"visible\":false,\"position\":\"stackedTL\"},{\"element\":\"activitiesButton\",\"visible\":false,\"position\":\"stackedTL\"},{\"element\":\"leftBox\",\"visible\":true,\"position\":\"stackedTL\"},{\"element\":\"taskbar\",\"visible\":true,\"position\":\"stackedTL\"},{\"element\":\"centerBox\",\"visible\":true,\"position\":\"stackedBR\"},{\"element\":\"rightBox\",\"visible\":true,\"position\":\"stackedBR\"},{\"element\":\"dateMenu\",\"visible\":true,\"position\":\"stackedBR\"},{\"element\":\"systemMenu\",\"visible\":true,\"position\":\"stackedBR\"},{\"element\":\"desktopButton\",\"visible\":true,\"position\":\"stackedBR\"}],\"1\":[{\"element\":\"showAppsButton\",\"visible\":false,\"position\":\"stackedTL\"},{\"element\":\"activitiesButton\",\"visible\":false,\"position\":\"stackedTL\"},{\"element\":\"leftBox\",\"visible\":true,\"position\":\"stackedTL\"},{\"element\":\"taskbar\",\"visible\":true,\"position\":\"stackedTL\"},{\"element\":\"centerBox\",\"visible\":true,\"position\":\"stackedBR\"},{\"element\":\"rightBox\",\"visible\":true,\"position\":\"stackedBR\"},{\"element\":\"dateMenu\",\"visible\":true,\"position\":\"stackedBR\"},{\"element\":\"systemMenu\",\"visible\":true,\"position\":\"stackedBR\"},{\"element\":\"desktopButton\",\"visible\":true,\"position\":\"stackedBR\"}]}"; - }; - - # arcmenu - "org/gnome/shell/extensions/arcmenu" = { - custom-menu-button-icon-size = 32; - menu-layout = "Runner"; - runner-show-frequent-apps = true; - search-provider-open-windows = true; - search-provider-recent-files = true; - highlight-search-terms = true; - max-search-results = 8; - menu-button-icon = "Distro_Icon"; - distro-icon = 5; - arc-menu-icon = 64; - }; - - "org/gnome/shell/extensions/pano" = { - history-length = 500; - global-shortcut = [ "V" ]; - item-date-font-family = "Hack Nerd Font Mono"; - item-date-font-size = 10; - search-bar-font-family = "Hack Nerd Font Mono"; - search-bar-font-size = 14; - item-title-font-family = "Hack Nerd Font Mono"; - item-title-font-size = 20; - }; - - # To get an ID of an extension, run `gnome-extensions list` - "org/gnome/shell" = { - disable-user-extensions = false; - # To get an array like below of currently enabled extensionsm run `gnome-extensions list --enabled | sed 's/.*/"&"/'` - enabled-extensions = [ - "pano@elhan.io" - "tilingshell@ferrarodomenico.com" - "tiling-assistant@ubuntu.com" - "ubuntu-appindicators@ubuntu.com" - "launch-new-instance@gnome-shell-extensions.gcampax.github.com" - "native-window-placement@gnome-shell-extensions.gcampax.github.com" - "user-theme@gnome-shell-extensions.gcampax.github.com" - "appindicatorsupport@rgcjonas.gmail.com" - "arcmenu@arcmenu.com" - "blur-my-shell@aunetx" - "burn-my-windows@schneegans.github.com" - "dash-to-panel@jderose9.github.com" - "just-perfection-desktop@just-perfection" - "kimpanel@kde.org" - "lilypad@shendrew.github.io" - "smile-extension@mijorus.it" - "tailscale@joaophi.github.com" - "weatheroclock@CleoMenezesJr.github.io" - ]; - }; - - # Perfection settings - "org/gnome/shell/extensions/just-perfection" = { - theme = false; - notification-banner-position = 2; - startup-status = 0; - }; - - # Configure logo-menu - "org/gnome/shell/extensions/Logo-menu" = { - hide-icon-shadow = false; - menu-button-extensions-app = "org.gnome.Extensions.desktop"; - menu-button-icon-image = 23; - menu-button-icon-size = 24; - menu-button-system-monitor = "missioncenter"; - show-power-options = false; - symbolic-icon = true; - use-custom-icon = false; - }; - - # Configure covereflow-alt-tab - "org/gnome/shell/extensions/coverflowalttab" = { - animation-time = 0.2; - easing-function = "ease-out-quart"; - icon-has-shadow = true; - icon-style = "Overlay"; - invert-swipes = false; - position = "Top"; - switcher-looping-method = "Flip Stack"; - switcher-style = "Coverflow"; - }; - - # Configure burn-my-windows - "org/gnome/shell/extensions/burn-my-windows" = { - active-profile = "${config.home.homeDirectory}/.config/burn-my-windows/profiles/default.conf"; - }; - - # Configure blur-my-shell - "org/gnome/shell/extensions/blur-my-shell" = { - brightness = 0.75; - noise-amount = 0; - }; - - # Configure tiling shell - "org/gnome/shell/extensions/tilingshell" = { - enable-autotiling = false; - restore-window-original-size = false; - enable-tiling-system-windows-suggestions = true; - layouts-json = '' - [ - { - "id": "Landscape Ultrawide", - "tiles": [ - { "x": 0, "y": 0, "width": 0.22, "height": 0.5, "groups": [1, 2] }, - { "x": 0, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [1, 2] }, - { "x": 0.22, "y": 0, "width": 0.56, "height": 1, "groups": [2, 3] }, - { "x": 0.78, "y": 0, "width": 0.22, "height": 0.5, "groups": [3, 4] }, - { "x": 0.78, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [3, 4] } - ] - }, - { - "id": "Portrait Ultrawide", - "tiles": [ - { "x": 0, "y": 0, "width": 1, "height": 0.25, "groups": [1] }, - { "x": 0, "y": 0.25, "width": 1, "height": 0.5, "groups": [1, 2] }, - { "x": 0, "y": 0.75, "width": 0.5, "height": 0.25, "groups": [2, 3] }, - { "x": 0.5, "y": 0.75, "width": 0.5, "height": 0.25, "groups": [2, 3] } - ] - }, - { - "id": "Landscape Laptop", - "tiles": [ - { "x": 0, "y": 0, "width": 0.5, "height": 0.5, "groups": [1, 2] }, - { - "x": 0.5, - "y": 0, - "width": 0.5, - "height": 1, - "groups": [1] - }, - { - "x": 0, - "y": 0.5, - "width": 0.5, - "height": 0.5, - "groups": [2, 1] - } - ] - }, - { - "id": "Landscape Ultrawide Power-User", - "tiles": [ - { - "x": 0, - "y": 0, - "width": 0.1984375, - "height": 0.5028409090909091, - "groups": [1, 2] - }, - { - "x": 0.1984375, - "y": 0, - "width": 0.3015625, - "height": 1, - "groups": [4, 1] - }, - { - "x": 0, - "y": 0.5028409090909091, - "width": 0.1984375, - "height": 0.49715909090909094, - "groups": [2, 1] - }, - { - "x": 0.8015625, - "y": 0, - "width": 0.1984375, - "height": 1, - "groups": [3] - }, - { - "x": 0.5, - "y": 0, - "width": 0.30156249999999996, - "height": 1, - "groups": [3, 4] - } - ] - } - ] - ''; - overridden-settings = "{\"org.gnome.mutter.keybindings\":{\"toggle-tiled-right\":\"['Right']\",\"toggle-tiled-left\":\"['Left']\"},\"org.gnome.desktop.wm.keybindings\":{\"maximize\":\"['Up']\",\"unmaximize\":\"['Down', 'F5']\"},\"org.gnome.mutter\":{\"edge-tiling\":\"false\"}}"; - }; - - # Configure forge - "org/gnome/shell/extensions/forge" = { - move-pointer-focus-enabled = false; - stacked-tiling-mode-enabled = true; - tabbed-tiling-mode-enabled = true; - tiling-mode-enabled = true; - }; - - "org/gnome/shell/extensions/forge/keybindings" = { - con-split-horizontal = [ "z" ]; - con-split-layout-toggle = [ "g" ]; - con-split-vertical = [ "v" ]; - con-stacked-layout-toggle = [ "s" ]; - con-tabbed-layout-toggle = [ "t" ]; - con-tabbed-showtab-decoration-toggle = [ "y" ]; - focus-border-toggle = [ "x" ]; - prefs-tiling-toggle = [ "w" ]; - window-focus-down = [ "j" ]; - window-focus-left = [ "h" ]; - window-focus-right = [ "l" ]; - window-focus-up = [ "k" ]; - window-gap-size-decrease = [ "minus" ]; - window-gap-size-increase = [ "plus" ]; - window-move-down = [ "j" ]; - window-move-left = [ "h" ]; - window-move-right = [ "l" ]; - window-move-up = [ "k" ]; - window-resize-bottom-decrease = [ "i" ]; - window-resize-bottom-increase = [ "u" ]; - window-resize-left-decrease = [ "o" ]; - window-resize-left-increase = [ "y" ]; - window-resize-right-decrease = [ "y" ]; - window-resize-right-increase = [ "o" ]; - window-resize-top-decrease = [ "u" ]; - window-resize-top-increase = [ "i" ]; - window-snap-center = [ "c" ]; - window-snap-one-third-left = [ "d" ]; - window-snap-one-third-right = [ "g" ]; - window-snap-two-third-left = [ "e" ]; - window-snap-two-third-right = [ ]; - window-swap-down = [ "j" ]; - window-swap-last-active = [ "Return" ]; - window-swap-left = [ "h" ]; - window-swap-right = [ "l" ]; - window-swap-up = [ "k" ]; - window-toggle-always-float = [ "c" ]; - window-toggle-float = [ "c" ]; - workspace-active-tile-toggle = [ "w" ]; - }; - - # User theme - "org/gnome/shell/extensions/user-theme" = { - name = "Yaru-purple-dark"; - }; - - # Lilypad settings - "org/gnome/shell/extensions/lilypad/rightbox-order" = { - - # In case this is updated, run: `dconf read /org/gnome/shell/extensions/lilypad/rightbox-order | tsed "s/,//g; s/'/\"/g ` then copy pasting the output here - rightbox-order = [ - "lilypad" - "system_monitor" - "appindicator_legacy_TelegramDesktop" - "appindicator_legacy_1password" - "spotify_client" - "appindicator_legacy_Electron" - "steam" - "appindicator_legacy_steam" - "workspace_indicator" - "StatusNotifierItem" - "clipboardIndicator" - "screenSharing" - ]; - show-icons = false; - }; - }; - }; -} diff --git a/config/home-manager/workstation/keyboard-shortcuts.nix b/config/home-manager/workstation/keyboard-shortcuts.nix deleted file mode 100644 index 5091b87..0000000 --- a/config/home-manager/workstation/keyboard-shortcuts.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ pkgs, lib, ... }: - -lib.mkIf (builtins.match ".*GNOME.*" (builtins.getEnv "XDG_CURRENT_DESKTOP") != null) { - dconf.settings = { - "org/gnome/shell/keybindings" = { - show-screenshot-ui = [ - "Print" - "4" - ]; - }; - - "org/gnome/settings-daemon/plugins/media-keys" = { - volume-step = 2; - custom-keybindings = [ - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/missioncenter/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/frog/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ulauncher/" - ]; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access" = { - binding = "space"; - command = "1password --quick-access"; - name = "1password-quick-access"; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/missioncenter" = { - binding = "Escape"; - command = "missioncenter"; - name = "missioncenter"; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes" = { - binding = "e"; - command = "smile"; - name = "emotes"; - }; - }; -} diff --git a/config/nextcloud.cfg b/config/nextcloud.cfg deleted file mode 100644 index b96e2e9..0000000 --- a/config/nextcloud.cfg +++ /dev/null @@ -1,102 +0,0 @@ -[General] -clientVersion=3.16.0-1 (Debian built) -confirmExternalStorage=true -crashReporter=true -desktopEnterpriseChannel=daily -isVfsEnabled=false -launchOnSystemStartup=true -monoIcons=false -moveToTrash=false -newBigFolderSizeLimit=500 -notifyExistingFoldersOverLimit=false -optionalServerNotifications=true -overrideLocalDir= -overrideServerUrl= -promptDeleteAllFiles=false -showCallNotifications=true -showChatNotifications=true -showInExplorerNavigationPane=false -stopSyncingExistingFoldersOverLimit=false -useNewBigFolderSizeLimit=true - -[Accounts] -0\Folders\1\ignoreHiddenFiles=false -0\Folders\1\journalPath=.sync_42a4129584d0.db -0\Folders\1\localPath=/home/menno/Nextcloud/ -0\Folders\1\paused=false -0\Folders\1\targetPath=/ -0\Folders\1\version=2 -0\Folders\1\virtualFilesMode=off -0\Folders\2\ignoreHiddenFiles=false -0\Folders\2\journalPath=.sync_65a742b0aa83.db -0\Folders\2\localPath=/home/menno/Desktop/ -0\Folders\2\paused=false -0\Folders\2\targetPath=/Desktop -0\Folders\2\version=2 -0\Folders\2\virtualFilesMode=off -0\Folders\3\ignoreHiddenFiles=false -0\Folders\3\journalPath=.sync_886cca272fe5.db -0\Folders\3\localPath=/home/menno/Pictures/ -0\Folders\3\paused=false -0\Folders\3\targetPath=/Pictures -0\Folders\3\version=2 -0\Folders\3\virtualFilesMode=off -0\Folders\4\ignoreHiddenFiles=false -0\Folders\4\journalPath=.sync_90ea5e3c7a33.db -0\Folders\4\localPath=/home/menno/Videos/ -0\Folders\4\paused=false -0\Folders\4\targetPath=/Videos -0\Folders\4\version=2 -0\Folders\4\virtualFilesMode=off -0\Folders\5\ignoreHiddenFiles=false -0\Folders\5\journalPath=.sync_65289e64a490.db -0\Folders\5\localPath=/home/menno/Documents/ -0\Folders\5\paused=false -0\Folders\5\targetPath=/Documents -0\Folders\5\version=2 -0\Folders\5\virtualFilesMode=off -0\Folders\6\ignoreHiddenFiles=false -0\Folders\6\journalPath=.sync_884042991bd6.db -0\Folders\6\localPath=/home/menno/3D Objects/ -0\Folders\6\paused=false -0\Folders\6\targetPath=/3D Objects -0\Folders\6\version=2 -0\Folders\6\virtualFilesMode=off -0\Folders\7\ignoreHiddenFiles=false -0\Folders\7\journalPath=.sync_283a65eecb9c.db -0\Folders\7\localPath=/home/menno/Music/ -0\Folders\7\paused=false -0\Folders\7\targetPath=/Music -0\Folders\7\version=2 -0\Folders\7\virtualFilesMode=off -0\authType=webflow -0\dav_user=menno -0\displayName=Menno van Leeuwen -0\encryptionCertificateSha256Fingerprint=@ByteArray() -0\networkDownloadLimit=0 -0\networkDownloadLimitSetting=-2 -0\networkProxyHostName= -0\networkProxyNeedsAuth=false -0\networkProxyPort=0 -0\networkProxySetting=0 -0\networkProxyType=2 -0\networkProxyUser= -0\networkUploadLimit=0 -0\networkUploadLimitSetting=-2 -0\serverColor=@Variant(\0\0\0\x43\x1\xff\xff\x1c\x1c$$<<\0\0) -0\serverHasValidSubscription=false -0\serverTextColor=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\xff\xff\0\0) -0\serverVersion=31.0.8.1 -0\url=https://drive.mvl.sh -0\version=13 -0\webflow_user=menno -version=13 - -[BWLimit] -downloadLimit=80 -uploadLimit=10 -useDownloadLimit=0 -useUploadLimit=0 - -[Settings] -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\b\0\0\0\0\0\0\0\n\xa4\0\0\x2\x8a\0\0\b\0\0\0\0\0\0\0\n\xa4\0\0\x2\x8a\0\0\0\x1\0\0\0\0\x11\x64\0\0\b\0\0\0\0\0\0\0\n\xa4\0\0\x2\x8a) diff --git a/config/ssh/config b/config/ssh/config deleted file mode 100644 index 5ee4aa6..0000000 --- a/config/ssh/config +++ /dev/null @@ -1,8 +0,0 @@ -Host * - AddKeysToAgent yes - ForwardAgent yes - -Include ~/.ssh/config.d/*.conf - -Host * - IdentityAgent ~/.1password/agent.sock diff --git a/config/starship.nix b/config/starship.nix new file mode 100644 index 0000000..24538cd --- /dev/null +++ b/config/starship.nix @@ -0,0 +1,183 @@ +{ config, pkgs, lib, ... }: + +{ + programs.starship = { + enable = true; + enableBashIntegration = true; + settings = { + aws = { + symbol = " "; + }; + buf = { + symbol = " "; + }; + c = { + symbol = " "; + }; + conda = { + symbol = " "; + }; + crystal = { + symbol = " "; + }; + dart = { + symbol = " "; + }; + directory = { + read_only = " 󰌾"; + }; + docker_context = { + symbol = " "; + }; + elixir = { + symbol = " "; + }; + elm = { + symbol = " "; + }; + fennel = { + symbol = " "; + }; + fossil_branch = { + symbol = " "; + }; + git_branch = { + symbol = " "; + }; + git_commit = { + tag_symbol = "  "; + }; + golang = { + symbol = " "; + }; + guix_shell = { + symbol = " "; + }; + haskell = { + symbol = " "; + }; + haxe = { + symbol = " "; + }; + hg_branch = { + symbol = " "; + }; + hostname = { + ssh_symbol = " "; + }; + java = { + symbol = " "; + }; + julia = { + symbol = " "; + }; + kotlin = { + symbol = " "; + }; + lua = { + symbol = " "; + }; + memory_usage = { + symbol = "󰍛 "; + }; + meson = { + symbol = "󰔷 "; + }; + nim = { + symbol = "󰆥 "; + }; + nix_shell = { + symbol = " "; + }; + nodejs = { + symbol = " "; + }; + ocaml = { + symbol = " "; + }; + os = { + symbols = { + Alpaquita = " "; + Alpine = " "; + AlmaLinux = " "; + Amazon = " "; + Android = " "; + Arch = " "; + Artix = " "; + CentOS = " "; + Debian = " "; + DragonFly = " "; + Emscripten = " "; + EndeavourOS = " "; + Fedora = " "; + FreeBSD = " "; + Garuda = "󰛓 "; + Gentoo = " "; + HardenedBSD = "󰞌 "; + Illumos = "󰈸 "; + Kali = " "; + Linux = " "; + Mabox = " "; + Macos = " "; + Manjaro = " "; + Mariner = " "; + MidnightBSD = " "; + Mint = " "; + NetBSD = " "; + NixOS = " "; + OpenBSD = "󰈺 "; + openSUSE = " "; + OracleLinux = "󰌷 "; + Pop = " "; + Raspbian = " "; + Redhat = " "; + RedHatEnterprise = " "; + RockyLinux = " "; + Redox = "󰀘 "; + Solus = "󰠳 "; + SUSE = " "; + Ubuntu = " "; + Unknown = " "; + Void = " "; + Windows = "󰍲 "; + }; + }; + package = { + symbol = "󰏗 "; + }; + perl = { + symbol = " "; + }; + php = { + symbol = " "; + }; + pijul_channel = { + symbol = " "; + }; + python = { + symbol = " "; + }; + rlang = { + symbol = "󰟔 "; + }; + ruby = { + symbol = " "; + }; + rust = { + symbol = "󱘗 "; + }; + scala = { + symbol = " "; + }; + swift = { + symbol = " "; + }; + zig = { + symbol = " "; + }; + gradle = { + symbol = " "; + }; + }; + }; +} diff --git a/config/starship.toml b/config/starship.toml deleted file mode 100755 index 8f3da6f..0000000 --- a/config/starship.toml +++ /dev/null @@ -1,170 +0,0 @@ -[aws] -symbol = " " - -[buf] -symbol = " " - -[c] -symbol = " " - -[conda] -symbol = " " - -[crystal] -symbol = " " - -[dart] -symbol = " " - -[directory] -read_only = " 󰌾" - -[docker_context] -symbol = " " - -[elixir] -symbol = " " - -[elm] -symbol = " " - -[fennel] -symbol = " " - -[fossil_branch] -symbol = " " - -[git_branch] -symbol = " " - -[git_commit] -tag_symbol = '  ' - -[golang] -symbol = " " - -[guix_shell] -symbol = " " - -[haskell] -symbol = " " - -[haxe] -symbol = " " - -[hg_branch] -symbol = " " - -[hostname] -ssh_symbol = " " - -[java] -symbol = " " - -[julia] -symbol = " " - -[kotlin] -symbol = " " - -[lua] -symbol = " " - -[memory_usage] -symbol = "󰍛 " - -[meson] -symbol = "󰔷 " - -[nim] -symbol = "󰆥 " - -[nix_shell] -symbol = " " - -[nodejs] -symbol = " " - -[ocaml] -symbol = " " - -[os.symbols] -Alpaquita = " " -Alpine = " " -AlmaLinux = " " -Amazon = " " -Android = " " -Arch = " " -Artix = " " -CentOS = " " -Debian = " " -DragonFly = " " -Emscripten = " " -EndeavourOS = " " -Fedora = " " -FreeBSD = " " -Garuda = "󰛓 " -Gentoo = " " -HardenedBSD = "󰞌 " -Illumos = "󰈸 " -Kali = " " -Linux = " " -Mabox = " " -Macos = " " -Manjaro = " " -Mariner = " " -MidnightBSD = " " -Mint = " " -NetBSD = " " -NixOS = " " -OpenBSD = "󰈺 " -openSUSE = " " -OracleLinux = "󰌷 " -Pop = " " -Raspbian = " " -Redhat = " " -RedHatEnterprise = " " -RockyLinux = " " -Redox = "󰀘 " -Solus = "󰠳 " -SUSE = " " -Ubuntu = " " -Unknown = " " -Void = " " -Windows = "󰍲 " - -[package] -symbol = "󰏗 " - -[perl] -symbol = " " - -[php] -symbol = " " - -[pijul_channel] -symbol = " " - -[python] -symbol = " " - -[rlang] -symbol = "󰟔 " - -[ruby] -symbol = " " - -[rust] -symbol = "󱘗 " - -[scala] -symbol = " " - -[swift] -symbol = " " - -[zig] -symbol = " " - -[gradle] -symbol = " " \ No newline at end of file diff --git a/vscode/argv.json b/config/vscode/argv.json similarity index 100% rename from vscode/argv.json rename to config/vscode/argv.json diff --git a/vscode/settings.json b/config/vscode/settings.json similarity index 100% rename from vscode/settings.json rename to config/vscode/settings.json diff --git a/zed/settings.json b/config/zed/settings.json similarity index 100% rename from zed/settings.json rename to config/zed/settings.json diff --git a/config/home-manager/flake.lock b/flake.lock similarity index 76% rename from config/home-manager/flake.lock rename to flake.lock index 4517577..87d539a 100644 --- a/config/home-manager/flake.lock +++ b/flake.lock @@ -25,11 +25,11 @@ ] }, "locked": { - "lastModified": 1756679287, - "narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=", + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", "owner": "nix-community", "repo": "home-manager", - "rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", "type": "github" }, "original": { @@ -41,11 +41,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1756886854, - "narHash": "sha256-6tooT142NLcFjt24Gi4B0G1pgWLvfw7y93sYEfSHlLI=", + "lastModified": 1758346548, + "narHash": "sha256-afXE7AJ7MY6wY1pg/Y6UPHNYPy5GtUKeBkrZZ/gC71E=", "owner": "nixos", "repo": "nixpkgs", - "rev": "0e6684e6c5755325f801bda1751a8a4038145d7d", + "rev": "b2a3852bd078e68dd2b3dfa8c00c67af1f0a7d20", "type": "github" }, "original": { @@ -55,22 +55,6 @@ "type": "github" } }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1756787288, - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1751011381, @@ -110,7 +94,6 @@ "inputs": { "home-manager": "home-manager", "nixpkgs": "nixpkgs", - "nixpkgs-unstable": "nixpkgs-unstable", "opnix": "opnix" } }, diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..bf966ed --- /dev/null +++ b/flake.nix @@ -0,0 +1,45 @@ +{ + description = "menno's dotfiles"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; + home-manager = { + url = "github:nix-community/home-manager/release-25.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + opnix.url = "github:brizzbuzz/opnix"; + }; + + outputs = + { + self, + nixpkgs, + home-manager, + opnix, + }: + let + supportedSystems = [ "x86_64-linux" "aarch64-linux" ]; + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + pkgsFor = system: import nixpkgs { + inherit system; + config.allowUnfree = true; + }; + in + { + homeConfigurations = let + mkHomeConfig = system: hostname: isServer: + home-manager.lib.homeManagerConfiguration { + pkgs = pkgsFor system; + modules = [ ./home.nix ]; + extraSpecialArgs = { + pkgs = pkgsFor system; + inherit opnix isServer hostname; + }; + }; + in { + "mennos-vps" = mkHomeConfig "aarch64-linux" "mennos-vps" true; + "mennos-desktop" = mkHomeConfig "x86_64-linux" "mennos-desktop" false; + "mennos-laptop" = mkHomeConfig "x86_64-linux" "mennos-laptop" false; + }; + }; +} diff --git a/config/home-manager/home.nix b/home.nix similarity index 84% rename from config/home-manager/home.nix rename to home.nix index 5acf8a7..2a369b7 100644 --- a/config/home-manager/home.nix +++ b/home.nix @@ -14,7 +14,11 @@ }; imports = - [ opnix.homeManagerModules.default ./packages/common/default.nix ] + [ + opnix.homeManagerModules.default + ./config/default.nix + ./packages/common/default.nix + ] ++ ( if isServer then [ @@ -36,5 +40,4 @@ PATH = "${config.home.homeDirectory}/go/bin:$PATH"; }; }; - } diff --git a/config/home-manager/packages/common/default.nix b/packages/common/default.nix similarity index 100% rename from config/home-manager/packages/common/default.nix rename to packages/common/default.nix diff --git a/packages/common/packages.nix b/packages/common/packages.nix new file mode 100644 index 0000000..73bbb2b --- /dev/null +++ b/packages/common/packages.nix @@ -0,0 +1,93 @@ +{ + pkgs, + hostname, + ... +}: +{ + home.packages = with pkgs; [ + # General packages + git + onefetch + gnupg + gh + nixfmt-rfc-style + nixd + nil + wget + fastfetch + _1password-cli + + # Package management + devbox + + # Development SDKs/Toolkits + gcc + pkg-config + gnumake + stdenv.cc + act # GitHub Actions CLI + + # File and directory operations + eza # Modern ls + bat # Modern cat + broot # Interactive directory navigator + du-dust # Modern du + duf # Modern df + zip + unzip + glances # Advanced system monitoring tool + procs # Modern ps + hyperfine # Benchmarking tool + + # Search and text processing + ripgrep # Modern grep + sd # Modern sed + choose # Modern cut + jq # JSON processor + yq # YAML processor + xan # CSV processor (xsv is no longer maintained) + ncdu # Disk usage analyzer + + # System monitoring and process management + procs # Modern ps + hyperfine # Benchmarking tool + bandwhich # Network utilization tool + doggo # Modern dig + gping # Ping with graph + htop # Interactive process viewer + + # Development utilities + delta # Better git diff + difftastic # Structural diff tool + fzf # Fuzzy finder + tokei # Code statistics + tealdeer # Modern tldr client + lazygit # Terminal UI for git + + # Shell and terminal + starship # Cross-shell prompt + blesh # Bash ble.sh + zellij # Modern terminal multiplexer + screen # Terminal multiplexer + + # File viewers and processors + hexyl # Modern hexdump + chafa # Terminal image viewer + glow # Markdown renderer + + # Editors + neovim + ## Neovim plugins + vimPlugins.LazyVim + + nano + micro + + # Lolz + fortune + cowsay + cmatrix + figlet + lolcat + ]; +} diff --git a/config/home-manager/packages/common/secrets.nix b/packages/common/secrets.nix similarity index 100% rename from config/home-manager/packages/common/secrets.nix rename to packages/common/secrets.nix diff --git a/config/home-manager/packages/server/default.nix b/packages/server/default.nix similarity index 100% rename from config/home-manager/packages/server/default.nix rename to packages/server/default.nix diff --git a/config/home-manager/packages/server/packages.nix b/packages/server/packages.nix similarity index 100% rename from config/home-manager/packages/server/packages.nix rename to packages/server/packages.nix diff --git a/config/home-manager/packages/workstation/default.nix b/packages/workstation/default.nix similarity index 100% rename from config/home-manager/packages/workstation/default.nix rename to packages/workstation/default.nix diff --git a/config/home-manager/packages/workstation/fix-electron-apps.sh b/packages/workstation/fix-electron-apps.sh similarity index 100% rename from config/home-manager/packages/workstation/fix-electron-apps.sh rename to packages/workstation/fix-electron-apps.sh diff --git a/config/home-manager/packages/workstation/packages.nix b/packages/workstation/packages.nix similarity index 98% rename from config/home-manager/packages/workstation/packages.nix rename to packages/workstation/packages.nix index 4cd6f4c..f6e7a2b 100644 --- a/config/home-manager/packages/workstation/packages.nix +++ b/packages/workstation/packages.nix @@ -1,4 +1,4 @@ -{ pkgs-unstable, pkgs, ... }: +{ pkgs, ... }: let # Create a script to fix electron apps fix-electron-apps = pkgs.writeScriptBin "fix-electron-apps" ( diff --git a/config/home-manager/packages/workstation/php.nix b/packages/workstation/php.nix similarity index 100% rename from config/home-manager/packages/workstation/php.nix rename to packages/workstation/php.nix diff --git a/config/home-manager/server/default.nix b/server/default.nix similarity index 100% rename from config/home-manager/server/default.nix rename to server/default.nix diff --git a/setup.sh b/setup.sh index 88f0049..b70abd9 100755 --- a/setup.sh +++ b/setup.sh @@ -169,7 +169,7 @@ validate_hostname() { update_home_manager_flake() { local hostname="$1" local isServer="$2" - local flake_file="$DOTFILES_PATH/config/home-manager/flake.nix" + local flake_file="$DOTFILES_PATH/flake.nix" # Create new configuration entry local new_config=" \"$hostname\" = home-manager.lib.homeManagerConfiguration { diff --git a/config/home-manager/workstation/default.nix b/workstation/default.nix similarity index 100% rename from config/home-manager/workstation/default.nix rename to workstation/default.nix diff --git a/config/home-manager/workstation/fonts.nix b/workstation/fonts.nix similarity index 100% rename from config/home-manager/workstation/fonts.nix rename to workstation/fonts.nix diff --git a/workstation/gtk-theme.nix b/workstation/gtk-theme.nix new file mode 100644 index 0000000..c408495 --- /dev/null +++ b/workstation/gtk-theme.nix @@ -0,0 +1,31 @@ +{ config, pkgs, ... }: +{ + # GTK Theme + gtk = { + enable = true; + + iconTheme = { + name = "Yaru"; + }; + + theme = { + name = "Yaru-dark"; + }; + + cursorTheme = { + name = "Yaru"; + }; + + gtk3.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + + gtk4.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + }; +}