Compare commits

...

2 commits

Author SHA1 Message Date
fwastring
8462489991 scaled down laptop config 2026-03-29 15:05:40 +02:00
fwastring
d6ce1fb1cc refactored waybar config 2026-03-29 15:05:34 +02:00
9 changed files with 333 additions and 679 deletions

View file

@ -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;

View file

@ -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;

View file

@ -3,14 +3,11 @@
# and in the NixOS manual (accessible by running nixos-help).
{
inputs,
config,
pkgs,
myhostname,
...
}:
let
theme = "mocha";
modulesDirectory = ../../moduler;
in
{
@ -18,33 +15,15 @@ in
./hardware-configuration.nix
(modulesDirectory + /users.nix)
(modulesDirectory + /git.nix)
(modulesDirectory + /network.nix)
(modulesDirectory + /programs.nix)
(modulesDirectory + /system.nix)
(modulesDirectory + /dev.nix)
(modulesDirectory + /sound.nix)
(modulesDirectory + /services/base)
(modulesDirectory + /services/webcam-rtsp)
(modulesDirectory + /programs/hyprland)
(modulesDirectory + /programs/kubernetes-tools.nix)
(modulesDirectory + /programs/confetti)
(modulesDirectory + /programs/nixvim)
];
kubernetes-tools.enable = true;
networking.networkmanager = {
enable = true;
plugins = with pkgs; [
networkmanager-openvpn
];
};
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${theme}.yaml";
};
webcam-rtsp = {
@ -55,78 +34,12 @@ in
videoSize = "1280x720";
};
nixvim = {
enable = true;
theme = theme;
};
hyprland = {
enable = true;
theme = theme;
};
home-manager.extraSpecialArgs = { inherit inputs pkgs; };
home-manager.users.fw = {
imports = [
./../../moduler/home.nix
./../../moduler/programs/waybar
inputs.catppuccin.homeModules.catppuccin
];
waybar = {
enable = true;
configPath = ./../../moduler/programs/waybar/waybar-laptop.jsonc;
stylePath = ./../../moduler/programs/waybar/waybar-${theme}.css;
};
gtk = {
enable = true;
iconTheme = {
name = "oomox-gruvbox-dark";
package = pkgs.gruvbox-dark-icons-gtk;
};
};
kitty = {
enable = true;
theme = theme;
};
fish = {
theme = theme;
};
k9s = {
enable = true;
theme = theme;
};
oh-my-posh = {
enable = true;
theme = theme;
};
catppuccin = {
librewolf = {
enable = true;
flavor = theme;
accent = "peach";
};
};
programs.ranger.enable = true;
stylix.targets = {
lazygit.enable = false;
fish.enable = false;
kitty.enable = false;
waybar.enable = false;
tmux.enable = false;
k9s.enable = false;
};
};
security.sudo.wheelNeedsPassword = false;
users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII60tdNsG0z9q2jHmoTKvkeLQE6OF0bmTsDX1bpqpoG7 fw@jobb"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFpJBGPIfPB1BwSG7aoKqwfccyZSaU7J3xpJ8behMp9N fw@core"
];
services.upower = {
enable = true;
};
boot.kernelPackages = pkgs.linuxPackages_latest;
networking.hostName = myhostname;

View file

@ -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;

View file

@ -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

View file

@ -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
}
}

View file

@ -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; }
}

View file

@ -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; }
}

View file

@ -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
}
}