nixos-config/config/programs/helix/default.nix

186 lines
4.6 KiB
Nix

{
helix,
system,
pkgs,
...
}: {
imports = [
./languages.nix
];
home.packages = [
pkgs.wl-clipboard
pkgs.xsel
];
programs.helix = {
enable = true;
package = helix.packages.${system}.helix;
settings = {
theme = "gruvbox";
editor = {
line-number = "relative";
};
};
themes = {
gruvbox = {
# Author : Jakub Bartodziej <kubabartodziej@gmail.com>
# The theme uses the gruvbox dark palette with standard contrast: github.com/morhetz/gruvbox
"attribute" = "aqua1";
"keyword" = {fg = "red1";};
"keyword.directive" = "red0";
"namespace" = "aqua1";
"punctuation" = "orange1";
"punctuation.delimiter" = "orange1";
"operator" = "purple1";
"special" = "purple0";
"variable.other.member" = "blue1";
"variable" = "fg1";
"variable.builtin" = "orange1";
"variable.parameter" = "fg2";
"type" = "yellow1";
"type.builtin" = "yellow1";
"constructor" = {
fg = "purple1";
modifiers = ["bold"];
};
"function" = {
fg = "green1";
modifiers = ["bold"];
};
"function.macro" = "aqua1";
"function.builtin" = "yellow1";
"tag" = "red1";
"comment" = {
fg = "gray1";
modifiers = ["italic"];
};
"constant" = {fg = "purple1";};
"constant.builtin" = {
fg = "purple1";
modifiers = ["bold"];
};
"string" = "green1";
"constant.numeric" = "purple1";
"constant.character.escape" = {
fg = "fg2";
modifiers = ["bold"];
};
"label" = "aqua1";
"module" = "aqua1";
"diff.plus" = "green1";
"diff.delta" = "orange1";
"diff.minus" = "red1";
"warning" = {
fg = "orange1";
bg = "bg1";
};
"error" = {
fg = "red1";
bg = "bg1";
};
"info" = {
fg = "aqua1";
bg = "bg1";
};
"hint" = {
fg = "blue1";
bg = "bg1";
};
"ui.background" = {bg = "bg0";};
"ui.linenr" = {fg = "bg4";};
"ui.linenr.selected" = {fg = "yellow1";};
"ui.cursorline" = {bg = "bg1";};
"ui.statusline" = {
fg = "fg1";
bg = "bg2";
};
"ui.statusline.normal" = {
fg = "fg1";
bg = "bg2";
};
"ui.statusline.insert" = {
fg = "fg1";
bg = "blue0";
};
"ui.statusline.select" = {
fg = "fg1";
bg = "orange0";
};
"ui.statusline.inactive" = {
fg = "fg4";
bg = "bg1";
};
"ui.popup" = {bg = "bg1";};
"ui.window" = {bg = "bg1";};
"ui.help" = {
bg = "bg1";
fg = "fg1";
};
"ui.text" = {fg = "fg1";};
"ui.text.focus" = {fg = "fg1";};
"ui.selection" = {
bg = "bg3";
modifiers = ["reversed"];
};
"ui.cursor.primary" = {modifiers = ["reversed"];};
"ui.cursor.match" = {bg = "bg2";};
"ui.menu" = {
fg = "fg1";
bg = "bg2";
};
"ui.menu.selected" = {
fg = "bg2";
bg = "blue1";
modifiers = ["bold"];
};
"ui.virtual.whitespace" = "bg2";
"ui.virtual.ruler" = {bg = "bg1";};
"diagnostic" = {modifiers = ["underlined"];};
"markup.heading" = "aqua1";
"markup.bold" = {modifiers = ["bold"];};
"markup.italic" = {modifiers = ["italic"];};
"markup.link.url" = {
fg = "green1";
modifiers = ["underlined"];
};
"markup.link.text" = "red1";
"markup.raw" = "red1";
palette = {
bg0 = "#282828"; # main background
bg1 = "#3c3836";
bg2 = "#504945";
bg3 = "#665c54";
bg4 = "#7c6f64";
fg0 = "#fbf1c7";
fg1 = "#ebdbb2"; # main foreground
fg2 = "#d5c4a1";
fg3 = "#bdae93";
fg4 = "#a89984"; # gray0
gray0 = "#a89984";
gray1 = "#928374";
red0 = "#cc241d"; # neutral
red1 = "#fb4934"; # bright
green0 = "#98971a";
green1 = "#b8bb26";
yellow0 = "#d79921";
yellow1 = "#fabd2f";
blue0 = "#458588";
blue1 = "#83a598";
purple0 = "#b16286";
purple1 = "#d3869b";
aqua0 = "#689d6a";
aqua1 = "#8ec07c";
orange0 = "#d65d0e";
orange1 = "#fe8019";
};
};
};
};
}