From 01f8d5a2968851f006115a793c8c0d42e91f0826 Mon Sep 17 00:00:00 2001 From: Tyler Mayoff Date: Tue, 18 Mar 2025 15:26:12 -0400 Subject: [PATCH 1/3] Added helix-gpt as an lsp to helix --- dot_config/flake/machines/hinge/darwin.nix | 4 ++++ dot_config/flake/machines/hinge/home.nix | 2 ++ dot_config/helix/languages.toml | 16 ++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/dot_config/flake/machines/hinge/darwin.nix b/dot_config/flake/machines/hinge/darwin.nix index 3788b94..96857c4 100644 --- a/dot_config/flake/machines/hinge/darwin.nix +++ b/dot_config/flake/machines/hinge/darwin.nix @@ -62,6 +62,10 @@ in { jdk17 conan + + deno + lsp-ai + python312Packages.jedi-language-server ]; homebrew = { diff --git a/dot_config/flake/machines/hinge/home.nix b/dot_config/flake/machines/hinge/home.nix index 9e423b2..33700a0 100644 --- a/dot_config/flake/machines/hinge/home.nix +++ b/dot_config/flake/machines/hinge/home.nix @@ -21,6 +21,8 @@ black ruff + unstable.copilot-language-server + swiftlint unstable.helix-gpt unstable.lsp-ai diff --git a/dot_config/helix/languages.toml b/dot_config/helix/languages.toml index 1d3f5f8..022cd67 100644 --- a/dot_config/helix/languages.toml +++ b/dot_config/helix/languages.toml @@ -3,6 +3,7 @@ clangd = { command = "clangd", args = ["--header-insertion=never"]} biome = { command = "biome", args = ["lsp-proxy"] } fish_lsp = {command = "fish-lsp", args = ["start"]} slangd = {command = "slangd"} +gpt = {command = "helix-gpt", args = ["--handler", "copilot"]} [[language]] name = "fish" @@ -27,6 +28,21 @@ scope = "source.nix" auto-format = true formatter = { command = "alejandra", args = ["-q"] } +[[language]] +name = "cpp" +language-servers = [ + "clangd", + "gpt" +] + +[[language]] +name = "python" +language-servers = [ + "ruff", + "pylsp", + "gpt" +] + [[language]] name = "objc" scope = "source.objc" From 3d439c2cdc81670d324801c77b95497a52b43bbf Mon Sep 17 00:00:00 2001 From: Tyler Mayoff Date: Wed, 19 Mar 2025 08:19:40 -0400 Subject: [PATCH 2/3] Added aerospace config managed by nix --- dot_config/flake/machines/hinge/darwin.nix | 168 ++++++++++++++++++++- 1 file changed, 167 insertions(+), 1 deletion(-) diff --git a/dot_config/flake/machines/hinge/darwin.nix b/dot_config/flake/machines/hinge/darwin.nix index 96857c4..cf72267 100644 --- a/dot_config/flake/machines/hinge/darwin.nix +++ b/dot_config/flake/machines/hinge/darwin.nix @@ -107,7 +107,173 @@ in { ]; }; - # services.aerospace.enable = true; + services.aerospace = { + enable = true; + + settings = { + # You can use it to add commands that run after login to macOS user session. + # 'start-at-login' needs to be 'true' for 'after-login-command' to work + # Available commands: https://nikitabobko.github.io/AeroSpace/commands + after-login-command = []; + + # You can use it to add commands that run after AeroSpace startup. + # 'after-startup-command' is run after 'after-login-command' + # Available commands : https://nikitabobko.github.io/AeroSpace/commands + after-startup-command = []; + + # Start AeroSpace at login + # start-at-login = true + + # Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization + enable-normalization-flatten-containers = true; + enable-normalization-opposite-orientation-for-nested-containers = true; + + # See: https://nikitabobko.github.io/AeroSpace/guide#layouts + # The 'accordion-padding' specifies the size of accordion padding + # You can set 0 to disable the padding feature + accordion-padding = 30; + + # Possible values: tiles|accordion + default-root-container-layout = "tiles"; + + # Possible values: horizontal|vertical|auto + # 'auto' means: wide monitor (anything wider than high) gets horizontal orientation, + # tall monitor (anything higher than wide) gets vertical orientation + default-root-container-orientation = "auto"; + + # Mouse follows focus when focused monitor changes + # Drop it from your config, if you don't like this behavior + # See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks + # See https://nikitabobko.github.io/AeroSpace/commands#move-mouse + # Fallback value (if you omit the key): on-focused-monitor-changed = [] + on-focused-monitor-changed = ["move-mouse monitor-lazy-center"]; + + # You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag + # Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key + # Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app + automatically-unhide-macos-hidden-apps = false; + + # Possible values: (qwerty|dvorak) + # See https://nikitabobko.github.io/AeroSpace/guide#key-mapping + key-mapping.preset = "qwerty"; + + # Gaps between windows (inner-*) and between monitor edges (outer-*). + # Possible values: + # - Constant: gaps.outer.top = 8 + # - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24] + # In this example, 24 is a default value when there is no match. + # Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'. + # See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors + gaps = { + inner.horizontal = 4; + inner.vertical = 4; + outer.left = 0; + outer.bottom = 0; + outer.top = 0; + outer.right = 0; + }; + + # 'main' binding mode declaration + # See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes + # 'main' binding mode must be always presented + # Fallback value (if you omit the key): mode.main.binding = {} + # [mode.main.binding] + mode.main.binding = { + # All possible commands: https://nikitabobko.github.io/AeroSpace/commands + + # See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget + # You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3) + # alt-enter = '''exec-and-forget osascript -e ' + # tell application "Terminal" + # do script + # activate + # end tell' + # ''' + + # See: https://nikitabobko.github.io/AeroSpace/commands#layout + alt-slash = "layout tiles horizontal vertical"; + alt-comma = "layout accordion horizontal vertical"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#focus + alt-shift-left = "focus left"; + alt-shift-down = "focus down"; + alt-shift-up = "focus up"; + alt-shift-right = "focus right"; + + ctrl-alt-shift-left = "focus-monitor left --wrap-around"; + ctrl-alt-shift-right = "focus-monitor right --wrap-around"; + ctrl-alt-shift-up = "focus-monitor up --wrap-around"; + ctrl-alt-shift-down = "focus-monitor down --wrap-around"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#move + alt-shift-h = "move left"; + alt-shift-j = "move down"; + alt-shift-k = "move up"; + alt-shift-l = "move right"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#resize + alt-shift-minus = "resize smart -50"; + alt-shift-equal = "resize smart +50"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#workspace + alt-1 = "workspace 1"; + alt-2 = "workspace 2"; + alt-3 = "workspace 3"; + alt-4 = "workspace 4"; + alt-5 = "workspace 5"; + alt-6 = "workspace 6"; + alt-7 = "workspace 7"; + alt-8 = "workspace 8"; + alt-9 = "workspace 9"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace + alt-shift-1 = "move-node-to-workspace 1"; + alt-shift-2 = "move-node-to-workspace 2"; + alt-shift-3 = "move-node-to-workspace 3"; + alt-shift-4 = "move-node-to-workspace 4"; + alt-shift-5 = "move-node-to-workspace 5"; + alt-shift-6 = "move-node-to-workspace 6"; + alt-shift-7 = "move-node-to-workspace 7"; + alt-shift-8 = "move-node-to-workspace 8"; + alt-shift-9 = "move-node-to-workspace 9"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth + alt-tab = "workspace-back-and-forth"; + # See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor + alt-shift-tab = "move-workspace-to-monitor --wrap-around next"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#mode + alt-shift-semicolon = "mode service"; + }; + + mode.service.binding = { + # "service" binding mode declaration. + # See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes + esc = ["reload-config" "mode main"]; + r = ["flatten-workspace-tree" "mode main"]; # reset layout + f = ["layout floating tiling" "mode main"]; # Toggle between floating and tiling layout + backspace = ["close-all-windows-but-current" "mode main"]; + + # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2 + #s = ["layout sticky tiling", "mode main"] + + alt-shift-h = ["join-with left" "mode main"]; + alt-shift-j = ["join-with down" "mode main"]; + alt-shift-k = ["join-with up" "mode main"]; + alt-shift-l = ["join-with right" "mode main"]; + + # down = "volume down"; + # up = "volume up"; + # shift-down = ["volume set 0" "mode main"]; + }; + + workspace-to-monitor-force-assignment = { + "1" = "built-in"; + "2" = ["^DELL U2723QE \\(1\\)$" "BenQ EX2710 \\(2\\)$"]; + "3" = ["^DELL U2723QE \\(2\\)$" "BenQ EX2710 \\(1\\)$"]; + }; + }; + }; programs.fish.enable = true; programs.zsh.enable = true; From f25bf88d77a302b6a9ad782a7611a119b177de55 Mon Sep 17 00:00:00 2001 From: Tyler Mayoff Date: Wed, 19 Mar 2025 10:45:39 -0400 Subject: [PATCH 3/3] Update helix config --- dot_config/flake/home/common.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dot_config/flake/home/common.nix b/dot_config/flake/home/common.nix index e6cd860..0f34b6c 100644 --- a/dot_config/flake/home/common.nix +++ b/dot_config/flake/home/common.nix @@ -74,6 +74,9 @@ #gutters = ["line-numbers", "diagnostics", "diff"] end-of-line-diagnostics = "warning"; + bufferline = "multiple"; + line-number = "relative"; + inline-diagnostics = { cursor-line = "error"; };