diff --git a/nixos/home-manager/programs/helix.nix b/nixos/home-manager/programs/helix.nix index df5e9f25..ecdb93c3 100644 --- a/nixos/home-manager/programs/helix.nix +++ b/nixos/home-manager/programs/helix.nix @@ -13,39 +13,133 @@ in { enable = true; package = inputs.helix.packages."${system}".helix; settings = { + theme = "solarized_peninsula"; editor = { auto-pairs = false; + file-picker.hidden = false; lsp.display-messages = true; line-number = "relative"; }; - keys.normal = { - C-p = "file_picker"; - C-b = "buffer_picker"; - "{" = ["goto_prev_paragraph" "collapse_selection"]; - "}" = ["goto_next_paragraph" "collapse_selection"]; - "0" = "goto_line_start"; - "$" = "goto_line_end"; - "^" = "goto_first_nonwhitespace"; - G = "goto_file_end"; - V = ["select_mode" "extend_to_line_bounds"]; + keys = { + normal = { + C-p = "file_picker"; + C-b = "buffer_picker"; + "{" = ["goto_prev_paragraph" "collapse_selection"]; + "}" = ["goto_next_paragraph" "collapse_selection"]; + "0" = "goto_line_start"; + "$" = "goto_line_end"; + "^" = "goto_first_nonwhitespace"; + G = "goto_file_end"; + V = ["select_mode" "extend_to_line_bounds"]; + }; + select = { + "{" = ["extend_to_line_bounds" "goto_prev_paragraph"]; + "}" = ["extend_to_line_bounds" "goto_next_paragraph"]; + "0" = "goto_line_start"; + "$" = "goto_line_end"; + "^" = "goto_first_nonwhitespace"; + G = "goto_file_end"; + D = ["extend_to_line_bounds" "delete_selection" "normal_mode"]; + C = ["goto_line_start" "extend_to_line_bounds" "change_selection"]; + "%" = "match_brackets"; + V = ["extend_to_line_bounds"]; + + i = "select_textobject_inner"; + a = "select_textobject_around"; + + k = ["extend_line_up" "extend_to_line_bounds"]; + j = ["extend_line_down" "extend_to_line_bounds"]; + }; }; - select = { - "{" = ["extend_to_line_bounds" "goto_prev_paragraph"]; - "}" = ["extend_to_line_bounds" "goto_next_paragraph"]; - "0" = "goto_line_start"; - "$" = "goto_line_end"; - "^" = "goto_first_nonwhitespace"; - G = "goto_file_end"; - D = ["extend_to_line_bounds" "delete_selection" "normal_mode"]; - C = ["goto_line_start" "extend_to_line_bounds" "change_selection"]; - "%" = "match_brackets"; - V = ["extend_to_line_bounds"]; - - i = "select_textobject_inner"; - a = "select_textobject_around"; - - k = ["extend_line_up" "extend_to_line_bounds"]; - j = ["extend_line_down" "extend_to_line_bounds"]; + }; + themes = { + solarized_peninsula = { + palette = { + base03 = "#002b36"; + base025 = "#03303b"; + base02 = "#073642"; + base0175 = "#16404b"; + base015 = "#2c4f59"; + base01 = "#586e75"; + base00 = "#657b83"; + base0 = "#839496"; + base1 = "#93a1a1"; + base2 = "#eee8d5"; + base3 = "#fdf6e3"; + yellow = "#b58900"; + orange = "#cb4b16"; + red = "#dc322f"; + magenta = "#d33682"; + violet = "#6c71c4"; + blue = "#268bd2"; + cyan = "#2aa198"; + green = "#859900"; + transparent = "none"; + gray = "#665c54"; + dark-gray = "#3c3836"; + white = "#fbf1c7"; + black = "#282828"; + }; + "ui.menu" = "transparent"; + "ui.menu.selected" = {modifiers = ["reversed"];}; + "ui.linenr" = { + fg = "gray"; + bg = "dark-gray"; + }; + "ui.popup" = {modifiers = ["reversed"];}; + "ui.linenr.selected" = { + fg = "white"; + bg = "black"; + modifiers = ["bold"]; + }; + "ui.selection" = { + fg = "black"; + bg = "blue"; + }; + "ui.selection.primary" = {modifiers = ["reversed"];}; + "comment" = {fg = "gray";}; + "ui.statusline" = { + fg = "white"; + bg = "dark-gray"; + }; + "ui.statusline.inactive" = { + fg = "dark-gray"; + bg = "white"; + }; + "ui.help" = { + fg = "dark-gray"; + bg = "white"; + }; + "ui.cursor" = {modifiers = ["reversed"];}; + "variable" = "red"; + "variable.builtin" = "orange"; + "constant.numeric" = "orange"; + "constant" = "orange"; + "attributes" = "yellow"; + "type" = "yellow"; + "ui.cursor.match" = { + fg = "yellow"; + modifiers = ["underlined"]; + }; + "string" = "green"; + "variable.other.member" = "red"; + "constant.character.escape" = "cyan"; + "function" = "blue"; + "constructor" = "blue"; + "special" = "blue"; + "keyword" = "magenta"; + "label" = "magenta"; + "namespace" = "blue"; + "diff.plus" = "green"; + "diff.delta" = "yellow"; + "diff.minus" = "red"; + "diagnostic" = {modifiers = ["underlined"];}; + "ui.gutter" = {bg = "black";}; + "info" = "blue"; + "hint" = "dark-gray"; + "debug" = "dark-gray"; + "warning" = "yellow"; + "error" = "red"; }; }; languages = [