aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/common
Commit message (Collapse)AuthorAgeFilesLines
* chore(claude): Clean up settings and add vim modeCraig Jennings2026-04-241-24/+16
| | | | | | Remove git-commit and gh-pr-create confirmation hooks, remove code-review plugin, reorder keys alphabetically, and enable vim editor mode.
* claude/settings: sync archsetup source to live — hooks + plugins + attributionCraig Jennings2026-04-201-0/+31
| | | | | | | | | | | | | | | Merges live ~/.claude/settings.json content (hooks: PreCompact + PreToolUse/Bash with git-commit-confirm, gh-pr-create-confirm, destructive-bash-confirm; enabledPlugins) into the archsetup source that velox was already symlinking. Previous state: velox symlinked archsetup source (attribution only, missing hooks/plugins). Ratio had a standalone file (hooks/plugins but no attribution). Both machines asymmetric and incomplete. Now: single source of truth in archsetup/dotfiles/common/.claude/ settings.json. Ratio needs to replace standalone file with symlink (manual step per-machine).
* claude/settings: suppress commit and PR attribution structurallyCraig Jennings2026-04-201-1/+5
| | | | | | | | | | | | | | | Adds the empty-string attribution block that disables Claude Code's auto-added attribution lines (Co-Authored-By, 'Generated with Claude Code', etc.) at the tool layer, matching the existing 'no Claude attribution' rule in protocols.org. Two complementary enforcement layers now: - prompt-level rule (protocols.org) - tool-level setting (this commit) Same intent already lives in rulesets/languages/elisp/claude/settings.json for elisp project bundles; this brings it to the global Claude Code config that ships via archsetup.
* remove aix and hey: 'ai' lives in claude-templates nowCraig Jennings2026-04-203-393/+6
| | | | | | | | | | | | | | Both the aix script and hey shell function are superseded by the unified 'ai' launcher in claude-templates (bin/ai, installed via make install). Single command, three modes, smart in-tmux behavior so all sessions survive Hyprland crashes. Per-machine setup adds a step: cd ~/projects/claude-templates && make install The orphaned ~/.local/bin/aix symlink should be removed manually on each machine after pulling this change (rm ~/.local/bin/aix). Stow re-stow would also clean it up.
* hey: convert alias to function with git awareness + FETCH_HEAD cacheCraig Jennings2026-04-202-2/+98
| | | | | | | | | | | | | | | | | | | The 'hey' alias launched claude with 'Read docs/protocols.org' — broken after the docs/ → .ai/ restructure. While updating the path, add matching behavior to aix: - Bail early if the current dir isn't a .ai/ template project - Fetch upstream only when FETCH_HEAD is stale (>10 min old) — avoids re-fetching on back-to-back invocations in the same project - Auto-pull when clean, behind, not ahead - Print a one-line git-status summary otherwise (↑N ↓N dirty) - Launch claude with the updated .ai/protocols.org path Function identical across .bashrc.d and .zshrc.d (bash/zsh compatible). Tested: non-template dir bails cleanly with exit 1; template project shows status and launches claude; repeated invocations reuse FETCH_HEAD cache silently.
* aix: synchronous fetch + git-status annotations + auto-pull if cleanCraig Jennings2026-04-201-3/+98
| | | | | | | | | | | | | | | | | | | | | | | | | Adds multi-machine sync awareness to the session launcher. Before fzf: - Fetches all candidate repos in parallel (capped at 6 concurrent) - Annotates each entry with git status: (↑N ↓N dirty), (no upstream) - Clean repos show no annotation When launching a window: - If working tree is clean, has upstream, is behind (not ahead): pull - Otherwise: open window as-is, user handles any sync manually Design choices: - Fetches are synchronous — accurate status at the cost of a brief wait on session start. Parallel execution keeps it fast (~1-2s for 22 repos). - Pull is --ff-only — never merges, never creates merge commits in aix - Diverged repos (ahead AND behind) trigger no auto-action; user decides - No stash/pop dance — unreliable in multi-project batches; prefer explicit awareness via annotation Primary use case: moving between laptop and desktop. Wrap-it-up's always-push ensures remote is current at session end; this ensures local is current at next session start.
* aix: update to .ai/ layout; filter candidates to template projectsCraig Jennings2026-04-201-4/+11
| | | | | | | | | | | | | | Two changes: - AI_INSTRUCTIONS now points at .ai/protocols.org (was docs/) — aligns with the template docs/ → .ai/ restructure - build_candidates filters directories to those with .ai/protocols.org present. Previously listed every dir under ~/code/ and ~/projects/ including third-party clones and non-template projects, which would fail silently when Claude tried to read a missing protocols file. New projects that haven't been initialized (no .ai/ yet) will not appear in the fzf list. Bootstrap those with a direct claude invocation; the first-session workflow takes over once .ai/ exists.
* feat: proton-vpn, lid switch, scratchpad resizingCraig Jennings2026-04-131-0/+6
| | | | | | | | | - archsetup: add proton-vpn-gtk-app; configure logind to ignore lid switch - hyprland.conf: autostart protonvpn-app minimized - waybar: set battery module to BAT1 (velox) - pypr: resize scratchpads to fit 80x24 minimum; enlarge monitor for btop - gitconfig: add deepsat GHE credential helpers - CLAUDE.md: update notes.org reference (lowercase)
* fix: archsetup package fixes and velox post-install improvementsCraig Jennings2026-04-101-3/+2
| | | | | | Fixed multilib, adwaita-qt, webkit2gtk, touchpad-indicator, tidaler, pocketbook URL. Added post-archsetup review tasks for laptop setup. Updated mbsyncrc for STARTTLS and waypaper config.
* chore: add Claude Code local permissions to dotfilesCraig Jennings2026-04-091-0/+11
|
* feat: add Claude Code settings to stowed dotfilesCraig Jennings2026-04-094-0/+757
| | | | | Add commands, settings, MCP config, and humanizer skill to dotfiles/common for GNU Stow management across machines.
* feat: add bind package for DNS utilities, update dotfile stateCraig Jennings2026-04-099-20/+39
| | | | | | Add bind (dig, host, nslookup) to supplemental packages and systemd-resolvconf for wireguard DNS integration. Update calibre, hyprland, hyprlock, qalculate, mimeapps, and waypaper state.
* chore: clean up lock screen comment, update calibre stateCraig Jennings2026-03-071-5/+5
| | | | Removed stale sxhkdrc reference from lock screen keybinding comment.
* feat: comprehensive mime type associations with emacsclient defaultsCraig Jennings2026-03-073-214/+190
| | | | | | | Merge all mime associations into mimeapps.list as single source of truth. Set emacsclient as default for all text/code files. Add TypeScript mime override, emacsclient.desktop with fixed Exec line, and simplify resetmimetypes to just restow + rebuild caches.
* chore: update calibre, mimeapps, authinfo, add outbox itemsCraig Jennings2026-03-075-12/+10
| | | | | Calibre window geometry and scheduler updates. Add Signal URI handlers. Move processed inbox items to outbox.
* chore(hyprland): update hypridle settings, update calibre configsCraig Jennings2026-03-062-71/+7
| | | | | Dim at 5min, lock at 7min, remove DPMS off and suspend. Update calibre sort history and window geometry.
* feat(hyprland): rebind mod+shift+f to allfloat, add chess setup scriptCraig Jennings2026-03-023-14/+31
| | | | | | | Add workspace allfloat toggle on mod+shift+f (was togglefloating, now on mod+shift+space only). Add scripts/setup-chess.sh for En Croissant, lc0, Maia, and Stockfish setup. Update log-cleanup to use filename dates instead of mtime. Update ssh and calibre configs.
* feat(archsetup): add rustup, log-cleanup cron, update configsCraig Jennings2026-02-272-0/+15
| | | | | | | Add rustup toolchain manager to developer_workstation (before AUR packages that need rust to compile). Add log-cleanup cron job with test validation. Update ISO glob for archangel naming. Add dunst icon theme, hyprlock animations, waybar log filtering.
* chore: add ssh config, update todo, add Berkeley Mono NF web fontsCraig Jennings2026-02-259-0/+6
| | | | | | | | Add deepsat GitHub Enterprise host to ssh config, reorganize todo.org with GitHub release prep tasks, add Berkeley Mono Nerd Font woff/woff2 variants, and move podman notes to outbox. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(archsetup): add texlive-plaingeneric and masterpdfeditor packagesCraig Jennings2026-02-214-7/+131
| | | | | Add texlive-plaingeneric for org-mode PDF export (ulem.sty) and masterpdfeditor from AUR for PDF form editing. Update calibre config.
* chore(calibre): update config, add Comments Cleaner and Reading List pluginsCraig Jennings2026-02-169-54/+212
|
* feat(hyprland): resize term scratchpads, rename term2 to ai-termCraig Jennings2026-02-142-9/+5
| | | | | Term scratchpads now 50x70%, renamed term2 to ai-term with updated app-id. Updated calibre window state.
* feat(ncmpcpp): bind x to toggle_consume, update calibre stateCraig Jennings2026-02-142-3/+3
| | | | | Replaced default crossfade binding with consume toggle. Calibre usage stats updated from normal use.
* chore(calibre): add cover plugins, update configCraig Jennings2026-02-145-38/+206
| | | | | Add Apple Books and Kindle hi-res cover plugins. Update GUI state and metadata source config.
* feat(archsetup): add loudgain-ffmpeg7, set mpd replaygain to autoCraig Jennings2026-02-141-1/+1
| | | | | Add loudgain-ffmpeg7 (AUR) for ReplayGain/EBU R128 scanning. Switch mpd replaygain from "track" to "auto" for album-aware playback.
* chore(calibre): update config, add plugins and tag rulesCraig Jennings2026-02-1414-59/+514
| | | | | Add Extract ISBN, Favourites Menu, Find Duplicates plugins. Update tag mapping rules, window geometries, and download timestamps.
* fix(aix): classify windows by project name instead of shell regexCraig Jennings2026-02-141-8/+28
| | | | | | sort_windows now builds known project basenames from candidate dirs and treats everything else as non-project. Prevents TUI apps (mc, ranger, htop) from being misclassified as project windows.
* feat(archsetup): add rbw Bitwarden CLI, update calibre configCraig Jennings2026-02-142-9/+1
| | | | | Add rbw (Rust Bitwarden CLI) to security section. Update calibre config state.
* feat(aix): focus newly opened project window after sortCraig Jennings2026-02-141-4/+2
| | | | | | Move select-window after sort_windows so the first new project gets focus via stable window ID. Also restructure todo.org into flat task list (V2MOM preserved in docs/v2mom.org).
* fix(aix): respect tmux base-index for shell window placementCraig Jennings2026-02-131-7/+8
| | | | | Shell window was intermittently shifting to index 1 because sort_windows hardcoded index 0, which conflicts with base-index=1 and renumber-windows.
* chore(dotfiles): add texlive-fontsextra, rebind screenshot keyCraig Jennings2026-02-132-0/+15
| | | | | Add texlive-fontsextra to archsetup for fontawesome5 resume icons. Change fullscreen screenshot from $mod+Print to Ctrl+$mod+S.
* chore(calibre): update calibre config stateCraig Jennings2026-02-124-13/+177
|
* feat(dotfiles): add coderman and ucb-lambda images to stowCraig Jennings2026-02-112-0/+0
|
* feat(aix): sort windows on every attach, add --attach flagCraig Jennings2026-02-101-11/+12
| | | | | | Sort windows (shells at 0, projects alphabetically from 1) on every session access including --attach. Move --attach check after function definitions so sort_windows is available.
* refactor(aix): extract helper functions, remove duplicationCraig Jennings2026-02-101-35/+62
| | | | | | Extract attach_session, create_window, read_selections, and build_candidates functions. Remove unused variable. Simplify new-session window ID capture.
* feat(aix): sort windows alphabetically, shells last, start from 1Craig Jennings2026-02-101-2/+27
| | | | | | Windows are reordered after creation and when adding to an existing session. Shell windows (bash/zsh) sort to the end. Window numbering starts at 1. Focus lands on the first selected window.
* feat(aix): add windows to existing session, fix special char handlingCraig Jennings2026-02-101-33/+76
| | | | | | | Allow calling aix from within the ai tmux session to add new project windows. Already-open projects are filtered from the selection list. Use tmux window IDs instead of names to fix errors with dots in directory names (e.g. chime.el).
* feat(waybar): SVG workspace circles, improved arch logo, remove mod+0Craig Jennings2026-02-101-11/+11
| | | | | | | | | | Replace per-workspace SVG mapping with hybrid approach: two circle SVGs (active gold, inactive dark) as background-image with text overlay for workspace numbers. Update arch-logo.svg with padded/crisp variant. Remove sysmonitor margin to fix bar height inflation. Remove mod+0 binding to restrict workspaces to 1-9. Sync dupre theme files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore(dotfiles): update calibre viewer window geometry and recentsCraig Jennings2026-02-092-41/+92
| | | | Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(dotfiles): manage calibre via directory symlink, add ncmpcpp bindingsCraig Jennings2026-02-097-8/+257
| | | | | | Calibre does atomic writes that break individual stow symlinks. Exclude calibre from stow and use a directory symlink instead. Add ncmpcpp keybindings for space/pause, arrow seek, playlist add, visualization.
* feat(archsetup): add zoom, webcam tools, and BRIO udev ruleCraig Jennings2026-02-091-0/+31
| | | | | | | Add zoom (AUR), cameractrls, v4l-utils to archsetup. Add Logitech BRIO udev rule for auto-applying camera settings on connect. Adopt logitech-brio-settings.sh into dotfiles. Remove flatpak (no longer used). Update wallpaper config.
* feat(archsetup): add slack with Wayland/DWM conditionalCraig Jennings2026-02-085-7/+31
| | | | | | Add slack-desktop-wayland for Hyprland, slack-desktop for DWM. Update Claude startup prompts, fix Hyprland portal/waybar startup order, add signal-desktop Wayland .desktop override.
* feat(common): add aix script for fzf-based Claude Code tmux launcherCraig Jennings2026-02-071-0/+74
| | | | | | | Provides flexible alternative to ai-assistants: multi-select project directories via fzf, then open each in a tmux window running Claude. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore(todo): add monocle layout task and update qalculate historyCraig Jennings2026-02-061-0/+5
|
* feat(themes): apply hudson theme across configsCraig Jennings2026-02-061-11/+11
| | | | Theme configs updated by set-theme: dunst, foot, fuzzel, hyprlock, waybar CSS.
* feat(dotfiles): add GPG symmetric encryption scriptsCraig Jennings2026-02-052-0/+45
| | | | | encryptfile: encrypt file with AES256, prompt to delete original decryptfile: decrypt to clipboard (wl-copy for Wayland, xclip for X11)
* chore(calibre): adopt current GUI stateCraig Jennings2026-02-021-46/+46
| | | | Window dimensions and JSON key ordering from runtime
* fix(yt-dlp): enable remote components for YouTube JS challengesCraig Jennings2026-02-021-0/+3
|
* feat(dotfiles): add resetmimetypes scriptCraig Jennings2026-02-021-0/+220
| | | | Configures default applications for file types via xdg-mime.
* feat(dotfiles): add notify notification systemCraig Jennings2026-02-0217-0/+138
| | | | | Script with type-specific icons and sounds for success, fail, alert, question, alarm, info, security, and bug notifications.