103 Commits
Author SHA1 Message Date
valknar 33d3bf60a0 feat(hypr): track Hyprland config
monitors.lua stays untracked since it's machine-specific
(monitor names/resolutions won't transfer to another host).
2026-08-03 19:42:52 +02:00
valknar 50950ac071 feat(noctalia): add wallhaven bar widget 2026-08-03 19:39:59 +02:00
valknar a4c7461958 feat(noctalia): track config and enable idle behavior
Adds lock (5min) and screen-off (6min) idle timeouts, which were
previously unset so the shell never dimmed/locked.
2026-08-03 19:32:18 +02:00
valknar d75219ad2b feat: glow and glamour style 2026-06-29 17:21:39 +02:00
valknarandClaude Sonnet 4.6 39a39d359a feat(p10k): apply Catppuccin Frappé palette
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 17:12:52 +02:00
valknar 3532c50ba4 feat: catppuccin themes 2026-06-29 17:09:10 +02:00
valknar f703b52d44 chore: cleanup bin/README.md 2026-06-29 16:17:08 +02:00
valknarandClaude Sonnet 4.6 e15dd0a6c5 feat: set GLOW_STYLE and add glow to go:install:tools
- .zshenv: export GLOW_STYLE pointing to Nord theme JSON
- arty.yml: add glow v2 to go:install:tools

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 18:26:04 +02:00
valknarandClaude Sonnet 4.6 2a7059783b revert(arty): remove glow style workaround — use GLAMOUR_STYLE in zshenv
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 18:24:48 +02:00
valknarandClaude Sonnet 4.6 f9d4ab8c33 fix(arty): work around glow ~ expansion bug in style path
glow v2.1.2 validates the style path with ~ expanded but passes the
original unexpanded string to glamour's file reader, causing ENOENT.
Fix: pass the style via --style flag so bash expands $HOME before glow
sees it. Revert glow.yml style to "auto" (unused when arty drives it).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 18:20:42 +02:00
valknarandClaude Sonnet 4.6 f36e978846 fix(glow): use ~ relative path for Nord style
glow expands ~ via go-homedir, so the absolute path is not needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 18:16:16 +02:00
valknarandClaude Sonnet 4.6 52a5409495 feat: apply Nord theme to glow markdown renderer
- Add .config/glow/nord.json — full glamour style using Nord palette
  (Polar Night bg, Frost headings, Aurora syntax, Snow Storm text)
- Configure glow.yml to use the Nord style by default
- Track both glow files in .gitignore whitelist

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 18:13:10 +02:00
valknar e3f8f8a742 docs: update README.md 2026-06-24 10:47:42 +02:00
valknarandClaude Sonnet 4.6 22e8229903 fix(arty): render description as plain markdown, not blockquote
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 10:46:35 +02:00
valknarandClaude Sonnet 4.6 a8d2f457eb feat(arty): generate full Markdown doc in notes command
- New generate_notes_md(): builds title, description blockquote,
  dependencies table, per-script fenced blocks, and details section
  from the entire arty.yml using existing yq helpers
- show_notes() now accepts --raw to print raw Markdown; formatted
  mode pipes through the same glow/mdcat/python3 render pipeline
- Removes the decorative ━━━ border (clashes with full-document output)
- main() passes args[] through to show_notes for flag forwarding

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 10:42:57 +02:00
valknar 31932b956b chore: cleanup 2026-06-24 10:17:35 +02:00
valknar 30eaba9971 fix: add git config cmd to setup 2026-06-24 04:59:55 +02:00
valknar e644f32cfe fix: git config script indention in file 2026-06-23 21:05:53 +02:00
valknarandClaude Sonnet 4.6 428ec75bd4 feat(arty): add git:config script to create .gitconfig.local
Prompts for name and email, writes [user] section to ~/.gitconfig.local
which is already included by .gitconfig.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 21:02:51 +02:00
valknar a5a9bbfd26 fix: arty.yml cleanup 2026-06-23 12:28:10 +02:00
valknar 23aacf1900 feat: .gitconfig alias 2026-06-23 11:57:08 +02:00
valknar d73822bacb fix: .gitconfig 2026-06-23 11:39:10 +02:00
valknar fbaa4f170a fix: .gitconfig 2026-06-23 11:26:14 +02:00
valknar d3427ae137 fix: ssh keygen with git email 2026-06-23 10:56:32 +02:00
valknarandClaude Sonnet 4.6 98d004b4d9 fix(arty): source nvm.sh before nvm install
nvm is a shell function, not a binary — it doesn't survive into arty's
subprocess. Sourcing nvm.sh inline makes it available.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 10:35:59 +02:00
valknar 7143cf24b0 fix(zshrc): p10k sourcing 2026-06-23 07:56:25 +02:00
valknar 51b1478937 fix(p10k): show python venv 2026-06-23 06:11:23 +02:00
valknar f925b408c6 fix(vscode): do not format on save 2026-06-23 05:56:37 +02:00
valknarandClaude Sonnet 4.6 824395fd91 feat: replace bat Nord theme with Arctic Ice Studio reference
Applies the official Nord Sublime Text theme from crabique/Nord-plist
(arcticicestudio/nord-sublime-text) as the authoritative source.

Adaptations for bat/syntect:
- Strip alpha channel from all hex colors (#RRGGBBAA → #RRGGBB)
- Replace non-Nord comment color #616e88 with #4C566A (nord3)
- Remove SublimeLinter/GitGutter package-specific entries
- Consolidate JS+TS decorator and template-expression rules
- Preserve uuid from source for cache identity

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 20:20:46 +02:00
valknarandClaude Sonnet 4.6 faf2b60e8b fix: expand bat Nord theme scope coverage for consistency
- variable/variable.other/support.variable → #D8DEE9 (micro: identifier.var)
- constant.other.boolean → #81A1C1 (YAML true/false, matches micro: constant.bool)
- constant.other.symbol, support.constant → #B48EAD (Ruby symbols, built-in consts)
- keyword.other.special-method → #88C0D0 (micro: identifier)
- entity.other.attribute-name.id, punctuation.definition.entity → #81A1C1
- meta.selector → #D08770 (CSS selectors, micro: special)
- keyword.other.unit generalized (drop css-only constant.numeric.css)
- entity.name.label → #81A1C1 (tag color)
- invalid.broken, invalid.unimplemented → #BF616A (micro: error)
- constant.other.color → #8FBCBB (hex color literals)
- meta.separator → #4C566A (micro: comment)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 20:15:51 +02:00
valknarandClaude Sonnet 4.6 fb5bcbc349 fix: align bat Nord theme with micro Nord theme
- Booleans (true/false) → #81A1C1 nord9, matching micro constant.bool
- Other constants (null, undefined) stay #B48EAD nord15
- Add preprocessor/directive rule → #5E81AC nord10, matching micro preproc
- Add brackets/braces rule → #D8DEE9 nord4, matching micro symbol.brackets

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 20:05:19 +02:00
valknarandClaude Sonnet 4.6 a403cf68f3 feat: add Nord theme for bat
- .config/bat/themes/Nord.tmTheme — full tmTheme covering comments,
  strings, numbers, keywords, functions, types, tags, CSS, markdown,
  diff markup, decorators, regex, YAML/TOML/JSON, shell
- .config/bat/config — sets Nord as default theme
- arty.yml: bat:build task to rebuild cache after cloning dotfiles
- .gitignore: whitelist bat config and theme

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 19:32:33 +02:00
valknarandClaude Sonnet 4.6 af6beaff1e revert: remove SYSTEMD_COLORS/SYSTEMD_PAGER from logs — no effect without TTY
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 19:25:56 +02:00
valknarandClaude Sonnet 4.6 5a6e209b6d fix: use SYSTEMD_PAGER=cat instead of --no-pager for colored journal logs
--no-pager causes journalctl to disable ANSI colors. Setting SYSTEMD_PAGER=cat
achieves the same effect (no interactive pager) while preserving color output.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 19:21:14 +02:00
valknarandClaude Sonnet 4.6 4276a5b94e fix: pass SYSTEMD_COLORS=1 to systemctl/journalctl for colored output
systemctl and journalctl use their own color detection (SYSTEMD_COLORS env
var) independently of the terminal — child processes don't always inherit
it. Force colors for status and logs subcommands of update and backup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 19:18:17 +02:00
valknarandClaude Sonnet 4.6 65acede0a5 fix: combine Environment= into single line in systemd units
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 19:15:45 +02:00
valknarandClaude Sonnet 4.6 bf396972b0 fix: bake STACKS_DIR into systemd service units at install time
The update and backup services ran without STACKS_DIR since systemd
doesn't source ~/.env or ~/.zshrc. Capture the value at install time
and write it as Environment= in the generated unit files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 19:12:31 +02:00
valknarandClaude Sonnet 4.6 1bfea393da refactor: extend source_file with optional export mode for ~/.env
Add 'export' flag to source_file that wraps the source call in set -a/+a,
auto-exporting all variables to child processes. Use it for ~/.env instead
of a separate inline block.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 18:32:09 +02:00
valknarandClaude Sonnet 4.6 eeed7f3566 fix: source ~/.env with set -a so variables are exported to child processes
Variables set in ~/.env without explicit export were shell-local only —
child processes (scripts, subshells) never inherited them. Source it in
a dedicated section with set -a/set +a to auto-export everything.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 18:28:46 +02:00
valknarandClaude Sonnet 4.6 3ef96ff8ab fix: stacks STACKS_DIR defaults to PWD instead of ~/stacks
Makes stacks work like arty — discovers stacks in the current directory.
Explicit STACKS_DIR env var still takes precedence.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 18:11:58 +02:00
valknar 44655ccbd9 fix: remove manual setup instructions from readme 2026-06-22 17:42:10 +02:00
valknar e52029f9e5 fix: arty.yml rust install cmd 2026-06-22 17:30:01 +02:00
valknarandClaude Sonnet 4.6 39c9c04eb4 chore: remove signature.txt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 16:39:36 +02:00
valknarandClaude Sonnet 4.6 bdd4e290bd docs: update README installation section
- Update prerequisites note to mention zsh
- Add step 3 (zsh install + chsh) and step 7 (exec zsh -l)
- Remove exec zsh from after-installation steps (script does it)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 16:35:29 +02:00
valknarandClaude Sonnet 4.6 754f6d1092 fix: make .zprofile SSH agent setup fail-safe
- Create ~/.ssh dir if missing before writing agent-environment
- Suppress ssh-add errors (no keys yet is fine)
- Skip entire block if ssh-agent binary is not installed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 16:31:01 +02:00
valknarandClaude Sonnet 4.6 7f5991c1bd fix: setup and arty completion bugs
bin/setup:
- Fix Step 1 of 6 → Step 1 of 7
- exec zsh -l </dev/tty to avoid inheriting stale curl pipe on stdin
  (without /dev/tty the curl|sh pipe bytes re-run the script as zsh)
- Fall back to printing exec zsh hint when /dev/tty is unavailable
- Check completion file existence instead of trusting arty exit code

bin/arty:
- Fix cmd_completion returning exit 1 for zsh: last statement was
  [[ "$shell" == "bash" ]] which is false, changed to if/fi

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 16:26:13 +02:00
valknarandClaude Sonnet 4.6 febcd99e35 fix: exec zsh -l at end of setup, remove exec zsh hint
The script already sets zsh as default shell via chsh. Now it also
hands off to a zsh login shell immediately at the end so the user
doesn't need to run exec zsh manually.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 16:18:42 +02:00
valknarandClaude Sonnet 4.6 24e3c050c0 fix: add zsh step, use arty completion zsh --install
- Add ensure_zsh step (step 3 of 7): installs zsh via apt/brew if
  missing, sets it as default shell via chsh
- Replace manual completion write with arty completion zsh --install
- Extend PATH with ~/.local/bin and ~/go/bin before completion step so
  yq installed by arty deps (in a subshell) is found
- Renumber all steps 1-7

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 16:11:23 +02:00
valknarandClaude Sonnet 4.6 7e16a6475b feat: add bin/setup bootstrap script and update README installation docs
- bin/setup: curl-pipeable installer — re-execs with bash, detects OS,
  installs git (apt/xcode-select), clones dotfiles into ~, runs arty deps,
  installs arty zsh completion, prints next steps; fully idempotent
- README.md: replace Quick Start with Installation one-liner, add step table,
  After Installation and Manual Setup sections; fix stale ~/scripts reference
- .gitignore: whitelist bin/setup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 15:57:45 +02:00
valknarandClaude Sonnet 4.6 cfee542f35 chore: update bin scripts — rename references from .sh to plain names
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 15:39:21 +02:00