nix-config/modules/wm/swaync/default.nix

322 lines
7.7 KiB
Nix

{
services.swaync = {
enable = true;
settings = {
positionX = "right";
positionY = "top";
layer = "overlay";
control-center-layer = "top";
layer-shell = true;
cssPriority = "application";
control-center-margin-top = 0;
control-center-margin-bottom = 0;
control-center-margin-right = 0;
control-center-margin-left = 0;
notification-2fa-action = true;
notification-inline-replies = false;
notification-icon-size = 32;
notification-body-image-height = 100;
notification-body-image-width = 200;
widgets = [
"title"
"dnd"
"buttons-grid"
"volume"
"notifications"
"mpris"
];
widget-config = {
title = {
text = "Control Panel";
clear-all-button = true;
button-text = " 󰆴 ";
};
buttons-grid = {
buttons-per-row = 3;
actions = [
{
label = " 󰖩 ";
command = "iwgtk";
}
{
label = " 󰂯 ";
command = "wezterm start -- bluetui";
}
{
label = " 󰍃 ";
command = "niri msg action quit";
}
{
label = " 󰌾 ";
command = "swaylock";
}
{
label = " 󰜉 ";
command = "systemctl reboot";
}
{
label = " 󰐥 ";
command = "systemctl poweroff";
}
];
};
dnd = {
text = "Do Not Disturb";
clear-all-button = true;
};
mpris = {
autohide = true;
show-album-art = "always";
loop-carousel = false;
};
};
};
style = ''
@define-color cc-bg #16161d;
@define-color noti-border-color #dcd7ba;
@define-color noti-bg #11111b;
@define-color noti-bg-darker #2b2b39;
@define-color noti-bg-hover #1b1b2b;
@define-color noti-bg-focus #1b1b1b;
@define-color noti-close-bg #dcd7ba;
@define-color noti-close-bg-hover #dcd7ba;
@define-color text-color #dcd7ba;
@define-color text-color-disabled #828282;
@define-color bg-selected #7e9cd8;
@define-color border-green #76946a;
@define-color red-base #c34043;
@define-color red-hover #e46876;
@define-color green-base #98bb6c;
@define-color blue-base #7e9cd8;
* {
font-family: "JetBrainsMono NFM SemiBold", monospace;
border-radius: 0;
}
.control-center .notification-row:focus,
.control-center .notification-row:hover {
opacity: 1;
background: @noti-bg-darker;
}
.notification-row {
outline: none;
margin: 0;
padding: 0;
}
.notification,
.notification-content,
.notification-action,
.notification-default-action,
.inline-reply-entry,
.inline-reply-button,
.widget-title,
.widget-title>button,
.widget-dnd,
.widget-dnd>switch,
.widget-dnd>switch slider,
.widget-label>label,
.widget-buttons-grid,
.widget-buttons-grid>flowbox>flowboxchild>button,
.widget-volume,
.widget-backlight,
.widget-mpris,
.widget-mpris>box>button,
.widget-mpris-player,
.widget-mpris-album-art {
border-radius: 0;
}
.notification {
background: @cc-bg;
border: 2px solid @border-green;
margin: 3px -2px 3px 0;
}
.close-button {
background: @red-base;
color: @cc-bg;
text-shadow: none;
padding: 0;
margin-top: 5px;
margin-right: 5px;
opacity: 0;
transition: opacity 0.2s ease-in-out;
border-radius: 0;
border: none;
}
.notification:hover .close-button {
opacity: 1;
}
.close-button:hover {
background: @red-hover;
box-shadow: none;
transition: all 0.15s ease-in-out;
}
.notification-action {
border: 2px solid @border-green;
border-top: none;
}
.notification-default-action:hover,
.notification-action:hover {
color: @blue-base;
background: @cc-bg;
}
.inline-reply-entry {
background: @noti-bg-darker;
color: @text-color;
caret-color: @text-color;
border: 1px solid @noti-border-color;
}
.inline-reply-button {
margin-top: 4px;
margin-left: 4px;
background: @noti-bg;
border: 1px solid @noti-border-color;
color: @text-color;
}
.inline-reply-button:disabled {
background: transparent;
color: @text-color-disabled;
border: 1px solid transparent;
}
.inline-reply-button:hover {
background: @noti-bg-hover;
}
.summary {
font-size: 16px;
font-weight: 700;
background: transparent;
color: @green-base;
text-shadow: none;
}
.time {
font-size: 16px;
font-weight: 700;
background: transparent;
color: @text-color;
text-shadow: none;
margin-right: 18px;
}
.body {
font-size: 15px;
font-weight: 400;
background: transparent;
color: @text-color;
text-shadow: none;
}
.control-center {
background: @cc-bg;
border: 2px solid @border-green;
}
.widget-title {
color: @blue-base;
background: @noti-bg-darker;
padding: 5px 10px;
margin: 10px;
font-size: 1.5rem;
}
.widget-title>button {
font-size: 1rem;
color: @text-color;
background: @noti-bg;
box-shadow: none;
}
.widget-title>button:hover {
background: @red-base;
color: @cc-bg;
}
.widget-dnd {
background: @noti-bg-darker;
padding: 5px 10px;
margin: 5px 10px;
font-size: large;
color: @blue-base;
}
.widget-dnd>switch {
background: @blue-base;
border-radius: 0;
}
.widget-dnd>switch:checked {
background: @red-base;
border: 1px solid @red-base;
}
.widget-label>label {
font-size: 1rem;
color: @text-color;
margin: 10px;
}
.widget-buttons-grid {
font-size: x-large;
padding: 5px;
margin: 10px;
background: @noti-bg-darker;
}
.widget-buttons-grid>flowbox>flowboxchild>button {
margin: 3px;
background: @cc-bg;
color: @text-color;
transition: background-color 0.15s ease-in-out;
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
background: @blue-base;
color: @cc-bg;
}
.widget-buttons-grid>flowbox>flowboxchild>button:checked {
background: @green-base;
color: @cc-bg;
}
.widget-volume,
.widget-backlight {
background: @noti-bg-darker;
padding: 5px;
margin: 5px 10px;
font-size: 2rem;
color: @blue-base;
}
.widget-mpris {
color: @text-color;
background: @noti-bg-darker;
padding: 5px 10px;
margin: 5px 10px 5px 10px;
box-shadow: none;
}
.widget-mpris>box>button,
.widget-mpris-player,
.widget-mpris-album-art {
border-radius: 0;
box-shadow: none;
padding: 5px 10px;
margin: 10px 0 0 0;
}
'';
};
}