diff --git a/.dotter/global.toml b/.dotter/global.toml index 9b26db9f..894e34a3 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -13,11 +13,14 @@ LICENSE = "" default_target_type = "symbolic" [base] -depends = [ "default", "spotify", "terminal", "local", "misc", "dev", "apps", "gtk" ] +depends = [ "default", "spotify", "terminal", "local", "misc", "dev", "apps", "gtk", "ai" ] [x11] depends = [ "base", "awesome", "picom", "dunst", "rofi" ] +[ai] +depends = [ "codex", "claude", "opencode" ] + [x11.files] "config/zsh/.zprofile-x11" = "~/.config/zsh/.zprofile" "config/x11/" = "~/.config/x11/" @@ -179,14 +182,21 @@ depends = [ "tmux", "zsh" ] "config/asm-lsp/" = "~/.config/asm-lsp/" "config/containers/" = "~/.config/containers/" - [apps.files] "config/Vencord/" = "~/.config/Vencord/" "config/obs-studio/" = "~/.config/obs-studio/" -"config/opencode/" = "~/.config/opencode/" "config/viu/" = "~/.config/viu/" - [gtk.files] "config/gtk-3.0/" = "~/.config/gtk-3.0/" "config/gtk-4.0/" = "~/.config/gtk-4.0/" + +[codex.files] +# "config/AGENTS.md" = "~/.codex/AGENTS.md" + +[claude.files] +# "config/AGENTS.md" = "~/.claude/AGENTS.md" + +[opencode.files] +"config/opencode/" = "~/.config/opencode/" +"config/AGENTS.md" = "~/.config/opencode/AGENTS.md" diff --git a/.gitignore b/.gitignore index fd3ea1a8..97935804 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ config/transmission-daemon.json .dotter/cache.toml .dotter/cache spicetify/ -fish_variables +fish_variables* diff --git a/config/AGENTS.md b/config/AGENTS.md new file mode 100644 index 00000000..ac6c7ee7 --- /dev/null +++ b/config/AGENTS.md @@ -0,0 +1,54 @@ +# Agent Instructions + +## Commit Discipline + +After every discrete change (feature, fix, refactor, etc.), you **must** suggest +a commit message. You may **not** run `git commit` yourself -- the user commits +manually. + +Commit messages must follow [Conventional Commits](https://www.conventionalcommits.org/): + +```text +(): + +[optional body] + +[optional footer(s)] +``` + +Valid types: `feat`, `fix`, `refactor`, `chore`, `docs`, `test`, `style`, `perf`, `ci`, `build` + +**Example suggestion format** (append to your response after a change): + +```text +feat(auth): add JWT refresh token rotation + +- rotate refresh token on every use +- invalidate old token immediately after issuance +- store token family to detect reuse attacks +``` + +Keep changes **atomic** -- one logical unit per commit. If a task spans multiple +concerns, break it into sequential steps and suggest a commit after each. + +## Coding Style + +- Do **not** write full implementations unless explicitly asked. +- Prefer hints, pseudocode, or function/type signatures to guide the user. +- When showing a signature, use the project's actual language and conventions. + +**Acceptable:** + +```rust +async fn refresh_token(token: String) -> AuthSession; +``` + +**Not acceptable (unless asked):** a full implementation with all logic filled in. + +If you believe a full implementation is warranted, ask first. + +## General + +- Prefer FOSS tooling when making suggestions. +- Respect existing project structure -- don't reorganize files unless asked. +- If a task is ambiguous, ask a clarifying question before proceeding. diff --git a/config/bat/themes b/config/bat/themes new file mode 120000 index 00000000..f5ff9eeb --- /dev/null +++ b/config/bat/themes @@ -0,0 +1 @@ +../tmThemes/ \ No newline at end of file diff --git a/config/fish/completions/dotter.fish b/config/fish/completions/dotter.fish new file mode 100644 index 00000000..5193c68c --- /dev/null +++ b/config/fish/completions/dotter.fish @@ -0,0 +1,102 @@ +# Print an optspec for argparse to handle cmd's options that are independent of any subcommand. +function __fish_dotter_global_optspecs + string join \n g/global-config= l/local-config= cache-file= cache-directory= pre-deploy= post-deploy= pre-undeploy= post-undeploy= d/dry-run v/verbose q/quiet f/force y/noconfirm p/patch diff-context-lines= h/help V/version +end + +function __fish_dotter_needs_command + # Figure out if the current invocation already has a command. + set -l cmd (commandline -opc) + set -e cmd[1] + argparse -s (__fish_dotter_global_optspecs) -- $cmd 2>/dev/null + or return + if set -q argv[1] + # Also print the command, so this can be used to figure out what it is. + echo $argv[1] + return 1 + end + return 0 +end + +function __fish_dotter_using_subcommand + set -l cmd (__fish_dotter_needs_command) + test -z "$cmd" + and return 1 + contains -- $cmd[1] $argv +end + +complete -c dotter -n "__fish_dotter_needs_command" -s g -l global-config -d 'Location of the global configuration' -r -F +complete -c dotter -n "__fish_dotter_needs_command" -s l -l local-config -d 'Location of the local configuration' -r -F +complete -c dotter -n "__fish_dotter_needs_command" -l cache-file -d 'Location of cache file' -r -F +complete -c dotter -n "__fish_dotter_needs_command" -l cache-directory -d 'Directory to cache into' -r -F +complete -c dotter -n "__fish_dotter_needs_command" -l pre-deploy -d 'Location of optional pre-deploy hook' -r -F +complete -c dotter -n "__fish_dotter_needs_command" -l post-deploy -d 'Location of optional post-deploy hook' -r -F +complete -c dotter -n "__fish_dotter_needs_command" -l pre-undeploy -d 'Location of optional pre-undeploy hook' -r -F +complete -c dotter -n "__fish_dotter_needs_command" -l post-undeploy -d 'Location of optional post-undeploy hook' -r -F +complete -c dotter -n "__fish_dotter_needs_command" -l diff-context-lines -d 'Amount of lines that are printed before and after a diff hunk' -r +complete -c dotter -n "__fish_dotter_needs_command" -s d -l dry-run -d 'Dry run - don\'t do anything, only print information. Implies -v at least once' +complete -c dotter -n "__fish_dotter_needs_command" -s v -l verbose -d 'Verbosity level - specify up to 3 times to get more detailed output. Specifying at least once prints the differences between what was before and after Dotter\'s run' +complete -c dotter -n "__fish_dotter_needs_command" -s q -l quiet -d 'Quiet - only print errors' +complete -c dotter -n "__fish_dotter_needs_command" -s f -l force -d 'Force - instead of skipping, overwrite target files if their content is unexpected. Overrides --dry-run' +complete -c dotter -n "__fish_dotter_needs_command" -s y -l noconfirm -d 'Assume "yes" instead of prompting when removing empty directories' +complete -c dotter -n "__fish_dotter_needs_command" -s p -l patch -d 'Take standard input as an additional files/variables patch, added after evaluating `local.toml`. Assumes --noconfirm flag because all of stdin is taken as the patch' +complete -c dotter -n "__fish_dotter_needs_command" -s h -l help -d 'Print help' +complete -c dotter -n "__fish_dotter_needs_command" -s V -l version -d 'Print version' +complete -c dotter -n "__fish_dotter_needs_command" -f -a "deploy" -d 'Deploy the files to their respective targets. This is the default subcommand' +complete -c dotter -n "__fish_dotter_needs_command" -f -a "undeploy" -d 'Delete all deployed files from their target locations. Note that this operates on all files that are currently in cache' +complete -c dotter -n "__fish_dotter_needs_command" -f -a "init" -d 'Initialize global.toml with a single package containing all the files in the current directory pointing to a dummy value and a local.toml that selects that package' +complete -c dotter -n "__fish_dotter_needs_command" -f -a "watch" -d 'Run continuously, watching the repository for changes and deploying as soon as they happen. Can be ran with `--dry-run`' +complete -c dotter -n "__fish_dotter_needs_command" -f -a "gen-completions" -d 'Generate shell completions' +complete -c dotter -n "__fish_dotter_needs_command" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' +complete -c dotter -n "__fish_dotter_using_subcommand deploy" -s g -l global-config -d 'Location of the global configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand deploy" -s l -l local-config -d 'Location of the local configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand deploy" -s d -l dry-run -d 'Dry run - don\'t do anything, only print information. Implies -v at least once' +complete -c dotter -n "__fish_dotter_using_subcommand deploy" -s v -l verbose -d 'Verbosity level - specify up to 3 times to get more detailed output. Specifying at least once prints the differences between what was before and after Dotter\'s run' +complete -c dotter -n "__fish_dotter_using_subcommand deploy" -s q -l quiet -d 'Quiet - only print errors' +complete -c dotter -n "__fish_dotter_using_subcommand deploy" -s f -l force -d 'Force - instead of skipping, overwrite target files if their content is unexpected. Overrides --dry-run' +complete -c dotter -n "__fish_dotter_using_subcommand deploy" -s y -l noconfirm -d 'Assume "yes" instead of prompting when removing empty directories' +complete -c dotter -n "__fish_dotter_using_subcommand deploy" -s p -l patch -d 'Take standard input as an additional files/variables patch, added after evaluating `local.toml`. Assumes --noconfirm flag because all of stdin is taken as the patch' +complete -c dotter -n "__fish_dotter_using_subcommand deploy" -s h -l help -d 'Print help' +complete -c dotter -n "__fish_dotter_using_subcommand undeploy" -s g -l global-config -d 'Location of the global configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand undeploy" -s l -l local-config -d 'Location of the local configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand undeploy" -s d -l dry-run -d 'Dry run - don\'t do anything, only print information. Implies -v at least once' +complete -c dotter -n "__fish_dotter_using_subcommand undeploy" -s v -l verbose -d 'Verbosity level - specify up to 3 times to get more detailed output. Specifying at least once prints the differences between what was before and after Dotter\'s run' +complete -c dotter -n "__fish_dotter_using_subcommand undeploy" -s q -l quiet -d 'Quiet - only print errors' +complete -c dotter -n "__fish_dotter_using_subcommand undeploy" -s f -l force -d 'Force - instead of skipping, overwrite target files if their content is unexpected. Overrides --dry-run' +complete -c dotter -n "__fish_dotter_using_subcommand undeploy" -s y -l noconfirm -d 'Assume "yes" instead of prompting when removing empty directories' +complete -c dotter -n "__fish_dotter_using_subcommand undeploy" -s p -l patch -d 'Take standard input as an additional files/variables patch, added after evaluating `local.toml`. Assumes --noconfirm flag because all of stdin is taken as the patch' +complete -c dotter -n "__fish_dotter_using_subcommand undeploy" -s h -l help -d 'Print help' +complete -c dotter -n "__fish_dotter_using_subcommand init" -s g -l global-config -d 'Location of the global configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand init" -s l -l local-config -d 'Location of the local configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand init" -s d -l dry-run -d 'Dry run - don\'t do anything, only print information. Implies -v at least once' +complete -c dotter -n "__fish_dotter_using_subcommand init" -s v -l verbose -d 'Verbosity level - specify up to 3 times to get more detailed output. Specifying at least once prints the differences between what was before and after Dotter\'s run' +complete -c dotter -n "__fish_dotter_using_subcommand init" -s q -l quiet -d 'Quiet - only print errors' +complete -c dotter -n "__fish_dotter_using_subcommand init" -s f -l force -d 'Force - instead of skipping, overwrite target files if their content is unexpected. Overrides --dry-run' +complete -c dotter -n "__fish_dotter_using_subcommand init" -s y -l noconfirm -d 'Assume "yes" instead of prompting when removing empty directories' +complete -c dotter -n "__fish_dotter_using_subcommand init" -s p -l patch -d 'Take standard input as an additional files/variables patch, added after evaluating `local.toml`. Assumes --noconfirm flag because all of stdin is taken as the patch' +complete -c dotter -n "__fish_dotter_using_subcommand init" -s h -l help -d 'Print help' +complete -c dotter -n "__fish_dotter_using_subcommand watch" -s g -l global-config -d 'Location of the global configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand watch" -s l -l local-config -d 'Location of the local configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand watch" -s d -l dry-run -d 'Dry run - don\'t do anything, only print information. Implies -v at least once' +complete -c dotter -n "__fish_dotter_using_subcommand watch" -s v -l verbose -d 'Verbosity level - specify up to 3 times to get more detailed output. Specifying at least once prints the differences between what was before and after Dotter\'s run' +complete -c dotter -n "__fish_dotter_using_subcommand watch" -s q -l quiet -d 'Quiet - only print errors' +complete -c dotter -n "__fish_dotter_using_subcommand watch" -s f -l force -d 'Force - instead of skipping, overwrite target files if their content is unexpected. Overrides --dry-run' +complete -c dotter -n "__fish_dotter_using_subcommand watch" -s y -l noconfirm -d 'Assume "yes" instead of prompting when removing empty directories' +complete -c dotter -n "__fish_dotter_using_subcommand watch" -s p -l patch -d 'Take standard input as an additional files/variables patch, added after evaluating `local.toml`. Assumes --noconfirm flag because all of stdin is taken as the patch' +complete -c dotter -n "__fish_dotter_using_subcommand watch" -s h -l help -d 'Print help' +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s s -l shell -d 'Set the shell for generating completions [values: bash, elvish, fish, powerShell, zsh]' -r -f -a "{bash\t'',elvish\t'',fish\t'',powershell\t'',zsh\t''}" +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -l to -d 'Set the out directory for writing completions file' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s g -l global-config -d 'Location of the global configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s l -l local-config -d 'Location of the local configuration' -r -F +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s d -l dry-run -d 'Dry run - don\'t do anything, only print information. Implies -v at least once' +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s v -l verbose -d 'Verbosity level - specify up to 3 times to get more detailed output. Specifying at least once prints the differences between what was before and after Dotter\'s run' +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s q -l quiet -d 'Quiet - only print errors' +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s f -l force -d 'Force - instead of skipping, overwrite target files if their content is unexpected. Overrides --dry-run' +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s y -l noconfirm -d 'Assume "yes" instead of prompting when removing empty directories' +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s p -l patch -d 'Take standard input as an additional files/variables patch, added after evaluating `local.toml`. Assumes --noconfirm flag because all of stdin is taken as the patch' +complete -c dotter -n "__fish_dotter_using_subcommand gen-completions" -s h -l help -d 'Print help' +complete -c dotter -n "__fish_dotter_using_subcommand help; and not __fish_seen_subcommand_from deploy undeploy init watch gen-completions help" -f -a "deploy" -d 'Deploy the files to their respective targets. This is the default subcommand' +complete -c dotter -n "__fish_dotter_using_subcommand help; and not __fish_seen_subcommand_from deploy undeploy init watch gen-completions help" -f -a "undeploy" -d 'Delete all deployed files from their target locations. Note that this operates on all files that are currently in cache' +complete -c dotter -n "__fish_dotter_using_subcommand help; and not __fish_seen_subcommand_from deploy undeploy init watch gen-completions help" -f -a "init" -d 'Initialize global.toml with a single package containing all the files in the current directory pointing to a dummy value and a local.toml that selects that package' +complete -c dotter -n "__fish_dotter_using_subcommand help; and not __fish_seen_subcommand_from deploy undeploy init watch gen-completions help" -f -a "watch" -d 'Run continuously, watching the repository for changes and deploying as soon as they happen. Can be ran with `--dry-run`' +complete -c dotter -n "__fish_dotter_using_subcommand help; and not __fish_seen_subcommand_from deploy undeploy init watch gen-completions help" -f -a "gen-completions" -d 'Generate shell completions' +complete -c dotter -n "__fish_dotter_using_subcommand help; and not __fish_seen_subcommand_from deploy undeploy init watch gen-completions help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' diff --git a/config/fish/conf.d/00-profile.fish b/config/fish/conf.d/00-profile.fish index 805f9aea..79fc9d60 100644 --- a/config/fish/conf.d/00-profile.fish +++ b/config/fish/conf.d/00-profile.fish @@ -8,7 +8,6 @@ set -gx XDG_STATE_HOME "$HOME/.local/share" # Java set -gx JAVA_HOME "/usr/lib/jvm/java-21-openjdk" - # Bun set -gx BUN_INSTALL "$XDG_DATA_HOME/bun" diff --git a/config/git/check_email.sh b/config/git/check_email.sh old mode 100644 new mode 100755 diff --git a/config/waybar/mediaplayer.py b/config/waybar/mediaplayer.py deleted file mode 100644 index e5a0d9b4..00000000 --- a/config/waybar/mediaplayer.py +++ /dev/null @@ -1 +0,0 @@ -#!/usr/bin/env python3 diff --git a/config/waybar/scripts/dunst.sh b/config/waybar/scripts/dunst.sh old mode 100644 new mode 100755 diff --git a/config/waybar/scripts/github.sh b/config/waybar/scripts/github.sh old mode 100644 new mode 100755 diff --git a/config/waybar/scripts/mediaplayer.py b/config/waybar/scripts/mediaplayer.py old mode 100644 new mode 100755 diff --git a/config/waybar/scripts/pipewire.sh b/config/waybar/scripts/pipewire.sh old mode 100644 new mode 100755 diff --git a/config/waybar/scripts/wireguard-rofi.sh b/config/waybar/scripts/wireguard-rofi.sh old mode 100644 new mode 100755 diff --git a/config/waybar/scripts/wireguard.sh b/config/waybar/scripts/wireguard.sh old mode 100644 new mode 100755 diff --git a/local/bin/ani-skip.bak b/local/bin/ani-skip.bak old mode 100644 new mode 100755 diff --git a/local/bin/any2av1mkv b/local/bin/any2av1mkv old mode 100644 new mode 100755 diff --git a/local/bin/get-spotify-id b/local/bin/get-spotify-id old mode 100644 new mode 100755 diff --git a/local/bin/podman-cleanup b/local/bin/podman-cleanup old mode 100644 new mode 100755 diff --git a/local/share/fonts/jetbrainsmono/AUTHORS.txt b/local/share/fonts/jetbrainsmono/AUTHORS.txt old mode 100644 new mode 100755