From 5e949e101339d63dc6a8da959fe9f096779aa04c Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Tue, 27 Oct 2026 19:42:52 -0400 Subject: [PATCH 1/5] Add a role for installing bubblewrap. --- nix/configuration/configuration.nix | 1 + nix/configuration/hosts/odo/default.nix | 1 + nix/configuration/hosts/quark/default.nix | 1 + .../roles/bubblewrap/default.nix | 25 +++++++++++++++++++ 4 files changed, 28 insertions(+) create mode 100644 nix/configuration/roles/bubblewrap/default.nix diff --git a/nix/configuration/configuration.nix b/nix/configuration/configuration.nix index 5f92004..be9677f 100644 --- a/nix/configuration/configuration.nix +++ b/nix/configuration/configuration.nix @@ -22,6 +22,7 @@ in ./roles/base ./roles/bluetooth ./roles/boot + ./roles/bubblewrap ./roles/build_in_ram ./roles/chromecast ./roles/chromium diff --git a/nix/configuration/hosts/odo/default.nix b/nix/configuration/hosts/odo/default.nix index 97d8d59..0a7f897 100644 --- a/nix/configuration/hosts/odo/default.nix +++ b/nix/configuration/hosts/odo/default.nix @@ -82,6 +82,7 @@ me.ares.enable = true; me.base.enable = true; me.bluetooth.enable = true; + me.bubblewrap.enable = true; me.build_in_ram.enable = true; me.chromecast.enable = true; me.chromium.enable = true; diff --git a/nix/configuration/hosts/quark/default.nix b/nix/configuration/hosts/quark/default.nix index 3540285..c6ea2f0 100644 --- a/nix/configuration/hosts/quark/default.nix +++ b/nix/configuration/hosts/quark/default.nix @@ -76,6 +76,7 @@ me.ares.enable = true; me.base.enable = true; me.bluetooth.enable = true; + me.bubblewrap.enable = true; me.build_in_ram.enable = true; me.chromecast.enable = true; me.chromium.enable = true; diff --git a/nix/configuration/roles/bubblewrap/default.nix b/nix/configuration/roles/bubblewrap/default.nix new file mode 100644 index 0000000..11b7cf7 --- /dev/null +++ b/nix/configuration/roles/bubblewrap/default.nix @@ -0,0 +1,25 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ ]; + + options.me = { + bubblewrap.enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether we want to install bubblewrap."; + }; + }; + + config = lib.mkIf config.me.bubblewrap.enable { + environment.systemPackages = with pkgs; [ + bubblewrap + ]; + }; +} From ae9683b8a987809f11ba8b4d534ebc1b22c7b1b5 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Tue, 27 Oct 2026 21:11:33 -0400 Subject: [PATCH 2/5] Enable wine on odo. --- nix/configuration/hosts/odo/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/configuration/hosts/odo/default.nix b/nix/configuration/hosts/odo/default.nix index 0a7f897..d702bbe 100644 --- a/nix/configuration/hosts/odo/default.nix +++ b/nix/configuration/hosts/odo/default.nix @@ -158,7 +158,7 @@ me.wasm.enable = true; me.waybar.enable = true; me.webcam.enable = true; - me.wine.enable = false; + me.wine.enable = true; me.wireguard.activated = [ "drmario" "wgh" From 5176f729ca7b94bdbbd835ec72cc33bf9c8fc9bd Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Tue, 27 Oct 2026 21:14:01 -0400 Subject: [PATCH 3/5] Add a role for lutris. --- nix/configuration/configuration.nix | 1 + nix/configuration/hosts/odo/default.nix | 1 + nix/configuration/roles/lutris/default.nix | 35 ++++++++++++++++++++++ nix/configuration/roles/wine/default.nix | 1 - 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 nix/configuration/roles/lutris/default.nix diff --git a/nix/configuration/configuration.nix b/nix/configuration/configuration.nix index be9677f..8166dcf 100644 --- a/nix/configuration/configuration.nix +++ b/nix/configuration/configuration.nix @@ -62,6 +62,7 @@ in ./roles/kubernetes ./roles/latex ./roles/launch_keyboard + ./roles/lutris ./roles/lvfs ./roles/media ./roles/memtest86 diff --git a/nix/configuration/hosts/odo/default.nix b/nix/configuration/hosts/odo/default.nix index d702bbe..a4382db 100644 --- a/nix/configuration/hosts/odo/default.nix +++ b/nix/configuration/hosts/odo/default.nix @@ -117,6 +117,7 @@ me.kubernetes.enable = true; me.latex.enable = true; me.launch_keyboard.enable = true; + me.lutris.enable = true; me.lvfs.enable = true; me.media.enable = true; me.memtest.enable = true; diff --git a/nix/configuration/roles/lutris/default.nix b/nix/configuration/roles/lutris/default.nix new file mode 100644 index 0000000..bdfe80b --- /dev/null +++ b/nix/configuration/roles/lutris/default.nix @@ -0,0 +1,35 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ ]; + + options.me = { + lutris.enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether we want to install lutris."; + }; + }; + + config = lib.mkIf (config.me.lutris.enable && config.me.graphical) { + environment.systemPackages = with pkgs; [ + lutris + ]; + + # If we need additional libraries for any games: + # (lutris.override { + # extraLibraries = pkgs: [ + # # List library dependencies here + # ]; + # extraPkgs = pkgs: [ + # # List package dependencies here + # ]; + # }) + }; +} diff --git a/nix/configuration/roles/wine/default.nix b/nix/configuration/roles/wine/default.nix index c054f96..fd779c4 100644 --- a/nix/configuration/roles/wine/default.nix +++ b/nix/configuration/roles/wine/default.nix @@ -22,7 +22,6 @@ # wineWowPackages.stable # supports 32 + 64 bit wineWow64Packages.waylandFull # Supports 32 + 64 bit with native wayland support. # winetricks - # lutris ]; }; } From 14f2084a06dabdb18aa210713b98d998ed9ac909 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 31 Oct 2026 16:25:33 -0400 Subject: [PATCH 4/5] Disable bubblewrap and lutris. --- nix/configuration/hosts/odo/default.nix | 6 +++--- nix/configuration/hosts/quark/default.nix | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/configuration/hosts/odo/default.nix b/nix/configuration/hosts/odo/default.nix index a4382db..c879c83 100644 --- a/nix/configuration/hosts/odo/default.nix +++ b/nix/configuration/hosts/odo/default.nix @@ -82,7 +82,7 @@ me.ares.enable = true; me.base.enable = true; me.bluetooth.enable = true; - me.bubblewrap.enable = true; + me.bubblewrap.enable = false; me.build_in_ram.enable = true; me.chromecast.enable = true; me.chromium.enable = true; @@ -117,7 +117,7 @@ me.kubernetes.enable = true; me.latex.enable = true; me.launch_keyboard.enable = true; - me.lutris.enable = true; + me.lutris.enable = false; me.lvfs.enable = true; me.media.enable = true; me.memtest.enable = true; @@ -159,7 +159,7 @@ me.wasm.enable = true; me.waybar.enable = true; me.webcam.enable = true; - me.wine.enable = true; + me.wine.enable = false; me.wireguard.activated = [ "drmario" "wgh" diff --git a/nix/configuration/hosts/quark/default.nix b/nix/configuration/hosts/quark/default.nix index c6ea2f0..16d2729 100644 --- a/nix/configuration/hosts/quark/default.nix +++ b/nix/configuration/hosts/quark/default.nix @@ -76,7 +76,7 @@ me.ares.enable = true; me.base.enable = true; me.bluetooth.enable = true; - me.bubblewrap.enable = true; + me.bubblewrap.enable = false; me.build_in_ram.enable = true; me.chromecast.enable = true; me.chromium.enable = true; From 128a9be453b10cfd5893ddf55014b0be73eb2318 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 31 Oct 2026 16:32:29 -0400 Subject: [PATCH 5/5] Add a role for flatpak. --- nix/configuration/configuration.nix | 1 + nix/configuration/hosts/odo/default.nix | 1 + nix/configuration/roles/flatpak/default.nix | 62 +++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 nix/configuration/roles/flatpak/default.nix diff --git a/nix/configuration/configuration.nix b/nix/configuration/configuration.nix index 8166dcf..389c6a4 100644 --- a/nix/configuration/configuration.nix +++ b/nix/configuration/configuration.nix @@ -36,6 +36,7 @@ in ./roles/ecc ./roles/emacs ./roles/emulate_isa + ./roles/flatpak ./roles/esim ./roles/exfat ./roles/firefox diff --git a/nix/configuration/hosts/odo/default.nix b/nix/configuration/hosts/odo/default.nix index c879c83..4613588 100644 --- a/nix/configuration/hosts/odo/default.nix +++ b/nix/configuration/hosts/odo/default.nix @@ -98,6 +98,7 @@ me.exfat.enable = true; me.firefox.enable = true; me.firewall.enable = true; + me.flatpak.enable = true; me.flux.enable = true; me.font.enable = true; me.gcloud.enable = true; diff --git a/nix/configuration/roles/flatpak/default.nix b/nix/configuration/roles/flatpak/default.nix new file mode 100644 index 0000000..e24c542 --- /dev/null +++ b/nix/configuration/roles/flatpak/default.nix @@ -0,0 +1,62 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ ]; + + options.me = { + flatpak.enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether we want to install flatpak."; + }; + }; + + config = lib.mkIf config.me.flatpak.enable { + services.flatpak.enable = true; + + environment.persistence."/persist" = lib.mkIf (config.me.mountPersistence) { + hideMounts = true; + + directories = [ + { + directory = "/var/lib/flatpak"; + user = "root"; + group = "root"; + mode = "0755"; + } + ]; + + users.talexander = { + directories = [ + { + # User-specific configuration. + directory = ".local/share/flatpak"; + user = "talexander"; + group = "talexander"; + mode = "0755"; + } + { + # App data + directory = ".var/app"; + user = "talexander"; + group = "talexander"; + mode = "0755"; + } + { + # Flatpak Lutris installs + directory = "Games"; + user = "talexander"; + group = "talexander"; + mode = "0755"; + } + ]; + }; + }; + }; +}