{ 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_terminal"; 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; { "attributes" = blue.base; "comment" = { "fg" = white.dark; "modifiers" = [ "italic" ]; }; "constant" = cyan.base; "constant.character.escape" = yellow.bright; "constant.numeric" = blue.base; "constructor" = magenta.base; "debug" = yellow.dark; "diagnostic.modifiers" = [ "underlined" ]; "diff.delta" = blue.base; "diff.minus" = red.base; "diff.plus" = green.base; "error" = red.base; "function" = cyan.base; "hint" = yellow.dark; "info" = cyan.base; "keyword" = cyan.bright; "label" = cyan.bright; "namespace" = cyan.bright; "operator" = magenta.dark; "special" = cyan.base; "string" = green.base; "type" = green.base; "variable" = red.base; "variableother.member" = green.base; "warning" = blue.base; "markup.bold" = { "fg" = green.base; "modifiers" = [ "bold" ]; }; "markup.heading" = cyan.base; "italic" = { "fg" = cyan.bright; "modifiers" = [ "italic" ]; }; "markup.linktext" = red.base; "markup.linkurl" = { "fg" = blue.base; "modifiers" = [ "underlined" ]; }; "markup.list" = red.base; "markup.quote" = magenta.base; "markup.raw" = green.base; "markup.strikethrough" = { "modifiers" = [ "crossed_out" ]; }; "diagnostic.hint" = { "underline" = { style = "curl"; }; }; "diagnostic.info" = { "underline" = { style = "curl"; }; }; "diagnostic.warning" = { "underline" = { style = "curl"; }; }; "diagnostic.error" = { "underline" = { style = "curl"; }; }; "ui.background" = { "bg" = background; }; "ui.bufferline" = { "fg" = magenta.base; "bg" = background; }; "ui.bufferline.active" = { "fg" = background; "bg" = magenta.dark; "modifiers" = [ "bold" ]; }; "ui.cursor" = { "fg" = white.base; "modifiers" = [ "reversed" ]; }; "ui.cursor.insert" = { "fg" = green.base; "modifiers" = [ "reversed" ]; }; "ui.cursorline.primary" = { "bg" = black.bright; }; "ui.cursor.match" = { "fg" = green.base; "modifiers" = [ "reversed" ]; }; "ui.cursor.select" = { "fg" = green.base; "modifiers" = [ "reversed" ]; }; "ui.gutter" = { "bg" = black.bright; }; "ui.help" = { "fg" = cyan.base; "bg" = background; }; "ui.linenr" = { "fg" = yellow.dark; "bg" = black.bright; }; "ui.linenr.selected" = { "fg" = blue.dark; "bg" = background; "modifiers" = [ "bold" ]; }; "ui.menu" = { "fg" = magenta.dark; "bg" = background; }; "ui.menu.scroll" = { "fg" = yellow.dark; "bg" = background; }; "ui.menu.selected" = { "fg" = red.dark; "bg" = blue.dark; }; "ui.popup" = { "bg" = grey.dark; }; "ui.selection" = { "bg" = grey.base; }; "ui.selection.primary" = { "bg" = grey.base; }; "ui.statusline" = { "fg" = blue.bright; }; "ui.statusline.inactive" = { "fg" = yellow.bright; "bg" = red.dark; }; "ui.statusline.insert" = { "fg" = green.bright; "bg" = green.dark; }; "ui.statusline.normal" = { "fg" = yellow.bright; "bg" = yellow.dark; }; "ui.statusline.select" = { "fg" = cyan.bright; "bg" = cyan.dark; }; "ui.text" = magenta.dark; "ui.text.focus" = magenta.dark; "ui.virtual.indent-guide" = { "fg" = grey.dark; }; "ui.virtual.inlay-hint" = { "fg" = grey.dark; }; "ui.virtual.ruler" = { "bg" = background; }; "ui.window" = { "bg" = background; }; }; }; }; }