diff --git a/.sops.yaml b/.sops.yaml index b3de95b..3898e97 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -1,19 +1,7 @@ keys: - &primary age1sseqwwa7fc0ftry8njyuagdg28fkmtdwmj6m7p3etjsj83suee3shfzjyz creation_rules: - - path_regex: secrets/battleship-secrets.yaml$ - key_groups: - - age: - - *primary - - path_regex: secrets/battleship-secrets.lesser.json$ - key_groups: - - age: - - *primary - - path_regex: secrets/spacestation-secrets.yaml$ - key_groups: - - age: - - *primary - - path_regex: secrets/spacestation-secrets.lesser.json$ + - path_regex: secrets/secrets.yaml$ key_groups: - age: - *primary diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..9a179a8 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,134 @@ +{ + config, + lib, + pkgs, + ... +}: { + imports = [ + ./secrets.nix + ]; + + # Users + users.users."guz" = { + useDefaultShell = true; + isNormalUser = true; + + hashedPasswordFile = builtins.toString config.sops.secrets."guz/password".path; + extraGroups = ["wheel"]; + }; + + # GnuPG keyring + programs.gnupg.agent = { + enable = true; + pinentryPackage = pkgs.pinentry-gtk2; + settings = {default-cache-ttl = 3600 * 24;}; + }; + services.pcscd.enable = true; + + # Desktops + + ## Hyprland + programs.hyprland.enable = true; + programs.hyprland.withUWSM = true; + programs.hyprlock.enable = true; + + services.displayManager = { + sddm.enable = true; + sddm.wayland.enable = true; + }; + + ## XFCE (fallback) + services.xserver.enable = true; + services.xserver.desktopManager = { + xfce.enable = true; + }; + + # Yet another nix cli helper + programs.nh = { + enable = true; + clean.enable = true; + clean.extraArgs = "--keep-since 7d --keep 3"; + flake = "/home/guz/.projects/dot013-nix"; + }; + + # Enable Nix-LD for standalone binaries (useful for development) + programs.nix-ld.enable = true; + + # Bluetooth + hardware.bluetooth.enable = true; + hardware.bluetooth.powerOnBoot = true; + services.blueman.enable = true; + + # Audio + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + wireplumber.enable = true; + }; + security.rtkit.enable = true; + + # Networking + networking = { + networkmanager.enable = true; + nameservers = ["192.168.0.1" "9.9.9.9"]; + }; + + # Firewall + networking.firewall.enable = true; + networking.firewall.allowedTCPPorts = [80 433]; + + # SSH + services.openssh.enable = true; + services.openssh.settings = { + PasswordAuthentication = false; + PermitRootLogin = "forced-commands-only"; + }; + + # Mosh + programs.mosh.enable = true; + + # Tailscale + services.tailscale.enable = true; + + # Locale + time.timeZone = "America/Sao_Paulo"; + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocaleSettings = let + locale = "pt_BR.UTF-8"; + in { + LC_ADDRESS = locale; + LC_IDENTIFICATION = locale; + LC_MEASUREMENT = locale; + LC_MONETARY = locale; + LC_NAME = locale; + LC_NUMERIC = locale; + LC_PAPER = locale; + LC_TELEPHONE = locale; + LC_TIME = locale; + }; + + # Keyboard + services.xserver.xkb = { + layout = "br"; + }; + console.keyMap = "br-abnt2"; + + # Bootloader + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Nix + nix.settings = { + experimental-features = ["nix-command" "flakes"]; + }; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It's perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "24.11"; # Did you read the comment? +} diff --git a/flake.lock b/flake.lock index 63d14e0..87aeb4e 100644 --- a/flake.lock +++ b/flake.lock @@ -1,113 +1,165 @@ { "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" - } - }, - "dot013-environment": { + "aquamarine": { "inputs": { - "neovim-nightly-overlay": "neovim-nightly-overlay", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1733774999, - "narHash": "sha256-pJXCUtTnpub+KLAuBWu6leQN/31FC4g9Q2IErP5YgZs=", - "ref": "refs/heads/main", - "rev": "94c941a771cab3788db3b27467bdc1d4d381effb", - "revCount": 63, - "type": "git", - "url": "https://forge.capytal.company/dot013/environment" - }, - "original": { - "type": "git", - "url": "https://forge.capytal.company/dot013/environment" - } - }, - "dot013-neovim": { - "inputs": { - "go-grip": "go-grip", - "neovim-nightly-overlay": "neovim-nightly-overlay_2", - "nixpkgs": "nixpkgs_5", - "yazi": "yazi" - }, - "locked": { - "lastModified": 1735224983, - "narHash": "sha256-wwYIB8gdOCMKdhbupmIme/zwNZ4ORBizZc4+iVc4XZw=", - "ref": "refs/heads/main", - "rev": "bff3f7b24ee6059a54a1acb60e440a5a58780e5f", - "revCount": 90, - "type": "git", - "url": "https://forge.capytal.company/dot013/nvim" - }, - "original": { - "type": "git", - "url": "https://forge.capytal.company/dot013/nvim" - } - }, - "dot013-shell": { - "inputs": { - "go-grip": "go-grip_2", - "neovim-nightly-overlay": "neovim-nightly-overlay_3", - "nixpkgs": "nixpkgs_9", - "yazi": "yazi_2" - }, - "locked": { - "lastModified": 1735910393, - "narHash": "sha256-bxT6ZtD/Y1LZRtvbjTtApzvPz/mAuSPsWi9lqnS73VY=", - "ref": "refs/heads/main", - "rev": "7082a250be946ddd09e6622d49dea53bee19ab3a", - "revCount": 92, - "type": "git", - "url": "https://forge.capytal.company/dot013/nvim" - }, - "original": { - "type": "git", - "url": "https://forge.capytal.company/dot013/nvim" - } - }, - "firefox-addons": { - "inputs": { - "flake-utils": "flake-utils_5", + "hyprutils": [ + "xremap", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "xremap", + "hyprland", + "hyprwayland-scanner" + ], "nixpkgs": [ + "xremap", + "hyprland", "nixpkgs" + ], + "systems": [ + "xremap", + "hyprland", + "systems" ] }, "locked": { - "dir": "pkgs/firefox-addons", - "lastModified": 1735736119, - "narHash": "sha256-LlFTsG0yk8OZ+HjuxnpEzliG0bf+BEWLvKHQZkFtQ+U=", - "owner": "rycee", - "repo": "nur-expressions", - "rev": "4da6d4129925b1884cf0d1eb79ba6983abfa6933", - "type": "gitlab" + "lastModified": 1737636397, + "narHash": "sha256-F5MbBj3QVorycVSFE9qjuOTLtIQBqt2VWbXa0uwzm98=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "7fe006981fae53e931f513026fc754e322f13145", + "type": "github" }, "original": { - "dir": "pkgs/firefox-addons", - "owner": "rycee", - "repo": "nur-expressions", - "type": "gitlab" + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1732200724, + "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "153d52373b0fb2d343592871009a286ec8837aec", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1725860795, + "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1731949548, + "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "type": "github" + } + }, + "crane": { + "locked": { + "lastModified": 1737689766, + "narHash": "sha256-ivVXYaYlShxYoKfSo5+y5930qMKKJ8CLcAoIBPQfJ6s=", + "owner": "ipetkov", + "repo": "crane", + "rev": "6fe74265bbb6d016d663b1091f015e2976c4a527", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "devshell": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1735644329, + "narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=", + "owner": "numtide", + "repo": "devshell", + "rev": "f7795ede5b02664b57035b3b757876703e2c3eac", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1734969791, + "narHash": "sha256-A9PxLienMYJ/WUvqFie9qXrNC2MeRRYw7TG/q7DRjZg=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "92f4890bd150fc9d97b61b3583680c0524a8cafe", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" } }, "flake-compat": { "flake": false, "locked": { - "lastModified": 1732722421, - "narHash": "sha256-HRJ/18p+WoXpWJkcdsk9St5ZiukCqSDgbOGFa8Okehg=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9ed2ac151eada2306ca8c418ebd97807bb08f6ac", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -132,100 +184,16 @@ "type": "github" } }, - "flake-compat_3": { - "flake": false, - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_4": { - "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-compat_5": { - "flake": false, - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_6": { - "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-compat_7": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-parts": { "inputs": { - "nixpkgs-lib": [ - "dot013-environment", - "neovim-nightly-overlay", - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1736143030, + "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", "type": "github" }, "original": { @@ -234,116 +202,6 @@ "type": "github" } }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "dot013-environment", - "neovim-nightly-overlay", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": [ - "dot013-neovim", - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": [ - "dot013-neovim", - "neovim-nightly-overlay", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": [ - "dot013-shell", - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_6": { - "inputs": { - "nixpkgs-lib": [ - "dot013-shell", - "neovim-nightly-overlay", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, "flake-utils": { "inputs": { "systems": "systems" @@ -364,14 +222,17 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_2" + "systems": [ + "stylix", + "systems" + ] }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -380,169 +241,45 @@ "type": "github" } }, - "flake-utils_3": { - "inputs": { - "systems": "systems_3" - }, + "fromYaml": { + "flake": false, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_4": { - "inputs": { - "systems": "systems_4" - }, - "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_5": { - "locked": { - "lastModified": 1629284811, - "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_6": { - "inputs": { - "systems": "systems_6" - }, - "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flatpaks": { - "locked": { - "lastModified": 1735500379, - "narHash": "sha256-5qmX6YYjYfVYBbsmd2XxbTi7A59YuuN9IwfXU7qFquQ=", - "owner": "gmodena", - "repo": "nix-flatpak", - "rev": "c31b6cbd11707fe2c74ad805ef085d59d75116ae", - "type": "github" - }, - "original": { - "owner": "gmodena", - "repo": "nix-flatpak", + "owner": "SenchoPens", + "repo": "fromYaml", "type": "github" } }, "git-hooks": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": [ + "stylix", + "flake-compat" + ], "gitignore": "gitignore", "nixpkgs": [ - "dot013-environment", - "neovim-nightly-overlay", + "stylix", "nixpkgs" ], "nixpkgs-stable": [ - "dot013-environment", - "neovim-nightly-overlay", + "stylix", + "git-hooks", "nixpkgs" ] }, "locked": { - "lastModified": 1732021966, - "narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=", + "lastModified": 1731363552, + "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "3308484d1a443fc5bc92012435d79e80458fe43c", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_2": { - "inputs": { - "flake-compat": "flake-compat_4", - "gitignore": "gitignore_2", - "nixpkgs": [ - "dot013-neovim", - "neovim-nightly-overlay", - "nixpkgs" - ], - "nixpkgs-stable": [ - "dot013-neovim", - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733665616, - "narHash": "sha256-+XTFXYlFJBxohhMGLDpYdEnhUNdxN8dyTA8WAd+lh2A=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "d8c02f0ffef0ef39f6063731fc539d8c71eb463a", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_3": { - "inputs": { - "flake-compat": "flake-compat_6", - "gitignore": "gitignore_3", - "nixpkgs": [ - "dot013-shell", - "neovim-nightly-overlay", - "nixpkgs" - ], - "nixpkgs-stable": [ - "dot013-shell", - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733665616, - "narHash": "sha256-+XTFXYlFJBxohhMGLDpYdEnhUNdxN8dyTA8WAd+lh2A=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "d8c02f0ffef0ef39f6063731fc539d8c71eb463a", + "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", "type": "github" }, "original": { @@ -554,8 +291,7 @@ "gitignore": { "inputs": { "nixpkgs": [ - "dot013-environment", - "neovim-nightly-overlay", + "stylix", "git-hooks", "nixpkgs" ] @@ -577,9 +313,9 @@ "gitignore_2": { "inputs": { "nixpkgs": [ - "dot013-neovim", - "neovim-nightly-overlay", - "git-hooks", + "xremap", + "hyprland", + "pre-commit-hooks", "nixpkgs" ] }, @@ -597,40 +333,36 @@ "type": "github" } }, - "gitignore_3": { - "inputs": { - "nixpkgs": [ - "dot013-shell", - "neovim-nightly-overlay", - "git-hooks", - "nixpkgs" - ] - }, + "gnome-shell": { + "flake": false, "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "lastModified": 1732369855, + "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "dadd58f630eeea41d645ee225a63f719390829dc", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", + "owner": "GNOME", + "ref": "47.2", + "repo": "gnome-shell", "type": "github" } }, "go-grip": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_3" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1733702535, + "lastModified": 1733732005, "narHash": "sha256-PHv+pxgdJE8MgM5AS2Yu9+vdD0I4kpRekgHMN5uRIHg=", "owner": "guz013", "repo": "go-grip", - "rev": "d67368388939be8513cd52a9e1d86d71543dbcde", + "rev": "7152e25630dc5d258773b9771212b819a097cc09", "type": "github" }, "original": { @@ -639,94 +371,6 @@ "type": "github" } }, - "go-grip_2": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_7" - }, - "locked": { - "lastModified": 1733702535, - "narHash": "sha256-PHv+pxgdJE8MgM5AS2Yu9+vdD0I4kpRekgHMN5uRIHg=", - "owner": "guz013", - "repo": "go-grip", - "rev": "d67368388939be8513cd52a9e1d86d71543dbcde", - "type": "github" - }, - "original": { - "owner": "guz013", - "repo": "go-grip", - "type": "github" - } - }, - "hercules-ci-effects": { - "inputs": { - "flake-parts": "flake-parts_2", - "nixpkgs": [ - "dot013-environment", - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730903510, - "narHash": "sha256-mnynlrPeiW0nUQ8KGZHb3WyxAxA3Ye/BH8gMjdoKP6E=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "b89ac4d66d618b915b1f0a408e2775fe3821d141", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, - "hercules-ci-effects_2": { - "inputs": { - "flake-parts": "flake-parts_4", - "nixpkgs": [ - "dot013-neovim", - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733333617, - "narHash": "sha256-nMMQXREGvLOLvUa0ByhYFdaL0Jov0t1wzLbKjr05P2w=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "56f8ea8d502c87cf62444bec4ee04512e8ea24ea", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, - "hercules-ci-effects_3": { - "inputs": { - "flake-parts": "flake-parts_6", - "nixpkgs": [ - "dot013-shell", - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733333617, - "narHash": "sha256-nMMQXREGvLOLvUa0ByhYFdaL0Jov0t1wzLbKjr05P2w=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "56f8ea8d502c87cf62444bec4ee04512e8ea24ea", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -734,16 +378,34 @@ ] }, "locked": { - "lastModified": 1726989464, - "narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=", + "lastModified": 1736373539, + "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", "owner": "nix-community", "repo": "home-manager", - "rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176", + "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-24.11", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1737968762, + "narHash": "sha256-xiPARGKwocaMtv+U/rgi+h2g56CZZEmrcl7ldRaslq8=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "e1ae908bcc30af792b0bb0a52e53b03d2577255e", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.05", "repo": "home-manager", "type": "github" } @@ -751,24 +413,27 @@ "hyprcursor": { "inputs": { "hyprlang": [ + "xremap", "hyprland", "hyprlang" ], "nixpkgs": [ + "xremap", "hyprland", "nixpkgs" ], "systems": [ + "xremap", "hyprland", "systems" ] }, "locked": { - "lastModified": 1718450675, - "narHash": "sha256-jpsns6buS4bK+1sF8sL8AaixAiCRjA+nldTKvcwmvUs=", + "lastModified": 1737634937, + "narHash": "sha256-Ffw4ujFpi++6pPHe+gCBOfDgAoNlzVPZN6MReC1beu8=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "66d5b46ff94efbfa6fa3d1d1b66735f1779c34a6", + "rev": "9c5dd1f7c825ee47f72727ad0a4e16ca46a2688e", "type": "github" }, "original": { @@ -777,52 +442,86 @@ "type": "github" } }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "xremap", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "xremap", + "hyprland", + "nixpkgs" + ], + "systems": [ + "xremap", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1737985436, + "narHash": "sha256-zx8FdI4zr2GhNyD1YGAqa2ymodAObTSAdwuWwVucewo=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "23783b96036f5506fdaf8b2250a1ef849d57f0d3", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, "hyprland": { "inputs": { + "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_11", - "systems": "systems_5", + "nixpkgs": "nixpkgs_4", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems_3", "xdph": "xdph" }, "locked": { - "lastModified": 1719317162, - "narHash": "sha256-JmfnYz+9a4TjNl3mAus1VpoWtTI9d1xkW9MHbkcV0Po=", - "ref": "refs/heads/main", - "rev": "918d8340afd652b011b937d29d5eea0be08467f5", - "revCount": 4886, - "submodules": true, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland?ref=v0.41.2" + "lastModified": 1738107811, + "narHash": "sha256-+57jB0fv53OmAQ8QpK3eiRXfypBfKJtfdepRusNX+DM=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "3d1dd6b5c7b90e513e86c1ad27c6c01a5c69e4f8", + "type": "github" }, "original": { - "rev": "918d8340afd652b011b937d29d5eea0be08467f5", - "submodules": true, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland?ref=v0.41.2" + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" } }, "hyprland-protocols": { "inputs": { "nixpkgs": [ + "xremap", "hyprland", - "xdph", "nixpkgs" ], "systems": [ + "xremap", "hyprland", - "xdph", "systems" ] }, "locked": { - "lastModified": 1714869498, - "narHash": "sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM=", + "lastModified": 1737556638, + "narHash": "sha256-laKgI3mr2qz6tas/q3tuGPxMdsGhBi/w+HO+hO2f1AY=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "e06482e0e611130cd1929f75e8c1cf679e57d161", + "rev": "4c75dd5c015c8a0e5a34c6d02a018a650f57feb5", "type": "github" }, "original": { @@ -831,74 +530,105 @@ "type": "github" } }, - "hyprland-protocols_2": { + "hyprland-qt-support": { "inputs": { + "hyprlang": [ + "xremap", + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], "nixpkgs": [ - "xdg-desktop-portal-hyprland", + "xremap", + "hyprland", + "hyprland-qtutils", "nixpkgs" ], "systems": [ - "xdg-desktop-portal-hyprland", + "xremap", + "hyprland", + "hyprland-qtutils", "systems" ] }, "locked": { - "lastModified": 1691753796, - "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "lastModified": 1737634706, + "narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=", "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "repo": "hyprland-qt-support", + "rev": "8810df502cdee755993cb803eba7b23f189db795", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprland-protocols", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "xremap", + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "xremap", + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "xremap", + "hyprland", + "nixpkgs" + ], + "systems": [ + "xremap", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1737981711, + "narHash": "sha256-lh6cL5D8nPplB3WovCQjLUZ7k7MViiBrMlpkfm4R7/c=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "96bf0677fa9cd13508294e3d4559dfbbc8beff73", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", "type": "github" } }, "hyprlang": { "inputs": { "hyprutils": [ + "xremap", "hyprland", "hyprutils" ], "nixpkgs": [ + "xremap", "hyprland", "nixpkgs" ], "systems": [ + "xremap", "hyprland", "systems" ] }, "locked": { - "lastModified": 1717881852, - "narHash": "sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM+Jj94=", + "lastModified": 1737634606, + "narHash": "sha256-W7W87Cv6wqZ9PHegI6rH1+ve3zJPiyevMFf0/HwdbCQ=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "ec6938c66253429192274d612912649a0cfe4d28", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprlang_2": { - "inputs": { - "nixpkgs": [ - "xdg-desktop-portal-hyprland", - "nixpkgs" - ], - "systems": "systems_7" - }, - "locked": { - "lastModified": 1713121246, - "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706", + "rev": "f41271d35cc0f370d300413d756c2677f386af9d", "type": "github" }, "original": { @@ -910,20 +640,22 @@ "hyprutils": { "inputs": { "nixpkgs": [ + "xremap", "hyprland", "nixpkgs" ], "systems": [ + "xremap", "hyprland", "systems" ] }, "locked": { - "lastModified": 1719316102, - "narHash": "sha256-dmRz128j/lJmMuTYeCYPfSBRHHQO3VeH4PbmoyAhHzw=", + "lastModified": 1737978343, + "narHash": "sha256-TfFS0HCEJh63Kahrkp1h9hVDMdLU8a37Zz+IFucxyfA=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "1f6bbec5954f623ff8d68e567bddcce97cd2f085", + "rev": "6a8bc9d2a4451df12f5179dc0b1d2d46518a90ab", "type": "github" }, "original": { @@ -935,20 +667,22 @@ "hyprwayland-scanner": { "inputs": { "nixpkgs": [ + "xremap", "hyprland", "nixpkgs" ], "systems": [ + "xremap", "hyprland", "systems" ] }, "locked": { - "lastModified": 1719067853, - "narHash": "sha256-mAnZG/eQy72Fp1ImGtqCgUrDumnR1rMZv2E/zgP4U74=", + "lastModified": 1735493474, + "narHash": "sha256-fktzv4NaqKm94VAkAoVqO/nqQlw+X0/tJJNAeCSfzK4=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "914f083741e694092ee60a39d31f693d0a6dc734", + "rev": "de913476b59ee88685fdc018e77b8f6637a2ae0b", "type": "github" }, "original": { @@ -957,224 +691,41 @@ "type": "github" } }, - "neovim-nightly-overlay": { - "inputs": { - "flake-compat": "flake-compat", - "flake-parts": "flake-parts", - "git-hooks": "git-hooks", - "hercules-ci-effects": "hercules-ci-effects", - "neovim-src": "neovim-src", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1733098025, - "narHash": "sha256-HOzahkMv67wtSYcudRpGqNXjFwFoc2lwq0+Ev6h8T3k=", - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "rev": "73ec92a4c2773ead4af1c657ea81142d4a27fe78", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "type": "github" - } - }, - "neovim-nightly-overlay_2": { - "inputs": { - "flake-compat": "flake-compat_3", - "flake-parts": "flake-parts_3", - "git-hooks": "git-hooks_2", - "hercules-ci-effects": "hercules-ci-effects_2", - "neovim-src": "neovim-src_2", - "nixpkgs": "nixpkgs_4", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1733962285, - "narHash": "sha256-djpjqhPZkqfe1USsuu+eT4ZyGO+dVvAf3l4FUCZEb6Y=", - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "rev": "2025aef04baf723bfa4cb8225fc11a319a5681f1", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "type": "github" - } - }, - "neovim-nightly-overlay_3": { - "inputs": { - "flake-compat": "flake-compat_5", - "flake-parts": "flake-parts_5", - "git-hooks": "git-hooks_3", - "hercules-ci-effects": "hercules-ci-effects_3", - "neovim-src": "neovim-src_3", - "nixpkgs": "nixpkgs_8", - "treefmt-nix": "treefmt-nix_2" - }, - "locked": { - "lastModified": 1733962285, - "narHash": "sha256-djpjqhPZkqfe1USsuu+eT4ZyGO+dVvAf3l4FUCZEb6Y=", - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "rev": "2025aef04baf723bfa4cb8225fc11a319a5681f1", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "type": "github" - } - }, - "neovim-src": { - "flake": false, - "locked": { - "lastModified": 1733090308, - "narHash": "sha256-oIbVYa5y0lgXDRaZUn0MdAKC2Vf9OakbtIFmbhL8K1k=", - "owner": "neovim", - "repo": "neovim", - "rev": "feb62d5429680278c1353c565db6bb3ecb3b7c24", - "type": "github" - }, - "original": { - "owner": "neovim", - "repo": "neovim", - "type": "github" - } - }, - "neovim-src_2": { - "flake": false, - "locked": { - "lastModified": 1733924897, - "narHash": "sha256-Fxzl754uzyNebXW54LUliFliMbw30XG+bdb0AVtPSM0=", - "owner": "neovim", - "repo": "neovim", - "rev": "442d338cb50e4cf08c58cb82b6d33b6d5df9fb1b", - "type": "github" - }, - "original": { - "owner": "neovim", - "repo": "neovim", - "type": "github" - } - }, - "neovim-src_3": { - "flake": false, - "locked": { - "lastModified": 1733924897, - "narHash": "sha256-Fxzl754uzyNebXW54LUliFliMbw30XG+bdb0AVtPSM0=", - "owner": "neovim", - "repo": "neovim", - "rev": "442d338cb50e4cf08c58cb82b6d33b6d5df9fb1b", - "type": "github" - }, - "original": { - "owner": "neovim", - "repo": "neovim", - "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-index-database": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1735443188, - "narHash": "sha256-AydPpRBh8+NOkrLylG7vTsHrGO2b5L7XkMEL5HlzcA8=", - "owner": "Mic92", - "repo": "nix-index-database", - "rev": "55ab1e1df5daf2476e6b826b69a82862dcbd7544", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "nix-index-database", - "type": "github" - } - }, - "nix-minecraft": { - "inputs": { - "flake-compat": "flake-compat_7", - "flake-utils": "flake-utils_6", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1735696450, - "narHash": "sha256-pGnjPsPPrWoDIf+KAVo6rliSCcE4b3D2q4In7fYWllg=", - "owner": "Infinidoge", - "repo": "nix-minecraft", - "rev": "94fb5a22a3b02ded59c825f85875a5d9e028fea9", - "type": "github" - }, - "original": { - "owner": "Infinidoge", - "repo": "nix-minecraft", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1733024928, - "narHash": "sha256-n/DOfpKH1vkukuBnach91QBQId2dr5tkE7/7UrkV2zw=", - "owner": "NixOS", + "lastModified": 1738574474, + "narHash": "sha256-rvyfF49e/k6vkrRTV4ILrWd92W+nmBDfRYZgctOyolQ=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "2c27ab2e60502d1ebb7cf38909de38663f762a79", + "rev": "fecfeb86328381268e29e998ddd3ebc70bbd7f7c", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", + "owner": "nixos", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-lib": { "locked": { - "lastModified": 1697935651, - "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", - "type": "github" + "lastModified": 1735774519, + "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1735471104, - "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", + "lastModified": 1738680400, + "narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=", "owner": "nixos", "repo": "nixpkgs", - "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", + "rev": "799ba5bffed04ced7067a91798353d360788b30d", "type": "github" }, "original": { @@ -1184,97 +735,33 @@ "type": "github" } }, - "nixpkgs_10": { - "locked": { - "lastModified": 1729265718, - "narHash": "sha256-4HQI+6LsO3kpWTYuVGIzhJs1cetFcwT7quWCk/6rqeo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ccc0c2126893dd20963580b6478d1a10a4512185", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_11": { - "locked": { - "lastModified": 1719075281, - "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_12": { - "locked": { - "lastModified": 1735563628, - "narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_13": { - "locked": { - "lastModified": 1712963716, - "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { - "lastModified": 1733015953, - "narHash": "sha256-t4BBVpwG9B4hLgc6GUBuj3cjU7lP/PJfpTHuSqE+crk=", - "owner": "nixos", + "lastModified": 1722073938, + "narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "ac35b104800bff9028425fec3b6e8a41de2bbfff", + "rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", + "owner": "NixOS", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_3": { "locked": { - "lastModified": 1728241625, - "narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=", - "owner": "nixos", + "lastModified": 1737746512, + "narHash": "sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1", + "rev": "825479c345a7f806485b7f00dbe3abb50641b083", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -1282,182 +769,69 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1733749988, - "narHash": "sha256-+5qdtgXceqhK5ZR1YbP1fAUsweBIrhL38726oIEAtDs=", + "lastModified": 1737885589, + "narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bc27f0fde01ce4e1bfec1ab122d72b7380278e68", + "rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_5": { "locked": { - "lastModified": 1733759999, - "narHash": "sha256-463SNPWmz46iLzJKRzO3Q2b0Aurff3U1n0nYItxq7jU=", + "lastModified": 1735554305, + "narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1729265718, - "narHash": "sha256-4HQI+6LsO3kpWTYuVGIzhJs1cetFcwT7quWCk/6rqeo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ccc0c2126893dd20963580b6478d1a10a4512185", - "type": "github" - }, - "original": { - "owner": "NixOS", "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_7": { - "locked": { - "lastModified": 1728241625, - "narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1733749988, - "narHash": "sha256-+5qdtgXceqhK5ZR1YbP1fAUsweBIrhL38726oIEAtDs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "bc27f0fde01ce4e1bfec1ab122d72b7380278e68", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1733759999, - "narHash": "sha256-463SNPWmz46iLzJKRzO3Q2b0Aurff3U1n0nYItxq7jU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "rec-sh": { + "pre-commit-hooks": { "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore_2", "nixpkgs": [ + "xremap", + "hyprland", "nixpkgs" ] }, "locked": { - "lastModified": 1717124269, - "narHash": "sha256-CboDW1jTZST8WwjUrrh/d+AiQ9Cz7MyDGuP4aUP4Ghw=", - "owner": "dot013", - "repo": "rec.sh", - "rev": "437b7475d283b76da1625e53648f6f2ed3b82378", + "lastModified": 1737465171, + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", "type": "github" }, "original": { - "owner": "dot013", - "repo": "rec.sh", + "owner": "cachix", + "repo": "git-hooks.nix", "type": "github" } }, "root": { "inputs": { - "dot013-environment": "dot013-environment", - "dot013-neovim": "dot013-neovim", - "dot013-shell": "dot013-shell", - "firefox-addons": "firefox-addons", - "flatpaks": "flatpaks", + "go-grip": "go-grip", "home-manager": "home-manager", - "hyprland": "hyprland", - "nix-colors": "nix-colors", - "nix-index-database": "nix-index-database", - "nix-minecraft": "nix-minecraft", - "nixpkgs": "nixpkgs_12", + "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", - "rec-sh": "rec-sh", "sops-nix": "sops-nix", - "tmux-plugin-manager": "tmux-plugin-manager", - "xdg-desktop-portal-hyprland": "xdg-desktop-portal-hyprland" - } - }, - "rust-overlay": { - "inputs": { - "nixpkgs": [ - "dot013-neovim", - "yazi", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729391507, - "narHash": "sha256-as0I9xieJUHf7kiK2a9znDsVZQTFWhM1pLivII43Gi0=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "784981a9feeba406de38c1c9a3decf966d853cca", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_2": { - "inputs": { - "nixpkgs": [ - "dot013-shell", - "yazi", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729391507, - "narHash": "sha256-as0I9xieJUHf7kiK2a9znDsVZQTFWhM1pLivII43Gi0=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "784981a9feeba406de38c1c9a3decf966d853cca", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" + "stylix": "stylix", + "xremap": "xremap" } }, "sops-nix": { @@ -1467,11 +841,11 @@ ] }, "locked": { - "lastModified": 1735468296, - "narHash": "sha256-ZjUjbvS06jf4fElOF4ve8EHjbpbRVHHypStoY8HGzk8=", + "lastModified": 1738291974, + "narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=", "owner": "Mic92", "repo": "sops-nix", - "rev": "bcb8b65aa596866eb7e5c3e1a6cccbf5d1560b27", + "rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7", "type": "github" }, "original": { @@ -1480,6 +854,43 @@ "type": "github" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-compat": "flake-compat", + "flake-utils": "flake-utils_2", + "git-hooks": "git-hooks", + "gnome-shell": "gnome-shell", + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-tmux": "tinted-tmux" + }, + "locked": { + "lastModified": 1738025311, + "narHash": "sha256-O0iFoytYpSxQdWeggIvrHjU5kmX/SRC9mcah9GbwlHk=", + "owner": "danth", + "repo": "stylix", + "rev": "70505ba00ff09390b84cf50d52d48ee828727976", + "type": "github" + }, + "original": { + "owner": "danth", + "ref": "release-24.11", + "repo": "stylix", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -1511,36 +922,6 @@ } }, "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": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_5": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -1555,81 +936,66 @@ "type": "github" } }, - "systems_6": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_7": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_8": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "tmux-plugin-manager": { + "tinted-foot": { "flake": false, "locked": { - "lastModified": 1677502767, - "narHash": "sha256-hW8mfwB8F9ZkTQ72WQp/1fy8KL1IIYMZBtZYIwZdMQc=", - "owner": "tmux-plugins", - "repo": "tpm", - "rev": "99469c4a9b1ccf77fade25842dc7bafbc8ce9946", + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", "type": "github" }, "original": { - "owner": "tmux-plugins", - "repo": "tpm", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1716423189, + "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1729501581, + "narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", "type": "github" } }, "treefmt-nix": { "inputs": { - "nixpkgs": [ - "dot013-neovim", - "neovim-nightly-overlay", - "nixpkgs" - ] + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1733761991, - "narHash": "sha256-s4DalCDepD22jtKL5Nw6f4LP5UwoMcPzPZgHWjAfqbQ=", + "lastModified": 1738070913, + "narHash": "sha256-j6jC12vCFsTGDmY2u1H12lMr62fnclNjuCtAdF1a4Nk=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "0ce9d149d99bc383d1f2d85f31f6ebd146e46085", + "rev": "bebf27d00f7d10ba75332a0541ac43676985dea3", "type": "github" }, "original": { @@ -1638,72 +1004,45 @@ "type": "github" } }, - "treefmt-nix_2": { - "inputs": { - "nixpkgs": [ - "dot013-shell", - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733761991, - "narHash": "sha256-s4DalCDepD22jtKL5Nw6f4LP5UwoMcPzPZgHWjAfqbQ=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "0ce9d149d99bc383d1f2d85f31f6ebd146e46085", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "xdg-desktop-portal-hyprland": { - "inputs": { - "hyprland-protocols": "hyprland-protocols_2", - "hyprlang": "hyprlang_2", - "nixpkgs": "nixpkgs_13", - "systems": "systems_8" - }, - "locked": { - "lastModified": 1718272114, - "narHash": "sha256-KsX7sAwkEFpXiwyjt0HGTnnrUU58wW1jlzj5IA/LRz8=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "24be4a26f0706e456fca1b61b8c79f7486a9e86d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "ref": "v1.3.2", - "repo": "xdg-desktop-portal-hyprland", - "type": "github" - } - }, "xdph": { "inputs": { - "hyprland-protocols": "hyprland-protocols", + "hyprland-protocols": [ + "xremap", + "hyprland", + "hyprland-protocols" + ], "hyprlang": [ + "xremap", "hyprland", "hyprlang" ], + "hyprutils": [ + "xremap", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "xremap", + "hyprland", + "hyprwayland-scanner" + ], "nixpkgs": [ + "xremap", "hyprland", "nixpkgs" ], "systems": [ + "xremap", "hyprland", "systems" ] }, "locked": { - "lastModified": 1718619174, - "narHash": "sha256-FWW68AVYmB91ZDQnhLMBNCUUTCjb1ZpO2k2KIytHtkA=", + "lastModified": 1737634991, + "narHash": "sha256-dBAnb7Kbnier30cA7AgxVSxxARmxKZ1vHZT33THSIr8=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "c7894aa54f9a7dbd16df5cd24d420c8af22d5623", + "rev": "e09dfe2726c8008f983e45a0aa1a3b7416aaeb8a", "type": "github" }, "original": { @@ -1712,43 +1051,47 @@ "type": "github" } }, - "yazi": { + "xremap": { "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_6", - "rust-overlay": "rust-overlay" + "crane": "crane", + "devshell": "devshell", + "flake-parts": "flake-parts", + "home-manager": "home-manager_2", + "hyprland": "hyprland", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix", + "xremap": "xremap_2" }, "locked": { - "lastModified": 1733925272, - "narHash": "sha256-HFr9MykhffcIa++uxjg5Mk69x5C/poiaKf+QV2REnSY=", - "owner": "sxyazi", - "repo": "yazi", - "rev": "c78f39b50f04fb23c8376369d6c9a21226002d9c", + "lastModified": 1738117299, + "narHash": "sha256-efr325qNmDAXL1t8TC/JIy4w1gUqPecp2D5Ram3WJr4=", + "owner": "xremap", + "repo": "nix-flake", + "rev": "df05c971bd90eff6ccfe355e52be2bffe1c91b3b", "type": "github" }, "original": { - "owner": "sxyazi", - "repo": "yazi", + "owner": "xremap", + "repo": "nix-flake", "type": "github" } }, - "yazi_2": { - "inputs": { - "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_10", - "rust-overlay": "rust-overlay_2" - }, + "xremap_2": { + "flake": false, "locked": { - "lastModified": 1733925272, - "narHash": "sha256-HFr9MykhffcIa++uxjg5Mk69x5C/poiaKf+QV2REnSY=", - "owner": "sxyazi", - "repo": "yazi", - "rev": "c78f39b50f04fb23c8376369d6c9a21226002d9c", + "lastModified": 1737936184, + "narHash": "sha256-71Uz2jdiMv5BsEYCqKpueQZrfcdga0wZIxoNKqZyYEo=", + "owner": "k0kubun", + "repo": "xremap", + "rev": "1dc5ffb369d8f125c1caa8e1ed20d75c34f31c90", "type": "github" }, "original": { - "owner": "sxyazi", - "repo": "yazi", + "owner": "k0kubun", + "ref": "v0.10.4", + "repo": "xremap", "type": "github" } } diff --git a/flake.nix b/flake.nix index e0ff356..ea9f16c 100644 --- a/flake.nix +++ b/flake.nix @@ -1,88 +1,32 @@ { - description = "Nixos config flake"; - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { - url = "github:nix-community/home-manager/release-24.05"; + url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; + stylix = { + url = "github:danth/stylix/release-24.11"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; + sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - nix-index-database = { - url = "github:Mic92/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; - # Declaratively install flatpaks - flatpaks = { - url = "github:gmodena/nix-flatpak"; # Fork is being used until #24 merges - }; - # flatpaks.url = "github:Tomaszal/nix-flatpak/feature/overrides"; - - # Used for theming the OS, see modules/home-manager/theme.nix - nix-colors = { - url = "github:misterio77/nix-colors"; - }; - - firefox-addons = { - url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; + # Dependecy of the Neovim configuration at ./modules/home-manager/devenv.nix + go-grip = { + url = "github:guz013/go-grip"; inputs.nixpkgs.follows = "nixpkgs"; }; - - # Necessary for modules/home-manager/programs/tmux.nix - tmux-plugin-manager = { - url = "github:tmux-plugins/tpm"; - flake = false; - }; - - rec-sh = { - url = "github:dot013/rec.sh"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - dot013-environment = { - # url = "git+file:///home/guz/.projects/dot013-environment"; - url = "git+https://forge.capytal.company/dot013/environment"; - }; - dot013-neovim = { - # url = "git+file:///home/guz/.projects/dot013-nvim"; - url = "git+https://forge.capytal.company/dot013/nvim"; - }; - dot013-shell = { - # url = "git+file:///home/guz/.projects/dot013-shell"; - url = "git+https://forge.capytal.company/dot013/nvim"; - }; - - nix-minecraft = { - url = "github:Infinidoge/nix-minecraft"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - hyprland = { - type = "git"; - url = "https://github.com/hyprwm/Hyprland?ref=v0.41.2"; - rev = "918d8340afd652b011b937d29d5eea0be08467f5"; - submodules = true; - }; - xdg-desktop-portal-hyprland = { - url = "github:hyprwm/xdg-desktop-portal-hyprland/v1.3.2"; - }; - /* - Note to self: - The last commit with working screen share, as the time of writing this, was - https://github.com/hyprwm/xdg-desktop-portal-hyprland/commit/6a5de92769d5b7038134044053f90e7458f6a197 - https://github.com/hyprwm/Hyprland/commit/3c964a9fdc220250a85b1c498e5b6fad9390272f - so if needed, you can always roll-back. - - Fuck discord. - */ }; outputs = { @@ -92,25 +36,45 @@ nixpkgs-unstable, ... } @ inputs: let - create-host = configs: - builtins.listToAttrs (map - (c: { - name = c; - value = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs;}; - modules = [ - inputs.home-manager.nixosModules.default - (./. + ("/hosts/" + builtins.replaceStrings ["@"] ["/"] c) + /configuration.nix) - ]; - }; - }) - configs); - in { - nixosConfigurations = create-host [ - "battleship" - "fighter" - # "cruiser" - # "spacestation" + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" ]; + forAllSystems = f: + nixpkgs.lib.genAttrs systems (system: let + pkgs = import nixpkgs {inherit system;}; + in + f pkgs); + + # Shared NixOS modules + nixosModules = [ + inputs.stylix.nixosModules.stylix + home-manager.nixosModules.home-manager + ./home.nix + ]; + in { + nixosConfigurations = { + "battleship" = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs self;}; + modules = + nixosModules + ++ [ + ./hosts/battleship/configuration.nix + ./hosts/battleship/home.nix + ]; + }; + "fighter" = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs self;}; + modules = + nixosModules + ++ [ + ./hosts/fighter/configuration.nix + ./hosts/fighter/home.nix + ]; + }; + }; + }; } diff --git a/hosts/battleship/configuration.nix b/hosts/battleship/configuration.nix index d61bbb5..b802e07 100644 --- a/hosts/battleship/configuration.nix +++ b/hosts/battleship/configuration.nix @@ -1,195 +1,19 @@ -{ - config, - pkgs, - inputs, - lib, - ... -}: { +{lib, ...}: { imports = [ - inputs.dot013-environment.nixosModules.default - ../../modules/nixos - ./secrets.nix - ./gpu-configuration.nix ./hardware-configuration.nix + ./gpu-configuration.nix + ../../configuration.nix ]; - dot013.environment.enable = true; - dot013.environment.interception-tools.devices = [ - "/dev/input/by-id/usb-BY_Tech_Gaming_Keyboard-event-kbd" - "/dev/input/by-id/usb-Compx_2.4G_Wireless_Receiver-event-kbd" - ]; # dot013.environment.interception-tools.device = "/dev/input/by-id/usb-Compx_2.4G_Wireless_Receiver-event-kbd"; - - programs.nh.enable = true; - programs.nh.flake = "/home/guz/nix"; - - profiles.locale.enable = true; - - hardware.opentabletdriver.enable = true; - # services.xserver.digimend.enable = true; - services.libinput.enable = true; - services.udev.extraRules = '' - KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="plugdev" - ''; - - virtualisation.docker.enable = true; - - programs.dconf.enable = true; - - programs.hyprland.enable = true; - /* - # TEMPFIX: 2024-05-04 https://github.com/NixOS/nixpkgs/issues/308287#issuecomment-2093091892 - # After the flake update in 2024-05-04, the screen blacked out after switch - programs.hyprland.envVars.enable = lib.mkForce false; - */ - - services.xserver = { - enable = true; - }; - services.displayManager = { - sddm.enable = true; - sddm.wayland.enable = true; - }; - - services.xserver.videoDrivers = ["amdgpu"]; - boot.kernelModules = ["amdgpu"]; - environment.variables = { - ROC_ENABLE_PRE_VEGA = "1"; - }; - hardware.opengl = { - enable = true; - extraPackages = with pkgs; [ - libvdpau-va-gl - rocmPackages.clr.icd - vaapiVdpau - ]; - }; - - programs.steam.enable = true; - programs.steam.wayland = true; - programs.gamemode.enable = true; - - programs.gnupg.agent = { - enable = true; - pinentryPackage = pkgs.pinentry-gnome3; - settings = { - default-cache-ttl = 3600 * 24; - }; - }; - - services.flatpak.enable = true; - xdg.portal.enable = true; - xdg.portal.extraPortals = with pkgs; [ - xdg-desktop-portal-gtk - ]; - - services.tailscale = { - enable = true; - tailnetName = "${config.battleship-secrets.tailnet-name}"; - }; - - fonts.fontconfig.enable = true; - fonts.packages = with pkgs; [ - fira-code - (nerdfonts.override {fonts = ["FiraCode"];}) - ]; - - home-manager-helper.enable = true; - home-manager-helper.users."guz" = { - name = "guz"; - shell = pkgs.zsh; - hashedPasswordFile = builtins.toString config.sops.secrets."guz/password".path; - home = import ./home.nix; - isNormalUser = true; - extraGroups = ["wheel" "networkmanager" "plugdev"]; + users.users."guz" = { openssh.authorizedKeys.keyFiles = [ ../../.ssh/guz-battleship.pub ]; }; - environment.systemPackages = with pkgs; - [ - git - libinput - polkit_gnome - ] - ++ (builtins.map (p: pkgs."${p}") config.battleship-secrets.lesser.packages); - - hardware.bluetooth.enable = true; - hardware.bluetooth.powerOnBoot = true; - services.blueman.enable = true; - # hardware.pulseaudio.enable = true; - - nix.settings = { - experimental-features = ["nix-command" "flakes"]; - substituters = ["https://hyprland.cachix.org"]; - trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; - }; - nix.package = pkgs.nixVersions.nix_2_21; - nix.gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 10d"; - }; - - programs.nix-ld.enable = true; - programs.nix-ld.libraries = with pkgs; []; - - programs.kdeconnect.enable = true; - + # Network networking = { - networkmanager.enable = true; - hostName = "battleship"; - wireless.enable = false; - dhcpcd.enable = true; - defaultGateway = "${config.battleship-secrets.lesser.devices.defaultGateway}"; - interfaces."enp6s0".ipv4.addresses = [ - { - address = "${config.battleship-secrets.lesser.devices.battleship}"; - prefixLength = 24; - } - ]; - nameservers = ["9.9.9.9"]; - firewall = let - kde-connect = { - from = 1714; - to = 1764; - }; - in { - enable = true; - allowedTCPPortRanges = [kde-connect]; - allowedUDPPortRanges = [kde-connect]; - }; + hostName = lib.mkForce "figther"; + wireless.enable = lib.mkForce true; }; - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - wireplumber.enable = true; - #jack.enable = true; - }; - - # Enable the OpenSSH daemon. - services.openssh.enable = true; - services.openssh.settings = { - PasswordAuthentication = false; - PermitRootLogin = "forced-commands-only"; - }; - - # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? } diff --git a/hosts/battleship/gpu-configuration.nix b/hosts/battleship/gpu-configuration.nix index 517f910..54d7db2 100644 --- a/hosts/battleship/gpu-configuration.nix +++ b/hosts/battleship/gpu-configuration.nix @@ -4,26 +4,20 @@ ... }: { imports = []; - options.shared.configuration.gpu = {}; - config = { - boot.initrd.kernelModules = ["amdgpu"]; - services.xserver.videoDrivers = ["amdgpu"]; - environment = { - variables = { - ROC_ENABLE_PRE_VEGA = "1"; - }; - systemPackages = with pkgs; [ - clinfo - ]; - }; + services.xserver.videoDrivers = ["amdgpu"]; - hardware.opengl = { - enable = true; - extraPackages = with pkgs; [ - amdvlk - rocmPackages.clr.icd - ]; - }; + environment.variables = { + ROC_ENABLE_PRE_VEGA = "1"; }; + + boot.kernelModules = ["amdgpu"]; + boot.initrd.kernelModules = ["amdgpu"]; + + hardware.opengl.enable = true; + hardware.opengl.extraPackages = with pkgs; [ + amdvlk + rocmPackages.clr.icd + vaapiVdpau + ]; } diff --git a/hosts/battleship/hardware-configuration.nix b/hosts/battleship/hardware-configuration.nix index 01155c2..7d688c4 100644 --- a/hosts/battleship/hardware-configuration.nix +++ b/hosts/battleship/hardware-configuration.nix @@ -14,7 +14,7 @@ boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"]; boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-amd"]; + boot.kernelModules = []; boot.extraModulePackages = []; fileSystems."/" = { diff --git a/hosts/battleship/home.nix b/hosts/battleship/home.nix index 3253057..1745b1a 100644 --- a/hosts/battleship/home.nix +++ b/hosts/battleship/home.nix @@ -1,32 +1,9 @@ -{...}: { - imports = [ - ../../modules/home-manager - ./packages.nix - ./desktop - ../../modules/home-manager/programs-old/librewolf - ]; - - profiles.vault.enable = true; - profiles.gfonts.enable = true; - - programs.bash = { - enable = true; - initExtra = '' - export XDG_DATA_DIRS="$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share" - - export GPG_TTY=$(tty) - ''; - }; - - services.gnome-keyring.enable = true; - - services.kdeconnect.enable = true; - - programs.prismlauncher.enable = true; - - fonts.fontconfig.enable = true; - - home.sessionVariables = { - EDITOR = "nvim"; +{lib, ...}: { + # Host specific overrides of the root home + home-manager.users.guz = { + wayland.windowManager.hyprland.settings = { + "$MONITOR-1" = lib.mkForce "HDMI-A-1"; + "$MONITOR-2" = lib.mkForce "DVI-D-1"; + }; }; } diff --git a/hosts/fighter/configuration.nix b/hosts/fighter/configuration.nix index f1df638..26ee575 100644 --- a/hosts/fighter/configuration.nix +++ b/hosts/fighter/configuration.nix @@ -1,183 +1,37 @@ { - config, - inputs, + lib, pkgs, ... }: { imports = [ - inputs.dot013-environment.nixosModules.default - ../../modules/nixos ./hardware-configuration.nix - ./secrets.nix + ../../configuration.nix ]; - dot013.environment.enable = true; - dot013.environment.interception-tools.devices = [ - "/dev/input/by-path/platform-i8042-serio-0-event-kbd" - "/dev/input/by-id/usb-BY_Tech_Gaming_Keyboard-event-kbd" - "/dev/input/by-id/usb-Compx_2.4G_Wireless_Receiver-event-kbd" - ]; - - programs.nh.enable = true; - programs.nh.flake = "/home/guz/nix"; - - profiles.locale.enable = true; - - virtualisation.docker.enable = true; - - programs.dconf.enable = true; - - programs.hyprland.enable = true; - programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland.override { - legacyRenderer = true; - }; - - programs.gnupg.agent = { - enable = true; - pinentryPackage = pkgs.pinentry-gnome3; - settings = { - default-cache-ttl = 3600 * 24; - }; - }; - - services.xserver = { - enable = true; - desktopManager.xfce.enable = true; - }; - services.displayManager = { - sddm.enable = true; - sddm.wayland.enable = true; - }; - hardware.opengl = { - enable = true; - extraPackages = with pkgs; [ - # vpl-gpu-rt - onevpl-intel-gpu - ]; - }; - - services.flatpak.enable = true; - xdg.portal.enable = true; - xdg.portal.extraPortals = with pkgs; [ - xdg-desktop-portal-gtk - ]; - - services.tailscale = { - enable = true; - tailnetName = "kiko-liberty"; - }; - - fonts.fontconfig.enable = true; - fonts.packages = with pkgs; [ - fira-code - (nerdfonts.override {fonts = ["FiraCode"];}) - ]; - - home-manager-helper.enable = true; - home-manager-helper.users."guz" = { - name = "guz"; - shell = pkgs.zsh; - hashedPasswordFile = builtins.toString config.sops.secrets."guz/password".path; - home = import ./home.nix; - isNormalUser = true; - extraGroups = ["wheel" "networkmanager" "plugdev"]; + users.users."guz" = { openssh.authorizedKeys.keyFiles = [ - ../../.ssh/guz-figther.pub + ../../.ssh/guz-fighter.pub ]; }; - environment.systemPackages = with pkgs; [ - git - libinput - polkit_gnome + # Hyprland compatibility + programs.hyprland.package = lib.mkForce (pkgs.hyprland.override { + legacyRenderer = true; + }); + + # Enable OpenGL + hardware.opengl.enable = true; + hardware.opengl.extraPackages = with pkgs; [ + onevpl-intel-gpu ]; - hardware.bluetooth.enable = true; - hardware.bluetooth.powerOnBoot = true; - services.blueman.enable = true; - # hardware.pulseaudio.enable = true; - - nix.settings = { - experimental-features = ["nix-command" "flakes"]; - # substituters = ["https://hyprland.cachix.org"]; - # trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; - }; - nix.package = pkgs.nixVersions.nix_2_21; - nix.gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 10d"; - }; - - services.logind = { - lidSwitch = "suspend"; - lidSwitchExternalPower = "lock"; - }; + # Laptop features + services.logind.lidSwitch = "suspend"; + services.logind.lidSwitchExternalPower = "lock"; + # Network networking = { - networkmanager.enable = true; - hostName = "fighter"; - wireless.enable = false; - dhcpcd.enable = true; - defaultGateway = "${config.battleship-secrets.lesser.devices.defaultGateway}"; - interfaces."wlp2s0".ipv4.addresses = [ - { - address = "${config.battleship-secrets.lesser.devices.figther-wifi}"; - prefixLength = 24; - } - ]; - interfaces."enp1s0".ipv4.addresses = [ - { - address = "${config.battleship-secrets.lesser.devices.figther}"; - prefixLength = 24; - } - ]; - nameservers = ["9.9.9.9"]; + hostName = lib.mkForce "fighter"; + # wireless.enable = lib.mkForce true; }; - - # Enable sound with pipewire. - sound.enable = true; - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - # If you want to use JACK applications, uncomment this - #jack.enable = true; - - # use the example session manager (no others are packaged yet so this is enabled by default, - # no need to redefine it in your config for now) - #media-session.enable = true; - }; - - # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - nixpkgs.config.allowUnfreePredicate = _: true; - - # Enable the OpenSSH daemon. - services.openssh.enable = true; - services.openssh.settings = { - PasswordAuthentication = false; - PermitRootLogin = "forced-commands-only"; - }; - - # Open ports in the firewall. - networking.firewall.allowedTCPPorts = [80 433]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - networking.firewall.enable = true; - - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? } diff --git a/hosts/fighter/hardware-configuration.nix b/hosts/fighter/hardware-configuration.nix index 24de2fd..468fbce 100644 --- a/hosts/fighter/hardware-configuration.nix +++ b/hosts/fighter/hardware-configuration.nix @@ -12,31 +12,32 @@ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"]; + boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usbhid" "sd_mod" "rtsx_pci_sdmmc"]; boot.initrd.kernelModules = []; boot.kernelModules = []; boot.extraModulePackages = []; fileSystems."/" = { - device = "/dev/disk/by-uuid/f1f224e7-bed4-4bcb-9f0b-6619ed0378df"; + device = "/dev/disk/by-uuid/11b2ea0b-e6bd-4cb3-8146-2f39118a023e"; fsType = "ext4"; }; fileSystems."/boot" = { - device = "/dev/disk/by-uuid/2CF0-2EC0"; + device = "/dev/disk/by-uuid/2019-5416"; fsType = "vfat"; + options = ["fmask=0022" "dmask=0022"]; }; - swapDevices = [ - {device = "/dev/disk/by-uuid/5c00b6ca-8238-4813-939f-43c5f2f168c2";} - ]; + swapDevices = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's # still possible to use this option, but it's recommended to use it in conjunction # with explicit per-interface declarations with `networking.interfaces..useDHCP`. networking.useDHCP = lib.mkDefault true; + # networking.interfaces.docker0.useDHCP = lib.mkDefault true; # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; + # networking.interfaces.tailscale0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; diff --git a/hosts/fighter/home.nix b/hosts/fighter/home.nix index 84805dd..8e1e3e2 100644 --- a/hosts/fighter/home.nix +++ b/hosts/fighter/home.nix @@ -1,27 +1,8 @@ -{...}: { - imports = [ - ../../modules/home-manager - ../../modules/home-manager/programs-old/librewolf - ./packages.nix - ./desktop.nix - ]; - - profiles.gfonts.enable = true; - - programs.bash = { - enable = true; - initExtra = '' - export XDG_DATA_DIRS="$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share" - - export GPG_TTY=$(tty) - ''; - }; - - services.gnome-keyring.enable = true; - - fonts.fontconfig.enable = true; - - home.sessionVariables = { - EDITOR = "nvim"; +{lib, ...}: { + # Host specific overrides of the root home + home-manager.users.guz = { + wayland.windowManager.hyprland.settings = { + "$MONITOR-1" = lib.mkForce "eDP-1"; + }; }; } diff --git a/secrets.nix b/secrets.nix new file mode 100644 index 0000000..fba3abf --- /dev/null +++ b/secrets.nix @@ -0,0 +1,22 @@ +{ + config, + inputs, + pkgs, + ... +}: { + imports = [ + inputs.sops-nix.nixosModules.sops + ]; + + environment.systemPackages = with pkgs; [ + sops + ]; + + sops.defaultSopsFile = ./secrets.yaml; + sops.defaultSopsFormat = "yaml"; + sops.age.keyFile = "/sops/keys.txt"; + + sops.secrets."guz/password" = { + owner = config.users.users.guz.name; + }; +} diff --git a/secrets/battleship-secrets.yaml b/secrets.yaml similarity index 100% rename from secrets/battleship-secrets.yaml rename to secrets.yaml diff --git a/secrets/battleship-secrets.lesser.decrypted.json b/secrets/battleship-secrets.lesser.decrypted.json new file mode 100644 index 0000000..7d231ad --- /dev/null +++ b/secrets/battleship-secrets.lesser.decrypted.json @@ -0,0 +1,18 @@ +{ + "tailnet-name": "kiko-liberty", + "device-ip": "100.79.141.99", + "devices": { + "defaultGateway": "192.168.0.1", + "battleship": "192.168.0.113", + "spacestation": "192.168.0.110", + "figther": "192.168.0.103", + "figther-wifi": "192.168.0.104" + }, + "packages": [ + "protonvpn-cli_2", + "protonvpn-gui", + "tor", + "tor-browser", + "monero-gui" + ] +} \ No newline at end of file