From 332802c981bfd7a602a0ee19d6c4fb744fbe70e1 Mon Sep 17 00:00:00 2001 From: Elec3137 Date: Tue, 10 Feb 2026 09:15:59 -0800 Subject: [PATCH] write mkConfWrapper function for helix this makes helix use the user config instead, if it exists --- cli/helix.nix | 13 ++++--------- default.nix | 11 ++++++++--- lib/default.nix | 28 ++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 lib/default.nix diff --git a/cli/helix.nix b/cli/helix.nix index 6aea6e7..d2ebb18 100644 --- a/cli/helix.nix +++ b/cli/helix.nix @@ -2,6 +2,7 @@ pkgs, lib, config, + owoLib, ... }: @@ -33,15 +34,9 @@ in config = lib.mkIf cfg.enable { environment.systemPackages = [ - (pkgs.symlinkJoin { - inherit name; - paths = [ cfg.package ]; - nativeBuildInputs = [ pkgs.makeWrapper ]; - postBuild = '' - wrapProgram $out/bin/hx \ - --add-flags "-c" \ - --add-flags "${pkgs.writeText "${name}.toml" cfg.extraConfig}" - ''; + (owoLib.mkConfWrapper "hx" cfg.package { + globalConfig = pkgs.writeText "${name}.toml" cfg.extraConfig; + userConfig = "$HOME/${name}/config.toml"; }) ]; diff --git a/default.nix b/default.nix index d4dc31b..c106f3c 100644 --- a/default.nix +++ b/default.nix @@ -1,5 +1,6 @@ { lib, + pkgs, config, ... }: @@ -18,8 +19,12 @@ in enable = lib.mkEnableOption "common settings"; }; - config = lib.mkIf cfg.enable { - nixowos.cli.enable = true; - nixowos.system.enable = true; + config = { + _module.args.owoLib = pkgs.callPackage ./lib { }; + + nixowos = lib.mkIf cfg.enable { + cli.enable = true; + system.enable = true; + }; }; } diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 0000000..6df860f --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,28 @@ +{ + pkgs, + ... +}: + +{ + mkConfWrapper = + name: package: + { + globalConfig, + userConfig ? "$HOME/${name}/${name}.conf", + configArg ? "-c ", + excecutable ? "${package}/bin/${name}", + }: + pkgs.writeShellApplication { + inherit name; + + runtimeInputs = [ package ]; + + text = '' + if test -r "${userConfig}"; then + exec -a "$0" "${excecutable}" "$@" + else + exec -a "$0" "${excecutable}" ${configArg}"${globalConfig}" "$@" + fi + ''; + }; +}