Commit 7b8f1a2

HPCesia <me@hpcesia.com>
2026-07-21 09:44:36
new package: steelix
This just a updated version of steelix in nixpkgs.
1 parent 1e4c09e
Changed files (4)
pkgs/steelix/default.nix
@@ -0,0 +1,29 @@
+# Modify from https://github.com/NixOS/nixpkgs/blob/c4e0120b295daaac44f245f1c50ec06e844fe53b/pkgs/by-name/st/steelix/package.nix
+{
+  lib,
+  callPackage,
+  helix,
+  steelix-unwrapped ? callPackage ./unwrapped.nix {},
+}:
+(helix.override {
+  helix-unwrapped = steelix-unwrapped;
+}).overrideAttrs
+(
+  _: previousAttrs: {
+    pname = "steelix";
+    strictDeps = true;
+
+    meta =
+      previousAttrs.meta
+      // {
+        description = "Helix editor with Steel (Scheme) scripting support";
+        longDescription = ''
+          Steelix is a fork of the Helix editor with Steel (Scheme) scripting support.
+        '';
+        homepage = "https://github.com/mattwparas/helix";
+        changelog = "https://github.com/mattwparas/helix/blob/${steelix-unwrapped.src.rev}/CHANGELOG.md";
+        license = lib.licenses.mpl20;
+        mainProgram = "hx";
+      };
+  }
+)
pkgs/steelix/unwrapped.nix
@@ -0,0 +1,49 @@
+{
+  rustPlatform,
+  fetchFromGitHub,
+  fetchpatch,
+  helix-unwrapped,
+}:
+helix-unwrapped.overrideAttrs (
+  finalAttrs: _: {
+    pname = "steelix-unwrapped";
+
+    version = "0-unstable-2026-07-18";
+
+    src = fetchFromGitHub {
+      owner = "mattwparas";
+      repo = "helix";
+      rev = "8d189f46e9c620baa685bdfbe39b7c95928475a0";
+      hash = "sha256-qYR2f+uSUNsJYbbwSo9bCB+LI7n3NzQDCHXJRmHztDg=";
+    };
+
+    cargoDeps = rustPlatform.fetchCargoVendor {
+      inherit (finalAttrs) src pname version;
+      hash = "sha256-Od52YBH5dc4/zvIY3DbptZyrj9Vci/xbWI7PmExXWeU=";
+    };
+
+    cargoBuildFlags = [
+      "--package"
+      "helix-term"
+      "--features"
+      "steel,git"
+    ];
+
+    # This fork is built from Helix master, whose loader expects tree-sitter
+    # grammars with the platform-native extension (`.dylib` on Darwin) since
+    # helix-editor/helix#14982. We reuse the grammars from `helix.runtime`, built
+    # from the last Helix *release*, which still names them `.so` on Darwin, so
+    # revert that commit to make the loader look for `.so`. Remove once a Helix
+    # release ships #14982 and nixpkgs' grammars switch to `.dylib`.
+    patches = [
+      (fetchpatch {
+        name = "revert-dylib-grammar-extension.patch";
+        url = "https://github.com/helix-editor/helix/commit/430914b298a32653ab1847fdfdf2177a002be04c.patch";
+        revert = true;
+        hash = "sha256-4KUFppkso4/XwNU+mGIgLvl+mJXHZWkmaguYMy8oTyI=";
+      })
+    ];
+
+    doInstallCheck = false;
+  }
+)
default.nix
@@ -48,4 +48,6 @@ in {
   shimmie2 = callPackage ./pkgs/shimmie2 {};
 
   spritz-wine-bin = callPackage ./pkgs/spritz-wine-bin {};
+
+  steelix = callPackage ./pkgs/steelix {};
 }
README.md
@@ -27,6 +27,7 @@
 | `spritz-wine-bin.cachyos` | [spritz-wine-cachyos-bin-10.0-11](https://github.com/NelloKudo/spritz-wine) | `10.0-11` | [MIT](https://spdx.org/licenses/MIT.html) | Spritz-Wine builds for some games  |
 | `spritz-wine-bin.dwproton` | [spritz-wine-dwproton-bin-11.0-4](https://github.com/NelloKudo/spritz-wine) | `11.0-4` | [MIT](https://spdx.org/licenses/MIT.html) | Spritz-Wine builds for some games  |
 | `spritz-wine-bin.tkg` | [spritz-wine-tkg-bin-11.9-2](https://github.com/NelloKudo/spritz-wine) | `11.9-2` | [MIT](https://spdx.org/licenses/MIT.html) | Spritz-Wine builds for some games  |
+| `steelix` | [steelix](https://github.com/mattwparas/helix) | `0-unstable-2026-07-18` | [MPL-2.0](https://spdx.org/licenses/MPL-2.0.html) | Helix editor with Steel (Scheme) scripting support |
 
 ### helixPlugins