aboutsummaryrefslogtreecommitdiffstats
path: root/modules/tools/rofi/default.nix
blob: 525387fef3a4ce27f6d3fbe78328c37373bd67af (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
{ lib, config, ... }:

# Rofi - Window switcher, application launcher, and dmenu replacement
{
  options.tools.rofi = {
    enable = lib.mkEnableOption "Enables rofi.";
  };

  config = lib.mkIf config.tools.rofi.enable {
    programs.rofi = {
      enable = true;
      font = "${config.fonts.normal} ${toString config.fonts.size}";
      theme =
        with config.scheme.withHashtag;
        let
          inherit (config.lib.formats.rasi) mkLiteral;
        in
        {
          "*" = {
            border = 1;
            margin = 0;
            padding = 0;
            spacing = 0;

            bg = mkLiteral base00;
            bg-alt = mkLiteral base01;
            fg = mkLiteral base07;
            fg-alt = mkLiteral base03;
            background-color = mkLiteral "@bg";
            text-color = mkLiteral "@fg";
          };

          window = {
            border-color = mkLiteral base03;
          };

          mainbox = {
            children = map mkLiteral [
              "inputbar"
              "listview"
            ];
          };

          inputbar = {
            background-color = mkLiteral "@bg-alt";
            children = map mkLiteral [
              "prompt"
              "entry"
            ];
          };

          entry = {
            background-color = mkLiteral "inherit";
            padding = mkLiteral "12px 3px";
          };

          prompt = {
            background-color = mkLiteral "inherit";
            padding = mkLiteral "12px";
          };

          listview = {
            lines = 8;
          };

          element = {
            children = map mkLiteral [ "element-text" ];
          };

          element-icon = {
            padding = mkLiteral "10px 10px";
          };

          element-text = {
            padding = mkLiteral "10px 10px";
            text-color = mkLiteral "@fg-alt";
          };

          "element-text selected" = {
            text-color = mkLiteral "@fg";
          };
        };
    };
  };
}