helix: added flake input added initial configuration and enable it on main machine

This commit is contained in:
Christoph Hollizeck 2024-10-10 21:33:30 +02:00
parent bfcc79bed7
commit 1073297f5a
3 changed files with 125 additions and 29 deletions

View file

@ -55,6 +55,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
helix = {
url = "github:helix-editor/helix";
inputs.nixpkgs.follows = "nixpkgs";
};
# GPG default configuration # GPG default configuration
gpg-base-conf = { gpg-base-conf = {
url = "github:drduh/config"; url = "github:drduh/config";

View file

@ -1,55 +1,145 @@
{ {
config, config,
inputs,
lib, lib,
pkgs, pkgs,
system,
... ...
}: }:
let let
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf mkEnableOption;
cfg = config.wyrdgard.apps.cli-apps.helix; cfg = config.wyrdgard.apps.cli-apps.helix;
cachix-url = "https://helix.cachix.org";
cachix-key = "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=";
helix-pkg = inputs.helix.packages.${system}.default;
in in
{ {
options.wyrdgard.apps.cli-apps.helix = { options.wyrdgard.apps.cli-apps.helix = {
enable = mkEnableOption "Whether to enable nixvim or not (Default true)"; enable = mkEnableOption "Whether to enable nixvim or not";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment = { environment = {
systemPackages = with pkgs; [ helix ]; systemPackages = [ helix-pkg ];
}; };
wyrdgard.home = { wyrdgard = {
home = {
extraOptions = { extraOptions = {
programs.helix = { programs.helix = {
enable = true; enable = true;
package = helix-pkg;
defaultEditor = true;
settings = { settings = {
theme = "autumn_night_transparent"; theme = "tokyonight";
editor.cursor-shape = { editor = {
line-number = "relative";
lsp = {
display-inlay-hints = true;
display-messages = true;
};
cursor-shape = {
normal = "block"; normal = "block";
insert = "bar"; insert = "bar";
select = "underline"; select = "underline";
}; };
indent-guides = {
render = true;
character = "|";
}; };
languages.language = [
statusline = {
left = [
"mode"
"spinner"
];
center = [ "file-name" ];
right = [
"workspace-diagnostics"
"diagnostics"
"selections"
"position"
"total-line-numbers"
"spacer"
"file-encoding"
"file-line-ending"
"file-type"
];
separator = "";
};
};
keys = {
normal = {
space = {
space = "file_picker";
};
C-j = [
"move_line_down"
"move_line_down"
"move_line_down"
"move_line_down"
"move_line_down"
];
C-k = [
"move_line_up"
"move_line_up"
"move_line_up"
"move_line_up"
"move_line_up"
];
};
};
};
languages = {
language = [
{ {
name = "nix"; name = "nix";
auto-format = true; auto-format = true;
formatter.command = "${pkgs.nixfmt}/bin/nixfmt"; formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
language-servers = [
"nixd"
"nil"
];
} }
{ {
# provided by the dev environment in the rust shell
name = "rust"; name = "rust";
auto-format = true; auto-format = true;
formatter.command = "cargo fmt"; formatter.command = "cargo fmt";
language-servers = [ "rust-analyzer" ];
} }
]; ];
themes = {
autumn_night_transparent = { language-server = {
"inherits" = "autumn_night"; nil = {
"ui.background" = { }; command = "${pkgs.nil}/bin/nil";
};
nixd = {
command = "${pkgs.nixd}/bin/nixd";
};
marksman = {
command = "${pkgs.marksman}/bin/marksman";
};
omnisharp = {
command = "${pkgs.omnisharp-roslyn}/bin/OmniSharp";
}; };
}; };
}; };
}; };
}; };
}; };
nix.extra-substituters.${cachix-url} = {
key = cachix-key;
};
};
};
} }

View file

@ -27,6 +27,7 @@ in
apps = { apps = {
_1password = enabled; _1password = enabled;
obs-studio = enabled; obs-studio = enabled;
cli-apps.helix = enabled;
}; };
desktop.hyprland = { desktop.hyprland = {