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

{
  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";
        };
      };
    };
  };
}