Compare commits

..

6 Commits

Author SHA1 Message Date
efe873d714 cleaned up the flake 2025-10-30 18:16:10 +01:00
a8d8c4dde9 had to switch to unstable for dms to work 2025-10-30 11:02:09 +01:00
f5d5791efd fix some regressions 2025-10-29 15:26:46 +01:00
6c53fe1aae switch to gnome for usb config 2025-10-09 09:36:41 +02:00
2e3b0b6a35 try to use watt (and quickshell) 2025-10-09 09:36:19 +02:00
38dc75a6e1 usability improvements 2025-09-23 00:06:24 +02:00
28 changed files with 853 additions and 520 deletions

View File

@@ -17,6 +17,7 @@ Don't forget to add the `#<host>` to the end of the target to specify the host c
### Spectre ### Spectre
###
@@ -53,7 +54,6 @@ TODO - disable root user
``` ```
## TODO ## TODO
- Have a wofi power menu with https://github.com/RiteshChepuri/wofi-scripts/blob/main/wofi-power-menu

499
flake.lock generated
View File

@@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749155310, "lastModified": 1760101617,
"narHash": "sha256-t0HfHg/1+TbSra5s6nNM0o4tnb3uqWedShSpZXsUMYY=", "narHash": "sha256-8jf/3ZCi+B7zYpIyV04+3wm72BD7Z801IlOzsOACR7I=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "94981cf75a9f11da0b6dd6a1abbd7c50a36ab2d3", "rev": "1826a9923881320306231b1c2090379ebf9fa4f8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -38,11 +38,11 @@
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
}, },
"locked": { "locked": {
"lastModified": 1745523430, "lastModified": 1755819240,
"narHash": "sha256-EAYWV+kXbwsH+8G/8UtmcunDeKwLwSOyfcmzZUkWE/c=", "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "base16.nix", "repo": "base16.nix",
"rev": "58bfe2553d937d8af0564f79d5b950afbef69717", "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -54,27 +54,28 @@
"base16-fish": { "base16-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1622559957, "lastModified": 1754405784,
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github" "type": "github"
} }
}, },
"base16-helix": { "base16-helix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736852337, "lastModified": 1752979451,
"narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=", "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-helix", "repo": "base16-helix",
"rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5", "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -100,14 +101,80 @@
"type": "github" "type": "github"
} }
}, },
"dankMaterialShell": {
"inputs": {
"dgop": "dgop",
"dms-cli": [
"dms-cli"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1761744363,
"narHash": "sha256-c+lu6aSPPeI9HnqFg4pyNYUWqLrRL2Yju3sFDu42q/w=",
"owner": "AvengeMedia",
"repo": "DankMaterialShell",
"rev": "5e36b1454a7b2cec0c657fd4345a715736bbef19",
"type": "github"
},
"original": {
"owner": "AvengeMedia",
"repo": "DankMaterialShell",
"type": "github"
}
},
"dgop": {
"inputs": {
"nixpkgs": [
"dankMaterialShell",
"nixpkgs"
]
},
"locked": {
"lastModified": 1760238269,
"narHash": "sha256-7CeGZM/Z/5Qt3AYByCRohGYGR1MRuXYzTTbkV/JxyAs=",
"owner": "AvengeMedia",
"repo": "dgop",
"rev": "95acdfce2d323e28fa8f5a4f345160962034f2b5",
"type": "github"
},
"original": {
"owner": "AvengeMedia",
"repo": "dgop",
"type": "github"
}
},
"dms-cli": {
"inputs": {
"gomod2nix": "gomod2nix",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1761674192,
"narHash": "sha256-KpQxBHiXjs1xFlM8mtVaY/XcKX0J5tCoqg8lXtIC9Pk=",
"owner": "AvengeMedia",
"repo": "danklinux",
"rev": "477968d6b3e5dbb82f5e07feb0a1a7b2de9d948e",
"type": "github"
},
"original": {
"owner": "AvengeMedia",
"repo": "danklinux",
"type": "github"
}
},
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1743774811, "lastModified": 1758112371,
"narHash": "sha256-oiHLDHXq7ymsMVYSg92dD1OLnKLQoU/Gf2F1GoONLCE=", "narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "df53a7a31872faf5ca53dd0730038a62ec63ca9e", "rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -119,11 +186,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1747046372,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -132,28 +199,30 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_2": { "flake-parts": {
"flake": false, "inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1756770412,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "edolstra", "owner": "hercules-ci",
"repo": "flake-compat", "repo": "flake-parts",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "edolstra", "owner": "hercules-ci",
"repo": "flake-compat", "repo": "flake-parts",
"type": "github" "type": "github"
} }
}, },
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": [ "systems": "systems"
"stylix",
"systems"
]
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -185,32 +254,6 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks": {
"inputs": {
"flake-compat": [
"stylix",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"stylix",
"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"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -233,42 +276,43 @@
"type": "github" "type": "github"
} }
}, },
"gitignore_2": { "gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1748186689,
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "48.2",
"repo": "gnome-shell",
"type": "github"
}
},
"gomod2nix": {
"inputs": { "inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [ "nixpkgs": [
"stylix", "dms-cli",
"git-hooks",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1709087332, "lastModified": 1756047880,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "narHash": "sha256-JeuGh9kA1SPL70fnvpLxkIkCWpTjtoPaus3jzvdna0k=",
"owner": "hercules-ci", "owner": "nix-community",
"repo": "gitignore.nix", "repo": "gomod2nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "rev": "47d628dc3b506bd28632e47280c6b89d3496909d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hercules-ci", "owner": "nix-community",
"repo": "gitignore.nix", "ref": "v1.7.0",
"type": "github" "repo": "gomod2nix",
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1732369855,
"narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "dadd58f630eeea41d645ee225a63f719390829dc",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "47.2",
"repo": "gnome-shell",
"type": "github" "type": "github"
} }
}, },
@@ -279,43 +323,20 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749154018, "lastModified": 1761750844,
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=", "narHash": "sha256-ab6kNHAEP/oWz8qdblnDw7TIwetr4GnmnDyvya0aw/k=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111", "rev": "b8082c6803353456d45e6a8c0d4b36ad33fb7d6a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"home-manager_2": { "home-manager_2": {
"inputs": {
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743808813,
"narHash": "sha256-2lDQBOmlz9ggPxcS7/GvcVdzXMIiT+PpMao6FbLJSr0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a9f8b3db211b4609ddd83683f9db89796c7f6ac6",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"zen-browser", "zen-browser",
@@ -323,11 +344,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1743604125, "lastModified": 1752603129,
"narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -352,11 +373,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749155331, "lastModified": 1753964049,
"narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprcursor", "repo": "hyprcursor",
"rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -381,11 +402,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749238452, "lastModified": 1760445448,
"narHash": "sha256-8qiKEWcxUrjpUpK+WyFNg/72C8rp70LUuyTD23T+SdQ=", "narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "c7225d73755a6c4c7c72f4d4f3925ea426e325a8", "rev": "50fb9f069219f338a11cf0bcccb9e58357d67757",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -406,15 +427,15 @@
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems", "systems": "systems_2",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1750106438, "lastModified": 1761742422,
"narHash": "sha256-zaTFR6NLaXkveEGl2kdl4UlvT7eHm3cYSbgSkibCO+M=", "narHash": "sha256-dke/JIFqles3r4nZwn+XPASGpIxIaKgeUp7NTBHpxgM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "0ece4af36a988ad06b28ed666011d84372d9e4dc", "rev": "ff50dc36e912b6ad764802d51be838bc7f6ed323",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -435,11 +456,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749046714, "lastModified": 1759610243,
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-protocols", "repo": "hyprland-protocols",
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -503,11 +524,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749155776, "lastModified": 1759080228,
"narHash": "sha256-t1PM0wxQLQwv2F2AW23uA7pm5giwmcgYEWbNIRct9r4=", "narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-qtutils", "repo": "hyprland-qtutils",
"rev": "396e8aa1c06274835b69da7f9a015fff9a9b7522", "rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -532,11 +553,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749145882, "lastModified": 1758927902,
"narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=", "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676", "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -557,11 +578,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749819919, "lastModified": 1759619523,
"narHash": "sha256-7F/KG8dwSH9JXdlpOVrEEArS+PJSn0iEnx5eVCk89/I=", "narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "57ab2a867d8b554ad89f29060c15efd11631db91", "rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -582,11 +603,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749145760, "lastModified": 1755184602,
"narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=", "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6", "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -597,27 +618,44 @@
}, },
"nix-flatpak": { "nix-flatpak": {
"locked": { "locked": {
"lastModified": 1711997201, "lastModified": 1754777568,
"narHash": "sha256-J71xzQlVYsjagA4AsVwRazhBh2rZrPpKvxTgs6UzL7c=", "narHash": "sha256-0bBqT+3XncgF8F03RFAamw9vdf0VmaDoIJLTGkjfQZs=",
"owner": "gmodena", "owner": "gmodena",
"repo": "nix-flatpak", "repo": "nix-flatpak",
"rev": "b76fa31346db7fc958a9898f3c594696ca71c4fd", "rev": "62f636b87ef6050760a8cb325cadb90674d1e23e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "gmodena", "owner": "gmodena",
"ref": "v0.4.1",
"repo": "nix-flatpak", "repo": "nix-flatpak",
"type": "github" "type": "github"
} }
}, },
"nix-vscode-extensions": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1761726545,
"narHash": "sha256-+Id4G/5NRpf8Lkdr5q4PBrQo6hvVFTbrN/J+0Q0KU6s=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "daf7c5026b02623d17ad74548a791c387db438d8",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1749794982, "lastModified": 1761114652,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=", "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81", "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -629,11 +667,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1749794982, "lastModified": 1761373498,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=", "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81", "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -645,36 +683,61 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1750005367, "lastModified": 1759770925,
"narHash": "sha256-h/aac1dGLhS3qpaD2aZt25NdKY7b+JT0ZIP2WuGsJMU=", "narHash": "sha256-CZwkCtzTNclqlhuwDsVtGoRumTpqCUK0xSnFIMgd8ls=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6c64dabd3aa85e0c02ef1cdcb6e1213de64baee3", "rev": "674c2b09c59a220204350ced584cadaacee30038",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "674c2b09c59a220204350ced584cadaacee30038",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1743703532, "lastModified": 1761373498,
"narHash": "sha256-s1KLDALEeqy+ttrvqV3jx9mBZEvmthQErTVOAzbjHZs=", "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bdb91860de2f719b57eef819b5617762f7120c70", "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nixos",
"ref": "nixos-24.11", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1758998580,
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
"owner": "nix-community",
"repo": "NUR",
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@@ -685,11 +748,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749636823, "lastModified": 1760663237,
"narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "623c56286de5a3193aa38891a6991b28f9bab056", "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -700,10 +763,13 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"dankMaterialShell": "dankMaterialShell",
"dms-cli": "dms-cli",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "hyprland": "hyprland",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2", "nix-vscode-extensions": "nix-vscode-extensions",
"nixpkgs": "nixpkgs_3",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"stylix": "stylix", "stylix": "stylix",
@@ -718,11 +784,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750119275, "lastModified": 1760998189,
"narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=", "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2", "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -738,33 +804,49 @@
"base16-helix": "base16-helix", "base16-helix": "base16-helix",
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-compat": "flake-compat_2", "flake-parts": "flake-parts",
"flake-utils": "flake-utils",
"git-hooks": "git-hooks",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"home-manager": "home-manager_2", "nixpkgs": [
"nixpkgs": "nixpkgs_3", "nixpkgs"
"systems": "systems_2", ],
"nur": "nur",
"systems": "systems_3",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-tmux": "tinted-tmux" "tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1747771231, "lastModified": 1761666531,
"narHash": "sha256-DYdmj22ZvkN5x9/VtdV5Wnze+UaPuboYraCPnOWn6u4=", "narHash": "sha256-nKOOPeblDcebtYfBjHo+PHXHKNSNKuifn1EGcBEgKWs=",
"owner": "danth", "owner": "nix-community",
"repo": "stylix", "repo": "stylix",
"rev": "66f554e4e32d804bcf2c007a7b7efef04a3773b0", "rev": "f8f4e3c3658ee962f8f332a56720c8dfc2836f7a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "danth", "owner": "nix-community",
"ref": "release-24.11",
"repo": "stylix", "repo": "stylix",
"type": "github" "type": "github"
} }
}, },
"systems": { "systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -779,7 +861,7 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -814,28 +896,43 @@
"tinted-kitty": { "tinted-kitty": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1716423189, "lastModified": 1735730497,
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8", "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8", "type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1757716333,
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github" "type": "github"
} }
}, },
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1743296873, "lastModified": 1757811970,
"narHash": "sha256-8IQulrb1OBSxMwdKijO9fB70ON//V32dpK9Uioy7FzY=", "narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "af5152c8d7546dfb4ff6df94080bf5ff54f64e3a", "rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -844,6 +941,22 @@
"type": "github" "type": "github"
} }
}, },
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1757811247,
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
},
"watt": { "watt": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -893,11 +1006,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749490041, "lastModified": 1760713634,
"narHash": "sha256-R9Dn9IyUdPaJHD2Oqd7XJnnxpka6M6UYw4Ld0iA46HM=", "narHash": "sha256-5HXelmz2x/uO26lvW7MudnadbAfoBnve4tRBiDVLtOM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "3cf35e178bc192ee51e3fddfd69e531e2c106a30", "rev": "753bbbdf6a052994da94062e5b753288cef28dfb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -908,17 +1021,17 @@
}, },
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"home-manager": "home-manager_3", "home-manager": "home-manager_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1750130285, "lastModified": 1761712008,
"narHash": "sha256-fauK56RkWQcNaDOehxxE2lcmNG0Vi++4KWlFQIJm4QE=", "narHash": "sha256-Nf2s59dLg6KDUV0omZqIlOGNUxw/Rl/KKXEXQGFCAlo=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "00b7edda741d3380fa123f053efd59774361d888", "rev": "1383ed38745d12f3896c996848d24c451643db58",
"type": "github" "type": "github"
}, },
"original": { "original": {

230
flake.nix
View File

@@ -2,21 +2,29 @@
description = "Nix config entry point"; description = "Nix config entry point";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Home manager # Home manager
home-manager.url = "github:nix-community/home-manager/release-25.05"; home-manager = {
home-manager.inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# Managing flatpak apps # Managing flatpak apps
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1"; nix-flatpak.url = "github:gmodena/nix-flatpak";
# hyprland, plugins and related utils # hyprland, plugins and related utils
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
stylix.url = "github:danth/stylix/release-24.11";
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
# zen browser # zen browser
zen-browser.url = "github:0xc000022070/zen-browser-flake"; zen-browser = {
# IMPORTANT: we're using "libgbm" and is only available in unstable so ensure url = "github:0xc000022070/zen-browser-flake";
# to have it up-to-date or simply don't specify the nixpkgs input inputs.nixpkgs.follows = "nixpkgs";
zen-browser.inputs.nixpkgs.follows = "nixpkgs"; };
# power management # power management
watt = { watt = {
@@ -25,114 +33,132 @@
}; };
# secrets # secrets
sops-nix.url = "github:Mic92/sops-nix"; sops-nix = {
sops-nix.inputs.nixpkgs.follows = "nixpkgs"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
# quickshell
dms-cli = {
url = "github:AvengeMedia/danklinux";
inputs.nixpkgs.follows = "nixpkgs";
};
dankMaterialShell = {
url = "github:AvengeMedia/DankMaterialShell";
inputs.nixpkgs.follows = "nixpkgs";
inputs.dms-cli.follows = "dms-cli";
};
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
}; };
outputs = { outputs = {
self, self,
nixpkgs, nixpkgs,
nixpkgs-unstable,
home-manager, home-manager,
stylix, stylix,
sops-nix, sops-nix,
nix-vscode-extensions,
... ...
} @ inputs: } @ inputs:
let let
system = "x86_64-linux";
username = "remy";
name = "Rémy";
pkgs = nixpkgs.legacyPackages.${system};
pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
lib = nixpkgs.lib;
systems = {
# HP Spectre x360 2018
Nixtre = {
hostModules = [
./hosts/spectre-x360-2018
];
userModules = [
./users/remy_spectre
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
extraModules = [
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
];
};
# Portable usb stick
nichts = {
hostModules = [
./hosts/mobile-usb
];
userModules = [
./users/remy_usb
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
extraModules = [
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
];
};
# Lenovo yoga 7 pro
nyx = {
hostModules = [
./hosts/yoga-7-pro
];
userModules = [
./users/remy_yoga
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.dankMaterialShell.homeModules.dankMaterialShell.default
];
extraModules = [
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
{ nixpkgs.overlays = [ inputs.nix-vscode-extensions.overlays.default ]; }
];
};
};
in in
{ {
# For each entry in `systems` create a nixosConfiguration
nixosConfigurations = lib.mapAttrs (_name: cfg:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = { inherit inputs pkgs-unstable; };
modules =
cfg.hostModules ++
cfg.extraModules ++
[ home-manager.nixosModules.home-manager {
# Common home-manager flags
home-manager = {
backupFileExtension = ".backup";
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = { inherit inputs pkgs-unstable; };
};
## NixOS configurations are the main output of this flake # Merge in all the user fragments for this host
# HP Spectre x360 2018 home-manager.users.remy = lib.mkMerge cfg.userModules;
nixosConfigurations.Nixtre = nixpkgs.lib.nixosSystem { }
system = "x86_64-linux"; ]
specialArgs = { inherit inputs; }; ;
}
modules = [ ) systems;
./hosts/spectre-x360-2018
stylix.nixosModules.stylix
inputs.watt.nixosModules.default
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.remy.imports = [
./users/remy_spectre
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
}
];
};
nixosConfigurations.nichts = nixpkgs.lib.nixosSystem { # ## Useful nix build tools
system = "x86_64-linux"; # # iso builder TODO
specialArgs = { inherit inputs; }; # nixosConfigurations.bcachefs-iso = nixpkgs.lib.nixosSystem {
# system = "x86_64-linux";
modules = [ # modules = [
./hosts/mobile-usb # "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix"
stylix.nixosModules.stylix # ({ lib, pkgs, ... }: {
inputs.watt.nixosModules.default # boot.supportedFilesystems = [ "bcachefs" ];
home-manager.nixosModules.home-manager # boot.kernelPackages = lib.mkOverride 0 pkgs.linuxPackages_latest;
{ # })
home-manager.useGlobalPkgs = true; # ];
home-manager.useUserPackages = true; # };
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.remy.imports = [
./users/remy_usb
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
}
];
};
nixosConfigurations.nyx = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/yoga-7-pro
sops-nix.nixosModules.sops
stylix.nixosModules.stylix
inputs.watt.nixosModules.default
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.remy.imports = [
./users/remy_yoga
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
}
];
};
# nixosConfigurations.raspberry-pi = nixpkgs.lib.nixosSystem {
# system = "aarch64-linux";
# modules = [
# ./hosts/raspberry-pi/configuration.nix
# ];
# };
## Home Manager configurations here?
## Useful nix build tools
# iso builder TODO
nixosConfigurations.bcachefs-iso = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix"
({ lib, pkgs, ... }: {
boot.supportedFilesystems = [ "bcachefs" ];
boot.kernelPackages = lib.mkOverride 0 pkgs.linuxPackages_latest;
})
];
};
}; };
} }

