122 lines
2.9 KiB
Nix
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"
|
|
];
|
|
};
|
|
|
|
};
|
|
}
|