diff --git a/nix/configuration/configuration.nix b/nix/configuration/configuration.nix index 5f92004..389c6a4 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 @@ -35,6 +36,7 @@ in ./roles/ecc ./roles/emacs ./roles/emulate_isa + ./roles/flatpak ./roles/esim ./roles/exfat ./roles/firefox @@ -61,6 +63,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 97d8d59..4613588 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 = false; me.build_in_ram.enable = true; me.chromecast.enable = true; me.chromium.enable = true; @@ -97,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; @@ -116,6 +118,7 @@ me.kubernetes.enable = true; me.latex.enable = true; me.launch_keyboard.enable = true; + me.lutris.enable = false; me.lvfs.enable = true; me.media.enable = true; me.memtest.enable = true; diff --git a/nix/configuration/hosts/quark/default.nix b/nix/configuration/hosts/quark/default.nix index 3540285..16d2729 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 = false; 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 + ]; + }; +} 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"; + } + ]; + }; + }; + }; +} 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 ]; }; }