View File

@@ -5,6 +5,7 @@
networking.hostName = "nichts"; networking.hostName = "nichts";
userName = "remy"; userName = "remy";
gnome.enable = true;
}; };
}; };
@@ -13,11 +14,12 @@
./configuration.nix ./configuration.nix
./hardware-configuration.nix ./hardware-configuration.nix
# ../../modules/nixos/backup.nix
../../modules/nixos/bluetooth.nix ../../modules/nixos/bluetooth.nix
../../modules/nixos/flakes.nix ../../modules/nixos/flakes.nix
../../modules/nixos/flatpak.nix ../../modules/nixos/flatpak.nix
../../modules/nixos/fonts.nix ../../modules/nixos/fonts.nix
../../modules/nixos/hyprland.nix ../../modules/nixos/gnome.nix
../../modules/nixos/language.nix ../../modules/nixos/language.nix
../../modules/nixos/ld.nix ../../modules/nixos/ld.nix
../../modules/nixos/monitoring.nix ../../modules/nixos/monitoring.nix
@@ -27,12 +29,11 @@
../../modules/nixos/podman.nix ../../modules/nixos/podman.nix
../../modules/nixos/power.nix ../../modules/nixos/power.nix
../../modules/nixos/stylix.nix ../../modules/nixos/stylix.nix
../../modules/nixos/usb_config.nix
../../modules/nixos/user.nix ../../modules/nixos/user.nix
../../utils/binary-cache.nix ../../utils/binary-cache.nix
../../utils/garbage-collection.nix ../../utils/garbage-collection.nix
../../utils/unfree.nix ../../utils/unfree.nix
]; ];
} }

