{ config, lib, pkgs, ... }: let cfg = config.features.gui.desktops.niri.parts.swayosd; aes = config.aesthetics; swayosd-patched = pkgs.swayosd.overrideAttrs (old: { postInstall = '' mkdir -p $out/share/dbus-1/services mv $out/share/dbus-1/system-services/org.erikreider.swayosd.service \ $out/share/dbus-1/services/org.erikreider.swayosd.service rm -r $out/share/dbus-1/system* ''; }); in { options.features.gui.desktops.niri.parts.swayosd.enable = lib.mkEnableOption "swayosd"; config = lib.mkIf cfg.enable { home.packages = [ pkgs.swayosd ]; dbus.packages = [ swayosd-patched ]; services.swayosd = { enable = true; topMargin = 0.5; stylePath = with aes.scheme; (builtins.toFile "style.scss" '' window#osd { border-radius: 4px; border-width: 3px; border-style: solid; border-color: #${base0C}; background-color: #${base00}; color: #${base05}; } window#osd #container { margin: 6px; padding: 2px; background: transparent; } window#osd trough { margin-right: 10px; } window#osd image { -gtk-icon-transform: scale(0.7); } * { opacity: 1; } ''); }; }; }