From 8e56ccf3bdb4f926ef733f1d3dc00fcabcc3ed78 Mon Sep 17 00:00:00 2001 From: Quinn Unger Date: Fri, 11 Sep 2026 20:03:14 +0100 Subject: [PATCH] reManager: init --- flake.nix | 1 + overlays.nix | 5 ++- pkgs/remanager.nix | 98 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 pkgs/remanager.nix diff --git a/flake.nix b/flake.nix index 9e83911..89674af 100644 --- a/flake.nix +++ b/flake.nix @@ -37,6 +37,7 @@ dnsfmt leaf-markdown naturaldocs + remanager slang-server ttf2psf ; diff --git a/overlays.nix b/overlays.nix index 823828a..f618f18 100644 --- a/overlays.nix +++ b/overlays.nix @@ -4,13 +4,14 @@ let bandcampsync = final: _: final.callPackage ./pkgs/bandcampsync.nix { }; comic-code = final: _: final.callPackage ./pkgs/comic-code.nix { }; dnsfmt = final: _: final.callPackage ./pkgs/dnsfmt.nix { }; + intel-sde = final: _: final.callPackage ./pkgs/intel-sde.nix { }; leaf-markdown = final: _: final.callPackage ./pkgs/leaf.nix { }; naturaldocs = final: _: final.callPackage ./pkgs/naturaldocs.nix { }; + proton-wineland-bin = final: _: final.callPackage ./pkgs/proton-wineland-bin.nix { }; + remanager = final: _: final.callPackage ./pkgs/remanager.nix { }; slang-server = final: _: final.callPackage ./pkgs/slangServer.nix { }; ttf2psf = final: _: final.callPackage ./pkgs/ttf2psf.nix { }; veadotube = final: _: final.callPackage ./pkgs/veadotube.nix { }; - proton-wineland-bin = final: _: final.callPackage ./pkgs/proton-wineland-bin.nix { }; - intel-sde = final: _: final.callPackage ./pkgs/intel-sde.nix { }; }) // { quartus = import ./pkgs/quartus/overlay.nix; diff --git a/pkgs/remanager.nix b/pkgs/remanager.nix new file mode 100644 index 0000000..d0225b3 --- /dev/null +++ b/pkgs/remanager.nix @@ -0,0 +1,98 @@ +{ + autoPatchelfHook, + buildGoModule, + copyDesktopItems, + fetchFromGitHub, + fetchNpmDeps, + lib, + nodejs, + npmHooks, + pkg-config, + symlinkJoin, + wails, + webkitgtk_4_1, +}: +let + + version = "1.7.4"; + src = fetchFromGitHub { + owner = "rmitchellscott"; + repo = "reManager"; + tag = "v${version}"; + hash = "sha256-V52JaZ2a8TM0PkcVFqRYohX9Y0SLUHTLQu8+huvhAdE="; + }; + vendorHash = "sha256-YC/Z9rn3DUZkuYHyDyOAmbugMFUx2sIWlrtMDyUXhUw="; + meta = { + description = "Desktop app for managing mods on reMarkable tablets"; + homepage = "https://github.com/rmitchellscott/reManager"; + license = lib.licenses.gpl3; + }; + + cli = buildGoModule (finalAttrs: { + pname = "remanager-cli"; + inherit + src + version + vendorHash + meta + ; + ldflags = [ "-X main.version=${finalAttrs.version}" ]; + subPackages = [ "cmd/remanager" ]; + }); + + gui = buildGoModule (finalAttrs: { + pname = "remanager-gui"; + inherit + src + version + vendorHash + meta + ; + tags = [ + "webkit2_41" + ]; + nativeBuildInputs = [ + autoPatchelfHook + copyDesktopItems + nodejs + npmHooks.npmConfigHook + pkg-config + wails + ]; + + buildInputs = [ webkitgtk_4_1 ]; + + env = { + npmDeps = fetchNpmDeps { + src = "${finalAttrs.src}/frontend"; + hash = "sha256-uxWpVL5ynuNu2PtPqgyvoCo7CMRbXSHKVlx/VVVfS3Q="; + }; + npmRoot = "frontend"; + }; + + buildPhase = '' + runHook preBuild + wails build -m -trimpath -tags webkit2_41 -ldflags "-X main.version=${finalAttrs.version}" -o reManager + runHook postBuild + ''; + + desktopItems = [ "${finalAttrs.src}/flatpak/io.scottlabs.reManager.desktop" ]; + + installPhase = '' + runHook preInstall + ls build/bin + install -Dm 0755 build/bin/reManager $out/bin/reManager + mkdir -p $out/share/icons/hicolor/scalable/apps + cp assets/icon.svg $out/share/icons/hicolor/scalable/apps/io.scottlabs.reManager.svg + runHook postInstall + ''; + + }); +in +symlinkJoin { + name = "remanager"; + paths = [ + cli + gui + ]; +} -- 2.51.2