diff --git a/.sops.yaml b/.sops.yaml index 76fe9cb..bdeec1a 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -5,3 +5,13 @@ creation_rules: key_groups: - age: - *primary + + - path_regex: secrets/secrets-yggdrasil.yaml$ + key_groups: + - age: + - *primary + + - path_regex: secrets/secrets-loptland.yaml$ + key_groups: + - age: + - *primary diff --git a/flake.lock b/flake.lock index db65e18..7c056c9 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,24 @@ { "nodes": { + "ags": { + "inputs": { + "nixpkgs": "nixpkgs_3", + "systems": "systems_4" + }, + "locked": { + "lastModified": 1728326430, + "narHash": "sha256-tV1ABHuA1HItMdCTuNdA8fMB+qw7LpjvI945VwMSABI=", + "owner": "Aylur", + "repo": "ags", + "rev": "60180a184cfb32b61a1d871c058b31a3b9b0743d", + "type": "github" + }, + "original": { + "owner": "Aylur", + "repo": "ags", + "type": "github" + } + }, "aquamarine": { "inputs": { "hyprutils": [ @@ -20,11 +39,11 @@ ] }, "locked": { - "lastModified": 1728902391, - "narHash": "sha256-44bnoY0nAvbBQ/lVjmn511yL39Sv7SknV0BDxn34P3Q=", + "lastModified": 1730968822, + "narHash": "sha256-NocDjINsh6ismkhb0Xr6xPRksmhuB2WGf8ZmXMhxu7Y=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "9874e08eec85b5542ca22494e127b0cdce46b786", + "rev": "a49bc3583ff223f426cb3526fdaa4bcaa247ec14", "type": "github" }, "original": { @@ -34,18 +53,12 @@ } }, "crane": { - "inputs": { - "nixpkgs": [ - "helix", - "nixpkgs" - ] - }, "locked": { - "lastModified": 1709610799, - "narHash": "sha256-5jfLQx0U9hXbi2skYMGodDJkIgffrjIOgMRjZqms2QE=", + "lastModified": 1727974419, + "narHash": "sha256-WD0//20h+2/yPGkO88d2nYbb23WMWYvnRyDQ9Dx4UHg=", "owner": "ipetkov", "repo": "crane", - "rev": "81c393c776d5379c030607866afef6406ca1be57", + "rev": "37e4f9f0976cb9281cd3f0c70081e5e0ecaee93f", "type": "github" }, "original": { @@ -62,11 +75,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1728973961, - "narHash": "sha256-Jkqaw9O7WXTf5SHrK7xr9HpVU/mEPVg0Sp6s3AENC90=", + "lastModified": 1730961036, + "narHash": "sha256-nkho9Dq4WzyF4xr83UdxrlDS5Sm7ZKkPaqGVupLOpOI=", "owner": "nix-community", "repo": "fenix", - "rev": "d6a9ff4d1e60c347a23bc96ccdb058d37a810541", + "rev": "9bf50cb857db8dba15528f3905e271d948cbff06", "type": "github" }, "original": { @@ -179,11 +192,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1709126324, - "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -232,7 +245,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_4" + "systems": "systems_5" }, "locked": { "lastModified": 1710146030, @@ -250,7 +263,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_5" + "systems": "systems_6" }, "locked": { "lastModified": 1726560853, @@ -283,7 +296,7 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_6" + "systems": "systems_7" }, "locked": { "lastModified": 1694529238, @@ -302,7 +315,7 @@ "gen-luarc": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1718922730, @@ -366,11 +379,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1729331287, - "narHash": "sha256-CiQsoNEOGHkSfG/0JJMegHfwXUAI0PwAIVj3i3FmGao=", + "lastModified": 1730790589, + "narHash": "sha256-xJ6bQ4VmdTB7A+dMbmOMaZ8a6erB6rkZkB+yzqD7gd4=", "owner": "helix-editor", "repo": "helix", - "rev": "be2884d80061493ab1999d73ffa51dfb4f59639d", + "rev": "b53dafe326d51b7f64a1c52379e3d4150cd2991e", "type": "github" }, "original": { @@ -386,11 +399,11 @@ ] }, "locked": { - "lastModified": 1729321331, - "narHash": "sha256-KVyQq+ez/oB30/WbdNgVD8g/bda34z8NiU187QKQb74=", + "lastModified": 1730837930, + "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", "owner": "nix-community", "repo": "home-manager", - "rev": "122f70545b29ccb922e655b08acfe05bfb44ec68", + "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", "type": "github" }, "original": { @@ -407,11 +420,11 @@ ] }, "locked": { - "lastModified": 1729122023, - "narHash": "sha256-OJNfAveVogmpSIJ7V3eCSWVGvmWOVQfMQTfOpK163HQ=", + "lastModified": 1730065367, + "narHash": "sha256-XIsgB/tgaenHorewWrfU2gkDsbkMfPA87Z/LXjeKM7Y=", "owner": "outfoxxed", "repo": "hy3", - "rev": "29293bf7d509cd18e25a59e15841538fcdef580a", + "rev": "4c79361db9c065886c163d1cf873889e1e641e44", "type": "github" }, "original": { @@ -463,11 +476,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1729353802, - "narHash": "sha256-6OkHeoC3Iva55uVd7MRKS7RLvln8Ma61H9xpcZtU2eY=", + "lastModified": 1730969692, + "narHash": "sha256-yHY98IWTLDz57TrseUxdh5QnpngcNCjNXTJ2XCeNhtk=", "ref": "refs/heads/main", - "rev": "ce3ba798df6bca5be1da4396644a9ef08a2acab4", - "revCount": 5358, + "rev": "e58e97b0a38b8ccc87a4304c9e4e2b37c9966875", + "revCount": 5425, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -495,11 +508,11 @@ ] }, "locked": { - "lastModified": 1728383680, - "narHash": "sha256-/SeOrMuPEOjngI+MBlzqxQ/sJxkJFIYoef+wJ/PmX2w=", + "lastModified": 1730755630, + "narHash": "sha256-IA5U8lHx/lnHwbx25dpPpeLbaALqNNjalYCf19tIoj0=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "d05eb1ffba2ebffb5b4e1b407f134a4dcb411a88", + "rev": "44859f877739c05d031fcab4a2991ec004fa9bc4", "type": "github" }, "original": { @@ -599,11 +612,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1729175038, - "narHash": "sha256-4eTSbHMPUgap+63YW2IJreM//HL/meaGR0r5IOonH9g=", + "lastModified": 1730911842, + "narHash": "sha256-stAVRv13iACAIJ6mheJOwZXWD24YDupyshaUDovVNi4=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "b8080862869af28bafdafb512682d414d9de063a", + "rev": "4fc133c96fa1ad2968cad44f8e9e9e923cd0381a", "type": "github" }, "original": { @@ -612,6 +625,25 @@ "type": "github" } }, + "hyprpanel": { + "inputs": { + "ags": "ags", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1730958442, + "narHash": "sha256-8vmh+ehnDnIenBNibGTPCu8p7cJiFP6bzj0E7pBxgQQ=", + "owner": "Jas-SinghFSU", + "repo": "HyprPanel", + "rev": "dbd932941b46ced4eac5da30994d5af2ca80530c", + "type": "github" + }, + "original": { + "owner": "Jas-SinghFSU", + "repo": "HyprPanel", + "type": "github" + } + }, "hyprutils": { "inputs": { "nixpkgs": [ @@ -624,11 +656,11 @@ ] }, "locked": { - "lastModified": 1728941256, - "narHash": "sha256-WRypmcZ2Bw94lLmcmxYokVOHPJSZ7T06V49QZ4tkZeQ=", + "lastModified": 1730968903, + "narHash": "sha256-zFvzLXcSm0Ia4XI1SE4FQ9KE63hlGrRWhLtwMolWuR8=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "fd4be8b9ca932f7384e454bcd923c5451ef2aa85", + "rev": "3ce0cde8709cdacbfba471f8e828433b58a561e9", "type": "github" }, "original": { @@ -712,7 +744,7 @@ "nix-ld": { "inputs": { "nixpkgs": [ - "unstable" + "nixpkgs-unstable" ] }, "locked": { @@ -731,11 +763,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1729333370, - "narHash": "sha256-NU+tYe3QWzDNpB8RagpqR3hNQXn4BNuBd7ZGosMHLL8=", + "lastModified": 1730919458, + "narHash": "sha256-yMO0T0QJlmT/x4HEyvrCyigGrdYfIXX3e5gWqB64wLg=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "38279034170b1e2929b2be33bdaedbf14a57bfeb", + "rev": "e1cc1f6483393634aee94514186d21a4871e78d7", "type": "github" }, "original": { @@ -753,11 +785,11 @@ ] }, "locked": { - "lastModified": 1729300178, - "narHash": "sha256-mkAPu2o5u7F/glAAfBzDji726iL1u2pm2fyN1SPWRQk=", + "lastModified": 1730453870, + "narHash": "sha256-d+kIgz4BvTXb7emjSFV3zjNydGmLUmuluQjdBb51R9o=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "42c23a6d5a2a1cbfd3fd137a7ff3d47c6d718033", + "rev": "adb6bc4b661a43328752b4575be4968a4990c033", "type": "github" }, "original": { @@ -768,11 +800,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1728888510, - "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", + "lastModified": 1730785428, + "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c", + "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", "type": "github" }, "original": { @@ -782,6 +814,22 @@ "type": "github" } }, + "nixpkgs-latest-factorio": { + "locked": { + "lastModified": 1730638571, + "narHash": "sha256-z9Wy1jmhFrABK3cEyiVmQtUwOuQW1YPwA8+HMnbEpnE=", + "owner": "Daholli", + "repo": "nixpkgs", + "rev": "d941e9aa2d89f377d45516c5edd765fef15ea90a", + "type": "github" + }, + "original": { + "owner": "Daholli", + "repo": "nixpkgs", + "rev": "d941e9aa2d89f377d45516c5edd765fef15ea90a", + "type": "github" + } + }, "nixpkgs-lib": { "locked": { "lastModified": 1717284937, @@ -794,13 +842,29 @@ "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" } }, + "nixpkgs-master": { + "locked": { + "lastModified": 1731023751, + "narHash": "sha256-80FIi/BkulfaTxT76BfDeYyKc/Lo6SIs/4Xm+VlYe4o=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "ed1b9995752699c34e16e5baafaf5e517397bec8", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { - "lastModified": 1720386169, - "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", + "lastModified": 1730741070, + "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", + "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", "type": "github" }, "original": { @@ -812,11 +876,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1728156290, - "narHash": "sha256-uogSvuAp+1BYtdu6UWuObjHqSbBohpyARXDWqgI12Ss=", + "lastModified": 1730602179, + "narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "17ae88b569bb15590549ff478bab6494dde4a907", + "rev": "3c2f1c4ca372622cb2f9de8016c9a0b1cbd0f37c", "type": "github" }, "original": { @@ -826,6 +890,22 @@ "type": "github" } }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1730785428, + "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1728492678, @@ -843,6 +923,38 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1725634671, + "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1729880355, + "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "18536bf04cd71abd345f9579158841376fdd0c5a", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1718714799, "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", @@ -858,13 +970,13 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_6": { "locked": { - "lastModified": 1729256560, - "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", + "lastModified": 1730785428, + "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", + "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", "type": "github" }, "original": { @@ -874,13 +986,13 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_7": { "locked": { - "lastModified": 1728093190, - "narHash": "sha256-CAZF2NRuHmqTtRTNAruWpHA43Gg2UvuCNEIzabP0l6M=", + "lastModified": 1730272153, + "narHash": "sha256-B5WRZYsRlJgwVHIV6DvidFN7VX7Fg9uuwkRW9Ha8z+w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e2f08f4d8b3ecb5cf5c9fd9cb2d53bb3c71807da", + "rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53", "type": "github" }, "original": { @@ -890,13 +1002,13 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_8": { "locked": { - "lastModified": 1729256560, - "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", + "lastModified": 1730200266, + "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", + "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", "type": "github" }, "original": { @@ -917,11 +1029,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1728778939, - "narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=", + "lastModified": 1730814269, + "narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "ff68f91754be6f3427e4986d7949e6273659be1d", + "rev": "d70155fdc00df4628446352fc58adc640cd705c2", "type": "github" }, "original": { @@ -940,26 +1052,29 @@ "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", "hyprlock": "hyprlock", + "hyprpanel": "hyprpanel", "kickstartnvim": "kickstartnvim", "nix-ld": "nix-ld", "nixos-hardware": "nixos-hardware", "nixos-wsl": "nixos-wsl", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_6", + "nixpkgs-latest-factorio": "nixpkgs-latest-factorio", + "nixpkgs-master": "nixpkgs-master", + "nixpkgs-unstable": "nixpkgs-unstable", "snowfall-flake": "snowfall-flake", "snowfall-lib": "snowfall-lib_2", "sops-nix": "sops-nix", - "unstable": "unstable", "zen-browser": "zen-browser" } }, "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1728921748, - "narHash": "sha256-BOCZ5osPOMh2BPHnkK4sVdTGj7sn47rBn1nxjrzWe5U=", + "lastModified": 1730749868, + "narHash": "sha256-b8UMpLh61z6T4J1NObustAuFGoJiAKBTaPTrEf3Amts=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "0319586ef2a2636f6d6b891690b7ebebf4337c85", + "rev": "b51f9bc736dc0472481a47d7c05de2901323e543", "type": "github" }, "original": { @@ -971,21 +1086,17 @@ }, "rust-overlay": { "inputs": { - "flake-utils": [ - "helix", - "flake-utils" - ], "nixpkgs": [ "helix", "nixpkgs" ] }, "locked": { - "lastModified": 1709604635, - "narHash": "sha256-le4fwmWmjGRYWwkho0Gr7mnnZndOOe4XGbLw68OvF40=", + "lastModified": 1728268235, + "narHash": "sha256-lJMFnMO4maJuNO6PQ5fZesrTmglze3UFTTBuKGwR1Nw=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "e86c0fb5d3a22a5f30d7f64ecad88643fe26449d", + "rev": "25685cc2c7054efc31351c172ae77b21814f2d42", "type": "github" }, "original": { @@ -998,7 +1109,7 @@ "inputs": { "flake-compat": "flake-compat_3", "nixpkgs": [ - "unstable" + "nixpkgs-unstable" ], "snowfall-lib": "snowfall-lib" }, @@ -1049,11 +1160,11 @@ ] }, "locked": { - "lastModified": 1719005984, - "narHash": "sha256-mpFl3Jv4fKnn+5znYXG6SsBjfXHJdRG5FEqNSPx0GLA=", + "lastModified": 1730136121, + "narHash": "sha256-tfVayj13Zw+zzOKrmJhnvBod7Hdb9ixBR6/4GUlyMA0=", "owner": "snowfallorg", "repo": "lib", - "rev": "c6238c83de101729c5de3a29586ba166a9a65622", + "rev": "dd348182c1a010993e68004eada86cf0341fe2c4", "type": "github" }, "original": { @@ -1064,15 +1175,15 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_7", "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1728345710, - "narHash": "sha256-lpunY1+bf90ts+sA2/FgxVNIegPDKCpEoWwOPu4ITTQ=", + "lastModified": 1731008979, + "narHash": "sha256-yN1NxvmqV8UltLkqYBWTeZNgpD/eyh/7LM58caHiEfE=", "owner": "Mic92", "repo": "sops-nix", - "rev": "06535d0e3d0201e6a8080dd32dbfde339b94f01b", + "rev": "fe63071416471abdab06caa234122932a7c4b980", "type": "github" }, "original": { @@ -1128,16 +1239,16 @@ }, "systems_4": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", "type": "github" } }, @@ -1171,19 +1282,18 @@ "type": "github" } }, - "unstable": { + "systems_7": { "locked": { - "lastModified": 1729256560, - "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, @@ -1215,11 +1325,11 @@ ] }, "locked": { - "lastModified": 1728166987, - "narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=", + "lastModified": 1730743262, + "narHash": "sha256-iTLqj3lU8kFehPm5tXpctzkD274t/k1nwSSq3qCWXeg=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787", + "rev": "09b23cef06fe248e61cec8862c04b9bcb62f4b6d", "type": "github" }, "original": { @@ -1230,14 +1340,14 @@ }, "zen-browser": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1729334402, - "narHash": "sha256-elpcQZC6VoZC4jKk09upN2cGPW4j+OjDpD2HjvYe9Z4=", + "lastModified": 1730444716, + "narHash": "sha256-WtqSpYQyG5ad+GK7B0ViDSl0NolHp7yM24TacUslBXE=", "owner": "ch4og", "repo": "zen-browser-flake", - "rev": "d5adb0791f5cf974b2b480f5d62075e9b3e7dd80", + "rev": "d3c639ee7bff20f799f443e18fffa6331a71cd3a", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 67190b7..3f0ed80 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,10 @@ inputs = { # nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + + nixpkgs-master.url = "github:nixos/nixpkgs/master"; + nixpkgs-latest-factorio.url = "github:Daholli/nixpkgs/d941e9aa2d89f377d45516c5edd765fef15ea90a"; home-manager = { url = "github:nix-community/home-manager/master"; @@ -22,7 +25,7 @@ # Run unpatched dynamically compiled binaries nix-ld = { url = "github:Mic92/nix-ld"; - inputs.nixpkgs.follows = "unstable"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; }; ### @@ -39,6 +42,8 @@ inputs.hyprland.follows = "hyprland"; }; + hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; + ### # Snowfall dependencies snowfall-lib = { @@ -48,9 +53,10 @@ snowfall-flake = { url = "github:snowfallorg/flake"; - inputs.nixpkgs.follows = "unstable"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; }; + # still not sure if I like helix or nvim more, for now helix does mostly everything I need it to kickstartnvim = { url = "github:Daholli/kickstart-nix-nvim"; inputs.nixpkgs.follows = "nixpkgs"; @@ -109,6 +115,7 @@ overlays = with inputs; [ snowfall-flake.overlays.default kickstartnvim.overlays.default + hyprpanel.overlay ]; systems.modules.nixos = with inputs; [ diff --git a/homes/x86_64-linux/cholli@loptland/default.nix b/homes/x86_64-linux/cholli@loptland/default.nix new file mode 100644 index 0000000..5f2a75c --- /dev/null +++ b/homes/x86_64-linux/cholli@loptland/default.nix @@ -0,0 +1,22 @@ +{ + lib, + pkgs, + config, + osConfig ? { }, + format ? "unknown", + ... +}: +with lib.wyrdgard; +{ + wyrdgard = { + apps = { + kitty = enabled; + }; + + tools = { + direnv = enabled; + }; + }; + + home.stateVersion = "24.11"; +} diff --git a/modules/nixos/apps/cli-apps/helix/default.nix b/modules/nixos/apps/cli-apps/helix/default.nix index d81fb6f..5610350 100644 --- a/modules/nixos/apps/cli-apps/helix/default.nix +++ b/modules/nixos/apps/cli-apps/helix/default.nix @@ -18,7 +18,7 @@ let in { options.${namespace}.apps.cli-apps.helix = { - enable = mkEnableOption "Whether to enable nixvim or not"; + enable = mkEnableOption "Whether to enable helix or not"; }; config = mkIf cfg.enable { @@ -30,124 +30,119 @@ in }; ${namespace} = { - home = { - extraOptions = { - programs.helix = { - enable = true; - package = helix-pkg; - defaultEditor = true; - settings = { - theme = "tokyonight"; - editor = { - auto-format = true; - line-number = "relative"; + home.extraOptions = { + programs.helix = { + enable = true; + package = helix-pkg; + defaultEditor = true; + settings = { + theme = "tokyonight"; + editor = { + auto-format = true; + line-number = "relative"; - lsp = { - display-inlay-hints = true; - display-messages = true; - }; - - cursor-shape = { - normal = "block"; - insert = "bar"; - select = "underline"; - }; - - indent-guides = { - render = true; - character = "|"; - }; - - statusline = { - left = [ - "mode" - "spinner" - ]; - center = [ "file-name" ]; - right = [ - "workspace-diagnostics" - "diagnostics" - "selections" - "position" - "total-line-numbers" - "spacer" - "file-encoding" - "file-line-ending" - "file-type" - ]; - separator = "│"; - }; + lsp = { + display-inlay-hints = true; + display-messages = true; }; - keys = { - normal = { - esc = [ - "collapse_selection" - "keep_primary_selection" - ]; - space = { - space = "file_picker"; - }; + cursor-shape = { + normal = "block"; + insert = "bar"; + select = "underline"; + }; - C-j = [ - "move_line_down" - "move_line_down" - "move_line_down" - "move_line_down" - "move_line_down" - ]; - C-k = [ - "move_line_up" - "move_line_up" - "move_line_up" - "move_line_up" - "move_line_up" - ]; - }; + indent-guides = { + render = true; + character = "|"; + }; + + statusline = { + left = [ + "mode" + "spinner" + ]; + center = [ "file-name" ]; + right = [ + "workspace-diagnostics" + "diagnostics" + "selections" + "position" + "total-line-numbers" + "spacer" + "file-encoding" + "file-line-ending" + "file-type" + ]; + separator = "│"; }; }; - languages = { - language = [ - { - name = "nix"; - auto-format = true; - formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; - language-servers = [ - "nixd" - "nil" - ]; - } - { - # provided by the dev environment in the rust shell - name = "rust"; - auto-format = true; - formatter.command = "cargo fmt"; - language-servers = [ "rust-analyzer" ]; - } - ]; + keys = { + normal = { + esc = [ + "collapse_selection" + "keep_primary_selection" + ]; + space = { + space = "file_picker"; + }; - language-server = { - nil = { - command = "${pkgs.nil}/bin/nil"; - }; - nixd = { - command = "${pkgs.nixd}/bin/nixd"; - }; - marksman = { - command = "${pkgs.marksman}/bin/marksman"; - }; - vscode-json-language-server = { - command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server"; - args = [ "--stdio" ]; - config.provideFormatter = true; - config.json.validate.enable = true; - }; - vscode-css-language-server = { - command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server"; - args = [ "--stdio" ]; - config.provideFormatter = true; - }; + C-j = [ + "move_line_down" + "move_line_down" + "move_line_down" + "move_line_down" + "move_line_down" + ]; + C-k = [ + "move_line_up" + "move_line_up" + "move_line_up" + "move_line_up" + "move_line_up" + ]; + }; + }; + }; + + languages = { + language = [ + { + name = "nix"; + auto-format = true; + formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; + language-servers = [ + "nixd" + "nil" + ]; + } + { + # provided by the dev environment in the rust shell + name = "rust"; + auto-format = true; + formatter.command = "cargo fmt"; + language-servers = [ "rust-analyzer" ]; + } + ]; + + language-server = { + nixd = { + command = "${pkgs.nixd}/bin/nixd"; + }; + marksman = { + command = "${pkgs.marksman}/bin/marksman"; + }; + vscode-json-language-server = { + command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server"; + args = [ "--stdio" ]; + config.provideFormatter = true; + config.json.validate.enable = true; + }; + vscode-css-language-server = { + command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server"; + args = [ "--stdio" ]; + config.provideFormatter = true; }; }; }; diff --git a/modules/nixos/desktop/addons/hypridle/default.nix b/modules/nixos/desktop/addons/hypridle/default.nix new file mode 100644 index 0000000..a242827 --- /dev/null +++ b/modules/nixos/desktop/addons/hypridle/default.nix @@ -0,0 +1,45 @@ +{ + config, + lib, + namespace, + ... +}: +let + inherit (lib) mkIf mkEnableOption; + + cfg = config.${namespace}.desktop.addons.hypridle; + + username = config.${namespace}.user.name; +in +{ + options.${namespace}.desktop.addons.hypridle = { + enable = mkEnableOption "Enable HyprIdle"; + }; + + config = mkIf cfg.enable { + snowfallorg.users.${username}.home.config = { + services.hypridle = { + enable = true; + settings = { + general = { + after_sleep_cmd = "hyprctl dispatch dpms on"; + ignore_dbus_inhibit = false; + lock_cmd = "hyprlock"; + }; + + listener = [ + { + timeout = 900; + on-timeout = "loginctl lock-session"; + } + { + timeout = 1200; + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + } + ]; + }; + }; + }; + }; +} diff --git a/modules/nixos/desktop/addons/hyprpanel/default.nix b/modules/nixos/desktop/addons/hyprpanel/default.nix new file mode 100644 index 0000000..32b62da --- /dev/null +++ b/modules/nixos/desktop/addons/hyprpanel/default.nix @@ -0,0 +1,614 @@ +{ + config, + lib, + namespace, + pkgs, + ... +}: +let + inherit (lib) + mkIf + mkEnableOption + mkMerge + mkOption + literalExpression + ; + + cfg = config.${namespace}.desktop.addons.hyprpanel; + username = config.${namespace}.user.name; + + settingsFormat = pkgs.formats.json { }; + + iconColor = "#242438"; + + light-cyan = "#73daca"; + lightBlue = "#414868"; + medium-blue = "#9aa5ce"; + cyan-blue = "#7dcfff"; + navy-blue = "#24283b"; + dark-blue = "#1a1b26"; + dark-blue-gray = "565f89"; + dark-blue-yankees = "#272a3d"; + blue-magenta = "#181825"; + + lightPurple = "#bb9af7"; + + lightRed = "#f7768e"; + red = "#c0caf5"; + + lightGreen = "#9ece6a"; + yellow = "#e0af68"; + + settings = { + tear = true; + scalingPriority = "hyprland"; + font.name = "CodeNewRoman Nerd Font Mono"; + + bar = { + customModules = { + updates.pollingInterval = 1440000; + ram = { + labelType = "used/total"; + icon = " "; + }; + cpu = { + label = true; + leftClick = "kitty --hold btop"; + icon = " "; + }; + }; + layouts = { + "0" = { + left = [ + "workspaces" + ]; + middle = [ + "windowtitle" + ]; + right = [ + "clock" + ]; + }; + "1" = { + left = [ + "dashboard" + "workspaces" + ]; + middle = [ + "windowtitle" + ]; + right = [ + "volume" + "bluetooth" + "battery" + "systray" + "cpu" + "ram" + "clock" + "notifications" + ]; + }; + }; + workspaces = { + showAllActive = true; + show_icons = false; + numbered_active_indicator = "underline"; + show_numbered = true; + showWsIcons = false; + showApplicationIcons = false; + hideUnoccupied = true; + }; + launcher = { + icon = "󱄅"; + rightClick = "hyprpanel -t settings-dialog"; + }; + scrollSpeed = 0; + windowtitle = { + class_name = false; + custom_title = false; + icon = false; + label = true; + title_map = [ + + ]; + truncation = true; + }; + network = { + label = false; + truncation = false; + }; + clock.format = "%a %b %d %H:%M:%S"; + notifications.show_total = true; + }; + + menus = { + clock.time.military = true; + dashboard = { + powermenu.avatar.image = "/home/cholli/Pictures/profile.png"; + + shortcuts.enabled = false; + directories.left = { + directory1.command = "kitty $HOME/Downloads"; + directory3.command = "kitty $HOME/projects"; + }; + + stats = { + enable_gpu = true; + enabled = false; + }; + controls.enabled = false; + }; + bluetooth = { + showBattery = true; + batteryState = "always"; + }; + transition = "crossfade"; + }; + + theme = { + bar = { + floating = true; + outer_spacing = "0.2em"; + buttons = { + enableBorders = true; + + workspaces = { + enableBorder = false; + fontSize = "1.2em"; + smartHighlight = false; + active = "#f7768e"; + occupied = "#f7768e"; + available = "#7dcfff"; + hover = "#f7768e"; + background = "#272a3d"; + numbered_active_highlighted_text_color = "#181825"; + numbered_active_underline_color = "#c678dd"; + border = "#f7768e"; + }; + modules = { + power = { + icon = "#181825"; + icon_background = "#f7768e"; + background = "#272a3d"; + border = "#f7768e"; + }; + ram = { + enableBorder = false; + spacing = "0.45em"; + icon = "#181825"; + icon_background = "#e0af68"; + text = "#e0af68"; + background = "#272a3d"; + border = "#e0af68"; + }; + cpu = { + enableBorder = false; + background = "#272a3d"; + icon = "#181825"; + icon_background = "#f7768e"; + text = "#f7768e"; + border = "#f7768e"; + }; + submap = { + background = "#272a3d"; + text = "#73daca"; + border = "#73daca"; + icon = "#181825"; + icon_background = "#73daca"; + }; + }; + + style = "split"; + icon = "#242438"; + icon_background = "#bb9af7"; + text = "#bb9af7"; + hover = "#414868"; + background = "#272a3d"; + dashboard = { + enableBorder = false; + icon = "#272a3d"; + background = "#e0af68"; + border = "#e0af68"; + }; + volume = { + icon = "#272a3d"; + text = "#f7768e"; + background = "#272a3d"; + icon_background = "#f7768e"; + border = "#f7768e"; + }; + notifications = { + total = "#bb9af7"; + icon = "#272a3d"; + background = "#272a3d"; + icon_background = "#bb9af7"; + border = "#bb9af7"; + }; + clock = { + icon = "#272a3d"; + text = "#f7768e"; + background = "#272a3d"; + icon_background = "#f7768e"; + border = "#f7768e"; + }; + systray = { + background = "#272a3d"; + border = "#414868"; + customIcon = "#c0caf5"; + }; + bluetooth = { + icon = "#272a3d"; + text = "#7dcfff"; + background = "#272a3d"; + icon_background = "#7dcfff"; + border = "#7dcfff"; + }; + windowtitle = { + icon = "#272a3d"; + text = "#f7768e"; + background = "#272a3d"; + icon_background = "#f7768e"; + border = "#f7768e"; + enableBorder = false; + }; + radius = "0.3em"; + borderSize = "0.0em"; + padding_x = "0.7rem"; + padding_y = "0.2rem"; + }; + + menus = { + monochrome = false; + opacity = 95; + menu = { + dashboard = { + powermenu = { + shutdown = "#f7768e"; + confirmation = { + deny = "#f7768e"; + confirm = "#9ece6a"; + button_text = "#1a1b26"; + body = "#c0caf5"; + label = "#bb9af7"; + border = "#414868"; + background = "#1a1b26"; + card = "#24283b"; + }; + sleep = "#7dcfff"; + logout = "#9ece6a"; + restart = "#e0af68"; + }; + monitors = { + ram = { + label = "#e0af68"; + bar = "#e0af68"; + icon = "#e0af68"; + }; + cpu = { + label = "#f7768e"; + bar = "#f7768e"; + icon = "#f7768e"; + }; + bar_background = "#414868"; + }; + directories = { + right = { + bottom.color = "#bb9af7"; + middle.color = "#bb9af7"; + top.color = "#73daca"; + }; + left = { + bottom.color = "#f7768e"; + middle.color = "#e0af68"; + top.color = "#f7768e"; + }; + }; + controls = { + input = { + text = "#1a1b26"; + background = "#f7768e"; + }; + volume = { + text = "#1a1b26"; + background = "#f7768e"; + }; + notifications = { + text = "#1a1b26"; + background = "#e0af68"; + }; + bluetooth = { + text = "#1a1b26"; + background = "#7dcfff"; + }; + disabled = "#414868"; + }; + profile.name = "#f7768e"; + border.color = "#414868"; + background.color = "#1a1b26"; + card.color = "#24283b"; + }; + notifications = { + switch = { + puck = "#565f89"; + disabled = "#565f89"; + enabled = "#bb9af7"; + }; + clear = "#f7768e"; + switch_divider = "#414868"; + border = "#414868"; + card = "#24283b"; + background = "#1a1b26"; + no_notifications_label = "#414868"; + label = "#bb9af7"; + scrollbar.color = "#bb9af7"; + pager = { + button = "#bb9af7"; + label = "#565f89"; + background = "#1a1b26"; + }; + }; + clock = { + text = "#c0caf5"; + border.color = "#414868"; + background.color = "#1a1b26"; + card.color = "#24283b"; + + calendar = { + contextdays = "#414868"; + days = "#c0caf5"; + currentday = "#f7768e"; + paginator = "#f7768e"; + weekdays = "#f7768e"; + yearmonth = "#73daca"; + }; + time = { + timeperiod = "#73daca"; + time = "#f7768e"; + }; + }; + systray = { + dropdownmenu.divider = "#24283b"; + dropdownmenu.text = "#c0caf5"; + dropdownmenu.background = "#1a1b26"; + }; + bluetooth = { + iconbutton = { + active = "#7dcfff"; + passive = "#c0caf5"; + }; + icons = { + active = "#7dcfff"; + passive = "#565f89"; + }; + listitems = { + active = "#7dcfff"; + passive = "#c0caf5"; + }; + switch = { + puck = "#565f89"; + disabled = "#565f89"; + enabled = "#7dcfff"; + }; + switch_divider = "#414868"; + status = "#565f89"; + text = "#c0caf5"; + label.color = "#7dcfff"; + border.color = "#414868"; + background.color = "#1a1b26"; + card.color = "#24283b"; + }; + volume = { + text = "#c0caf5"; + card.color = "#24283b"; + label.color = "#f7768e"; + input_slider = { + puck = "#414868"; + backgroundhover = "#414868"; + background = "#565f89"; + primary = "#f7768e"; + }; + audio_slider = { + puck = "#414868"; + backgroundhover = "#414868"; + background = "#565f89"; + primary = "#f7768e"; + }; + icons = { + active = "#f7768e"; + passive = "#565f89"; + }; + iconbutton = { + active = "#f7768e"; + passive = "#c0caf5"; + }; + listitems = { + active = "#f7768e"; + passive = "#c0caf5"; + }; + border.color = "#414868"; + background.color = "#1a1b26"; + }; + media = { + card.color = "#24283b"; + slider = { + puck = "#565f89"; + backgroundhover = "#414868"; + background = "#565f89"; + primary = "#f7768e"; + }; + buttons = { + text = "#1a1b26"; + background = "#bb9af7"; + enabled = "#73daca"; + inactive = "#414868"; + }; + border.color = "#414868"; + background.color = "#1a1b26"; + album = "#f7768e"; + artist = "#73daca"; + song = "#bb9af7"; + }; + power = { + border.color = "#414868"; + buttons = { + sleep = { + icon_background = "#7dcfff"; + text = "#7dcfff"; + background = "#24283b"; + icon = "#1a1b26"; + }; + restart = { + text = "#e0af68"; + icon_background = "#e0af68"; + icon = "#1a1b26"; + background = "#24283b"; + }; + shutdown = { + icon = "#1a1b26"; + background = "#24283b"; + icon_background = "#f7768e"; + text = "#f7768e"; + }; + logout = { + icon = "#1a1b26"; + background = "#24283b"; + text = "#9ece6a"; + icon_background = "#9ece6a"; + }; + }; + background.color = "#1a1b26"; + scaling = 90; + }; + }; + background = "#1a1b26"; + text = "#c0caf5"; + border.color = "#414868"; + popover = { + text = "#bb9af7"; + background = "#1a1b26"; + border = "#1a1b26"; + }; + tooltip = { + text = "#c0caf5"; + background = "#1a1b26"; + }; + dropdownmenu = { + divider = "#24283b"; + text = "#c0caf5"; + background = "#1a1b26"; + }; + slider = { + puck = "#565f89"; + backgroundhover = "#414868"; + background = "#565f89"; + primary = "#bb9af7"; + }; + progressbar = { + background = "#414868"; + foreground = "#bb9af7"; + }; + iconbuttons = { + active = "#bb9af7"; + passive = "#c0caf5"; + }; + buttons = { + text = "#1a1b26"; + disabled = "#565f89"; + active = "#f7768e"; + default = "#bb9af7"; + }; + switch = { + puck = "#565f89"; + disabled = "#565f89"; + enabled = "#bb9af7"; + }; + icons = { + active = "#bb9af7"; + passive = "#414868"; + }; + listitems = { + active = "#bb9af7"; + passive = "#c0caf5"; + }; + label = "#bb9af7"; + feinttext = "#414868"; + dimtext = "#414868"; + cards = "#24283b"; + check_radio_button.background = "#3b4261"; + check_radio_button.active = "#bb9af7"; + }; + transparent = true; + background = "#1a1b26"; + margin_sides = "0.0em"; + location = "top"; + }; + osd = { + monitor = 1; + muted_zero = true; + label = "#bb9af7"; + icon = "#1a1b26"; + bar_overflow_color = "#f7768e"; + bar_empty_color = "#414868"; + bar_color = "#bb9af7"; + icon_container = "#bb9af7"; + bar_container = "#1a1b26"; + }; + notification = { + close_button.label = "#1a1b26"; + close_button.background = "#f7768e"; + labelicon = "#bb9af7"; + text = "#c0caf5"; + time = "#9aa5ce"; + border = "#565f89"; + label = "#bb9af7"; + actions.text = "#24283b"; + actions.background = "#bb9af7"; + background = "#1a1b26"; + }; + font.size = "1.3rem"; + }; + notifications = { + monitor = 1; + active_monitor = false; + }; + wallpaper = { + pywal = false; + image = "/home/cholli/Pictures/firewatch.jpg"; + enable = false; + }; + }; +in +{ + options.${namespace}.desktop.addons.hyprpanel = { + enable = mkEnableOption "Enable HyprIdle"; + extraSettings = mkOption { + default = { }; + inherit (settingsFormat) type; + description = '' + Additional Options to pass to hyprpanel + ''; + example = literalExpression '' + { + + } + ''; + }; + }; + + config = mkIf cfg.enable { + + snowfallorg.users.${username}.home.config = { + wayland.windowManager.hyprland.settings.exec-once = [ + "${pkgs.hyprpanel}/bin/hyprpanel" + ]; + }; + + ${namespace}.home.file = { + ".cache/ags/hyprpanel/options_test.json" = { + + # source = pkgs.formats.json.generate "options.json" settings; + text = builtins.toJSON settings; + }; + }; + }; +} diff --git a/modules/nixos/desktop/addons/hyprpaper/default.nix b/modules/nixos/desktop/addons/hyprpaper/default.nix index b3ea2a0..b704acd 100644 --- a/modules/nixos/desktop/addons/hyprpaper/default.nix +++ b/modules/nixos/desktop/addons/hyprpaper/default.nix @@ -1,20 +1,16 @@ { config, - inputs, lib, namespace, - pkgs, - system, ... }: let inherit (lib) mkIf mkEnableOption; - # hyprpaper-package = inputs.hyprpaper.packages.${system}.hyprpaper; - cfg = config.${namespace}.desktop.addons.hyprpaper; username = config.${namespace}.user.name; + picture-path = "/home/${username}/Pictures/firewatch.jpg"; in { options.${namespace}.desktop.addons.hyprpaper = { @@ -28,13 +24,15 @@ in "Pictures/firewatch.jpg".source = ./firewatch.jpg; }; + wayland.windowManager.hyprland.settings.exec-once = [ + ''hyprctl hyprpaper wallpaper "DP-2,${picture-path}"'' + ]; + services.hyprpaper = { enable = true; settings = { - preload = [ - "/home/${username}/Pictures/firewatch.jpg" - ]; - wallpaper = "monitor DP-2, /home/${username}/Pictures/firewatch.jpg"; + preload = [ picture-path ]; + wallpaper = "DP-2,${picture-path}"; }; }; }; diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index 090ab58..06bfffd 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -6,10 +6,17 @@ ... }: let + inherit (lib) mkIf mkEnableOption; user = config.${namespace}.user.name; + + cfg = config.${namespace}.desktop.hyprland; in { - config = { + options.${namespace}.desktop = { + enable = mkEnableOption "Whether to enable desktop theming"; + }; + + config = mkIf cfg.enable { ${namespace}.home.extraOptions = { dconf.settings = { "org/gnome/desktop/interface" = { diff --git a/modules/nixos/desktop/hyprland/default.nix b/modules/nixos/desktop/hyprland/default.nix index e6f263f..bbeef49 100644 --- a/modules/nixos/desktop/hyprland/default.nix +++ b/modules/nixos/desktop/hyprland/default.nix @@ -30,7 +30,7 @@ let hyprctl dispatch workspace $running else # always open on w/space 4 - hyprctl dispatch workspace 4 + hyprctl dispatch workspace 9 1password& fi ''; @@ -47,19 +47,30 @@ in config = mkIf cfg.enable { environment.systemPackages = with pkgs; [ - polkit-kde-agent + # Auth Agent + hyprpolkitagent + # Notification daemon + libnotify + + # Wayland Utilities wl-clipboard - wl-screenrec wlr-randr - grimblast - xfce.thunar - dunst + # Screenshot Utility + grimblast + + # File Manager + xfce.thunar + + # clean sddm theme elegant-sddm + # json cli parser for bash script to focus 1password jq focus-1password + + hyprpanel ]; programs = { @@ -79,14 +90,18 @@ in }; ${namespace} = { - desktop.addons = { - waybar = enabled; - rofi = { - enable = true; - package = pkgs.rofi-wayland-unwrapped; + desktop = { + enable = true; + addons = { + rofi = { + enable = true; + package = pkgs.rofi-wayland-unwrapped; + }; + hypridle = enabled; + hyprlock = enabled; + hyprpanel = enabled; + hyprpaper = enabled; }; - hyprlock = enabled; - hyprpaper = enabled; }; nix.extra-substituters.${cachix-url} = { @@ -109,20 +124,17 @@ in ]; exec-once = [ - "hyprpaper" - "waybar" - "dunst" - "systemctl --user start plasma-polkit-agent" + "systemctl --user start hyprpolkitagent" - "[workspace 3 silent] steam" - "[workspace 2 silent] discord" - "[workspace 4 silent] 1password" + "[workspace 2 silent] steam --disable-gpu-compositing" # nvidia pls let me have nice things + "[workspace 8 silent] discord --disable-gpu-compositing" + "[workspace 9 silent] 1password" "[workspace 1 silent] zen" ]; windowrulev2 = [ #stean is a bit wierd, since it opens in multiple phases, so just move the last window to the workspace - "workspace 3 silent, class:^(steam)$, title:^(Steam)" + "workspace 2 silent, class:^(steam)$, title:^(Steam)" # make xwaylandvideobridge window invisible "opacity 0.0 override, class:^(xwaylandvideobridge)$" diff --git a/modules/nixos/security/acme/default.nix b/modules/nixos/security/acme/default.nix new file mode 100644 index 0000000..a574009 --- /dev/null +++ b/modules/nixos/security/acme/default.nix @@ -0,0 +1,75 @@ +{ + config, + lib, + namespace, + pkgs, + ... +}: +with lib; +with lib.${namespace}; +let + cfg = config.${namespace}.security.acme; +in +{ + options.${namespace}.security.acme = with lib.types; { + enable = mkEnableOption "Enable sops (Default true)"; + email = mkOpt str config.${namespace}.user.email "The email to use."; + sopsFile = mkOption { + type = lib.types.path; + default = lib.snowfall.fs.get-file "secrets/secrets.yaml"; + description = "SecretFile"; + }; + domainname = mkOpt str "christophhollizeck.dev" "domainname to use"; + staging = mkOpt bool false "Use staging server for testing or not"; + }; + + config = mkIf cfg.enable { + sops = { + secrets = { + netcup_customer_number = { + inherit (cfg) sopsFile; + }; + + netcup_api_key = { + inherit (cfg) sopsFile; + }; + + netcup_api_password = { + inherit (cfg) sopsFile; + }; + }; + + templates = { + "netcup.env" = { + content = '' + NETCUP_CUSTOMER_NUMBER=${config.sops.placeholder.netcup_customer_number} + NETCUP_API_KEY=${config.sops.placeholder.netcup_api_key} + NETCUP_API_PASSWORD=${config.sops.placeholder.netcup_api_password} + NETCUP_PROPAGATION_TIMEOUT=1200 + ''; + }; + }; + + }; + + security.acme = { + acceptTerms = true; + defaults = { + inherit (cfg) email; + + group = mkIf config.services.nginx.enable "nginx"; + reloadServices = optional config.services.nginx.enable "nginx.service"; + + dnsProvider = "netcup"; + environmentFile = config.sops.templates."netcup.env".path; + }; + + certs."${cfg.domainname}" = { + server = mkIf cfg.staging "https://acme-staging-v02.api.letsencrypt.org/directory"; + dnsResolver = "1.1.1.1:53"; + extraDomainNames = [ "*.${cfg.domainname}" ]; + }; + }; + + }; +} diff --git a/modules/nixos/services/factorio-server/default.nix b/modules/nixos/services/factorio-server/default.nix index 9e501e4..5faf5d0 100644 --- a/modules/nixos/services/factorio-server/default.nix +++ b/modules/nixos/services/factorio-server/default.nix @@ -8,30 +8,38 @@ with lib.${namespace}; let cfg = config.${namespace}.services.factorio-server; - inherit (lib) mkIf mkEnableOption; + inherit (lib) mkIf mkOption mkEnableOption; in { options.${namespace}.services.factorio-server = { enable = mkEnableOption "Enable Factorio Headless Server"; + sopsFile = mkOption { + type = lib.types.path; + default = lib.snowfall.fs.get-file "secrets/secrets.yaml"; + description = "SecretFile"; + }; }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ factorio-headless ]; + environment.systemPackages = [ pkgs.factorio-headless ]; sops = { secrets = { factorio_token = { restartUnits = [ "factorio.service" ]; + inherit (cfg) sopsFile; }; factorio_username = { restartUnits = [ "factorio.service" ]; + inherit (cfg) sopsFile; }; factorio_game_password = { restartUnits = [ "factorio.service" ]; + inherit (cfg) sopsFile; }; }; templates."extraSettingsFile.json".content = '' { - "name": "Alles Nix!", + "name": "SpaceAgeHolli", "description": "Trying to run a factorio-headless-server on my nix system", "tags": ["vanilla"], "max_players": 10, @@ -40,7 +48,6 @@ in "autosave_slots": 5, "ignore_player_limit_for_returning_players": true, "username" : "${config.sops.placeholder.factorio_username}", - "admins": ["${config.sops.placeholder.factorio_username}"], "token": "${config.sops.placeholder.factorio_token}" } ''; @@ -53,8 +60,13 @@ in public = true; lan = true; nonBlockingSaving = true; - autosave-interval = 5; - loadLatestSave = true; + autosave-interval = 15; + saveName = "SpaceAge"; + admins = [ + "daholli" + "galbrain" + "geigeabc" + ]; extraSettingsFile = config.sops.templates."extraSettingsFile.json".path; }; }; diff --git a/modules/nixos/submodules/basics/default.nix b/modules/nixos/submodules/basics/default.nix index 9200885..bdc697b 100644 --- a/modules/nixos/submodules/basics/default.nix +++ b/modules/nixos/submodules/basics/default.nix @@ -13,7 +13,7 @@ let in { options.${namespace}.submodules.basics = with types; { - enable = mkBoolOpt false "Whether or not to enable basic configuration."; + enable = mkEnableOption "Whether or not to enable basic configuration."; }; config = mkIf cfg.enable { @@ -29,7 +29,7 @@ in #optional pciutils usbutils - htop + btop ]; ${namespace} = { diff --git a/modules/nixos/system/boot/default.nix b/modules/nixos/system/boot/default.nix index a824815..53759a1 100644 --- a/modules/nixos/system/boot/default.nix +++ b/modules/nixos/system/boot/default.nix @@ -17,7 +17,7 @@ in config = mkIf cfg.enable { boot = { - kernelPackages = pkgs.linuxPackages_6_10; + kernelPackages = pkgs.linuxPackages_latest; loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; diff --git a/modules/nixos/tools/git/default.nix b/modules/nixos/tools/git/default.nix index ad7eb11..8b37b71 100644 --- a/modules/nixos/tools/git/default.nix +++ b/modules/nixos/tools/git/default.nix @@ -24,7 +24,7 @@ in environment.systemPackages = with pkgs; [ git gitAndTools.gh - gitbutler + # gitbutler ]; ${namespace}.home.extraOptions = { diff --git a/modules/nixos/user/default.nix b/modules/nixos/user/default.nix index efdc078..62fb307 100644 --- a/modules/nixos/user/default.nix +++ b/modules/nixos/user/default.nix @@ -48,6 +48,11 @@ in icon = mkOpt (nullOr package) defaultIcon "The profile picture to use for the user."; extraGroups = mkOpt (listOf str) [ ] "Groups for the user to be assigned."; extraOptions = mkOpt attrs { } (mdDoc "Extra options passed to `users.users.`."); + trustedPublicKeys = mkOption { + default = [ ]; + type = nullOr (listOf str); + description = "Trusted public keys for this user for the machine"; + }; }; config = { @@ -92,6 +97,8 @@ in # system to select). uid = 1000; + openssh.authorizedKeys.keys = cfg.trustedPublicKeys; + extraGroups = [ "steamcmd" ] ++ cfg.extraGroups; } // cfg.extraOptions; }; diff --git a/overlays/discord/default.nix b/overlays/discord/default.nix new file mode 100644 index 0000000..970b716 --- /dev/null +++ b/overlays/discord/default.nix @@ -0,0 +1,9 @@ +{ ... }: + +final: prev: { + discord = prev.discord.overrideAttrs (oldAttrs: { + commandLineArgs = '' + --disable-gpu-compositing + ''; + }); +} diff --git a/overlays/factorio-headless/default.nix b/overlays/factorio-headless/default.nix new file mode 100644 index 0000000..98e4327 --- /dev/null +++ b/overlays/factorio-headless/default.nix @@ -0,0 +1,3 @@ +{ channels, ... }: + +final: prev: { inherit (channels.nixpkgs-latest-factorio) factorio-headless; } diff --git a/overlays/pathofbuilding/default.nix b/overlays/pathofbuilding/default.nix index 221979b..b738b0f 100644 --- a/overlays/pathofbuilding/default.nix +++ b/overlays/pathofbuilding/default.nix @@ -1,3 +1,3 @@ { channels, ... }: -final: prev: { inherit (channels.unstable) pobfrontend; } +final: prev: { inherit (channels.nixpkgs-unstable) pobfrontend; } diff --git a/overlays/steam/default.nix b/overlays/steam/default.nix new file mode 100644 index 0000000..c517edf --- /dev/null +++ b/overlays/steam/default.nix @@ -0,0 +1,9 @@ +{ ... }: + +final: prev: { + steam = prev.steam.overrideAttrs (oldAttrs: { + commandLineArgs = '' + --disable-gpu-compositing + ''; + }); +} diff --git a/overlays/teams-for-linux/default.nix b/overlays/teams-for-linux/default.nix new file mode 100644 index 0000000..7bb7e2a --- /dev/null +++ b/overlays/teams-for-linux/default.nix @@ -0,0 +1,9 @@ +{ ... }: + +final: prev: { + teams-for-linux = prev.teams-for-linux.overrideAttrs (oldAttrs: { + commandLineArgs = '' + --disable-gpu-compositing + ''; + }); +} diff --git a/secrets/secrets-loptland.yaml b/secrets/secrets-loptland.yaml new file mode 100644 index 0000000..76030da --- /dev/null +++ b/secrets/secrets-loptland.yaml @@ -0,0 +1,30 @@ +#ENC[AES256_GCM,data:Cgp+gOU81+rvdlY=,iv:8DxJxnCslDoEu0bxtlTjmNiAUCdiAV/8VYKTb4yqQ50=,tag:ZTkK7WCOBh1It6GuKPUXdg==,type:comment] +factorio_username: ENC[AES256_GCM,data:egV5kXtAiw==,iv:Hay0PC2yol5FAJGcWxLkxzNdwpD1V4UfDDnkhsjvjVQ=,tag:QBDS6eAeOswQoHBoi4Gj6A==,type:str] +factorio_token: ENC[AES256_GCM,data:whruEJQCNIqqfMA0A3yQdwwrzpIJBt815Lvex4Au,iv:hh3zZt+UxV9ltSHIAjpTRwtDvPgPU5APrB/1bXtKUkE=,tag:AgUmBYWp+Oyxm8O7yD8vlA==,type:str] +factorio_game_password: ENC[AES256_GCM,data:Gu/p0+Sbd6Y=,iv:6AB1T3JdleiUnusU7hw/0wOFNSBsAsBgP2yD9FB7zXk=,tag:DMgD4csthynuBon+KNZtOw==,type:str] +#ENC[AES256_GCM,data:15i2BBxM4iM=,iv:JV6Lsk8jUZl/eIJWkH/w5I2NraB9J9+0ggsENBGgbdI=,tag:HDwGheUv7dFIztQoJBjGmQ==,type:comment] +forgejo_db_password: ENC[AES256_GCM,data:CFsvko1AXRymDBC6WiOBs98rvFM=,iv:Wemhu8URxA6HsWQyYcPSwJzuMP4myrDC3rU3GEDVt7c=,tag:6wcNlDFVdnjez8hzi4E2cw==,type:str] +#ENC[AES256_GCM,data:nQnLBl7v,iv:HORr/Uvw4eUXfW5uS6rWr+6FkFF9bTNpMYGaRpVITRY=,tag:/r4n/xpqp7EPecGxDj4N+w==,type:comment] +netcup_customer_number: ENC[AES256_GCM,data:pRooJa3O,iv:0U/ONcWa2eqcsT1UpgXmLpAvJndaU8zln2g1HMbBQYE=,tag:+pu8EBl/dnm6DoLAtrjZBQ==,type:str] +netcup_api_key: ENC[AES256_GCM,data:nlkDz1VV2NIXxv/tIROWDHN9DLI0lVq9n9l2FlDwt+3H4G4gg6yCeZjGtR+pTCNfwio=,iv:x8HLL10ww52UJDkz7Yi02KBg7jbuLFHAlG0iMYDd8hk=,tag:pcuka4/Hu/QFIwS0b8GlxQ==,type:str] +netcup_api_password: ENC[AES256_GCM,data:k2mdQp57x5ZTypRCHbVlq1fembJ0uj5D0rb72K5rac43p888y3TFyiYVuDTosxR66mo=,iv:0OhtKWD/LWeV5ZWN9fbPozebSxvaFRdSn1AkX97ffAM=,tag:uY6A4jBL/9mtGy7++Yvn0A==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1amdd4hu6k0czf3mtlhd03yj3yzkdaynl7q5fdlqmjzpe9pwgxfjs3j0c85 + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3NFlTd2hOTHBtUDhuT0lF + amtLclY2ZTN0SStZQjFSNkZUd1RmMkdJZ0dJCnB2WU04dk41Qk45aGphMW9GQVJ4 + b2VWQVlOVFFLaGJWaU9FVU5ZUWtlRncKLS0tIGVPYW5DQnJMeW1qdWtINDNlQWFo + NmhrdXhpbVlmUFNsT1VaQjZyYkZkdzgKhL2BKXfPWNWUbFavpmtBQpnNEm/x0xH6 + NsjiV05AcrqPmGjj2kjvTv4ULPSoHiHiC5McUMfFTYIrCJgNvUbmMg== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2024-11-07T14:40:34Z" + mac: ENC[AES256_GCM,data:uk2AeOA9pnhekuofIjXavCGy9ZaO0ObprkvnGhJg5lPr/hyT9l7YcZtMQ7wckKDLS03I1hCAcNg0w/EmSUeU2+EHLb6Z1IUj3l0HBUPtPIJwJZifkrzp9iQwGwlK+i6nfREEgPGeuNMj/rnD67MECO4NRHTzGBzH7ZImoDpu0Us=,iv:ss8Q7i75UOQDMJfw4dQCT0qxPUGwfHizX0c/TUej+vc=,tag:iufeO6sfaToNcJg6E8tuxA==,type:str] + pgp: [] + unencrypted_suffix: _unencrypted + version: 3.9.1 diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index 98be30a..630bfc8 100644 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -1,7 +1,7 @@ #ENC[AES256_GCM,data:Y75QxOB7YrOA,iv:mZ2f288IG/pmlQRtCqdcz03dDTYMnnj50Vsk/BwTJ+c=,tag:gPHZgq091G4LYMan9R6z1w==,type:comment] factorio_username: ENC[AES256_GCM,data:rI7vF0XlaQ==,iv:+d5dD+nawphw+g8zavFXUr87bewTL1d+fuFnYKuYJKc=,tag:B8/6I7zi0b6xo8TFsY35Ug==,type:str] factorio_token: ENC[AES256_GCM,data:0JOQv4UGiz2j2KPEoNm2IuE3qt8XfKuVEBWJ2+fF,iv:EUc8vhrB5NcgFKO7xTCxG2PzUuFCJFIl1KB90NqCOXw=,tag:rCilwxD8sw+Ql5HzvcUEJQ==,type:str] -factorio_game_password: ENC[AES256_GCM,data:wwmltZzhYlQ=,iv:2LPugIqfPLJ5PbdrVfI36+76pAVp5Rano4T6968OsKs=,tag:kRpWL4wYnm/X4SHYypzVyA==,type:str] +factorio_game_password: ENC[AES256_GCM,data:xMpORLbom/w=,iv:ukkPL10vAcQKGGpjqKM58uIfJ3sRLhxUkFyf0JXJkvc=,tag:jw52z23utK7eHM9e2zZvig==,type:str] nixpkgs_review_auth: ENC[AES256_GCM,data:4zd7nThKhMMQxuxVdGZFUyJJ3rDBC29h9ydGmjKBEFy9Lz5X9TCf3w==,iv:u3aasLXSqer50RZDvvwGr0mwEoyywWaMr6q9VhPZieg=,tag:/rfQ4LHfJsvFYH+4hBe4LQ==,type:str] sops: kms: [] @@ -18,8 +18,8 @@ sops: TzdjVjVtWmxNNm96WHhXSGM4WjErMkEKoGtyn6M91h+ye8U/ltOuOQ74RUo/2R37 l5vR47FUyzilUliIK2PDUMXM/S3Yk3Zi6g3XL8OPd53X5I1UYUJmRw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-09-06T19:21:22Z" - mac: ENC[AES256_GCM,data:xgRgCRNtsoa3h7ss9uUyOVmGWoQqZ8+vSk0sNkhOeev1tB9qesTnkqNfRkilRyZPNen5xTV8iupvlB4wLVjODGDLueaimnOjWxrk8urSLPEbCzjLUsWuWiVANIkkyGWn0KH4mxr4pR0lt+Yy2JRKuzKGPYKYHWwnCg1saVCC2VE=,iv:iu86TvF8ur8RALGkJTgam35kJ4QRx6ruMBnj7o99A8k=,tag:AY/hCByZd1SNVIrWZ4qp4A==,type:str] + lastmodified: "2024-10-22T00:06:22Z" + mac: ENC[AES256_GCM,data:NFP/q1AwapApQ7osBUIIQRfwuD5CbZphZkxLo1BfnUG7q/TxLbUm7F1uDaHFx55ox7FrvBzm11k/A8njcOQtpmfnBGhwF+X6VUF+CvsnTStRk/4v1TiybFFODSPKVmsZvxKJS1cRnTmptBvDoDfztIvqk4m9XvuVZlYvK5VXQVA=,iv:z61xn9BYygcD5t/z0ZO7yUSS+yFOUNvmcSSx+c1RgAQ=,tag:u1/P68g2jemJhOloZHB7yA==,type:str] pgp: [] unencrypted_suffix: _unencrypted - version: 3.9.0 + version: 3.9.1 diff --git a/systems/x86_64-linux/loptland/default.nix b/systems/x86_64-linux/loptland/default.nix new file mode 100644 index 0000000..92ae507 --- /dev/null +++ b/systems/x86_64-linux/loptland/default.nix @@ -0,0 +1,122 @@ +{ + config, + lib, + namespace, + pkgs, + ... +}: +let + inherit (lib) mkIf; + inherit (lib.${namespace}) enabled; + + domainName = "christophhollizeck.dev"; + forgejoPort = 3000; + + cfg.enableAcme = true; + + sopsFile = lib.snowfall.fs.get-file "secrets/secrets-loptland.yaml"; +in +{ + imports = [ ./hardware.nix ]; + + environment.systemPackages = [ ]; + + sops = { + secrets = { + forgejo_db_password = { + inherit sopsFile; + }; + }; + }; + + services.openssh = { + enable = true; + settings = { + PasswordAuthentication = false; + KbdInteractiveAuthentication = false; + }; + }; + + services.nginx = { + enable = true; + recommendedProxySettings = true; + + virtualHosts = { + "git.${domainName}" = { + forceSSL = cfg.enableAcme; + useACMEHost = mkIf cfg.enableAcme domainName; + + locations."/" = { + proxyPass = "http://localhost:${toString forgejoPort}/"; + }; + }; + + "${domainName}" = { + forceSSL = cfg.enableAcme; + useACMEHost = mkIf cfg.enableAcme domainName; + + locations."/" = { + return = "404"; + }; + }; + }; + }; + + services.forgejo = { + enable = true; + database.type = "postgres"; + lfs.enable = true; + database = { + passwordFile = config.sops.secrets.forgejo_db_password.path; + }; + + settings = { + server = { + DOMAIN = "git.${domainName}"; + ROOT_URL = "http://git.${domainName}:${toString forgejoPort}"; + HTTP_PORT = forgejoPort; + }; + + service.DISABLE_REGISTRATION = true; + }; + }; + + networking.firewall.allowedTCPPorts = [ + forgejoPort + 80 + 443 + ]; + + ${namespace} = { + submodules = { + basics = enabled; + }; + + services = { + factorio-server = { + enable = true; + inherit sopsFile; + }; + }; + + security = { + acme = { + enable = cfg.enableAcme; + inherit sopsFile; + }; + }; + + user.trustedPublicKeys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFrDiO5+vMfD5MimkzN32iw3MnSMLZ0mHvOrHVVmLD0" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII4Pr7p0jizrvIl0UhcvrmL5SHRQQQWIcHLAnRFyUZS6" + ]; + }; + + snowfallorg.users.${config.${namespace}.user.name}.home.config = { + programs.fish.shellInit = '' + eval $(op signin) + ''; + }; + + system.stateVersion = "24.11"; +} diff --git a/systems/x86_64-linux/loptland/hardware.nix b/systems/x86_64-linux/loptland/hardware.nix new file mode 100644 index 0000000..6f1c5cb --- /dev/null +++ b/systems/x86_64-linux/loptland/hardware.nix @@ -0,0 +1,42 @@ +{ + config, + lib, + pkgs, + modulesPath, + ... +}: + +{ + imports = [ + (modulesPath + "/profiles/qemu-guest.nix") + ]; + + boot.initrd.availableKernelModules = [ + "ata_piix" + "uhci_hcd" + "virtio_pci" + "sr_mod" + "virtio_blk" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/26b098dd-0a15-49c5-9998-75f43d17eb26"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/30AB-7309"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; + + swapDevices = [ { device = "/dev/disk/by-uuid/b9bcb425-cb1c-40a1-89bb-d7fe6b421834"; } ]; + + networking.useDHCP = lib.mkDefault true; +} diff --git a/systems/x86_64-linux/yggdrasil/default.nix b/systems/x86_64-linux/yggdrasil/default.nix index 341e809..7dfecfe 100644 --- a/systems/x86_64-linux/yggdrasil/default.nix +++ b/systems/x86_64-linux/yggdrasil/default.nix @@ -5,7 +5,7 @@ ... }: let - inherit (lib.${namespace}) enabled; + inherit (lib.${namespace}) enabled disabled; in { imports = [ ./hardware.nix ]; @@ -21,6 +21,10 @@ in virtualisation.waydroid = enabled; + programs.ssh.extraConfig = '' + AddressFamily inet + ''; + ${namespace} = { archetypes = { gaming.enable = true; @@ -57,35 +61,32 @@ in }; exec-once = [ - "hyprctl dispatch moveworkspacetomonitor 4 HDMI-A-1" "xrandr --output DP-2 --primary" "[workspace 1 silent] obsidian --disabled-gpu" - "[workspace 4 silent] git-butler" + "[workspace 9 silent] git-butler" ]; workspace = [ "1, monitor:DP-2" - "2, monitor:HDMI-A-1" + "2, monitor:DP-2" "3, monitor:DP-2" - "4, monitor:HDMI-A-1" + "4, monitor:DP-2" + "8, monitor:HDMI-A-1" + "9, monitor:HDMI-A-1" ]; windowrulev2 = [ - "workspace 2 silent, class:^(steam)$, title:^(Friends List)" - "workspace 2 silent, class:^(discord)$, title:^(Discord)" + "workspace 8 silent, class:^(steam)$, title:^(Friends List)" + "workspace 8 silent, class:^(discord)$, title:^(Discord)" ]; }; }; services = { - factorio-server = enabled; + factorio-server = disabled; }; system = { - autoUpgrade = { - enable = true; - time = "10:00"; - }; hardware = { bluetooth = enabled; gpu.nvidia = enabled;