summaryrefslogtreecommitdiff
path: root/home-manager/features/gui/desktops/niri/parts/waybar.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/features/gui/desktops/niri/parts/waybar.nix')
-rwxr-xr-xhome-manager/features/gui/desktops/niri/parts/waybar.nix28
1 files changed, 21 insertions, 7 deletions
diff --git a/home-manager/features/gui/desktops/niri/parts/waybar.nix b/home-manager/features/gui/desktops/niri/parts/waybar.nix
index 7535b0c..06ad79e 100755
--- a/home-manager/features/gui/desktops/niri/parts/waybar.nix
+++ b/home-manager/features/gui/desktops/niri/parts/waybar.nix
@@ -12,14 +12,14 @@ in {
layer = "top";
position = "bottom";
height = 32;
- modules-left = [ "battery" "network" "backlight" "pulseaudio" ];
+ modules-left = [ "battery" "network" "backlight" "pulseaudio" "custom/syncthing" ];
modules-center = [ "niri/workspaces" ];
modules-right = [ "clock#date" "clock#time" ];
"clock#date" = {
format = " {:%A, %B %d}";
};
"clock#time" = {
- format = " {:%I:%M}";
+ format = " {:%I:%M}";
};
pulseaudio = {
format = " {volume}%";
@@ -61,6 +61,20 @@ in {
*/
};
};
+ "custom/syncthing" = {
+ exec = lib.getExe (pkgs.writers.writeNuBin "syncthing-waybar-module" /*nu*/ ''
+ let status = ${lib.getExe pkgs.stc-cli} events | from json | where type == "StateChanged" | reverse | get 0.data.to
+ let percent = ${lib.getExe pkgs.stc-cli} json_dump | from json | get folders | get syncPercentDone | math avg | into int
+ let icon = if ($status == "idle") { ""
+ } else if ($status == "scanning") { ""
+ } else if ($status == "syncing") { ""
+ } else { "" }
+ let percent_string = if ($percent == 100) { "Synced" } else { ($percent | into string) + "%" }
+ return ($icon + " " + $percent_string)
+ '');
+ on-click = "${lib.getExe pkgs.stc-cli} rescan all";
+ interval = 3;
+ };
};
};
style = let
@@ -78,7 +92,7 @@ in {
window#waybar {
background-color: transparent;
}
- #clock.time, #clock.date, #backlight, #pulseaudio, #battery, #network {
+ #clock.time, #clock.date, #custom-syncthing, #backlight, #pulseaudio, #battery, #network {
background-color: @background-color;
color: @text-color;
border-radius: ${border-radius}px;
@@ -86,9 +100,12 @@ in {
border-color: @border-color;
padding: 0px ${padding}px;
}
- #backlight, #pulseaudio, #battery, #network {
+ #backlight, #pulseaudio, #battery, #network, #custom-syncthing {
margin: 0px 0px ${padding} ${padding};
}
+ #clock.date, #clock.time {
+ margin: 0px ${padding} ${padding} 0px
+ }
#workspaces {
background-color: @background-color;
color: @background-color;
@@ -127,9 +144,6 @@ in {
opacity: 0.8;
transition: all 0.3s cubic-bezier(.25,.1,.25,1);
}
- #clock.date, #clock.time {
- margin: 0px ${padding} ${padding} 0px
- }
'';
};
};