swaync: tune config; ignore certain sxmo notifications

This commit is contained in:
Colin 2023-09-07 00:11:14 +00:00
parent 4484fd243e
commit ccb6f33b2f

View File

@ -7,8 +7,12 @@
# - `G_MESSAGES_DEBUG=all swaync` # - `G_MESSAGES_DEBUG=all swaync`
# - reveal notification center: `swaync-client -t -sw` # - reveal notification center: `swaync-client -t -sw`
# #
# configuration defaults can be found in: # configuration:
# - /run/current-system/etc/profiles/per-user/colin/etc/xdg/swaync/ # - defaults: /run/current-system/etc/profiles/per-user/colin/etc/xdg/swaync/
# - `man 5 swaync`
# - examples:
# - thread: <https://github.com/ErikReider/SwayNotificationCenter/discussions/183>
# - buttons-grid and menubar: <https://gist.github.com/JannisPetschenka/fb00eec3efea9c7fff8c38a01ce5d507>
{ ... }: { ... }:
{ {
sane.programs.swaynotificationcenter = { sane.programs.swaynotificationcenter = {
@ -20,7 +24,7 @@
layer = "overlay"; layer = "overlay";
control-center-layer = "top"; control-center-layer = "top";
layer-shell = true; layer-shell = true;
cssPriority = "application"; cssPriority = "user"; # "application"|"user". "user" in order to override the system gtk theme.
control-center-margin-top = 0; control-center-margin-top = 0;
control-center-margin-bottom = 0; control-center-margin-bottom = 0;
control-center-margin-right = 0; control-center-margin-right = 0;
@ -33,14 +37,14 @@
timeout = 30; timeout = 30;
timeout-low = 5; timeout-low = 5;
timeout-critical = 0; timeout-critical = 0;
fit-to-screen = true; fit-to-screen = true; #< have notification center take full vertical screen space
control-center-width = 500; control-center-width = 400;
control-center-height = 600; control-center-height = 600;
notification-window-width = 400; notification-window-width = 400;
keyboard-shortcuts = true; keyboard-shortcuts = true;
image-visibility = "when-available"; image-visibility = "when-available";
transition-time = 100; transition-time = 100;
hide-on-clear = false; hide-on-clear = true; #< hide control center when clicking "clear all"
hide-on-action = true; hide-on-action = true;
script-fail-notify = true; script-fail-notify = true;
scripts = { scripts = {
@ -55,39 +59,67 @@
# }; # };
}; };
notification-visibility = { notification-visibility = {
# example-name = { # match incoming notifications and decide if they should be visible.
# state = "muted"; # map of rule-name => { criteria and effect };
# urgency = "Low"; # keys:
# app-name = "Spotify"; # - `state`: "ignored"|"muted"|"transient"|"enabled"
# }; # => which visibility to apply to matched notifications
# => "ignored" behaves as if the notification was never sent.
# => "muted" adds it to the sidebar & sets the notif indicator but doesn't display it on main display
# - `override-urgency`: "unset"|"low"|"normal"|"critical"
# => which urgency to apply to matched notifs
# critera: each key is optional, value is regex; rule applies if *all* specified are matched
# - `app-name`: string
# - `desktop-entry`: string
# - `summary`: string
# - `body`: string
# - `urgency`: "Low"|"Normal"|"Critical"
# - `category`: string
#
# test rules by using `notify-send` (libnotify)
sxmo-extraneous = {
state = "ignored";
summary = "(sxmo_hook_lisgd|Autorotate) (Stopped|Started)";
};
}; };
widgets = [ widgets = [
"inhibitors" # what to show in the notification center (and in which order).
# these are configurable further via `widget-config`.
# besides these listed, there are general-purpose UI tools:
# - label (show some text)
# - buttons-grid (labels which trigger actions when clicked)
# - menubar (tree of labels/actions)
"title" "title"
"dnd" "dnd"
"inhibitors"
"backlight"
"volume"
"mpris"
"notifications" "notifications"
]; ];
widget-config = { widget-config = {
backlight = {
label = "󰃝 ";
};
dnd = {
text = "Do Not Disturb";
};
inhibitors = { inhibitors = {
text = "Inhibitors"; text = "Inhibitors";
button-text = "Clear All"; button-text = "Clear All";
clear-all-button = true; clear-all-button = true;
}; };
mpris = {
image-size = 64;
image-radius = 8;
};
title = { title = {
text = "Notifications"; text = "Notifications";
clear-all-button = true; clear-all-button = true;
button-text = "Clear All"; button-text = "Clear All";
}; };
dnd = { volume = {
text = "Do Not Disturb"; label = " ";
};
label = {
max-lines = 5;
text = "Label Text";
};
mpris = {
image-size = 96;
image-radius = 12;
}; };
}; };
}; };