diff --git a/config/hyprlock.conf b/config/hyprlock.conf index f3ba6a8..09dd309 100644 --- a/config/hyprlock.conf +++ b/config/hyprlock.conf @@ -10,7 +10,7 @@ general { background { monitor = - path = /home/foglar/dotfiles/nixos/aurora_borealis.png + path = /home/foglar/dotfiles/config/backgrounds/aurora_borealis.png color = rgba(25, 20, 20, 1.0) # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations diff --git a/flake.nix b/flake.nix index ab52ac4..748117e 100644 --- a/flake.nix +++ b/flake.nix @@ -11,6 +11,7 @@ hyprland = { url = "github:hyprwm/Hyprland"; }; + #hyprland-plugins = { # url = "github:hyprwm/hyprland-plugins"; # inputs.hyprland.follows = "hyprland"; @@ -42,6 +43,10 @@ nix-ld, ... } @ inputs: let + + username = "foglar"; + hostname = "laptop"; + system = "x86_64-linux"; pkgs = import nixpkgs { @@ -62,13 +67,15 @@ in { nixosConfigurations = { laptop = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs system pkgs pkgs-stable;}; + specialArgs = { + inherit inputs system pkgs pkgs-stable username hostname; + }; modules = [ ./nixos/configuration.nix inputs.stylix.nixosModules.stylix nix-ld.nixosModules.nix-ld - { programs.nix-ld.dev.enable = true; } + {programs.nix-ld.dev.enable = true;} ]; }; }; diff --git a/nixos/home.nix b/nixos/home.nix index e99f3eb..f8cbba1 100644 --- a/nixos/home.nix +++ b/nixos/home.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: { +{...}: { home.username = "foglar"; home.homeDirectory = "/home/foglar"; home.stateVersion = "24.05"; # Please read the comment before changing. @@ -38,11 +35,11 @@ cat = "bat --style plain"; rasp = "s foglar@192.168.8.140"; hist = "history | awk '{for (i=2; i<=NF; i++) printf \$i\" \"; print \"\"}' | fzf | wl-copy"; - packages = "paru -Qe | fzf | wl-copy"; cdx = "zoxide query --interactive"; distrobox-enter = "distrobox-enter --root"; distrobox-create = "distrobox-create --root"; + distrobox-list = "distrobox-list --root"; }; bashrcExtra = '' @@ -69,38 +66,6 @@ XDG_PICTURES_DIR = "$HOME/Pictures/Screenshots/"; }; - home.packages = with pkgs; [ - (writeShellScriptBin "gs" '' - set -xeuo pipefail - - gamescopeArgs=( - --adaptive-sync # VRR support - --hdr-enabled - --mangoapp # performance overlay - --rt - --steam - ) - steamArgs=( - -pipewire-dmabuf - -tenfoot - ) - mangoConfig=( - cpu_temp - gpu_temp - ram - vram - ) - mangoVars=( - MANGOHUD=1 - MANGOHUD_CONFIG="$(IFS=,; echo "$mangoConfig[*]")" - ) - - export "$mangoVars[@]" - exec gamescope "$gamescopeArgs[@]" -- steam "$steamArgs[@]" - - '') - ]; - # Let Home Manager install and manage itself. programs.home-manager.enable = true; } diff --git a/nixos/packages/games.nix b/nixos/packages/games.nix index b093103..2cdb367 100644 --- a/nixos/packages/games.nix +++ b/nixos/packages/games.nix @@ -22,6 +22,36 @@ export __VK_LAYER_NV_optimus=NVIDIA_only exec "$@" '') + + (writeShellScriptBin "gs" '' + set -xeuo pipefail + + gamescopeArgs=( + --adaptive-sync # VRR support + --hdr-enabled + --mangoapp # performance overlay + --rt + --steam + ) + steamArgs=( + -pipewire-dmabuf + -tenfoot + ) + mangoConfig=( + cpu_temp + gpu_temp + ram + vram + ) + mangoVars=( + MANGOHUD=1 + MANGOHUD_CONFIG="$(IFS=,; echo "''${mangoConfig[*]}")" + ) + + export "''${mangoVars[@]}" + exec gamescope "''${gamescopeArgs[@]}" -- steam "''${steamArgs[@]}" + + '') ]; }; } diff --git a/nixos/system/packages.nix b/nixos/system/packages.nix index f1c3c85..77475d9 100644 --- a/nixos/system/packages.nix +++ b/nixos/system/packages.nix @@ -13,6 +13,7 @@ tor.enable = lib.mkDefault true; virt-manager.enable = lib.mkDefault true; }; + desktop.steamdeck.enable = lib.mkDefault false; programs.kdeconnect.enable = true; programs.wireshark.enable = true; } diff --git a/nixos/system/packages/steam.nix b/nixos/system/packages/steam.nix index a7e13c5..5dd5f20 100644 --- a/nixos/system/packages/steam.nix +++ b/nixos/system/packages/steam.nix @@ -7,23 +7,27 @@ }: { options = { package.steam.enable = lib.mkEnableOption "Enable Steam module"; + desktop.steamdeck.enable = lib.mkEnableOption "Enable Steam desktop integration"; }; - config = lib.mkIf config.package.steam.enable { - programs.steam = { - enable = true; - gamescopeSession.enable = true; - remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play - dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server - localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers - }; - - services.getty.autologinUser = "${username}"; - environment = { - systemPackages = [pkgs.mangohud]; - loginShellInit = '' - [[ "$(tty)" = "/dev/tty1" ]] && ./gs - ''; - }; - }; + config = lib.mkMerge [ + (lib.mkIf config.package.steam.enable { + programs.steam = { + enable = true; + gamescopeSession.enable = true; + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers + }; + }) + (lib.mkIf config.desktop.steamdeck.enable { + services.getty.autologinUser = "${username}"; + environment = { + systemPackages = [pkgs.mangohud]; + loginShellInit = '' + [[ "$(tty)" = "/dev/tty1" ]] && gs + ''; + }; + }) + ]; } diff --git a/nixos/system/system.nix b/nixos/system/system.nix index f65d360..72f2821 100644 --- a/nixos/system/system.nix +++ b/nixos/system/system.nix @@ -11,17 +11,20 @@ ./sys/style.nix ]; - sys.audio.enable = lib.mkDefault true; - sys.desktop.plasma.enable = lib.mkDefault true; - sys.desktop.gnome.enable = lib.mkDefault false; - sys.desktop.hyprland.enable = lib.mkDefault true; - sys.fonts.packages = lib.mkDefault true; - sys.locales.enable = lib.mkDefault true; - sys.network.enable = lib.mkDefault true; - sys.bluetooth.enable = lib.mkDefault true; - sys.nvidia.enable = lib.mkDefault true; - sys.printing.enable = lib.mkDefault true; - sys.sddm.enable = lib.mkDefault true; - sys.style.enable = lib.mkDefault true; - + sys = { + audio.enable = lib.mkDefault true; + desktop = { + plasma.enable = lib.mkDefault true; + gnome.enable = lib.mkDefault false; + hyprland.enable = lib.mkDefault true; + }; + fonts.packages = lib.mkDefault true; + locales.enable = lib.mkDefault true; + network.enable = lib.mkDefault true; + bluetooth.enable = lib.mkDefault true; + nvidia.enable = lib.mkDefault true; + printing.enable = lib.mkDefault true; + sddm.enable = lib.mkDefault true; + style.enable = lib.mkDefault true; + }; }