From 97f0bc5b3c8faac53cfde70b4291386f5a878c06 Mon Sep 17 00:00:00 2001 From: Tyler Starr Date: Wed, 21 May 2025 21:58:46 -0700 Subject: [PATCH] install prusaslicer with flatpak --- provision/flake.lock | 17 +++++++++++++++++ provision/flake.nix | 5 +++-- provision/hosts/bulwark/default.nix | 5 +++-- provision/hosts/htpc/default.nix | 5 +++-- provision/hosts/kestrel/default.nix | 5 +++-- provision/hosts/osprey/default.nix | 5 +++-- provision/hosts/shivan/default.nix | 5 +++-- provision/hosts/torus/default.nix | 5 +++-- provision/modules/base/plus/default.nix | 9 +++++++-- provision/modules/devel/engineering.nix | 4 +++- 10 files changed, 48 insertions(+), 17 deletions(-) diff --git a/provision/flake.lock b/provision/flake.lock index 22e08b0e..5454799c 100644 --- a/provision/flake.lock +++ b/provision/flake.lock @@ -117,6 +117,22 @@ "url": "https://github.com/Jovian-Experiments/Jovian-NixOS" } }, + "nix-flatpak": { + "locked": { + "lastModified": 1739444422, + "narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=", + "owner": "gmodena", + "repo": "nix-flatpak", + "rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177", + "type": "github" + }, + "original": { + "owner": "gmodena", + "ref": "v0.6.0", + "repo": "nix-flatpak", + "type": "github" + } + }, "nixos-wsl": { "inputs": { "flake-compat": "flake-compat", @@ -175,6 +191,7 @@ "agenix": "agenix", "home-manager": "home-manager_2", "jovian-nixos": "jovian-nixos", + "nix-flatpak": "nix-flatpak", "nixos-wsl": "nixos-wsl", "nixpkgs": "nixpkgs_2" } diff --git a/provision/flake.nix b/provision/flake.nix index 7e5f7d96..b60df1b0 100644 --- a/provision/flake.nix +++ b/provision/flake.nix @@ -10,9 +10,10 @@ jovian-nixos.flake = false; nixos-wsl.url = "github:nix-community/NixOS-WSL"; nixos-wsl.inputs.nixpkgs.follows = "nixpkgs"; + nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0"; }; - outputs = inputs @ { self, nixpkgs, home-manager, jovian-nixos, agenix, nixos-wsl, ... }: + outputs = inputs @ { self, nixpkgs, home-manager, jovian-nixos, agenix, nixos-wsl, nix-flatpak, ... }: let system = "x86_64-linux"; hosts = builtins.fromJSON (builtins.readFile ./hosts.json); @@ -21,7 +22,7 @@ nixosConfigurations = lib.mapAttrs (hostname: hostConfig: lib.nixosSystem (import ./hosts/${hostConfig.role} { inherit lib; - inherit system inputs agenix home-manager jovian-nixos nixos-wsl; + inherit system inputs agenix home-manager jovian-nixos nixos-wsl nix-flatpak; specialArgs = { user = hostConfig.user; hostname = "${hostname}"; diff --git a/provision/hosts/bulwark/default.nix b/provision/hosts/bulwark/default.nix index fa47c546..eead2488 100644 --- a/provision/hosts/bulwark/default.nix +++ b/provision/hosts/bulwark/default.nix @@ -1,15 +1,16 @@ -{ lib, specialArgs, system, inputs, agenix, home-manager, jovian-nixos, ... }: +{ lib, specialArgs, system, inputs, agenix, home-manager, jovian-nixos, nix-flatpak, ... }: let user = specialArgs.user; hostname = specialArgs.hostname; in { inherit system; - specialArgs = { inherit user hostname inputs home-manager jovian-nixos; }; + specialArgs = { inherit user hostname inputs home-manager jovian-nixos nix-flatpak; }; modules = [ ./configuration.nix ./hardware.nix ../../modules agenix.nixosModules.default + nix-flatpak.nixosModules.nix-flatpak home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; diff --git a/provision/hosts/htpc/default.nix b/provision/hosts/htpc/default.nix index 2b3f1af4..7425d09a 100644 --- a/provision/hosts/htpc/default.nix +++ b/provision/hosts/htpc/default.nix @@ -1,15 +1,16 @@ -{ lib, specialArgs, system, inputs, agenix, home-manager, ... }: +{ lib, specialArgs, system, inputs, agenix, home-manager, nix-flatpak, ... }: let user = specialArgs.user; hostname = specialArgs.hostname; in { inherit system; - specialArgs = { inherit user hostname inputs home-manager; }; + specialArgs = { inherit user hostname inputs home-manager nix-flatpak; }; modules = [ ./configuration.nix ../../modules /etc/nixos/hardware-configuration.nix agenix.nixosModules.default + nix-flatpak.nixosModules.nix-flatpak home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; diff --git a/provision/hosts/kestrel/default.nix b/provision/hosts/kestrel/default.nix index 04a495c8..3c5e7808 100644 --- a/provision/hosts/kestrel/default.nix +++ b/provision/hosts/kestrel/default.nix @@ -1,15 +1,16 @@ -{ lib, specialArgs, system, inputs, agenix, home-manager, ... }: +{ lib, specialArgs, system, inputs, agenix, home-manager, nix-flatpak, ... }: let user = specialArgs.user; hostname = specialArgs.hostname; in { inherit system; - specialArgs = { inherit user hostname inputs home-manager; }; + specialArgs = { inherit user hostname inputs home-manager nix-flatpak; }; modules = [ ./configuration.nix ./hardware.nix ../../modules agenix.nixosModules.default + nix-flatpak.nixosModules.nix-flatpak home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; diff --git a/provision/hosts/osprey/default.nix b/provision/hosts/osprey/default.nix index 04a495c8..3c5e7808 100644 --- a/provision/hosts/osprey/default.nix +++ b/provision/hosts/osprey/default.nix @@ -1,15 +1,16 @@ -{ lib, specialArgs, system, inputs, agenix, home-manager, ... }: +{ lib, specialArgs, system, inputs, agenix, home-manager, nix-flatpak, ... }: let user = specialArgs.user; hostname = specialArgs.hostname; in { inherit system; - specialArgs = { inherit user hostname inputs home-manager; }; + specialArgs = { inherit user hostname inputs home-manager nix-flatpak; }; modules = [ ./configuration.nix ./hardware.nix ../../modules agenix.nixosModules.default + nix-flatpak.nixosModules.nix-flatpak home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; diff --git a/provision/hosts/shivan/default.nix b/provision/hosts/shivan/default.nix index 7e035318..27a9cbef 100644 --- a/provision/hosts/shivan/default.nix +++ b/provision/hosts/shivan/default.nix @@ -1,15 +1,16 @@ -{ lib, specialArgs, system, inputs, agenix, home-manager, ... }: +{ lib, specialArgs, system, inputs, agenix, home-manager, nix-flatpak, ... }: let user = specialArgs.user; hostname = specialArgs.hostname; in { inherit system; - specialArgs = { inherit user inputs home-manager; }; + specialArgs = { inherit user inputs home-manager nix-flatpak; }; modules = [ ./configuration.nix ./hardware.nix ../../modules agenix.nixosModules.default + nix-flatpak.nixosModules.nix-flatpak home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; diff --git a/provision/hosts/torus/default.nix b/provision/hosts/torus/default.nix index 04a495c8..3c5e7808 100644 --- a/provision/hosts/torus/default.nix +++ b/provision/hosts/torus/default.nix @@ -1,15 +1,16 @@ -{ lib, specialArgs, system, inputs, agenix, home-manager, ... }: +{ lib, specialArgs, system, inputs, agenix, home-manager, nix-flatpak, ... }: let user = specialArgs.user; hostname = specialArgs.hostname; in { inherit system; - specialArgs = { inherit user hostname inputs home-manager; }; + specialArgs = { inherit user hostname inputs home-manager nix-flatpak; }; modules = [ ./configuration.nix ./hardware.nix ../../modules agenix.nixosModules.default + nix-flatpak.nixosModules.nix-flatpak home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; diff --git a/provision/modules/base/plus/default.nix b/provision/modules/base/plus/default.nix index 2afac545..c691f225 100644 --- a/provision/modules/base/plus/default.nix +++ b/provision/modules/base/plus/default.nix @@ -1,9 +1,14 @@ -{ lib, ... }: -{ +{ lib, config, ... }: + +let cfg = config.modules.base-plus; +in { imports = [ ../../programs/beancount.nix ../../programs/borg.nix ../../programs/yt-dlp.nix ]; options.modules.base-plus.enable = lib.mkEnableOption "base-plus"; + config = lib.mkIf cfg.enable { + services.flatpak.enable = true; + }; } diff --git a/provision/modules/devel/engineering.nix b/provision/modules/devel/engineering.nix index 005aa474..dc3e0390 100644 --- a/provision/modules/devel/engineering.nix +++ b/provision/modules/devel/engineering.nix @@ -8,7 +8,9 @@ in { blender # Open-source 3D creation suite for modeling, animation, rendering, and more freecad # Open-source parametric 3D CAD modeler openscad # Open-source script-only based modeller - prusa-slicer # Slicing software optimized for Prusa 3D printers, offering user-friendly interface and settings + ]; + services.flatpak.packages = [ + "com.prusa3d.PrusaSlicer" ]; }; }