2024-11-29 20:43:16 +01:00
|
|
|
|
{ ... }: { config, lib, pkgs, ... }@args:
|
|
|
|
|
let
|
|
|
|
|
osConfig = args.osConfig or { };
|
|
|
|
|
in {
|
2024-08-28 13:14:34 +02:00
|
|
|
|
programs.helix = {
|
|
|
|
|
enable = true;
|
|
|
|
|
defaultEditor = true;
|
2024-11-29 20:43:16 +01:00
|
|
|
|
extraPackages = lib.mkIf (osConfig.hardware.graphics.enable or false)
|
|
|
|
|
(with pkgs; [
|
|
|
|
|
bash-language-server
|
|
|
|
|
clang-tools
|
|
|
|
|
cmake-language-server
|
|
|
|
|
dot-language-server
|
|
|
|
|
elixir-ls
|
|
|
|
|
lldb
|
|
|
|
|
markdown-oxide
|
|
|
|
|
nil
|
|
|
|
|
python3Packages.python-lsp-server
|
|
|
|
|
taplo
|
|
|
|
|
texlab
|
|
|
|
|
typescript-language-server
|
|
|
|
|
yaml-language-server
|
|
|
|
|
]);
|
|
|
|
|
|
2024-10-03 17:40:41 +02:00
|
|
|
|
catppuccin.useItalics = true;
|
2024-08-28 13:14:34 +02:00
|
|
|
|
settings = {
|
2024-09-28 13:00:07 +02:00
|
|
|
|
editor = {
|
2024-09-28 13:02:35 +02:00
|
|
|
|
rulers = [ 80 120 ];
|
|
|
|
|
|
2024-09-28 13:39:19 +02:00
|
|
|
|
indent-guides = {
|
|
|
|
|
render = true;
|
|
|
|
|
character = "│";
|
|
|
|
|
};
|
|
|
|
|
|
2024-09-28 13:00:07 +02:00
|
|
|
|
auto-pairs = {
|
2024-09-28 13:48:14 +02:00
|
|
|
|
"(" = ")";
|
|
|
|
|
"[" = "]";
|
|
|
|
|
"{" = "}";
|
|
|
|
|
"\"" = "\"";
|
|
|
|
|
"'" = "'";
|
|
|
|
|
"`" = "`";
|
2024-09-28 13:00:07 +02:00
|
|
|
|
"“" = "”";
|
|
|
|
|
"‘" = "’";
|
|
|
|
|
"„" = "“";
|
|
|
|
|
"‚" = "‘";
|
|
|
|
|
};
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:00:07 +02:00
|
|
|
|
whitespace = {
|
|
|
|
|
render = {
|
|
|
|
|
nbsp = "all";
|
|
|
|
|
nnbsp = "all";
|
|
|
|
|
};
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:00:07 +02:00
|
|
|
|
characters = {
|
|
|
|
|
nbsp = "␣";
|
|
|
|
|
nnbsp = "⍽";
|
|
|
|
|
};
|
|
|
|
|
};
|
2024-08-28 13:14:34 +02:00
|
|
|
|
};
|
|
|
|
|
|
2024-09-28 13:17:45 +02:00
|
|
|
|
keys = {
|
|
|
|
|
normal = {
|
|
|
|
|
minus = "command_mode";
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:17:45 +02:00
|
|
|
|
r = "move_char_left";
|
|
|
|
|
n = "move_visual_line_down";
|
|
|
|
|
t = "move_visual_line_up";
|
|
|
|
|
h = "move_char_right";
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:17:45 +02:00
|
|
|
|
p = "move_prev_word_start";
|
|
|
|
|
w = "move_next_word_start";
|
|
|
|
|
l = "move_next_word_end";
|
|
|
|
|
P = "move_prev_long_word_start";
|
|
|
|
|
W = "move_next_long_word_start";
|
|
|
|
|
L = "move_next_long_word_end";
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:17:45 +02:00
|
|
|
|
z = "replace";
|
|
|
|
|
Z = "replace_with_yanked";
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:17:45 +02:00
|
|
|
|
s = "paste_after";
|
|
|
|
|
S = "paste_before";
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:17:45 +02:00
|
|
|
|
x = "extend_line_below";
|
|
|
|
|
X = "extend_to_line_bounds";
|
|
|
|
|
A-X = "shrink_to_line_bounds";
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:17:45 +02:00
|
|
|
|
e = "change_selection";
|
|
|
|
|
A-e = "change_selection_noyank";
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:17:45 +02:00
|
|
|
|
N = "join_selections";
|
|
|
|
|
A-N = "join_selections_space";
|
2024-08-28 13:14:34 +02:00
|
|
|
|
|
2024-09-28 13:17:45 +02:00
|
|
|
|
";" = "search_next";
|
|
|
|
|
":" = "search_prev";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
insert = {
|
|
|
|
|
"C-i" = "smart_tab";
|
|
|
|
|
"C-S-i" = "insert_tab";
|
|
|
|
|
};
|
2024-08-28 13:14:34 +02:00
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|