Compare commits

6 Commits

Author SHA1 Message Date
c13603ebb9 remove hypr from home-manager config 2025-10-09 10:05:39 +02:00
493859058e grub config now included 2025-10-09 10:03:12 +02:00
24667d777e grub devices now 2025-10-09 10:01:09 +02:00
c2563b0521 need to remove watt 2025-10-09 09:57:11 +02:00
d3b2e18af9 not on 25.11 yet 2025-10-09 09:54:27 +02:00
a2ca62e0af little whoopsie 2025-10-09 09:49:10 +02:00
34 changed files with 975 additions and 618 deletions

1
.envrc
View File

@@ -1 +0,0 @@
use flake

2
.gitignore vendored
View File

@@ -1,4 +1,2 @@
# Result is a symlink to the built iso # Result is a symlink to the built iso
result result
# direnv binaries
.direnv

View File

@@ -1,12 +1,14 @@
# This example uses YAML anchors which allows reuse of multiple keys
# without having to repeat yourself.
# Also see https://github.com/Mic92/dotfiles/blob/d6114726d859df36ccaa32891c4963ae5717ef7f/nixos/.sops.yaml
# for a more complex example.
keys: keys:
- &remy_usb age1027e2vu808mvf95m4f0am3aeg88n8vgzt56s04ndpkgm7awzeajspxl6tu - &remy_usb age1027e2vu808mvf95m4f0am3aeg88n8vgzt56s04ndpkgm7awzeajspxl6tu
- &remy_yoga ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAX4zsiXSSWbE75C0wyBVwaHOw6Gsbh/WqQsgEhvPwT8 remy@nyx - &remy_yoga age1t2stzdjfwrtekk23w43623fdvt9awdujth765f8l6mu9g6l4537q4gw8d0
# - &admin_bob age12zlz6lvcdk6eqaewfylg35w0syh58sm7gh53q5vvn7hd7c6nngyseftjxl
- &host_yoga age1ckqer7nxzq7q58v9xaqy8ac9vx2va69a46t86wp9m78pj5dpuy3sq8xeaj
creation_rules: creation_rules:
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$ - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
key_groups: key_groups:
- age: - age:
- *remy_usb - *remy_usb
- *remy_yoga - *remy_yoga
- *host_yoga

353
flake.lock generated
View File

