{ lib, config, pkgs, helix, ... }: let helixPackages = helix.packages.${pkgs.stdenv.hostPlatform.system}; in { # to make steel work, we need to git clone this repo to your home directory. home.sessionVariables.HELIX_STEEL_CONFIG = "${config.home.homeDirectory}/nix-config/home/base/tui/editors/helix/steel"; home.packages = with pkgs; [ steel ]; programs.helix = { enable = lib.mkForce false; # enable steel as the plugin system # https://github.com/helix-editor/helix/pull/8675 # https://github.com/mattwparas/helix/blob/steel-event-system/STEEL.md package = helixPackages.default.overrideAttrs (prevAttrs: { cargoBuildFeatures = prevAttrs.cargoBuildFeatures or [ ] ++ [ "steel" ]; }); settings = { editor = { line-number = "relative"; cursorline = true; color-modes = true; lsp.display-messages = true; cursor-shape = { insert = "bar"; normal = "block"; select = "underline"; }; indent-guides.render = true; }; keys.normal = { space = { space = "file_picker"; w = ":w"; q = ":q"; }; esc = [ "collapse_selection" "keep_primary_selection" ]; }; }; }; }