summaryrefslogtreecommitdiff
path: root/features/user/cli/apps/helix.nix
diff options
context:
space:
mode:
authoroutremonde <outremonde@vivaldi.net>2025-06-10 20:32:00 -0400
committeroutremonde <outremonde@vivaldi.net>2025-06-10 20:32:00 -0400
commit9786eb8672213344d8d1b7bdef12bc94510b20db (patch)
treeb7d79440800c92d32187ab32c636b0830c94a610 /features/user/cli/apps/helix.nix
initialized repository
Former-commit-id: 84647f22b951a957b2b83885b612115d473f6626
Diffstat (limited to 'features/user/cli/apps/helix.nix')
-rw-r--r--features/user/cli/apps/helix.nix71
1 files changed, 71 insertions, 0 deletions
diff --git a/features/user/cli/apps/helix.nix b/features/user/cli/apps/helix.nix
new file mode 100644
index 0000000..a267b23
--- /dev/null
+++ b/features/user/cli/apps/helix.nix
@@ -0,0 +1,71 @@
+{
+ config,
+ pkgs,
+ lib,
+ ...
+}: let
+ cfg = config.features.cli.apps.helix;
+in {
+ options.features.cli.apps.helix.enable = lib.mkEnableOption "helix";
+ config = lib.mkIf cfg.enable {
+ home.packages = with pkgs; [
+ wl-clipboard
+ ];
+ programs.helix = {
+ enable = true;
+ extraPackages = with pkgs; [
+ markdown-oxide
+ python312Packages.black
+ vscode-langservers-extracted
+ nil
+ ];
+ settings = {
+ editor = {
+ color-modes = true;
+ true-color = true;
+ line-number = "relative";
+ mouse = false;
+ lsp.display-messages = true;
+ statusline = {
+ left = ["file-name" "file-modification-indicator"];
+ center = [];
+ right = [];
+ mode = {
+ normal = "NORMAL";
+ insert = "INSERT";
+ select = "SELECT";
+ };
+ };
+ cursor-shape = {
+ normal = "block";
+ insert = "bar";
+ select = "underline";
+ };
+ soft-wrap = {
+ enable = true;
+ wrap-indicator = "";
+ };
+ };
+ keys = {
+ normal = {
+ esc = ["collapse_selection" "keep_primary_selection"];
+ space = {
+ v = "file_picker_in_current_buffer_directory";
+ h = ":lsp-workspace-command";
+ };
+ };
+ };
+ };
+ languages = {
+ language = [
+ {
+ name = "nix";
+ auto-format = true;
+ formatter.command = "${pkgs.alejandra}/bin/alejandra";
+ language-servers = ["nil"];
+ }
+ ];
+ };
+ };
+ };
+}