aboutsummaryrefslogtreecommitdiff
path: root/programs/rofi.nix
blob: b6105fc8b4d00ca8d841bbcd42dd9c6e0d858305 (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
{ 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" ];

    entry = {
      placeholder = "type to filter";
    };
    listview.border = 0;
    scrollbar.handle-width = 0;
    window = {
      padding = 40;
      width = 600;
      height = 400;
      border = mkLiteral "3px solid";
      border-color = mkLiteral theme.base01;
    };
  };
in
{
  programs.rofi = {
    package = pkgs.rofi-wayland;
    enable = true;
    font = "${font.name} 12";
    location = "center";
    # xoffset = 40;
    # yoffset = 40;
    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+u";
      # kb-remove-word-back = "Control+w";
    };
  };
}