{ options, config, lib, pkgs, ... }: with lib; with lib.plusultra; let cfg = config.plusultra.desktop.addons.mako; in { options.plusultra.desktop.addons.mako = with types; { enable = mkBoolOpt false "Whether to enable Mako in Sway."; }; config = mkIf cfg.enable { environment.systemPackages = with pkgs; [ mako libnotify ]; systemd.user.services.mako = { description = "Mako notification daemon"; wantedBy = [ "graphical-session.target" ]; partOf = [ "graphical-session.target" ]; after = [ "graphical-session.target" ]; serviceConfig = { Type = "dbus"; BusName = "org.freedesktop.Notifications"; ExecCondition = '' ${pkgs.bash}/bin/bash -c '[ -n "$WAYLAND_DISPLAY" ]' ''; ExecStart = '' ${pkgs.mako}/bin/mako ''; ExecReload = '' ${pkgs.mako}/bin/makoctl reload ''; Restart = "on-failure"; RestartSec = 1; TimeoutStopSec = 10; }; }; plusultra.home.configFile."mako/config".source = ./config; }; }