View File

@@ -3,7 +3,7 @@ Installed using
> sudo nixos-install --root /tmp/new-install/ --flake .#nyx --impure --no-root-passwd > sudo nixos-install --root /tmp/new-install/ --flake .#nyx --impure --no-root-passwd
``` ```
where `/tmp/new-install` was the moint point of the target FS. where `/tmp/new-install` was the mount point of the target FS.
The root user is effectively deactivated, hence the additional setup: The root user is effectively deactivated, hence the additional setup:
- users are part of the `wheel` group - users are part of the `wheel` group

View File

@@ -12,6 +12,25 @@
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [
"quiet"
"splash"
];
# https://github.com/lwfinger/rtw89/issues/240
# boot.extraModprobeConfig = ''
# options rtw89_pci disable_aspm_l1ss=y disable_aspm_l1=y disable_clkreq=y
# options rtw89_core disable_ps_mode=y
# '';
# ipu is apparently required to make the webcam available as a camera device
hardware.ipu6 = {
enable = true;
platform = "ipu6";
};
services.fwupd.enable = true;
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/1ea0784c-4eeb-46f1-a0ae-f6b311b27bd1"; { device = "/dev/disk/by-uuid/1ea0784c-4eeb-46f1-a0ae-f6b311b27bd1";
@@ -37,23 +56,26 @@
}; };
# TODO - only enable this if the user remy exists # TODO - only enable this if the user remy exists
fileSystems."/home/${config.nix-config.userName}/scratch" = fileSystems."/scratch/${config.nix-config.userName}" =
{ device = "/dev/disk/by-uuid/1ea0784c-4eeb-46f1-a0ae-f6b311b27bd1"; { device = "/dev/disk/by-uuid/1ea0784c-4eeb-46f1-a0ae-f6b311b27bd1";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@scratch" ]; options = [
"subvol=@scratch"
# Even though the mount point is not in home, we still want to show it in gnome-related file managers
"x-gvfs-show"
"x-gvfs-name=scratch"
"x-gvfs-icon=view-refresh"
];
# TODO make it owned by the user # TODO make it owned by the user
}; };
swapDevices = [ ]; swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface.
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wireguard-home.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp192s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -0,0 +1,9 @@
{pkgs, ...}:
{
home.packages = [
pkgs.rofi-bluetooth
];
# patch the rofi-bluetooth script to use an alternative rofi-command variable
}