@@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1761420899, "lastModified": 1755946532,
"narHash": "sha256-kxGCip6GNbcbNWKu4J2iKbNYfFTS8Zbjg9CWp0zmFoM=", "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "62479232aae42c1ef09c2c027c8cfd91df060897", "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -38,11 +38,11 @@
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
}, },
"locked": { "locked": {
"lastModified": 1755819240, "lastModified": 1746562888,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "base16.nix", "repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -54,28 +54,27 @@
"base16-fish": { "base16-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1754405784, "lastModified": 1622559957,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=", "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"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": 1752979451, "lastModified": 1748408240,
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=", "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-helix", "repo": "base16-helix",
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac", "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -101,79 +100,14 @@
"type": "github" "type": "github"
} }
}, },
"dankMaterialShell": {
"inputs": {
"dgop": "dgop",
"dms-cli": [
"dms-cli"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1762403774,
"narHash": "sha256-CXgW0EEW+WV4jJ/5mxNluQeTgS6wyuuUlUcsZF84bKU=",
"owner": "AvengeMedia",
"repo": "DankMaterialShell",
"rev": "c9ee856f916023563d9446483024a8aec2dce870",
"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": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1762404200,
"narHash": "sha256-/GhnVY1AwcgxOVhSXdrejVQNbi27kXRNMD93C2nH5ho=",
"owner": "AvengeMedia",
"repo": "danklinux",
"rev": "b94cc56f44e7fb987d293e4880871fa0845da8ed",
"type": "github"
},
"original": {
"owner": "AvengeMedia",
"repo": "danklinux",
"type": "github"
}
},
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1758112371, "lastModified": 1748383148,
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=", "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d", "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -206,11 +140,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1756770412, "lastModified": 1749398372,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751", "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -260,16 +194,16 @@
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1748186689, "lastModified": 1744584021,
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "GNOME", "owner": "GNOME",
"ref": "48.2", "ref": "48.1",
"repo": "gnome-shell", "repo": "gnome-shell",
"type": "github" "type": "github"
} }
@@ -281,15 +215,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1762367206, "lastModified": 1756679287,
"narHash": "sha256-c/164YOPkV09BH8KIUdvVvJs3VF2LNIbE2piKGgXPxk=", "narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "af119feb17cb242398e0fb97f92b867d25882522", "rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
"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"
} }
@@ -302,11 +237,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1762351818, "lastModified": 1752603129,
"narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=", "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea", "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -360,11 +295,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760445448, "lastModified": 1756891319,
"narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=", "narHash": "sha256-/e6OXxzbAj/o97Z1dZgHre4bNaVjapDGscAujSCQSbI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "50fb9f069219f338a11cf0bcccb9e58357d67757", "rev": "621e2e00f1736aa18c68f7dfbf2b9cff94b8cc4d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -389,11 +324,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1762387591, "lastModified": 1757423991,
"narHash": "sha256-dbxpwgat8W/+P/cYnLXzoj5Gi8WKdtMgvqHuEzIU8fs=", "narHash": "sha256-tL+b6WC4gJJSo6wjNVIZpQ0DsYg8RmoGHxYuk6jJKbU=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "c757fd375cce299e3da922190ddf1a0622ce807c", "rev": "150d693fe794a01aab762a18d2d8a2c8bc54b43c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -414,11 +349,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759610243, "lastModified": 1749046714,
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-protocols", "repo": "hyprland-protocols",
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -482,11 +417,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759080228, "lastModified": 1753819801,
"narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=", "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-qtutils", "repo": "hyprland-qtutils",
"rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7", "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -511,11 +446,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1758927902, "lastModified": 1756810301,
"narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -536,11 +471,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1762208756, "lastModified": 1756117388,
"narHash": "sha256-hC1jb4tdjFfEuU18KQiMgz5XPAO+d5SfbjAUS7haLl4=", "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "164a30b3d8b3174a32ac7326782476f1188e6118", "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -576,47 +511,27 @@
}, },
"nix-flatpak": { "nix-flatpak": {
"locked": { "locked": {
"lastModified": 1754777568, "lastModified": 1711997201,
"narHash": "sha256-0bBqT+3XncgF8F03RFAamw9vdf0VmaDoIJLTGkjfQZs=", "narHash": "sha256-J71xzQlVYsjagA4AsVwRazhBh2rZrPpKvxTgs6UzL7c=",
"owner": "gmodena", "owner": "gmodena",
"repo": "nix-flatpak", "repo": "nix-flatpak",
"rev": "62f636b87ef6050760a8cb325cadb90674d1e23e", "rev": "b76fa31346db7fc958a9898f3c594696ca71c4fd",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "gmodena", "owner": "gmodena",
"ref": "v0.4.1",
"repo": "nix-flatpak", "repo": "nix-flatpak",
"type": "github" "type": "github"
} }
}, },
"nix4vscode": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2"
},
"locked": {
"lastModified": 1762394598,
"narHash": "sha256-AbDS8JL8mXAP0gVAXQA1RIUwnH6rUHueCTPf/hxAooE=",
"owner": "nix-community",
"repo": "nix4vscode",
"rev": "4c90ca996c860583f8fc77fa8abd24610439f850",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix4vscode",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1762111121, "lastModified": 1757068644,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -628,11 +543,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1762111121, "lastModified": 1757347588,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "rev": "b599843bad24621dcaa5ab60dac98f9b0eb1cabe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -644,16 +559,32 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1762111121, "lastModified": 1757408970,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "narHash": "sha256-aSgK4BLNFFGvDTNKPeB28lVXYqVn8RdyXDNAvgGq+k0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "rev": "d179d77c139e0a3f5c416477f7747e9d6b7ec315",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-unstable", "ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1751211869,
"narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@@ -667,14 +598,15 @@
"nixpkgs": [ "nixpkgs": [
"stylix", "stylix",
"nixpkgs" "nixpkgs"
] ],
"treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1758998580, "lastModified": 1751320053,
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=", "narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728", "rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -693,11 +625,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760663237, "lastModified": 1757239681,
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=", "narHash": "sha256-E9spYi9lxm2f1zWQLQ7xQt8Xs2nWgr1T4QM7ZjLFphM=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37", "rev": "ab82ab08d6bf74085bd328de2a8722c12d97bd9d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -706,16 +638,34 @@
"type": "github" "type": "github"
} }
}, },
"quickshell": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1758273351,
"narHash": "sha256-wOv1guIi9THD1NjOtBU2Xh/Avg9xv7nIjsfFSkr1NeQ=",
"ref": "refs/heads/master",
"rev": "e9a574d919a89602d2868621576b2ccae54a5cb0",
"revCount": 675,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}
},
"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",
"nix4vscode": "nix4vscode",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"quickshell": "quickshell",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"stylix": "stylix", "stylix": "stylix",
"watt": "watt", "watt": "watt",
@@ -729,11 +679,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760998189, "lastModified": 1757449901,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", "narHash": "sha256-qwN8nYdSRnmmyyi+uR6m4gXnVktmy5smG1MOrSFD8PI=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", "rev": "3b4a369df9dd6ee171a7ea4448b50e2528faf850",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -751,11 +701,9 @@
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": [ "nixpkgs": "nixpkgs_3",
"nixpkgs"
],
"nur": "nur", "nur": "nur",
"systems": "systems_3", "systems": "systems_2",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
@@ -763,15 +711,16 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1762264356, "lastModified": 1757361712,
"narHash": "sha256-QVfC53Ri+8n3e7Ujx9kq6all3+TLBRRPRnc6No5qY5w=", "narHash": "sha256-GwObJtrAqVim66e4Jb5VzAKT6zGFJ3KOi63rfcrfMV4=",
"owner": "nix-community", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "647bb8dd96a206a1b79c4fd714affc88b409e10b", "rev": "3bf1430ed85a4484e4e1facee2344d2bb20288e6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "danth",
"ref": "release-25.05",
"repo": "stylix", "repo": "stylix",
"type": "github" "type": "github"
} }
@@ -792,22 +741,6 @@
} }
}, },
"systems_2": { "systems_2": {
"flake": false,
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -858,11 +791,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1757716333, "lastModified": 1750770351,
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=", "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559", "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -874,11 +807,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1757811970, "lastModified": 1751159871,
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=", "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e", "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -890,11 +823,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1757811247, "lastModified": 1751158968,
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=", "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e", "rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -903,6 +836,28 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"stylix",
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"watt": { "watt": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -952,11 +907,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1761431178, "lastModified": 1755354946,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -973,11 +928,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1762403216, "lastModified": 1757395105,
"narHash": "sha256-BPv/dC0S54hqsurgmxGxUbXb3kJMpK3KNKQDrdO4NRE=", "narHash": "sha256-kwctEcCrHXZg80POmuOfqRqxSjy8bXhdBuNcRWaEpFA=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "a3a22c5ad43f46f8ddad7eed8aa7f82ec649765f", "rev": "d7b87e67233fdb42e655600f3de4c2e8a13bc6a7",
"type": "github" "type": "github"
}, },
"original": { "original": {

235
flake.nix
View File

@@ -1,31 +1,22 @@
{ {
description = "Nix config entry point"; description = "Nix config entry point";
# since secrets live in a submodule, enable submodules by default
inputs.self.submodules = true;
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Home manager # Home manager
home-manager = { home-manager.url = "github:nix-community/home-manager/release-25.05";
url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
# Managing flatpak apps # Managing flatpak apps
nix-flatpak.url = "github:gmodena/nix-flatpak"; nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
# 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-25.05";
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
# zen browser # zen browser
zen-browser = { zen-browser.url = "github:0xc000022070/zen-browser-flake";
url = "github:0xc000022070/zen-browser-flake"; # IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
inputs.nixpkgs.follows = "nixpkgs"; # to have it up-to-date or simply don't specify the nixpkgs input
}; zen-browser.inputs.nixpkgs.follows = "nixpkgs";
# power management # power management
watt = { watt = {
@@ -34,26 +25,15 @@
}; };
# secrets # secrets
sops-nix = { sops-nix.url = "github:Mic92/sops-nix";
url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
# quickshell # quickshell
dms-cli = { quickshell = {
url = "github:AvengeMedia/danklinux"; url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
dankMaterialShell = {
url = "github:AvengeMedia/DankMaterialShell";
inputs.nixpkgs.follows = "nixpkgs";
inputs.dms-cli.follows = "dms-cli";
};
nix4vscode = {
url = "github:nix-community/nix4vscode";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { outputs = {
@@ -63,117 +43,102 @@
home-manager, home-manager,
stylix, stylix,
sops-nix, sops-nix,
nix4vscode, quickshell,
... ...
} @ 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.nix4vscode.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; };
};
# Merge in all the user fragments for this host ## NixOS configurations are the main output of this flake
home-manager.users.remy = lib.mkMerge cfg.userModules; # HP Spectre x360 2018
} nixosConfigurations.Nixtre = nixpkgs.lib.nixosSystem {
] system = "x86_64-linux";
; specialArgs = { inherit inputs; };
}
) systems;
modules = [
./hosts/spectre-x360-2018
stylix.nixosModules.stylix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
# ## Useful nix build tools home-manager.users.remy.imports = [
# # iso builder TODO ./users/remy_spectre
# nixosConfigurations.bcachefs-iso = nixpkgs.lib.nixosSystem { inputs.nix-flatpak.homeManagerModules.nix-flatpak
# 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;
# })
# ];
# };
# devshell for this configuration
devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell {
packages = [
pkgs.sops
]; ];
};
# tell sops where the public ssh key to "seed" the age key from is located
SOPS_AGE_SSH_PRIVATE_KEY_FILE = "/home/remy/.ssh/main_key"; nixosConfigurations.nichts = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/mobile-usb
stylix.nixosModules.stylix
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_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
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

@@ -13,6 +13,7 @@
imports = [ imports = [
./configuration.nix ./configuration.nix
./hardware-configuration.nix ./hardware-configuration.nix
./usb_config.nix
# ../../modules/nixos/backup.nix # ../../modules/nixos/backup.nix
../../modules/nixos/bluetooth.nix ../../modules/nixos/bluetooth.nix
@@ -27,7 +28,7 @@
../../modules/nixos/nh.nix ../../modules/nixos/nh.nix
../../modules/nixos/pipewire.nix ../../modules/nixos/pipewire.nix
../../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/user.nix ../../modules/nixos/user.nix

View File

@@ -11,6 +11,7 @@
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ]; boot.kernelModules = [ ];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =

View File

@@ -8,7 +8,7 @@
boot.loader.grub.efiSupport = true; boot.loader.grub.efiSupport = true;
# location at install time. Since the drive is a USB drive this is expcected to change on each device # location at install time. Since the drive is a USB drive this is expcected to change on each device
boot.loader.grub.device = "/dev/sdb"; boot.loader.grub.devices = ["/dev/sdb"];
boot.loader.grub.efiInstallAsRemovable = true; boot.loader.grub.efiInstallAsRemovable = true;
boot.loader.systemd-boot.enable = false; boot.loader.systemd-boot.enable = false;

View File

@@ -5,21 +5,17 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
boot.loader = { boot.loader = {
systemd-boot.enable = true; systemd-boot.enable = true;
timeout = 0; timeout = 0;
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
services.logind.settings.Login = { # cause it is so inconveniently located
# because it is so inconveniently located services.logind.powerKey = "ignore";
HandlePowerKey = "ignore"; services.logind.lidSwitch = "sleep";
services.logind.lidSwitchDocked = "ignore";
# handled by the dm instead
HandleLidSwitch = "ignore";
HandleLidSwitchDocked = "ignore";
};
# requires too many shenanigans so I just install using --no-root-passwd # requires too many shenanigans so I just install using --no-root-passwd
# users.users.root.hashedPassword = "!"; # users.users.root.hashedPassword = "!";

View File

@@ -26,7 +26,6 @@
../../modules/nixos/pipewire.nix ../../modules/nixos/pipewire.nix
../../modules/nixos/podman.nix ../../modules/nixos/podman.nix
../../modules/nixos/power.nix ../../modules/nixos/power.nix
../../modules/nixos/sops.nix
../../modules/nixos/stylix.nix ../../modules/nixos/stylix.nix
../../modules/nixos/user.nix ../../modules/nixos/user.nix

View File

@@ -19,16 +19,11 @@
]; ];
# https://github.com/lwfinger/rtw89/issues/240 # https://github.com/lwfinger/rtw89/issues/240
# boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
# options rtw89_pci disable_aspm_l1ss=y disable_aspm_l1=y disable_clkreq=y options rtw89_pci disable_aspm_l1ss=y disable_aspm_l1=y disable_clkreq=y
# options rtw89_core disable_ps_mode=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; services.fwupd.enable = true;

View File

@@ -1,16 +1,24 @@
{pkgs, ...}: {pkgs, ...}:
let let
baseExtensions = pkgs.nix4vscode.forVscode [ baseExtensions = with pkgs.vscode-extensions; [
# 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
]; ];
# baseExtensions = with pkgs; [
# (vscode-with-extensions.override {
# vscodeExtensions = with vscode-extensions; [
# bbenoist.nix
# ];
# })
# ];
baseSettings = { baseSettings = {
# visual # visual
@@ -93,30 +101,31 @@ 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 ++ pkgs.nix4vscode.forVscode [ extensions = baseExtensions ++ (with pkgs.vscode-extensions; [
# python # python
"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
# nix language # nix language
"jnoortheen.nix-ide" jnoortheen.nix-ide
# Flutter and co # Flutter and co
"dart-code.flutter" dart-code.flutter
"dart-code.dart-code" dart-code.dart-code
]; ]);
keybindings = baseKeybindings; keybindings = baseKeybindings;
@@ -125,18 +134,29 @@ in
profiles.science = { profiles.science = {
extensions = baseExtensions ++ pkgs.nix4vscode.forVscode [ extensions = baseExtensions ++ (with pkgs.vscode-extensions; [
# 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-renderers
"ms-toolsai.jupyter-hub"
"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 ++ [
@@ -176,7 +196,10 @@ in
"workbench.colorCustomizations" = { "workbench.colorCustomizations" = {
"statusBar.background" = "#003f9293"; "statusBar.background" = "#003f9293";
}; };
}; };
}; };
}; };
} }

View File

@@ -11,7 +11,7 @@
createDirectories = true; createDirectories = true;
documents = "${config.home.homeDirectory}/Documents"; documents = "${config.home.homeDirectory}/Documents";
download = "${config.home.homeDirectory}/Downloads"; download = "${config.home.homeDirectory}/Downloads";
pictures = "${config.home.homeDirectory}/Pictures"; pictures = "${config.home.homeDirectory}/Pictures";#
# do not create the following # do not create the following
desktop = null; desktop = null;
music = null; music = null;

View File

@@ -1,23 +1,9 @@
{ {
config,
lib,
...
}:
let
cfg = config.nix-config.hypr;
in
{
options = {
nix-config.hypr.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable an opinionated hyprland+quickshell setup as a desktop environment.";
};
};
imports = [ imports = [
./hyprland ./hyprland
./hyprpaper.nix
./hyprlock.nix ./hyprlock.nix
./hypridle.nix ./hypridle.nix
./waybar.nix
]; ];
} }

View File

@@ -9,6 +9,7 @@ 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 # TODO - currently broken
"${pkgs.owncloud-client}" "${pkgs.owncloud-client}"

View File

@@ -19,8 +19,7 @@ in
}; };
config = { config = {
wayland.windowManager.hyprland = {
wayland.windowManager.hyprland = lib.mkIf cfg.enable {
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
settings = { settings = {
@@ -29,11 +28,10 @@ in
# }; # };
general = { general = {
resize_on_border = true; resize_on_border = true;
gaps_in = 3; gaps_in = 5;
gaps_out = 3; gaps_out = 5;
border_size = 1; border_size = 1;
"col.active_border" = "rgb(98971A) rgb(CC241D) 45deg"; "col.active_border" = "rgb(98971A) rgb(CC241D) 45deg";
"col.inactive_border" = "rgba(595959aa)";
layout = "master"; layout = "master";
}; };
@@ -63,10 +61,9 @@ in
}; };
decoration = { decoration = {
rounding = 10; rounding = 7;
# active_opacity = 0.95;
inactive_opacity = 0.9; inactive_opacity = 0.9;
dim_inactive = false;
dim_strength = 0.1;
shadow = { shadow = {
enabled = false; enabled = false;
@@ -97,16 +94,6 @@ in
"float, class:org.gnome.Nautilus" "float, class:org.gnome.Nautilus"
# when there is a single window, deactivate border and gaps # when there is a single window, deactivate border and gaps
# "border_size 0, onworkspace:w[tv1], " # "border_size 0, onworkspace:w[tv1], "
# File pickers and dialogs
"float, title:^(Save As)$"
"float, title:^(Open File)$"
"size 50% 50%, title:^(Open File)$"
"center, title:^(Open File)$"
# Disable idle when gaming
"idleinhibit always, class:^(steam_app_)"
"idleinhibit always, class:^(gamescope)$"
]; ];
}; };

View File

@@ -17,7 +17,7 @@ in
"$mod, return, exec, kitty" "$mod, return, exec, kitty"
"$mod, b, exec, ${cfg.browser}" "$mod, b, exec, ${cfg.browser}"
"$mod, s, exec, ${cfg.ide}" "$mod, s, exec, ${cfg.ide}"
"$mod, e, exec, ${lib.getExe pkgs.nautilus}" "$mod, e, exec, nautilus"
# Lock screen # Lock screen
"$mod, l, exec, loginctl lock-session" "$mod, l, exec, loginctl lock-session"
@@ -54,10 +54,10 @@ in
"$mod+Ctrl, right, movetoworkspace, +1" "$mod+Ctrl, right, movetoworkspace, +1"
# Switch workspace # Switch workspace
"$mod, left, workspace, prev" "$mod, left, workspace, -1"
"$mod, right, workspace, next" "$mod, right, workspace, +1"
"$mod, mouse_down, workspace, prev" "$mod, mouse_down, workspace, -1"
"$mod, mouse_up, workspace, next" "$mod, mouse_up, workspace, +1"
# move to scratch workspace # move to scratch workspace
@@ -101,6 +101,8 @@ 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

View File

@@ -8,33 +8,35 @@ in
settings = { settings = {
master = { master = {
# no_gaps_when_only = true; # TODO - I am not yet happy about the layout + toggle keybinds
orientation = "center";
# default: single app is centered/fullscreen; when more apps are added it splits # equivalent toalways_center_master = true;
orientation = "right"; slave_count_for_center_master = 0;
# keep center-master behaviour when there is exactly 1 slave (i.e. single app appears fullscreen) # new_is_master = false;
slave_count_for_center_master = 1; # allow_small_split = true;
# only split in two columns # special_scale_factor = 0.80;
mfact = 0.6; mfact = 0.34;
inherit_fullscreen = false; inherit_fullscreen = false;
# always_center_master = false;
# allow a maximum of 3 windows in the master area for 3-column layout
}; };
# #create special workspaces with no gaps #create special workspaces with no gaps
# workspace = [ workspace = [
# "w[t1], gapsout:0, gapsin:0" "w[t1], gapsout:0, gapsin:0"
# "w[tg1], gapsout:0, gapsin:0" "w[tg1], gapsout:0, gapsin:0"
# "f[1], gapsout:0, gapsin:0" "f[1], gapsout:0, gapsin:0"
# ]; ];
# # automatically assign windows to workspaces when there is only one window # automatically assign windows to workspaces when there is only one window
# windowrulev2 = [ windowrulev2 = [
# "bordersize 0, floating:0, onworkspace:w[t1]" "bordersize 0, floating:0, onworkspace:w[t1]"
# "rounding 0, floating:0, onworkspace:w[t1]" "rounding 0, floating:0, onworkspace:w[t1]"
# "bordersize 0, floating:0, onworkspace:w[tg1]" "bordersize 0, floating:0, onworkspace:w[tg1]"
# "rounding 0, floating:0, onworkspace:w[tg1]" "rounding 0, floating:0, onworkspace:w[tg1]"
# "bordersize 0, floating:0, onworkspace:f[1]" "bordersize 0, floating:0, onworkspace:f[1]"
# "rounding 0, floating:0, onworkspace:f[1]" "rounding 0, floating:0, onworkspace:f[1]"
# ]; ];
misc = { misc = {
vfr = false; vfr = false;
@@ -43,14 +45,12 @@ in
# Keybind to toggle between 2 and 3 column master layout # Keybind to toggle between 2 and 3 column master layout
bind = [ bind = [
# Toggle master layout between 2 and 3 columns (press $mod + m) # Toggle master layout between 2 and 3 columns
"$mod, m, exec, hyprctl dispatch layoutmsg orientationcenter" "$mod, m, exec, hyprctl dispatch layoutmsg orientationleft"
"$mod, m, exec, hyprctl dispatch layoutmsg mfact exact 0.34" "$mod, m, exec, hyprctl dispatch layoutmsg mfact exact 0.5"
# "SUPER_SHIFT,C,exec,hyprctl dispatch layoutmsg swap_master_count 2 3"
# Toggle master layout between 3 and 2 columns (press $mod + Shift + m)
"$mod, Shift+m, exec, hyprctl dispatch layoutmsg orientationright"
"$mod, Shift+m, exec, hyprctl dispatch layoutmsg mfact exact 0.6"
]; ];
}; };
}; };
}; };

View File

@@ -9,6 +9,7 @@ in
pkgs.nautilus pkgs.nautilus
pkgs.gnome-control-center pkgs.gnome-control-center
pkgs.gnome-bluetooth # needed by gnome-control-center to manage bluetooth pkgs.gnome-bluetooth # needed by gnome-control-center to manage bluetooth
pkgs.brightnessctl
pkgs.cliphist pkgs.cliphist
pkgs.wl-clipboard pkgs.wl-clipboard
pkgs.gcr # Provides org.gnome.keyring.SystemPrompter pkgs.gcr # Provides org.gnome.keyring.SystemPrompter

View File

@@ -0,0 +1,66 @@
{
pkgs,
lib,
...
}:
let
wallpapers = [
../../../wallpapers/codioful-formerly-gradienta-lweK7Wme_jo-unsplash.jpg
../../../wallpapers/codioful-formerly-gradienta-n2XqPm7Bqhk-unsplash.jpg
../../../wallpapers/luke-chesser-eICUFSeirc0-unsplash.jpg
../../../wallpapers/luke-chesser-pJadQetzTkI-unsplash.jpg
../../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg
];
monitor = ""; # leave empty to set the wallpaper on all monitors
wallpaperPicker = pkgs.writeShellScriptBin "wallpaper-picker" ''
#!/usr/bin/env bash
# use an array of wallpapers to randomly select one
wallpapers=(${pkgs.lib.concatStringsSep " " (map (p: "${p}") wallpapers)})
# select a random wallpaper from the array
index=$((RANDOM % ${toString (builtins.length wallpapers)}))
wallpaper="''${wallpapers[index]}"
echo "Setting wallpaper to: $wallpaper"
hyprctl hyprpaper unload all
hyprctl hyprpaper reload "${monitor},$wallpaper"
'';
in {
home.packages = [wallpaperPicker];
services.hyprpaper = {
enable = true;
settings = {
ipc = "on";
};
};
# systemd.user = {
# services.wallpaperRandomizer = {
# Install = {WantedBy = ["graphical-session.target"];};
# Unit = {
# Description = "Set random desktop background using hyprpaper";
# After = ["graphical-session-pre.target"];
# PartOf = ["graphical-session.target"];
# };
# Service = {
# Type = "oneshot";
# ExecStart = "${wallpaperRandomizer}/bin/wallpaperRandomizer";
# IOSchedulingClass = "idle";
# };
# };
# timers.wallpaperRandomizer = {
# Unit = {Description = "Set random desktop background using hyprpaper on an interval";};
# Timer = {OnUnitActiveSec = "6h";};
# Install = {WantedBy = ["timers.target"];};
# };
# };
}

View File

@@ -0,0 +1,331 @@
{inputs, pkgs, lib, config, ...}:
let
cfg = config.nix-config.style;
in
{
options.nix-config.waybar = {
burninPrevention = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable burn-in prevention for Waybar";
example = ''
burninPrevention = true;
'';
};
};
config = {
# required to autoload fonts from packages installed via Home Manager
fonts.fontconfig.enable = true;
# waybar requires font-awesome
home.packages = [
pkgs.pavucontrol
];
# enable waybar
programs.waybar.enable = true;
programs.waybar = {
settings = {
mainBar = {
layer = "top";
position = "top";
margin-top = 5;
# margin-bottom = 2;
# margin-left = 5;
# margin-right = 5;
# margin between the modules
spacing = 2;
modules-left = [
"hyprland/workspaces"
"hyprland/window"
];
modules-center = [
"clock"
"custom/notification"
];
modules-right = [
"tray"
"privacy"
"network"
"bluetooth"
"wireplumber"
"battery"
"backlight"
"idle_inhibitor"
];
# module specific settings
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
active = "";
default = "";
};
};
"hyprland/window"= {
"icon" = true;
"separate-outputs" = true;
"format" = "{}";
"rewrite" = {
"(.*) Mozilla Firefox" = "$1";
"(.*) Zen Browser" = "$1";
"(.*) - fish" = "> [$1]";
"(.*) - Visual Studio Code" = "$1";
};
};
"clock" = {
format = "{:%H:%M}";
interval = 1;
tooltip-format = "{calendar}";
# calendar = {
# format = "%Y-%m-%d\n󰃰 %A\n\n%H:%M";
# start-day = 1; # Monday
# first-weekday = 1; # Monday
# week-number = false;
# long-weekdays = true;
# hide-if-empty = false;
# };
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"bluetooth" = {
format-on = "󰂯";
format-off = "󰂲";
format-disabled = "󰂲";
format-connected-battery = "{device_battery_percentage}% 󰂯";
format-alt = "{device_alias} 󰂯";
tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
tooltip-format-enumerate-connected = "{device_alias}\n{device_address}";
tooltip-format-enumerate-connected-battery = "{device_alias}\n{device_address}\n{device_battery_percentage}%";
on-click-right = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center bluetooth";
};
"battery" = {
interval = 60;
states = {
good = 80;
warning = 30;
critical = 10;
};
format = "{capacity}% {icon}";
format-charging = "{capacity}% 󰂄";
format-plugged = "{capacity}% 󰂄";
format-icons = [ "󰁻" "󰁼" "󰁾" "󰂀" "󰂂" "󰁹" ];
};
"backlight" = {
# format = "{percent}% {icon}";
format = "{icon}";
tooltip-format = "{percent}%";
format-icons = [ "" "" "" "" "" "" "" "" "" ];
};
"wireplumber" = {
scroll-step = 1;
format = "{volume}% {icon}";# {format_source}";
format-bluetooth = "{volume}% {icon}";# {format_source}";
format-bluetooth-muted = " {icon}";# {format_source}";
format-muted = "";# {format_source}";
format-alt = "{format_source} {icon}";
# format-source = " {volume}%";
# format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
default = [
""
""
""
];
};
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
on-click-right = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center sound";
};
"memory" = {
interval = 5;
format = "󰍛 {}%";
max-length = 10;
};
"tray" = {
spacing = 5;
};
"custom/notification" = {
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"network" = {
format = "󰤭";
format-ethernet = " {ipaddr}";
format-wifi = "{icon}";
format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ];
format-disconnected = "󰤭";
tooltip-format = " {ifname} via {gwaddr}";
tooltip-format-wifi = ''
󰤨 {essid}({signalStrength}%), {frequency} GHz (Interface: {ifname})
IP: {ipaddr} GW: {gwaddr}
<span color='#a6da95'>{bandwidthUpBits}</span> <span color='#ee99a0'>{bandwidthDownBits}</span> <span color='#c6a0f6'>󰹹{bandwidthTotalBits}</span>
'';
tooltip-format-ethernet = ''
{ifname} - {ipaddr}/{cidr}
<span color='#a6da95'>{bandwidthUpBits}</span> <span color='#ee99a0'>{bandwidthDownBits}</span> <span color='#c6a0f6'>󰹹{bandwidthTotalBits}</span>
'';
tooltip-format-disconnected = "Disconnected";
on-click = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi";
};
"privacy" = {
icon-spacing = 4;
# icon-size" = 18;
transition-duration = 250;
modules = [
{
type = "screenshare";
tooltip = true;
# tooltip-icon-size = 24
}
{
type = "audio-out";
tooltip = true;
# tooltip-icon-size = 24
}
{
type = "audio-in";
tooltip = true;
# tooltip-icon-size = 24
}
];
};
};
};
style = ''
* {
font-family: "${cfg.monospaceFont}";
font-weight: bold;
font-size: ${builtins.toString (cfg.fontSizes.desktop + 5)}px;
}
window#waybar {
background-color: transparent;
}
.module {
background: rgba(0, 0, 0, 0.6);
color: white;
border-radius: 7px;
margin: 1px 3px;
padding: 1px 6px;
animation: bgFade 3600s infinite alternate, textColorFade 3600s infinite alternate;
}
box.module button:hover {
box-shadow: inset 0 -3px #ffffff;
}
/*.modules-left {
padding: 3px;
}
.modules-right {
padding: 3px;
}
.modules-center {
padding: 3px;
}*/
#workspaces button {
color: white;
background: none;
animation: textColorFade 3600s infinite alternate;
}
#battery.warning {
background:rgba(240, 165, 0, 0.6);
}
#battery.critical {
background:rgba(255, 0, 0, 0.6);
}
#battery.charging {
background-color:rgba(14, 173, 0, 0.6);
}
#privacy {
color: #ffffff;
background:rgba(240, 165, 0, 0.6);
border-radius: 7px;
margin: 1px 3px;
padding: 1px 6px;
}
@keyframes bgFade {
0% {
background-color: white;
}
100% {
background-color: black;
}
}
@keyframes textColorFade {
0% {
color: black;
}
/* 45% {
color: black;
} */
60% {
color: rgb(29, 38, 96);
}
/* 55% {
color: white;
} */
100% {
color: white;
}
}
'';
};
};
}

