aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
* style: drop redundant [private] attribute (_-prefix already hides recipes)Libravatar sommerfeld2 days1-2/+0
|
* refactor: reorganize justfile with sync wrapper and generalized initLibravatar sommerfeld2 days2-39/+74
| | | | | | | | | | | | | - 'just sync' now wraps apply + fix for combined dotfile + package reconciliation - 'just init' generalized for first-time machine setup: regenerate chezmoi config, install git hooks, install base packages - Hidden helper recipes (_chezmoi-init, _install-hooks) via [private] so they don't clutter 'just --list' - Section banners organize the justfile into Setup, Day-to-day, Inspection, Package management, and Hidden helpers - Default recipe (bare 'just') shows the list - Doc comments reworded for clarity in the autocomplete menu
* refactor: revert auto-init, add dedicated 'just init' recipeLibravatar sommerfeld2 days3-5/+8
| | | | | | chezmoi init is only needed when .chezmoi.toml.tmpl changes, so running it on every apply is unnecessary overhead. Run 'just init' manually when the template changes.
* fix: use 'chezmoi init --apply' to regenerate config on template changesLibravatar sommerfeld2 days2-3/+4
| | | | | | | When .chezmoi.toml.tmpl changes (e.g. adding [status] exclude=scripts), plain 'chezmoi apply' warns and keeps using the stale config. Using 'init --apply' regenerates the config from the template and applies in one step. Status does a silent init first for the same reason.
* fix: pass -S . to chezmoi so apply/status work from any CWDLibravatar sommerfeld2 days2-3/+3
| | | | | | Without an explicit source, chezmoi defaults to ~/.local/share/chezmoi which doesn't exist on this setup. The post-commit hook uses git rev-parse so it works even if the hook is run from a subdirectory.
* refactor: 'just status' only reports missing for groups ≥50% installedLibravatar sommerfeld2 days1-3/+18
| | | | | | Unadopted groups (e.g. gaming, nvidia on non-gaming/non-nvidia machines) no longer spam 'missing:' lines. Undeclared detection is unchanged — any installed package not in any list is still reported.
* refactor: raise 'just fix' threshold from ≥1 to ≥50% installedLibravatar sommerfeld2 days1-6/+8
| | | | | | Avoids triggering on groups where only a single transitive dep happens to be installed. Also skips fully-installed groups (nothing to do).
* feat: add 'just fix' to top up partially-installed meta groupsLibravatar sommerfeld2 days2-1/+16
| | | | | For each group with at least one package installed, install the rest via paru --needed. Never-installed groups (✗) stay untouched.
* feat: 'just groups <name>' shows per-package breakdown for one groupLibravatar sommerfeld2 days1-2/+17
|
* docs: document sandboxed container execution environmentLibravatar sommerfeld2 days1-0/+4
|
* feat: add 'just groups' recipe to show per-group install coverageLibravatar sommerfeld2 days2-1/+21
| | | | | | | Shows install status for each meta group: ✓ (green) fully installed ~ (yellow) partially installed ✗ (red) nothing installed
* feat: add 'just add <group> <pkg>' recipeLibravatar sommerfeld2 days2-1/+18
| | | | | Appends the package to meta/<group>.txt (if not already present) and installs it via paru --needed. Equivalent to chezmoi add for packages.
* refactor: replace meta/ PKGBUILDs with plain text package listsLibravatar sommerfeld2 days59-649/+272
| | | | | | | | | | - Convert 16 PKGBUILD metapackages to simple .txt files (one package per line) - Delete all PKGBUILD, .SRCINFO, and .pkg.tar.zst binary artifacts - Clean stale packages: lf→yazi, tmux→zellij, neofetch→fastfetch, stow→chezmoi - Remove duplicate rustup in dev, duplicate mesa in intel - Add justfile recipes: install, install-all, status (unified drift detection) - Configure chezmoi to exclude scripts from status/diff output - Update copilot instructions
* docs: update copilot instructions for etc2 merge and hooksLibravatar sommerfeld2 days1-3/+6
|
* feat: add tracked git hooks and justfileLibravatar sommerfeld2 days3-0/+11
| | | | | | - .githooks/post-commit: runs chezmoi apply after every commit - justfile: 'just install-hooks' sets core.hooksPath - Added justfile and .githooks/ to .chezmoiignore
* refactor: merge etc2/ into etc/, add content hashes to run scriptsLibravatar sommerfeld2 days5-29/+23
| | | | | | | | - etc2/ only existed because stow used symlinks and reflector refused them. Chezmoi copies files, so no reason to keep them separate. - Run scripts are now .tmpl files with sha256sum hashes of deployed files. chezmoi only re-runs them when file content actually changes, avoiding unnecessary doas prompts on every apply.
* fix: use cp --remove-destination in firefox deploy scriptLibravatar sommerfeld2 days1-2/+2
|
* fix: use cp --remove-destination in etc deploy scriptLibravatar sommerfeld2 days1-2/+2
| | | | | Old stow symlinks in /etc/ point back to the repo, making source and dest the same file. --remove-destination removes the symlink first.
* fix: use CHEZMOI_SOURCE_DIR env var in run scriptsLibravatar sommerfeld2 days2-6/+6
| | | | | | Cannot call 'chezmoi source-path' from within a run script — it deadlocks on the persistent state lock. Use the CHEZMOI_SOURCE_DIR env var that chezmoi provides to run scripts instead.
* fix: use chezmoi source-path in run scriptsLibravatar sommerfeld2 days2-6/+6
| | | | | | chezmoi executes run scripts from a temp directory, so $(dirname $0) resolves to /tmp instead of the repo. Use 'chezmoi source-path' to locate etc/, etc2/, and firefox/ files.
* docs: update README and copilot instructions for chezmoiLibravatar sommerfeld2 days2-15/+25
|
* feat: add chezmoi config, ignore, and deploy scriptsLibravatar sommerfeld2 days4-0/+57
| | | | | | | - .chezmoi.toml.tmpl: minimal config with hostname data - .chezmoiignore: exclude repo-only files from deployment - run_onchange_after_deploy-etc.sh: deploy etc/ and etc2/ to /etc - run_onchange_after_deploy-firefox.sh: deploy firefox overrides to profile
* refactor: restructure to chezmoi source stateLibravatar sommerfeld2 days99-0/+4709
| | | | | | | | | Rename home/ contents to chezmoi naming conventions: - dot_ prefix for dotfiles and dot-dirs - private_dot_ for .gnupg and .ssh directories - private_ for 0600 files (nym.pub) - executable_ for scripts in .local/bin and display-toggle.sh - symlink_ for mimeapps.list symlink
* refactor: remove stow home/ directory (preparing for chezmoi source state)Libravatar sommerfeld2 days99-4709/+0
|
* chore: gitignore .worktrees/ for chezmoi migrationLibravatar sommerfeld2 days1-0/+1
|
* chore: remove .pam_environment (only needed by pam-gnupg)Libravatar sommerfeld6 days1-1/+0
|
* fix: set GPG_TTY per interactive shell, not just at loginLibravatar sommerfeld6 days2-2/+3
| | | | | | GPG_TTY was set in .zprofile (login shell) to /dev/tty1, but terminal emulator shells get /dev/pts/N. Move the export to .zshrc so each interactive shell sets the correct TTY before telling the agent.
* refactor: remove pam-gnupg and simplify gpg-agent configLibravatar sommerfeld6 days3-15/+0
| | | | | | | | | With GPG key passphrases being removed (LUKS provides at-rest encryption), pam-gnupg is no longer needed. Remove: - pam-gnupg config file and keygrip list - pam-gnupg-git from base metapackage - Cache TTL overrides (defaults are fine without passphrase caching) - allow-preset-passphrase (only needed by pam-gnupg)
* refactor: revert GNUPGHOME to default ~/.gnupgLibravatar sommerfeld6 days14-22/+0
| | | | | | | | | | | | | | Drop custom GNUPGHOME=~/.local/share/gnupg which required 6 systemd socket/service overrides with hardcoded directory hashes. GnuPG periodically changes its hash algorithm on updates, silently breaking systemd socket activation and pam-gnupg passphrase presetting. With default GNUPGHOME, stock systemd units work out of the box. - Move gpg.conf, gpg-agent.conf, sshcontrol to home/.gnupg/ - Delete all gpg-agent socket/service/dirmngr override dirs - Remove GNUPGHOME from .zprofile, .pam_environment, pam-gnupg - Remove GNUPGHOME from vdirsyncer and bridge service overrides
* fix: update stale gpg-agent socket hash in systemd overridesLibravatar sommerfeld6 days4-4/+4
| | | | | | | GnuPG changed its socket directory hash from d.hmaqciuk8y8ye3gwt9b6eth1 to d.199epr64wmzkrnk8u8qgricf. The mismatch broke systemd socket activation and pam-gnupg passphrase presetting, causing SSH auth failures after reboot.
* fix: move GNUPGHOME before SSH_AUTH_SOCK in zprofileLibravatar sommerfeld6 days1-1/+1
| | | | | | gpgconf --list-dirs agent-ssh-socket needs GNUPGHOME set to return the correct hashed socket path. Without it, SSH_AUTH_SOCK pointed to a non-existent socket, breaking GPG agent SSH authentication.
* fix: use blkid -s UUID for reliable UUID extraction in create-efi.shLibravatar sommerfeld6 days1-2/+1
| | | | | The previous 'cut -f 2 -d " "' parsing was fragile and produced incorrect results depending on blkid output format.
* docs: clarify firefox/ deployment target in copilot instructionsLibravatar sommerfeld6 days1-1/+1
| | | | Stow target is the Firefox/LibreWolf user profile directory, not home.
* refactor: clean up firefox user-overrides.jsLibravatar sommerfeld6 days1-88/+18
| | | | | | | | | - Remove 4 dead commented-out prefs (privatebrowsing.autostart, sessionstore.privacy_level, media.eme.enabled, disableIPv6 duplicate) - Remove deprecated pdfjs.disabled (dropped from arkenfox, no longer honored) - Remove deprecated browser.fixup.domainsuffixwhitelist.i2p (FF120+) - Strip arkenfox wiki comment bloat: 97 → 22 lines - Organize remaining 15 active prefs by section
* docs: clarify etc/ vs etc2/ and remove stale directory refsLibravatar sommerfeld6 days1-3/+3
| | | | | | - etc/: stow-deployable symlinks to /etc - etc2/: manual-copy configs for tools that reject symlinks - Remove references to deleted lists/ and barscripts/ directories
* chore: trim comments from etc configsLibravatar sommerfeld6 days3-62/+0
| | | | | - orphans.hook: remove commented-out alternative Exec line - reflector.conf: strip comment bloat, keep only active settings
* chore: remove unused lists/ directoryLibravatar sommerfeld6 days1-2/+0
| | | | caps2esc.map keymap file is no longer needed.
* chore: minor config improvementsLibravatar sommerfeld6 days3-4/+1
| | | | | | - wget/wgetrc: move hsts-file from /tmp to ~/.local/share for XDG compliance and persistence across reboots - cargo/config: rename to config.toml (modern Cargo convention)
* refactor: fully modernize SSH configLibravatar sommerfeld6 days1-6/+1
| | | | | | | Remove all explicit HostKeyAlgorithms, KexAlgorithms, and Ciphers lists. OpenSSH 9.x+ has excellent defaults: Ed25519 preferred, ssh-rsa disabled, strong cipher and kex ordering out of the box. Explicit lists become a liability — they prevent picking up improved defaults on upgrade.
* refactor: strip commented-default bloat from configsLibravatar sommerfeld6 days4-1389/+2
| | | | | | | | Remove ~1400 lines of commented defaults that duplicate manpage docs: - aerc.conf: 602 → 32 lines - ipython_config.py: 625 → 5 lines - MangoHud.conf: 118 → 10 lines - gamemode.ini: 97 → 7 lines
* refactor: remove dead code and defunct settingsLibravatar sommerfeld6 days7-19/+4
| | | | | | | | | | | | | | - streamlink: remove twitch-disable-hosting (removed 2022) and twitch-disable-ads (dropped by streamlink) - .zprofile: remove dead FZF_TMUX tmux check, GTK2_RC_FILES export (gtk-2.0 dir deleted), update qt5ct → qt6ct - gtk-3.0/settings.ini: remove 4 GTK2-only settings (toolbar-style, toolbar-icon-size, button-images, menu-images) - gtk-3.0/gtk.css: fix GTK2 selectors (GtkLabel→headerbar, GtkWindow→window), remove Nautilus rule (not used on sway) - npm/npmrc: remove init-module pointing to nonexistent file - mpv.conf: remove load-stats-overlay=no (references nonexistent script) - aerc.conf: change styleset nord → gruvbox for consistency
* fix: correct bugs across multiple config filesLibravatar sommerfeld6 days5-8/+4
| | | | | | | | | - zathurarc: fix broken synctex command (missing quote, wrong placeholders) and remove duplicate window-title-basename line - makepkg.conf: remove typo'd pzip/pzip2 duplicate COMPRESSGZ/BZ2 lines - cargo/config: fix placeholder mold path to -fuse-ld=mold - linkhandler: fix typo *.JGP → *.JPG - mpv.conf: update deprecated profile=gpu-hq → profile=high-quality
* fix: modernize SSH config algorithmsLibravatar sommerfeld6 days1-3/+2
| | | | | | | - Remove deprecated ssh-rsa and ssh-rsa-cert from HostKeyAlgorithms (SHA-1 based, disabled by default in OpenSSH 8.8+) - Add curve25519-sha256 (standardized name) before @libssh.org variant - Remove commented-out MACs line (dead code)
* chore: remove old meta package artifactsLibravatar sommerfeld6 days17-0/+0
| | | | | Delete 8 strisemarx-* packages (old username) and 9 old sommerfeld-* versions. Only the latest version of each package is retained.
* chore: remove stale and outdated configuration filesLibravatar sommerfeld6 days25-1955/+0
| | | | | | | | | | | | | | | | Delete 17 items confirmed unused/superseded: - pulse/ (4 files): PulseAudio configs, superseded by PipeWire - pipewire/media-session.d/: deprecated, superseded by WirePlumber - neofetch/config.conf: neofetch is abandoned/archived - .urlview: mutt-era URL viewer config - nvim ftplugin xdefaults.lua, xmodmap.lua: X11-only (xrdb/xmodmap) - Steam CS:GO + L4D2 configs: CS:GO replaced by CS2, L4D2 untracked - fakecam/ + service: abandoned virtual webcam project - noisetorch.service: project abandoned, PipeWire has built-in noise cancellation - gtk-2.0/: GTK2 is legacy - spotifyd.service.d/: no longer using spotifyd - htop/htoprc: auto-generated, not worth tracking - cookiefire, terminal-benchmark, terminal-testdrive, stop, videowrapper: unused scripts
* fix: revert TERM hack for yazi in zellijLibravatar sommerfeld6 days1-6/+2
| | | | | | | | Überzug++ Wayland overlay coordinates are wrong inside zellij panes, so the TERM=xterm-kitty workaround doesn't actually produce image previews. Image previews work natively outside zellij; inside zellij all image paths are broken until zellij adds Kitty graphics passthrough (zellij#775).
* feat: force ueberzug++ for yazi image previews inside zellijLibravatar sommerfeld6 days1-2/+6
|
* feat: replace lf with yazi file managerLibravatar sommerfeld6 days5-113/+38
| | | | | | | | - Create minimal yazi.toml: show_hidden, scrolloff=10, mtime linemode - Create keymap.toml: shell access (!), bookmark dirs (g r/./x/s/S) - Add y() shell wrapper for cd-on-exit to zshrc - Add yazi section to KEYBINDS.md - Remove old lf config
* fix: remove non-working Alt+m ToggleMouseMode zellij keybindLibravatar sommerfeld6 days2-4/+0
|
* feat: add Ctrl+Shift+u to copy URL under cursor in ghosttyLibravatar sommerfeld6 days2-0/+4
|