View File

@@ -1,26 +1,33 @@
{pkgs, ...}: {pkgs, ...}:
let let
baseExtensions = with pkgs.vscode-extensions; [ baseExtensions = with pkgs.vscode-marketplace; [
# QOL # QOL
mhutchie.git-graph mhutchie.git-graph
redhat.vscode-yaml redhat.vscode-yaml
github.copilot # github.copilot
github.copilot-chat # github.copilot-chat
# Nix environment selector # Nix environment selector
arrterian.nix-env-selector arrterian.nix-env-selector
continue.continue
]; ];
baseSettings = { baseSettings = {
# visual # visual
"window.menuBarVisibility" = "toggle"; "window.titleBarStyle" = "native";
"window.customTitleBarVisibility" = "never";
"window.menuBarVisibility" = "hidden";
"window.autoDetectColorScheme" = true;
"workbench.preferredDarkColorTheme" = "Default Dark Modern";
"workbench.preferredLightColorTheme" = "Default Light Modern";
"editor.fontFamily" = "'FiraCode Nerd Font Mono', 'monospace', monospace"; "editor.fontFamily" = "'FiraCode Nerd Font Mono', 'monospace', monospace";
"terminal.integrated.fontFamily" = "FiraCode Nerd Font Mono"; "terminal.integrated.fontFamily" = "FiraCode Nerd Font Mono";
"workbench.iconTheme" = "vs-seti"; "workbench.iconTheme" = "vs-seti";
# telemetry # telemetry
"telemetry.enableCrashReporter" = false; "telemetry.telemetryLevel" = "off";
"telemetry.enableTelemetry" = false;
"redhat.telemetry.enabled" = false; "redhat.telemetry.enabled" = false;
# editor QOL # editor QOL
@@ -86,17 +93,16 @@ in
{ {
programs.vscode = { programs.vscode = {
enable = true; enable = true;
# install vscode in a FHS environment to allow extensions with prebuilt binaries
# package = pkgs.vscode.fhs;
profiles.default = { profiles.default = {
userSettings = baseSettings // { userSettings = baseSettings // {
"window.newWindowProfile" = "development"; "window.newWindowProfile" = "development";
}; };
extensions = [];
}; };
profiles.development = { profiles.development = {
extensions = baseExtensions ++ (with pkgs.vscode-extensions; [ extensions = baseExtensions ++ (with pkgs.vscode-marketplace; [
# python # python
ms-python.python ms-python.python
ms-python.isort ms-python.isort
@@ -119,31 +125,19 @@ in
profiles.science = { profiles.science = {
extensions = baseExtensions ++ (with pkgs.vscode-extensions; [ extensions = baseExtensions ++ (with pkgs.vscode-marketplace; [
# python + jupyter # python + jupyter
ms-python.python ms-python.python
ms-python.isort ms-python.isort
ms-python.debugpy ms-python.debugpy
ms-python.vscode-pylance # ms-python.vscode-pylance
ms-toolsai.vscode-jupyter-slideshow ms-toolsai.vscode-jupyter-slideshow
ms-toolsai.jupyter
ms-toolsai.jupyter-hub
ms-toolsai.jupyter-renderers ms-toolsai.jupyter-renderers
# Typst # Typst
myriad-dreamin.tinymist myriad-dreamin.tinymist
]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ ]);
{
name = "jupyter";
publisher = "ms-toolsai";
version = "2025.3.2025032101";
sha256 = "sha256-s2qEUl9J6EOije6MasZOnHErYs3NYXBqLSfMT03vEH0=";
}
{
name = "jupyter-hub";
publisher = "ms-toolsai";
version = "2024.10.1002831100";
sha256 = "sha256-5IRczwXbYkDdYEOXvQnnH+HJNLvsRsrZ6fnoVCveqrs=";
}
];
keybindings = baseKeybindings ++ [ keybindings = baseKeybindings ++ [
# run code cell in jupyter # run code cell in jupyter
@@ -174,7 +168,6 @@ in
"editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?"; "editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?";
}; };
"[typst-code]" = { "[typst-code]" = {
"git.openRepositoryInParentFolders" = "never";
"editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?"; "editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?";
}; };
"tinymist.fontPaths" = [ "tinymist.fontPaths" = [
@@ -183,10 +176,7 @@ in
"workbench.colorCustomizations" = { "workbench.colorCustomizations" = {
"statusBar.background" = "#003f9293"; "statusBar.background" = "#003f9293";
}; };
}; };
}; };
}; };
} }

View File

@@ -8,7 +8,6 @@
services.flatpak.uninstallUnmanaged = false; services.flatpak.uninstallUnmanaged = false;
services.flatpak.packages = [ services.flatpak.packages = [
"com.github.flxzt.rnote"
"com.github.tchx84.Flatseal" "com.github.tchx84.Flatseal"
"com.spotify.Client" "com.spotify.Client"
"io.podman_desktop.PodmanDesktop" "io.podman_desktop.PodmanDesktop"

View File

@@ -0,0 +1,47 @@
{pkgs, config, lib, ...}:
let
hyprctl = "${pkgs.hyprland}/bin/hyprctl";
in
{
config = {
services.fusuma = {
enable = true;
settings = {
swipe = {
"3" = {
up = {
command = "exec ${hyprctl} dispatch fullscreen 1";
};
down = {
command = "exec ${lib.getExe config.nix-config.launcher}";
};
};
};
pinch = {
"4" = {
"in" = {
command = "exec ${hyprctl} dispatch togglespecialworkspace magic";
};
"out" = {
command = "exec ${hyprctl} dispatch togglespecialworkspace magic";
};
};
};
hold = {
"5" = {
command = "exec ${lib.getExe config.nix-config.launcher}";
threshold = 0.1;
};
};
threshold = {
pinch = 0.1;
};
};
};
};
}

View File

@@ -4,9 +4,9 @@
enable = true; enable = true;
settings = { settings = {
general = { general = {
# avoid starting multiple hyprlock instances. # See: https://github.com/hyprwm/hypridle/issues/146
before_sleep_cmd = "pidof hyprlock || hyprlock --immediate-render --no-fade-in"; before_sleep_cmd = "hyprlock --no-fade-in";
lock_cmd = "pidof hyprlock || hyprlock --immediate-render --no-fade-in"; lock_cmd = "hyprlock";
after_sleep_cmd = "hyprctl dispatch dpms on"; after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false; ignore_dbus_inhibit = false;
}; };
@@ -22,7 +22,7 @@
{ {
# dim screen after 2 minutes # dim screen after 2 minutes
timeout = 120; timeout = 120;
on-timeout = "brightnessctl -s set 2"; on-timeout = "brightnessctl -s set 2%";
on-resume = "brightnessctl -r"; on-resume = "brightnessctl -r";
# monitor backlight restore. # monitor backlight restore.
} }
@@ -40,6 +40,5 @@
} }
]; ];
}; };
}; };
} }

