diff --git a/.gitignore b/.gitignore index a931378..2abfbe2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -result/* result +result/ +https_cache.sqlite diff --git a/README.md b/README.md index ab03df0..4811a92 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,4 @@ # NixOS Config My personal NixOS Configuration Repository -This Nix flake defines NixOS configurations for two machines: creatorforge-vm and creatorforge-framework. The flake imports various external repositories to provide additional functionality, such as Home Manager, sops-nix, and disko. - -Here is an overview of the flake: - [![built with nix](https://builtwithnix.org/badge.svg)](https://builtwithnix.org) diff --git a/flake.lock b/flake.lock index e97c746..98b6d28 100644 --- a/flake.lock +++ b/flake.lock @@ -1,18 +1,82 @@ { "nodes": { - "crane": { + "aquamarine": { "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], "nixpkgs": [ - "xremap", + "hyprland", "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" ] }, "locked": { - "lastModified": 1711407199, - "narHash": "sha256-A/nB4j3JHL51ztlMQdfKw6y8tUJJzai3bLsZUEEaBxY=", + "lastModified": 1750372185, + "narHash": "sha256-lVBKxd9dsZOH1fA6kSE5WNnt8e+09fN+NL/Q3BjTWHY=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "7cef49d261cbbe537e8cb662485e76d29ac4cbca", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "aquamarine_2": { + "inputs": { + "hyprutils": [ + "xremap", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "xremap", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "xremap", + "hyprland", + "nixpkgs" + ], + "systems": [ + "xremap", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1744289235, + "narHash": "sha256-ZFkHLdimtFzQACsVVyZkZlfYdj4iNy3PkzXfrwmlse8=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "c8282f4982b56dfa5e9b9f659809da93f8d37e7a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "crane": { + "locked": { + "lastModified": 1745454774, + "narHash": "sha256-oLvmxOnsEKGtwczxp/CwhrfmQUG2ym24OMWowcoRhH8=", "owner": "ipetkov", "repo": "crane", - "rev": "7e468a455506f2e65550e08dfd45092f0857a009", + "rev": "efd36682371678e2b6da3f108fdb5c613b3ec598", "type": "github" }, "original": { @@ -23,15 +87,14 @@ }, "devshell": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1711099426, - "narHash": "sha256-HzpgM/wc3aqpnHJJ2oDqPBkNsqWbW0WfWUO8lKu8nGk=", + "lastModified": 1741473158, + "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", "owner": "numtide", "repo": "devshell", - "rev": "2d45b54ca4a183f2fdcf4b19c895b64fbf620ee8", + "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", "type": "github" }, "original": { @@ -40,23 +103,35 @@ "type": "github" } }, - "disko": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, + "flake-compat": { + "flake": false, "locked": { - "lastModified": 1712612224, - "narHash": "sha256-Tv4C8OSPVmm4LbpJGLFSODyvJy6DqrisEGPCQdNVOeY=", - "owner": "nix-community", - "repo": "disko", - "rev": "79eab0e82cb126bf4ac170f44af82479f0895ab5", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "disko", + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, @@ -65,11 +140,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1709336216, - "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", "type": "github" }, "original": { @@ -78,21 +153,62 @@ "type": "github" } }, - "flake-utils": { + "flake-schemas": { + "locked": { + "lastModified": 1721999734, + "narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=", + "rev": "0a5c42297d870156d9c57d8f99e476b738dcd982", + "revCount": 75, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A" + } + }, + "gitignore": { "inputs": { - "systems": "systems_2" + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "xremap", + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", "type": "github" } }, @@ -103,30 +219,30 @@ ] }, "locked": { - "lastModified": 1712386041, - "narHash": "sha256-dA82pOMQNnCJMAsPG7AXG35VmCSMZsJHTFlTHizpKWQ=", + "lastModified": 1750783375, + "narHash": "sha256-oKccVOF1igIwTncVTHZ9RHgjOQEMbg8NK5am2IjOCCI=", "owner": "nix-community", "repo": "home-manager", - "rev": "d6bb9f934f2870e5cbc5b94c79e9db22246141ff", + "rev": "d457fa3c764e53e7bdd7354467c605766407620d", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.11", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } }, "home-manager_2": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1711554349, - "narHash": "sha256-RypwcWEIFePBI0Hubfj4chanbM/G2yzJzC6wgz+dmS4=", + "lastModified": 1745782215, + "narHash": "sha256-mx27J2HYQT+nGXTyUWKrUuxRzpr1FVVr59ZH4oNzOyw=", "owner": "nix-community", "repo": "home-manager", - "rev": "179f6acaf7c068c7870542cdae72afec9427a5b0", + "rev": "7b2aae3fb39928aecc5e41c10a9c87c4881614d5", "type": "github" }, "original": { @@ -151,11 +267,11 @@ ] }, "locked": { - "lastModified": 1712434681, - "narHash": "sha256-qwmR2p1oc48Bj7gUDvb1oGL19Rjs2PmEmk4ChV01A5o=", + "lastModified": 1749155331, + "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "818d8c4b69e0997483d60b75f701fe14b561a7a3", + "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", "type": "github" }, "original": { @@ -166,7 +282,11 @@ }, "hyprcursor_2": { "inputs": { - "hyprlang": "hyprlang_2", + "hyprlang": [ + "xremap", + "hyprland", + "hyprlang" + ], "nixpkgs": [ "xremap", "hyprland", @@ -179,11 +299,11 @@ ] }, "locked": { - "lastModified": 1711035742, - "narHash": "sha256-5vvhCSUGG9TA2G1eIRgokuYizhRnZu0ZbcU1MXfHsUE=", + "lastModified": 1742215578, + "narHash": "sha256-zfs71PXVVPEe56WEyNi2TJQPs0wabU4WAlq0XV7GcdE=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "6a92473237f430399a417e1c2da9d7fcd4970086", + "rev": "2fd36421c21aa87e2fe3bee11067540ae612f719", "type": "github" }, "original": { @@ -192,22 +312,88 @@ "type": "github" } }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750371717, + "narHash": "sha256-cNP+bVq8m5x2Rl6MTjwfQLCdwbVmKvTH7yqVc1SpiJM=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "15c6f8f3a567fec9a0f732cd310a7ff456deef88", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprgraphics_2": { + "inputs": { + "hyprutils": [ + "xremap", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "xremap", + "hyprland", + "nixpkgs" + ], + "systems": [ + "xremap", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1745015490, + "narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "60754910946b4e2dc1377b967b7156cb989c5873", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, "hyprland": { "inputs": { + "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks", "systems": "systems", - "wlroots": "wlroots", "xdph": "xdph" }, "locked": { - "lastModified": 1712739000, - "narHash": "sha256-nHx8lUK5hiiDlvFOmqwuh3bw9yCw9w5zR7gI2+pZMvk=", + "lastModified": 1750790382, + "narHash": "sha256-zQbFEl3XCfyKHHGcBY0f18F5YTsaV1fJz4C6BRL28z4=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "303b9956b2ae15508b09dffae602550ca17e6539", + "rev": "5a348fb7dfaf398922c119d21acb7d7f831f8688", "type": "github" }, "original": { @@ -228,11 +414,11 @@ ] }, "locked": { - "lastModified": 1691753796, - "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "lastModified": 1749046714, + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", "type": "github" }, "original": { @@ -255,11 +441,11 @@ ] }, "locked": { - "lastModified": 1691753796, - "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "lastModified": 1743714874, + "narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2", "type": "github" }, "original": { @@ -268,22 +454,170 @@ "type": "github" } }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1749154592, + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qt-support_2": { + "inputs": { + "hyprlang": [ + "xremap", + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "xremap", + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "xremap", + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1737634706, + "narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "8810df502cdee755993cb803eba7b23f189db795", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750371812, + "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprland-qtutils_2": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support_2", + "hyprlang": [ + "xremap", + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "xremap", + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "xremap", + "hyprland", + "nixpkgs" + ], + "systems": [ + "xremap", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1739048983, + "narHash": "sha256-REhTcXq4qs3B3cCDtLlYDz0GZvmsBSh947Ub6pQWGTQ=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "3504a293c8f8db4127cb0f7cfc1a318ffb4316f8", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, "hyprland_2": { "inputs": { + "aquamarine": "aquamarine_2", "hyprcursor": "hyprcursor_2", + "hyprgraphics": "hyprgraphics_2", "hyprland-protocols": "hyprland-protocols_2", - "hyprlang": "hyprlang_3", - "nixpkgs": "nixpkgs_6", - "systems": "systems_4", - "wlroots": "wlroots_2", + "hyprland-qtutils": "hyprland-qtutils_2", + "hyprlang": "hyprlang_2", + "hyprutils": "hyprutils_2", + "hyprwayland-scanner": "hyprwayland-scanner_2", + "nixpkgs": "nixpkgs_7", + "pre-commit-hooks": "pre-commit-hooks_2", + "systems": "systems_2", "xdph": "xdph_2" }, "locked": { - "lastModified": 1711557008, - "narHash": "sha256-fBrJJSRbeRf2lZUsaij96qhDX9JpDHF0uHD69Z6Ca/k=", + "lastModified": 1745756886, + "narHash": "sha256-oXfvqaWENRd8CaxbQEHntH9PzNsjUaWalBIcG7xk/Lw=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "93d05114716e847c37f49d3cc2d0c5cb01d06a24", + "rev": "0302bfdc2207f9b5482fb07aa6052e7f6cb237ca", "type": "github" }, "original": { @@ -294,6 +628,10 @@ }, "hyprlang": { "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], "nixpkgs": [ "hyprland", "nixpkgs" @@ -304,11 +642,11 @@ ] }, "locked": { - "lastModified": 1711671891, - "narHash": "sha256-C/Wwsy/RLxHP1axFFl+AnwJRWfd8gxDKKoa8nt8Qk3c=", + "lastModified": 1750371198, + "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "c1402612146ba06606ebf64963a02bc1efe11e74", + "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", "type": "github" }, "original": { @@ -319,20 +657,28 @@ }, "hyprlang_2": { "inputs": { + "hyprutils": [ + "xremap", + "hyprland", + "hyprutils" + ], "nixpkgs": [ "xremap", "hyprland", - "hyprcursor", "nixpkgs" ], - "systems": "systems_3" + "systems": [ + "xremap", + "hyprland", + "systems" + ] }, "locked": { - "lastModified": 1709914708, - "narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=", + "lastModified": 1744468525, + "narHash": "sha256-9HySx+EtsbbKlZDlY+naqqOV679VdxP6x6fP3wxDXJk=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2", + "rev": "f1000c54d266e6e4e9d646df0774fac5b8a652df", "type": "github" }, "original": { @@ -341,7 +687,32 @@ "type": "github" } }, - "hyprlang_3": { + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750371096, + "narHash": "sha256-JB1IeJ41y7kWc/dPGV6RMcCUM0Xj2NEK26A2Ap7EM9c=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "38f3a211657ce82a1123bf19402199b67a410f08", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_2": { "inputs": { "nixpkgs": [ "xremap", @@ -355,42 +726,78 @@ ] }, "locked": { - "lastModified": 1710960526, - "narHash": "sha256-tt0UgVKWeLQ+tFzvqrm4uAZbzONwdGshpfiLHAQ1P2c=", + "lastModified": 1743950287, + "narHash": "sha256-/6IAEWyb8gC/NKZElxiHChkouiUOrVYNq9YqG0Pzm4Y=", "owner": "hyprwm", - "repo": "hyprlang", - "rev": "a2f39421144d42541c057be235154ce21b76c0f6", + "repo": "hyprutils", + "rev": "f2dc70e448b994cef627a157ee340135bd68fbc6", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprlang", + "repo": "hyprutils", "type": "github" } }, - "nixos-hardware": { + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, "locked": { - "lastModified": 1712760404, - "narHash": "sha256-4zhaEW1nB+nGbCNMjOggWeY5nXs/H0Y71q0+h+jdxoU=", - "owner": "NixOS", - "repo": "nixos-hardware", - "rev": "e1c4bac14beb8c409d0534382cf967171706b9d9", + "lastModified": 1750371869, + "narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "master", - "repo": "nixos-hardware", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwayland-scanner_2": { + "inputs": { + "nixpkgs": [ + "xremap", + "hyprland", + "nixpkgs" + ], + "systems": [ + "xremap", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1739870480, + "narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1712439257, - "narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=", + "lastModified": 1750365781, + "narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599", + "rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54", "type": "github" }, "original": { @@ -402,77 +809,72 @@ }, "nixpkgs-lib": { "locked": { - "dir": "lib", - "lastModified": 1709237383, - "narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8", + "lastModified": 1743296961, + "narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", "type": "github" }, "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", + "owner": "nix-community", + "repo": "nixpkgs.lib", "type": "github" } }, - "nixpkgs-stable": { + "nixpkgs_10": { "locked": { - "lastModified": 1712437997, - "narHash": "sha256-g0whLLwRvgO2FsyhY8fNk+TWenS3jg5UdlWL4uqgFeo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e38d7cb66ea4f7a0eb6681920615dfcc30fc2920", - "type": "github" + "lastModified": 1752308619, + "narHash": "sha256-pzrVLKRQNPrii06Rm09Q0i0dq3wt2t2pciT/GNq5EZQ=", + "rev": "650e572363c091045cdbc5b36b0f4c1f614d3058", + "revCount": 806273, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.806273%2Brev-650e572363c091045cdbc5b36b0f4c1f614d3058/019804de-4447-7b40-88ef-4e58b0e7553e/source.tar.gz" }, "original": { - "owner": "NixOS", - "ref": "release-23.11", - "repo": "nixpkgs", - "type": "github" + "type": "tarball", + "url": "https://flakehub.com/f/NixOS/nixpkgs/%2A" } }, "nixpkgs_2": { "locked": { - "lastModified": 1712588820, - "narHash": "sha256-y31s5idk3jMJMAVE4Ud9AdI7HT3CgTAeMTJ0StqKN7Y=", - "owner": "NixOS", + "lastModified": 1752436162, + "narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "d272ca50d1f7424fbfcd1e6f1c9e01d92f6da167", + "rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-23.11", + "owner": "nixos", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_3": { "locked": { - "lastModified": 1712420723, - "narHash": "sha256-VnG0Eu394Ga2FCe8Q66m6OEQF8iAqjDYsjmtl+N2omk=", - "owner": "NixOS", + "lastModified": 1693565476, + "narHash": "sha256-ya00zHt7YbPo3ve/wNZ/6nts61xt7wK/APa6aZAfey0=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "9e7f26f82acb057498335362905fde6fea4ca50a", + "rev": "aa8aa7e2ea35ce655297e8322dc82bf77a31d04b", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", + "owner": "nixos", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_4": { "locked": { - "lastModified": 1704161960, - "narHash": "sha256-QGua89Pmq+FBAro8NriTuoO/wNaUtugt29/qqA8zeeM=", + "lastModified": 1744868846, + "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "63143ac2c9186be6d9da6035fa22620018c85932", + "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", "type": "github" }, "original": { @@ -484,27 +886,27 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1710806803, - "narHash": "sha256-qrxvLS888pNJFwJdK+hf1wpRCSQcqA6W5+Ox202NDa0=", + "lastModified": 1722073938, + "narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b06025f1533a1e07b6db3e75151caa155d1c7eb3", + "rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_6": { "locked": { - "lastModified": 1711001935, - "narHash": "sha256-URtGpHue7HHZK0mrHnSf8wJ6OmMKYSsoLmJybrOLFSQ=", + "lastModified": 1745526057, + "narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "20f77aa09916374aa3141cbc605c955626762c9a", + "rev": "f771eb401a46846c1aebd20552521b233dd7e18b", "type": "github" }, "original": { @@ -516,11 +918,27 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1711401922, - "narHash": "sha256-QoQqXoj8ClGo0sqD/qWKFWezgEwUL0SUh37/vY2jNhc=", + "lastModified": 1744932701, + "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "07262b18b97000d16a4bdb003418bd2fb067a932", + "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1745377448, + "narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c", "type": "github" }, "original": { @@ -530,28 +948,108 @@ "type": "github" } }, + "nixpkgs_9": { + "locked": { + "lastModified": 1735554305, + "narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749636823, + "narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "623c56286de5a3193aa38891a6991b28f9bab056", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore_2", + "nixpkgs": [ + "xremap", + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { - "disko": "disko", "home-manager": "home-manager", "hyprland": "hyprland", - "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_2", + "sk-extract": "sk-extract", "sops-nix": "sops-nix", - "xremap": "xremap" + "xremap": "xremap", + "yunodo": "yunodo" + } + }, + "sk-extract": { + "inputs": { + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1751159013, + "narHash": "sha256-ROTyPZ5CxbNmCrXiQBQDyJOfEJrF2ZGExVoAcXwiEMA=", + "ref": "refs/heads/main", + "rev": "95063ba566db81a0a40e49d9ba02060a93087562", + "revCount": 65, + "type": "git", + "url": "https://git.skdevstudios.com/specCon18/sk_extract.git" + }, + "original": { + "type": "git", + "url": "https://git.skdevstudios.com/specCon18/sk_extract.git" } }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_3", - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1712617241, - "narHash": "sha256-a4hbls4vlLRMciv62YrYT/Xs/3Cubce8WFHPUDWwzf8=", + "lastModified": 1750119275, + "narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=", "owner": "Mic92", "repo": "sops-nix", - "rev": "538c114cfdf1f0458f507087b1dcf018ce1c0c4c", + "rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2", "type": "github" }, "original": { @@ -576,21 +1074,6 @@ } }, "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_3": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -605,59 +1088,24 @@ "type": "github" } }, - "systems_4": { + "treefmt-nix": { + "inputs": { + "nixpkgs": "nixpkgs_9" + }, "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "lastModified": 1745780832, + "narHash": "sha256-jGzkZoJWx+nJnPe0Z2xQBUOqMKuR1slVFQrMjFTKgeM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "b2b6c027d708fbf4b01c9c11f6e80f2800b5a624", "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default-linux", + "owner": "numtide", + "repo": "treefmt-nix", "type": "github" } }, - "wlroots": { - "flake": false, - "locked": { - "host": "gitlab.freedesktop.org", - "lastModified": 1709983277, - "narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=", - "owner": "wlroots", - "repo": "wlroots", - "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b", - "type": "gitlab" - }, - "original": { - "host": "gitlab.freedesktop.org", - "owner": "wlroots", - "repo": "wlroots", - "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b", - "type": "gitlab" - } - }, - "wlroots_2": { - "flake": false, - "locked": { - "host": "gitlab.freedesktop.org", - "lastModified": 1709983277, - "narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=", - "owner": "wlroots", - "repo": "wlroots", - "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b", - "type": "gitlab" - }, - "original": { - "host": "gitlab.freedesktop.org", - "owner": "wlroots", - "repo": "wlroots", - "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b", - "type": "gitlab" - } - }, "xdph": { "inputs": { "hyprland-protocols": [ @@ -668,6 +1116,14 @@ "hyprland", "hyprlang" ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], "nixpkgs": [ "hyprland", "nixpkgs" @@ -678,11 +1134,11 @@ ] }, "locked": { - "lastModified": 1709299639, - "narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=", + "lastModified": 1750372504, + "narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "2d2fb547178ec025da643db57d40a971507b82fe", + "rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92", "type": "github" }, "original": { @@ -703,6 +1159,16 @@ "hyprland", "hyprlang" ], + "hyprutils": [ + "xremap", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "xremap", + "hyprland", + "hyprwayland-scanner" + ], "nixpkgs": [ "xremap", "hyprland", @@ -715,11 +1181,11 @@ ] }, "locked": { - "lastModified": 1709299639, - "narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=", + "lastModified": 1744644585, + "narHash": "sha256-p0D/e4J6Sv6GSb+9u8OQcVHSE2gPNYB5ygIfGDyEiXQ=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "2d2fb547178ec025da643db57d40a971507b82fe", + "rev": "be6771e754345f18244fb00aae5c9e5ab21ccc26", "type": "github" }, "original": { @@ -735,15 +1201,16 @@ "flake-parts": "flake-parts", "home-manager": "home-manager_2", "hyprland": "hyprland_2", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", + "treefmt-nix": "treefmt-nix", "xremap": "xremap_2" }, "locked": { - "lastModified": 1712025160, - "narHash": "sha256-L96ZF1Z+OxAta5XPmazFajflppflYw/y588SBWVGjAw=", + "lastModified": 1745792661, + "narHash": "sha256-7cDEHdeRdpYD85QdOrXxz7nLEmp5JDRYI2BznUmuSGQ=", "owner": "xremap", "repo": "nix-flake", - "rev": "38c9a3c4264750f77151369f34590db259454df3", + "rev": "1924f2dc1a7c219b5323050a7fb27920e3a225d4", "type": "github" }, "original": { @@ -755,19 +1222,38 @@ "xremap_2": { "flake": false, "locked": { - "lastModified": 1711574442, - "narHash": "sha256-RR8SgnlQX8Gz9qwO/wN5NvFWsEQ/vvNdmOxxFojri90=", + "lastModified": 1745685144, + "narHash": "sha256-z9QgiwG4muKYc1N9ycjs9r9QXB8JvzTdkCxu2c3mB9o=", "owner": "k0kubun", "repo": "xremap", - "rev": "53a6d0553d58b95777f066e4aeed05ec74c5eaed", + "rev": "929026e09dc12ef44be79b4ff392b6af073533b6", "type": "github" }, "original": { "owner": "k0kubun", - "ref": "v0.8.18", + "ref": "v0.10.11", "repo": "xremap", "type": "github" } + }, + "yunodo": { + "inputs": { + "flake-schemas": "flake-schemas", + "nixpkgs": "nixpkgs_10" + }, + "locked": { + "lastModified": 1752585859, + "narHash": "sha256-QQD++CqMHHzLU+FLjPgkhGfs5WwhtikarDEShyd3w3s=", + "ref": "refs/heads/main", + "rev": "9e9a9e4f1e4f909bb3d3bf32a2a80549fffa7786", + "revCount": 15, + "type": "git", + "url": "https://git.skdevstudios.com/specCon18/yunodo_redux.git" + }, + "original": { + "type": "git", + "url": "https://git.skdevstudios.com/specCon18/yunodo_redux.git" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 619099e..04f3e68 100644 --- a/flake.nix +++ b/flake.nix @@ -1,36 +1,28 @@ { - description = "spec's nixos configs"; + description = "Nixos config flake"; - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; - nixos-hardware.url = "github:NixOS/nixos-hardware/master"; - sops-nix.url = "github:Mic92/sops-nix"; - xremap.url = "github:xremap/nix-flake"; - hyprland.url = "github:hyprwm/Hyprland"; - home-manager = { - url = "github:nix-community/home-manager/release-23.11"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - disko = { - url = "github:nix-community/disko"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; + home-manager = { + url = "github:nix-community/home-manager/release-25.05"; + inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = { self, nixpkgs, ... }@inputs: { + sops-nix.url = "github:Mic92/sops-nix"; + xremap.url = "github:xremap/nix-flake"; + hyprland.url = "github:hyprwm/Hyprland"; + sk-extract.url = "git+https://git.skdevstudios.com/specCon18/sk_extract.git"; + yunodo.url = "git+https://git.skdevstudios.com/specCon18/yunodo_redux.git"; + }; - nixosConfigurations = { - katana = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs; }; - # Define the system type - system = "x86_64-linux"; - homeManagerModules.default = ./home_manager/home-manager.nix; - # Define the modules for the configuration - modules = [ - # Your configuration modules here. Example: - ./hosts/katana.nix - ./nixosModules/default.nix - ]; - }; + outputs = { self, nixpkgs, ... }@inputs: { + nixosConfigurations.katana = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs;}; + modules = [ + inputs.home-manager.nixosModules.default + ./hosts/katana.nix + ./modules + ./users/speccon18 + ]; }; }; } diff --git a/hosts/katana.nix b/hosts/katana.nix index ab950a0..ca27532 100644 --- a/hosts/katana.nix +++ b/hosts/katana.nix @@ -1,16 +1,11 @@ -{ modulesPath, config, pkgs, lib, self, ... }: +{ config, pkgs, lib, self,inputs, ... }: { system.stateVersion = "23.05"; - - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - # Hardware hardware = { - cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; - pulseaudio.enable = false; + enableRedistributableFirmware = lib.mkDefault true; + cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; bluetooth = { enable = true; # enables support for Bluetooth powerOnBoot = true; # powers up the default Bluetooth controller on boot @@ -20,7 +15,7 @@ }; }; }; - }; + }; # Boot boot = { @@ -40,16 +35,19 @@ fileSystems = { "/" = { - device = "/dev/disk/by-uuid/55c746b3-b9dc-4c9b-ab56-de68a561f9a3"; - fsType = "ext4"; + device = "/dev/disk/by-uuid/7a97edd8-c5a9-4354-a461-24c0f311e61b"; + fsType = "ext4"; }; "/boot" = { - device = "/dev/disk/by-uuid/0C59-9996"; - fsType = "vfat"; + device = "/dev/disk/by-uuid/F0BD-FE72"; + fsType = "vfat"; }; }; - - swapDevices = [ ]; + swapDevices = [ + { + device = "/dev/disk/by-uuid/e107d78d-d934-4939-889d-1860410321d5"; + } + ]; # Networking networking = { @@ -62,8 +60,6 @@ }; }; - # Sound - sound.enable = true; # Localization time.timeZone = "America/Detroit"; @@ -82,25 +78,31 @@ }; }; - # Services. + programs.steam.enable = true; + + # Services services = { - blueman.enable = true; + pcscd.enable = true; + blueman.enable = false; + pulseaudio.enable = false; printing.enable = true; xserver = { - layout = "us"; - xkbVariant = ""; + xkb = { + layout = "us"; + variant = ""; + }; }; }; # Package Manager nixpkgs = { - config.allowUnfree = true; + config = { + allowUnfree = true; + }; hostPlatform = lib.mkDefault "x86_64-linux"; }; nix = { - # Sets flakes to unstable track instead of stable # - package = pkgs.nixUnstable; # or versioned attributes like nix_2_4 # Enable flakes and nix-command extraOptions = ''experimental-features = nix-command flakes''; # Auto maintainence @@ -114,32 +116,42 @@ }; environment.systemPackages = with pkgs; [ - gparted - bluez - blueman - nerdfonts - home-manager - pkg-config - ripgrep - openssl - tree - eza - htop - zsh + gparted # Drive Partition Manger + bluez # Bluetooth Stack + # blueman # Bluetooth Management + home-manager # Dotfiles Management + pkg-config # Determine lib locations for linking during compliation + ripgrep # regex parser written in rust + openssl # SSL TLS Protocol + tree # Filetree to stdout + eza # LS rewritten in rust + zsh # Prefered Shell dig #dns lookup rage #file encryption age-plugin-yubikey #plugin for rage to manage yubi-2fa sops #file based secrets operations direnv #used for development environments - gcc - bottom - felix-fm - zulip - vscode + gcc # Gnu C Compiler + bottom # Top rewritten in rust + felix-fm # File browser tui written in rust + discord # Discord for comms with friends + neovim # Modal Text Editor + brave # Web Browser + libation # Backup audible libraries + libreoffice-qt6 # Microsoft office but OSS + spotify # Spotify offical client + p7zip # posix complient 7zip + yubioath-flutter # Yubico Authenticator Client + lazygit # Git tui written in rust + glow # Markdown renderer for terminal + inputs.sk-extract.packages.${system}.default + inputs.yunodo.packages.${system}.default + signal-desktop ]; - + # Fonts - fonts.packages = with pkgs; [ - (nerdfonts.override { fonts = [ "SourceCodePro" "DroidSansMono" ]; }) + fonts.packages = [ + pkgs.nerd-fonts.droid-sans-mono ]; -} \ No newline at end of file + +} diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..39db9c5 --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,6 @@ +{config,lib,inputs,...}:{ + imports = [ + ./system + ./home-manager + ]; +} diff --git a/nixosModules/home_manager/alacritty.nix b/modules/home-manager/alacritty.nix similarity index 54% rename from nixosModules/home_manager/alacritty.nix rename to modules/home-manager/alacritty.nix index 31743a1..d582ce5 100644 --- a/nixosModules/home_manager/alacritty.nix +++ b/modules/home-manager/alacritty.nix @@ -1,17 +1,11 @@ -{ pkgs, config, lib, ...}: +{ config, lib, pkgs, ... }: + { - options.speccon18.home_manager.alacritty.enable = lib.mkEnableOption "enables specs custom alacritty config"; - config = lib.mkIf config.speccon18.home_manager.alacritty.enable { - programs.alacritty = { + options.speccon18.hm.alacritty.enable = lib.mkEnableOption "Enable Alacritty"; + config = lib.mkIf config.speccon18.hm.alacritty.enable { + programs.alacritty = { enable = true; settings = { - cursor = { - style = { - shape = "Beam"; - blinking = "On"; - blink_interval = 75; - }; - }; window = { dimensions = { columns = 120; @@ -21,21 +15,6 @@ opacity = 1.0; title = "Alacritty"; }; - font = { - normal = { - family = "SauceCodePro Nerd Font"; - style = "Regular"; - }; - bold = { - family = "SauceCodePro Nerd Font"; - style = "Bold"; - }; - italic = { - family = "SauceCodePro Nerd Font"; - style = "Italic"; - }; - size = 14; - }; colors = { primary = { background = "#1d1f21"; @@ -45,7 +24,6 @@ text = "CellBackground"; cursor = "CellForeground"; }; - # Normal colors normal = { black = "#363537"; red = "#FC618D"; @@ -56,8 +34,6 @@ cyan = "#5AD4E6"; white = "#F7F1FF"; }; - - # Bright colors bright = { black = "#69676C"; red = "#FC618D"; @@ -66,10 +42,10 @@ blue = "#FD9353"; magenta = "#948AE3"; cyan = "#5AD4E6"; - white = "#F7F1FF"; + white = "#F7F1FF"; }; }; }; }; }; -} \ No newline at end of file +} diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix new file mode 100644 index 0000000..3e7a3a9 --- /dev/null +++ b/modules/home-manager/default.nix @@ -0,0 +1,11 @@ +{inputs,config,pkgs,...}:{ + imports = [ + inputs.home-manager.nixosModules.home-manager + ]; + home-manager = { + # useGlobalPackages = true; + # useUserPackages = true; + extraSpecialArgs = { inherit inputs; }; + users.speccon18 = import ./home.nix; + }; +} diff --git a/modules/home-manager/direnv.nix b/modules/home-manager/direnv.nix new file mode 100644 index 0000000..e3914be --- /dev/null +++ b/modules/home-manager/direnv.nix @@ -0,0 +1,10 @@ +{ pkgs, config, lib, ...}: +{ + options.speccon18.hm.direnv.enable = lib.mkEnableOption "enables direnv with zsh integration"; + config = lib.mkIf config.speccon18.hm.direnv.enable { + programs.direnv = { + enable = true; + enableZshIntegration = lib.mkDefault true; + }; + }; +} diff --git a/nixosModules/home_manager/git.nix b/modules/home-manager/git.nix similarity index 60% rename from nixosModules/home_manager/git.nix rename to modules/home-manager/git.nix index 7249a0a..e41fb7a 100644 --- a/nixosModules/home_manager/git.nix +++ b/modules/home-manager/git.nix @@ -1,6 +1,6 @@ {pkgs, config, lib, ...}:{ - options.speccon18.home_manager.git.enable = lib.mkEnableOption "enables specs personal git preferences"; - config = lib.mkIf config.speccon18.home_manager.git.enable { + options.speccon18.hm.git.enable = lib.mkEnableOption "enables specs personal git preferences"; + config = lib.mkIf config.speccon18.hm.git.enable { programs.git = { enable = true; userName = "specCon18"; @@ -12,4 +12,4 @@ }; }; }; -} \ No newline at end of file +} diff --git a/modules/home-manager/home.nix b/modules/home-manager/home.nix new file mode 100644 index 0000000..c6f96cf --- /dev/null +++ b/modules/home-manager/home.nix @@ -0,0 +1,111 @@ +{ config, pkgs, ... }: +{ + imports = [ + ./alacritty.nix + ./rio.nix + ./direnv.nix + ./git.nix + ./ncspot.nix + ./starship.nix + ./syncthing.nix + ./waybar.nix + ./zellij.nix + ./zoxide.nix + ./zsh.nix + ./ssh.nix + ./superfile.nix + ]; + speccon18.hm.alacritty.enable = true; + speccon18.hm.direnv.enable = true; + speccon18.hm.git.enable = true; + speccon18.hm.ncspot.enable = true; + speccon18.hm.starship.enable = true; + speccon18.hm.syncthing.enable = false; + speccon18.hm.waybar.enable = false; + speccon18.hm.zellij.enable = true; + speccon18.hm.zoxide.enable = true; + speccon18.hm.zsh.enable = true; + speccon18.hm.rio.enable = false; + speccon18.hm.ssh.enable = true; + speccon18.hm.superfile.enable = true; + # Home Manager needs a bit of information about you and the paths it should + # manage. + home = { + username = "speccon18"; + homeDirectory = "/home/speccon18"; + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + stateVersion = "23.11"; # Please read the comment before changing. + + # The home.packages option allows you to install Nix packages into your + # environment. + packages = with pkgs; [ + calibre + bitwarden + gimp + vlc + atuin + superfile + #rio + #imgcat + + # # Adds the 'hello' command to your environment. It prints a friendly + # # "Hello, world!" when run. + # pkgs.hello + + # # It is sometimes useful to fine-tune packages, for example, by applying + # # overrides. You can do that directly here, just don't forget the + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of + # # fonts? + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + # Home Manager can also manage your environment variables through + # 'home.sessionVariables'. If you don't want to manage your shell through Home + # Manager then you have to manually source 'hm-session-vars.sh' located at + # either + # + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # /etc/profiles/per-user/speccon18/etc/profile.d/hm-session-vars.sh + # + sessionVariables = { + # EDITOR = "emacs"; + }; + }; + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +} diff --git a/modules/home-manager/ncspot.nix b/modules/home-manager/ncspot.nix new file mode 100644 index 0000000..1d78a34 --- /dev/null +++ b/modules/home-manager/ncspot.nix @@ -0,0 +1,10 @@ +{ pkgs, config, lib, ...}: +{ + options.speccon18.hm.ncspot.enable = lib.mkEnableOption "enable ncspot"; + config = lib.mkIf config.speccon18.hm.ncspot.enable { + programs.ncspot = { + enable = true; + package = pkgs.ncspot; + }; + }; +} diff --git a/modules/home-manager/rio.nix b/modules/home-manager/rio.nix new file mode 100644 index 0000000..adc05b2 --- /dev/null +++ b/modules/home-manager/rio.nix @@ -0,0 +1,10 @@ +{ config, lib, pkgs,... }: + +{ + options.speccon18.hm.rio.enable = lib.mkEnableOption "Enable Rio Term"; + config = lib.mkIf config.speccon18.hm.rio.enable { + programs.rio= { + enable = true; + }; + }; +} diff --git a/modules/home-manager/ssh.nix b/modules/home-manager/ssh.nix new file mode 100644 index 0000000..63261f5 --- /dev/null +++ b/modules/home-manager/ssh.nix @@ -0,0 +1,17 @@ +{pkgs, config, lib, ...}:{ + options.speccon18.hm.ssh.enable = lib.mkEnableOption "enables specs personal git preferences"; + config = lib.mkIf config.speccon18.hm.ssh.enable { + programs.ssh = { + enable = true; + + matchBlocks = { + "git.skdevstudios.com" = { + hostname = "git.skdevstudios.com"; + user = "git"; + port = 2223; + identityFile = "~/.ssh/id_ed25519"; # Adjust as needed + }; + }; + }; + }; +} diff --git a/modules/home-manager/starship.nix b/modules/home-manager/starship.nix new file mode 100644 index 0000000..70f16c0 --- /dev/null +++ b/modules/home-manager/starship.nix @@ -0,0 +1,10 @@ +{ pkgs, config, lib, ...}: +{ + options.speccon18.hm.starship.enable = lib.mkEnableOption "enables specs custom starship config"; + config = lib.mkIf config.speccon18.hm.starship.enable { + programs.starship = { + enable = true; + enableZshIntegration = true; + }; + }; +} diff --git a/modules/home-manager/superfile.nix b/modules/home-manager/superfile.nix new file mode 100644 index 0000000..cbcb31f --- /dev/null +++ b/modules/home-manager/superfile.nix @@ -0,0 +1,12 @@ +{ pkgs, config, lib, ... }: +{ + options.speccon18.hm.superfile.enable = lib.mkEnableOption "enables specs superfile config"; + + config = lib.mkIf config.speccon18.hm.superfile.enable { + programs.superfile = { + enable = true; + package = pkgs.superfile; + }; + }; +} + diff --git a/modules/home-manager/syncthing.nix b/modules/home-manager/syncthing.nix new file mode 100644 index 0000000..1b9f31b --- /dev/null +++ b/modules/home-manager/syncthing.nix @@ -0,0 +1,10 @@ +{config, lib, pkgs, modulesPath, ... }: +{ + options.speccon18.hm.syncthing.enable = lib.mkEnableOption "enable syncthing"; + config = lib.mkIf config.speccon18.hm.syncthing.enable { + services.syncthing = { + enable = true; + tray.enable = false; + }; + }; +} diff --git a/nixosModules/home_manager/style.css b/modules/home-manager/waybar-style.css similarity index 100% rename from nixosModules/home_manager/style.css rename to modules/home-manager/waybar-style.css diff --git a/nixosModules/home_manager/waybar.nix b/modules/home-manager/waybar.nix similarity index 94% rename from nixosModules/home_manager/waybar.nix rename to modules/home-manager/waybar.nix index d0f2171..ccb8441 100644 --- a/nixosModules/home_manager/waybar.nix +++ b/modules/home-manager/waybar.nix @@ -1,7 +1,7 @@ { pkgs, config, lib, ...}: { - options.speccon18.home_manager.waybar.enable = lib.mkEnableOption "enable specs custom waybar for hyprland"; - config = lib.mkIf config.speccon18.home_manager.waybar.enable { + options.speccon18.hm.waybar.enable = lib.mkEnableOption "enable specs custom waybar for hyprland"; + config = lib.mkIf config.speccon18.hm.waybar.enable { programs.waybar = { enable = true; package = pkgs.waybar; @@ -118,7 +118,7 @@ }; }; }; - style = builtins.readFile ./style.css; + style = builtins.readFile ./waybar-style.css; }; }; - } \ No newline at end of file + } diff --git a/modules/home-manager/zellij.nix b/modules/home-manager/zellij.nix new file mode 100644 index 0000000..8905623 --- /dev/null +++ b/modules/home-manager/zellij.nix @@ -0,0 +1,10 @@ +{pkgs,config,lib,...}: +{ + options.speccon18.hm.zellij.enable = lib.mkEnableOption "enable zellij"; + config = lib.mkIf config.speccon18.hm.zellij.enable { + programs.zellij = { + enable = true; + package = pkgs.zellij; + }; + }; +} diff --git a/nixosModules/home_manager/zoxide.nix b/modules/home-manager/zoxide.nix similarity index 50% rename from nixosModules/home_manager/zoxide.nix rename to modules/home-manager/zoxide.nix index 467b3d6..abb8eea 100644 --- a/nixosModules/home_manager/zoxide.nix +++ b/modules/home-manager/zoxide.nix @@ -1,10 +1,10 @@ {pkgs,config,lib,...}: { - options.speccon18.home_manager.zoxide.enable = lib.mkEnableOption ""; - config = lib.mkIf config.speccon18.home_manager.zoxide.enable { + options.speccon18.hm.zoxide.enable = lib.mkEnableOption ""; + config = lib.mkIf config.speccon18.hm.zoxide.enable { programs.zoxide = { enable = true; enableZshIntegration = lib.mkDefault true; }; }; -} \ No newline at end of file +} diff --git a/modules/home-manager/zsh.nix b/modules/home-manager/zsh.nix new file mode 100644 index 0000000..9818c56 --- /dev/null +++ b/modules/home-manager/zsh.nix @@ -0,0 +1,38 @@ +{ pkgs, config, lib, ... }: +{ + options.speccon18.hm.zsh.enable = lib.mkEnableOption "enables specs zsh config"; + + config = lib.mkIf config.speccon18.hm.zsh.enable { + programs.zsh = { + enable = lib.mkDefault true; + dotDir = ".config/zsh"; + + history = { + path = "$ZDOTDIR/.zsh_history"; + save = 10000000; + }; + + autosuggestion.enable = lib.mkDefault true; + enableCompletion = lib.mkDefault true; + syntaxHighlighting.enable = lib.mkDefault true; + + shellAliases = { + ls = "eza -l"; + lsa = "eza -al"; + grep = "rg"; + osrb = "sudo nixos-rebuild $1 --flake ~/Documents/code/nix/nixos-config/#katana"; + nvim-cfg = "nvim /home/speccon18/.config/nvim/"; + }; + + localVariables = { + EDITOR = "nvim"; + }; + + # This adds the atuin init line to your Zsh config + initContent = '' + eval "$(atuin init zsh)" + ''; + }; + }; +} + diff --git a/modules/system/default.nix b/modules/system/default.nix new file mode 100644 index 0000000..1943ebd --- /dev/null +++ b/modules/system/default.nix @@ -0,0 +1,6 @@ +{config,...}:{ + imports = [ + ./desktop-environments + ./services + ]; +} diff --git a/modules/system/desktop-environments/budgie.nix b/modules/system/desktop-environments/budgie.nix new file mode 100644 index 0000000..6273ea5 --- /dev/null +++ b/modules/system/desktop-environments/budgie.nix @@ -0,0 +1,25 @@ +{ config, pkgs, lib, ... }: +let + cfg = config.speccon18.desktop.budgie; +in { + options.speccon18.desktop.budgie = { + enable = lib.mkEnableOption "enables specs custom budgie setup"; + }; + config = lib.mkIf cfg.enable { + services.xserver = { + enable = true; + desktopManager.budgie.enable = true; + displayManager.lightdm.enable = true; + excludePackages = with pkgs; [ xterm ]; + }; + environment.budgie.excludePackages = with pkgs; [ + mate.mate-terminal + mate.pluma + mate.atril + mate.eom + mate.engrampa + gnome-terminal + xterm + ]; + }; +} diff --git a/nixosModules/desktop_environments/default.nix b/modules/system/desktop-environments/default.nix similarity index 73% rename from nixosModules/desktop_environments/default.nix rename to modules/system/desktop-environments/default.nix index 0c0a8e7..1046e58 100644 --- a/nixosModules/desktop_environments/default.nix +++ b/modules/system/desktop-environments/default.nix @@ -1,5 +1,4 @@ -{pkgs,config,...}: -{ +{config,...}:{ imports = [ ./budgie.nix ./gnome.nix @@ -9,5 +8,5 @@ speccon18.desktop.budgie.enable = true; speccon18.desktop.gnome.enable = false; speccon18.desktop.hyprland.enable = false; - speccon18.desktop.displayManager.tuigreet.enable = false; + speccon18.desktop.tuigreet.enable = false; } diff --git a/nixosModules/desktop_environments/gnome.nix b/modules/system/desktop-environments/gnome.nix similarity index 62% rename from nixosModules/desktop_environments/gnome.nix rename to modules/system/desktop-environments/gnome.nix index 1bfb045..c5b5407 100644 --- a/nixosModules/desktop_environments/gnome.nix +++ b/modules/system/desktop-environments/gnome.nix @@ -1,23 +1,22 @@ { config, pkgs, lib, ... }: { options.speccon18.desktop.gnome.enable = lib.mkEnableOption "enables specs custom gnome setup"; - config = lib.mkIf config.speccon18.desktop.gnome.enable { - Dconf settings - dconf = { - enable = true; - settings = { - "org/gnome/mutter" = { - attach-modal-dialogs = true; - dynamic-workspaces = true; - edge-tiling = false; - experimental-features = [ "scale-monitor-framebuffer" ]; - focus-change-on-pointer-rest = true; - workspaces-only-on-primary = true; - }; - }; - }; - Gnome extensions + # Dconf settings for home manager + # dconf = { + # enable = true; + # settings = { + # "org/gnome/mutter" = { + # attach-modal-dialogs = true; + # dynamic-workspaces = true; + # edge-tiling = false; + # experimental-features = [ "scale-monitor-framebuffer" ]; + # focus-change-on-pointer-rest = true; + # workspaces-only-on-primary = true; + # }; + # }; + # }; + # Gnome extensions environment.systemPackages = with pkgs; [ ]; services = { @@ -25,7 +24,7 @@ core-utilities.enable = false; gnome-keyring.enable = true; }; - + xserver = { enable = true; layout = "us"; @@ -39,19 +38,19 @@ }; desktopManager = { xterm.enable = false; - # gnome.enable = lib.mkDefault true; + gnome.enable = false; }; }; }; - + programs = { xwayland.enable = lib.mkDefault true; }; - + xdg = { portal = { enable = lib.mkDefault true; }; mime.defaultApplications = { - "text/markdown" = "hx"; + "text/markdown" = "nvim"; }; }; }; diff --git a/modules/system/desktop-environments/hyprland.nix b/modules/system/desktop-environments/hyprland.nix new file mode 100644 index 0000000..f04d685 --- /dev/null +++ b/modules/system/desktop-environments/hyprland.nix @@ -0,0 +1,113 @@ +{ config, pkgs, lib, ...}: +{ + options.speccon18.desktop.hyprland.enable = lib.mkEnableOption "enables specs custom hyprland setup"; + config = lib.mkIf config.speccon18.desktop.hyprland.enable { + programs.hyprland = { + enable = true; + nvidiaPatches = true; + xwayland.enable = true; + }; + environment = { + systemPackages = with pkgs; [ + # libsForQt5.polkit-kde-agent + libsForQt5.qt5.qtwayland + qt6.full + qt6.qtwayland + waybar + swww + pw-volume + rofi-wayland + libnotify + mako + hyprland + font-awesome + brightnessctl + grim + slurp + wl-clipboard + ]; + sessionVariables = { + #Enable Wayland + WLR_NO_HARDWARE_CURSORS = "1"; + NIXOS_OZONE_WL = "1"; + MOZ_ENABLE_WAYLAND = "1"; + GTK_USE_PORTAL = "1"; + NIXOS_XDG_OPEN_USE_PORTAL = "1"; + SDL_VIDEODRIVER = "wayland"; + + # XDG_Config + XDG_CURRENT_DESKTOP = "Hyprland"; + XDG_SESSION_DESKTOP = "Hyprland"; + XDG_SESSION_TYPE = "wayland"; + XDG_CACHE_HOME = "\${HOME}/.cache"; + XDG_CONFIG_HOME = "\${HOME}/.config"; + XDG_BIN_HOME = "\${HOME}/.local/bin"; + XDG_DATA_HOME = "\${HOME}/.local/share"; + + #Default Applications + BROWSER = "firefox"; + TERMINAL = "alacritty"; + }; + }; + xdg.portal = { + enable = true; + extraPortals = [ + pkgs.xdg-desktop-portal-gtk + pkgs.xdg-desktop-portal-hyprland + ]; + }; + hardware = { + opengl.enable = true; + nvidia.modesetting.enable = true; + }; + # wayland.windowManager.hyprland = { + # # systemdIntegration = true; + # enable = true; + # extraConfig = '' + # $mainMod = SUPER + # # Application Lauch Keybinds + # bind = $mainMod, Return, exec, alacritty + # bind = $mainMod, W, exec, firefox + # bind = $mainMod, R, exec, rofi -show drun + # # Switch workspaces with mainMod + [0-9] + # bind = $mainMod, 1, workspace, 1 + # bind = $mainMod, 2, workspace, 2 + # bind = $mainMod, 3, workspace, 3 + # bind = $mainMod, 4, workspace, 4 + # bind = $mainMod, 5, workspace, 5 + # bind = $mainMod, 6, workspace, 6 + # bind = $mainMod, 7, workspace, 7 + # bind = $mainMod, 8, workspace, 8 + # bind = $mainMod, 9, workspace, 9 + # bind = $mainMod, 0, workspace, 10 + + # # Move active window to a workspace with mainMod + SHIFT + [0-9] + # bind = $mainMod SHIFT, 1, movetoworkspace, 1 + # bind = $mainMod SHIFT, 2, movetoworkspace, 2 + # bind = $mainMod SHIFT, 3, movetoworkspace, 3 + # bind = $mainMod SHIFT, 4, movetoworkspace, 4 + # bind = $mainMod SHIFT, 5, movetoworkspace, 5 + # bind = $mainMod SHIFT, 6, movetoworkspace, 6 + # bind = $mainMod SHIFT, 7, movetoworkspace, 7 + # bind = $mainMod SHIFT, 8, movetoworkspace, 8 + # bind = $mainMod SHIFT, 9, movetoworkspace, 9 + # bind = $mainMod SHIFT, 0, movetoworkspace, 10 + # bind = $mainMod, Print, exec, grim -o /home/speccon18/Pictures/$(date +'%s_grim.png') -g "$(slurp)" -t png + # # Startup Runners + # exec-once=systemctl --user start waybar.service + # exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + # exec-once=mako + # exec-once = swww init + # monitor=,highres,auto,1 + # ''; + # }; + # options.speccon18.home_manager.rofi.enable = lib.mkEnableOption "enable specs custom rofi config for hyprland"; + # config = lib.mkIf config.speccon18.home_manager.rofi.enable { + # programs.rofi = { + # enable = true; + # theme = "android_notification"; + # location = "top-left"; + # }; + # }; + }; +} diff --git a/nixosModules/desktop_environments/tuigreet.nix b/modules/system/desktop-environments/tuigreet.nix similarity index 92% rename from nixosModules/desktop_environments/tuigreet.nix rename to modules/system/desktop-environments/tuigreet.nix index 04119af..11b6fd2 100644 --- a/nixosModules/desktop_environments/tuigreet.nix +++ b/modules/system/desktop-environments/tuigreet.nix @@ -2,10 +2,10 @@ let inherit (lib) mkEnableOption mkOption optionalString mkIf types; dmcfg = config.services.xserver.displayManager; - cfg = config.speccon18.desktop.displayManager.tuigreet; + cfg = config.speccon18.desktop.tuigreet; gduser = config.services.greetd.settings.default_session.user; in { - options.speccon18.desktop.displayManager.tuigreet = { + options.speccon18.desktop.tuigreet = { enable = mkEnableOption "enables tuigreet"; args = mkOption { default = "--time --asterisks --remember -s ${dmcfg.sessionData.desktops}/share/wayland-sessions:${dmcfg.sessionData.desktops}/share/xsessions"; @@ -42,4 +42,4 @@ in { ]; }; }; -} \ No newline at end of file +} diff --git a/nixosModules/services/default.nix b/modules/system/services/default.nix similarity index 97% rename from nixosModules/services/default.nix rename to modules/system/services/default.nix index 3e33273..c9c550f 100644 --- a/nixosModules/services/default.nix +++ b/modules/system/services/default.nix @@ -3,7 +3,7 @@ ./tailscale.nix ./pipewire.nix ]; - + speccon18.tailscale.enable = true; speccon18.sound.pipewire.enable = true; } diff --git a/nixosModules/services/pipewire.nix b/modules/system/services/pipewire.nix similarity index 99% rename from nixosModules/services/pipewire.nix rename to modules/system/services/pipewire.nix index dd5b4d4..c8dbe57 100644 --- a/nixosModules/services/pipewire.nix +++ b/modules/system/services/pipewire.nix @@ -2,7 +2,7 @@ {pkgs,config,lib, ...}: { options.speccon18.sound.pipewire.enable = lib.mkEnableOption "enable pipewire with jack integrations"; - + config = lib.mkIf config.speccon18.sound.pipewire.enable { environment.systemPackages = with pkgs; [ pipewire diff --git a/nixosModules/services/tailscale.nix b/modules/system/services/tailscale.nix similarity index 98% rename from nixosModules/services/tailscale.nix rename to modules/system/services/tailscale.nix index 36841db..17695dc 100644 --- a/nixosModules/services/tailscale.nix +++ b/modules/system/services/tailscale.nix @@ -1,7 +1,7 @@ { pkgs, config, lib, ... }: { - + options.speccon18.tailscale.enable = lib.mkEnableOption "enables the tailscale service and sets the package to use"; - + config = lib.mkIf config.speccon18.tailscale.enable { # make the tailscale command usable to users environment.systemPackages = with pkgs;[ diff --git a/nixosModules/default.nix b/nixosModules/default.nix deleted file mode 100644 index 4098652..0000000 --- a/nixosModules/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{pkgs, lib, ... }: { - imports = [ - ./users/default.nix - ./services/default.nix - ./desktop_environments/default.nix - ]; -} diff --git a/nixosModules/desktop_environments/budgie.nix b/nixosModules/desktop_environments/budgie.nix deleted file mode 100644 index b1dfa4b..0000000 --- a/nixosModules/desktop_environments/budgie.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ config, pkgs, lib, ...}: -{ - options.speccon18.desktop.budgie.enable = lib.mkEnableOption "enables specs custom budgie setup"; - - config = lib.mkIf config.speccon18.desktop.budgie.enable { - services.xserver = { - enable = true; - desktopManager.budgie.enable = true; - displayManager.lightdm.enable = true; - }; - }; -} diff --git a/nixosModules/desktop_environments/hyprland.nix b/nixosModules/desktop_environments/hyprland.nix deleted file mode 100644 index 2ddd054..0000000 --- a/nixosModules/desktop_environments/hyprland.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ config, pkgs, lib, ...}: -{ - options.speccon18.desktop.hyprland.enable = lib.mkEnableOption "enables specs custom hyprland setup"; - config = lib.mkIf config.speccon18.desktop.hyprland.enable { - programs.hyprland = { - enable = true; - nvidiaPatches = true; - xwayland.enable = true; - }; - environment = { - systemPackages = with pkgs; [ - # libsForQt5.polkit-kde-agent - libsForQt5.qt5.qtwayland - qt6.full - qt6.qtwayland - waybar - swww - pw-volume - rofi-wayland - libnotify - mako - hyprland - font-awesome - brightnessctl - grim - slurp - wl-clipboard - ]; - sessionVariables = { - #Enable Wayland - WLR_NO_HARDWARE_CURSORS = "1"; - NIXOS_OZONE_WL = "1"; - MOZ_ENABLE_WAYLAND = "1"; - GTK_USE_PORTAL = "1"; - NIXOS_XDG_OPEN_USE_PORTAL = "1"; - SDL_VIDEODRIVER = "wayland"; - - # XDG_Config - XDG_CURRENT_DESKTOP = "Hyprland"; - XDG_SESSION_DESKTOP = "Hyprland"; - XDG_SESSION_TYPE = "wayland"; - XDG_CACHE_HOME = "\${HOME}/.cache"; - XDG_CONFIG_HOME = "\${HOME}/.config"; - XDG_BIN_HOME = "\${HOME}/.local/bin"; - XDG_DATA_HOME = "\${HOME}/.local/share"; - - #Default Applications - BROWSER = "firefox"; - TERMINAL = "alacritty"; - }; - }; - xdg.portal = { - enable = true; - extraPortals = [ - pkgs.xdg-desktop-portal-gtk - pkgs.xdg-desktop-portal-hyprland - ]; - }; - hardware = { - opengl.enable = true; - nvidia.modesetting.enable = true; - }; - wayland.windowManager.hyprland = { - # systemdIntegration = true; - enable = true; - extraConfig = '' - $mainMod = SUPER - # Application Lauch Keybinds - bind = $mainMod, Return, exec, alacritty - bind = $mainMod, W, exec, firefox - bind = $mainMod, R, exec, rofi -show drun - - # Switch workspaces with mainMod + [0-9] - bind = $mainMod, 1, workspace, 1 - bind = $mainMod, 2, workspace, 2 - bind = $mainMod, 3, workspace, 3 - bind = $mainMod, 4, workspace, 4 - bind = $mainMod, 5, workspace, 5 - bind = $mainMod, 6, workspace, 6 - bind = $mainMod, 7, workspace, 7 - bind = $mainMod, 8, workspace, 8 - bind = $mainMod, 9, workspace, 9 - bind = $mainMod, 0, workspace, 10 - - # Move active window to a workspace with mainMod + SHIFT + [0-9] - bind = $mainMod SHIFT, 1, movetoworkspace, 1 - bind = $mainMod SHIFT, 2, movetoworkspace, 2 - bind = $mainMod SHIFT, 3, movetoworkspace, 3 - bind = $mainMod SHIFT, 4, movetoworkspace, 4 - bind = $mainMod SHIFT, 5, movetoworkspace, 5 - bind = $mainMod SHIFT, 6, movetoworkspace, 6 - bind = $mainMod SHIFT, 7, movetoworkspace, 7 - bind = $mainMod SHIFT, 8, movetoworkspace, 8 - bind = $mainMod SHIFT, 9, movetoworkspace, 9 - bind = $mainMod SHIFT, 0, movetoworkspace, 10 - - bind = $mainMod, Print, exec, grim -o /home/speccon18/Pictures/$(date +'%s_grim.png') -g "$(slurp)" -t png - - # Startup Runners - exec-once=systemctl --user start waybar.service - exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP - exec-once=mako - exec-once = swww init - monitor=,highres,auto,1 - ''; - }; - }; -} diff --git a/nixosModules/home_manager/default.nix b/nixosModules/home_manager/default.nix deleted file mode 100644 index ff8f90a..0000000 --- a/nixosModules/home_manager/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{pkgs,config,...}:{ - imports = [ - ./zsh.nix - ./alacritty.nix - ./direnv.nix - ./git.nix - ./helix.nix - ./ncspot.nix - ./rofi.nix - ./starship.nix - ./syncthing.nix - ./waybar.nix - ./zellij.nix - ./zoxide.nix - ]; - speccon18.home_manager.home-manager.enable = true; - speccon18.home_manager.zsh.enable = true; - speccon18.home_manager.alacritty.enable = false; - speccon18.home_manager.direnv.enable = true; - speccon18.home_manager.git.enable = true; - speccon18.home_manager.helix.enable = true; - speccon18.home_manager.ncspot.enable = true; - speccon18.home_manager.rofi.enable = false; - speccon18.home_manager.starship.enable = true; - speccon18.home_manager.syncthing.enable = false; - speccon18.home_manager.waybar.enable = false; - speccon18.home_manager.zellij.enable = true; - speccon18.home_manager.zoxide.enable = true; -} diff --git a/nixosModules/home_manager/direnv.nix b/nixosModules/home_manager/direnv.nix deleted file mode 100644 index fba0487..0000000 --- a/nixosModules/home_manager/direnv.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, config, lib, ...}: -{ - options.speccon18.home_manager.direnv.enable = lib.mkEnableOption "enables direnv with zsh integration"; - config = lib.mkIf config.speccon18.home_manager.direnv.enable { - programs.direnv = { - enable = true; - enableZshIntegration = lib.mkDefault true; - }; - }; -} diff --git a/nixosModules/home_manager/helix.nix b/nixosModules/home_manager/helix.nix deleted file mode 100644 index 347d7f9..0000000 --- a/nixosModules/home_manager/helix.nix +++ /dev/null @@ -1,146 +0,0 @@ -{ pkgs, config, lib, ...}: -{ - options.speccon18.home_manager.helix.enable = lib.mkEnableOption "enables specs custom helix configuration"; - config = lib.mkIf config.speccon18.home_manager.helix.enable { - home.packages = with pkgs; [ - nodePackages_latest.yaml-language-server - nodePackages_latest.bash-language-server - nodePackages_latest.vscode-langservers-extracted - nodePackages_latest.dockerfile-language-server-nodejs - nodePackages_latest.typescript - nodePackages_latest.typescript-language-server - nodePackages_latest.svelte-language-server - nodePackages_latest.vls - python311Packages.python-lsp-server - rnix-lsp - rust-analyzer - taplo - ]; - programs.helix = { - enable = true; - settings = { - theme = "monokai_pro_octagon"; - editor = { - line-number = "relative"; - shell = ["zsh" "-c"]; - completion-trigger-len = 0; - scroll-lines = 1; - scrolloff = 5; - cursorline = true; - cursor-shape = { - normal = "block"; - insert = "bar"; - select = "underline"; - }; - color-modes = true; - indent-guides.render = true; - file-picker.hidden = false; - auto-pairs = true; - lsp = { - enable = true; - display-messages = true; - auto-signature-help = true; - display-signature-help-docs = true; - snippets = true; - goto-reference-include-declaration = true; - }; - statusline = { - mode = { - normal = "NORMAL"; - insert = "INSERT"; - select = "SELECT"; - }; - left = [ "mode" "separator" "spinner" "separator" "file-name" ]; - right = [ "diagnostics" "position" "file-encoding" ]; - }; - }; - - }; - themes = { - monokai_pro_octagon = let - red = "#ff657a"; - orange = "#ff9b5e"; - yellow = "#ffd76d"; - green = "#bad761"; - blue = "#9cd1bb"; - purple = "#c39ac9"; - base0 = "#161821"; - base1 = "#1e1f2b"; - base2 = "#282a3a"; - base3 = "#3a3d4b"; - base4 = "#535763"; - base5 = "#696d77"; - base6 = "#767b81"; - base7 = "#b2b9bd"; - base8 = "#eaf2f1"; - base8x0c = "#303342"; - in { - "ui.linenr.selected" = { bg = base3; }; - "ui.text.focus" = { fg = yellow; modifiers = ["bold"]; }; - "ui.menu" = { fg = base8; bg = base3; }; - "ui.menu.selected" = { fg = base2; bg = yellow; }; - "ui.virtual.whitespace" = base5; - "ui.virtual.ruler" = { bg = base1; }; - "info" = base8; - "hint" = base8; - "ui.background" = {}; - "ui.statusline.inactive" = { fg = base8; bg = base8x0c; }; - "ui.statusline" = { fg = base8; bg = base4; }; - "ui.statusline.normal" = { fg = base4; bg = blue; }; - "ui.statusline.insert" = { fg = base4; bg = green; }; - "ui.statusline.select" = { fg = base4; bg = purple; }; - "ui.popup" = { bg = base3; }; - "ui.window" = { bg = base3; }; - "ui.help" = { fg = base8; bg = base3; }; - "ui.selection" = { bg = base4; }; - "ui.cursor.match" = { bg = base4; }; - "ui.cursorline" = { bg = base1; }; - "comment" = { fg = base5; modifiers = ["italic"]; }; - "ui.linenr" = { fg = base5; }; - "ui.cursor.primary" = { fg = base7; modifiers = ["reversed"]; }; - "attribute" = blue; - "variable" = base8; - "constant" = orange; - "variable.builtin" = red; - "constant.builtin" = red; - "namespace" = base8; - "ui.text" = { fg = base8; }; - "punctuation" = base6; - "type" = green; - "type.builtin" = { fg = red; }; - "label" = base8; - "constructor" = blue; - "function" = green; - "function.macro" = { fg = blue; }; - "function.builtin" = { fg = "cyan"; }; - "operator" = red; - "variable.other.member" = base8; - "keyword" = { fg = red; }; - "keyword.directive" = blue; - "variable.parameter" = "#f59762"; - "error" = red; - "special" = "#f59762"; - "module" = "#f59762"; - "warning" = "orange"; - "constant.character.escape" = { fg = base8; }; - "string" = yellow; - "constant.numeric" = purple; - "diff.plus" = green; - "diff.delta" = "orange"; - "diff.minus" = red; - "diagnostic.warning" = { underline = { color = "orange"; style = "curl"; }; }; - "diagnostic.error" = { underline = { color = red; style = "curl"; }; }; - "diagnostic.info" = { underline = { color = base8; style = "curl"; }; }; - "diagnostic.hint" = { underline = { color = base8; style = "curl"; }; }; - "markup.heading" = green; - "markup.bold" = { fg = "orange"; modifiers = ["bold"]; }; - "markup.italic" = { fg = "orange"; modifiers = ["italic"]; }; - "markup.strikethrough" = { modifiers = ["crossed_out"]; }; - "markup.link.url" = { fg = "orange"; modifiers = ["underlined"]; }; - "markup.link.text" = yellow; - "markup.quote" = green; - }; - }; - }; - }; -} diff --git a/nixosModules/home_manager/home-mananger.nix b/nixosModules/home_manager/home-mananger.nix deleted file mode 100644 index ab77017..0000000 --- a/nixosModules/home_manager/home-mananger.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, config, lib, ...}: -{ - options.speccon18.home_manager.home-manager.enable = lib.mkEnableOption "enable home manager"; - config = lib.mkIf config.speccon18.home_manager.home-manager.enable = true { - programs.home-manager = { - enable = true; - }; - }; -} diff --git a/nixosModules/home_manager/ncspot.nix b/nixosModules/home_manager/ncspot.nix deleted file mode 100644 index 54821bd..0000000 --- a/nixosModules/home_manager/ncspot.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, config, lib, ...}: -{ - options.speccon18.home_manager.ncspot.enable = lib.mkEnableOption "enable ncspot"; - config = lib.mkIf config.speccon18.home_manager.ncspot.enable { - programs.ncspot = { - enable = true; - package = pkgs.ncspot; - }; - }; -} diff --git a/nixosModules/home_manager/rofi.nix b/nixosModules/home_manager/rofi.nix deleted file mode 100644 index 5ba4c0d..0000000 --- a/nixosModules/home_manager/rofi.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ pkgs, config, lib, ...}: -{ - options.speccon18.home_manager.rofi.enable = lib.mkEnableOption "enable specs custom rofi config for hyprland"; - config = lib.mkIf config.speccon18.home_manager.rofi.enable { - programs.rofi = { - enable = true; - theme = "android_notification"; - location = "top-left"; - }; - }; -} diff --git a/nixosModules/home_manager/starship.nix b/nixosModules/home_manager/starship.nix deleted file mode 100644 index 63835d6..0000000 --- a/nixosModules/home_manager/starship.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, config, lib, ...}: -{ - options.speccon18.home_manager.enable = lib.mkEnableOption "enables specs custom starship config"; - config = lib.mkIf config.speccon18.home_manager.enable { - programs.starship = { - enable = true; - enableZshIntegration = true; - }; - }; -} \ No newline at end of file diff --git a/nixosModules/home_manager/syncthing.nix b/nixosModules/home_manager/syncthing.nix deleted file mode 100644 index cf9fc3e..0000000 --- a/nixosModules/home_manager/syncthing.nix +++ /dev/null @@ -1,10 +0,0 @@ -{config, lib, pkgs, modulesPath, ... }: -{ - options.speccon18.home_manager.syncthing.enable = lib.mkEnableOption "enable syncthing"; - config = lib.mkIf config.speccon18.home_manager.syncthing.enable { - services.syncthing = { - enable = true; - tray.enable = false; - }; - }; -} \ No newline at end of file diff --git a/nixosModules/home_manager/zellij.nix b/nixosModules/home_manager/zellij.nix deleted file mode 100644 index a240179..0000000 --- a/nixosModules/home_manager/zellij.nix +++ /dev/null @@ -1,10 +0,0 @@ -{pkgs,config,lib,...}: -{ - options.speccon18.home_manager.zellij.enable = lib.mkEnableOption "enable zellij"; - config = lib.mkIf config.speccon18.home_manager.zellij.enable { - programs.zellij = { - enable = true; - package = pkgs.zellij; - }; - }; -} \ No newline at end of file diff --git a/nixosModules/home_manager/zsh.nix b/nixosModules/home_manager/zsh.nix deleted file mode 100644 index 8f22847..0000000 --- a/nixosModules/home_manager/zsh.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ pkgs, config, lib, ...}: -{ - options.speccon18.home_manager.zsh.enable = lib.mkEnableOption "enables specs zsh config"; - config = lib.mkIf config.speccon18.home_manager.zsh.enable { - programs.zsh = { - enable = lib.mkDefault true; - dotDir = ".config/zsh"; - history = { - path = "$ZDOTDIR/.zsh_history"; - save = 10000000; - }; - enableAutosuggestions = lib.mkDefault true; - enableCompletion = lib.mkDefault true; - syntaxHighlighting.enable = lib.mkDefault true; - shellAliases = { - ls = "eza -l"; - lsa = "eza -al"; - grep = "rg"; - osrb = "sudo nixos-rebuild $1 --flake ~/code/nixos-config/#katana"; - }; - localVariables = { - EDITOR="hx"; - }; - }; - }; -} \ No newline at end of file diff --git a/nixosModules/users/default.nix b/nixosModules/users/default.nix deleted file mode 100644 index ff106b8..0000000 --- a/nixosModules/users/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{pkgs, lib, ...}: { - imports = [ - ./speccon18.nix - ]; - speccon18.enable = true; - speccon18.home_manager.enable = true; -} diff --git a/nixosModules/users/speccon18.nix b/nixosModules/users/speccon18.nix deleted file mode 100644 index 894a0fd..0000000 --- a/nixosModules/users/speccon18.nix +++ /dev/null @@ -1,48 +0,0 @@ -{pkgs, lib, config, ... }: { - - #Create new nixos options - options = { - speccon18.enable = lib.mkEnableOption "enables the speccon18 administrator user"; - speccon18.home_manager.enable = lib.mkEnableOption "enables home-manager support for the speccon18 administrator user"; - }; - - #Declare already defined nixos options and enable if the above mkEnable options parameter is ture - config = lib.mkIf config.speccon18.enable { - programs.zsh.enable = true; - users.users.speccon18 = { - shell = pkgs.zsh; - isNormalUser = true; - initialHashedPassword = "$y$j9T$RdLBHOvUpb17egl0d16LT/$3Y2RD/tT1IZ0nkfAR13pp3IzBjvKLRgGpDPLobUeO23"; - openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIrZpH5QV62dtTb2yx5I3PF2lJyNpPkV57pDlo6xawID" ]; - description = "Steven Carpenter"; - extraGroups = [ "wheel" ]; - }; - home = lib.mkIf config.speccon18.home_manager.enable { - username = "speccon18"; - homeDirectory = "/home/speccon18"; - - # This value determines the Home Manager release that your - # configuration is compatible with. This helps avoid breakage - # when a new Home Manager release introduces backwards - # incompatible changes. - # - # You can update Home Manager without changing this value. See - # the Home Manager release notes for a list of state version - # changes in each release. - stateVersion = "22.11"; - packages = with pkgs; [ - freecad - calibre - bitwarden - firefox - discord - gimp - obsidian - neofetch - vlc - remmina - ]; - - }; - }; -} diff --git a/todo.md b/todo.md deleted file mode 100644 index e69de29..0000000 diff --git a/users/speccon18/default.nix b/users/speccon18/default.nix new file mode 100644 index 0000000..30df695 --- /dev/null +++ b/users/speccon18/default.nix @@ -0,0 +1,14 @@ +{ config, pkgs, lib, ... }: +{ + programs.zsh.enable = true; + users.users.speccon18 = { + shell = pkgs.zsh; + isNormalUser = true; + initialHashedPassword = "$y$j9T$RdLBHOvUpb17egl0d16LT/$3Y2RD/tT1IZ0nkfAR13pp3IzBjvKLRgGpDPLobUeO23"; + openssh.authorizedKeys.keys = []; + description = "Steven Carpenter"; + extraGroups = [ + "wheel" + ]; + }; +}