summaryrefslogtreecommitdiffstats
path: root/waybar.nix
blob: 59a66ba2a301622fa37d4891715a8349fef36dc5 (plain) (blame)
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
{ config, pkgs, ... }:
{
  programs.waybar = {
    enable = true;

    settings = [
      {
        output = [ "DP-3" ];
        height = 37; # Waybar height
        spacing = 4; # Gaps between modules

        modules-left = [
          "hyprland/workspaces"
          "hyprland/window"
        ];

        modules-center = [
          "mpris"
        ];
        modules-right = [
          "idle_inhibitor"
          "load"
          "wireplumber"
          "clock"
          "battery"
          "tray"
        ];

        "hyprland/workspaces" = {
          all-outputs = true;
          warp-on-scroll = false;
          enable-bar-scroll = true;
          disable-scroll-wraparound = true;
          format = "{icon}";
          format-icons = {
            "1" = "";
            "2" = "";
            "3" = "";
            "4" = "";
            "5" = "";
            "9" = "";
            "10" = "";
          };
        };

        "hyprland/window" = {
          format = "{title}";
          max-length = 40;
          all-outputs = true;
        };

        mpris = {
          format = " {status_icon} {dynamic}";
          interval = 1;
          dynamic-len = 40;
          dynamic-order = [
            "title"
            "artist"
          ];
          ignored-players = [ "firefox" ];
          status-icons = {
            playing = "▶";
            paused = "⏸";
            stopped = "";
          };
        };

        idle_inhibitor = {
          format = "{icon}";
          format-icons = {
            activated = "";
            deactivated = "";
          };
        };

        tray = {
          icon-size = 14;
          spacing = 10;
        };

        load = {
          format = " {}";
        };

        clock = {
          tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
          format-alt = "{:%Y-%m-%d}";
        };

        battery = {
          states = {
            warning = 30;
            critical = 15;
          };
          format = "{icon} {capacity}%";
          format-full = "{icon} {capacity}%";
          format-charging = " {capacity}%";
          format-plugged = " {capacity}%";
          format-alt = "{icon} {time}";
          format-icons = [
            ""
            ""
            ""
            ""
            ""
          ];
        };

        wireplumber = {
          scroll-step = 5;
          format = "{icon} {volume}%";
          format-bluetooth = "{icon} {volume}% ";
          format-bluetooth-muted = " {icon}";
          format-muted = "";
          format-icons = {
            headphone = "";
            hands-free = "";
            headset = "";
            phone = "";
            portable = "";
            car = "";
            default = [
              ""
              ""
              ""
            ];
          };
          on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
        };
      }

      # Bar for DP-2 only
      {
        output = [ "DP-2" ];
        height = 24;
        spacing = 4;

        modules-left = [
          "hyprland/workspaces"
          "hyprland/window"
        ];

        modules-center = [ ];
        modules-right = [ "clock" ];

        "hyprland/workspaces" = {
          all-outputs = true;
          warp-on-scroll = true;
          enable-bar-scroll = true;
          format = "{icon}";
          format-icons = {
            "1" = "";
            "2" = "";
            "3" = "";
            "4" = "";
            "5" = "";
            "9" = "";
            "10" = "";
          };
        };

        "hyprland/window" = {
          format = "{title}";
          max-length = 40;
          all-outputs = true;
        };

        clock = {
          tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
          format-alt = "{:%Y-%m-%d}";
        };
      }
    ];
  };
}