nixos-config/user/helix.nix

89 lines
2.3 KiB
Nix
Raw Normal View History

2022-08-06 18:32:34 -03:00
{ config, pkgs, lib, font, ... }:
let
inherit (pkgs.uservars) key theme accent font editor;
inherit (theme) color;
in
{
2022-08-04 23:50:58 -03:00
config = {
programs.helix = {
enable = true;
package = pkgs.unstable.helix;
settings = {
2023-01-24 10:07:04 -03:00
theme = "my-theme";
2022-08-04 23:50:58 -03:00
editor = {
2023-01-24 10:07:04 -03:00
cursorline = true;
auto-save = true;
2022-08-04 23:50:58 -03:00
whitespace.render = "all";
whitespace.characters = {
space = "·";
tab = "";
newline = "¬";
};
};
keys.normal = {
# basic movement
n = "move_char_left";
e = "move_line_down";
i = "move_line_up";
o = "move_char_right";
# search
l = "search_next";
L = "search_prev";
# edits
s = "insert_mode";
# open newline
h = "open_below";
H = "open_above";
# selections
k = "select_regex";
K = "split_selection";
"C-k" = "split_selection_on_newline";
# goto mode
g.n = "goto_line_start";
g.o = "goto_line_end";
};
keys.select = {
# basic movement
n = "extend_char_left";
e = "extend_line_down";
i = "extend_line_up";
o = "extend_char_right";
# search
l = "search_next";
L = "search_prev";
# edits
s = "insert_mode";
# open newline
h = "open_below";
H = "open_above";
# selections
k = "select_regex";
K = "split_selection";
"C-k" = "split_selection_on_newline";
# goto mode
g.n = "goto_line_start";
g.o = "goto_line_end";
};
keys.insert = { "A-k" = "normal_mode"; };
};
2023-01-24 10:07:04 -03:00
languages = [
{ auto-format = true; formatter = { command = "nixpkgs-fmt"; }; name = "nix"; }
{ auto-format = true; name = "rust"; }
];
themes =
{
my-theme = {
"inherits" = "gruvbox";
"ui.menu" = "none";
"ui.background" = { bg = "none"; };
"ui.virtual.whitespace" = color.nontxt;
};
};
2022-08-04 23:50:58 -03:00
};
2022-08-06 18:32:34 -03:00
home.packages = with pkgs; [ pkgs.unstable.helix ];
2023-01-24 10:07:04 -03:00
home.sessionVariables = lib.mkIf (editor == "helix") {
EDITOR = "hx";
};
2022-08-04 23:50:58 -03:00
};
}