{ config, lib, pkgs, ... }: # mako as the notification daemon: toasts, a do-not-disturb mode, and history recall. { options.modules.desktop.session.mako.enable = lib.mkEnableOption "the mako notification daemon"; config = lib.mkIf config.modules.desktop.session.mako.enable { home-manager.users.${config.user.name} = { # Colors and the popup font come from Stylix's mako target, so only # behaviour is set here. services.mako = { enable = true; settings = { # Toasts auto-dismiss into history rather than lingering. # mako's own default of 0 leaves every notification on screen until acted on. default-timeout = 5000; # The do-not-disturb mode. # Invisible hides the toasts but still records them to history. # Missed notifications can therefore be recalled. "mode=dnd".invisible = true; }; }; }; registry.keybind.${config.networking.hostName}.mako-history = { keys = "SUPER + N"; action = { kind = "exec"; command = "${lib.getExe' pkgs.mako "makoctl"} restore"; }; }; }; }