diff --git a/flake.lock b/flake.lock index e69de29..d424eaa 100644 --- a/flake.lock +++ b/flake.lock @@ -0,0 +1,654 @@ +{ + "nodes": { + "base16-schemes": { + "flake": false, + "locked": { + "lastModified": 1696158499, + "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", + "owner": "tinted-theming", + "repo": "base16-schemes", + "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-schemes", + "type": "github" + } + }, + "devshell": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717408969, + "narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=", + "owner": "numtide", + "repo": "devshell", + "rev": "1ebbe68d57457c8cae98145410b164b5477761f4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "disko": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717770040, + "narHash": "sha256-eq9gP060TqWqRf2k4WO5FrG49rVq5Jy3Ptusg0CFdds=", + "owner": "nix-community", + "repo": "disko", + "rev": "398acc470f7c2d68621db01900f053e6000129c4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "disko", + "type": "github" + } + }, + "flake-compat": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717664902, + "narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717525419, + "narHash": "sha256-5z2422pzWnPXHgq2ms8lcCfttM0dz+hg+x1pCcNkAws=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "a7117efb3725e6197dd95424136f79147aa35e5b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717525419, + "narHash": "sha256-5z2422pzWnPXHgq2ms8lcCfttM0dz+hg+x1pCcNkAws=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "a7117efb3725e6197dd95424136f79147aa35e5b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "impermanence": { + "locked": { + "lastModified": 1708968331, + "narHash": "sha256-VUXLaPusCBvwM3zhGbRIJVeYluh2uWuqtj4WirQ1L9Y=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "a33ef102a02ce77d3e39c25197664b7a636f9c30", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, + "nix-colors": { + "inputs": { + "base16-schemes": "base16-schemes", + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1707825078, + "narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=", + "owner": "misterio77", + "repo": "nix-colors", + "rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1", + "type": "github" + }, + "original": { + "owner": "misterio77", + "repo": "nix-colors", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1716993688, + "narHash": "sha256-vo5k2wQekfeoq/2aleQkBN41dQiQHNTniZeVONWiWLs=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "c0d5b8c54d6828516c97f6be9f2d00c63a363df4", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "sqlfmt", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703863825, + "narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "5163432afc817cf8bd1f031418d1869e4c9d5547", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nix-secrets": { + "flake": false, + "locked": { + "lastModified": 1717864759, + "narHash": "sha256-DUtmDvpNyOZG+UDONTBfRiAdCaI7E1ngVhmUOAjj3wg=", + "ref": "refs/heads/master", + "rev": "81aff439158dc6bb21251dc3be672db671e4a519", + "revCount": 89, + "type": "git", + "url": "ssh://git@git.bitlab21.com/sam/nix-secrets.git" + }, + "original": { + "type": "git", + "url": "ssh://git@git.bitlab21.com/sam/nix-secrets.git" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 0, + "narHash": "sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY=", + "path": "/nix/store/l4wskml8vcs49mg6w9la715cx10sviwh-source", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1697935651, + "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1717265169, + "narHash": "sha256-IITcGd6xpNoyq9SZBigCkv4+qMHSqot0RDPR4xsZ2CA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3b1b4895b2c5f9f5544d02132896aeb9ceea77bc", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1717602782, + "narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e8057b67ebf307f01bdcc8fba94d94f75039d1f6", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1717839683, + "narHash": "sha256-kC0eyEsfpXbtQ2Ee5kgjmLFSVsLgnqpj10LjEi+fK+g=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3f3a01219b4a1b6ee63039a3aa63948fbf37c0dd", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixvim": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "git-hooks": "git-hooks", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1717861394, + "narHash": "sha256-U7E1Wg5PRKUYqfeL8H6KU/5VjFo8bkxbFzigN2grkQI=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "db32ebe205111af0b74d74684df64674ffcf3b36", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nur": { + "locked": { + "lastModified": 1717872410, + "narHash": "sha256-kL4bugfx+R4ozR6t8MrGSdv3LVX7H9IkCxmvjaLAQ7o=", + "owner": "nix-community", + "repo": "NUR", + "rev": "3b134079df522044c0da57f1b7785646a7b76518", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "poetry2nix": { + "inputs": { + "flake-utils": "flake-utils_3", + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "sqlfmt", + "nixpkgs" + ], + "systems": "systems_4", + "treefmt-nix": "treefmt-nix_2" + }, + "locked": { + "lastModified": 1717774136, + "narHash": "sha256-comOhXDFUrbVba47gPenVBKy2foM3m3qOqpcP8umWDA=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "370da3b6fefc6c11367463b68d010f9950aaa80c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, + "root": { + "inputs": { + "disko": "disko", + "home-manager": "home-manager", + "impermanence": "impermanence", + "nix-colors": "nix-colors", + "nix-secrets": "nix-secrets", + "nixpkgs": "nixpkgs", + "nixpkgs-unstable": "nixpkgs-unstable", + "nixvim": "nixvim", + "nur": "nur", + "sops-nix": "sops-nix", + "sqlfmt": "sqlfmt" + } + }, + "sops-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1717455931, + "narHash": "sha256-8Q6mKSsto8gaGczXd4G0lvawdAYLa5Dlh3/g4hl5CaM=", + "owner": "mic92", + "repo": "sops-nix", + "rev": "d4555e80d80d2fa77f0a44201ca299f9602492a0", + "type": "github" + }, + "original": { + "owner": "mic92", + "repo": "sops-nix", + "type": "github" + } + }, + "sqlfmt": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_2", + "poetry2nix": "poetry2nix" + }, + "locked": { + "dir": "sqlfmt", + "lastModified": 1717438253, + "narHash": "sha256-esXZz2AE95t/D8lptEVORys0g68wVuIrFrqmdXsSbXI=", + "ref": "refs/heads/master", + "rev": "5d1d966349841b18d7933843ed96a5a4fb300075", + "revCount": 1, + "type": "git", + "url": "https://git.bitlab21.com/sam/flake-packages?dir=sqlfmt" + }, + "original": { + "dir": "sqlfmt", + "type": "git", + "url": "https://git.bitlab21.com/sam/flake-packages?dir=sqlfmt" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "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" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "id": "systems", + "type": "indirect" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717278143, + "narHash": "sha256-u10aDdYrpiGOLoxzY/mJ9llST9yO8Q7K/UlROoNxzDw=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "3eb96ca1ae9edf792a8e0963cc92fddfa5a87706", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { + "inputs": { + "nixpkgs": [ + "sqlfmt", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717278143, + "narHash": "sha256-u10aDdYrpiGOLoxzY/mJ9llST9yO8Q7K/UlROoNxzDw=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "3eb96ca1ae9edf792a8e0963cc92fddfa5a87706", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index ef35c23..e5bfa0c 100644 --- a/flake.nix +++ b/flake.nix @@ -5,6 +5,9 @@ # Nixpkgs nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + # NUR + nur.url = "github:nix-community/NUR"; + # Import personal packages repo sqlfmt.url = "git+https://git.bitlab21.com/sam/flake-packages?dir=sqlfmt"; @@ -48,92 +51,97 @@ }; }; - outputs = { - self, - nixpkgs, - home-manager, - ... - } @ inputs: - let - inherit (self) outputs; - systems = [ - "x86_64-linux" - ]; - forAllSystems = nixpkgs.lib.genAttrs systems; - specialArgs = { inherit inputs outputs; }; - in { - packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); - formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); - overlays = import ./overlays {inherit inputs;}; - nixosModules = import ./modules/nixos; - homeManagerModules = import ./modules/home-manager; + outputs = + { self + , nixpkgs + , home-manager + , ... + } @ inputs: + let + inherit (self) outputs; + systems = [ + "x86_64-linux" + ]; + forAllSystems = nixpkgs.lib.genAttrs systems; + specialArgs = { inherit inputs outputs; }; + in + { + packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); + formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); + overlays = import ./overlays { inherit inputs; }; + nixosModules = import ./modules/nixos; + homeManagerModules = import ./modules/home-manager; - # System level configs - nixosConfigurations = { - nixdev = nixpkgs.lib.nixosSystem { - inherit specialArgs; - modules = [ - ./hosts/nixdev - home-manager.nixosModules.home-manager{ - home-manager.extraSpecialArgs = specialArgs; - } - ]; - }; - fileserver = nixpkgs.lib.nixosSystem { - inherit specialArgs; - modules = [ - ./hosts/fileserver - home-manager.nixosModules.home-manager{ - home-manager.extraSpecialArgs = specialArgs; - } - ]; - }; - bootstrap = nixpkgs.lib.nixosSystem { - inherit specialArgs; - modules = [ - ./hosts/bootstrap - ]; - }; - sparky = nixpkgs.lib.nixosSystem { - inherit specialArgs; - modules = [ - ./hosts/sparky - home-manager.nixosModules.home-manager{ - home-manager.extraSpecialArgs = specialArgs; - } - ]; - }; - semita = nixpkgs.lib.nixosSystem { - inherit specialArgs; - modules = [ - ./hosts/semita - home-manager.nixosModules.home-manager{ - home-manager.extraSpecialArgs = specialArgs; - } - ]; + # System level configs + nixosConfigurations = { + nixdev = nixpkgs.lib.nixosSystem { + inherit specialArgs; + modules = [ + ./hosts/nixdev + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = specialArgs; + } + ]; + }; + fileserver = nixpkgs.lib.nixosSystem { + inherit specialArgs; + modules = [ + ./hosts/fileserver + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = specialArgs; + } + ]; + }; + bootstrap = nixpkgs.lib.nixosSystem { + inherit specialArgs; + modules = [ + ./hosts/bootstrap + ]; + }; + sparky = nixpkgs.lib.nixosSystem { + inherit specialArgs; + modules = [ + ./hosts/sparky + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = specialArgs; + } + ]; + }; + semita = nixpkgs.lib.nixosSystem { + inherit specialArgs; + modules = [ + ./hosts/semita + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = specialArgs; + } + ]; + }; }; + + # # Standalone home-manager configuration entrypoint + # # Available through 'home-manager --flake .#your-username@your-hostname' + # homeConfigurations = { + # # FIXME replace with your username@hostname + # "sam@nixdev" = home-manager.lib.homeManagerConfiguration { + # pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance + # extraSpecialArgs = {inherit inputs outputs ;}; + # modules = [ + # # > Our main home-manager configuration file < + # ./home/nixdev.nix + # ]; + # }; + # "admin@fileserver" = home-manager.lib.homeManagerConfiguration { + # pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance + # extraSpecialArgs = {inherit inputs outputs ;}; + # modules = [ + # # > Our main home-manager configuration file < + # ./home/nixdev.nix + # ]; + # }; + # }; }; - -# # Standalone home-manager configuration entrypoint -# # Available through 'home-manager --flake .#your-username@your-hostname' -# homeConfigurations = { -# # FIXME replace with your username@hostname -# "sam@nixdev" = home-manager.lib.homeManagerConfiguration { -# pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance -# extraSpecialArgs = {inherit inputs outputs ;}; -# modules = [ -# # > Our main home-manager configuration file < -# ./home/nixdev.nix -# ]; -# }; -# "admin@fileserver" = home-manager.lib.homeManagerConfiguration { -# pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance -# extraSpecialArgs = {inherit inputs outputs ;}; -# modules = [ -# # > Our main home-manager configuration file < -# ./home/nixdev.nix -# ]; -# }; -# }; - }; } diff --git a/home/common/core/nixvim/theme.nix b/home/common/core/nixvim/theme.nix index 7dd7112..445f962 100644 --- a/home/common/core/nixvim/theme.nix +++ b/home/common/core/nixvim/theme.nix @@ -5,7 +5,6 @@ commentStyle = { italic = true; }; - dimInactive = true; terminalColors = true; theme = "wave"; transparent = true; diff --git a/home/common/optional/desktop/common/default.nix b/home/common/optional/desktop/common/default.nix index 15bf3dc..10be23e 100644 --- a/home/common/optional/desktop/common/default.nix +++ b/home/common/optional/desktop/common/default.nix @@ -1,7 +1,12 @@ -{ pkgs, ... }: { +{ pkgs, inputs, ... }: { imports = [ ./firefox.nix ./alacritty.nix + ./zotero.nix + ]; + + nixpkgs.overlays = [ + inputs.nur.overlay ]; # Global packages for desktop environments diff --git a/home/common/optional/desktop/common/firefox.nix b/home/common/optional/desktop/common/firefox.nix index 5d58021..7de4cc1 100644 --- a/home/common/optional/desktop/common/firefox.nix +++ b/home/common/optional/desktop/common/firefox.nix @@ -1,82 +1,43 @@ -{ pkgs, inputs, config, ... }: +{ pkgs, config, ... }: let user = config.home.username; in { programs.firefox = { enable = true; - policies = { - DisableTelemetry = true; - DisableFirefoxStudies = true; - EnableTrackingProtection = { - Value= true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - DisablePocket = true; - DisableFirefoxAccounts = true; - DisableAccounts = true; - DisableFirefoxScreenshots = true; - OverrideFirstRunPage = ""; - OverridePostUpdatePage = ""; - DontCheckDefaultBrowser = true; - DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab" - DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" - SearchBar = "unified"; # alternative: "separate" - SearchEngines = { - Default = "DuckDuckGo"; - PreventInstalls = true; - }; - /* ---- EXTENSIONS ---- */ - # Check about:support for extension/add-on ID strings. - # Valid strings for installation_mode are "allowed", "blocked", - # "force_installed" and "normal_installed". - ExtensionSettings = { - "*".installation_mode = "blocked"; # blocks all addons except the ones specified below - # uBlock Origin: - "uBlock0@raymondhill.net" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; - installation_mode = "force_installed"; - }; - # Privacy Badger: - "jid1-MnnxcxisBPnSXQ@jetpack" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi"; - installation_mode = "force_installed"; - }; - # Bitwarden - "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; - installation_mode = "force_installed"; - }; - # Dark Reader - "addon@darkreader.org" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi"; - installation_mode = "force_installed"; - }; - # Sponser Block - "sponsorBlocker@ajay.app" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi"; - installation_mode = "force_installed"; - }; - # Return Youtube Dislike - "{762f9885-5a13-4abd-9c77-433dcd38b8fd}" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislikes/latest.xpi"; - installation_mode = "force_installed"; - }; - }; - }; profiles.${user} = { - - search.engines = { - "Searxng" = { - urls = [{ - template = "http://10.0.10.35:8855"; - }]; - + search = { + force = true; + default = "Searx"; + order = [ "Searx" "DuckDuckGo" ]; + engines = { + "Nix Packages" = { + urls = [{ + template = "https://search.nixos.org/packages"; + params = [ + { name = "type"; value = "packages"; } + { name = "query"; value = "{searchTerms}"; } + ]; + }]; + icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@np" ]; + }; + "NixOS Wiki" = { + urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; + iconUpdateURL = "https://nixos.wiki/favicon.png"; + updateInterval = 24 * 60 * 60 * 1000; # every day + definedAliases = [ "@nw" ]; + }; + "Searx" = { + urls = [{ template = "http://10.0.10.35:8855/?q={searchTerms}"; }]; + iconUpdateURL = "https://docs.searxng.org/_static/searxng-wordmark.svg"; + updateInterval = 24 * 60 * 60 * 1000; # every day + definedAliases = [ "@searx" ]; + }; + "Bing".metaData.hidden = true; + "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias }; }; - search.force = true; bookmarks = [ { @@ -99,8 +60,22 @@ in "identity.fxaccounts.enabled" = false; "signon.rememberSignons" = false; "browser.compactmode.show" = true; + "browser.startup.homepage" = "http://10.0.10.35:8855"; + "browser.search.defaultenginename" = "Searx"; + "browser.search.order.1" = "Searx"; }; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + return-youtube-dislikes + bitwarden + sponsorblock + darkreader + vimium + privacy-badger + zotero-connector + ]; + }; }; } diff --git a/home/common/optional/desktop/common/zotero.nix b/home/common/optional/desktop/common/zotero.nix new file mode 100644 index 0000000..f6b21c6 --- /dev/null +++ b/home/common/optional/desktop/common/zotero.nix @@ -0,0 +1,33 @@ +{ pkgs, config, ... }: +let + user = config.home.username; +in +{ + home.packages = [ + pkgs.zotero + ]; + + home.file.".zotero/zotero/profiles.ini".text = '' + [General] + StartWithLastProfile=1 + + [Profile0] + Name=default + IsRelative=1 + Path=zprofile.default + Default=1 + ''; + + home.file.".zotero/zotero/zprofile.default/user.js".text = '' + user_pref("extensions.zotero.dataDir", "/home/${user}/.local/share/Zotero"); + user_pref("extensions.zotero.firstRun.skipFirefoxProfileAccessCheck", true); + user_pref("extensions.zotero.firstRun2", false); + user_pref("extensions.zotero.useDataDir", true); + user_pref("intl.accept_languages", "en-GB, en"); + user_pref("extensions.zotero.sync.server.username", "samual.shop@proton.me"); + user_pref("extensions.zotero.sync.fulltext.enabled", false); + user_pref("extensions.zotero.sync.storage.enabled", false); + user_pref("extensions.zotero.sync.storage.groups.enabled", false); + ''; + +} diff --git a/home/common/optional/desktop/hyprland/default.nix b/home/common/optional/desktop/hyprland/default.nix index 524fd37..563323c 100644 --- a/home/common/optional/desktop/hyprland/default.nix +++ b/home/common/optional/desktop/hyprland/default.nix @@ -7,6 +7,7 @@ imports = [ ../common ../wayland + ./pyprland.nix ]; wayland.windowManager.hyprland = { enable = true; @@ -108,7 +109,7 @@ sensitivity = -0.5 } - + windowrulev2 = float, class:floating $mainMod = SUPER @@ -119,6 +120,10 @@ bind = $mainMod, V, togglefloating, bind = $mainMod, R, exec, $menu + bind = $mainMod, y, exec, pypr toggle termy + bind = $mainMod, u, exec, pypr toggle termu + bind = $mainMod, i, exec, pypr toggle termi + bind = $mainMod, h, movefocus, l bind = $mainMod, l, movefocus, r bind = $mainMod, k, movefocus, u @@ -155,7 +160,7 @@ bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow - exec-once=swww-wallpaper-changer + exec-once=swww-wallpaper-changer & pypr ''; }; } diff --git a/home/common/optional/desktop/hyprland/pyprland.nix b/home/common/optional/desktop/hyprland/pyprland.nix new file mode 100644 index 0000000..2094dba --- /dev/null +++ b/home/common/optional/desktop/hyprland/pyprland.nix @@ -0,0 +1,33 @@ +{ ... }: +{ + home.file.".config/hypr/pyprland.toml".text = '' + [pyprland] + plugins = [ + "scratchpads" + ] + + [scratchpads.termy] + animation = "fromTop" + command = "$TERMINAL --class $TERMINAL-dropterm-y --title 'Scratchpad(y)'" + class = "$TERMINAL-dropterm-y" + size = "80% 80%" + + [scratchpads.termu] + animation = "fromTop" + command = "$TERMINAL --class $TERMINAL-dropterm-u --title 'Scratchpad(u)'" + class = "$TERMINAL-dropterm-u" + size = "80% 80%" + + [scratchpads.termi] + animation = "fromTop" + command = "$TERMINAL --class $TERMINAL-dropterm-i --title 'Scratchpad(i)'" + class = "$TERMINAL-dropterm-i" + size = "80% 80%" + + [scratchpads.volume] + animation = "fromTop" + command = "pavucontrol --class floating" + class = "org.pulseaudio.pavucontrol" + size = "75% 60%" + ''; +} diff --git a/home/common/optional/desktop/wayland/default.nix b/home/common/optional/desktop/wayland/default.nix index c7e1bc7..196bc79 100644 --- a/home/common/optional/desktop/wayland/default.nix +++ b/home/common/optional/desktop/wayland/default.nix @@ -9,5 +9,6 @@ home.packages = [ pkgs.wofi pkgs.wl-clipboard + pkgs.pyprland ]; } diff --git a/home/common/optional/desktop/wayland/waybar.nix b/home/common/optional/desktop/wayland/waybar.nix index d32118e..9c92604 100644 --- a/home/common/optional/desktop/wayland/waybar.nix +++ b/home/common/optional/desktop/wayland/waybar.nix @@ -130,7 +130,7 @@ "portable" = ""; "default" = [ "" "" "" ]; }; - "on-click" = "pavucontrol"; + "on-click" = "pypr toggle volume"; }; }; diff --git a/hosts/common/core/default.nix b/hosts/common/core/default.nix index 7b62e43..1cfd3a6 100644 --- a/hosts/common/core/default.nix +++ b/hosts/common/core/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, inputs, config, outputs, ...}: +{ pkgs, lib, inputs, config, outputs, ... }: let sopsHashedPasswordFile = lib.optionalString (lib.hasAttr "sops-nix" inputs) config.sops.secrets."passwords/root".path; in @@ -9,15 +9,16 @@ in ]; nixpkgs = { - overlays = [ - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - ]; - config = { - allowUnfree = true; - }; + overlays = [ + outputs.overlays.additions + outputs.overlays.modifications + outputs.overlays.unstable-packages + inputs.nur.overlay + ]; + config = { + allowUnfree = true; }; + }; programs.gnupg.agent = { enable = true; @@ -32,16 +33,16 @@ in root = { hashedPasswordFile = sopsHashedPasswordFile; }; - }; + }; }; environment.systemPackages = [ - pkgs.rsync - pkgs.curl - pkgs.just - pkgs.git - pkgs.vim - ]; + pkgs.rsync + pkgs.curl + pkgs.just + pkgs.git + pkgs.vim + ]; system.stateVersion = "23.11"; } diff --git a/hosts/common/users/media/default.nix b/hosts/common/users/media/default.nix index 3a8f470..ec8af1d 100644 --- a/hosts/common/users/media/default.nix +++ b/hosts/common/users/media/default.nix @@ -33,14 +33,14 @@ in "Sync" "Keep" ".ssh" - ".config/dconf" - ".config/cinnamon" - ".config/nemo" + ".config" ".mozilla" ".local" + ".zotero" + ".var" + ".steam" ]; files = [ - ".config/cinnamon-monitors.xml" ]; }; }; diff --git a/hosts/common/users/sam/default.nix b/hosts/common/users/sam/default.nix index 4ee6230..8c5c1f2 100644 --- a/hosts/common/users/sam/default.nix +++ b/hosts/common/users/sam/default.nix @@ -36,6 +36,9 @@ in owner = "${username}"; }; "passwords/postgres" = { }; + "software/zotero/username" = { }; + "software/zotero/password" = { }; + "software/zotero/guid" = { }; }; # Setup postgres connections for db_ui @@ -56,10 +59,10 @@ in ''; }; - # The containing ssh folders are created as root and if this is the first ~/.ssh/ entry when writing keys, - # the ownership is busted and home-manager can't target because it can't write into .ssh... + # The containing folders are created as root and if this is the first entry when writing keys, + # the ownership is busted and home-manager can't target because it can't write to these dirs... # FIXME: We might not need this depending on how https://github.com/Mic92/sops-nix/issues/381 is fixed - system.activationScripts.sopsSetSshOwnwership = + system.activationScripts.sopsSetOwnwership = let sshFolder = "/home/${username}/.ssh"; user = config.users.users.${username}.name; @@ -76,7 +79,6 @@ in ]; }; - programs.zsh.enable = true; home-manager = { diff --git a/hosts/sparky/default.nix b/hosts/sparky/default.nix index bc5b60a..47ff70e 100644 --- a/hosts/sparky/default.nix +++ b/hosts/sparky/default.nix @@ -1,4 +1,4 @@ -{ inputs, config, lib, pkgs, outputs,... }: +{ inputs, config, lib, pkgs, outputs, ... }: let # Disko setup fsType = "btrfs"; # one of ext4 or btrfs. Use btrfs if using impermanence @@ -45,14 +45,58 @@ in enableIPv6 = false; }; + # Gaming + hardware.xone.enable = true; + environment.systemPackages = with pkgs; [ + #Xbox controller + linuxKernel.packages.linux_zen.xone + + # Steam + mangohud + gamemode + + # WINE + wine + winetricks + protontricks + vulkan-tools + + # Extra dependencies + # https://github.com/lutris/docs/ + gnutls + openldap + libgpgerror + freetype + sqlite + libxml2 + xml2 + SDL2 + ]; + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ # Add additional package names here "nvidia-x11" "nvidia-settings" "nvidia-persistenced" + "steam" + "steam-original" + "steam-run" ]; + programs.steam.enable = true; + programs.gamemode.enable = true; + nixpkgs.config.packageOverrides = pkgs: { + steam = pkgs.steam.override { + extraPkgs = pkgs: with pkgs; [ + pango + libthai + harfbuzz + gamemode + ]; + }; + }; + services.displayManager.defaultSession = "cinnamon"; services.libinput.enable = true; @@ -65,7 +109,7 @@ in ''; desktopManager = { cinnamon.enable = true; - }; + }; }; # Enable OpenGL