summaryrefslogtreecommitdiff
path: root/common/modules/window_managers/default.nix
blob: 547e2c8876f0c68a0b261133d8d03fa24a55c3dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
{
  homeManager,
  inputs,
  moduleNameSpace,
  ...
}:
{
  config,
  lib,
  pkgs,
  ...
}:
let
  args = {
    moduleNameSpace = "beeMods";
    inherit inputs homeManager;
  };
  scripts = import ./scripts.nix { inherit pkgs config; };
in
{
  imports = [
    (import ./mango args)
    (import ./niri args)
    (import ./noctalia.nix args)
  ];

  options.${moduleNameSpace}.windowManagers = {
    mango.enable = lib.mkEnableOption "Enable mangowm";
    niri.enable = lib.mkEnableOption "Enable niri";
    noctalia = lib.mkEnableOption "Enable noctalia shell";
    beeConfig = {
      enable = lib.mkEnableOption "Enable stuff from my config";
      waybar = lib.mkOption {
        type = lib.types.bool;
        default = config.beeMods.windowManagers.beeConfig.enable || false;
        description = "Enable waybar";
      };
    };
    eyeCandy = {
      enable = lib.mkEnableOption "Enable Eyecandy ex (animations, windowblurs, effects)";
      animations = {
        enable = lib.mkOption {
          type = lib.types.bool;
          default = config.beeMods.windowManagers.eyeCandy.enable || false;
          description = "Uiiiiiiiiiii";
        };
      };
      window = {
        blur = {
          enable = lib.mkEnableOption "Enable window blur";
          passes = lib.mkOption {
            type = lib.types.int;
            default = 3;
          };
          radius = lib.mkOption {
            type = lib.types.int;
            default = 12;
          };
        };
        shadows.enable = lib.mkEnableOption "Enable window drop shadows";
        borderRadius = lib.mkOption {
          type = lib.types.int;
          default = 12;
          description = "Border radius";
        };
        opacity = lib.mkOption {
          type = lib.types.number;
          default = 0.90;
          description = "Window opacity";
        };
      };
    };
  };
  config = (
    if homeManager then
      {
        home.packages =
          with pkgs;
          [
            wl-clipboard
            brightnessctl
            playerctl
            fyi
            scripts.dotfiles
          ]
          ++ lib.optionals config.beeMods.windowManagers.beeConfig.enable [
            waybar
            matugen
            awww
            cliphist
          ];
      }
    else
      {
      }
  );

}