diff --git a/modules/common/jujutsu.nix b/modules/common/jujutsu.nix new file mode 100644 index 0000000..3ec91c5 --- /dev/null +++ b/modules/common/jujutsu.nix @@ -0,0 +1,36 @@ +{ pkgs, lib, ... }: +let + inherit (lib) getExe; +in +{ + home-manager.sharedModules = [ + { + programs.jujutsu = { + enable = true; + + settings = { + user = { + name = "TheGeneralist"; + email = "180094941+thegeneralist01@users.noreply.github.com"; + }; + + ui = { + default-command = "log"; + diff-formatter = [ (getExe pkgs.difftastic) "--color=always" ]; + graph.style = "curved"; + pager = ":builtin"; + }; + + aliases = { + ".." = [ "edit" "@-" ]; + ",," = [ "edit" "@+" ]; + tug = [ "bookmark" "set" "main" "-r" "@-" ]; + ship = [ "git" "push" "--bookmark" "main" ]; + }; + + remotes.origin.auto-track-bookmarks = "glob:*"; + }; + }; + } + ]; +} diff --git a/modules/common/neovim.nix b/modules/common/neovim.nix index 111c837..f4937e9 100644 --- a/modules/common/neovim.nix +++ b/modules/common/neovim.nix @@ -34,7 +34,6 @@ in basedpyright black - nodejs dart-sass pnpm_9 ] @@ -75,6 +74,7 @@ in "/opt/homebrew/bin" "/opt/homebrew/opt" "$HOME/.npm-packages/bin" + "$HOME/.opencode/bin" "$PNPM_HOME" "$BUN_INSTALL/bin" ]; diff --git a/modules/common/packages.nix b/modules/common/packages.nix index 7e484be..bde389f 100644 --- a/modules/common/packages.nix +++ b/modules/common/packages.nix @@ -51,6 +51,23 @@ in { carapace bat + sd + glow + dust + hyperfine + tokei + procs + bandwhich + + watchexec + git-absorb + ouch + xh + duf + grex + + mise + mosh ]) ++ optionals (pkgs ? bat-extras && pkgs.bat-extras ? core) [ diff --git a/modules/common/shell/0_nushell.nix b/modules/common/shell/0_nushell.nix index 7479919..d768763 100644 --- a/modules/common/shell/0_nushell.nix +++ b/modules/common/shell/0_nushell.nix @@ -70,6 +70,10 @@ in extraConfig = /* nu */ '' use ${pkgs.writeTextDir "omp-completions.nu" (readFile ./omp-completions.nu)}/omp-completions.nu * + + if (which mise | is-not-empty) { + $env.PATH = ($env.PATH | prepend $"($env.HOME)/.local/share/mise/shims") + } ''; }; } diff --git a/modules/common/shell/default.nix b/modules/common/shell/default.nix index d81cf67..a5ff6e4 100644 --- a/modules/common/shell/default.nix +++ b/modules/common/shell/default.nix @@ -207,6 +207,9 @@ in if command -sq omp omp completions fish | source end + if command -sq mise + mise activate fish | source + end ''; functions = { diff --git a/modules/darwin/karabiner.nix b/modules/darwin/karabiner.nix index 7c8ec32..b4149d3 100644 --- a/modules/darwin/karabiner.nix +++ b/modules/darwin/karabiner.nix @@ -14,7 +14,10 @@ let openHeliumT3Chat = "open -na Helium.app --args https://t3.chat/"; openHeliumExaSearch = "open -na Helium.app --args https://exa.ai/search"; openChatGPT = "open -na Helium.app --args https://chatgpt.com/"; + openChatGPTIncognito = "open -na Helium.app --args https://chatgpt.com/?temporary-chat=true"; openClaude = "open -na Helium.app --args https://claude.ai/new"; + openClaudeIncognito = "open -na Helium.app --args https://claude.ai/new?incognito="; + openHeliumTelegram = "open -na Helium.app --args https://web.telegram.org/k/"; numbers = [ "1" @@ -392,25 +395,6 @@ let } ]; } - { - description = "Hyper+T opens T3 Chat"; - manipulators = [ - { - from = { - key_code = "t"; - modifiers = { - mandatory = hyperModifiers; - }; - }; - to = [ - { - shell_command = openHeliumT3Chat; - } - ]; - type = "basic"; - } - ]; - } { description = "Hyper+E opens Exa Search"; manipulators = [ @@ -430,6 +414,25 @@ let } ]; } + { + description = "Hyper+W opens Telegram"; + manipulators = [ + { + from = { + key_code = "w"; + modifiers = { + mandatory = hyperModifiers; + }; + }; + to = [ + { + shell_command = openHeliumTelegram; + } + ]; + type = "basic"; + } + ]; + } { description = "Toggle Focus Mode with F6"; manipulators = [ @@ -480,6 +483,25 @@ let } ]; } + { + description = "Hyper+V opens ChatGPT (incognito)"; + manipulators = [ + { + from = { + key_code = "v"; + modifiers = { + mandatory = hyperModifiers; + }; + }; + to = [ + { + shell_command = openChatGPTIncognito; + } + ]; + type = "basic"; + } + ]; + } { description = "Hyper+C opens ChatGPT"; manipulators = [ @@ -518,6 +540,25 @@ let } ]; } + { + description = "Hyper+; opens Claude (incognito)"; + manipulators = [ + { + from = { + key_code = "semicolon"; + modifiers = { + mandatory = hyperModifiers; + }; + }; + to = [ + { + shell_command = openClaudeIncognito; + } + ]; + type = "basic"; + } + ]; + } { description = "Hyper+0 copies a rephrase prompt into the clipboard"; manipulators = [ @@ -537,6 +578,25 @@ let } ]; } + { + description = "Hyper+9 copies an orchestrate prompt into the clipboard"; + manipulators = [ + { + from = { + key_code = "9"; + modifiers = { + mandatory = hyperModifiers; + }; + }; + to = [ + { + shell_command = "printf '%s' $'/goal set\\n\\nI had this on my today\\'s agenda regarding archivr feat impl\\'s or bug fixes:\\n...\\n\\nThis is going to be a PR. I like atomic commits. (I reckon you won\\'t be needing many commits for this, since it\\'s a small task, I assume.)\\n\\nIf you have any questions before you start (i.e. to decide on something), then shoot!\\n\\nOtherwise, you\\'re allowed to Orchestrate and delegate if/when necessary.\\nUse agents and/or skills for suited tasks (design/planning/tests/etc.), if needed.' | pbcopy"; + } + ]; + type = "basic"; + } + ]; + } ]; };