From 8e6a87d657297ed04f618f5aa22d307209e7f9d7 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Sun, 16 Feb 2025 22:39:24 -0600 Subject: [PATCH] fix: helix double-entries in statusbar --- lib/modules/home/default.nix | 589 +------------------------------- lib/modules/home/ghostty/config | 14 - lib/modules/home/helix.nix | 588 +++++++++++++++++++++++++++++++ 3 files changed, 590 insertions(+), 601 deletions(-) create mode 100644 lib/modules/home/helix.nix diff --git a/lib/modules/home/default.nix b/lib/modules/home/default.nix index c726443..309c245 100644 --- a/lib/modules/home/default.nix +++ b/lib/modules/home/default.nix @@ -1,4 +1,4 @@ -{ self, slippi, ... }: +{ self, slippi, ... }@inputs: let inherit (self) outputs; inherit (outputs) homeManagerModules style; @@ -24,7 +24,6 @@ in sshconfig senpai iex - helix cargo desktop @@ -467,591 +466,7 @@ in }; }; - helix = - { - lib, - config, - ... - }: - { - config = lib.mkIf config.programs.helix.enable { - # helix rust debugger stuff - # https://github.com/helix-editor/helix/wiki/Debugger-Configurations - home.file."${config.xdg.configHome}/lldb_vscode_rustc_primer.py" = { - text = '' - import subprocess - import pathlib - import lldb - - # Determine the sysroot for the active Rust interpreter - rustlib_etc = pathlib.Path(subprocess.getoutput('rustc --print sysroot')) / 'lib' / 'rustlib' / 'etc' - if not rustlib_etc.exists(): - raise RuntimeError('Unable to determine rustc sysroot') - - # Load lldb_lookup.py and execute lldb_commands with the correct path - lldb.debugger.HandleCommand(f"""command script import "{rustlib_etc / 'lldb_lookup.py'}" """) - lldb.debugger.HandleCommand(f"""command source -s 0 "{rustlib_etc / 'lldb_commands'}" """) - ''; - }; - - /* - NOTE: Currently, helix crashes when editing markdown in certain scenarios, - presumably due to an old markdown treesitter grammar - https://github.com/helix-editor/helix/issues/9011 - https://github.com/helix-editor/helix/issues/8821 - https://github.com/tree-sitter-grammars/tree-sitter-markdown/issues/114 - */ - - programs.helix = { - languages = { - language-server = { - lexical = { - command = "lexical"; - args = [ "start" ]; - }; - - /* - next-ls = { - command = "next-ls"; - args = ["--stdout"]; - }; - - deno = { - command = "deno"; - args = ["lsp"]; - config = { - enable = true; - lint = true; - unstable = true; - }; - }; - */ - }; - - language = [ - /* - { - name = "heex"; - scope = "source.heex"; - injection-regex = "heex"; - language-servers = ["lexical"]; # "lexical" "next-ls" ? - auto-format = true; - file-types = ["heex"]; - roots = ["mix.exs" "mix.lock"]; - indent = { - tab-width = 2; - unit = " "; - }; - } - { - name = "elixir"; - language-servers = ["lexical"]; # "lexical" "next-ls" ? - auto-format = true; - } - */ - { - name = "rust"; - - debugger = { - name = "lldb-vscode"; - transport = "stdio"; - command = "lldb-vscode"; - templates = [ - { - name = "binary"; - request = "launch"; - completion = [ - { - name = "binary"; - completion = "filename"; - } - ]; - args = { - program = "{0}"; - initCommands = [ "command script import ${config.xdg.configHome}/lldb_vscode_rustc_primer.py" ]; - }; - } - ]; - }; - } - { - name = "html"; - file-types = [ "html" ]; - scope = "source.html"; - auto-format = false; - } - { - name = "nix"; - file-types = [ "nix" ]; - scope = "source.nix"; - auto-format = true; - formatter = { - command = "alejandra"; - args = [ "-" ]; - }; - } - { - name = "fish"; - file-types = [ "fish" ]; - scope = "source.fish"; - auto-format = true; - indent = { - tab-width = 2; - unit = "\t"; - }; - } - { - name = "toml"; - file-types = [ "toml" ]; - scope = "source.toml"; - auto-format = true; - } - - /* - { - name = "javascript"; - language-id = "javascript"; - grammar = "javascript"; - scope = "source.js"; - injection-regex = "^(js|javascript)$"; - file-types = ["js" "mjs"]; - shebangs = ["deno"]; - language-servers = ["deno"]; - roots = ["deno.jsonc" "deno.json"]; - formatter = { - command = "deno"; - args = ["fmt"]; - }; - auto-format = true; - comment-token = "//"; - indent = { - tab-width = 2; - unit = "\t"; - }; - } - - { - name = "typescript"; - language-id = "typescript"; - grammar = "typescript"; - scope = "source.ts"; - injection-regex = "^(ts|typescript)$"; - file-types = ["ts"]; - shebangs = ["deno"]; - language-servers = ["deno"]; - roots = ["deno.jsonc" "deno.json"]; - formatter = { - command = "deno"; - args = ["fmt"]; - }; - auto-format = true; - comment-token = "//"; - indent = { - tab-width = 2; - unit = "\t"; - }; - } - - { - name = "jsonc"; - language-id = "json"; - grammar = "jsonc"; - scope = "source.jsonc"; - injection-regex = "^(jsonc)$"; - roots = ["deno.jsonc" "deno.json"]; - file-types = ["jsonc"]; - language-servers = ["deno"]; - indent = { - tab-width = 2; - unit = " "; - }; - auto-format = true; - } - */ - ]; - }; - - settings = { - theme = "custom"; - - editor = { - soft-wrap.enable = true; - auto-pairs = false; - bufferline = "multiple"; - rulers = [ - 81 - 121 - ]; - cursorline = true; - - /* - auto-save = false; - completion-trigger-len = 1; - color-modes = false; - scrolloff = 8; - */ - - inline-diagnostics = { - cursor-line = "hint"; - other-lines = "error"; - }; - - cursor-shape = { - normal = "block"; - insert = "bar"; - select = "underline"; - }; - - file-picker.hidden = false; - indent-guides = { - render = true; - character = "▏"; - }; - - lsp = { - display-messages = true; - # display-inlay-hints = true; - }; - statusline = { - separator = " "; - mode = { - "normal" = "N"; - "insert" = "I"; - "select" = "S"; - }; - left = [ - "file-name" - "mode" - /* - "selections" - "primary-selection-length" - "position" - "position-percentage" - */ - "spinner" - "diagnostics" - "workspace-diagnostics" - ]; - /* - center = ["file-name"]; - right = ["version-control" "total-line-numbers" "file-encoding"]; - */ - }; - }; - keys = { - insert = { - j = { - k = "normal_mode"; - j = "normal_mode"; - K = "normal_mode"; - J = "normal_mode"; - }; - }; - - normal = { - "C-k" = "jump_view_up"; - "C-j" = "jump_view_down"; - "C-h" = "jump_view_left"; - "C-l" = "jump_view_right"; - "C-q" = ":quit-all!"; - # "L" = "repeat_last_motion"; - space = { - q = ":reflow 80"; - Q = ":reflow 120"; - C = ":bc!"; - h = ":toggle lsp.display-inlay-hints"; - # O = ["select_textobject_inner WORD", ":pipe-to xargs xdg-open"]; - }; - }; - - select = { - space = { - q = ":reflow 80"; - Q = ":reflow 120"; - }; - # "L" = "repeat_last_motion"; - }; - }; - }; - - themes = with style.colors.withHashPrefix; { - custom = { - "type" = orange; - - "constructor" = blue; - - "constant" = orange; - "constant.builtin" = orange; - "constant.character" = yellow; - "constant.character.escape" = orange; - - "string" = green; - "string.regexp" = orange; - "string.special" = blue; - - "comment" = { - fg = fgdim; - modifiers = [ "italic" ]; - }; - - "variable" = text; - "variable.parameter" = { - fg = red; - modifiers = [ "italic" ]; - }; - "variable.builtin" = red; - "variable.other.member" = text; - - "label" = blue; - - "punctuation" = fgdim; - "punctuation.special" = blue; - - "keyword" = purple; - "keyword.storage.modifier.ref" = yellow; - "keyword.control.conditional" = { - fg = purple; - modifiers = [ "italic" ]; - }; - - "operator" = blue; - - "function" = blue; - "function.macro" = purple; - - "tag" = purple; - "attribute" = blue; - - "namespace" = { - fg = blue; - modifiers = [ "italic" ]; - }; - - "special" = blue; - - "markup.heading.marker" = { - fg = orange; - modifiers = [ "bold" ]; - }; - "markup.heading.1" = blue; - "markup.heading.2" = yellow; - "markup.heading.3" = green; - "markup.heading.4" = orange; - "markup.heading.5" = red; - "markup.heading.6" = fg3; - "markup.list" = purple; - "markup.bold" = { - modifiers = [ "bold" ]; - }; - "markup.italic" = { - modifiers = [ "italic" ]; - }; - "markup.strikethrough" = { - modifiers = [ "crossed_out" ]; - }; - "markup.link.url" = { - fg = red; - modifiers = [ "underlined" ]; - }; - "markup.link.text" = blue; - "markup.raw" = red; - - "diff.plus" = green; - "diff.minus" = red; - "diff.delta" = blue; - - "ui.linenr" = { - fg = fgdim; - }; - "ui.linenr.selected" = { - fg = fg2; - }; - - "ui.statusline" = { - fg = fgdim; - bg = bg; - }; - "ui.statusline.inactive" = { - fg = fg3; - bg = bg2; - }; - "ui.statusline.normal" = { - fg = bg; - bg = purple; - modifiers = [ "bold" ]; - }; - "ui.statusline.insert" = { - fg = bg; - bg = green; - modifiers = [ "bold" ]; - }; - "ui.statusline.select" = { - fg = bg; - bg = red; - modifiers = [ "bold" ]; - }; - - "ui.popup" = { - fg = text; - bg = bg2; - }; - "ui.window" = { - fg = fgdim; - }; - "ui.help" = { - fg = fg2; - bg = bg2; - }; - - "ui.bufferline" = { - fg = fgdim; - bg = bg2; - }; - "ui.bufferline.background" = { - bg = bg2; - }; - - "ui.text" = text; - "ui.text.focus" = { - fg = text; - bg = bg3; - modifiers = [ "bold" ]; - }; - "ui.text.inactive" = { - fg = fg2; - }; - - "ui.virtual" = fg2; - "ui.virtual.ruler" = { - bg = bg3; - }; - "ui.virtual.indent-guide" = bg3; - "ui.virtual.inlay-hint" = { - fg = bg3; - bg = bg; - }; - - "ui.selection" = { - bg = bg5; - }; - - "ui.cursor" = { - fg = bg; - bg = text; - }; - "ui.cursor.primary" = { - fg = bg; - bg = red; - }; - "ui.cursor.match" = { - fg = orange; - modifiers = [ "bold" ]; - }; - - "ui.cursor.primary.normal" = { - fg = bg; - bg = text; - }; - "ui.cursor.primary.insert" = { - fg = bg; - bg = text; - }; - "ui.cursor.primary.select" = { - fg = bg; - bg = text; - }; - - "ui.cursor.normal" = { - fg = bg; - bg = fg; - }; - "ui.cursor.insert" = { - fg = bg; - bg = fg; - }; - "ui.cursor.select" = { - fg = bg; - bg = fg; - }; - - "ui.cursorline.primary" = { - bg = bg3; - }; - - "ui.highlight" = { - bg = bg3; - fg = bg; - modifiers = [ "bold" ]; - }; - - "ui.menu" = { - fg = fg3; - bg = bg2; - }; - "ui.menu.selected" = { - fg = text; - bg = bg3; - modifiers = [ "bold" ]; - }; - - "diagnostic.error" = { - underline = { - color = red; - style = "curl"; - }; - }; - "diagnostic.warning" = { - underline = { - color = orange; - style = "curl"; - }; - }; - "diagnostic.info" = { - underline = { - color = blue; - style = "curl"; - }; - }; - "diagnostic.hint" = { - underline = { - color = blue; - style = "curl"; - }; - }; - - error = red; - warning = orange; - info = blue; - hint = yellow; - "ui.background" = { - bg = bg; - fg = fgdim; - }; - - /* - "ui.cursorline.primary" = { bg = "default" } - "ui.cursorline.secondary" = { bg = "default" } - */ - "ui.cursorcolumn.primary" = { - bg = bg3; - }; - "ui.cursorcolumn.secondary" = { - bg = bg3; - }; - - "ui.bufferline.active" = { - fg = primary; - bg = bg3; - underline = { - color = primary; - style = ""; - }; - }; - }; - }; - }; - }; - }; + helix = import ./helix.nix inputs; htop = { programs.htop = { diff --git a/lib/modules/home/ghostty/config b/lib/modules/home/ghostty/config index 98956e9..2adc6bf 100644 --- a/lib/modules/home/ghostty/config +++ b/lib/modules/home/ghostty/config @@ -2044,20 +2044,6 @@ adw-toolbar-style = raised # which is the old style. gtk-wide-tabs = true -# If `true` (default), Ghostty will enable Adwaita theme support. This -# will make `window-theme` work properly and will also allow Ghostty to -# properly respond to system theme changes, light/dark mode changing, etc. -# This requires a GTK4 desktop with a GTK4 theme. -# -# If you are running GTK3 or have a GTK3 theme, you may have to set this -# to false to get your theme picked up properly. Having this set to true -# with GTK3 should not cause any problems, but it may not work exactly as -# expected. -# -# This configuration only has an effect if Ghostty was built with -# Adwaita support. -gtk-adwaita = true - # Custom CSS files to be loaded. # # This configuration can be repeated multiple times to load multiple files. diff --git a/lib/modules/home/helix.nix b/lib/modules/home/helix.nix new file mode 100644 index 0000000..515037e --- /dev/null +++ b/lib/modules/home/helix.nix @@ -0,0 +1,588 @@ +{ self, ... }: +let + inherit (self.outputs) style; +in +{ + lib, + config, + ... +}: +{ + config = lib.mkIf config.programs.helix.enable { + # helix rust debugger stuff + # https://github.com/helix-editor/helix/wiki/Debugger-Configurations + home.file."${config.xdg.configHome}/lldb_vscode_rustc_primer.py" = { + text = '' + import subprocess + import pathlib + import lldb + + # Determine the sysroot for the active Rust interpreter + rustlib_etc = pathlib.Path(subprocess.getoutput('rustc --print sysroot')) / 'lib' / 'rustlib' / 'etc' + if not rustlib_etc.exists(): + raise RuntimeError('Unable to determine rustc sysroot') + + # Load lldb_lookup.py and execute lldb_commands with the correct path + lldb.debugger.HandleCommand(f"""command script import "{rustlib_etc / 'lldb_lookup.py'}" """) + lldb.debugger.HandleCommand(f"""command source -s 0 "{rustlib_etc / 'lldb_commands'}" """) + ''; + }; + + /* + NOTE: Currently, helix crashes when editing markdown in certain scenarios, + presumably due to an old markdown treesitter grammar + https://github.com/helix-editor/helix/issues/9011 + https://github.com/helix-editor/helix/issues/8821 + https://github.com/tree-sitter-grammars/tree-sitter-markdown/issues/114 + */ + + programs.helix = { + languages = { + language-server = { + lexical = { + command = "lexical"; + args = [ "start" ]; + }; + + /* + next-ls = { + command = "next-ls"; + args = ["--stdout"]; + }; + + deno = { + command = "deno"; + args = ["lsp"]; + config = { + enable = true; + lint = true; + unstable = true; + }; + }; + */ + }; + + language = [ + /* + { + name = "heex"; + scope = "source.heex"; + injection-regex = "heex"; + language-servers = ["lexical"]; # "lexical" "next-ls" ? + auto-format = true; + file-types = ["heex"]; + roots = ["mix.exs" "mix.lock"]; + indent = { + tab-width = 2; + unit = " "; + }; + } + { + name = "elixir"; + language-servers = ["lexical"]; # "lexical" "next-ls" ? + auto-format = true; + } + */ + { + name = "rust"; + + debugger = { + name = "lldb-vscode"; + transport = "stdio"; + command = "lldb-vscode"; + templates = [ + { + name = "binary"; + request = "launch"; + completion = [ + { + name = "binary"; + completion = "filename"; + } + ]; + args = { + program = "{0}"; + initCommands = [ "command script import ${config.xdg.configHome}/lldb_vscode_rustc_primer.py" ]; + }; + } + ]; + }; + } + { + name = "html"; + file-types = [ "html" ]; + scope = "source.html"; + auto-format = false; + } + { + name = "nix"; + file-types = [ "nix" ]; + scope = "source.nix"; + auto-format = true; + formatter = { + command = "alejandra"; + args = [ "-" ]; + }; + } + { + name = "fish"; + file-types = [ "fish" ]; + scope = "source.fish"; + auto-format = true; + indent = { + tab-width = 2; + unit = "\t"; + }; + } + { + name = "toml"; + file-types = [ "toml" ]; + scope = "source.toml"; + auto-format = true; + } + + /* + { + name = "javascript"; + language-id = "javascript"; + grammar = "javascript"; + scope = "source.js"; + injection-regex = "^(js|javascript)$"; + file-types = ["js" "mjs"]; + shebangs = ["deno"]; + language-servers = ["deno"]; + roots = ["deno.jsonc" "deno.json"]; + formatter = { + command = "deno"; + args = ["fmt"]; + }; + auto-format = true; + comment-token = "//"; + indent = { + tab-width = 2; + unit = "\t"; + }; + } + + { + name = "typescript"; + language-id = "typescript"; + grammar = "typescript"; + scope = "source.ts"; + injection-regex = "^(ts|typescript)$"; + file-types = ["ts"]; + shebangs = ["deno"]; + language-servers = ["deno"]; + roots = ["deno.jsonc" "deno.json"]; + formatter = { + command = "deno"; + args = ["fmt"]; + }; + auto-format = true; + comment-token = "//"; + indent = { + tab-width = 2; + unit = "\t"; + }; + } + + { + name = "jsonc"; + language-id = "json"; + grammar = "jsonc"; + scope = "source.jsonc"; + injection-regex = "^(jsonc)$"; + roots = ["deno.jsonc" "deno.json"]; + file-types = ["jsonc"]; + language-servers = ["deno"]; + indent = { + tab-width = 2; + unit = " "; + }; + auto-format = true; + } + */ + ]; + }; + + settings = { + theme = "custom"; + + editor = { + soft-wrap.enable = true; + auto-pairs = false; + bufferline = "multiple"; + rulers = [ + 81 + 121 + ]; + cursorline = true; + + /* + auto-save = false; + completion-trigger-len = 1; + color-modes = false; + scrolloff = 8; + */ + + inline-diagnostics = { + cursor-line = "hint"; + other-lines = "error"; + }; + + cursor-shape = { + normal = "block"; + insert = "bar"; + select = "underline"; + }; + + file-picker.hidden = false; + indent-guides = { + render = true; + character = "▏"; + }; + + lsp = { + display-messages = true; + # display-inlay-hints = true; + }; + statusline = { + separator = " "; + mode = { + "normal" = "N"; + "insert" = "I"; + "select" = "S"; + }; + left = [ + "file-name" + "mode" + /* + "selections" + "primary-selection-length" + "position" + "position-percentage" + */ + "spinner" + "diagnostics" + "workspace-diagnostics" + ]; + /* + center = ["file-name"]; + right = ["version-control" "total-line-numbers" "file-encoding"]; + */ + }; + }; + keys = { + insert = { + j = { + k = "normal_mode"; + j = "normal_mode"; + K = "normal_mode"; + J = "normal_mode"; + }; + }; + + normal = { + "C-k" = "jump_view_up"; + "C-j" = "jump_view_down"; + "C-h" = "jump_view_left"; + "C-l" = "jump_view_right"; + "C-q" = ":quit-all!"; + # "L" = "repeat_last_motion"; + space = { + q = ":reflow 80"; + Q = ":reflow 120"; + C = ":bc!"; + h = ":toggle lsp.display-inlay-hints"; + # O = ["select_textobject_inner WORD", ":pipe-to xargs xdg-open"]; + }; + }; + + select = { + space = { + q = ":reflow 80"; + Q = ":reflow 120"; + }; + # "L" = "repeat_last_motion"; + }; + }; + }; + + themes = with style.colors.withHashPrefix; { + custom = { + "type" = orange; + + "constructor" = blue; + + "constant" = orange; + "constant.builtin" = orange; + "constant.character" = yellow; + "constant.character.escape" = orange; + + "string" = green; + "string.regexp" = orange; + "string.special" = blue; + + "comment" = { + fg = fgdim; + modifiers = [ "italic" ]; + }; + + "variable" = text; + "variable.parameter" = { + fg = red; + modifiers = [ "italic" ]; + }; + "variable.builtin" = red; + "variable.other.member" = text; + + "label" = blue; + + "punctuation" = fgdim; + "punctuation.special" = blue; + + "keyword" = purple; + "keyword.storage.modifier.ref" = yellow; + "keyword.control.conditional" = { + fg = purple; + modifiers = [ "italic" ]; + }; + + "operator" = blue; + + "function" = blue; + "function.macro" = purple; + + "tag" = purple; + "attribute" = blue; + + "namespace" = { + fg = blue; + modifiers = [ "italic" ]; + }; + + "special" = blue; + + "markup.heading.marker" = { + fg = orange; + modifiers = [ "bold" ]; + }; + "markup.heading.1" = blue; + "markup.heading.2" = yellow; + "markup.heading.3" = green; + "markup.heading.4" = orange; + "markup.heading.5" = red; + "markup.heading.6" = fg3; + "markup.list" = purple; + "markup.bold" = { + modifiers = [ "bold" ]; + }; + "markup.italic" = { + modifiers = [ "italic" ]; + }; + "markup.strikethrough" = { + modifiers = [ "crossed_out" ]; + }; + "markup.link.url" = { + fg = red; + modifiers = [ "underlined" ]; + }; + "markup.link.text" = blue; + "markup.raw" = red; + + "diff.plus" = green; + "diff.minus" = red; + "diff.delta" = blue; + + "ui.linenr" = { + fg = fgdim; + }; + "ui.linenr.selected" = { + fg = fg2; + }; + + "ui.statusline" = { + fg = fgdim; + bg = bg; + }; + "ui.statusline.inactive" = { + fg = fg3; + bg = bg2; + }; + "ui.statusline.normal" = { + fg = bg; + bg = purple; + modifiers = [ "bold" ]; + }; + "ui.statusline.insert" = { + fg = bg; + bg = green; + modifiers = [ "bold" ]; + }; + "ui.statusline.select" = { + fg = bg; + bg = red; + modifiers = [ "bold" ]; + }; + + "ui.popup" = { + fg = text; + bg = bg2; + }; + "ui.window" = { + fg = fgdim; + }; + "ui.help" = { + fg = fg2; + bg = bg2; + }; + + "ui.bufferline" = { + fg = fgdim; + bg = bg2; + }; + "ui.bufferline.background" = { + bg = bg2; + }; + + "ui.text" = text; + "ui.text.focus" = { + fg = text; + bg = bg3; + modifiers = [ "bold" ]; + }; + "ui.text.inactive" = { + fg = fg2; + }; + + "ui.virtual" = fg2; + "ui.virtual.ruler" = { + bg = bg3; + }; + "ui.virtual.indent-guide" = bg3; + "ui.virtual.inlay-hint" = { + fg = bg3; + bg = bg; + }; + + "ui.selection" = { + bg = bg5; + }; + + "ui.cursor" = { + fg = bg; + bg = text; + }; + "ui.cursor.primary" = { + fg = bg; + bg = red; + }; + "ui.cursor.match" = { + fg = orange; + modifiers = [ "bold" ]; + }; + + "ui.cursor.primary.normal" = { + fg = bg; + bg = text; + }; + "ui.cursor.primary.insert" = { + fg = bg; + bg = text; + }; + "ui.cursor.primary.select" = { + fg = bg; + bg = text; + }; + + "ui.cursor.normal" = { + fg = bg; + bg = fg; + }; + "ui.cursor.insert" = { + fg = bg; + bg = fg; + }; + "ui.cursor.select" = { + fg = bg; + bg = fg; + }; + + "ui.cursorline.primary" = { + bg = bg3; + }; + + "ui.highlight" = { + bg = bg3; + fg = bg; + modifiers = [ "bold" ]; + }; + + "ui.menu" = { + fg = fg3; + bg = bg2; + }; + "ui.menu.selected" = { + fg = text; + bg = bg3; + modifiers = [ "bold" ]; + }; + + "diagnostic.error" = { + underline = { + color = red; + style = "curl"; + }; + }; + "diagnostic.warning" = { + underline = { + color = orange; + style = "curl"; + }; + }; + "diagnostic.info" = { + underline = { + color = blue; + style = "curl"; + }; + }; + "diagnostic.hint" = { + underline = { + color = blue; + style = "curl"; + }; + }; + + error = red; + warning = orange; + info = blue; + hint = yellow; + "ui.background" = { + bg = bg; + fg = fgdim; + }; + + /* + "ui.cursorline.primary" = { bg = "default" } + "ui.cursorline.secondary" = { bg = "default" } + */ + "ui.cursorcolumn.primary" = { + bg = bg3; + }; + "ui.cursorcolumn.secondary" = { + bg = bg3; + }; + + "ui.bufferline.active" = { + fg = primary; + bg = bg3; + underline = { + color = primary; + style = ""; + }; + }; + }; + }; + }; + }; +}