diff options
Diffstat (limited to 'dot_config')
| -rw-r--r-- | dot_config/containers/storage.conf.tmpl | 23 | ||||
| -rw-r--r-- | dot_config/nvim/lua/plugins/lsp.lua | 4 | ||||
| -rw-r--r-- | dot_config/nvim/lua/plugins/session.lua | 4 | ||||
| -rw-r--r-- | dot_config/zsh/dot_zprofile | 9 | ||||
| -rw-r--r-- | dot_config/zsh/dot_zshrc | 21 |
5 files changed, 11 insertions, 50 deletions
diff --git a/dot_config/containers/storage.conf.tmpl b/dot_config/containers/storage.conf.tmpl index 62dd35c..c304b02 100644 --- a/dot_config/containers/storage.conf.tmpl +++ b/dot_config/containers/storage.conf.tmpl @@ -1,31 +1,14 @@ {{- $machineRole := default "host" (index . "machineRole") -}} {{- if eq $machineRole "vm" -}} -# Rootless podman storage configuration. -# -# The VM uses ext4, so use the kernel overlay driver. runroot/graphroot default -# to $XDG_RUNTIME_DIR/containers and $XDG_DATA_HOME/containers/storage. +# Rootless podman storage configuration: VM ext4. [storage] driver = "overlay" [storage.options.overlay] -# Kernel >=5.13 supports rootless overlay natively on the VM, so leave -# mount_program unset and avoid fuse-overlayfs. {{- else -}} -# Rootless podman storage configuration. -# -# Uses the native kernel btrfs graph driver — much faster than fuse-overlayfs -# (especially `podman commit`) because layers are real btrfs subvolumes with -# CoW snapshots, no FUSE userspace round-trip. -# -# Switching driver requires a one-time `podman system reset --force`; the -# overlay/fuse-overlay on-disk layout is incompatible. See the migration -# helper at the dotfiles repo root (migrate-podman-to-btrfs.sh). -# -# graphroot/runroot left at defaults: -# graphroot = $XDG_DATA_HOME/containers/storage -# runroot = $XDG_RUNTIME_DIR/containers -# both are on btrfs in this setup (root fs is btrfs). +# Rootless podman storage configuration: host btrfs. +# Changing storage drivers requires `podman system reset --force`. [storage] driver = "btrfs" diff --git a/dot_config/nvim/lua/plugins/lsp.lua b/dot_config/nvim/lua/plugins/lsp.lua index 51c8a2d..3f2f11c 100644 --- a/dot_config/nvim/lua/plugins/lsp.lua +++ b/dot_config/nvim/lua/plugins/lsp.lua @@ -10,9 +10,7 @@ pcall(vim.lsp.enable, "tblgen_lsp_server") require("fidget").setup({}) -- LSPs come from Home-Manager (see nix/common.nix). lspconfig ships the --- default configs; we just opt-in per server. (Previously this was driven --- by mason-lspconfig handlers; phase p6 of the nix migration removed --- Mason entirely.) +-- default configs; we just opt in per server. vim.lsp.enable({ "autotools_ls", "basedpyright", diff --git a/dot_config/nvim/lua/plugins/session.lua b/dot_config/nvim/lua/plugins/session.lua index 30d5767..e7c28ef 100644 --- a/dot_config/nvim/lua/plugins/session.lua +++ b/dot_config/nvim/lua/plugins/session.lua @@ -1,6 +1,4 @@ --- overseer.nvim removed task bundles (commit "refactor!: task bundles get --- the axe"), so auto-session no longer persists tasks. Only DAP breakpoints --- are preserved across sessions below. +-- Persist DAP breakpoints across auto-session saves. require("auto-session").setup({ use_git_branch = true, diff --git a/dot_config/zsh/dot_zprofile b/dot_config/zsh/dot_zprofile index 9150382..cc92558 100644 --- a/dot_config/zsh/dot_zprofile +++ b/dot_config/zsh/dot_zprofile @@ -20,13 +20,8 @@ export XDG_DATA_HOME="$HOME/.local/share" export XDG_STATE_HOME="$HOME/.local/state" export XDG_CACHE_HOME="$HOME/.cache" -# Pull in /etc/profile + /etc/profile.d/*.sh. The Arch zsh package used -# to ship /etc/zsh/zprofile doing exactly this, but we removed system -# zsh in favour of nix's zsh, so we replicate it here. This is how -# flatpak (XDG_DATA_DIRS for app launchers), nix-daemon, locale, etc. -# inject themselves into login shells. Sourced AFTER our PATH setup so -# `typeset -U path` keeps nix-profile/bin + ~/.local/bin at the front -# even if /etc/profile.d snippets try to prepend duplicates. +# Pull in distro profile snippets for XDG_DATA_DIRS, nix-daemon, locale, etc. +# Sourced after PATH setup so user-managed bins stay first. [[ -r /etc/profile ]] && emulate sh -c 'source /etc/profile' # Home Manager writes host-specific session variables here. Keep this after diff --git a/dot_config/zsh/dot_zshrc b/dot_config/zsh/dot_zshrc index 113955c..d432e45 100644 --- a/dot_config/zsh/dot_zshrc +++ b/dot_config/zsh/dot_zshrc @@ -43,11 +43,7 @@ PROMPT='%B%{$fg[green]%}%n%{$reset_color%}@%{$fg[cyan]%}%m%{$reset_color%}:%b%{$ # ── Completion ──────────────────────────────────────────────────────────────── fpath=($XDG_DATA_HOME/zsh/completion $fpath) -# Pull in completions from both nix-installed packages AND the system -# package manager (pacman on Arch host, apt on Ubuntu VM). nix zsh's -# default fpath only includes its own nix-store dirs, so without these -# entries we miss completions for pacman, systemctl, flatpak, -# docker, kubectl, etc. on the host, and apt/snap on the VM. +# Pull in completions from the Nix profile and distro packages. for _d in "$HOME/.nix-profile/share/zsh/site-functions" \ "$HOME/.nix-profile/share/zsh/vendor-completions" \ /usr/share/zsh/site-functions \ @@ -437,13 +433,7 @@ alias gdbr='gdb -ex start --args' alias copilot='gh copilot --autopilot --enable-all-github-mcp-tools --yolo --resume' # ── Alias completions ───────────────────────────────────────────────────────── -# Guard each compdef on the target's completion function actually being -# loaded; otherwise zsh prints `compdef: unknown command or service: foo` -# on every login (the binary being present isn't enough — the zsh -# completion file `_foo` must be in fpath and registered by compinit). -# Notably triggers on the remote-dev VM where nix-installed packages -# ship completions into /home/.../share/zsh/site-functions but Ubuntu's -# system zsh doesn't add that path to fpath by default. +# Guard compdef calls on registered completion functions. # Usage: _dot_compdef <target-cmd> <alias>=<target> [<alias>=<target>...] _dot_compdef() { (( $+_comps[$1] )) && compdef "${@:2}" } _dot_compdef git g=git @@ -454,9 +444,7 @@ _dot_compdef lsd l=lsd la=lsd lt=lsd unfunction _dot_compdef # ── GPG agent ───────────────────────────────────────────────────────────────── -# Interactive shells can outlive the login environment that spawned them -# (notably inside zellij). If they inherited an old forwarded-agent socket, -# switch back to the machine-local gpg-agent SSH socket. +# Prefer the machine-local gpg-agent SSH socket. if [[ -z "$SSH_AUTH_SOCK" || "$SSH_AUTH_SOCK" == /tmp/ssh-* || "$SSH_AUTH_SOCK" == "$HOME/.ssh/agent.sock" ]]; then SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" export SSH_AUTH_SOCK @@ -490,8 +478,7 @@ _fzf_compgen_path() { fd --hidden --follow --exclude ".git" . "$1" } _fzf_compgen_dir() { fd --type d --hidden --follow --exclude ".git" . "$1" } # ── Plugins (must be sourced last) ──────────────────────────────────────────── -# Plugin locations: ~/.nix-profile (Home-Manager) first, Arch system path as -# fallback for un-bootstrapped states. +# Plugin locations: Nix profile first, system path second. _source_first() { local f for f in "$@"; do |
