diff --git a/homes/x86_64-linux/games@LoyAdjo/chromium.nix b/homes/x86_64-linux/games@LoyAdjo/chromium.nix new file mode 100644 index 0000000..fd2112f --- /dev/null +++ b/homes/x86_64-linux/games@LoyAdjo/chromium.nix @@ -0,0 +1,49 @@ +{ config, pkgs, lib, inputs, ... }: +{ + programs.chromium = { + enable = true; + package = pkgs.ungoogled-chromium.override { enableWideVine = true; }; + commandLineArgs = [ + "--extension-mime-request-handling=always-prompt-for-install" # Enable Extension-Install Dialogue + "--enable-features=NoReferrers,SpoofWebGLInfo" # Feature Flags + "--no-default-browser-check" + ]; + extensions = let + createChromiumExtensionFor = browserVersion: { id, sha256, version }: { + inherit id; + crxPath = builtins.fetchurl { + url = "https://clients2.google.com/service/update2/crx?response=redirect&acceptformat=crx2,crx3&prodversion=${browserVersion}&x=id%3D${id}%26installsource%3Dondemand%26uc"; + name = "${id}.crx"; + inherit sha256; + }; + inherit version; + }; + createChromiumExtension = createChromiumExtensionFor (lib.versions.major pkgs.ungoogled-chromium.version); + in [ + { # Chromium Web Store + id = "ocaahdebbfolfmndjeplogmgcagdmblk"; + crxPath = builtins.fetchurl { + url = "https://github.com/NeverDecaf/chromium-web-store/releases/download/v1.5.4.3/Chromium.Web.Store.crx"; + name = "ocaahdebbfolfmndjeplogmgcagdmblk.crx"; + sha256 = "sha256:0ck5k4gs5cbwq1wd5i1aka5hwzlnyc4c513sv13vk9s0dlhbz4z5"; + }; + version = "1.5.4.3"; + } + (createChromiumExtension { # uBlock Origin + id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; + sha256 = "sha256-cT7Pj59uyWd0B/BCQqMvqYalDM/KZou1c+XqMC7IG5k="; + version = "1.65.0"; + }) + (createChromiumExtension { # I still don't care about cookies + id = "edibdbjcniadpccecjdfdjjppcpchdlm"; + sha256 = "sha256:11k7cxcjafs8ziaxl4bilbfwbgl2yf1p6v1bvwszadcr14xyvgsj"; + version = "1.1.4"; + }) + (createChromiumExtension { # KeePassXC-Browser + id = "oboonakemofpalcgghocfoadofidjkkk"; + sha256 = "sha256-/WHmIE+tbdm3a1QZSFH5tsf3gqOCT2GrfD8TfrvMC3Q="; + version = "1.9.9.1"; + }) + ]; + }; +} diff --git a/homes/x86_64-linux/games@LoyAdjo/default.nix b/homes/x86_64-linux/games@LoyAdjo/default.nix new file mode 100644 index 0000000..af08b1b --- /dev/null +++ b/homes/x86_64-linux/games@LoyAdjo/default.nix @@ -0,0 +1,44 @@ +{ config, pkgs, lib, inputs, ... }: +{ + imports = [ + ./firefox.nix + ./chromium.nix + ]; + home.username = "games"; + home.homeDirectory = "/home/games"; + home.packages = with pkgs; [ + # System + kdePackages.kate + kdePackages.kcalc + # Office + libreoffice + # Security + keepassxc + veracrypt + protonvpn-gui + # Media + inkscape + blender + obs-studio + cheese + gimp + vlc + # Messengers + webcord + # Development + vscodium + # Gaming + mangohud + prismlauncher + lutris-free + # Terminal Tools + tmux + mosh + btop + fastfetch + kb-one.olympus + ripgrep + ]; + + home.stateVersion = "24.05"; +} diff --git a/homes/x86_64-linux/games@LoyAdjo/firefox.nix b/homes/x86_64-linux/games@LoyAdjo/firefox.nix new file mode 100644 index 0000000..4e928dd --- /dev/null +++ b/homes/x86_64-linux/games@LoyAdjo/firefox.nix @@ -0,0 +1,67 @@ +{ config, pkgs, lib, inputs, ... }: +let + # Firefox Profile Setting States + lock-false = { + Value = false; + Status = "locked"; + }; + lock-true = { + Value = true; + Status = "locked"; + }; + lock-empty-string = { + Value = ""; + Status = "locked"; + }; +in { + programs.firefox = { + enable = true; + nativeMessagingHosts = []; # pkgs.firefoxpwa removed. I use ungoogled-chromiums PWA Implementation for better stability. + policies = { + # --------- Privacy --------- + DisableTelemetry = true; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableFirefoxAccounts = true; + AutofillAddressEnabled = false; + AutofillCreditCardEnabled = false; + OfferToSaveLogins = false; + FirefoxHome.TopSites = false; + FirefoxHome.SponsoredTopSites = false; + Preferences = { + "browser.newtabpage.pinned" = lock-empty-string; + "browser.topsites.contile.enabled" = lock-false; + }; + # -------- Opiniated -------- + DontCheckDefaultBrowser = true; + DisableProfileImport = true; + SearchBar = "unified"; + SearchEngines.Add = [ # Only Available in ESR Releases https://mozilla.github.io/policy-templates/#searchengines--add + { + Name = "Brave"; + URLTemplate = "https://search.brave.com/search?q={searchTerms}"; + Alias = "br"; + IconURL = "https://cdn.search.brave.com/serp/v3/_app/immutable/assets/brave-search-icon.CsIFM2aN.svg"; + } + ]; + # Extensions https://mozilla.github.io/policy-templates#extensionsettings + ExtensionSettings = { + "uBlock0@raymondhill.net" = { # uBlock Origin: https://addons.mozilla.org/en-US/firefox/addon/ublock-origin + install_url = "https://addons.mozilla.org/firefox/downloads/file/4458450/ublock_origin-1.63.2.xpi"; + installation_mode = "normal_installed"; + private_browsing = true; + }; + "idcac-pub@guus.ninja" = { # I still don't care about cookies: https://addons.mozilla.org/en-US/firefox/addon/istilldontcareaboutcookies/ + install_url = "https://addons.mozilla.org/firefox/downloads/file/4216095/istilldontcareaboutcookies-1.1.4.xpi"; + installation_mode = "normal_installed"; + private_browsing = true; + }; + "keepassxc-browser@keepassxc.org" = { # KeePassXC-Browser: https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser + install_url = "https://addons.mozilla.org/firefox/downloads/file/4441759/keepassxc_browser-1.9.7.xpi"; + installation_mode = "normal_installed"; + }; + }; + }; + }; +} + diff --git a/systems/x86_64-linux/LoyAdjo/default.nix b/systems/x86_64-linux/LoyAdjo/default.nix index 78ee83d..de40372 100644 --- a/systems/x86_64-linux/LoyAdjo/default.nix +++ b/systems/x86_64-linux/LoyAdjo/default.nix @@ -72,6 +72,11 @@ description = "kB"; extraGroups = [ "networkmanager" "wheel" "input" ]; }; + users.users.games = { # Managed by Homemanager + isNormalUser = true; + description = "games"; + extraGroups = [ "networkmanager" "input" ]; + }; users.users.remotebuild = { isNormalUser = true; openssh.authorizedKeys.keys = [ @@ -83,6 +88,8 @@ # Steam programs.steam.enable = true; + programs.steam.remotePlay.openFirewall = true; + hardware.steam-hardware.enable = true; # SSH programs.ssh.startAgent = true;