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

159 lines
4.4 KiB
Nix
Raw Normal View History

2022-12-19 09:04:27 +00:00
{
config,
pkgs,
lib,
inputs,
system,
...
}: let
alejandra = lib.getExe inputs.alejandra.packages.${system}.default;
nil = lib.getExe inputs.nil.packages.${system}.default;
in {
2022-12-07 23:52:15 +00:00
programs.helix = {
enable = true;
package = inputs.helix.packages."${system}".helix;
2022-12-19 09:04:27 +00:00
settings = {
2022-12-19 11:29:20 +00:00
theme = "solarized_peninsula";
2022-12-19 09:29:34 +00:00
editor = {
auto-pairs = false;
2022-12-19 11:29:20 +00:00
file-picker.hidden = false;
2022-12-19 09:29:34 +00:00
lsp.display-messages = true;
line-number = "relative";
};
2022-12-19 11:29:20 +00:00
keys = {
normal = {
2022-12-25 13:37:15 +00:00
";" = "command_mode";
2022-12-19 11:29:20 +00:00
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"];
2022-12-19 09:29:34 +00:00
2022-12-19 11:29:20 +00:00
i = "select_textobject_inner";
a = "select_textobject_around";
2022-12-19 09:29:34 +00:00
2022-12-19 11:29:20 +00:00
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";
2022-12-08 20:02:21 +00:00
};
2022-12-19 09:04:27 +00:00
};
languages = [
{
name = "nix";
auto-format = true;
language-server = {command = nil;};
formatter = {
command = alejandra;
args = ["-q"];
};
}
];
2022-12-07 23:52:15 +00:00
};
}