diff --git a/flake.lock b/flake.lock index 30a3384..e047332 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1763922789, - "narHash": "sha256-XnkWjCpeXfip9tqYdL0b0zzBDjq+dgdISvEdSVGdVyA=", + "lastModified": 1764714051, + "narHash": "sha256-AjcMlM3UoavFoLzr0YrcvsIxALShjyvwe+o7ikibpCM=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "a20a0e67a33b6848378a91b871b89588d3a12573", + "rev": "a43bedcceced5c21ad36578ed823e6099af78214", "type": "github" }, "original": { @@ -78,11 +78,11 @@ ] }, "locked": { - "lastModified": 1764361670, - "narHash": "sha256-jgWzgpIaHbL3USIq0gihZeuy1lLf2YSfwvWEwnfAJUw=", + "lastModified": 1765606130, + "narHash": "sha256-KOP4QnkiRwiD5KEOr6ceF67rfTP1OqPmCCft6xDC3k4=", "owner": "nix-community", "repo": "home-manager", - "rev": "780be8ef503a28939cf9dc7996b48ffb1a3e04c6", + "rev": "d787ec69c3216ea33be1c0424fe65cb23aa8fb31", "type": "github" }, "original": { @@ -159,17 +159,18 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", + "hyprwire": "hyprwire", "nixpkgs": "nixpkgs", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems", "xdph": "xdph" }, "locked": { - "lastModified": 1764451009, - "narHash": "sha256-IiUf+9IG6gtiMJw3EJkgb2mlwv5ZtLQAZEeqf2oqejk=", + "lastModified": 1765543676, + "narHash": "sha256-2qaLZ7kqerWXIZpICR/6lkR0J/EEwiS/uYkdhUXv8Sw=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "f11cf6f1de708b6b3811788e8ff7984ff05a9546", + "rev": "69db0bcae640410b6c587cb0ffd0c89bc8166ff0", "type": "github" }, "original": { @@ -211,11 +212,11 @@ ] }, "locked": { - "lastModified": 1763727565, - "narHash": "sha256-vRff/2R1U1jzPBy4OODqh2kfUzmizW/nfV2ROzTDIKo=", + "lastModified": 1764812575, + "narHash": "sha256-1bK1yGgaR82vajUrt6z+BSljQvFn91D74WJ/vJsydtE=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "7724d3a12a0453e7aae05f2ef39474219f05a4b4", + "rev": "fd321368a40c782cfa299991e5584ca338e36ebe", "type": "github" }, "original": { @@ -265,11 +266,11 @@ ] }, "locked": { - "lastModified": 1763819661, - "narHash": "sha256-0jLarTR/BLWdGlboM86bPVP2zKJNI2jvo3JietnDkOM=", + "lastModified": 1764612430, + "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "a318deec0c12409ec39c68d2be8096b636dc2a5c", + "rev": "0d00dc118981531aa731150b6ea551ef037acddd", "type": "github" }, "original": { @@ -317,11 +318,11 @@ ] }, "locked": { - "lastModified": 1763503177, - "narHash": "sha256-VPoiswJBBmTLVuNncvT/8FpFR+sYcAi/LgP/zTZ+5rA=", + "lastModified": 1764592794, + "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", "owner": "hyprwm", "repo": "hyprtoolkit", - "rev": "f4e1e12755567ecf39090203b8f43eace8279630", + "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", "type": "github" }, "original": { @@ -342,11 +343,11 @@ ] }, "locked": { - "lastModified": 1763996058, - "narHash": "sha256-DsqzFZvrEV+aDmavjaD4/bk5qxeZwhGxPWBQdpFyM9Y=", + "lastModified": 1764962281, + "narHash": "sha256-rGbEMhTTyTzw4iyz45lch5kXseqnqcEpmrHdy+zHsfo=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "0168583075baffa083032ed13a8bea8ea12f281a", + "rev": "fe686486ac867a1a24f99c753bb40ffed338e4b0", "type": "github" }, "original": { @@ -380,6 +381,35 @@ "type": "github" } }, + "hyprwire": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1764872015, + "narHash": "sha256-INI9AVrQG5nJZFvGPSiUZ9FEUZJLfGdsqjF1QSak7Gc=", + "owner": "hyprwm", + "repo": "hyprwire", + "rev": "7997451dcaab7b9d9d442f18985d514ec5891608", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwire", + "type": "github" + } + }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -387,11 +417,11 @@ ] }, "locked": { - "lastModified": 1764161084, - "narHash": "sha256-HN84sByg9FhJnojkGGDSrcjcbeioFWoNXfuyYfJ1kBE=", + "lastModified": 1765065051, + "narHash": "sha256-b7W9WsvyMOkUScNxbzS45KEJp0iiqRPyJ1I3JBE+oEE=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "e95de00a471d07435e0527ff4db092c84998698e", + "rev": "7e22bf538aa3e0937effcb1cee73d5f1bcc26f79", "type": "github" }, "original": { @@ -403,11 +433,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1763966396, - "narHash": "sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0=", + "lastModified": 1764950072, + "narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev": "f61125a668a320878494449750330ca58b78c557", "type": "github" }, "original": { @@ -419,11 +449,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1764242076, - "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", + "lastModified": 1765472234, + "narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", + "rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", "type": "github" }, "original": { @@ -433,6 +463,22 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1764950072, + "narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f61125a668a320878494449750330ca58b78c557", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -443,11 +489,11 @@ ] }, "locked": { - "lastModified": 1763988335, - "narHash": "sha256-QlcnByMc8KBjpU37rbq5iP7Cp97HvjRP0ucfdh+M4Qc=", + "lastModified": 1765016596, + "narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "50b9238891e388c9fdc6a5c49e49c42533a1b5ce", + "rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c", "type": "github" }, "original": { @@ -461,7 +507,27 @@ "home-manager": "home-manager", "hyprland": "hyprland", "nix-darwin": "nix-darwin", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_2", + "spicetify-nix": "spicetify-nix" + } + }, + "spicetify-nix": { + "inputs": { + "nixpkgs": "nixpkgs_3", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1765082296, + "narHash": "sha256-EcefoixU9ht+P6QB/TfjLY9E3MdJVfeSec6G8Ges0pA=", + "owner": "Gerg-L", + "repo": "spicetify-nix", + "rev": "ac4927ea1ec7e7ea3635a1d8b933106a596c4356", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "spicetify-nix", + "type": "github" } }, "systems": { @@ -479,6 +545,21 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "xdph": { "inputs": { "hyprland-protocols": [ diff --git a/flake.nix b/flake.nix index 70953a9..ec79c84 100644 --- a/flake.nix +++ b/flake.nix @@ -8,6 +8,9 @@ # Hyprland hyprland.url = "github:hyprwm/Hyprland"; + # Spicetify + spicetify-nix.url = "github:Gerg-L/spicetify-nix"; + nix-darwin = { url = "github:nix-darwin/nix-darwin/master"; inputs.nixpkgs.follows = "nixpkgs"; @@ -18,7 +21,7 @@ }; }; - outputs = { self,nix-darwin ,nixpkgs, ... }@inputs: { + outputs = { self,nix-darwin ,nixpkgs, home-manager, spicetify-nix, ... }@inputs: { # use "nixos", or your hostname as the name of the configuration # it's a better practice than "default" shown in the video nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { diff --git a/hosts/macos/home.nix b/hosts/macos/home.nix index 6c07009..33e8807 100644 --- a/hosts/macos/home.nix +++ b/hosts/macos/home.nix @@ -5,6 +5,10 @@ home.username = "alex"; home.homeDirectory = "/Users/alex"; + imports = [ + inputs.spicetify-nix.homeMamangerModules.spicetify + ]; + home.stateVersion = "25.11"; # Allow unfree packages @@ -48,9 +52,4 @@ # Customisation spicetify-cli ]; - - # - - programs.home-manager.enable = true; - } diff --git a/hosts/nixos/configuration.nix b/hosts/nixos/configuration.nix index 0e21334..16d7566 100644 --- a/hosts/nixos/configuration.nix +++ b/hosts/nixos/configuration.nix @@ -9,7 +9,6 @@ [ # Include the results of the hardware scan. ./hardware-configuration.nix ./modules.nix - inputs.home-manager.nixosModules.default ]; # Bootloader. @@ -40,6 +39,8 @@ home-manager = { extraSpecialArgs = { inherit inputs; }; + useGlobalPkgs = true; + useUserPackages = true; users = { "alex" = import ./home.nix; }; diff --git a/hosts/nixos/home.nix b/hosts/nixos/home.nix index d3f729d..3fe5206 100644 --- a/hosts/nixos/home.nix +++ b/hosts/nixos/home.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, pkgs, inputs, ... }: { # Home Manager needs a bit of information about you and the paths it should @@ -6,6 +6,12 @@ home.username = "alex"; home.homeDirectory = "/home/alex"; + imports = [ + inputs.spicetify-nix.homeManagerModules.spicetify + ../../modules/home-manager/spicetify.nix + ]; + + # Hyprland wayland.windowManager.hyprland = { enable = true; @@ -116,7 +122,4 @@ home.sessionVariables = { # EDITOR = "emacs"; }; - - # Let Home Manager install and manage itself. - programs.home-manager.enable = true; } diff --git a/hosts/nixos/modules.nix b/hosts/nixos/modules.nix index 688b54e..2ccd7f0 100644 --- a/hosts/nixos/modules.nix +++ b/hosts/nixos/modules.nix @@ -6,5 +6,6 @@ ../../modules/nixos/locale.nix # For localisation options ../../modules/nixos/gamming/nvidia.nix # Nvidia (Drivers and Settings) ../../modules/nixos/gamming/steam.nix # For Steam/Proton/Lutris/MangoHUD/Heroic/Bottles + ../../modules/common/spotify.nix # Spotify/Spicetify ]; } diff --git a/modules/common/spotify.nix b/modules/common/spotify.nix new file mode 100644 index 0000000..e76cf34 --- /dev/null +++ b/modules/common/spotify.nix @@ -0,0 +1,14 @@ +{ pkgs, inputs, ... }: + +{ + # Installs Spotify and Spicetify (import this module in homeManager) + environment.systemPackages = with pkgs; [ + spotify + ]; + + # Local discovery + networking.firewall.allowedTCPPorts = [ 57621 ]; + + # Spotify Connect + networking.firewall.allowedUDPPorts = [ 5353 ]; +} diff --git a/modules/home-manager/spicetify.nix b/modules/home-manager/spicetify.nix new file mode 100644 index 0000000..973d5f7 --- /dev/null +++ b/modules/home-manager/spicetify.nix @@ -0,0 +1,24 @@ +{ pkgs, inputs, ... }: + + # Spicetify +let + spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; +in +{ + programs.spicetify = { + enable = true; + + enabledCustomApps = with spicePkgs.apps; [ + newReleases + ncsVisualizer + ]; + + enabledSnippets = with spicePkgs.snippets; [ + rotatingCoverart + pointer + ]; + + theme = spicePkgs.themes.catppuccin; + colorScheme = "mocha"; + }; +}