aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/modules/workstation/ui/i3/hm.nix
blob: b0859c6ab39313d5aff6de120a82b56c9d05770b (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
/**
 * A home-manager module to configure userspace i3
 *
 */

{ config, lib, pkgs, home-manager, ... } @ args:

let cfg = config.libkookie.ui.i3;
in
{
  options.libkookie.ui.i3 = with lib; {
    picom = mkEnableOption "window composition with picom";
    
    wallpaper = mkOption {
      type = types.path;
      description = ''
        Specify the wallpaper to set.
      '';
    };

    # TODO: figure out a way to make this a package type
    fonts = mkOption {
      type = with types; listOf str;
      default = [ "monospace" ];
      description = ''
        A set of fonts to use by the i3 module for rendering text
      '';
    };

    term = mkOption {
      type = types.package;
      description = "Terminal emulator to bind to <M-RET>";
    };
    
    i3Status = mkOption {
      type = with types; submodule {
        options = {
          colors = mkOption { type = bool; default = true; };
          format = mkOption { type = str; default = "dzen2"; };
          interval = mkOption { type = int; default = 1; };
          segments = mkOption { type = listOf str; default = []; };
        };
      };
    };
  };

  config = (import core/setup.nix args);
}