diff options
| author | Alexander Kassouni <alex@kassouni.net> | 2026-09-02 21:20:10 -0700 |
|---|---|---|
| committer | Alexander Kassouni <alex@kassouni.net> | 2026-09-02 21:20:10 -0700 |
| commit | 47dde98fd2cf11ea544bb1c8d8d548ee0bda0f54 (patch) | |
| tree | fb79c45ef1c0f0016e480e06dff625cf3fc1c91a /users/kassouni/desktop/sway/waybar.nix | |
| parent | 1c5fa1c205f2bb78f8e1179b0576f3c3578dad69 (diff) | |
some sway stuff
Diffstat (limited to 'users/kassouni/desktop/sway/waybar.nix')
| -rw-r--r-- | users/kassouni/desktop/sway/waybar.nix | 141 |
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"; + } + ]; +} + |
