mirror of
https://github.com/youwen5/nixos.git
synced 2024-11-24 17:53:51 -08:00
feat: switch to swaynotificationcenter
This commit is contained in:
parent
56ae9e5b22
commit
154eb2a2bf
4 changed files with 339 additions and 9 deletions
|
@ -52,15 +52,15 @@
|
||||||
services.easyeffects.package = pkgs.easyeffects;
|
services.easyeffects.package = pkgs.easyeffects;
|
||||||
|
|
||||||
# Notification daemon
|
# Notification daemon
|
||||||
services.dunst = {
|
# services.dunst = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
# catppuccin.enable = true;
|
# # catppuccin.enable = true;
|
||||||
iconTheme = {
|
# iconTheme = {
|
||||||
name = "Papirus-Dark";
|
# name = "Papirus-Dark";
|
||||||
package = pkgs.papirus-icon-theme;
|
# package = pkgs.papirus-icon-theme;
|
||||||
size = "32x32";
|
# size = "32x32";
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
|
|
||||||
# Currently non-functional
|
# Currently non-functional
|
||||||
programs.wlogout.enable = true;
|
programs.wlogout.enable = true;
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
"$mod, M, exec, ${pkgs.thunderbird}/bin/thunderbird"
|
"$mod, M, exec, ${pkgs.thunderbird}/bin/thunderbird"
|
||||||
# "$mod, B, exec, ${pkgs.waypaper}/bin/waypaper"
|
# "$mod, B, exec, ${pkgs.waypaper}/bin/waypaper"
|
||||||
"$mod, A, exec, ${pkgs.neovide}/bin/neovide"
|
"$mod, A, exec, ${pkgs.neovide}/bin/neovide"
|
||||||
|
"$mod, N, exec, sleep 0.1 && ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw"
|
||||||
|
|
||||||
# Window actions
|
# Window actions
|
||||||
"$mod, Q, killactive"
|
"$mod, Q, killactive"
|
||||||
|
@ -239,6 +240,7 @@
|
||||||
"blur,notifications"
|
"blur,notifications"
|
||||||
"ignorezero,notifications"
|
"ignorezero,notifications"
|
||||||
"blur,swaync-notification-window"
|
"blur,swaync-notification-window"
|
||||||
|
"animation,swaync-notification-window,popin"
|
||||||
"ignorezero,swaync-notification-window"
|
"ignorezero,swaync-notification-window"
|
||||||
"blur,swaync-control-center"
|
"blur,swaync-control-center"
|
||||||
"ignorezero,swaync-control-center"
|
"ignorezero,swaync-control-center"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ ./swaync.nix ];
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
style = ./style.css;
|
style = ./style.css;
|
||||||
|
@ -40,6 +41,7 @@
|
||||||
"cpu"
|
"cpu"
|
||||||
"temperature"
|
"temperature"
|
||||||
"clock"
|
"clock"
|
||||||
|
"custom/notification"
|
||||||
];
|
];
|
||||||
|
|
||||||
idle_inhibitor = {
|
idle_inhibitor = {
|
||||||
|
@ -132,6 +134,22 @@
|
||||||
format = "{:%H:%M:%S}";
|
format = "{:%H:%M:%S}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"custom/notification" = {
|
||||||
|
tooltip = false;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
notification = "<span foreground='red'><small><sup>⬤</sup></small></span>";
|
||||||
|
none = " ";
|
||||||
|
dnd-notification = "<span foreground='red'><small><sup>⬤</sup></small></span>";
|
||||||
|
dnd-none = " ";
|
||||||
|
};
|
||||||
|
return-type = "json";
|
||||||
|
exec = "${pkgs.swaynotificationcenter}/bin/swaync-client -swb";
|
||||||
|
on-click = "sleep 0.1 && ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw";
|
||||||
|
on-click-right = "sleep 0.1 && ${pkgs.swaynotificationcenter}/bin/swaync-client -d -sw";
|
||||||
|
escape = true;
|
||||||
|
};
|
||||||
|
|
||||||
"hyprland/workspaces" = {
|
"hyprland/workspaces" = {
|
||||||
show-special = true;
|
show-special = true;
|
||||||
persistent-workspaces = {
|
persistent-workspaces = {
|
||||||
|
@ -157,6 +175,7 @@
|
||||||
special = "";
|
special = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"hyprland/window" = {
|
"hyprland/window" = {
|
||||||
icon = true;
|
icon = true;
|
||||||
icon-size = 20;
|
icon-size = 20;
|
||||||
|
|
309
users/youwen/linux/waybar/laptop/swaync.nix
Normal file
309
users/youwen/linux/waybar/laptop/swaync.nix
Normal file
|
@ -0,0 +1,309 @@
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
services.swaync.enable = true;
|
||||||
|
services.swaync.settings = {
|
||||||
|
positionX = "right";
|
||||||
|
positionY = "top";
|
||||||
|
control-center-margin-top = 10;
|
||||||
|
control-center-margin-bottom = 10;
|
||||||
|
control-center-margin-right = 10;
|
||||||
|
control-center-margin-left = 10;
|
||||||
|
notification-icon-size = 64;
|
||||||
|
notification-body-image-height = 100;
|
||||||
|
notification-body-image-width = 200;
|
||||||
|
timeout = 10;
|
||||||
|
timeout-low = 5;
|
||||||
|
timeout-critical = 0;
|
||||||
|
fit-to-screen = false;
|
||||||
|
control-center-width = 500;
|
||||||
|
control-center-height = 1025;
|
||||||
|
notification-window-width = 500;
|
||||||
|
keyboard-shortcuts = true;
|
||||||
|
image-visibility = "when-available";
|
||||||
|
transition-time = 200;
|
||||||
|
hide-on-clear = false;
|
||||||
|
hide-on-action = true;
|
||||||
|
script-fail-notify = true;
|
||||||
|
widgets = [
|
||||||
|
"title"
|
||||||
|
"mpris"
|
||||||
|
"volume"
|
||||||
|
"backlight"
|
||||||
|
"dnd"
|
||||||
|
"notifications"
|
||||||
|
];
|
||||||
|
widget-config = {
|
||||||
|
title = {
|
||||||
|
text = "Mission Control";
|
||||||
|
clear-all-button = "true";
|
||||||
|
button-text = " All Systems Go";
|
||||||
|
};
|
||||||
|
dnd = {
|
||||||
|
text = "Do Not Disturb";
|
||||||
|
};
|
||||||
|
label = {
|
||||||
|
max-lines = 1;
|
||||||
|
text = "Mission Control";
|
||||||
|
};
|
||||||
|
mpris = {
|
||||||
|
image-size = 96;
|
||||||
|
image-radius = 7;
|
||||||
|
};
|
||||||
|
volume = {
|
||||||
|
label = "";
|
||||||
|
};
|
||||||
|
backlight = {
|
||||||
|
label = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.file.".config/swaync/style.css".text = ''
|
||||||
|
* {
|
||||||
|
font-family: ${config.stylix.fonts.monospace.name};
|
||||||
|
}
|
||||||
|
.control-center .notification-row:focus,
|
||||||
|
.control-center .notification-row:hover {
|
||||||
|
background: #${config.lib.stylix.colors.base00}
|
||||||
|
}
|
||||||
|
.notification-row {
|
||||||
|
outline: none;
|
||||||
|
margin: 10px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.notification {
|
||||||
|
background: transparent;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
.notification-content {
|
||||||
|
background: #${config.lib.stylix.colors.base00};
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
border: 2px solid #${config.lib.stylix.colors.base05};
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.notification-default-action {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.close-button {
|
||||||
|
background: #${config.lib.stylix.colors.base08};
|
||||||
|
color: #${config.lib.stylix.colors.base00};
|
||||||
|
text-shadow: none;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 5px;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
.close-button:hover {
|
||||||
|
box-shadow: none;
|
||||||
|
background: #${config.lib.stylix.colors.base0D};
|
||||||
|
transition: all .15s ease-in-out;
|
||||||
|
border: none
|
||||||
|
}
|
||||||
|
.notification-action {
|
||||||
|
border: 2px solid #${config.lib.stylix.colors.base0D};
|
||||||
|
border-top: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.notification-default-action:hover,
|
||||||
|
.notification-action:hover {
|
||||||
|
color: #${config.lib.stylix.colors.base0B};
|
||||||
|
background: #${config.lib.stylix.colors.base0B}
|
||||||
|
}
|
||||||
|
.notification-default-action {
|
||||||
|
border-radius: 5px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
.notification-default-action:not(:only-child) {
|
||||||
|
border-bottom-left-radius: 7px;
|
||||||
|
border-bottom-right-radius: 7px
|
||||||
|
}
|
||||||
|
.notification-action:first-child {
|
||||||
|
border-bottom-left-radius: 10px;
|
||||||
|
background: #${config.lib.stylix.colors.base00}
|
||||||
|
}
|
||||||
|
.notification-action:last-child {
|
||||||
|
border-bottom-right-radius: 10px;
|
||||||
|
background: #${config.lib.stylix.colors.base00}
|
||||||
|
}
|
||||||
|
.inline-reply {
|
||||||
|
margin-top: 8px
|
||||||
|
}
|
||||||
|
.inline-reply-entry {
|
||||||
|
background: #${config.lib.stylix.colors.base00};
|
||||||
|
color: #${config.lib.stylix.colors.base05};
|
||||||
|
caret-color: #${config.lib.stylix.colors.base05};
|
||||||
|
border: 1px solid #${config.lib.stylix.colors.base09};
|
||||||
|
border-radius: 5px
|
||||||
|
}
|
||||||
|
.inline-reply-button {
|
||||||
|
margin-left: 4px;
|
||||||
|
background: #${config.lib.stylix.colors.base00};
|
||||||
|
border: 1px solid #${config.lib.stylix.colors.base09};
|
||||||
|
border-radius: 5px;
|
||||||
|
color: #${config.lib.stylix.colors.base05}
|
||||||
|
}
|
||||||
|
.inline-reply-button:disabled {
|
||||||
|
background: initial;
|
||||||
|
color: #${config.lib.stylix.colors.base03};
|
||||||
|
border: 1px solid transparent
|
||||||
|
}
|
||||||
|
.inline-reply-button:hover {
|
||||||
|
background: #${config.lib.stylix.colors.base00}
|
||||||
|
}
|
||||||
|
.body-image {
|
||||||
|
margin-top: 6px;
|
||||||
|
background-color: #${config.lib.stylix.colors.base05};
|
||||||
|
border-radius: 5px
|
||||||
|
}
|
||||||
|
.summary {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
background: transparent;
|
||||||
|
color: rgba(158, 206, 106, 1);
|
||||||
|
text-shadow: none
|
||||||
|
}
|
||||||
|
.time {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
background: transparent;
|
||||||
|
color: #${config.lib.stylix.colors.base05};
|
||||||
|
text-shadow: none;
|
||||||
|
margin-right: 18px
|
||||||
|
}
|
||||||
|
.body {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 400;
|
||||||
|
background: transparent;
|
||||||
|
color: #${config.lib.stylix.colors.base05};
|
||||||
|
text-shadow: none
|
||||||
|
}
|
||||||
|
.control-center {
|
||||||
|
background: #${config.lib.stylix.colors.base00};
|
||||||
|
border: 2px solid #${config.lib.stylix.colors.base0C};
|
||||||
|
border-radius: 5px;
|
||||||
|
opacity: 0.75;
|
||||||
|
}
|
||||||
|
.control-center-list {
|
||||||
|
background: transparent
|
||||||
|
}
|
||||||
|
.control-center-list-placeholder {
|
||||||
|
opacity: .5
|
||||||
|
}
|
||||||
|
.floating-notifications {
|
||||||
|
background: transparent
|
||||||
|
}
|
||||||
|
.blank-window {
|
||||||
|
background: alpha(black, 0)
|
||||||
|
}
|
||||||
|
.widget-title {
|
||||||
|
color: #${config.lib.stylix.colors.base0B};
|
||||||
|
background: #${config.lib.stylix.colors.base00};
|
||||||
|
padding: 5px 10px;
|
||||||
|
margin: 10px 10px 5px 10px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.widget-title>button {
|
||||||
|
font-size: 1rem;
|
||||||
|
color: #${config.lib.stylix.colors.base05};
|
||||||
|
text-shadow: none;
|
||||||
|
background: #${config.lib.stylix.colors.base00};
|
||||||
|
box-shadow: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.widget-title>button:hover {
|
||||||
|
background: #${config.lib.stylix.colors.base08};
|
||||||
|
color: #${config.lib.stylix.colors.base00};
|
||||||
|
}
|
||||||
|
.widget-dnd {
|
||||||
|
background: #${config.lib.stylix.colors.base00};
|
||||||
|
padding: 5px 10px;
|
||||||
|
margin: 10px 10px 5px 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: large;
|
||||||
|
color: #${config.lib.stylix.colors.base0B};
|
||||||
|
}
|
||||||
|
.widget-dnd>switch {
|
||||||
|
border-radius: 5px;
|
||||||
|
/* border: 1px solid #${config.lib.stylix.colors.base0B}; */
|
||||||
|
background: #${config.lib.stylix.colors.base0B};
|
||||||
|
}
|
||||||
|
.widget-dnd>switch:checked {
|
||||||
|
background: #${config.lib.stylix.colors.base08};
|
||||||
|
border: 1px solid #${config.lib.stylix.colors.base08};
|
||||||
|
}
|
||||||
|
.widget-dnd>switch slider {
|
||||||
|
background: #${config.lib.stylix.colors.base00};
|
||||||
|
border-radius: 5px
|
||||||
|
}
|
||||||
|
.widget-dnd>switch:checked slider {
|
||||||
|
background: #${config.lib.stylix.colors.base00};
|
||||||
|
border-radius: 5px
|
||||||
|
}
|
||||||
|
.widget-label {
|
||||||
|
margin: 10px 10px 5px 10px;
|
||||||
|
}
|
||||||
|
.widget-label>label {
|
||||||
|
font-size: 1rem;
|
||||||
|
color: #${config.lib.stylix.colors.base05};
|
||||||
|
}
|
||||||
|
.widget-mpris {
|
||||||
|
color: #${config.lib.stylix.colors.base05};
|
||||||
|
padding: 5px 10px;
|
||||||
|
margin: 10px 10px 5px 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.widget-mpris > box > button {
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.widget-mpris-player {
|
||||||
|
padding: 5px 10px;
|
||||||
|
margin: 10px
|
||||||
|
}
|
||||||
|
.widget-mpris-title {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 1.25rem
|
||||||
|
}
|
||||||
|
.widget-mpris-subtitle {
|
||||||
|
font-size: 1.1rem
|
||||||
|
}
|
||||||
|
.widget-menubar>box>.menu-button-bar>button {
|
||||||
|
border: none;
|
||||||
|
background: transparent
|
||||||
|
}
|
||||||
|
.topbar-buttons>button {
|
||||||
|
border: none;
|
||||||
|
background: transparent
|
||||||
|
}
|
||||||
|
.widget-volume {
|
||||||
|
background: #${config.lib.stylix.colors.base01};
|
||||||
|
padding: 5px;
|
||||||
|
margin: 10px 10px 5px 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: x-large;
|
||||||
|
color: #${config.lib.stylix.colors.base05};
|
||||||
|
}
|
||||||
|
.widget-volume>box>button {
|
||||||
|
background: #${config.lib.stylix.colors.base0B};
|
||||||
|
border: none
|
||||||
|
}
|
||||||
|
.per-app-volume {
|
||||||
|
background-color: #${config.lib.stylix.colors.base00};
|
||||||
|
padding: 4px 8px 8px;
|
||||||
|
margin: 0 8px 8px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.widget-backlight {
|
||||||
|
background: #${config.lib.stylix.colors.base01};
|
||||||
|
padding: 5px;
|
||||||
|
margin: 10px 10px 5px 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: x-large;
|
||||||
|
color: #${config.lib.stylix.colors.base05}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in a new issue