summaryrefslogtreecommitdiff
path: root/users/kassouni/desktop/sway/waybar.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/kassouni/desktop/sway/waybar.nix')
-rw-r--r--users/kassouni/desktop/sway/waybar.nix141
1 files changed, 141 insertions, 0 deletions
diff --git a/users/kassouni/desktop/sway/waybar.nix b/users/kassouni/desktop/sway/waybar.nix
new file mode 100644
index 0000000..7cb37a0
--- /dev/null
+++ b/users/kassouni/desktop/sway/waybar.nix
@@ -0,0 +1,141 @@
+{ pkgs, inputs, config, ... }:
+let
+ inherit (config.colorScheme) ui editor common;
+in
+{
+ programs.waybar = {
+ enable = true;
+ settings = {
+ mainBar =
+ let
+ gap = 0;
+ in
+ {
+ layer = "top";
+ position = "top";
+
+ margin-top = gap;
+ margin-left = gap;
+ margin-right = gap;
+
+ modules-left = [ "sway/workspaces" ];
+ modules-center = [ ];
+ modules-right = [
+ "cpu"
+ "wireplumber"
+ "battery"
+ "clock"
+ ];
+
+ clock = {
+ format = "{:%a %b %d %I:%M:%S}";
+ interval = 1;
+ tooltip-format = "<tt>{calendar}</tt>";
+ };
+
+ cpu = {
+ format = " {usage}%";
+ };
+
+ battery = {
+ format = "{icon} {capacity}%";
+ format-icons = {
+ default = [
+ "󰂎"
+ "󰁺"
+ "󰁻"
+ "󰁼"
+ "󰁽"
+ "󰁾"
+ "󰁿"
+ "󰂀"
+ "󰂁"
+ "󰂂"
+ "󰁹"
+ ];
+
+ charging = [
+ "󰢜"
+ "󰂆"
+ "󰂇"
+ "󰂈"
+ "󰢝"
+ "󰂉"
+ "󰢞"
+ "󰂊"
+ "󰂋"
+ "󰂅"
+ ];
+ };
+
+
+ states = {
+ low = 20;
+ };
+ };
+
+ wireplumber = {
+ format = "󰋋 {volume}%";
+ format-muted = "󰟎 {volume}%";
+ on-click = "wpctl set-mute @DEFAULT_SINK@ toggle";
+ max-volume = 150;
+ scroll-step = 1;
+ };
+
+ };
+ };
+ style = ''
+ * {
+ /* waybar's css font-size is px, but theme.font.size is points like
+ ghostty and fuzzel take. 1pt = 4/3px. */
+ font-family: ${config.theme.font.family};
+ font-size: ${builtins.toString (config.theme.font.size * 4 / 3)}px;
+ }
+
+ window#waybar {
+ background: ${ui.bg};
+ color: ${editor.fg};
+ }
+
+ .module {
+ padding: 0px 15px 0px;
+ }
+
+ #workspaces button {
+ font-weight: normal;
+ color: ${ui.fg};
+ background: none;
+ border: none;
+ }
+
+ #workspaces button.focused {
+ color: ${common.accent.tint};
+ }
+
+ #workspaces button.urgent {
+ color: ${common.error};
+ }
+
+ #workspaces button:hover {
+ font-weight: bold;
+ color: ${editor.fg};
+ box-shadow: none;
+ text-shadow: inherit;
+ background: none;
+ transition: none;
+ }
+
+ /* matches the `states.low = 20` threshold on the battery module */
+ #battery.low {
+ color: ${common.error};
+ }
+ '';
+ };
+
+ wayland.windowManager.sway.config.bars = [
+ {
+ command = "waybar";
+ }
+ ];
+}
+