From 4286122a976da2954b45840b441a3a92cb312969 Mon Sep 17 00:00:00 2001 From: Aram Markarov Date: Sat, 14 Feb 2026 17:03:35 +0100 Subject: [PATCH] when python meets nixos --- flake.nix | 13 +++--- nix/default.nix | 106 +++++++++++++++++++++++++----------------------- 2 files changed, 63 insertions(+), 56 deletions(-) diff --git a/flake.nix b/flake.nix index fcd3afc..8ee31a4 100644 --- a/flake.nix +++ b/flake.nix @@ -18,7 +18,12 @@ in { formatter = forAllSystems (pkgs: pkgs.nixfmt); - packages = forAllSystems (pkgs: rec { + packages = forAllSystems (pkgs: let + pythonEnv = pkgs.python3.withPackages (ps: [ + ps.pillow + ps.materialyoucolor + ]); + in rec { zshell = pkgs.callPackage ./nix { rev = self.rev or self.dirtyRev; stdenv = pkgs.clangStdenv; @@ -27,6 +32,8 @@ withI3 = false; }; app2unit = pkgs.callPackage ./nix/app2unit.nix {inherit pkgs;}; + + inherit pythonEnv; }; default = zshell; @@ -45,10 +52,6 @@ material-symbols rubik nerd-fonts.caskaydia-cove - (pkgs.python3.withPackages (python-pkgs: [ - python-pkgs.pillow - python-pkgs.materialyoucolor - ])) ]; }; }); diff --git a/nix/default.nix b/nix/default.nix index b876da7..5a5c645 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -21,11 +21,12 @@ cmake, ninja, pkg-config, -}: -let + pythonEnv, +}: let version = "1.0.0"; runtimeDeps = [ + pythonEnv app2unit networkmanager swappy @@ -65,6 +66,7 @@ let pkg-config ]; buildInputs = [ + pythonEnv qt6.qtbase qt6.qtdeclarative libqalculate @@ -73,61 +75,63 @@ let ]; dontWrapQtApps = true; - cmakeFlags = [ - (lib.cmakeFeature "ENABLE_MODULES" "plugin") - (lib.cmakeFeature "INSTALL_QMLDIR" qt6.qtbase.qtQmlPrefix) - ] - ++ cmakeVersionFlags; + cmakeFlags = + [ + (lib.cmakeFeature "ENABLE_MODULES" "plugin") + (lib.cmakeFeature "INSTALL_QMLDIR" qt6.qtbase.qtQmlPrefix) + ] + ++ cmakeVersionFlags; }; in -stdenv.mkDerivation { - inherit version cmakeBuildType; - pname = "zshell"; - src = ./..; + stdenv.mkDerivation { + inherit version cmakeBuildType; + pname = "zshell"; + src = ./..; - nativeBuildInputs = [ - cmake - ninja - makeWrapper - qt6.wrapQtAppsHook - ]; - buildInputs = [ - quickshell - plugin - qt6.qtbase - qt6.qtwayland - ]; - propagatedBuildInputs = runtimeDeps; + nativeBuildInputs = [ + cmake + ninja + makeWrapper + qt6.wrapQtAppsHook + ]; + buildInputs = [ + quickshell + plugin + qt6.qtbase + qt6.qtwayland + ]; + propagatedBuildInputs = runtimeDeps; - cmakeFlags = [ - (lib.cmakeFeature "ENABLE_MODULES" "shell") - (lib.cmakeFeature "INSTALL_QSCONFDIR" "${placeholder "out"}/share/ZShell") - ] - ++ cmakeVersionFlags; + cmakeFlags = + [ + (lib.cmakeFeature "ENABLE_MODULES" "shell") + (lib.cmakeFeature "INSTALL_QSCONFDIR" "${placeholder "out"}/share/ZShell") + ] + ++ cmakeVersionFlags; - prePatch = '' - substituteInPlace shell.qml \ - --replace-fail 'ShellRoot {' 'ShellRoot { settings.watchFiles: false' - ''; + prePatch = '' + substituteInPlace shell.qml \ + --replace-fail 'ShellRoot {' 'ShellRoot { settings.watchFiles: false' + ''; - postInstall = '' - makeWrapper ${quickshell}/bin/qs $out/bin/zshell \ - --prefix PATH : "${lib.makeBinPath runtimeDeps}" \ - --set FONTCONFIG_FILE "${fontconfig}" \ - --add-flags "-p $out/share/ZShell" + postInstall = '' + makeWrapper ${quickshell}/bin/qs $out/bin/zshell \ + --prefix PATH : "${lib.makeBinPath runtimeDeps}" \ + --set FONTCONFIG_FILE "${fontconfig}" \ + --add-flags "-p $out/share/ZShell" - echo "$out" - mkdir -p $out/lib - ''; + echo "$out" + mkdir -p $out/lib + ''; - passthru = { - inherit plugin; - }; + passthru = { + inherit plugin; + }; - meta = { - description = "A very segsy desktop shell"; - homepage = "https://github.com/Zacharias-Brohn/z-bar-qt"; - license = lib.licenses.gpl3Only; - mainProgram = "zshell"; - }; -} + meta = { + description = "A very segsy desktop shell"; + homepage = "https://github.com/Zacharias-Brohn/z-bar-qt"; + license = lib.licenses.gpl3Only; + mainProgram = "zshell"; + }; + }