diff --git a/flake.lock b/flake.lock index e17ba89..8b9c5b0 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -21,11 +21,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1719877454, - "narHash": "sha256-g5N1yyOSsPNiOlFfkuI/wcUjmtah+nxdImJqrSATjOU=", + "lastModified": 1736143030, + "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "4e3583423212f9303aa1a6337f8dffb415920e4f", + "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", "type": "github" }, "original": { @@ -42,11 +42,11 @@ ] }, "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -56,12 +56,15 @@ } }, "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -70,178 +73,34 @@ "type": "github" } }, - "hyprcursor": { + "git-hooks-nix": { "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" + "flake-compat": [ + "nix" + ], + "gitignore": [ + "nix" ], "nixpkgs": [ - "hyprland", + "nix", "nixpkgs" ], - "systems": [ - "hyprland", - "systems" + "nixpkgs-stable": [ + "nix", + "nixpkgs" ] }, "locked": { - "lastModified": 1718450675, - "narHash": "sha256-jpsns6buS4bK+1sF8sL8AaixAiCRjA+nldTKvcwmvUs=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "66d5b46ff94efbfa6fa3d1d1b66735f1779c34a6", + "lastModified": 1734279981, + "narHash": "sha256-NdaCraHPp8iYMWzdXAt5Nv6sA3MUzlCiGiR586TCwo0=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "aa9f40c906904ebd83da78e7f328cd8aeaeae785", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "hyprcursor", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "hyprcursor": "hyprcursor", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs", - "systems": "systems", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1719915468, - "narHash": "sha256-2a+aQbaAqFNySNXZ9l44tebNmXnAfAzqj+Tw4JRUvqc=", - "owner": "hyprwm", - "repo": "Hyprland", - "rev": "2fa57f2dc4909be697d003a22ce6870039e4db9b", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "Hyprland", - "type": "github" - } - }, - "hyprland-protocols": { - "inputs": { - "nixpkgs": [ - "hyprland", - "xdph", - "nixpkgs" - ], - "systems": [ - "hyprland", - "xdph", - "systems" - ] - }, - "locked": { - "lastModified": 1714869498, - "narHash": "sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "e06482e0e611130cd1929f75e8c1cf679e57d161", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprlang": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1717881852, - "narHash": "sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM+Jj94=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "ec6938c66253429192274d612912649a0cfe4d28", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprutils": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1719316102, - "narHash": "sha256-dmRz128j/lJmMuTYeCYPfSBRHHQO3VeH4PbmoyAhHzw=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "1f6bbec5954f623ff8d68e567bddcce97cd2f085", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1719067853, - "narHash": "sha256-mAnZG/eQy72Fp1ImGtqCgUrDumnR1rMZv2E/zgP4U74=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "914f083741e694092ee60a39d31f693d0a6dc734", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, - "libgit2": { - "flake": false, - "locked": { - "lastModified": 1697646580, - "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=", - "owner": "libgit2", - "repo": "libgit2", - "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5", - "type": "github" - }, - "original": { - "owner": "libgit2", - "repo": "libgit2", + "owner": "cachix", + "repo": "git-hooks.nix", "type": "github" } }, @@ -249,18 +108,18 @@ "inputs": { "flake-compat": "flake-compat", "flake-parts": "flake-parts_2", - "libgit2": "libgit2", - "nixpkgs": "nixpkgs_2", + "git-hooks-nix": "git-hooks-nix", + "nixfmt": "nixfmt", + "nixpkgs": "nixpkgs", "nixpkgs-23-11": "nixpkgs-23-11", - "nixpkgs-regression": "nixpkgs-regression", - "pre-commit-hooks": "pre-commit-hooks" + "nixpkgs-regression": "nixpkgs-regression" }, "locked": { - "lastModified": 1719873912, - "narHash": "sha256-i+qQmaneLQKD/LYgZuCp+/dkyiqUW9+b9rSQ1i2oZCQ=", + "lastModified": 1738052114, + "narHash": "sha256-OqHJ6mnBh2Ayqr2Sz7FUR2gOzupBBh9zC1DAaj61+OA=", "owner": "NixOS", "repo": "nix", - "rev": "80d67d603b68d5b1eae468c8be3016117dcaefb2", + "rev": "fbe2940a08b0f850ee3a01978256b4c4d5906587", "type": "github" }, "original": { @@ -269,13 +128,31 @@ "type": "github" } }, + "nixfmt": { + "inputs": { + "flake-utils": "flake-utils" + }, + "locked": { + "lastModified": 1736283758, + "narHash": "sha256-hrKhUp2V2fk/dvzTTHFqvtOg000G1e+jyIam+D4XqhA=", + "owner": "NixOS", + "repo": "nixfmt", + "rev": "8d4bd690c247004d90d8554f0b746b1231fe2436", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixfmt", + "type": "github" + } + }, "nixlib": { "locked": { - "lastModified": 1719708727, - "narHash": "sha256-XFNKtyirrGNdehpg7lMNm1skEcBApjqGhaHc/OI95HY=", + "lastModified": 1736643958, + "narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "1bba8a624b3b9d4f68db94fb63aaeb46039ce9e6", + "rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181", "type": "github" }, "original": { @@ -292,11 +169,11 @@ ] }, "locked": { - "lastModified": 1719841141, - "narHash": "sha256-WOyohxFJJdfDvEB7N3eTcX44lNU2rZes1inHsyHL7mM=", + "lastModified": 1737057290, + "narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "140dcc2b9a0eb87ba5e9011076a1a7af19179ab1", + "rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453", "type": "github" }, "original": { @@ -307,11 +184,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1719895800, - "narHash": "sha256-xNbjISJTFailxass4LmdWeV4jNhAlmJPwj46a/GxE6M=", + "lastModified": 1737751639, + "narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "6e253f12b1009053eff5344be5e835f604bb64cd", + "rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4", "type": "github" }, "original": { @@ -322,16 +199,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1719075281, - "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", + "lastModified": 1734359947, + "narHash": "sha256-1Noao/H+N8nFB4Beoy8fgwrcOQLVm9o4zKW1ODaqK9E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", + "rev": "48d12d5e70ee91fe8481378e540433a7303dbf6a", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "release-24.11", "repo": "nixpkgs", "type": "github" } @@ -354,14 +231,14 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", + "lastModified": 1735774519, + "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" } }, "nixpkgs-regression": { @@ -382,11 +259,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1719848872, - "narHash": "sha256-H3+EC5cYuq+gQW8y0lSrrDZfH71LB4DAf+TDFyvwCNA=", + "lastModified": 1737885589, + "narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "00d80d13810dbfea8ab4ed1009b09100cca86ba8", + "rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8", "type": "github" }, "original": { @@ -397,120 +274,41 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1717432640, - "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=", + "lastModified": 1750005367, + "narHash": "sha256-h/aac1dGLhS3qpaD2aZt25NdKY7b+JT0ZIP2WuGsJMU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "release-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1733550349, - "narHash": "sha256-NcGumB4Lr6KSDq+nIqXtNA8QwAQKDSZT7N9OTGWbTrs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e2605d0744c2417b09f8bf850dfca42fcf537d34", + "rev": "6c64dabd3aa85e0c02ef1cdcb6e1213de64baee3", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-24.11", + "ref": "nixos-25.05", "type": "indirect" } }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": [ - "nix" - ], - "flake-utils": "flake-utils", - "gitignore": [ - "nix" - ], - "nixpkgs": [ - "nix", - "nixpkgs" - ], - "nixpkgs-stable": [ - "nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1712897695, - "narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "flake-parts": "flake-parts", - "hyprland": "hyprland", "nix": "nix", "nixos-generators": "nixos-generators", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable" } }, "systems": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "xdph": { - "inputs": { - "hyprland-protocols": "hyprland-protocols", - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1718619174, - "narHash": "sha256-FWW68AVYmB91ZDQnhLMBNCUUTCjb1ZpO2k2KIytHtkA=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "c7894aa54f9a7dbd16df5cd24d420c8af22d5623", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", + "repo": "default", "type": "github" } } diff --git a/flake.nix b/flake.nix index cd305ad..c44afad 100644 --- a/flake.nix +++ b/flake.nix @@ -1,10 +1,9 @@ { description = "NixOS configuration"; - inputs = { nix.url = "github:NixOS/nix"; - nixpkgs.url = "nixpkgs/nixos-24.11"; + nixpkgs.url = "nixpkgs/nixos-25.05"; nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; nixos-hardware.url = "github:NixOS/nixos-hardware"; @@ -12,23 +11,33 @@ url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgs"; }; - hyprland.url = "github:hyprwm/Hyprland"; + # hyprland.url = "github:hyprwm/Hyprland"; - }; + }; - outputs = inputs@{ self, flake-parts, ... }: + outputs = + inputs@{ self, flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ ./machines/configuration.nix ]; - perSystem = { self', inputs', config, pkgs, system, ... }: { - # make pkgs available to all `perSystem` functions - _module.args.pkgs = import inputs.nixpkgs { - inherit system; + perSystem = + { + self', + inputs', + config, + pkgs, + system, + ... + }: + { + # make pkgs available to all `perSystem` functions + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + }; }; - }; systems = [ "x86_64-linux" ]; }; diff --git a/machines/configuration.nix b/machines/configuration.nix index c563ed5..ac64523 100644 --- a/machines/configuration.nix +++ b/machines/configuration.nix @@ -1,11 +1,10 @@ { self, ... }: let - inherit - (self.inputs) + inherit (self.inputs) nixpkgs nixpkgs-unstable nixos-hardware - hyprland + #hyprland ; nixosSystem = nixpkgs.lib.makeOverridable nixpkgs.lib.nixosSystem; overlay-unstable = final: prev: { @@ -24,17 +23,20 @@ let } { imports = [ - ({ pkgs, ... }: { - nixpkgs.overlays = [ - overlay-unstable - (import ../pkgs) - ]; - nix.nixPath = [ - "nixpkgs=${pkgs.path}" - ]; - documentation.info.enable = false; - }) - hyprland.nixosModules.default + ( + { pkgs, ... }: + { + nixpkgs.overlays = [ + overlay-unstable + (import ../pkgs) + ]; + nix.nixPath = [ + "nixpkgs=${pkgs.path}" + ]; + documentation.info.enable = false; + } + ) + #hyprland.nixosModules.default ]; } ../modules @@ -60,4 +62,4 @@ in ]; }; }; -} \ No newline at end of file +} diff --git a/machines/configuration_old.nix b/machines/configuration_old.nix index d0e0dbf..19f29ed 100644 --- a/machines/configuration_old.nix +++ b/machines/configuration_old.nix @@ -5,10 +5,10 @@ { config, pkgs, ... }: { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ]; + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; # Bootloader. boot.loader.grub.enable = true; @@ -85,22 +85,25 @@ users.users.finn = { isNormalUser = true; description = "Finn Markwitz"; - extraGroups = [ "networkmanager" "wheel" ]; + extraGroups = [ + "networkmanager" + "wheel" + ]; packages = with pkgs; [ - firefox - jetbrains.webstorm - jetbrains.goland - jetbrains.pycharm-professional - jetbrains.idea-ultimate - thunderbird - google-chrome - discord - spotify - keepassxc - nextcloud-client - zsh - oh-my-zsh - neovim + firefox + jetbrains.webstorm + jetbrains.goland + jetbrains.pycharm-professional + jetbrains.idea-ultimate + thunderbird + google-chrome + discord + spotify + keepassxc + nextcloud-client + zsh + oh-my-zsh + neovim ]; }; diff --git a/machines/core/core.nix b/machines/core/core.nix index 3dd579d..f6d8eaa 100644 --- a/machines/core/core.nix +++ b/machines/core/core.nix @@ -1,4 +1,9 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: { # Packages environment.systemPackages = with pkgs; [ @@ -7,11 +12,11 @@ borgbackup cryptsetup file + fwupd fzf gettext git gitAndTools.delta - gnufdisk gptfdisk htop jq @@ -38,6 +43,9 @@ zip unzip networkmanager + lm_sensors + systemctl-tui + nixfmt-rfc-style ]; time.timeZone = "Europe/Berlin"; @@ -61,4 +69,4 @@ LC_TIME = "de_DE.UTF-8"; }; -} \ No newline at end of file +} diff --git a/machines/core/default.nix b/machines/core/default.nix index 882e680..8f95b17 100644 --- a/machines/core/default.nix +++ b/machines/core/default.nix @@ -4,4 +4,4 @@ ./network.nix ./nix.nix ./users.nix -] \ No newline at end of file +] diff --git a/machines/core/modules.nix b/machines/core/modules.nix index 9760f1b..6d56072 100644 --- a/machines/core/modules.nix +++ b/machines/core/modules.nix @@ -1,3 +1,8 @@ # Generate via nix-generate -{ config, lib, pkgs, ... }: -{} \ No newline at end of file +{ + config, + lib, + pkgs, + ... +}: +{ } diff --git a/machines/core/network.nix b/machines/core/network.nix index 4277a34..a5410e5 100644 --- a/machines/core/network.nix +++ b/machines/core/network.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { networking.networkmanager = { @@ -12,4 +17,4 @@ ]; }; -} \ No newline at end of file +} diff --git a/machines/core/nix.nix b/machines/core/nix.nix index 3e4359a..6a23115 100644 --- a/machines/core/nix.nix +++ b/machines/core/nix.nix @@ -1,4 +1,10 @@ -{ config, lib, pkgs, inputs, ... }: +{ + config, + lib, + pkgs, + inputs, + ... +}: { nix = { daemonCPUSchedPolicy = "idle"; @@ -24,4 +30,4 @@ }; }; nixpkgs.config.allowUnfree = true; -} \ No newline at end of file +} diff --git a/machines/core/users.nix b/machines/core/users.nix index 644f11f..8e5e906 100644 --- a/machines/core/users.nix +++ b/machines/core/users.nix @@ -1,4 +1,9 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: { users.users.finn = { @@ -24,4 +29,4 @@ users.groups.finn = { gid = 1000; }; -} \ No newline at end of file +} diff --git a/machines/jupiter/configuration.nix b/machines/jupiter/configuration.nix index 9a62d6d..715a350 100644 --- a/machines/jupiter/configuration.nix +++ b/machines/jupiter/configuration.nix @@ -1,38 +1,32 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: { imports = [ ./disks.nix ./hardware-configuration.nix ./environments.nix - # ./system.nix use docker here ]; networking.hostName = "jupiter"; - + boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.kernelPackages = pkgs.unstable.linuxPackages_latest; # Shitfuck SOnar Dotnet dependency nixpkgs.config = { - permittedInsecurePackages = [ - "aspnetcore-runtime-6.0.36" - "aspnetcore-runtime-wrapped-6.0.36" - "dotnet-sdk-6.0.428" - "dotnet-sdk-wrapped-6.0.428" - ]; - }; - - # Enable the X11 windowing system. - # services.xserver.enable = true; - - # Enable the GNOME Desktop Environment. - # services.xserver.displayManager.gdm.enable = true; - # services.xserver.desktopManager.gnome.enable = true; - - # services.xserver.enable = true; - # services.xserver.displayManager.sddm.enable = true; + permittedInsecurePackages = [ + "aspnetcore-runtime-6.0.36" + "aspnetcore-runtime-wrapped-6.0.36" + "dotnet-sdk-6.0.428" + "dotnet-sdk-wrapped-6.0.428" + ]; + }; services.openssh.enable = true; @@ -47,6 +41,7 @@ # Enable CUPS to print documents. services.printing.enable = true; + services.fwupd.enable = true; security.rtkit.enable = true; diff --git a/machines/jupiter/disks.nix b/machines/jupiter/disks.nix index 3a28256..950787d 100644 --- a/machines/jupiter/disks.nix +++ b/machines/jupiter/disks.nix @@ -1,22 +1,30 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: -#TODO: CHECK THIS OUT: https://github.com/nix-community/disko its kinda better but felix does not support it +#TODO: CHECK THIS OUT: https://github.com/nix-community/disko its kinda better but felix does not support it { fileSystems."/" = - { device = "/dev/disk/by-uuid/c95c64ad-f131-4bde-9bca-a7a3692173da"; + { device = "/dev/disk/by-uuid/8e3ac6ce-6865-49d8-b6d0-d7c008de391e"; fsType = "ext4"; }; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/0D77-17BB"; + { device = "/dev/disk/by-uuid/F193-2A35"; fsType = "vfat"; }; - fileSystems."/data/nfs" = - { device = "voyager:/"; - fsType = "nfs"; - options = [ "x-systemd.automount" "noauto" ]; - }; + fileSystems."/data/nfs" = { + device = "voyager:/"; + fsType = "nfs"; + options = [ + "x-systemd.automount" + "noauto" + ]; + }; } diff --git a/machines/jupiter/environments.nix b/machines/jupiter/environments.nix index 36b8aba..271715e 100644 --- a/machines/jupiter/environments.nix +++ b/machines/jupiter/environments.nix @@ -5,7 +5,7 @@ let in { my.profiles = { - hyprland.enable = true; + hyprland.enable = false; zsh.enable = true; apps = { desktop_apps = true; @@ -19,6 +19,7 @@ in sonarr.enable = true; jellyfin.enable = true; jellyseerr.enable = true; + development.enable = true; paperless = { enable = false; port = 28981; # Optional, to override the default port @@ -32,5 +33,10 @@ in my.hardware = { bluetooth.enable = true; + sound.enable = true; + }; + + my.services = { + vpn.enable = true; }; } diff --git a/machines/jupiter/hardware-configuration.nix b/machines/jupiter/hardware-configuration.nix index c0a9146..be2142d 100644 --- a/machines/jupiter/hardware-configuration.nix +++ b/machines/jupiter/hardware-configuration.nix @@ -1,14 +1,25 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "nvme" + "usbhid" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; @@ -16,7 +27,7 @@ # 9a49 nixpkgs.config.packageOverrides = pkgs: { - vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; + vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; }; hardware.opengl = { enable = true; @@ -28,18 +39,23 @@ ]; }; + hardware.logitech.wireless = { + enable = true; + enableGraphical = true; + }; fileSystems."/" = - { device = "/dev/disk/by-uuid/c95c64ad-f131-4bde-9bca-a7a3692173da"; + { device = "/dev/disk/by-uuid/8e3ac6ce-6865-49d8-b6d0-d7c008de391e"; fsType = "ext4"; }; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/0D77-17BB"; + { device = "/dev/disk/by-uuid/F193-2A35"; fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; }; - swapDevices = [ ]; + swapDevices = [ { device = "/dev/disk/by-uuid/7ffb2d2b-c03d-474b-8513-fee26e1e5e2f"; } ]; # 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 diff --git a/machines/mibook/configuration.nix b/machines/mibook/configuration.nix index afc02aa..b7d1bfa 100644 --- a/machines/mibook/configuration.nix +++ b/machines/mibook/configuration.nix @@ -1,4 +1,9 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: { imports = [ @@ -50,9 +55,8 @@ #media-session.enable = true; }; - system = { stateVersion = "23.05"; autoUpgrade.enable = true; }; -} \ No newline at end of file +} diff --git a/machines/mibook/disks.nix b/machines/mibook/disks.nix index 31f92bd..6ac41c9 100644 --- a/machines/mibook/disks.nix +++ b/machines/mibook/disks.nix @@ -1,10 +1,15 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: -#TODO: CHECK THIS OUT: https://github.com/nix-community/disko its kinda better but felix does not support it +#TODO: CHECK THIS OUT: https://github.com/nix-community/disko its kinda better but felix does not support it { - fileSystems."/" = - { device = "/dev/disk/by-uuid/077abdb0-cbc1-4589-b411-25ecc157488f"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/077abdb0-cbc1-4589-b411-25ecc157488f"; + fsType = "ext4"; + }; } diff --git a/machines/mibook/environments.nix b/machines/mibook/environments.nix index 9655e58..d1a2d8e 100644 --- a/machines/mibook/environments.nix +++ b/machines/mibook/environments.nix @@ -12,4 +12,4 @@ in dev_apps = true; }; }; -} \ No newline at end of file +} diff --git a/machines/mibook/hardware-configuration.nix b/machines/mibook/hardware-configuration.nix index 5d56eb6..e4303e0 100644 --- a/machines/mibook/hardware-configuration.nix +++ b/machines/mibook/hardware-configuration.nix @@ -1,22 +1,32 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "nvme" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/077abdb0-cbc1-4589-b411-25ecc157488f"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/077abdb0-cbc1-4589-b411-25ecc157488f"; + fsType = "ext4"; + }; swapDevices = [ ]; diff --git a/modules/default.nix b/modules/default.nix index e6144e5..255962d 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -3,5 +3,6 @@ imports = [ ./environments ./hardware + ./services ]; -} \ No newline at end of file +} diff --git a/modules/environments/apps/default.nix b/modules/environments/apps/default.nix index 3f99756..0bd4255 100644 --- a/modules/environments/apps/default.nix +++ b/modules/environments/apps/default.nix @@ -1,10 +1,13 @@ - -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.profiles.apps; - in { - - +in +{ options.my.profiles.apps = with lib; { desktop_apps = mkEnableOption "Basic Apps"; @@ -16,29 +19,17 @@ let users.users.finn.packages = with pkgs; [ firefox thunderbird - google-chrome - xfce.thunar + google-chrome vscode - discord - spotify - keepassxc + discord + spotify + keepassxc moonlight-qt - nextcloud-client - neovim - pipewire - vlc - wireplumber - numix-icon-theme - ] ++ lib.optionals cfg.dev_apps [ - jetbrains.webstorm - jetbrains.goland - jetbrains.pycharm-professional - jetbrains.idea-ultimate - go - ] ++ lib.optionals cfg.gnome_apps [ - gnomeExtensions.tweaks-in-system-menu - gnomeExtensions.wireless-hid - gnome.gnome-tweaks - ]; - }; - } + nextcloud-client + pipewire + wireplumber + vlc + ghostty + ]; + }; +} diff --git a/modules/environments/default.nix b/modules/environments/default.nix index b5c80ec..cc5cab2 100644 --- a/modules/environments/default.nix +++ b/modules/environments/default.nix @@ -2,6 +2,7 @@ { imports = [ ./apps + ./development ./hyprland ./zsh ./paperless @@ -14,4 +15,4 @@ ./jellyfin ./jellyseerr ]; -} \ No newline at end of file +} diff --git a/modules/environments/dev_server/default.nix b/modules/environments/dev_server/default.nix deleted file mode 100644 index 9d4adec..0000000 --- a/modules/environments/dev_server/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ config, lib, pkgs, ... }: -let - cfg = config.my.profiles.dev_server; - in { - options.my.profiles.dev_server = with lib; { - enable = mkEnableOption "Development Server environment"; - }; - - config = lib.mkIf cfg.enable { - programs.dev_server = { - enable = true; - nvidiaPatches = true; - xwayland.enable = true; - }; - users.users.finn.packages = with pkgs; [ - # Software - ]; - }; - -} diff --git a/modules/environments/development/default.nix b/modules/environments/development/default.nix new file mode 100644 index 0000000..615f936 --- /dev/null +++ b/modules/environments/development/default.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.my.profiles.development; +in +{ + + options.my.profiles.development = with lib; { + enable = mkEnableOption "Development Tools"; + }; + + config = lib.mkIf cfg.enable { + users.users.finn.packages = with pkgs; [ + google-chrome + vscode + neovim + jetbrains.idea-ultimate + go + (python3.withPackages ( + ps: with ps; [ + jupyter # notebooks + matplotlib + numpy + pandas + pillow + plotly + scikitlearn + scipy + tqdm # progressbar in pandas + wheel # python development + ] + )) + ]; + }; +} diff --git a/modules/environments/docker/default.nix b/modules/environments/docker/default.nix index b3cd871..4917f17 100644 --- a/modules/environments/docker/default.nix +++ b/modules/environments/docker/default.nix @@ -1,5 +1,12 @@ # Docker related settings -{ config, inputs, lib, options, pkgs, ... }: +{ + config, + inputs, + lib, + options, + pkgs, + ... +}: let cfg = config.my.profiles.docker; in @@ -19,4 +26,4 @@ in autoPrune.enable = true; }; }; -} \ No newline at end of file +} diff --git a/modules/environments/hyprland/default.nix b/modules/environments/hyprland/default.nix index ff03179..c8aa0c5 100644 --- a/modules/environments/hyprland/default.nix +++ b/modules/environments/hyprland/default.nix @@ -1,7 +1,13 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.profiles.hyprland; - in { +in +{ options.my.profiles.hyprland = with lib; { enable = mkEnableOption "hyprland env"; }; @@ -11,6 +17,12 @@ let enable = true; xwayland.enable = true; }; + + services.displayManager.sddm.wayland.enable = true; + services.xserver = { + layout = "de"; + xkbVariant = ""; + }; users.users.finn.packages = with pkgs; [ wofi mako @@ -23,12 +35,12 @@ let #xdg-desktop-portal-hyprland ]; hardware = { - # Opengl - opengl.enable = true; + # Opengl + opengl.enable = true; - # Most wayland compositors need this - nvidia.modesetting.enable = true; - }; + # Most wayland compositors need this + nvidia.modesetting.enable = true; + }; }; } diff --git a/modules/environments/jellyfin/default.nix b/modules/environments/jellyfin/default.nix index 7a63ae8..88e165c 100644 --- a/modules/environments/jellyfin/default.nix +++ b/modules/environments/jellyfin/default.nix @@ -1,5 +1,10 @@ # manages and downloads films -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.profiles.jellyfin; in @@ -15,9 +20,8 @@ in openFirewall = true; }; - systemd.services.jellyfin = { after = [ "network-online.target" ]; }; }; -} \ No newline at end of file +} diff --git a/modules/environments/jellyseerr/default.nix b/modules/environments/jellyseerr/default.nix index 659874e..11bbbb3 100644 --- a/modules/environments/jellyseerr/default.nix +++ b/modules/environments/jellyseerr/default.nix @@ -1,4 +1,3 @@ - # manages and downloads films { config, lib, ... }: let @@ -20,4 +19,4 @@ in after = [ "network-online.target" ]; }; }; -} \ No newline at end of file +} diff --git a/modules/environments/kde-desktop/default.nix b/modules/environments/kde-desktop/default.nix index 09e7341..0a7cbc6 100644 --- a/modules/environments/kde-desktop/default.nix +++ b/modules/environments/kde-desktop/default.nix @@ -1,9 +1,12 @@ # KDE Desktio Environment -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.profiles.kde-desktop; - # domain = config.networking.domain; - # port = 9696; in { options.my.profiles.kde-desktop = with lib; { @@ -12,12 +15,13 @@ in config = lib.mkIf cfg.enable { services.xserver = { - enable = true; - displayManager.sddm.enable = true; - desktopManager.plasma5.enable = true; + enable = true; + displayManager.sddm.enable = true; + desktopManager.plasma5.enable = true; }; users.users.finn.packages = with pkgs; [ - latte-dock + # Programms can be added here... + numix-icon-theme ]; }; -} \ No newline at end of file +} diff --git a/modules/environments/paperless/default.nix b/modules/environments/paperless/default.nix index 2865247..967c485 100644 --- a/modules/environments/paperless/default.nix +++ b/modules/environments/paperless/default.nix @@ -8,18 +8,20 @@ in enable = mkEnableOption "Paperless Server"; port = mkOption { - type = types.port; - default = 28981; - example = 8080; - description = "Internal port for webui"; - }; + type = types.port; + default = 28981; + example = 8080; + description = "Internal port for webui"; + }; extraConfig = mkOption { - type = types.attrs; - default = {}; - example = { PAPERLESS_OCR_LANGUAGE = "deu+eng"; }; - description = "Extra configuration options"; - }; + type = types.attrs; + default = { }; + example = { + PAPERLESS_OCR_LANGUAGE = "deu+eng"; + }; + description = "Extra configuration options"; + }; }; config = lib.mkIf cfg.enable { @@ -33,4 +35,4 @@ in }; networking.firewall.allowedTCPPorts = [ cfg.port ]; }; -} \ No newline at end of file +} diff --git a/modules/environments/prowlarr/default.nix b/modules/environments/prowlarr/default.nix index d53b78c..9584d3f 100644 --- a/modules/environments/prowlarr/default.nix +++ b/modules/environments/prowlarr/default.nix @@ -1,10 +1,15 @@ # manages indexes -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.profiles.prowlarr; - # domain = config.networking.domain; - # port = 9696; in +# domain = config.networking.domain; +# port = 9696; { options.my.profiles.prowlarr = with lib; { enable = mkEnableOption "Prowlarr for indexing"; @@ -30,4 +35,4 @@ in after = [ "network-online.target" ]; }; }; -} \ No newline at end of file +} diff --git a/modules/environments/radarr/default.nix b/modules/environments/radarr/default.nix index 7a4f96a..a2c1d6f 100644 --- a/modules/environments/radarr/default.nix +++ b/modules/environments/radarr/default.nix @@ -1,10 +1,15 @@ # manages and downloads films -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.profiles.radarr; - # domain = config.networking.domain; - # port = 7878; in +# domain = config.networking.domain; +# port = 7878; { options.my.profiles.radarr = with lib; { enable = mkEnableOption "Sonarr for films management"; @@ -23,4 +28,4 @@ in after = [ "network-online.target" ]; }; }; -} \ No newline at end of file +} diff --git a/modules/environments/readarr/default.nix b/modules/environments/readarr/default.nix index 82ca277..e95a623 100644 --- a/modules/environments/readarr/default.nix +++ b/modules/environments/readarr/default.nix @@ -1,10 +1,15 @@ # manages and downloads films -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.profiles.readarr; - # domain = config.networking.domain; - # port = 7878; in +# domain = config.networking.domain; +# port = 7878; { options.my.profiles.readarr = with lib; { enable = mkEnableOption "Readarr for ebook management"; @@ -23,4 +28,4 @@ in after = [ "network-online.target" ]; }; }; -} \ No newline at end of file +} diff --git a/modules/environments/sonarr/default.nix b/modules/environments/sonarr/default.nix index 8f1dd9c..084a286 100644 --- a/modules/environments/sonarr/default.nix +++ b/modules/environments/sonarr/default.nix @@ -1,9 +1,14 @@ # manages and downloads films -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.profiles.sonarr; # domain = config.networking.domain; - port = 8989; + port = 8989; in { options.my.profiles.sonarr = with lib; { @@ -23,4 +28,4 @@ in after = [ "network-online.target" ]; }; }; -} \ No newline at end of file +} diff --git a/modules/environments/zsh/default.nix b/modules/environments/zsh/default.nix index b469db7..09ceeb7 100644 --- a/modules/environments/zsh/default.nix +++ b/modules/environments/zsh/default.nix @@ -1,9 +1,13 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.profiles.zsh; - in { - - +in +{ options.my.profiles.zsh = with lib; { enable = mkEnableOption "zsh env"; @@ -12,13 +16,12 @@ let config = lib.mkIf cfg.enable { users.defaultUserShell = pkgs.zsh; programs.zsh = { + enable = true; + ohMyZsh = { enable = true; - ohMyZsh = { - enable = true; - theme = "agnoster"; - }; + theme = "agnoster"; + }; }; - }; - + }; } diff --git a/modules/hardware/bluetooth/default.nix b/modules/hardware/bluetooth/default.nix index dab77e7..d00c942 100644 --- a/modules/hardware/bluetooth/default.nix +++ b/modules/hardware/bluetooth/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.hardware.bluetooth; in diff --git a/modules/hardware/default.nix b/modules/hardware/default.nix index 71e9c03..59038c3 100644 --- a/modules/hardware/default.nix +++ b/modules/hardware/default.nix @@ -14,4 +14,4 @@ #./thunderbolt #./wifi ]; -} \ No newline at end of file +} diff --git a/modules/hardware/sound/default.nix b/modules/hardware/sound/default.nix index 52a6094..4c4a7f2 100644 --- a/modules/hardware/sound/default.nix +++ b/modules/hardware/sound/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.hardware.bluetooth; in @@ -11,5 +16,8 @@ in hardware.pulseaudio.enable = false; hardware.pulseaudio.support32Bit = true; users.extraUsers.finn.extraGroups = [ "audio" ]; + environment.systemPackages = with pkgs; [ + headsetcontrol + ]; }; -} \ No newline at end of file +} diff --git a/modules/hardware/wifi/default.nix b/modules/hardware/wifi/default.nix index d430c8d..8b0f648 100644 --- a/modules/hardware/wifi/default.nix +++ b/modules/hardware/wifi/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.hardware.wifi; in @@ -13,4 +18,4 @@ in package = pkgs.rtw89-firmware; }; }; -} \ No newline at end of file +} diff --git a/modules/services/default.nix b/modules/services/default.nix new file mode 100644 index 0000000..46a0a16 --- /dev/null +++ b/modules/services/default.nix @@ -0,0 +1,8 @@ +# Service-related modules +{ ... }: + +{ + imports = [ + ./vpn + ]; +} diff --git a/modules/services/vpn/default.nix b/modules/services/vpn/default.nix new file mode 100644 index 0000000..7702410 --- /dev/null +++ b/modules/services/vpn/default.nix @@ -0,0 +1,19 @@ +# self-hosted vpn +{ config, lib, ... }: +let + cfg = config.my.services.vpn; + inherit (config.networking) domain; +in +{ + options.my.services.vpn = with lib; { + enable = mkEnableOption "Headscale VPN Setup"; + }; + + config = lib.mkIf cfg.enable ( + lib.mkMerge [ + { + services.tailscale.enable = true; + } + ] + ); +} diff --git a/pkgs/default.nix b/pkgs/default.nix index 7a11111..bebb2e9 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,4 +1,3 @@ -final: prev: -{ +final: prev: { # homer = final.callPackage ./homer { }; -} \ No newline at end of file +}