View File

@@ -0,0 +1,110 @@
{ config, pkgs, lib, ... }:
let
cfg = config.nix-config.style;
in
{
services.swaync = {
enable = true;
settings = {
control-center-margin-top = 13;
control-center-margin-bottom = 0;
control-center-margin-right = 14;
control-center-margin-left = 0;
notification-2fa-action = true;
notification-inline-replies = true;
notification-icon-size = 48;
notification-body-image-height = 160;
notification-body-image-width = 200;
notification-window-width = 400;
timeout = 6;
timeout-low = 3;
timeout-critical = 0;
image-visibility = "when-available";
transition-time = 200;
hide-on-clear = false;
hide-on-action = true;
script-fail-notify = true;
widgets = [
"dnd"
"buttons-grid"
"mpris"
"volume"
"backlight"
"title"
"notifications"
];
widget-config = {
title = {
text = "Notifications";
clear-all-button = true;
button-text = "";
};
dnd = {
text = "Do Not Disturb";
};
label = {
max-lines = 1;
text = "Notification";
};
mpris = {
image-size = 50;
image-radius = 0;
};
volume = {
label = "";
};
backlight = {
label = "󰃠";
device = "amdgpu_bl2";
};
buttons-grid = {
actions = [
{
label = "";
command = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
type = "toggle";
}
{
label = "";
command = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
type = "toggle";
}
{
label = "󰤨";
command = "nm-connection-editor";
}
{
label = "󰂯";
command = "blueman-manager";
}
{
label = "󱡽";
command = "bash -c $HOME/.config/hypr/scripts/airplaneMode.sh";
type = "toggle";
}
{
label = "";
command = "shutdown now";
}
{
label = "";
command = "hyprlock";
}
{
label = "";
command = "~/.config/hypr/scripts/wlogout.sh";
}
];
};
};
};
style = ''
* {
font-family: "monospace";
}
'';
};
}