View File

@@ -9,8 +9,8 @@ in
default = [ default = [
"gnome-keyring-daemon --start --components=secrets" "gnome-keyring-daemon --start --components=secrets"
"wl-paste --watch cliphist store" "wl-paste --watch cliphist store"
"${lib.getExe pkgs.waybar}"
"${lib.getExe pkgs.hypridle}" "${lib.getExe pkgs.hypridle}"
# TODO - currently broken
"${pkgs.owncloud-client}" "${pkgs.owncloud-client}"
"${lib.getExe pkgs.keepassxc}" "${lib.getExe pkgs.keepassxc}"
]; ];

View File

@@ -23,6 +23,9 @@ in
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
settings = { settings = {
# debug = {
# disable_logs = false;
# };
general = { general = {
resize_on_border = true; resize_on_border = true;
gaps_in = 5; gaps_in = 5;
@@ -98,6 +101,9 @@ in
# the internal monitor, always at the "center" # the internal monitor, always at the "center"
"eDP-1, ${cfg.internal-screen.resolution}, 0x0, ${cfg.internal-screen.scale}" "eDP-1, ${cfg.internal-screen.resolution}, 0x0, ${cfg.internal-screen.scale}"
# ultra wide monitor at home
"desc:Samsung Electric Company C34H89x H4ZN501178, 3440x1440@99.98, auto-up, 1"
# Samsung monitors at irchel (matching the description) # Samsung monitors at irchel (matching the description)
"desc:Samsung Electric Company LS27D80xU, 2560x1440@59.95, auto-up, 1" "desc:Samsung Electric Company LS27D80xU, 2560x1440@59.95, auto-up, 1"
@@ -126,7 +132,7 @@ in
# Global overview # Global overview
pkgs.hyprlandPlugins.hyprspace pkgs.hyprlandPlugins.hyprspace
# Touch gestures # Touch gestures
pkgs.hyprlandPlugins.hyprgrass # pkgs.hyprlandPlugins.hyprgrass
]; ];
}; };
}; };

View File

