Files
samfelag/modules/desktop/tools/swaync.nix
2024-12-06 19:05:56 +01:00

122 lines
2.9 KiB
Nix

{ inputs, config, lib, pkgs, ... }:
let
cfg = config.samfelag.modules.desktop.tools.swaync;
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
in {
options.samfelag.modules.desktop.tools.swaync = with lib; {
enable = mkEnableOption "Sway Notification Center";
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
libnotify
swaynotificationcenter
];
hm.services.swaync = {
enable = true;
settings = {
widgets = [
"title"
"dnd"
"notifications"
];
widget-config = {
dnd = {
text = "Silence";
};
title = {
text = "Notifications";
clear-all-button = true;
button-text = "󰆴";
};
};
};
style = ''
* {
font-family: Iosevka;
color: #${config.colorScheme.palette.base05};
}
.notification {
border-width: 2px;
padding: 2px 4px;
background-color: #${config.colorScheme.palette.base00};
color: #${config.colorScheme.palette.base05};
}
.notification-content {
background-color: inherit;
color: inherit;
}
.critical.notification {
background-color: #${config.colorScheme.palette.base0C};
}
.image {
margin: 5px;
padding-right: 5px;
}
.control-center {
margin: 30px;
margin-left: 0px;
border-radius: 10px;
border: solid #${config.colorScheme.palette.base05} 1px;
background-color: #${config.colorScheme.palette.base01};
color: #${config.colorScheme.palette.base05};
opacity: 0.95;
}
.control-center-clear-all {
background: #${config.colorScheme.palette.base02};
}
.control-center-dnd:checked {
background: #${config.colorScheme.palette.base08};
}
.close-button {
background: #${config.colorScheme.palette.base08};
}
.notification-group-collapse-button {
margin: 4px;
box-shadow: none;
background: #${config.colorScheme.palette.base0A};
}
.notification-group-close-all-button {
margin: 4px;
box-shadow: none;
background: #${config.colorScheme.palette.base08};
}
'';
};
# - Execute on startup -----------------------
hm.wayland.windowManager.hyprland.settings = lib.mkIf hyprCfg.enable {
exec-once = [
"swaync"
];
layerrule = [
"animation slide top, swaync-control-center"
"animation slide top, swaync-notification-window"
];
bind = [
# Notification center
"${hyprCfg.mod}, n, exec, swaync-client -t -sw"
];
};
};
}