View File

@@ -1,28 +1,36 @@
{ {
config,
inputs,
lib, lib,
pkgs, pkgs,
builtins,
... ...
}: }:
let
cfg = config.nix-config.quickshell;
qs = inputs.quickshell.packages.x86_64-linux.default;
in
{ {
programs.dankMaterialShell.enable = true; options.nix-config.quickshell.enable = lib.mkEnableOption {
name = "quickshell";
description = "Whether to enable quickshell.";
default = true;
};
programs.dankMaterialShell = { config = lib.mkIf cfg.enable {
enableSystemd = true; home.packages = [
enableSystemMonitoring = false; qs
enableClipboard = true; pkgs.qt6.qtimageformats
enableVPN = true; pkgs.qt6.qt5compat
enableBrightnessControl = true; pkgs.qt6.qtmultimedia
enableColorPicker = false; pkgs.qt6.qtdeclarative
enableDynamicTheming = true; pkgs.qt6.qtsvg
enableAudioWavelength = false; pkgs.qt6.qtwayland
enableCalendarEvents = false; pkgs.qt6.qtbase
enableSystemSound = true;
# default = { ];
# settings = ''{}'';
# session = ''{}'';
# };
# plugins = {}; # add the quickshell config (whole directory) to XDG_CONFIG_HOME
# home.file.".config/quickshell/config".source = ./config;
}; };
} }

View File

@@ -90,7 +90,7 @@ in
}; };
emoji = { emoji = {
package = pkgs.noto-fonts-color-emoji; package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji"; name = "Noto Color Emoji";
}; };

