Home

helix.drv @main - refs - log -
-
https://git.jolheiser.com/helix.drv.git
My Helix configuration as a Nix derivation
tree log patch
build with central nixpkgs Signed-off-by: jolheiser <git@jolheiser.com>
Signature
-----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgBTEvCQk6VqUAdN2RuH6bj1dNkY oOpbPWj+jw4ua1B1cAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5 AAAAQHamcKurJIIemlQH6rmeBN8PfXe5r9qs4Jg/QjOC6IucbK7PjNjuBW0P+ZTzMJMU2E Qw91SjIiqW+H9Ox+JCfAU= -----END SSH SIGNATURE-----
jolheiser <git@jolheiser.com>
3 months ago
2 changed files, 130 additions(+), 93 deletions(-)
M flake.lock -> flake.lock
diff --git a/flake.lock b/flake.lock
index 1597b0a1544769f9764df135d2871121cbc87ef2..ec3f22a143e3f24bfbf03ef3db5e51c152335e89 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,24 +1,46 @@
 {
   "nodes": {
+    "jolheiser": {
+      "inputs": {
+        "nixpkgs": "nixpkgs"
+      },
+      "locked": {
+        "lastModified": 1730336659,
+        "narHash": "sha256-DYQUprBce8sXdBj7Ub1h/52GnGvxiXelvucVTcTXE8I=",
+        "ref": "refs/heads/main",
+        "rev": "69856a465c69e5b456ef652f0f5f17a12b9d8c02",
+        "revCount": 3,
+        "type": "git",
+        "url": "https://git.jolheiser.com/nixpkgs.git"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://git.jolheiser.com/nixpkgs.git"
+      }
+    },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1715653339,
-        "narHash": "sha256-7lR9tpVXviSccl07GXI0+ve/natd24HAkuy1sQp0OlI=",
+        "lastModified": 1729880355,
+        "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "abd6d48f8c77bea7dc51beb2adfa6ed3950d2585",
+        "rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
         "type": "github"
       },
       "original": {
         "owner": "nixos",
-        "ref": "nixpkgs-unstable",
+        "ref": "nixos-unstable",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
     "root": {
       "inputs": {
-        "nixpkgs": "nixpkgs"
+        "jolheiser": "jolheiser",
+        "nixpkgs": [
+          "jolheiser",
+          "nixpkgs"
+        ]
       }
     }
   },
M flake.nix -> flake.nix
diff --git a/flake.nix b/flake.nix
index dad44ba18beb86173b66750686999390d836d374..0fd4eff9567a0d8efa4c12430867da96ce14f46d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,106 +1,121 @@
 {
   description = "jolheiser helix derivation";
-
   inputs = {
-    nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+    jolheiser.url = "git+https://git.jolheiser.com/nixpkgs.git";
+    nixpkgs.follows = "jolheiser/nixpkgs";
   };
-
-  outputs = {
-    self,
-    nixpkgs,
-  }: let
-    pkgs = nixpkgs.legacyPackages.x86_64-linux;
-    tomlFormat = pkgs.formats.toml {};
-    config = import ./config.nix {pkgs = pkgs;};
-    buildGrammar = grammar: let
-      source = pkgs.fetchgit {
-        inherit (grammar) url rev sha256;
-      };
-      linkQueries = pkgs.lib.optionalString (builtins.hasAttr "queries" grammar) "cp -r ${source}/${grammar.queries} $out/queries";
-    in
-      pkgs.stdenv.mkDerivation {
-        pname = "helix-tree-sitter-grammar-${grammar.name}";
-        version = grammar.rev;
-        buildInputs = [pkgs.helix pkgs.git];
-        src = source;
-        dontInstall = true;
-        buildPhase = ''
-          runHook preBuild
+  outputs =
+    {
+      nixpkgs,
+      ...
+    }:
+    let
+      pkgs = nixpkgs.legacyPackages.x86_64-linux;
+      tomlFormat = pkgs.formats.toml { };
+      config = import ./config.nix { pkgs = pkgs; };
+      buildGrammar =
+        grammar:
+        let
+          source = pkgs.fetchgit {
+            inherit (grammar) url rev sha256;
+          };
+          linkQueries = pkgs.lib.optionalString (builtins.hasAttr "queries" grammar) "cp -r ${source}/${grammar.queries} $out/queries";
+        in
+        pkgs.stdenv.mkDerivation {
+          pname = "helix-tree-sitter-grammar-${grammar.name}";
+          version = grammar.rev;
+          buildInputs = [
+            pkgs.helix
+            pkgs.git
+          ];
+          src = source;
+          dontInstall = true;
+          buildPhase = ''
+            runHook preBuild
 
-          mkdir .helix
-          cat << EOF > .helix/languages.toml
-          use-grammars = { only = ["${grammar.name}"] }
-          [[grammar]]
-          name = "${grammar.name}"
-          source = { git = "${grammar.url}", rev = "${grammar.rev}" }
-          EOF
+            mkdir .helix
+            cat << EOF > .helix/languages.toml
+            use-grammars = { only = ["${grammar.name}"] }
+            [[grammar]]
+            name = "${grammar.name}"
+            source = { git = "${grammar.url}", rev = "${grammar.rev}" }
+            EOF
 
-          mkdir -p runtime/grammars/sources
-          cp -r ${source} runtime/grammars/sources/${grammar.name}
-          export CARGO_MANIFEST_DIR=$(pwd)/.helix
+            mkdir -p runtime/grammars/sources
+            cp -r ${source} runtime/grammars/sources/${grammar.name}
+            export CARGO_MANIFEST_DIR=$(pwd)/.helix
 
-          #hx -g fetch
-          hx -g build
+            #hx -g fetch
+            hx -g build
 
-          mkdir $out
-          cp runtime/grammars/${grammar.name}.so $out/${grammar.name}.so
-          ${linkQueries}
+            mkdir $out
+            cp runtime/grammars/${grammar.name}.so $out/${grammar.name}.so
+            ${linkQueries}
 
-          runHook postBuild
-        '';
-      };
-    builtGrammars =
-      builtins.map (grammar: {
+            runHook postBuild
+          '';
+        };
+      builtGrammars = builtins.map (grammar: {
         inherit (grammar) name;
         artifact = buildGrammar grammar;
-      })
-      config.grammars;
-    ignoreFile = pkgs.writeText "ignore" (builtins.concatStringsSep "\n" config.ignore);
-    configFile = pkgs.writeText "config.toml" (builtins.readFile (tomlFormat.generate "helix-config" config.settings));
-    languageFile = pkgs.writeText "languages.toml" (builtins.readFile (tomlFormat.generate "helix-languages" config.languages));
-    themeFiles =
-      pkgs.lib.mapAttrsToList (
-        name: value: {
-          inherit name;
-          file = pkgs.writeText "${name}.toml" (builtins.readFile (tomlFormat.generate "helix-theme-${name}" value));
-        }
-      )
-      config.themes;
-    themeLinks = builtins.map (theme: "ln -s ${theme.file} $out/home/helix/themes/${theme.name}.toml") themeFiles;
-    grammarLinks = builtins.map (grammar: "ln -s ${grammar.artifact}/${grammar.name}.so $out/lib/runtime/grammars/${grammar.name}.so") builtGrammars;
-    queryLinks = builtins.map (grammar: "ln -s ${grammar.artifact}/queries $out/lib/runtime/queries/${grammar.name}") builtGrammars;
-  in {
-    packages.x86_64-linux.default =
-      pkgs.runCommand "hx" {
-        buildInputs = [pkgs.makeWrapper];
-      } ''
-        mkdir $out
-        ln -s ${pkgs.helix}/* $out
-        rm $out/bin
+      }) config.grammars;
+      ignoreFile = pkgs.writeText "ignore" (builtins.concatStringsSep "\n" config.ignore);
+      configFile = pkgs.writeText "config.toml" (
+        builtins.readFile (tomlFormat.generate "helix-config" config.settings)
+      );
+      languageFile = pkgs.writeText "languages.toml" (
+        builtins.readFile (tomlFormat.generate "helix-languages" config.languages)
+      );
+      themeFiles = pkgs.lib.mapAttrsToList (name: value: {
+        inherit name;
+        file = pkgs.writeText "${name}.toml" (
+          builtins.readFile (tomlFormat.generate "helix-theme-${name}" value)
+        );
+      }) config.themes;
+      themeLinks = builtins.map (
+        theme: "ln -s ${theme.file} $out/home/helix/themes/${theme.name}.toml"
+      ) themeFiles;
+      grammarLinks = builtins.map (
+        grammar: "ln -s ${grammar.artifact}/${grammar.name}.so $out/lib/runtime/grammars/${grammar.name}.so"
+      ) builtGrammars;
+      queryLinks = builtins.map (
+        grammar: "ln -s ${grammar.artifact}/queries $out/lib/runtime/queries/${grammar.name}"
+      ) builtGrammars;
+    in
+    {
+      packages.x86_64-linux.default =
+        pkgs.runCommand "hx"
+          {
+            buildInputs = [ pkgs.makeWrapper ];
+          }
+          ''
+            mkdir $out
+            ln -s ${pkgs.helix}/* $out
+            rm $out/bin
 
-        rm $out/lib
-        mkdir -p $out/lib/runtime
-        ln -s ${pkgs.helix}/lib/runtime/* $out/lib/runtime
+            rm $out/lib
+            mkdir -p $out/lib/runtime
+            ln -s ${pkgs.helix}/lib/runtime/* $out/lib/runtime
 
-        rm $out/lib/runtime/grammars
-        mkdir $out/lib/runtime/grammars
-        ln -s ${pkgs.helix}/lib/runtime/grammars/* $out/lib/runtime/grammars
-        ${builtins.concatStringsSep "\n" grammarLinks}
+            rm $out/lib/runtime/grammars
+            mkdir $out/lib/runtime/grammars
+            ln -s ${pkgs.helix}/lib/runtime/grammars/* $out/lib/runtime/grammars
+            ${builtins.concatStringsSep "\n" grammarLinks}
 
-        rm $out/lib/runtime/queries
-        mkdir $out/lib/runtime/queries
-        ln -s ${pkgs.helix}/lib/runtime/queries/* $out/lib/runtime/queries
-        ${builtins.concatStringsSep "\n" queryLinks}
+            rm $out/lib/runtime/queries
+            mkdir $out/lib/runtime/queries
+            ln -s ${pkgs.helix}/lib/runtime/queries/* $out/lib/runtime/queries
+            ${builtins.concatStringsSep "\n" queryLinks}
 
-        mkdir -p $out/home/helix/themes
-        ln -s ${configFile} $out/home/helix/config.toml
-        ln -s ${languageFile} $out/home/helix/languages.toml
-        ${builtins.concatStringsSep "\n" themeLinks}
+            mkdir -p $out/home/helix/themes
+            ln -s ${configFile} $out/home/helix/config.toml
+            ln -s ${languageFile} $out/home/helix/languages.toml
+            ${builtins.concatStringsSep "\n" themeLinks}
 
-        mkdir -p $out/home/git
-        ln -s ${ignoreFile} $out/home/git/ignore
+            mkdir -p $out/home/git
+            ln -s ${ignoreFile} $out/home/git/ignore
 
-        makeWrapper ${pkgs.helix}/bin/hx $out/bin/hx --set HELIX_RUNTIME $out/lib/runtime --set XDG_CONFIG_HOME $out/home
-      '';
-  };
+            makeWrapper ${pkgs.helix}/bin/hx $out/bin/hx --set HELIX_RUNTIME $out/lib/runtime --set XDG_CONFIG_HOME $out/home
+          '';
+    };
 }