aboutsummaryrefslogtreecommitdiff
path: root/programs/rofi.nix
blob: 8ce77bf2a1215c88fa6777e014f1acc968cfc125 (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
{ config
, pkgs
, theme
, font
, ...
}:

with theme;
let
  inherit (config.lib.formats.rasi) mkLiteral;
  rofi-theme = {
    "@import" = "default";
    "*" = {
      active-background = mkLiteral theme.base00;
      alternate-active-background = mkLiteral theme.base00;
      alternate-normal-background = mkLiteral theme.base00;
      background = mkLiteral theme.base00;
      background-color = mkLiteral theme.base00;
      normal-background = mkLiteral theme.base00;
      selected-active-background = mkLiteral theme.base00;
      selected-normal-background = mkLiteral theme.base00;
      selected-urgent-background = mkLiteral theme.base00;

      active-foreground = mkLiteral theme.base05;
      alternate-active-foreground = mkLiteral theme.base05;
      alternate-normal-foreground = mkLiteral theme.base05;
      foreground = mkLiteral theme.base05;
      normal-foreground = mkLiteral theme.base05;
      selected-active-foreground = mkLiteral theme.base0C;
      selected-normal-foreground = mkLiteral theme.base0C;
      urgent-foreground = mkLiteral theme.base05;

      border-color = mkLiteral theme.base00;
    };

    inputbar.children = [ "entry" ];

    element.padding = 10;
    entry = {
      padding = 10;
      placeholder = "type to filter";
    };
    listview.border = 0;
    scrollbar.handle-width = 0;
    window = {
      padding = 40;
      width = 800;
      height = 600;
      border = mkLiteral "3px solid";
      border-color = mkLiteral theme.base01;
    };
  };
in
{
  programs.rofi = {
    enable = true;
    font = "${font.name} 21";
    location = "top-left";
    xoffset = 20;
    yoffset = 20;
    cycle = true;
    theme = rofi-theme;
    extraConfig = {
      modes = mkLiteral "[ combi ]";
      combi-modes = mkLiteral "[ window, run ]";
      # window = mkLiteral ''{ display-name: "[w]"; }'';
      # run = mkLiteral ''{ display-name: "[r]"; }'';
      kb-clear-line = "Control+c";
      kb-remove-word-back = "Control+w";
    };
  };
}