View File

@@ -12,20 +12,24 @@
}; };
config = lib.mkIf config.nix-config.gnome.enable { config = lib.mkIf config.nix-config.gnome.enable {
services = { services = {
displayManager.gdm.enable = true; # displayManager.gdm.enable = true;
desktopManager.gnome.enable = true; # desktopManager.gnome.enable = true;
gnome = { # gnome = {
core-apps.enable = false; # core-apps.enable = false;
core-developer-tools.enable = false; # core-developer-tools.enable = false;
games.enable = false; # games.enable = false;
}; # };
# Exclude some packages to keep the installation lean # # Exclude some packages to keep the installation lean
environment.gnome.excludePackages = with pkgs; [ # environment.gnome.excludePackages = with pkgs; [
gnome-tour # gnome-tour
gnome-user-docs # gnome-user-docs
]; # ];
# };
xserver.enable = true;
xserver.displayManager.gdm.enable = true;
xserver.desktopManager.gnome.enable = true;
}; };
}; };
} }

View File

@@ -22,7 +22,7 @@ in
defaultSession = "hyprland"; defaultSession = "hyprland";
}; };
services.displayManager.gdm = { services.xserver.displayManager.gdm = {
enable = true; enable = true;
wayland = true; wayland = true;
}; };

View File

@@ -13,11 +13,6 @@ in
type = lib.types.str; type = lib.types.str;
default = "nixos"; default = "nixos";
}; };
nix-config.networking.vpn = lib.mkOption {
type = lib.types.bool;
default = true;
};
}; };
config = { config = {
@@ -35,60 +30,6 @@ in
# enable = false; # enable = false;
# }; # };
# # VPN setup
networking.networkmanager.ensureProfiles = {
environmentFiles = [ config.sops.secrets.vpnEnvironment.path ];
profiles.wg-home = {
connection = {
id = "wg-home";
type = "wireguard";
interface-name = "wgh";
autoconnect = false;
};
ipv4 = {
address = "10.0.0.2/32";
method = "manual";
};
wireguard = {
listen-port = 51820;
private-key = "$HOME_PRIVATE_KEY";
};
"wireguard-peer.y/TBD/c0GkrRtekDkCb8TUnYYil8bSRPIjPDY650pz8=" = {
endpoint = "$HOME_ENDPOINT";
allowed-ips = "192.168.1.0/16";
};
};
profiles.wg-fritzbox = {
connection = {
id = "wg-fritzbox";
type = "wireguard";
interface-name = "wgfb";
autoconnect = false;
};
ipv4 = {
address = "192.168.178.201/24";
dns = "192.168.178.1";
method = "manual";
};
wireguard = {
listen-port = 51820;
private-key = "$FRITZBOX_PRIVATE_KEY";
};
"wireguard-peer.Jf/seKAL7kWm2qX9gf5Ln8FiN7OlPQB3CyRovDIOEHw=" = {
endpoint = "$FRITZBOX_ENDPOINT";
allowed-ips = "192.168.178.0/24;fd73:ea00:5841::/64";
preshared-key = "$FRITZBOX_PRESHARED_KEY";
};
};
};
}; };
} }

