summaryrefslogtreecommitdiff
path: root/modules/programs/wofi/default.nix
blob: d60c05253db8519145d14b0deeb81eb1014794b4 (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
{ config, lib, ... }:

{
  config = lib.mkIf config.desktop.enable {

    home-manager.users.${config.user} = {
      programs.wofi = {

        enable = true;

        settings = {
          key_expand = "Tab";
          term = "kitty";
          matching = "multi-contains";
          insensitive = true;
          gtk_dark = true;
          hide_scroll = true;
        };

        style =
          let
            accentColor = "#${config.theme.accentColor}";
            textColor = "#${config.theme.colors.base05}";
            baseColor = "#${config.theme.colors.base00}";
            surfaceColor = "#${config.theme.colors.base02}";
            fontSize = "${toString config.theme.fontSize}px";
            outerGap = "${toString config.theme.outerGap}px";
            innerGap = "${toString config.theme.innerGap}px";
            outerRadius = "${toString config.theme.outerRadius}px";
            innerRadius = "${toString config.theme.innerRadius}px";
            borderWidth = "${toString config.theme.borderWidth}px";
          in ''
* {
   font-family: ${config.theme.monospaceFont};
   font-size: ${fontSize};
}

/* Window */
window {
   margin: 0px;
   border: ${borderWidth} solid ${accentColor};
   border-radius: ${outerRadius};
   background-color: ${baseColor};
}

/* Outer Box */
#outer-box {
   padding: ${outerGap};
}

/* Scroll */
#scroll {
   margin: 0px;
   padding: ${innerGap};
   border: none;
}

/* Input */
#input {
  margin: ${innerGap};
  padding: ${innerGap};
  border: none;
  color: ${textColor};
  background-color: ${surfaceColor};
  border-radius: ${outerRadius};
}

#input:focus,
#input:active {
  border: ${borderWidth} solid ${accentColor};
  box-shadow: none;
  outline: none;
}

/* Text */
#text {
   margin: ${innerGap};
   padding: ${innerGap};
   border: none;
   color: ${textColor};
}

/* Selected Entry */
#entry:selected {
  background-color: ${accentColor};
  border-radius: ${outerRadius};
}

#entry:selected #text {
   color: ${baseColor};
}
      '';

      };
    };

  };
}