summaryrefslogtreecommitdiff
path: root/archetypes/profiles/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'archetypes/profiles/desktop')
-rw-r--r--archetypes/profiles/desktop/default.nix53
1 files changed, 53 insertions, 0 deletions
diff --git a/archetypes/profiles/desktop/default.nix b/archetypes/profiles/desktop/default.nix
new file mode 100644
index 0000000..d9a7dc7
--- /dev/null
+++ b/archetypes/profiles/desktop/default.nix
@@ -0,0 +1,53 @@
+{ lib, config, pkgs, ... }: let
+ mkDesktop = lib.mkOverride 920;
+ cfg = config._archetypes.profiles.desktop;
+in {
+ options._archetypes.profiles.desktop = {
+ enable = lib.mkEnableOption "enable desktop profile";
+ };
+
+ config = lib.mkIf cfg.enable {
+ _archetypes.collections = {
+ desktop = {
+ utilities.enable = mkDesktop true;
+ firefox.enable = mkDesktop true;
+ xserver = {
+ enable = mkDesktop true;
+ utilities.enable = mkDesktop true;
+ };
+ };
+ development = {
+ utilities.enable = mkDesktop true;
+ };
+ fonts.enable = mkDesktop true;
+ };
+
+ _archetypes.users.primary = {
+ enable = mkDesktop true;
+ };
+
+ security = {
+ _doas.enable = mkDesktop true;
+ };
+
+ programs = {
+ _ddcutil.enable = mkDesktop true;
+ _home-manager.enable = mkDesktop true;
+ };
+
+ services = {
+ xserver = {
+ windowManager._awesome.enable = mkDesktop true;
+ };
+ _pipewire.enable = mkDesktop true;
+ _printing.enable = mkDesktop true;
+ _ssh.enable = mkDesktop true;
+ tlp.enable = mkDesktop true;
+
+ # Ensure video group can change backlight
+ udev.extraRules = ''
+ SUBSYSTEM=="backlight", ACTION=="add", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness"
+ '';
+ };
+ };
+}