@@ -28,7 +28,7 @@ in
# Close window # Close window
"$mod, Q, killactive," "$mod, Q, killactive,"
# Force close window # Force close window
# "$mod+Shift, Q, forcekillactive," "$mod+Shift, Q, forcekillactive,"
# Toggle Floating and reduce size # Toggle Floating and reduce size
"$mod, f, togglefloating," "$mod, f, togglefloating,"
@@ -49,21 +49,25 @@ in
"$mod+Shift, up, movewindow, u" "$mod+Shift, up, movewindow, u"
"$mod+Shift, down, movewindow, d" "$mod+Shift, down, movewindow, d"
# Move window to workspace
"$mod+Ctrl, left, movetoworkspace, -1" "$mod+Ctrl, left, movetoworkspace, -1"
"$mod+Ctrl, right, movetoworkspace, +1" "$mod+Ctrl, right, movetoworkspace, +1"
# Switch workspace # Switch workspace
"$mod+Alt, left, workspace, -1" "$mod, left, workspace, -1"
"$mod+Alt, right, workspace, +1" "$mod, right, workspace, +1"
"$mod, mouse_down, workspace, -1" "$mod, mouse_down, workspace, -1"
"$mod, mouse_up, workspace, +1" "$mod, mouse_up, workspace, +1"
# move to scratch workspace # move to scratch workspace
"$mod+Ctrl, up, movetoworkspace, special:magic" "$mod+Ctrl, up, movetoworkspace, special:magic"
"$mod+Ctrl, down, movetoworkspace, 1" "$mod+Ctrl, down, movetoworkspace, prev"
# toggle scratch workspace
"$mod+Alt, up, togglespecialworkspace, magic" # switch to scratch workspace
"$mod+Alt, down, togglespecialworkspace, magic" "$mod, up, togglespecialworkspace, magic"
"$mod, down, togglespecialworkspace, magic"
# Screenshot # Screenshot
"$mod, Print, exec, hyprshot -m region -o ~/Pictures/Screenshots" "$mod, Print, exec, hyprshot -m region -o ~/Pictures/Screenshots"
@@ -80,7 +84,7 @@ in
# Other pickers using the same launcher # Other pickers using the same launcher
"$mod+Ctrl, space, exec, ${lib.getExe config.nix-config.filePicker}" "$mod+Ctrl, space, exec, ${lib.getExe config.nix-config.filePicker}"
"$mod, period, exec, ${lib.getExe config.nix-config.emojiPicker}"
]; ];
# repeatable bindings # repeatable bindings
@@ -97,25 +101,26 @@ in
"$mod, KP_Subtract, resizeactive, -2% -2%" "$mod, KP_Subtract, resizeactive, -2% -2%"
"$mod, PLUS, resizeactive, 2% 2%" "$mod, PLUS, resizeactive, 2% 2%"
"$mod, KP_Add, resizeactive, 2% 2%" "$mod, KP_Add, resizeactive, 2% 2%"
]; ];
# lock-screen bindings # lock-screen bindings
bindl = [ bindl = [
## depending on the setup: lock screen or switch to clamshell mode ", XF86PowerOff, exec, hyprctl dispatch dpms on eDP-1"
# in any case, the internal screen is turned off ## depending on the setup we expect different behaviors when closing the lid:
# ", switch:on:Lid Switch, exec, loginctl lock-session" # either sleep & lock screen OR switch to clamshell mode
# through the `services.logind.lidSwitch` and `services.logind.lidSwitchDocked` we can differentiate both cases
# when not docked, the system is put to sleep and the screen is implicitly locked as per the hypridle configuration
# when docked, the lid switch is ignored by logind and needs to be handled manually, see below:
# if an additional monitor is detected, simply deactivate the internal screen and continue working on the external monitor # if an additional monitor is detected, simply deactivate the internal screen and continue working on the external monitor
", switch:on:Lid Switch, exec, hyprctl dispatch dpms off eDP-1" ", switch:on:Lid Switch, exec, hyprctl keyword monitor 'eDP-1,disable"
", switch:on:Lid Switch, exec, sleep 0.5; hyprctl monitors | grep 'dpmsStatus: 1' && hyprctl keyword monitor 'eDP-1,disable'"
# # if no external monitor is detected, lock the screen
# ", switch:on:Lid Switch, exec, sleep 0.5; hyprctl monitors | grep 'dpmsStatus: 1' || loginctl lock-session"
## on reopening the lid, turn the internal screen back on ## on reopening the lid, turn the internal screen back on
", switch:off:Lid Switch, exec, hyprctl dispatch dpms on eDP-1" ", switch:off:Lid Switch, exec, hyprctl dispatch dpms on eDP-1"
# if an external monitor was connected, then we need to reload the monitor configuration # we need to reload the monitor configuration so that the internal screen is turned back on
", switch:off:Lid Switch, exec, hyprctl monitors | grep 'ID 1' && hyprctl reload" ", switch:off:Lid Switch, exec, hyprctl reload"
]; ];
# bindr = [ # bindr = [
@@ -129,7 +134,21 @@ in
# resize the window using right click # resize the window using right click
"$mod, mouse:273, resizewindow" "$mod, mouse:273, resizewindow"
]; ];
}; };
extraConfig = ''
bind= , XF86AudioMicMute, submap, player_submap
submap=player_submap
bind=, XF86AudioRaiseVolume, exec, notify-send previous; hyprctl dispatch submap reset
bind=, XF86AudioLowerVolume, exec, notify-send next; hyprctl dispatch submap reset
bind=, XF86AudioMicMute, exec, notify-send pause; hyprctl dispatch submap reset
submap=reset
'';
}; };
}; };
} }

View File

