From d6ce1fb1ccf1c96400d39dde8079798711445c35 Mon Sep 17 00:00:00 2001 From: fwastring Date: Sun, 29 Mar 2026 15:05:34 +0200 Subject: [PATCH] refactored waybar config --- maskiner/core/configuration.nix | 4 +- maskiner/gammal/configuration.nix | 4 +- maskiner/styrelsen/configuration.nix | 4 +- moduler/programs/waybar/default.nix | 337 +++++++++++++++++++- moduler/programs/waybar/waybar-laptop.jsonc | 122 ------- moduler/programs/waybar/waybar-latte.css | 153 --------- moduler/programs/waybar/waybar-mocha.css | 185 ----------- moduler/programs/waybar/waybar.jsonc | 116 ------- 8 files changed, 333 insertions(+), 592 deletions(-) delete mode 100644 moduler/programs/waybar/waybar-laptop.jsonc delete mode 100644 moduler/programs/waybar/waybar-latte.css delete mode 100644 moduler/programs/waybar/waybar-mocha.css delete mode 100644 moduler/programs/waybar/waybar.jsonc diff --git a/maskiner/core/configuration.nix b/maskiner/core/configuration.nix index c9775f0..62ae60d 100644 --- a/maskiner/core/configuration.nix +++ b/maskiner/core/configuration.nix @@ -200,8 +200,8 @@ in ]; waybar = { enable = true; - configPath = ./../../moduler/programs/waybar/waybar.jsonc; - stylePath = ./../../moduler/programs/waybar/waybar-${theme}.css; + profile = "desktop"; + theme = theme; }; gtk = { enable = true; diff --git a/maskiner/gammal/configuration.nix b/maskiner/gammal/configuration.nix index db965cf..7ec0f19 100644 --- a/maskiner/gammal/configuration.nix +++ b/maskiner/gammal/configuration.nix @@ -61,8 +61,8 @@ in ]; waybar = { enable = true; - configPath = ./../../moduler/programs/waybar/waybar-laptop.jsonc; - stylePath = ./../../moduler/programs/waybar/waybar-${theme}.css; + profile = "laptop"; + theme = theme; }; gtk = { enable = true; diff --git a/maskiner/styrelsen/configuration.nix b/maskiner/styrelsen/configuration.nix index a53945e..2e6096d 100644 --- a/maskiner/styrelsen/configuration.nix +++ b/maskiner/styrelsen/configuration.nix @@ -63,8 +63,8 @@ in ]; waybar = { enable = true; - configPath = ./../../moduler/programs/waybar/waybar-laptop.jsonc; - stylePath = ./../../moduler/programs/waybar/waybar-${theme}.css; + profile = "laptop"; + theme = theme; }; gtk = { enable = true; diff --git a/moduler/programs/waybar/default.nix b/moduler/programs/waybar/default.nix index 397ccb5..389225c 100644 --- a/moduler/programs/waybar/default.nix +++ b/moduler/programs/waybar/default.nix @@ -7,22 +7,339 @@ }: let + cfg = config.waybar; + isLaptop = cfg.profile == "laptop"; + palette = + if cfg.theme == "mocha" then + { + base = "#1E1E2E"; + mantle = "#181825"; + crust = "#11111B"; + text = "#CDD6F4"; + subtext0 = "#A6ADC8"; + green = "#A6E3A1"; + yellow = "#F9E2AF"; + sky = "#89DCEB"; + rose = "#F38BA8"; + blue = "#89B4FA"; + surface2 = "#585B70"; + peach = "#FAB387"; + } + else + { + base = "#EFF1F5"; + mantle = "#E6E9EF"; + crust = "#DCE0E8"; + text = "#4C4F69"; + subtext0 = "#6C6F85"; + green = "#40A02B"; + yellow = "#DF8E1D"; + sky = "#04A5E5"; + rose = "#D20F39"; + blue = "#1E66F5"; + surface2 = "#ACB0BE"; + peach = "#FE640B"; + }; + + waybarConfig = { + layer = "top"; + position = "top"; + margin-top = 10; + margin-left = 14; + margin-right = 14; + spacing = 12; + modules-left = [ "hyprland/workspaces" ]; + modules-right = + if isLaptop then + [ + "mpris" + "bluetooth" + "pulseaudio" + "upower" + "custom/tailscale" + "custom/netbird" + "network" + "clock" + ] + else + [ + "mpris" + "pulseaudio" + "bluetooth" + "custom/tailscale" + "custom/netbird" + "network" + "clock" + ]; + + mpris = { + format = "{player_icon} {title} - {artist}"; + format-paused = " {player_icon} {title}"; + format-stopped = ""; + player-icons = { + default = ""; + Feishin = ""; + }; + max-length = if isLaptop then 45 else 50; + interval = 1; + tooltip = true; + tooltip-format = "{player} - {status}\n{artist}\n{title}\n{album}"; + on-click = if isLaptop then "playerctl -p Feishin play-pause" else "playerctl play-pause"; + } + // lib.optionalAttrs isLaptop { + player = "Feishin"; + on-scroll-up = "playerctl -p Feishin next"; + on-scroll-down = "playerctl -p Feishin previous"; + }; + + bluetooth = { + format = " {status}"; + format-connected = " {device_alias}"; + format-connected-battery = " {device_alias} {device_battery_percentage}%"; + tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected"; + tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}"; + tooltip-format-enumerate-connected = "{device_alias}\t{device_address}"; + tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%"; + on-click = "pgrep .blueman-manage && pkill .blueman-manage || blueman-manager &"; + }; + + network = { + interface = + if isLaptop then + "wlp0s20f3" + else + [ + "enp195s0" + "enp196s0" + ]; + format = "{ifname}"; + format-wifi = " {essid} ({signalStrength}%)"; + format-ethernet = if isLaptop then "{ifname} " else " {ifname}"; + format-disconnected = "no signal"; + tooltip-format = "{ifname}"; + tooltip-format-wifi = "{essid} ({signalStrength}%) "; + tooltip-format-ethernet = "{ifname} "; + tooltip-format-disconnected = "Disconnected"; + max-length = 50; + }; + + upower = { + icon-size = 20; + hide-if-empty = true; + tooltip = true; + tooltip-spacing = 20; + }; + + pulseaudio = { + format = "{icon} {volume}%"; + format-bluetooth = "{icon}  {volume}%"; + format-muted = ""; + format-icons = { + headphones = ""; + handsfree = ""; + headset = ""; + phone = ""; + portable = ""; + car = ""; + default = [ + "" + "" + ]; + }; + on-click = "pgrep pavucontrol && pkill pavucontrol || pavucontrol &"; + }; + + clock = { + format = "{:%c}"; + locale = "sv_SE.UTF-8"; + tooltip = true; + tooltip-format = "{:%A, %d %B %Y}\n %H:%M:%S"; + interval = 1; + }; + + "custom/tailscale" = { + exec = "/home/fw/.config/waybar/scripts/tailscale.sh --status"; + on-click = "/home/fw/.config/waybar/scripts/tailscale.sh --toggle"; + exec-on-event = true; + format = "TS {icon} {text}"; + format-icons = { + connected = ""; + stopped = ""; + connecting = ""; + disconnecting = ""; + }; + tooltip = true; + return-type = "json"; + interval = 5; + }; + + "custom/netbird" = { + exec = "/home/fw/.config/waybar/scripts/netbird.sh --status"; + on-click = "/home/fw/.config/waybar/scripts/netbird.sh --toggle"; + exec-on-event = true; + format = "NB {icon} {text}"; + format-icons = { + connected = ""; + stopped = ""; + connecting = ""; + disconnecting = ""; + }; + tooltip = true; + return-type = "json"; + interval = 5; + }; + }; + + waybarStyle = '' + @define-color base ${palette.base}; + @define-color mantle ${palette.mantle}; + @define-color crust ${palette.crust}; + @define-color text ${palette.text}; + @define-color subtext0 ${palette.subtext0}; + @define-color green ${palette.green}; + @define-color yellow ${palette.yellow}; + @define-color sky ${palette.sky}; + @define-color rose ${palette.rose}; + @define-color blue ${palette.blue}; + @define-color surface2 ${palette.surface2}; + @define-color peach ${palette.peach}; + + * { + font-family: "FiraCode Nerd Font", "Font Awesome 7 Free"; + font-size: 15px; + } + + .connecting { + animation: pulse 0.8s ease-in-out infinite; + } + + @keyframes pulse { + 0% { opacity: 1; } + 50% { opacity: 0.5; } + 100% { opacity: 1; } + } + + window#waybar { + background: transparent; + box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35); + transition: background-color .35s ease, color .35s ease; + } + + window#waybar.hidden { opacity: 0.2; } + window#waybar.termite { background: @base; } + window#waybar.chromium { background: @base; border: none; } + + #workspaces, + #clock, + #mpris, + #pulseaudio, + #bluetooth, + #upower, + #network, + #custom-tailscale, + #custom-netbird { + background: @base; + border: none; + border-radius: 5px; + padding: 3px 8px; + } + + .modules-left > widget, + .modules-right > widget { + margin: 0 15px; + } + + .modules-left > widget:first-child { margin-left: 0; } + .modules-right > widget:last-child { margin-right: 0; } + + button { + border: none; + border-radius: 8px; + background: transparent; + color: @text; + transition: background-color .2s ease, box-shadow .2s ease; + box-shadow: inset 0 -3px transparent; + } + + button:hover { + background: rgba(255, 255, 255, 0.08); + box-shadow: inset 0 -3px @peach; + } + + button:active { + padding-top: 1px; + padding-bottom: 1px; + box-shadow: inset 0 -2px @peach; + color: @base; + } + + #workspaces { background: @base; } + + #workspaces button { + padding: 2px 8px; + margin: 0 2px; + border-radius: 8px; + transition: background-color .2s ease, box-shadow .2s ease; + } + + #workspaces button:hover { background: rgba(255, 255, 255, 0.08); } + + #workspaces button.active, + #workspaces button.focused { + background: @peach; + color: @base; + box-shadow: inset 0 -3px @peach; + } + + #workspaces button.urgent { + background: @rose; + color: @base; + box-shadow: inset 0 -3px rgba(0, 0, 0, 0.2); + } + + #clock, + #mpris, + #pulseaudio, + #bluetooth, + #upower, + #custom-tailscale, + #custom-netbird, + #network { + background: @peach; + color: @base; + font-weight: 600; + letter-spacing: 0.2px; + } + + @keyframes blink { + to { + background-color: @peach; + color: @base; + } + } + ''; in with lib; { options = { waybar = { enable = mkEnableOption "enables waybar"; - configPath = lib.mkOption { - type = lib.types.path; - default = ./waybar.jsonc; - description = "The path to the waybar config"; + profile = lib.mkOption { + type = lib.types.enum [ + "desktop" + "laptop" + ]; + default = "desktop"; + description = "Layout profile for modules and device-specific settings"; }; - stylePath = lib.mkOption { - type = lib.types.path; - default = ./waybar-latte.css; - description = "The path to the waybar config"; + theme = lib.mkOption { + type = lib.types.enum [ + "latte" + "mocha" + ]; + default = "latte"; + description = "Color theme used for Waybar style generation"; }; }; }; @@ -35,8 +352,8 @@ with lib; }; }; }; - xdg.configFile."waybar/config.jsonc".source = config.waybar.configPath; - xdg.configFile."waybar/style.css".source = config.waybar.stylePath; + xdg.configFile."waybar/config.jsonc".text = builtins.toJSON waybarConfig; + xdg.configFile."waybar/style.css".text = waybarStyle; xdg.configFile."waybar/scripts/tailscale.sh" = { text = '' #!${pkgs.bash}/bin/bash diff --git a/moduler/programs/waybar/waybar-laptop.jsonc b/moduler/programs/waybar/waybar-laptop.jsonc deleted file mode 100644 index f47b3f9..0000000 --- a/moduler/programs/waybar/waybar-laptop.jsonc +++ /dev/null @@ -1,122 +0,0 @@ -{ - "layer": "top", - "position": "top", - "margin-top": 10, - "margin-left": 14, - "margin-right": 14, - "spacing": 12, - "modules-left": [ - "hyprland/workspaces" - ], - "modules-right": [ - "mpris", - "bluetooth", - "pulseaudio", - "upower", - "custom/tailscale", - "custom/netbird", - "network", - "clock" - ], - "mpris": { - "player": "Feishin", - "format": "{player_icon} {title} — {artist}", - "format-paused": " {player_icon} {title}", - "format-stopped": "", - "player-icons": { - "default": "", - "Feishin": "" - }, - "max-length": 45, - "interval": 1, - "tooltip": true, - "tooltip-format": "{player} — {status}\n{artist}\n{title}\n{album}", - "on-click": "playerctl -p Feishin play-pause", - "on-scroll-up": "playerctl -p Feishin next", - "on-scroll-down": "playerctl -p Feishin previous" - }, - "bluetooth": { - "format": " {status}", - "format-connected": " {device_alias}", - "format-connected-battery": " {device_alias} {device_battery_percentage}%", - "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected", - "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", - "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", - "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%", - "on-click": "pgrep .blueman-manage && pkill .blueman-manage || blueman-manager &" - }, - "network": { - "interface": "wlp0s20f3", - "format": "{ifname}", - "format-wifi": " {essid} ({signalStrength}%)", - "format-ethernet": "{ifname} ", - "format-disconnected": "no signal", //An empty format will hide the module. - "tooltip-format": "{ifname}", - "tooltip-format-wifi": "{essid} ({signalStrength}%) ", - "tooltip-format-ethernet": "{ifname} ", - "tooltip-format-disconnected": "Disconnected", - "max-length": 50 - }, - "upower": { - "icon-size": 20, - "hide-if-empty": true, - "tooltip": true, - "tooltip-spacing": 20 - }, - "pulseaudio": { - //"scroll-step": 1, - "format": "{icon} {volume}%", - "format-bluetooth": "{icon}  {volume}%", - "format-muted": "", - "format-icons": { - "headphones": "", - "handsfree": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": [ - "", - "" - ] - }, - "on-click": "pgrep pavucontrol && pkill pavucontrol || pavucontrol &" - }, - "clock": { - "format": "{:%c}", - "locale": "sv_SE.UTF-8", - "tooltip": true, - "tooltip-format": "{:%A, %d %B %Y}\n %H:%M:%S", - "interval": 1 - }, - "custom/tailscale": { - "exec": "/home/fw/.config/waybar/scripts/tailscale.sh --status", - "on-click": "/home/fw/.config/waybar/scripts/tailscale.sh --toggle", - "exec-on-event": true, - "format": "{icon} {text}", - "format-icons": { - "connected": "", - "stopped": "", - "connecting": "", - "disconnecting": "" - }, - "tooltip": true, - "return-type": "json", - "interval": 5 - }, - "custom/netbird": { - "exec": "/home/fw/.config/waybar/scripts/netbird.sh --status", - "on-click": "/home/fw/.config/waybar/scripts/netbird.sh --toggle", - "exec-on-event": true, - "format": "{icon} {text}", - "format-icons": { - "connected": "", - "stopped": "", - "connecting": "", - "disconnecting": "" - }, - "tooltip": true, - "return-type": "json", - "interval": 5 - } -} diff --git a/moduler/programs/waybar/waybar-latte.css b/moduler/programs/waybar/waybar-latte.css deleted file mode 100644 index 8c11c19..0000000 --- a/moduler/programs/waybar/waybar-latte.css +++ /dev/null @@ -1,153 +0,0 @@ -/* -------- Catppuccin Latte Palette -------- */ -@define-color base #EFF1F5; -@define-color mantle #E6E9EF; -@define-color crust #DCE0E8; -@define-color text #4C4F69; -@define-color subtext0 #6C6F85; - -@define-color green #40A02B; -@define-color yellow #DF8E1D; -@define-color sky #04A5E5; -@define-color rose #D20F39; -@define-color blue #1E66F5; -@define-color surface2 #ACB0BE; -@define-color peach #FE640B; - -/* -------- Base Styles -------- */ -* { - font-family: "FiraCode Nerd Font", "Font Awesome 7 Free"; - font-size: 15px; -} - -window#waybar { - /* background: @base; */ - background: transparent; - box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35); - transition: background-color .35s ease, color .35s ease; -} - -window#waybar.hidden { opacity: 0.2; } - -window#waybar.termite { background: @base; } -window#waybar.chromium { background: @base; border: none; } - -/* -------- Module “pill” look -------- */ -#workspaces, #clock, #mpris, #pulseaudio, #bluetooth, #upower, #network { - background: @base; - border: none; - border-radius: 5px; - padding: 3px 8px; -} - -/* consistent gaps between modules */ -.modules-left > widget, .modules-right > widget { - margin: 0 15px; -} -.modules-left > widget:first-child { margin-left: 0; } -.modules-right > widget:last-child { margin-right: 0; } - -/* -------- Buttons (generic) -------- */ -/* Buttons */ -button { - border: none; - border-radius: 8px; - background: transparent; - color: @text; - transition: background-color .2s ease, box-shadow .2s ease; - box-shadow: inset 0 -3px transparent; -} - -/* hover */ -button:hover { - background: rgba(255,255,255,0.08); - box-shadow: inset 0 -3px @peach; -} - -/* active (no CSS transform in GTK; simulate press with padding + shadow) */ -button:active { - padding-top: 1px; /* nudge down visually */ - padding-bottom: 1px; /* keep height stable */ - box-shadow: inset 0 -2px @peach; - color: @base; -} - -/* -------- Workspaces -------- */ -#workspaces { - background: @base; -} - -#workspaces button { - padding: 2px 8px; - margin: 0 2px; - border-radius: 8px; - transition: background-color .2s ease, box-shadow .2s ease; -} - -#workspaces button:hover { - background: rgba(255,255,255,0.08); -} - -#workspaces button.active, #workspaces button.focused { - background: @peach; - color: @base; - box-shadow: inset 0 -3px @peach; -} - -#workspaces button.urgent { - background: @rose; - color: @base; - box-shadow: inset 0 -3px rgba(0,0,0,0.2); -} - -/* -------- Clock -------- */ -#clock { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Mpris -------- */ -#mpris { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Pavu -------- */ -#pulseaudio { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Bluetooth -------- */ -#bluetooth { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Upower -------- */ -#upower { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Network -------- */ -#network { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Helpers -------- */ -@keyframes blink { - to { background-color: @peach; color: @base; } -} diff --git a/moduler/programs/waybar/waybar-mocha.css b/moduler/programs/waybar/waybar-mocha.css deleted file mode 100644 index c54b43c..0000000 --- a/moduler/programs/waybar/waybar-mocha.css +++ /dev/null @@ -1,185 +0,0 @@ -/* -------- Catppuccin Mocha Palette -------- */ -@define-color base #1E1E2E; -@define-color mantle #181825; -@define-color crust #11111B; -@define-color text #CDD6F4; -@define-color subtext0 #A6ADC8; - -@define-color green #A6E3A1; -@define-color yellow #F9E2AF; -@define-color sky #89DCEB; -@define-color rose #F38BA8; -@define-color blue #89B4FA; -@define-color surface2 #585B70; -@define-color peach #fab387; - -/* -------- Base Styles -------- */ -* { - font-family: "FiraCode Nerd Font", "Font Awesome 7 Free"; - font-size: 15px; -} - -.connecting { - animation: pulse 0.8s ease-in-out infinite; -} - -@keyframes pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.5; - } - 100% { - opacity: 1; - } -} - -window#waybar { - /* background: @base; */ - background: transparent; - box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35); - transition: background-color .35s ease, color .35s ease; -} - -window#waybar.hidden { opacity: 0.2; } - -window#waybar.termite { background: @base; } -window#waybar.chromium { background: @base; border: none; } - -/* -------- Module “pill” look -------- */ -#workspaces, #clock, #mpris, #pulseaudio, #bluetooth, #upower, #network, #custom-tailscale, #custom-netbird { - background: @base; - border: none; - border-radius: 5px; - padding: 3px 8px; -} - -/* consistent gaps between modules */ -.modules-left > widget, .modules-right > widget { - margin: 0 15px; -} -.modules-left > widget:first-child { margin-left: 0; } -.modules-right > widget:last-child { margin-right: 0; } - -/* -------- Buttons (generic) -------- */ -/* Buttons */ -button { - border: none; - border-radius: 8px; - background: transparent; - color: @text; - transition: background-color .2s ease, box-shadow .2s ease; - box-shadow: inset 0 -3px transparent; -} - -/* hover */ -button:hover { - background: rgba(255,255,255,0.08); - box-shadow: inset 0 -3px @peach; -} - -/* active (no CSS transform in GTK; simulate press with padding + shadow) */ -button:active { - padding-top: 1px; /* nudge down visually */ - padding-bottom: 1px; /* keep height stable */ - box-shadow: inset 0 -2px @peach; - color: @base; -} - -/* -------- Workspaces -------- */ -#workspaces { - background: @base; -} - -#workspaces button { - padding: 2px 8px; - margin: 0 2px; - border-radius: 8px; - transition: background-color .2s ease, box-shadow .2s ease; -} - -#workspaces button:hover { - background: rgba(255,255,255,0.08); -} - -#workspaces button.active, #workspaces button.focused { - background: @peach; - color: @base; - box-shadow: inset 0 -3px @peach; -} - -#workspaces button.urgent { - background: @rose; - color: @base; - box-shadow: inset 0 -3px rgba(0,0,0,0.2); -} - -/* -------- Clock -------- */ -#clock { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Mpris -------- */ -#mpris { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Pavu -------- */ -#pulseaudio { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Bluetooth -------- */ -#bluetooth { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Upower -------- */ -#upower { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Upower -------- */ -#custom-tailscale { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Netbird -------- */ -#custom-netbird { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Network -------- */ -#network { - background: @peach; - color: @base; - font-weight: 600; - letter-spacing: 0.2px; -} - -/* -------- Helpers -------- */ -@keyframes blink { - to { background-color: @peach; color: @base; } -} diff --git a/moduler/programs/waybar/waybar.jsonc b/moduler/programs/waybar/waybar.jsonc deleted file mode 100644 index eca5509..0000000 --- a/moduler/programs/waybar/waybar.jsonc +++ /dev/null @@ -1,116 +0,0 @@ -{ - "layer": "top", - "position": "top", - "margin-top": 10, - "margin-left": 14, - "margin-right": 14, - "spacing": 12, - "modules-left": [ - "hyprland/workspaces" - ], - "modules-right": [ - "mpris", - "pulseaudio", - "bluetooth", - "custom/tailscale", - "custom/netbird", - "network", - "clock" - ], - "mpris": { - // "player": "Feishin", - "format": "{player_icon} {title} — {artist}", - "format-paused": " {player_icon} {title}", - "format-stopped": "", - "player-icons": { - "default": "", - "Feishin": "" - }, - "max-length": 45, - "interval": 1, - "tooltip": true, - "tooltip-format": "{player} — {status}\n{artist}\n{title}\n{album}", - "on-click": "playerctl play-pause" - }, - "bluetooth": { - "format": " {status}", - "format-connected": " {device_alias}", - "format-connected-battery": " {device_alias} {device_battery_percentage}%", - "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected", - "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", - "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", - "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%", - "on-click": "pgrep .blueman-manage && pkill .blueman-manage || blueman-manager &" - }, - "network": { - "interface": [ - "enp195s0", - "enp196s0" - ], - "format": "{ifname}", - "format-wifi": " {essid} ({signalStrength}%)", - "format-ethernet": " {ifname}", - "format-disconnected": "no signal", //An empty format will hide the module. - "tooltip-format": "{ifname}", - "tooltip-format-wifi": "{essid} ({signalStrength}%) ", - "tooltip-format-ethernet": "{ifname} ", - "tooltip-format-disconnected": "Disconnected", - "max-length": 50 - }, - "pulseaudio": { - //"scroll-step": 1, - "format": "{icon} {volume}%", - "format-bluetooth": "{icon}  {volume}%", - "format-muted": "", - "format-icons": { - "headphones": "", - "handsfree": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": [ - "", - "" - ] - }, - "on-click": "pgrep pavucontrol && pkill pavucontrol || pavucontrol &" - }, - "clock": { - "format": "{:%c}", - "locale": "sv_SE.UTF-8", - "tooltip": true, - "tooltip-format": "{:%A, %d %B %Y}\n %H:%M:%S", - "interval": 1 - }, - "custom/tailscale": { - "exec": "/home/fw/.config/waybar/scripts/tailscale.sh --status", - "on-click": "/home/fw/.config/waybar/scripts/tailscale.sh --toggle", - "exec-on-event": true, - "format": "{icon} {text}", - "format-icons": { - "connected": "", - "stopped": "", - "connecting": "", - "disconnecting": "" - }, - "tooltip": true, - "return-type": "json", - "interval": 5 - }, - "custom/netbird": { - "exec": "/home/fw/.config/waybar/scripts/netbird.sh --status", - "on-click": "/home/fw/.config/waybar/scripts/netbird.sh --toggle", - "exec-on-event": true, - "format": "{icon} {text}", - "format-icons": { - "connected": "", - "stopped": "", - "connecting": "", - "disconnecting": "" - }, - "tooltip": true, - "return-type": "json", - "interval": 5 - } -}