My Nix Configuration
1{ 2 pkgs, 3 lib, 4 config, 5 ... 6}: 7let 8 cfg = config.py.profiles.desktop; 9 shell = cfg.shell; 10 inherit (lib) mkIf mkDefault mkEnableOption; 11in 12{ 13 options.py.profiles.desktop = { 14 enable = mkEnableOption "Desktop Config"; 15 shell = lib.mkOption { 16 type = lib.types.enum [ 17 "caelestia" 18 "dms" 19 ]; 20 default = "caelestia"; 21 description = "The desktop shell to use in the graphical environment"; 22 }; 23 caelestia = lib.mkOption { 24 type = lib.types.bool; 25 default = (if (shell == "caelestia") then true else false); 26 description = "Enable caelestia shell"; 27 }; 28 dms = lib.mkOption { 29 type = lib.types.bool; 30 default = (if (shell == "dms") then true else false); 31 description = "Enable DMS"; 32 }; 33 }; 34 config = mkIf cfg.enable { 35 py.profiles.base.enable = true; 36 py.profiles.cli.enable = true; 37 py.profiles.gui.enable = true; 38 py.profiles.development.enable = true; 39 programs.mpv = { 40 enable = mkDefault true; 41 scripts = with pkgs.mpvScripts; [ 42 videoclip 43 mpris 44 modernz 45 thumbfast 46 ]; 47 config = { 48 osc = false; 49 keep-open = true; 50 }; 51 scriptOpts = { 52 modernz.greenandgrumpy = true; 53 videoclip.preset = "medium"; 54 videoclip.video_folder_path = "~/Videos/mpv-clips/"; 55 videoclip.video_width = 1920; 56 videoclip.video_height = 1080; 57 }; 58 }; 59 home.packages = with pkgs; [ 60 archipelago 61 brightnessctl 62 clipman 63 dex 64 keepassxc 65 playerctl 66 poptracker 67 thunderbird 68 wl-clipboard 69 zotero 70 ]; 71 services.easyeffects.enable = mkDefault true; 72 }; 73}