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}