{ lib, config, pkgs, ... }: let mkDesktop = lib.mkOverride 920; nixosConfig = { _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; }; security = { _doas.enable = mkDesktop true; }; programs = { _ddcutil.enable = mkDesktop true; _home-manager.enable = mkDesktop true; }; services = { xserver = { windowManager._awesome.enable = mkDesktop true; }; _geoclue2.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 = mkDesktop '' 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" ''; }; }; homeConfig = { gtk = { enable = mkDesktop true; _mintTheme.enable = mkDesktop true; font.name = mkDesktop "sans-serif"; cursorTheme.name = mkDesktop "Adwaita"; }; qt._gtkPlatformTheme.enable = mkDesktop true; fonts.fontconfig = { enable = mkDesktop true; defaultFonts = { # These fonts are added above in fonts collection sansSerif = mkDesktop [ "Inter" ]; monospace = mkDesktop [ "CommitMono" ]; }; }; programs = { _pcmanfm.openAsRootOption.enable = mkDesktop true; firefox._configure = mkDesktop true; htop._configure = mkDesktop true; }; services = { _redshift.enable = true; }; home._repos = { enable = mkDesktop true; desktop = mkDesktop true; }; xdg.mimeApps._defaultCategoryApplications = { enable = true; categoryApplications = { audio = [ "mpv" ]; email = [ "thunderbird" ]; image = [ "sxiv" ]; pdf = [ "org.pwmt.zathura-pdf-mupdf" ]; text = [ "nvim" ]; video = [ "mpv" ]; }; }; }; in { imports = [ (lib._mkProfileArchetype "desktop" nixosConfig homeConfig) ]; }