From f3c53ca33b583a3244cdea26b147da6d77c847b0 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Sat, 24 Aug 2024 01:46:53 -0500 Subject: [PATCH] idk man --- flake.lock | 603 +++++++----------- flake.nix | 50 +- hosts/desktop/configuration.nix | 31 + hosts/desktop/home.nix | 1 + hosts/desktop/hyprland/config.nix | 1 + .../desktop/hyprland/config/hypr/default.nix | 10 +- .../hyprland/config/waybar/default.nix | 358 ++++++----- .../hyprland/config/waybar/macchiato.css | 26 + .../config/waybar/scripts/waybar-updates.py | 5 +- .../config/waybar/scripts/waybar-wttr.py | 326 ++++++++-- .../desktop/hyprland/config/waybar/waybar.css | 166 +++++ hosts/desktop/hyprland/default.nix | 3 + hosts/desktop/hyprland/environment.nix | 1 + hosts/nas/boot.nix | 1 + hosts/nas/configuration.nix | 24 + hosts/nas/home.nix | 2 + hosts/nas/sensors.txt | 36 ++ hosts/nas/services.nix | 94 +-- share/impermanence/default.nix | 18 +- 19 files changed, 1051 insertions(+), 705 deletions(-) create mode 100644 hosts/desktop/hyprland/config/waybar/macchiato.css create mode 100644 hosts/desktop/hyprland/config/waybar/waybar.css create mode 100644 hosts/nas/sensors.txt diff --git a/flake.lock b/flake.lock index 539a241..657946f 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ "poetry2nix": "poetry2nix" }, "locked": { - "lastModified": 1722879849, - "narHash": "sha256-Hg1I6vmrxWz6RrVROXn1RDCPniOJx93QQg99x/wSkjY=", + "lastModified": 1724362025, + "narHash": "sha256-/fzIU/Hjgksy7A4ji09zK6cH7ATQV5rAEYb/wgBw8x8=", "owner": "nix-community", "repo": "authentik-nix", - "rev": "80fc87361809f78b8a8cd7e57a14b66a726379ef", + "rev": "39cf62b92149800dd2a436f8b18acd471c9180dd", "type": "github" }, "original": { @@ -27,16 +27,16 @@ "authentik-src": { "flake": false, "locked": { - "lastModified": 1722875733, - "narHash": "sha256-LPNcvKiVrwPwc3G/j0a7KoMKAMScbzui0C3IgWXP+g4=", + "lastModified": 1724339964, + "narHash": "sha256-QwK/auMLCJEHHtyexFnO+adCq/u0fezHQ90fXW9J4c4=", "owner": "goauthentik", "repo": "authentik", - "rev": "8f207c75046d722c17dee2bcf65fa386b06f5b9a", + "rev": "8a0b31b9227ca33b96c5448f185419f17090ed38", "type": "github" }, "original": { "owner": "goauthentik", - "ref": "version/2024.6.3", + "ref": "version/2024.6.4", "repo": "authentik", "type": "github" } @@ -53,11 +53,11 @@ "yafas": "yafas" }, "locked": { - "lastModified": 1724260845, - "narHash": "sha256-ufNcCna8sact/lkKNWNl8HwNMrKq42KN+izK/vPvxhk=", + "lastModified": 1724418754, + "narHash": "sha256-1pSQbkskj4pl1WxwByJ3pY6d35xWohlNo8pSvomxq+o=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "62ad1fce12be4bca6133c14a376cb36a3323fc85", + "rev": "61d7effc892f676cd8b07baa9a35df511d02215e", "type": "github" }, "original": { @@ -84,16 +84,19 @@ "cosmic": { "inputs": { "flake-compat": "flake-compat_2", - "nixpkgs": "nixpkgs_3", + "nix-update": "nix-update", + "nixpkgs": [ + "nixpkgs-unstable" + ], "nixpkgs-stable": "nixpkgs-stable", "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1724290496, - "narHash": "sha256-tiXzvSFSBwAC2HtbBDePZWs112K9dynlfQOHzU7XyHE=", + "lastModified": 1724431223, + "narHash": "sha256-m8K3mXCi6VypEMI3eirtChsaXBSJvKsoMwOXpuMqfZ4=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "0175cd90ce3ee1a8fd30a30354be105f82688f66", + "rev": "f4ecea2443e7905f01d06b9a00c3219c0c7799ff", "type": "github" }, "original": { @@ -123,47 +126,6 @@ "type": "github" } }, - "crane_2": { - "flake": false, - "locked": { - "lastModified": 1699217310, - "narHash": "sha256-xpW3VFUG7yE6UE6Wl0dhqencuENSkV7qpnpe9I8VbPw=", - "owner": "ipetkov", - "repo": "crane", - "rev": "d535642bbe6f377077f7c23f0febb78b1463f449", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "ref": "v0.15.0", - "repo": "crane", - "type": "github" - } - }, - "dream2nix": { - "inputs": { - "nixpkgs": [ - "nix-inspect", - "nci", - "nixpkgs" - ], - "purescript-overlay": "purescript-overlay", - "pyproject-nix": "pyproject-nix" - }, - "locked": { - "lastModified": 1709959559, - "narHash": "sha256-Gb+tUU+clGKVBwiznTQf0emZZ+heALqoVwUgI0O13L8=", - "owner": "nix-community", - "repo": "dream2nix", - "rev": "42838c590971da17a4b6483962707b7fb7b8b9a7", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "dream2nix", - "type": "github" - } - }, "fenix": { "inputs": { "nixpkgs": [ @@ -173,11 +135,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1724221791, - "narHash": "sha256-mKX67QPnUybOopVph/LhOV1G/H4EvPxDIfSmbufrVdA=", + "lastModified": 1724308100, + "narHash": "sha256-1lP786QhspMdDNJGv2qep27BM9Dnce+7scwp1e49rKs=", "owner": "nix-community", "repo": "fenix", - "rev": "e88b38a5a3834e039d413a88f8150a75ef6453ef", + "rev": "37d8c6b53394b9ac18af2e045bb92aaf6e412881", "type": "github" }, "original": { @@ -235,12 +197,28 @@ } }, "flake-compat_4": { + "flake": false, "locked": { - "lastModified": 1688025799, - "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_5": { + "locked": { + "lastModified": 1717312683, + "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", "owner": "nix-community", "repo": "flake-compat", - "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", + "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", "type": "github" }, "original": { @@ -254,11 +232,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1719745305, - "narHash": "sha256-xwgjVUpqSviudEkpQnioeez1Uo2wzrsMaJKJClh+Bls=", + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c3c5ecc05edc7dafba779c6c1a61cd08ac6583e9", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", "type": "github" }, "original": { @@ -268,6 +246,28 @@ } }, "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "cosmic", + "nix-update", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "lanzaboote", @@ -338,7 +338,49 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_3", + "gitignore": "gitignore", + "nixpkgs": "nixpkgs_3", + "nixpkgs-stable": "nixpkgs-stable_2" + }, + "locked": { + "lastModified": 1724440431, + "narHash": "sha256-9etXEOUtzeMgqg1u0wp+EdwG7RpmrAZ2yX516bMj2aE=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "c8a54057aae480c56e28ef3e14e4960628ac495b", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { + "inputs": { + "nixpkgs": [ + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { "inputs": { "nixpkgs": [ "lanzaboote", @@ -381,27 +423,6 @@ "type": "github" } }, - "home-manager-stable": { - "inputs": { - "nixpkgs": [ - "nixpkgs-stable" - ] - }, - "locked": { - "lastModified": 1720042825, - "narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-24.05", - "repo": "home-manager", - "type": "github" - } - }, "home-manager_2": { "inputs": { "nixpkgs": [ @@ -409,11 +430,11 @@ ] }, "locked": { - "lastModified": 1723986931, - "narHash": "sha256-Fy+KEvDQ+Hc8lJAV3t6leXhZJ2ncU5/esxkgt3b8DEY=", + "lastModified": 1724422166, + "narHash": "sha256-l9zifWrZe6sRTwl/Padz+a6zwGeE9eaU+0PFWtUQl2w=", "owner": "nix-community", "repo": "home-manager", - "rev": "2598861031b78aadb4da7269df7ca9ddfc3e1671", + "rev": "5dc25356567119127f046b347c3060a8dd607365", "type": "github" }, "original": { @@ -446,11 +467,11 @@ ] }, "locked": { - "lastModified": 1724128906, - "narHash": "sha256-junn8oz6yG1akc5R5b8LjcAl1epKJkAzwPlG57bB3E0=", + "lastModified": 1724304322, + "narHash": "sha256-/nrlMDubg9oG2VNANRBxsas5RbcJtB6IIDPZC3yHLW8=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "d9947d55383ece6ac396820112d34734cf47e2bb", + "rev": "924a18ea8df89a39166dd202f3e73cd022825768", "type": "github" }, "original": { @@ -462,8 +483,8 @@ "lanzaboote": { "inputs": { "crane": "crane", - "flake-compat": "flake-compat_3", - "flake-parts": "flake-parts_2", + "flake-compat": "flake-compat_4", + "flake-parts": "flake-parts_3", "flake-utils": "flake-utils_2", "nixpkgs": [ "nixpkgs-unstable" @@ -486,22 +507,6 @@ "type": "github" } }, - "mk-naked-shell": { - "flake": false, - "locked": { - "lastModified": 1681286841, - "narHash": "sha256-3XlJrwlR0nBiREnuogoa5i1b4+w/XPe0z8bbrJASw0g=", - "owner": "yusdacra", - "repo": "mk-naked-shell", - "rev": "7612f828dd6f22b7fb332cc69440e839d7ffe6bd", - "type": "github" - }, - "original": { - "owner": "yusdacra", - "repo": "mk-naked-shell", - "type": "github" - } - }, "napalm": { "inputs": { "flake-utils": [ @@ -527,33 +532,6 @@ "type": "github" } }, - "nci": { - "inputs": { - "crane": "crane_2", - "dream2nix": "dream2nix", - "mk-naked-shell": "mk-naked-shell", - "nixpkgs": [ - "nix-inspect", - "nixpkgs" - ], - "parts": "parts", - "rust-overlay": "rust-overlay_3", - "treefmt": "treefmt" - }, - "locked": { - "lastModified": 1710137478, - "narHash": "sha256-+hbUWY1PEItyx3CBOGsHlJEDO2wRY2N1mpBhiLBblck=", - "owner": "yusdacra", - "repo": "nix-cargo-integration", - "rev": "f3cc8751427e16ec48c0467357b3f3979a53ae9c", - "type": "github" - }, - "original": { - "owner": "yusdacra", - "repo": "nix-cargo-integration", - "type": "github" - } - }, "nix-darwin": { "inputs": { "nixpkgs": "nixpkgs_4" @@ -617,38 +595,41 @@ "type": "github" } }, - "nix-inspect": { + "nix-update": { "inputs": { - "nci": "nci", - "nixpkgs": "nixpkgs_5", - "parts": "parts_2" + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "cosmic", + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1717293583, - "narHash": "sha256-Upz+fnWJjzt5WokjO/iaiPbqiwSrqpWjrpcFOqQ4p0E=", - "owner": "bluskript", - "repo": "nix-inspect", - "rev": "c55921e1d1cf980ff6351273fde6cedd5d8fa320", + "lastModified": 1724271552, + "narHash": "sha256-xn0dC4M3mfItxP+s3/v3Hz/CSKp74VH/gMfufKxl9/4=", + "owner": "Mic92", + "repo": "nix-update", + "rev": "737121eccb67542e8c004c64da833fede2e80c64", "type": "github" }, "original": { - "owner": "bluskript", - "repo": "nix-inspect", + "owner": "Mic92", + "repo": "nix-update", "type": "github" } }, "nixos-apple-silicon": { "inputs": { - "flake-compat": "flake-compat_4", - "nixpkgs": "nixpkgs_6", - "rust-overlay": "rust-overlay_4" + "flake-compat": "flake-compat_5", + "nixpkgs": "nixpkgs_5", + "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1717784003, - "narHash": "sha256-EDhb+3uFVCnfsF8DSPd1F2Arza84vQvlzh/OPSUHUjc=", + "lastModified": 1724346840, + "narHash": "sha256-nLaw2AFhDdBmbuWICe983Pbiq+GyNMPJMpSLWV6vVZA=", "owner": "mjallen18", "repo": "nixos-apple-silicon", - "rev": "06fb62dd84841d1664a3a144d8877a956618401d", + "rev": "77b99b63b125d85693934c83b04e1797cbf7afe7", "type": "github" }, "original": { @@ -675,11 +656,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1720542800, - "narHash": "sha256-ZgnNHuKV6h2+fQ5LuqnUaqZey1Lqqt5dTUAiAnqH0QQ=", + "lastModified": 1724224976, + "narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "feb2849fdeb70028c70d73b848214b00d324a497", + "rev": "c374d94f1536013ca8e92341b540eba4c22f9c62", "type": "github" }, "original": { @@ -691,49 +672,17 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1717284937, - "narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=", + "lastModified": 1722555339, + "narHash": "sha256-uFf2QeW7eAHlYXuDktm9c25OxOyCoUOQmh5SZ9amE5Q=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" } }, "nixpkgs-stable": { - "locked": { - "lastModified": 1724098845, - "narHash": "sha256-D5HwjQw/02fuXbR4LCTo64koglP2j99hkDR79/3yLOE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "f1bad50880bae73ff2d82fafc22010b4fc097a9c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1710695816, - "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "614b4613980a522ba49f0d194531beddbb7220d3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_3": { "locked": { "lastModified": 1724242322, "narHash": "sha256-HMpK7hNjhEk4z5SFg5UtxEio9OWFocHdaQzCfW1pE7w=", @@ -749,6 +698,38 @@ "type": "github" } }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1720386169, + "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { + "locked": { + "lastModified": 1710695816, + "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "614b4613980a522ba49f0d194531beddbb7220d3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-stable_4": { "locked": { "lastModified": 1721524707, @@ -783,11 +764,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1723991338, - "narHash": "sha256-Grh5PF0+gootJfOJFenTTxDTYPidA3V28dqJ/WV7iis=", + "lastModified": 1724224976, + "narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8a3354191c0d7144db9756a74755672387b702ba", + "rev": "c374d94f1536013ca8e92341b540eba4c22f9c62", "type": "github" }, "original": { @@ -799,16 +780,16 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1723991338, - "narHash": "sha256-Grh5PF0+gootJfOJFenTTxDTYPidA3V28dqJ/WV7iis=", + "lastModified": 1719082008, + "narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8a3354191c0d7144db9756a74755672387b702ba", + "rev": "9693852a2070b398ee123a329e68f0dab5526681", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } @@ -829,11 +810,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1709961763, - "narHash": "sha256-6H95HGJHhEZtyYA3rIQpvamMKAGoa8Yh2rFV29QnuGw=", + "lastModified": 1724224976, + "narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34", + "rev": "c374d94f1536013ca8e92341b540eba4c22f9c62", "type": "github" }, "original": { @@ -844,22 +825,6 @@ } }, "nixpkgs_6": { - "locked": { - "lastModified": 1716293225, - "narHash": "sha256-pU9ViBVE3XYb70xZx+jK6SEVphvt7xMTbm6yDIF4xPs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "3eaeaeb6b1e08a016380c279f8846e0bd8808916", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "rev": "3eaeaeb6b1e08a016380c279f8846e0bd8808916", - "type": "github" - } - }, - "nixpkgs_7": { "locked": { "lastModified": 1721466660, "narHash": "sha256-pFSxgSZqZ3h+5Du0KvEL1ccDZBwu4zvOil1zzrPNb3c=", @@ -875,49 +840,6 @@ "type": "github" } }, - "parts": { - "inputs": { - "nixpkgs-lib": [ - "nix-inspect", - "nci", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709336216, - "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "parts_2": { - "inputs": { - "nixpkgs-lib": [ - "nix-inspect", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709336216, - "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "poetry2nix": { "inputs": { "flake-utils": [ @@ -933,11 +855,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1719549552, - "narHash": "sha256-efvBV+45uQA6r7aov48H6MhvKp1QUIyIX5gh9oueUzs=", + "lastModified": 1724208502, + "narHash": "sha256-TCRcEPSfgAw/t7kClmlr23s591N06mQCrhzlAO7cyFw=", "owner": "nix-community", "repo": "poetry2nix", - "rev": "4fd045cdb85f2a0173021a4717dc01d92d7ab2b2", + "rev": "884b66152b0c625b8220b570a31dc7acc36749a3", "type": "github" }, "original": { @@ -952,12 +874,12 @@ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore", + "gitignore": "gitignore_2", "nixpkgs": [ "lanzaboote", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_2" + "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { "lastModified": 1717664902, @@ -973,61 +895,18 @@ "type": "github" } }, - "purescript-overlay": { - "inputs": { - "nixpkgs": [ - "nix-inspect", - "nci", - "dream2nix", - "nixpkgs" - ], - "slimlock": "slimlock" - }, - "locked": { - "lastModified": 1696022621, - "narHash": "sha256-eMjFmsj2G1E0Q5XiibUNgFjTiSz0GxIeSSzzVdoN730=", - "owner": "thomashoneyman", - "repo": "purescript-overlay", - "rev": "047c7933abd6da8aa239904422e22d190ce55ead", - "type": "github" - }, - "original": { - "owner": "thomashoneyman", - "repo": "purescript-overlay", - "type": "github" - } - }, - "pyproject-nix": { - "flake": false, - "locked": { - "lastModified": 1702448246, - "narHash": "sha256-hFg5s/hoJFv7tDpiGvEvXP0UfFvFEDgTdyHIjDVHu1I=", - "owner": "davhau", - "repo": "pyproject.nix", - "rev": "5a06a2697b228c04dd2f35659b4b659ca74f7aeb", - "type": "github" - }, - "original": { - "owner": "davhau", - "ref": "dream2nix", - "repo": "pyproject.nix", - "type": "github" - } - }, "root": { "inputs": { "authentik-nix": "authentik-nix", "chaotic": "chaotic", "cosmic": "cosmic", + "git-hooks": "git-hooks", "home-manager": "home-manager_2", - "home-manager-stable": "home-manager-stable", "impermanence": "impermanence", "lanzaboote": "lanzaboote", "nix-darwin": "nix-darwin", - "nix-inspect": "nix-inspect", "nixos-apple-silicon": "nixos-apple-silicon", "nixos-hardware": "nixos-hardware", - "nixpkgs-stable": "nixpkgs-stable_3", "nixpkgs-unstable": "nixpkgs-unstable", "sops-nix": "sops-nix" } @@ -1057,11 +936,11 @@ ] }, "locked": { - "lastModified": 1724206841, - "narHash": "sha256-L8dKaX4T3k+TR2fEHCfGbH4UXdspovz/pj87iai9qmc=", + "lastModified": 1724293269, + "narHash": "sha256-x/XhOAszT/ejditCHUtGOjQcVg2AQhrC/QVew3i7kTI=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "45e98fbd62c32e5927e952d2833fa1ba4fb35a61", + "rev": "6dc6d34a3a217457d7044dcce32b6d537480a6a1", "type": "github" }, "original": { @@ -1098,11 +977,11 @@ "rust-overlay_3": { "flake": false, "locked": { - "lastModified": 1710123130, - "narHash": "sha256-EoGL/WSM1M2L099Q91mPKO/FRV2iu2ZLOEp3y5sLfiE=", + "lastModified": 1724293269, + "narHash": "sha256-x/XhOAszT/ejditCHUtGOjQcVg2AQhrC/QVew3i7kTI=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "73aca260afe5d41d3ebce932c8d896399c9d5174", + "rev": "6dc6d34a3a217457d7044dcce32b6d537480a6a1", "type": "github" }, "original": { @@ -1111,49 +990,9 @@ "type": "github" } }, - "rust-overlay_4": { - "flake": false, - "locked": { - "lastModified": 1686795910, - "narHash": "sha256-jDa40qRZ0GRQtP9EMZdf+uCbvzuLnJglTUI2JoHfWDc=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "5c2b97c0a9bc5217fc3dfb1555aae0fb756d99f9", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "slimlock": { - "inputs": { - "nixpkgs": [ - "nix-inspect", - "nci", - "dream2nix", - "purescript-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1688610262, - "narHash": "sha256-Wg0ViDotFWGWqKIQzyYCgayeH8s4U1OZcTiWTQYdAp4=", - "owner": "thomashoneyman", - "repo": "slimlock", - "rev": "b5c6cdcaf636ebbebd0a1f32520929394493f1a6", - "type": "github" - }, - "original": { - "owner": "thomashoneyman", - "repo": "slimlock", - "type": "github" - } - }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_6", "nixpkgs-stable": "nixpkgs-stable_4" }, "locked": { @@ -1229,28 +1068,6 @@ "type": "github" } }, - "treefmt": { - "inputs": { - "nixpkgs": [ - "nix-inspect", - "nci", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1710088047, - "narHash": "sha256-eSqKs6ZCsX9xJyNYLeMDMrxzIDsYtaWClfZCOp0ok6Y=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "720322c5352d7b7bd2cb3601a9176b0e91d1de7d", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -1260,11 +1077,33 @@ ] }, "locked": { - "lastModified": 1718522839, - "narHash": "sha256-ULzoKzEaBOiLRtjeY3YoGFJMwWSKRYOic6VNw2UyTls=", + "lastModified": 1719749022, + "narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "68eb1dc333ce82d0ab0c0357363ea17c31ea1f81", + "rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { + "inputs": { + "nixpkgs": [ + "cosmic", + "nix-update", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719887753, + "narHash": "sha256-p0B2r98UtZzRDM5miGRafL4h7TwGRC4DII+XXHDHqek=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "bdb6355009562d8f9313d9460c0d3860f525bc6c", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index bfe8870..d464afe 100644 --- a/flake.nix +++ b/flake.nix @@ -4,10 +4,6 @@ inputs = { # nixpgs nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; - nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.05"; - - # Nix Inspect - nix-inspect.url = "github:bluskript/nix-inspect"; # Authentik authentik-nix.url = "github:nix-community/authentik-nix"; @@ -19,11 +15,10 @@ impermanence.url = "github:nix-community/impermanence"; # Home Manager - home-manager.url = "github:nix-community/home-manager"; - home-manager.inputs.nixpkgs.follows = "nixpkgs-unstable"; - - home-manager-stable.url = "github:nix-community/home-manager/release-24.05"; - home-manager-stable.inputs.nixpkgs.follows = "nixpkgs-stable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; # Lanzaboote lanzaboote = { @@ -41,14 +36,18 @@ nixos-apple-silicon.url = "github:mjallen18/nixos-apple-silicon"; nix-darwin.url = "github:LnL7/nix-darwin"; - cosmic.url = "github:lilyinstarlight/nixos-cosmic"; + cosmic = { + url = "github:lilyinstarlight/nixos-cosmic"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; + + git-hooks.url = "github:cachix/git-hooks.nix"; }; outputs = { self, nixpkgs-unstable, - nixpkgs-stable, chaotic, lanzaboote, impermanence, @@ -56,14 +55,19 @@ nixos-hardware, nix-darwin, nixos-apple-silicon, - home-manager-stable, - nix-inspect, cosmic, authentik-nix, sops-nix, + git-hooks, }@inputs: let inherit (self) outputs; + supportedSystems = [ + "x86_64-linux" + "aarch64-linux" + "aarch64-darwin" + ]; + forAllSystems = nixpkgs-unstable.lib.genAttrs supportedSystems; in { overlays = import ./overlays { inherit inputs; }; @@ -90,7 +94,7 @@ specialisation.hyprland.configuration = { home-manager.users.matt = { home.sessionVariables = { - DUMBTEST="yaaaaaaas"; + DUMBTEST = "yaaaaaaas"; }; }; }; @@ -125,7 +129,7 @@ } authentik-nix.nixosModules.default - + sops-nix.nixosModules.sops nixos-hardware.nixosModules.common-pc @@ -187,5 +191,21 @@ # Set Git commit hash for darwin-version. system.configurationRevision = self.rev or self.dirtyRev or null; + + # checks = forAllSystems (system: { + # pre-commit-check = git-hooks.lib.${system}.run { + # src = ./.; + # hooks = { + # nixpkgs-fmt.enable = true; + # }; + # }; + # }); + + # devShells = forAllSystems (system: { + # default = nixpkgs-unstable.legacyPackages.${system}.mkShell { + # inherit (self.checks.${system}.pre-commit-check) shellHook; + # buildInputs = self.checks.${system}.pre-commit-check.enabledPackages; + # }; + # }); }; } diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 6f32c7b..dc6bb8b 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -219,6 +219,37 @@ in sessionVariables = lib.mkDefault { STEAM_FORCE_DESKTOPUI_SCALING = "1"; }; + etc."lact/config.yaml".text = '' + daemon: + log_level: info + admin_groups: + - wheel + - sudo + disable_clocks_cleanup: false + apply_settings_timer: 5 + gpus: + 1002:73BF-1002:0E3A-0000:03:00.0: + fan_control_enabled: true + fan_control_settings: + mode: curve + static_speed: 1.0 + temperature_key: edge + interval_ms: 500 + curve: + 30: 0.0 + 40: 0.2 + 50: 0.35 + 60: 0.5 + 70: 0.75 + 80: 1.0 + spindown_delay_ms: 0 + change_threshold: 0 + pmfw_options: {} + power_cap: 293.0 + performance_level: auto + voltage_offset: 0 + power_states: {} + ''; }; # Configure nixpkgs diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index 7666d02..00c9c7e 100644 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -95,6 +95,7 @@ in python312Packages.pytest python312Packages.pytest-cov python312Packages.pyaml + smile sops spotify ssh-to-pgp diff --git a/hosts/desktop/hyprland/config.nix b/hosts/desktop/hyprland/config.nix index ba441bf..ed222f6 100644 --- a/hosts/desktop/hyprland/config.nix +++ b/hosts/desktop/hyprland/config.nix @@ -6,6 +6,7 @@ in ".config/kitty/macchiato.conf".source = "${configDir}/kitty/macchiato.conf"; ".config/wlogout".source = "${configDir}/wlogout"; # ".config/waybar/scripts".source = "${configDir}/waybar/scripts"; + ".config/waybar/macchiato.css".source = "${configDir}/waybar/macchiato.css"; ".config/btop/themes/catppuccin_macchiato.theme".source = "${configDir}/btop/themes/catppuccin_macchiato.theme"; ".config/nwg-drawer".source = "${configDir}/nwg-drawer"; ".config/nwg-panel".source = "${configDir}/nwg-panel"; diff --git a/hosts/desktop/hyprland/config/hypr/default.nix b/hosts/desktop/hyprland/config/hypr/default.nix index 0d626a3..aa4cf16 100644 --- a/hosts/desktop/hyprland/config/hypr/default.nix +++ b/hosts/desktop/hyprland/config/hypr/default.nix @@ -30,7 +30,6 @@ bind = [ "$mod, Return, exec, kitty" "$mod, Q, killactive, " - "$mod, mouse:274, killactive, " "$mod, M, exec, wlogout --protocol layer-shell" "$mod, E, exec, nautilus" "$mod, V, togglefloating, " @@ -40,6 +39,10 @@ "$mod SHIFT, Q, exec, hyprlock" ", PRINT, exec, hyprshot -m region --clipboard-only" "$mod,F,exec,hyprctl dispatch fullscreen active" + "$mod SHIFT, E, exec, smile" + + "$mod, mouse:276, movecurrentworkspacetomonitor, DP-1" + "$mod, mouse:275, movecurrentworkspacetomonitor, DP-2" # alt-tab between workspaces on active monitor "ALT, Tab, workspace, m+1" @@ -90,7 +93,7 @@ "$mod, mouse:272, movewindow" "$mod, mouse:273, resizewindow" # middle mouse will grab a window, mod + middle mouse will close it - ", mouse:274, movewindow" + "$mod SHIFT, mouse:274, movewindow" ]; bindel = [ @@ -212,6 +215,7 @@ # "float, class:Remote Desktop Connection,title:Remote Desktop Connection" "float, class:Credential Manager UI Host,title:Windows Security" "float, title:^(Media viewer)$" + "float, class:^(it.mijorus.smile)$,title:^(Smile)$" # Picture in picture windows # "float, class:pavucontrol,title:pavucontrol" # ????? "float, title:^(Picture-in-Picture)$" @@ -263,6 +267,8 @@ exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = nwg-look -a + exec-once = nm-applet + exec-once = blueberry exec-once = [silent] firefox exec-once = [silent] vesktop exec-once = [silent] spotify diff --git a/hosts/desktop/hyprland/config/waybar/default.nix b/hosts/desktop/hyprland/config/waybar/default.nix index f90f2ff..de209cf 100644 --- a/hosts/desktop/hyprland/config/waybar/default.nix +++ b/hosts/desktop/hyprland/config/waybar/default.nix @@ -1,5 +1,6 @@ { # https://github.com/Alexays/Waybar/wiki/Module:-Hyprland + # https://www.nerdfonts.com/cheat-sheet programs.waybar = { enable = true; @@ -20,16 +21,18 @@ modules-right = [ "tray" "custom/updates" + "temperature" + "temperature#gpu" "keyboard-state#capslock" "keyboard-state#numlock" "pulseaudio" "pulseaudio#microphone" - "network" "clock" "custom/weather" ]; "hyprland/window" = { + separate-outputs = true; format = { }; }; @@ -38,7 +41,7 @@ all-outputs = true; on-click = "activate"; persistent_workspaces = { - "1" = [ ]; + "*" = 1; }; }; @@ -58,6 +61,39 @@ return-type = "json"; }; + temperature = { + hwmon-path = "/sys/class/hwmon/hwmon4/temp1_input"; + critical-threshold = 90; + format-critical = "{temperatureC}°C {icon}"; + format = "{temperatureC}°C {icon}"; + format-icons = [ + "" # fa-temperature-empty + "" # fa-temperature-quarter + "" # fa-temperature-half + "" # fa-temperature-three-quarters + "" # fa-temperature-full + "" # fa-temperature-high + ]; + tooltip-format = "CPU: {temperatureC}°C"; + }; + + "temperature#gpu" = { + hwmon-path = "/sys/class/hwmon/hwmon0/temp1_input"; + critical-threshold = 100; + format-critical = "{temperatureC}°C {icon}"; + format = "{temperatureC}°C {icon}"; + format-icons = [ + "" # fa-temperature-empty + "" # fa-temperature-quarter + "" # fa-temperature-half + "" # fa-temperature-three-quarters + "" # fa-temperature-full + "" # fa-temperature-high + ]; + on-click = "lact"; + tooltip-format = "GPU: {temperatureC}°C"; + }; + tray = { icon-size = 16; spacing = 10; @@ -78,13 +114,15 @@ on-scroll-down = "pamixer -d 5"; scroll-step = 5; format-icons = { - headphone = ""; - hands-free = ""; - headset = ""; + headphone = "󰋋"; + headphone-muted = "󰟎"; + hands-free = "󰋋"; + headset = "󰋋"; phone = ""; - portable = ""; + portable = "󰋋"; car = ""; default = [ + "" "" "" "" @@ -94,8 +132,8 @@ "pulseaudio#microphone" = { format = "{format_source}"; - format-source = "🎙{volume}%"; - format-source-muted = "🎙Muted"; + format-source = ""; + format-source-muted = ""; on-click = "pamixer --default-source -t"; on-click-right = "pavucontrol -t 2"; on-scroll-up = "pamixer --default-source -i 5"; @@ -103,34 +141,23 @@ scroll-step = 5; }; - network = { - interface = "wlp9s0"; - format = "{ifname}"; - format-wifi = "{essid} ({signalStrength}%) "; - format-ethernet = "{ifname} "; - format-disconnected = ""; # An empty format will hide the module. - tooltip-format = "{ifname}"; - tooltip-format-wifi = "{essid} ({signalStrength}%) "; - tooltip-format-ethernet = "{ifname} "; - tooltip-format-disconnected = "Disconnected"; - max-length = 50; - }; - "keyboard-state#capslock" = { capslock = true; - format = "{name} {icon}"; + icon-size = 20; + format = "{icon}"; format-icons = { - locked = ""; - unlocked = ""; + locked = "󰪛"; + unlocked = ""; }; }; "keyboard-state#numlock" = { numlock = true; - format = "{name} {icon}"; + icon-size = 30; + format = "{icon}"; format-icons = { - locked = ""; - unlocked = ""; + locked = "󰎣"; + unlocked = ""; }; }; }; @@ -138,164 +165,191 @@ # https://catppuccin.com/palette style = '' + @define-color rosewater #f4dbd6; + @define-color flamingo #f0c6c6; + @define-color pink #f5bde6; + @define-color mauve #c6a0f6; + @define-color red #ed8796; + @define-color maroon #ee99a0; + @define-color peach #f5a97f; + @define-color yellow #eed49f; + @define-color green #a6da95; + @define-color teal #8bd5ca; + @define-color sky #91d7e3; + @define-color sapphire #7dc4e4; + @define-color blue #8aadf4; + @define-color lavender #b7bdf8; + @define-color text #cad3f5; + @define-color subtext1 #b8c0e0; + @define-color subtext0 #a5adcb; + @define-color overlay2 #939ab7; + @define-color overlay1 #8087a2; + @define-color overlay0 #6e738d; + @define-color surface2 #5b6078; + @define-color surface1 #494d64; + @define-color surface0 #363a4f; + @define-color base #24273a; + @define-color mantle #1e2030; + @define-color crust #181926; + /*@import "macchiato.css";*/ + * { - border: none; - border-radius: 0; font-family: Jetbrains Mono Nerd Font, monospace; - font-weight: bold; font-size: 14px; min-height: 0; } - window#waybar { - background: rgba(21, 18, 27, 0); - color: #cdd6f4; - } - - tooltip { - background: #1e1e2e; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; - } - - #workspaces button { - padding: 5px; - color: #313244; - margin-right: 5px; - } - - #workspaces button.active { - color: #a6adc8; - } - - #workspaces button.focused { - color: #a6adc8; - background: #eba0ac; - border-radius: 10px; - } - - #workspaces button.urgent { - color: #11111b; - background: #a6e3a1; - border-radius: 10px; - } - - #workspaces button:hover { - background: #11111b; - color: #cdd6f4; - border-radius: 10px; - } - - #custom-updates, - #custom-caffeine, - #custom-weather, - #window, - #clock, - #battery, - #pulseaudio, - #network, - #workspaces, - #keyboard-state.numlock, - #keyboard-state.capslock, - #tray, - #backlight { - background: #1e1e2e; - padding: 0px 10px; - margin: 3px 0px; - margin-top: 10px; - border: 1px solid #181825; - } - - #tray { - border-radius: 10px; - margin-right: 10px; + #waybar { + background: transparent; + color: @text; + margin: 5px 5px; } #workspaces { - background: #1e1e2e; - border-radius: 10px; - margin-left: 10px; - padding-right: 0px; - padding-left: 5px; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 1rem; + background-color: @surface0; + opacity: 0.6; + margin-left: 1rem; } - #custom-caffeine { - color: #89dceb; - border-radius: 10px 0px 0px 10px; - border-right: 0px; - margin-left: 10px; + #workspaces button { + color: @lavender; + border-radius: 1rem; + padding: 0.4rem; } - #custom-updates { - color: #f5c2e7; - border-radius: 10px 0px 0px 10px; - border-left: 0px; - border-right: 0px; + #workspaces button.active { + color: @sky; + border-radius: 1rem; + } + + #workspaces button:hover { + color: @sapphire; + border-radius: 1rem; + } + + #workspaces button.focused { + color: @subtext0; + background: @yellow; + border-radius: 1rem; + } + + #workspaces button.urgent { + color: @crust; + background: @subtext0; + border-radius: 1rem; + } + + #tooltip { + background: @surface0; + border-radius: 1rem; + border-width: 1rem; + border-style: solid; + border-color: @crust; } #window { - border-radius: 10px; - margin-left: 60px; - margin-right: 60px; + color: @lavender; + background-color: @surface0; + opacity: 0.6; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 1rem; + margin-left: 6rem; + margin-right: 6rem; + } + + #custom-weather { + color: @rosewater; + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 0rem 1rem 1rem 0rem; + margin-right: 1rem; } #clock { - color: #f5a97f; - border-radius: 10px 0px 0px 10px; - margin-left: 5px; - border-right: 0px; + color: @flamingo; + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 1rem 0rem 0rem 1rem; + margin-left: 1rem; } - #keyboard-state.capslock { - color: #91d7e3; - border-left: 0px; - border-right: 0px; - } + /* ------------- */ - #keyboard-state.numlock { - color: #7dc4e4; - border-left: 0px; - border-right: 0px; - } - - #network { - color: #eed49f; - border-left: 0px; - border-right: 0px; - border-radius: 10px 10px 10px 10px; - margin-left: 5px; - padding-right: 15px; + #pulseaudio.microphone { + color: @mauve; + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 0rem 1rem 1rem 0rem; } #pulseaudio { - color: #8aadf4; - border-left: 0px; - border-right: 0px; + color: @red; + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 0; } - #pulseaudio.microphone { - color: #c6a0f6; - border-radius: 0px 10px 10px 0px; - border-left: 0px; - border-right: 0px; - padding-top: 5px; + #keyboard-state.numlock { + color: @maroon; + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 0; + font-size: 50px; } - #battery { - color: #a6e3a1; - border-radius: 0 10px 10px 0; - margin-right: 10px; - border-left: 0px; + #keyboard-state.capslock { + color: @peach; + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 0; + font-size: 18px; } - #custom-weather { - border-radius: 0px 10px 10px 0px; - border-right: 0px; - margin-left: 0px; + #temperature.gpu { + color: @yellow; + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 0; + } + + #temperature { + color: @green; + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 0; + } + + #custom-updates { + color: @teal; + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + border-radius: 1rem 0rem 0rem 1rem; + margin-left: 1rem; + } + + /* ------------- */ + + #tray { + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; + margin-right: 1rem; + border-radius: 1rem; } ''; }; diff --git a/hosts/desktop/hyprland/config/waybar/macchiato.css b/hosts/desktop/hyprland/config/waybar/macchiato.css new file mode 100644 index 0000000..b1dedea --- /dev/null +++ b/hosts/desktop/hyprland/config/waybar/macchiato.css @@ -0,0 +1,26 @@ +@define-color rosewater #f4dbd6; +@define-color flamingo #f0c6c6; +@define-color pink #f5bde6; +@define-color mauve #c6a0f6; +@define-color red #ed8796; +@define-color maroon #ee99a0; +@define-color peach #f5a97f; +@define-color yellow #eed49f; +@define-color green #a6da95; +@define-color teal #8bd5ca; +@define-color sky #91d7e3; +@define-color sapphire #7dc4e4; +@define-color blue #8aadf4; +@define-color lavender #b7bdf8; +@define-color text #cad3f5; +@define-color subtext1 #b8c0e0; +@define-color subtext0 #a5adcb; +@define-color overlay2 #939ab7; +@define-color overlay1 #8087a2; +@define-color overlay0 #6e738d; +@define-color surface2 #5b6078; +@define-color surface1 #494d64; +@define-color surface0 #363a4f; +@define-color base #24273a; +@define-color mantle #1e2030; +@define-color crust #181926; \ No newline at end of file diff --git a/hosts/desktop/hyprland/config/waybar/scripts/waybar-updates.py b/hosts/desktop/hyprland/config/waybar/scripts/waybar-updates.py index 1f93357..9a7ebd5 100755 --- a/hosts/desktop/hyprland/config/waybar/scripts/waybar-updates.py +++ b/hosts/desktop/hyprland/config/waybar/scripts/waybar-updates.py @@ -52,7 +52,10 @@ def check(): updates = check_for_flake_updates() updates_dict = parse_output(updates.stderr) - data["text"] = (str(len(updates_dict.keys()))) + if len(updates_dict.keys()) > 0: + data["text"] = ("󰏕") + else: + data["text"] = ("") if len(updates_dict.keys()) <= 0: data["tooltip"] = ("flake inputs up to date") else: diff --git a/hosts/desktop/hyprland/config/waybar/scripts/waybar-wttr.py b/hosts/desktop/hyprland/config/waybar/scripts/waybar-wttr.py index a6a87a1..8a13d9d 100755 --- a/hosts/desktop/hyprland/config/waybar/scripts/waybar-wttr.py +++ b/hosts/desktop/hyprland/config/waybar/scripts/waybar-wttr.py @@ -5,61 +5,274 @@ from datetime import datetime import requests -WEATHER_CODES = { - "113": "☀️ ", - "116": "⛅ ", - "119": "☁️ ", - "122": "☁️ ", - "143": "☁️ ", - "176": "🌧️", - "179": "🌧️", - "182": "🌧️", - "185": "🌧️", - "200": "⛈️ ", - "227": "🌨️", - "230": "🌨️", - "248": "☁️ ", - "260": "☁️ ", - "263": "🌧️", - "266": "🌧️", - "281": "🌧️", - "284": "🌧️", - "293": "🌧️", - "296": "🌧️", - "299": "🌧️", - "302": "🌧️", - "305": "🌧️", - "308": "🌧️", - "311": "🌧️", - "314": "🌧️", - "317": "🌧️", - "320": "🌨️", - "323": "🌨️", - "326": "🌨️", - "329": "❄️ ", - "332": "❄️ ", - "335": "❄️ ", - "338": "❄️ ", - "350": "🌧️", - "353": "🌧️", - "356": "🌧️", - "359": "🌧️", - "362": "🌧️", - "365": "🌧️", - "368": "🌧️", - "371": "❄️", - "374": "🌨️", - "377": "🌨️", - "386": "🌨️", - "389": "🌨️", - "392": "🌧️", - "395": "❄️ ", +WWO_CODE = { + "113": "Sunny", + "116": "PartlyCloudy", + "119": "Cloudy", + "122": "VeryCloudy", + "143": "Fog", + "176": "LightShowers", + "179": "LightSleetShowers", + "182": "LightSleet", + "185": "LightSleet", + "200": "ThunderyShowers", + "227": "LightSnow", + "230": "HeavySnow", + "248": "Fog", + "260": "Fog", + "263": "LightShowers", + "266": "LightRain", + "281": "LightSleet", + "284": "LightSleet", + "293": "LightRain", + "296": "LightRain", + "299": "HeavyShowers", + "302": "HeavyRain", + "305": "HeavyShowers", + "308": "HeavyRain", + "311": "LightSleet", + "314": "LightSleet", + "317": "LightSleet", + "320": "LightSnow", + "323": "LightSnowShowers", + "326": "LightSnowShowers", + "329": "HeavySnow", + "332": "HeavySnow", + "335": "HeavySnowShowers", + "338": "HeavySnow", + "350": "LightSleet", + "353": "LightShowers", + "356": "HeavyShowers", + "359": "HeavyRain", + "362": "LightSleetShowers", + "365": "LightSleetShowers", + "368": "LightSnowShowers", + "371": "HeavySnowShowers", + "374": "LightSleetShowers", + "377": "LightSleet", + "386": "ThunderyShowers", + "389": "ThunderyHeavyRain", + "392": "ThunderySnowShowers", + "395": "HeavySnowShowers", +} + +WEATHER_SYMBOL = { + "Unknown": "✨", + "Cloudy": "☁️", + "Fog": "🌫", + "HeavyRain": "🌧", + "HeavyShowers": "🌧", + "HeavySnow": "❄️", + "HeavySnowShowers": "❄️", + "LightRain": "🌦", + "LightShowers": "🌦", + "LightSleet": "🌧", + "LightSleetShowers": "🌧", + "LightSnow": "🌨", + "LightSnowShowers": "🌨", + "PartlyCloudy": "⛅️", + "Sunny": "☀️", + "ThunderyHeavyRain": "🌩", + "ThunderyShowers": "⛈", + "ThunderySnowShowers": "⛈", + "VeryCloudy": "☁️", +} + +WEATHER_CODES = {key: WEATHER_SYMBOL[value] for key, value in WWO_CODE.items()} + +WIND_DIRECTION = [ + "↓", "↙", "←", "↖", "↑", "↗", "→", "↘", +] + +MOON_PHASES = ( + "🌑", "🌒", "🌓", "🌔", "🌕", "🌖", "🌗", "🌘" +) + +WEATHER_SYMBOL_WI_DAY = { + "Unknown": "", + "Cloudy": "", + "Fog": "", + "HeavyRain": "", + "HeavyShowers": "", + "HeavySnow": "", + "HeavySnowShowers": "", + "LightRain": "", + "LightShowers": "", + "LightSleet": "", + "LightSleetShowers": "", + "LightSnow": "", + "LightSnowShowers": "", + "PartlyCloudy": "", + "Sunny": "", + "ThunderyHeavyRain": "", + "ThunderyShowers": "", + "ThunderySnowShowers": "", + "VeryCloudy": "", +} + +WEATHER_CODES_WI_DAY = {key: WEATHER_SYMBOL_WI_DAY[value] for key, value in WWO_CODE.items()} + +WEATHER_SYMBOL_WI_NIGHT = { + "Unknown": "", + "Cloudy": "", + "Fog": "", + "HeavyRain": "", + "HeavyShowers": "", + "HeavySnow": "", + "HeavySnowShowers": "", + "LightRain": "", + "LightShowers": "", + "LightSleet": "", + "LightSleetShowers": "", + "LightSnow": "", + "LightSnowShowers": "", + "PartlyCloudy": "", + "Sunny": "", + "ThunderyHeavyRain": "", + "ThunderyShowers": "", + "ThunderySnowShowers": "", + "VeryCloudy": "", +} + +WEATHER_CODES_WI_NIGHT = {key: WEATHER_SYMBOL_WI_NIGHT[value] for key, value in WWO_CODE.items()} + +WIND_DIRECTION_WI = [ + "", "", "", "", "", "", "", "", +] + +WIND_SCALE_WI = [ + "", "", "", "", "", "", "", "", "", "", "", "", "", +] + +MOON_PHASES_WI = ( + "", "", "", "", "", "", "", + "", "", "", "", "", "", "", + "", "", "", "", "", "", "", + "", "", "", "", "", "", "", +) + +WEATHER_SYMBOL_WEGO = { + "Unknown": [ + " .-. ", + " __) ", + " ( ", + " `-’ ", + " • "], + "Sunny": [ + "\033[38;5;226m \\ / \033[0m", + "\033[38;5;226m .-. \033[0m", + "\033[38;5;226m ― ( ) ― \033[0m", + "\033[38;5;226m `-’ \033[0m", + "\033[38;5;226m / \\ \033[0m"], + "PartlyCloudy": [ + "\033[38;5;226m \\ /\033[0m ", + "\033[38;5;226m _ /\"\"\033[38;5;250m.-. \033[0m", + "\033[38;5;226m \\_\033[38;5;250m( ). \033[0m", + "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m", + " "], + "Cloudy": [ + " ", + "\033[38;5;250m .--. \033[0m", + "\033[38;5;250m .-( ). \033[0m", + "\033[38;5;250m (___.__)__) \033[0m", + " "], + "VeryCloudy": [ + " ", + "\033[38;5;240;1m .--. \033[0m", + "\033[38;5;240;1m .-( ). \033[0m", + "\033[38;5;240;1m (___.__)__) \033[0m", + " "], + "LightShowers": [ + "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m", + "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m", + "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m", + "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m", + "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m"], + "HeavyShowers": [ + "\033[38;5;226m _`/\"\"\033[38;5;240;1m.-. \033[0m", + "\033[38;5;226m ,\\_\033[38;5;240;1m( ). \033[0m", + "\033[38;5;226m /\033[38;5;240;1m(___(__) \033[0m", + "\033[38;5;21;1m ‚‘‚‘‚‘‚‘ \033[0m", + "\033[38;5;21;1m ‚’‚’‚’‚’ \033[0m"], + "LightSnowShowers": [ + "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m", + "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m", + "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m", + "\033[38;5;255m * * * \033[0m", + "\033[38;5;255m * * * \033[0m"], + "HeavySnowShowers": [ + "\033[38;5;226m _`/\"\"\033[38;5;240;1m.-. \033[0m", + "\033[38;5;226m ,\\_\033[38;5;240;1m( ). \033[0m", + "\033[38;5;226m /\033[38;5;240;1m(___(__) \033[0m", + "\033[38;5;255;1m * * * * \033[0m", + "\033[38;5;255;1m * * * * \033[0m"], + "LightSleetShowers": [ + "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m", + "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m", + "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m", + "\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[38;5;255m* \033[0m", + "\033[38;5;255m *\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[0m"], + "ThunderyShowers": [ + "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m", + "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m", + "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m", + "\033[38;5;228;5m ⚡\033[38;5;111;25m‘ ‘\033[38;5;228;5m⚡\033[38;5;111;25m‘ ‘ \033[0m", + "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m"], + "ThunderyHeavyRain": [ + "\033[38;5;240;1m .-. \033[0m", + "\033[38;5;240;1m ( ). \033[0m", + "\033[38;5;240;1m (___(__) \033[0m", + "\033[38;5;21;1m ‚‘\033[38;5;228;5m⚡\033[38;5;21;25m‘‚\033[38;5;228;5m⚡\033[38;5;21;25m‚‘ \033[0m", + "\033[38;5;21;1m ‚’‚’\033[38;5;228;5m⚡\033[38;5;21;25m’‚’ \033[0m"], + "ThunderySnowShowers": [ + "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m", + "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m", + "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m", + "\033[38;5;255m *\033[38;5;228;5m⚡\033[38;5;255;25m*\033[38;5;228;5m⚡\033[38;5;255;25m* \033[0m", + "\033[38;5;255m * * * \033[0m"], + "LightRain": [ + "\033[38;5;250m .-. \033[0m", + "\033[38;5;250m ( ). \033[0m", + "\033[38;5;250m (___(__) \033[0m", + "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m", + "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m"], + "HeavyRain": [ + "\033[38;5;240;1m .-. \033[0m", + "\033[38;5;240;1m ( ). \033[0m", + "\033[38;5;240;1m (___(__) \033[0m", + "\033[38;5;21;1m ‚‘‚‘‚‘‚‘ \033[0m", + "\033[38;5;21;1m ‚’‚’‚’‚’ \033[0m"], + "LightSnow": [ + "\033[38;5;250m .-. \033[0m", + "\033[38;5;250m ( ). \033[0m", + "\033[38;5;250m (___(__) \033[0m", + "\033[38;5;255m * * * \033[0m", + "\033[38;5;255m * * * \033[0m"], + "HeavySnow": [ + "\033[38;5;240;1m .-. \033[0m", + "\033[38;5;240;1m ( ). \033[0m", + "\033[38;5;240;1m (___(__) \033[0m", + "\033[38;5;255;1m * * * * \033[0m", + "\033[38;5;255;1m * * * * \033[0m"], + "LightSleet": [ + "\033[38;5;250m .-. \033[0m", + "\033[38;5;250m ( ). \033[0m", + "\033[38;5;250m (___(__) \033[0m", + "\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[38;5;255m* \033[0m", + "\033[38;5;255m *\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[0m"], + "Fog": [ + " ", + "\033[38;5;251m _ - _ - _ - \033[0m", + "\033[38;5;251m _ - _ - _ \033[0m", + "\033[38;5;251m _ - _ - _ - \033[0m", + " "], } data = {} -weather = requests.get("https://wttr.in/?format=j1").json() +weather = requests.get("https://wttr.in/u&?format=j1").json() +moon = requests.get("https://wttr.in/?format=%m").text def format_time(time): @@ -104,7 +317,7 @@ data["text"] = ( + " " + extrachar + weather["current_condition"][0]["FeelsLikeF"] - + "°" + + "°F" ) data["tooltip"] = ( @@ -113,6 +326,7 @@ data["tooltip"] = ( data["tooltip"] += f"Feels like: {weather['current_condition'][0]['FeelsLikeF']}°\n" data["tooltip"] += f"Wind: {weather['current_condition'][0]['windspeedMiles']}mph\n" data["tooltip"] += f"Humidity: {weather['current_condition'][0]['humidity']}%\n" +data["tooltip"] += f"Moon phase: {weather["weather"][0]['astronomy'][0]['moon_phase']} " + moon + "\n" for i, day in enumerate(weather["weather"]): data["tooltip"] += f"\n" if i == 0: @@ -121,17 +335,21 @@ for i, day in enumerate(weather["weather"]): data["tooltip"] += "Tomorrow, " date = datetime.strptime(day['date'], "%Y-%m-%d").strftime("%a %b %d %Y") data["tooltip"] += f"{date}\n" - data["tooltip"] += f"⬆️ {day['maxtempF']}° ⬇️ {day['mintempF']}° " + data["tooltip"] += f" {day['maxtempF']}°F  {day['mintempF']}°F" data[ "tooltip" - ] += f"☀️ {day['astronomy'][0]['sunrise']} 🌕 {day['astronomy'][0]['sunset']}\n" + ] += f" {day['astronomy'][0]['sunrise']}  {day['astronomy'][0]['sunset']}\n" for hour in day["hourly"]: if i == 0: if int(format_24_time(hour["time"])) < datetime.now().hour - 2: continue + if int(format_24_time(hour["time"])) > datetime.strptime(day['astronomy'][0]['sunset'], "%I:%M %p").hour or int(format_24_time(hour["time"])) < datetime.strptime(day['astronomy'][0]['sunrise'], "%I:%M %p").hour: + codes = WEATHER_CODES_WI_NIGHT + else: + codes = WEATHER_CODES_WI_DAY data[ "tooltip" - ] += f"{format_time(hour['time'])} {WEATHER_CODES[hour['weatherCode']]} {format_temp(hour['FeelsLikeF'])} {hour['weatherDesc'][0]['value']}, {format_chances(hour)}\n" + ] += f"{format_time(hour['time'])} {codes[hour['weatherCode']]} {format_temp(hour['FeelsLikeF'])} {hour['weatherDesc'][0]['value']}, {format_chances(hour)}\n" print(json.dumps(data)) diff --git a/hosts/desktop/hyprland/config/waybar/waybar.css b/hosts/desktop/hyprland/config/waybar/waybar.css new file mode 100644 index 0000000..d4a04ae --- /dev/null +++ b/hosts/desktop/hyprland/config/waybar/waybar.css @@ -0,0 +1,166 @@ +@import "macchiato.css"; + +* { + border: none; + border-radius: 0; + font-family: + Jetbrains Mono Nerd Font, + monospace; + font-weight: bold; + font-size: 14px; + min-height: 0; +} + +#window.waybar { + background-color: shade(@base, 0.9); + color: @text; +} + +#tooltip { + background: #1e1e2e; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; +} + +#workspaces button { + padding: 5px; + color: #313244; + margin-right: 5px; +} + +#workspaces button.active { + color: #a6adc8; +} + +#workspaces button.focused { + color: #a6adc8; + background: #eba0ac; + border-radius: 10px; + +} + +#workspaces button.urgent { + color: #11111b; + background: #a6e3a1; + border-radius: 10px; +} + +#workspaces button:hover { + background: #11111b; + color: #cdd6f4; + border-radius: 10px; +} + +/*#window, +#custom-weather, +#clock, +#network, +#pulseaudio, +#keyboard-state, +#temperature, +#custom-updates, +#tray, +#workspaces,*/ + +#workspaces { + /* background: #1e1e2e; */ + background: #1e2030; /* Mantle */ + border-radius: 10px; + margin-left: 10px; + padding-right: 0px; + padding-left: 5px; +} + +#tray { + border-radius: 10px; + margin-right: 10px; +} + +/* ------------- */ + +#custom-updates { + color: #f5c2e7; + border-radius: 10px 0px 0px 10px; + border-left: 0px; + border-right: 0px; +} + +#window { + border-radius: 10px; + margin-left: 60px; + margin-right: 60px; +} + +#temperature { + color: #a6da95;/* Green */ + border-left: 0px; + border-right: 0px; +} + +#temperature.gpu { + color: #eed49f;/* Yellow */ + border-left: 0px; + border-right: 0px; +} + +#keyboard-state.capslock { + color: #f5a97f;/* Peach */ + border-left: 0px; + border-right: 0px; +} + +#keyboard-state.numlock { + color: #ee99a0;/* Maroon */ + border-left: 0px; + border-right: 0px; +} + +#pulseaudio { + color: #ed8796;/* Red */ + border-radius: 0px 0px 0px 0px; + + border-left: 0px; + border-right: 0px; + + margin-left: 0px; + + padding-right: 0px; + padding-top: 0px; +} + +#pulseaudio.microphone { + color: #c6a0f6; /* Mauve */ + border-radius: 0px 10px 10px 0px; + border-left: 0px; + border-right: 0px; + padding-top: 5px; +} + +/* ------------- */ + +#network { + color: #f5bde6; /* Pink */ + border-left: 0px; + border-right: 0px; + border-radius: 10px 10px 10px 10px; + margin-left: 5px; + padding-right: 15px; +} + +/* ------------- */ + +#clock { + color: #f0c6c6; /* Flamingo */ + border-radius: 10px 0px 0px 10px; + margin-left: 5px; + border-right: 0px; +} + +#custom-weather { + color: #f4dbd6; /* Rosewater */ + border-radius: 0px 10px 10px 0px; + border-right: 0px; + margin-left: 0px; +} \ No newline at end of file diff --git a/hosts/desktop/hyprland/default.nix b/hosts/desktop/hyprland/default.nix index 62083d1..0da5116 100644 --- a/hosts/desktop/hyprland/default.nix +++ b/hosts/desktop/hyprland/default.nix @@ -29,6 +29,8 @@ in portalPackage = pkgs.xdg-desktop-portal-hyprland; }; + programs.nm-applet.enable = true; + systemd = { user.services.polkit-gnome-authentication-agent-1 = { description = "polkit-gnome-authentication-agent-1"; @@ -80,6 +82,7 @@ in }; fonts.packages = with pkgs; [ + font-awesome noto-fonts noto-fonts-color-emoji nerdfonts diff --git a/hosts/desktop/hyprland/environment.nix b/hosts/desktop/hyprland/environment.nix index 457acd7..4f556b2 100644 --- a/hosts/desktop/hyprland/environment.nix +++ b/hosts/desktop/hyprland/environment.nix @@ -15,6 +15,7 @@ in environment.systemPackages = with pkgs; [ adwaita-icon-theme apple-cursor + blueberry catppuccin catppuccin-gtk catppuccin-qt5ct diff --git a/hosts/nas/boot.nix b/hosts/nas/boot.nix index 4cbf4ee..1a20637 100644 --- a/hosts/nas/boot.nix +++ b/hosts/nas/boot.nix @@ -6,6 +6,7 @@ in { # Configure bootloader with lanzaboot and secureboot boot = { + kernelModules = [ "nct6775" ]; loader = { systemd-boot = { enable = true; diff --git a/hosts/nas/configuration.nix b/hosts/nas/configuration.nix index 0e3cb93..47c46ed 100755 --- a/hosts/nas/configuration.nix +++ b/hosts/nas/configuration.nix @@ -213,6 +213,30 @@ in }; }; + hardware.fancontrol = { + enable = true; + config = '' + # Configuration file generated by pwmconfig, changes will be lost + # hwmon6/temp9_input -- chipset temp? + # hwmon2/temp1_input -- cpu temp? + # hwmon6/pwm5 -- chipset fan? + # hwmon6/pwm2, hwmon6/pwm3 -- cpu fans? + # hwmon6/pwm4 -- case fans? + + INTERVAL=10 + DEVPATH=hwmon2=devices/pci0000:00/0000:00:18.3 hwmon6=devices/platform/nct6775.656 + DEVNAME=hwmon2=k10temp hwmon6=nct6798 + FCTEMPS=hwmon6/pwm5=hwmon6/temp9_input hwmon6/pwm2=hwmon2/temp1_input hwmon6/pwm3=hwmon2/temp1_input hwmon6/pwm4=hwmon2/temp1_input + FCFANS=hwmon6/pwm5=hwmon6/fan5_input hwmon6/pwm2=hwmon6/fan2_input hwmon6/pwm3=hwmon6/fan3_input hwmon6/pwm4=hwmon6/fan4_input + MINTEMP=hwmon6/pwm5=20 hwmon6/pwm2=20 hwmon6/pwm3=20 hwmon6/pwm4=20 + MAXTEMP=hwmon6/pwm5=60 hwmon6/pwm2=90 hwmon6/pwm3=90 hwmon6/pwm4=90 + MINSTART=hwmon6/pwm5=16 hwmon6/pwm2=90 hwmon6/pwm3=45 hwmon6/pwm4=60 + MINSTOP=hwmon6/pwm5=14 hwmon6/pwm2=0 hwmon6/pwm3=30 hwmon6/pwm4=45 + MINPWM=hwmon6/pwm5=14 hwmon6/pwm2=0 hwmon6/pwm3=0 hwmon6/pwm4=0 + MAXPWM=hwmon6/pwm5=255 hwmon6/pwm2=255 hwmon6/pwm3=255 hwmon6/pwm4=255 + ''; + }; + # Virtualisation virtualisation = { docker = { diff --git a/hosts/nas/home.nix b/hosts/nas/home.nix index e61061a..a81d17c 100644 --- a/hosts/nas/home.nix +++ b/hosts/nas/home.nix @@ -11,6 +11,8 @@ mangohud.enable = true; java.enable = true; + btop.enable = true; + zsh = { enable = true; enableCompletion = true; diff --git a/hosts/nas/sensors.txt b/hosts/nas/sensors.txt new file mode 100644 index 0000000..a4ce84b --- /dev/null +++ b/hosts/nas/sensors.txt @@ -0,0 +1,36 @@ +Common Settings: +INTERVAL=10 + +Settings of hwmon6/pwm5: -- chipset? + Depends on hwmon6/temp9_input + Controls hwmon6/fan5_input + MINTEMP=20 + MAXTEMP=60 + MINSTART=16 + MINSTOP=14 + MINPWM=14 + +Settings of hwmon6/pwm4: -- case? + Depends on hwmon2/temp1_input + Controls hwmon6/fan4_input + MINTEMP=20 + MAXTEMP=90 + MINSTART=60 + MINSTOP=45 + +Settings of hwmon6/pwm3: -- cpu? + Depends on hwmon2/temp1_input + Controls hwmon6/fan3_input + MINTEMP=20 + MAXTEMP=90 + MINSTART=150 + MINSTOP=0 + MAXPWM=30 + +Settings of hwmon6/pwm2: -- cpu? + Depends on hwmon2/temp1_input + Controls hwmon6/fan2_input + MINTEMP=20 + MAXTEMP=90 + MINSTART=105 + MINSTOP=0 diff --git a/hosts/nas/services.nix b/hosts/nas/services.nix index bfc992d..c6f3268 100644 --- a/hosts/nas/services.nix +++ b/hosts/nas/services.nix @@ -1,7 +1,6 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: let enableDisplayManager = false; - hostname = "jallen-nas"; in { # Services configs @@ -62,63 +61,6 @@ in enable = true; }; - grafana = { - enable = false; - settings.server = { - http_port = 2342; - domain = hostname; - serve_from_sub_path = true; - http_addr = ""; - }; - dataDir = "/media/nas/ssd/nix-app-data/grafana"; - }; - - prometheus = { - enable = false; - port = 9001; - exporters = { - node = { - enable = true; - enabledCollectors = [ - "diskstats" - "systemd" - ]; - port = 9002; - }; - smartctl = { - enable = true; - group = "disk"; - devices = [ - "/dev/sda" - "/dev/sdb" - "/dev/sdc" - "/dev/sdd" - "/dev/sde" - "/dev/sdf" - "/dev/sdg" - "/dev/sdh" - "/dev/sdi" - "/dev/nvme0n1" - "/dev/nvme1n1" - ]; - }; - }; - - scrapeConfigs = [ - { - job_name = hostname; - static_configs = [ - { - targets = [ - "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" - "127.0.0.1:${toString config.services.prometheus.exporters.smartctl.port}" - ]; - } - ]; - } - ]; - }; - tailscale = { enable = true; openFirewall = true; @@ -209,40 +151,6 @@ in ''; }; - tailscale-autoconnect = { - enable = false; - description = "Automatic connection to Tailscale"; - - # make sure tailscale is running before trying to connect to tailscale - after = [ - "network-pre.target" - "tailscale.service" - ]; - wants = [ - "network-pre.target" - "tailscale.service" - ]; - wantedBy = [ "multi-user.target" ]; - - # set this service as a oneshot job - serviceConfig.Type = "oneshot"; - - # have the job run this shell script - script = with pkgs; '' - # wait for tailscaled to settle - sleep 2 - - # check if we are already authenticated to tailscale - status="$(${tailscale}/bin/tailscale status -json | ${jq}/bin/jq -r .BackendState)" - if [ $status = "Running" ]; then # if so, then do nothing - exit 0 - fi - - # otherwise authenticate with tailscale - ${tailscale}/bin/tailscale up -authkey nodekey:e4557e761f8fa2cb51a189d32484092036d3954b61502b7e19688869a5107707 - ''; - }; - glances-server = { path = [ pkgs.bash diff --git a/share/impermanence/default.nix b/share/impermanence/default.nix index f56bf20..1fca1a8 100644 --- a/share/impermanence/default.nix +++ b/share/impermanence/default.nix @@ -25,14 +25,20 @@ group = "colord"; mode = "u=rwx,g=rx,o="; } + { + directory = "/etc/nix"; + user = "root"; + group = "root"; + mode = "u=rwx,g=rx,o=rx"; + } ]; files = [ - { - file = "/etc/nix/id_rsa"; - parentDirectory = { - mode = "u=rwx,g=,o="; - }; - } + # { + # file = "/etc/nix/id_rsa"; + # parentDirectory = { + # mode = "u=rwx,g=,o="; + # }; + # } ]; }; }