View File

@@ -23,42 +23,42 @@
config = { config = {
services.tlp = { # services.tlp = {
enable = true; # enable = true;
settings = { # settings = {
# processor chooses frequencies itself but respects the limits set by the user # # processor chooses frequencies itself but respects the limits set by the user
CPU_DRIVER_OPMODE_ON_AC = "guided"; # CPU_DRIVER_OPMODE_ON_AC = "guided";
CPU_DRIVER_OPMODE_ON_BAT = "guided"; # 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";
# clock speeds reported by `sudo tlp-stat` # # clock speeds reported by `sudo tlp-stat`
# 623377 [kHz] and 5090910 [kHz] # # 623377 [kHz] and 5090910 [kHz]
CPU_SCALING_MIN_FREQ_ON_AC = 623377; # # CPU_SCALING_MIN_FREQ_ON_AC = 623377;
CPU_SCALING_MAX_FREQ_ON_AC = 5090910; # # CPU_SCALING_MAX_FREQ_ON_AC = 5090910;
CPU_SCALING_MIN_FREQ_ON_BAT = 0; # # CPU_SCALING_MIN_FREQ_ON_BAT = 0;
# reduce max frequency on battery to save power # # # reduce max frequency on battery to save power
CPU_SCALING_MAX_FREQ_ON_BAT = 3000000; # # CPU_SCALING_MAX_FREQ_ON_BAT = 3000000;
# Allow the CPU to boost # # Allow the CPU to boost
CPU_BOOST_ON_AC = 1; # CPU_BOOST_ON_AC = 1;
CPU_BOOST_ON_BAT = 1; # CPU_BOOST_ON_BAT = 1;
RADEON_DPM_PERF_LEVEL_ON_AC = "high"; # RADEON_DPM_PERF_LEVEL_ON_AC = "high";
# WIFI_PWR_ON_BAT = "off"; # WIFI_PWR_ON_BAT = "off";
# enable battery charge thresholds on the default battery # # enable battery charge thresholds on the default battery
STOP_CHARGE_THRESH_BAT0 = 1; # STOP_CHARGE_THRESH_BAT0 = 1;
}; # };
}; # };
@@ -69,17 +69,17 @@
AllowSuspendThenHibernate=yes AllowSuspendThenHibernate=yes
''; '';
# services.watt = { services.watt = {
# enable = true; enable = true;
# settings = { settings = {
# battery_charge_thresholds = [ battery_charge_thresholds = [
# 40 40
# 80 80
# ]; ];
# }; };
# }; };
services.upower.enable = true; # write the watt-config under /etc/watt.toml
services.irqbalance = { services.irqbalance = {

View File

@@ -1,12 +0,0 @@
{
inputs,
...
}:
{
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
sops.defaultSopsFile = ./../../secrets/vpn.env;
sops.secrets.vpnEnvironment = {
sopsFile = ./../../secrets/vpn.env;
format = "dotenv";
};
}

Submodule secrets updated: a51d89c420...2aef0ad374

View File

@@ -12,10 +12,8 @@
## Utils relevant to this user only ## Utils relevant to this user only
programs.git = { programs.git = {
enable = true; enable = true;
settings = { userName = "Remy Moll";
user.name = "Remy Moll"; userEmail = "me@moll.re";
user.email = "me@moll.re";
};
}; };
## XDG configuration ## XDG configuration
@@ -24,7 +22,6 @@
mimeApps = { mimeApps = {
enable = true; enable = true;
defaultApplications = { defaultApplications = {
# TODO
"inode/directory" = "org.gnome.Nautilus.desktop"; "inode/directory" = "org.gnome.Nautilus.desktop";
"application/zip" = "org.gnome.FileRoller.desktop"; "application/zip" = "org.gnome.FileRoller.desktop";
"application/octet-stream" = "org.gnome.GHex.desktop"; "application/octet-stream" = "org.gnome.GHex.desktop";

View File

@@ -3,12 +3,12 @@ with lib.hm.gvariant;
{ {
config = { config = {
nix-config = { nix-config = {
hypr = { # hypr = {
internal-screen = { # internal-screen = {
resolution = "auto"; # resolution = "auto";
scale = "auto"; # scale = "auto";
}; # };
}; # };
}; };
}; };
@@ -21,7 +21,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/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
../../modules/home-manager/kubectl.nix ../../modules/home-manager/kubectl.nix
@@ -31,7 +31,7 @@ with lib.hm.gvariant;
../../modules/home-manager/stylix.nix ../../modules/home-manager/stylix.nix
../../modules/home-manager/thunderbird.nix ../../modules/home-manager/thunderbird.nix
../../modules/home-manager/wofi.nix ../../modules/home-manager/wofi.nix
../../modules/home-manager/xdg-portals.nix # ../../modules/home-manager/xdg-portals.nix
]; ];
} }

View File

@@ -9,9 +9,9 @@ with lib.hm.gvariant;
scale = "1.6"; scale = "1.6";
}; };
}; };
# quickshell = { quickshell = {
# enable = true; enable = true;
# }; };
}; };
}; };
@@ -31,6 +31,7 @@ with lib.hm.gvariant;
../../modules/home-manager/kitty.nix ../../modules/home-manager/kitty.nix
../../modules/home-manager/kubectl.nix ../../modules/home-manager/kubectl.nix
../../modules/home-manager/launcher.nix ../../modules/home-manager/launcher.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/quickshell