| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
- 'just status' now a thin wrapper for 'pkg-drift + dotfile-drift'
- 'just pkg-drift' and 'just dotfile-drift' are individually addressable
- 'just undeclared' prints undeclared packages unindented, one per line,
so they pipe cleanly into 'paru -Rs -'
- pkg-drift reuses 'just undeclared' via sed to avoid duplicating logic
|
| |
|
|
|
|
| |
Both accept an optional file path. 'just merge' without an argument
runs chezmoi merge-all (interactive across all modified files);
with an argument it merges just that one target.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- '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
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Avoids triggering on groups where only a single transitive dep
happens to be installed. Also skips fully-installed groups
(nothing to do).
|
| |
|
|
|
| |
For each group with at least one package installed, install the rest
via paru --needed. Never-installed groups (✗) stay untouched.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Shows install status for each meta group:
✓ (green) fully installed
~ (yellow) partially installed
✗ (red) nothing installed
|
| |
|
|
|
| |
Appends the package to meta/<group>.txt (if not already present) and
installs it via paru --needed. Equivalent to chezmoi add for packages.
|
| |
|
|
|
|
|
|
|
|
| |
- 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
|
| | |
|
| |
|
|
|
|
| |
- .githooks/post-commit: runs chezmoi apply after every commit
- justfile: 'just install-hooks' sets core.hooksPath
- Added justfile and .githooks/ to .chezmoiignore
|
| |
|
|
|
|
|
|
| |
- 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.
|
| | |
|
| |
|
|
|
| |
Old stow symlinks in /etc/ point back to the repo, making source and
dest the same file. --remove-destination removes the symlink first.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
| |
- .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
|
| |
|
|
|
|
|
|
|
| |
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
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
| |
The previous 'cut -f 2 -d " "' parsing was fragile and produced
incorrect results depending on blkid output format.
|
| |
|
|
| |
Stow target is the Firefox/LibreWolf user profile directory, not home.
|
| |
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
- etc/: stow-deployable symlinks to /etc
- etc2/: manual-copy configs for tools that reject symlinks
- Remove references to deleted lists/ and barscripts/ directories
|
| |
|
|
|
| |
- orphans.hook: remove commented-out alternative Exec line
- reflector.conf: strip comment bloat, keep only active settings
|
| |
|
|
| |
caps2esc.map keymap file is no longer needed.
|
| |
|
|
|
|
| |
- 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)
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
| |
- 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)
|
| |
|
|
|
| |
Delete 8 strisemarx-* packages (old username) and 9 old sommerfeld-*
versions. Only the latest version of each package is retained.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Ü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).
|