@@ -5,16 +5,12 @@
settings = { settings = {
# # prevent the screen being shown for a split second
# animations = {
# animation = "fadeIn, 0, 0, linear";
# };
general = { general = {
# immediately lock the screen # immediately lock the screen
grace = 0; grace = 0;
no_fade_in = false; # no_fade_in = false;
disable_loading_bar = false; # disable_loading_bar = false;
}; };
background = { background = {

View File

@@ -17,7 +17,6 @@ in
config = { config = {
# required to autoload fonts from packages installed via Home Manager # required to autoload fonts from packages installed via Home Manager
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
@@ -27,7 +26,7 @@ in
]; ];
# enable waybar # enable waybar
programs.waybar.enable = true; programs.waybar.enable = false;
programs.waybar = { programs.waybar = {
settings = { settings = {
@@ -85,14 +84,17 @@ in
}; };
}; };
"clock" = { "clock" = {
format = " {:%H:%M}"; format = "{:%H:%M}";
interval = 1; interval = 1;
tooltip-format = "{calendar}"; tooltip-format = "{calendar}";
calendar = { # calendar = {
"format" = { # format = "%Y-%m-%d\n󰃰 %A\n\n%H:%M";
"today" = "<span color='#fAfBfC'><b>{}</b></span>"; # start-day = 1; # Monday
}; # first-weekday = 1; # Monday
}; # week-number = false;
# long-weekdays = true;
# hide-if-empty = false;
# };
}; };
"idle_inhibitor" = { "idle_inhibitor" = {
format = "{icon}"; format = "{icon}";
@@ -104,7 +106,7 @@ in
}; };
"bluetooth" = { "bluetooth" = {
format-on = "󰂯"; format-on = "󰂯";
format-off = "BT-off"; format-off = "󰂲";
format-disabled = "󰂲"; format-disabled = "󰂲";
format-connected-battery = "{device_battery_percentage}% 󰂯"; format-connected-battery = "{device_battery_percentage}% 󰂯";
format-alt = "{device_alias} 󰂯"; format-alt = "{device_alias} 󰂯";
@@ -137,7 +139,7 @@ in
format = "{volume}% {icon}";# {format_source}"; format = "{volume}% {icon}";# {format_source}";
format-bluetooth = "{volume}% {icon}";# {format_source}"; format-bluetooth = "{volume}% {icon}";# {format_source}";
format-bluetooth-muted = " {icon}";# {format_source}"; format-bluetooth-muted = " {icon}";# {format_source}";
format-muted = "🔇";# {format_source}"; format-muted = "";# {format_source}";
format-alt = "{format_source} {icon}"; format-alt = "{format_source} {icon}";
# format-source = " {volume}%"; # format-source = " {volume}%";
# format-source-muted = ""; # format-source-muted = "";

View File

@@ -47,6 +47,8 @@ in
cursor_trail_decay = "0.1 0.4"; cursor_trail_decay = "0.1 0.4";
url_style = "curly"; url_style = "curly";
notify_on_cmd_finish = "unfocused"; notify_on_cmd_finish = "unfocused";
window_padding_width = 5;
}; };
keybindings = { keybindings = {

View File

@@ -33,6 +33,10 @@ let
exit 1 exit 1
fi fi
''; '';
emojiPicker = pkgs.writeShellScriptBin "emoji-picker" ''
curl -s https://raw.githubusercontent.com/littleboycoding/emoji-dmenu/refs/heads/master/emoji.txt | fuzzel --dmenu | cut -d ' ' -f 1 | wl-copy
'';
in in
{ {
@@ -54,6 +58,12 @@ in
type = lib.types.package; type = lib.types.package;
default = filePicker; default = filePicker;
}; };
emojiPicker = lib.mkOption {
description = "Package to use as a emoji picker";
type = lib.types.package;
default = emojiPicker;
};
}; };
config = { config = {
@@ -107,6 +117,7 @@ in
home.packages = with pkgs; [ home.packages = with pkgs; [
powerMenu powerMenu
filePicker filePicker
emojiPicker
]; ];
}; };
} }

View File

@@ -0,0 +1,28 @@
{
lib,
pkgs,
...
}:
{
programs.dankMaterialShell.enable = true;
programs.dankMaterialShell = {
enableSystemd = true;
enableSystemMonitoring = false;
enableClipboard = true;
enableVPN = true;
enableBrightnessControl = true;
enableColorPicker = false;
enableDynamicTheming = true;
enableAudioWavelength = false;
enableCalendarEvents = false;
enableSystemSound = true;
# default = {
# settings = ''{}'';
# session = ''{}'';
# };
# plugins = {};
};
}

View File

@@ -52,7 +52,8 @@ in
stylix = { stylix = {
# Stylix is already enabled since the system is configured to use it # Stylix is already enabled since the system is configured to use it
# enable = true; enable = true;
image = ./../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg;
# don't theme applications by default # don't theme applications by default
autoEnable = false; autoEnable = false;
@@ -68,8 +69,8 @@ in
}; };
image = ./../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg;
polarity = lib.mkDefault "dark";
fonts = { fonts = {
@@ -107,41 +108,75 @@ in
popups = 0.9; popups = 0.9;
terminal = cfg.terminalOpacity; terminal = cfg.terminalOpacity;
}; };
base16Scheme = {
scheme = "onelight";
author = "https://github.com/one-dark";
base00 = "#fafafa";
base01 = "#f4f4f4";
base02 = "#e5e5e6";
base03 = "#dfdfe0";
base04 = "#d7d7d8";
base05 = "#383a42";
base06 = "#202227";
base07 = "#090a0b";
base08 = "#d84a3d";
base09 = "#a626a4";
base0A = "#c18401";
base0B = "#50a14f";
base0C = "#0070a8";
base0D = "#4078f2";
base0E = "#a626a4";
base0F = "#986801";
};
targets = {
hyprpaper.enable = true;
hyprlock.enable = true;
# disabled because they overwrite too many settings
# gnome
# wofi
# vscode
# waybar
# kitty
fontconfig.enable = true;
font-packages.enable = true;
};
}; };
stylix.base16Scheme = {
scheme = "onelight";
author = "https://github.com/one-dark";
base00 = "#fafafa";
base01 = "#f4f4f4";
base02 = "#e5e5e6";
base03 = "#dfdfe0";
base04 = "#d7d7d8";
base05 = "#383a42";
base06 = "#202227";
base07 = "#090a0b";
base08 = "#d84a3d";
base09 = "#a626a4";
base0A = "#c18401";
base0B = "#50a14f";
base0C = "#0070a8";
base0D = "#4078f2";
base0E = "#a626a4";
base0F = "#986801";
}; # https://pltanton.dev/posts/2024/02/nix-based-dark-light-theme-switch/
home.packages = [
(lib.lowPrio (pkgs.writeShellApplication {
name = "toggle-theme";
runtimeInputs = with pkgs; [ home-manager coreutils ripgrep ];
text =
''
"$(home-manager generations | head -1 | rg -o '/[^ ]*')"/specialisation/light-theme/activate
echo "Switched to light theme"
'';
}))
];
stylix.targets = {
hyprpaper.enable = true;
hyprlock.enable = true;
gnome.enable = true;
# disabled because they overwrite too many settings specialisation.light-theme.configuration = {
# wofi.enable = true; stylix = {
# vscode.enable = true; polarity = "light";
# waybar.enable = true; };
# kitty.enable = true;
home.packages = [
(lib.hiPrio (pkgs.writeShellApplication {
name = "toggle-theme";
runtimeInputs = with pkgs; [ home-manager coreutils ripgrep ];
text =
''
"$(home-manager generations | head -2 | tail -1 | rg -o '/[^ ]*')"/activate
echo "Switched to dark theme"
'';
}))
];
}; };
}; };
} }

View File

@@ -26,17 +26,6 @@
hardware.bluetooth = { hardware.bluetooth = {
enable = true; enable = true;
# powerOnBoot = true; powerOnBoot = false;
# settings = {
# General = {
# Name = "Nixtre";
# ControllerMode = "dual";
# FastConnectable = "true";
# Experimental = "true";
# };
# Policy = {
# AutoEnable = "true";
# };
# };
}; };
} }

31
modules/nixos/gnome.nix Normal file
View File

@@ -0,0 +1,31 @@
{
config,
lib,
pkgs,
...
}:
{
options.nix-config.gnome.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable GNOME desktop environment.";
};
config = lib.mkIf config.nix-config.gnome.enable {
services = {
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
gnome = {
core-apps.enable = false;
core-developer-tools.enable = false;
games.enable = false;
};
# Exclude some packages to keep the installation lean
environment.gnome.excludePackages = with pkgs; [
gnome-tour
gnome-user-docs
];
};
};
}

View File

@@ -1,24 +1,24 @@
{ {
config, config,
lib, lib,
pkgs, pkgs,
... ...
}: }:
{ {
virtualisation.containers.enable = true; virtualisation.containers.enable = true;
virtualisation = { virtualisation = {
podman = { podman = {
enable = true; enable = true;
dockerCompat = false; dockerCompat = false;
# Required for containers under podman-compose to be able to talk to each other. # Required for containers under podman-compose to be able to talk to each other.
defaultNetwork.settings.dns_enabled = true; defaultNetwork.settings.dns_enabled = true;
};
}; };
};
# Useful other development tools # Useful other development tools
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
podman-compose # start group of containers for dev podman-compose # start group of containers for dev
]; ];
} }

View File

