{ config, pkgs, rice, ... }: { home = { packages = with pkgs; [ helix nixfmt # nix formater nil # nix language server python311Packages.python-lsp-server ]; sessionVariables = { EDITOR = "hx"; VISUAL = "hx"; }; }; programs.helix = { enable = true; settings = { theme = "base16"; editor = { cursor-shape = { normal = "block"; insert = "bar"; select = "underline"; }; line-number = "relative"; color-modes = true; bufferline = "always"; file-picker.hidden = false; middle-click-paste = false; cursorline = true; indent-guides.render = true; lsp.display-inlay-hints = true; statusline.center = ["position-percentage"]; true-color = true; whitespace.characters = { newline = "↴"; tab = "⇥"; }; }; }; languages.language = [{ name = "nix"; }]; themes = { base16 = with rice.color; { "ui.menu" = "none"; "ui.menu.selected" = { modifiers = [ "reversed" ]; }; "ui.linenr" = { fg = white; bg = black; }; "ui.popup" = { modifiers = [ "reversed" ]; }; "ui.linenr.selected" = { fg = white; bg = bright-black; modifiers = [ "bold" ]; }; "ui.selection" = { fg = black; bg = blue; }; "ui.selection.primary" = { modifiers = [ "reversed" ]; }; "comment" = { fg = green; }; "ui.statusline" = { fg = white; bg = red; }; "ui.statusline.inactive" = { fg = black; bg = white; }; "ui.help" = { fg = blue; bg = white; }; "ui.cursor" = { modifiers = [ "reversed" ]; }; "ui.virtual.indent-guide" = black; "variable" = red; "variable.builtin" = magenta; "constant.numeric" = magenta; "constant" = magenta; "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" = blue; "debug" = blue; "warning" = yellow; "error" = red; }; }; }; }