{ pkgs }:
let
  serviceButton = svcType: name: label: {
    inherit label;
    type = "toggle";
    command = "swaync-service-dispatcher toggle ${svcType} ${name}";
    update-command = "swaync-service-dispatcher print ${svcType} ${name}";
    active = true;
  };
in
{
  gps = serviceButton "systemd" "eg25-control-gps" "";  # GPS services; other icons: gps, ⌖, 🛰, 🌎, 
  cell-modem = serviceButton "systemd" "eg25-control-powered" "󰺐";  # icons: 5g, 📡, 📱, ᯤ, ⚡, , 🌐, 📶, 🗼, 󰀂, , 󰺐, 󰩯
  vpn = serviceButton "systemd" "wg-quick-vpn-servo" "vpn::hn";

  gnome-calls = serviceButton "s6" "gnome-calls" "SIP";
  geary = serviceButton "s6" "geary" "󰇮";  # email (Geary); other icons: ✉, [E], 📧, 󰇮
  abaddon = serviceButton "s6" "abaddon" "󰊴";  # Discord chat client; icons: 󰊴, 🎮
  dissent = serviceButton "s6" "dissent" "󰊴";  # Discord chat client; icons: 󰊴, 🎮
  signal-desktop = serviceButton "s6" "signal-desktop" "💬";  # Signal messenger; other icons: 󰍦
  dino = serviceButton "s6" "dino" "XMPP";  # XMPP calls (jingle)
  fractal = serviceButton "s6" "fractal" "[m]";  # Matrix messages
}