@@ -1,5 +1,6 @@
{ {
config, config,
inputs,
lib, lib,
pkgs, pkgs,
... ...
@@ -15,94 +16,51 @@
}; };
}; };
imports = [
inputs.watt.nixosModules.default
];
config = { config = {
services.tlp = { # services.tlp = {
enable = true; # enable = true;
settings = { # settings = {
# processor chooses frequencies itself # # processor chooses frequencies itself but respects the limits set by the user
CPU_DRIVER_OPMODE_ON_AC = "active"; # CPU_DRIVER_OPMODE_ON_AC = "guided";
CPU_DRIVER_OPMODE_ON_BAT = "active"; # CPU_DRIVER_OPMODE_ON_BAT = "guided";
# governor dictates global behavior of the CPU # # governor dictates global behavior of the CPU
CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; # CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_SCALING_GOVERNOR_ON_AC = "performance"; # CPU_SCALING_GOVERNOR_ON_AC = "performance";
# energy performance policy (EPP) sets the energy/performance balance # # energy performance policy (EPP) sets the energy/performance balance
CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power"; # CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; # CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
# CPU_MIN_PERF_ON_AC = 0;
# CPU_MAX_PERF_ON_AC = 100;
# CPU_MIN_PERF_ON_BAT = 0;
# CPU_MAX_PERF_ON_BAT = 50;
# enable battery charge thresholds on the default battery
STOP_CHARGE_THRESH_BAT0 = 1;
# STOP_CHARGE_THRESH_BAT0 = 80; # # clock speeds reported by `sudo tlp-stat`
# # 623377 [kHz] and 5090910 [kHz]
# # CPU_SCALING_MIN_FREQ_ON_AC = 623377;
# # CPU_SCALING_MAX_FREQ_ON_AC = 5090910;
# # CPU_SCALING_MIN_FREQ_ON_BAT = 0;
# # # reduce max frequency on battery to save power
# # CPU_SCALING_MAX_FREQ_ON_BAT = 3000000;
# CPU_BOOST_ON_AC = 1; # # Allow the CPU to boost
# CPU_BOOST_ON_BAT = 0; # CPU_BOOST_ON_AC = 1;
# CPU_HWP_DYN_BOOST_ON_AC = 1; # CPU_BOOST_ON_BAT = 1;
# CPU_HWP_DYN_BOOST_ON_BAT = 0;
};
};
# services.watt = { # RADEON_DPM_PERF_LEVEL_ON_AC = "high";
# enable = true; # WIFI_PWR_ON_BAT = "off";
# settings = {
# charger = {
# governor = "performance";
# turbo = "auto";
# epp = "performance";
# epb = "balance_performance";
# platform_profile = "performance";
# enable_auto_turbo = true; # # enable battery charge thresholds on the default battery
# # Custom thresholds for auto turbo management # STOP_CHARGE_THRESH_BAT0 = 1;
# turbo_auto_settings = { # };
# load_threshold_high = 70.0; # };
# load_threshold_low = 30.0;
# temp_threshold_high = 75.0;
# initial_turbo_state = false; # whether turbo should be initially enabled (false = disabled)
# };
# };
# battery = {
# governor = "powersave";
# turbo = "auto";
# epp = "power";
# epb = "balance_power";
# platform_profile = "low-power";
# enable_auto_turbo = true;
# # Custom thresholds for auto turbo management
# turbo_auto_settings = {
# load_threshold_high = 80.0;
# load_threshold_low = 40.0;
# temp_threshold_high = 65.0;
# initial_turbo_state = false; # whether turbo should be initially enabled (false = disabled)
# };
# };
# daemon = {
# poll_interval_sec = 10;
# adaptive_interval = true;
# min_poll_interval_sec = 1;
# max_poll_interval_sec = 30;
# throttle_on_battery = true;
# stats_file_path = "/var/run/watt-stats";
# };
# # battery_charge_thresholds = [50 90];
# };
# # logind.lidSwitchExternalPower = "ignore"; # prevent lid switch from triggering a suspend
# };
systemd.sleep.extraConfig = '' systemd.sleep.extraConfig = ''
AllowSuspend=yes AllowSuspend=yes
@@ -110,6 +68,28 @@
AllowHybridSleep=yes AllowHybridSleep=yes
AllowSuspendThenHibernate=yes AllowSuspendThenHibernate=yes
''; '';
services.watt = {
enable = true;
settings = {
battery_charge_thresholds = [
40
80
];
};
};
services.upower.enable = true;
services.irqbalance = {
enable = true;
};
services.thermald = {
enable = true;
};
}; };
} }

View File

@@ -5,7 +5,29 @@
... ...
}: }:
{ {
stylix.enable = true; stylix = {
stylix.image = ./../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg; enable = true;
polarity = "dark";
homeManagerIntegration.followSystem = false;
base16Scheme = {
# scheme = "onedark";
# author = "https://github.com/one-dark";
base00 = "#282c34";
base01 = "#353b45";
base02 = "#3e4451";
base03 = "#545862";
base04 = "#565c64";
base05 = "#abb2bf";
base06 = "#b6bdca";
base07 = "#c8ccd4";
base08 = "#e06c75";
base09 = "#d19a66";
base0A = "#e6c07b";
base0B = "#98c379";
base0C = "#56b6c2";
base0D = "#61afef";
base0E = "#c678dd";
base0F = "#be5046";
};
};
} }

View File

@@ -20,6 +20,7 @@ in
isNormalUser = true; isNormalUser = true;
extraGroups = [ extraGroups = [
"wheel" # Enable sudo for the user. "wheel" # Enable sudo for the user.
"input"
# other groups are added as needed, eg. networkmanager # other groups are added as needed, eg. networkmanager
]; ];
}; };

View File

@@ -1,4 +1,4 @@
{ config, pkgs, lib, ... }: { config, nixpkgs, lib, ... }:
with lib.hm.gvariant; with lib.hm.gvariant;
{ {
config = { config = {
@@ -9,6 +9,9 @@ with lib.hm.gvariant;
scale = "1.6"; scale = "1.6";
}; };
}; };
# quickshell = {
# enable = true;
# };
}; };
}; };
@@ -22,6 +25,7 @@ with lib.hm.gvariant;
../../modules/home-manager/documents.nix ../../modules/home-manager/documents.nix
../../modules/home-manager/fish.nix ../../modules/home-manager/fish.nix
../../modules/home-manager/flatpaks.nix ../../modules/home-manager/flatpaks.nix
../../modules/home-manager/fusuma.nix
../../modules/home-manager/hypr ../../modules/home-manager/hypr
../../modules/home-manager/keepassxc.nix ../../modules/home-manager/keepassxc.nix
../../modules/home-manager/kitty.nix ../../modules/home-manager/kitty.nix
@@ -30,6 +34,7 @@ with lib.hm.gvariant;
../../modules/home-manager/notifications.nix ../../modules/home-manager/notifications.nix
../../modules/home-manager/obsidian.nix ../../modules/home-manager/obsidian.nix
../../modules/home-manager/owncloud-client.nix ../../modules/home-manager/owncloud-client.nix
../../modules/home-manager/quickshell
../../modules/home-manager/ssh.nix ../../modules/home-manager/ssh.nix
../../modules/home-manager/stylix.nix ../../modules/home-manager/stylix.nix
../../modules/home-manager/thunderbird.nix ../../modules/home-manager/thunderbird.nix