From cb313daca9d0a845f1acdc119343a76906746d1d Mon Sep 17 00:00:00 2001 From: "Gustavo \"Guz\" L. de Mello" Date: Thu, 18 Apr 2024 10:43:47 -0300 Subject: [PATCH] feat: games --- hosts/battleship/configuration.nix | 2 ++ hosts/battleship/home.nix | 2 ++ hosts/battleship/packages.nix | 1 - modules/home-manager/programs/default.nix | 1 + .../home-manager/programs/prismlauncher.nix | 30 ++++++++++++++++ modules/nixos/programs/default.nix | 1 + modules/nixos/programs/steam.nix | 34 +++++++++++++++++++ 7 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 modules/home-manager/programs/prismlauncher.nix create mode 100644 modules/nixos/programs/steam.nix diff --git a/hosts/battleship/configuration.nix b/hosts/battleship/configuration.nix index f8aa3ea..a80114c 100644 --- a/hosts/battleship/configuration.nix +++ b/hosts/battleship/configuration.nix @@ -26,6 +26,8 @@ }; }; + programs.steam.enable = false; + programs.gnupg.agent = { enable = true; pinentryPackage = pkgs.pinentry-gnome3; diff --git a/hosts/battleship/home.nix b/hosts/battleship/home.nix index 3694b8e..36912f6 100644 --- a/hosts/battleship/home.nix +++ b/hosts/battleship/home.nix @@ -19,6 +19,8 @@ services.gnome-keyring.enable = true; + programs.prismlauncher.enable = true; + fonts.fontconfig.enable = true; home.sessionVariables = { diff --git a/hosts/battleship/packages.nix b/hosts/battleship/packages.nix index 86b6a1b..71bc7e1 100644 --- a/hosts/battleship/packages.nix +++ b/hosts/battleship/packages.nix @@ -50,7 +50,6 @@ services.flatpak.packages = [ "nz.mega.MEGAsync" "com.bitwarden.desktop" - "org.prismlauncher.PrismLauncher" "org.mozilla.Thunderbird" "net.blockbench.Blockbench" ]; diff --git a/modules/home-manager/programs/default.nix b/modules/home-manager/programs/default.nix index 8bfb293..3160990 100644 --- a/modules/home-manager/programs/default.nix +++ b/modules/home-manager/programs/default.nix @@ -4,6 +4,7 @@ ./krita ./neovim.nix ./obsidian + ./prismlauncher.nix ./wezterm.nix ]; options = {}; diff --git a/modules/home-manager/programs/prismlauncher.nix b/modules/home-manager/programs/prismlauncher.nix new file mode 100644 index 0000000..4e7007e --- /dev/null +++ b/modules/home-manager/programs/prismlauncher.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.programs.prismlauncher; +in { + imports = []; + options.programs.prismlauncher = with lib; + with lib.types; { + enable = mkEnableOption ""; + flatpak = mkOption { + type = bool; + default = false; + }; + }; + config = with lib; + mkIf cfg.enable { + services.flatpak = mkIf cfg.flatpak { + packages = ["org.prismlauncher.PrismLauncher"]; + }; + + home.packages = with pkgs; mkIf (!cfg.flatpak) [prismlauncher]; + programs.java = mkIf (!cfg.flatpak) { + enable = true; + package = mkDefault pkgs.jdk17; + }; + }; +} diff --git a/modules/nixos/programs/default.nix b/modules/nixos/programs/default.nix index 1beb873..2144a79 100644 --- a/modules/nixos/programs/default.nix +++ b/modules/nixos/programs/default.nix @@ -2,6 +2,7 @@ imports = [ ./nih ./hyprland.nix + ./steam.nix ]; options = {}; config = {}; diff --git a/modules/nixos/programs/steam.nix b/modules/nixos/programs/steam.nix new file mode 100644 index 0000000..c9f091b --- /dev/null +++ b/modules/nixos/programs/steam.nix @@ -0,0 +1,34 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.programs.steam; +in { + imports = []; + options.programs.steam = with lib; + with lib.types; { + wayland = mkOption { + type = bool; + default = config.programs.hyprland.enable; + }; + }; + config = with lib; + mkIf cfg.enable { + environment.systemPackages = with pkgs; [steam-run]; + + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "steam" + "steam-original" + "steam-run" + ]; + + programs.steam = { + gamescopeSession = mkIf cfg.wayland { + enable = true; + }; + }; + }; +}