dotfiles/nixos/home-manager/programs/helix.nix

131 lines
3.4 KiB
Nix

{
config,
pkgs,
lib,
inputs,
system,
...
}: let
alejandra = lib.getExe inputs.alejandra.packages.${system}.default;
nil = lib.getExe inputs.nil.packages.${system}.default;
in {
home.sessionVariables = { EDITOR = "vim"; VISUAL="vim"; };
programs.zsh.sessionVariables = { EDITOR = "vim"; VISUAL="vim"; };
systemd.user.sessionVariables = { EDITOR = "vim"; VISUAL="vim"; };
programs.helix = {
enable = true;
languages = {
nix = {
name = "nix";
auto-format = true;
language-server = {command = nil;};
formatter = {
command = alejandra;
args = ["-q"];
};
};
};
settings = {
theme = "solarized_peninsula";
editor = {
auto-pairs = false;
file-picker.hidden = false;
lsp.display-messages = true;
line-number = "relative";
};
};
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";
};
};
};
}