From a9112bd1ea3ac4f0ce13c2de192b00cb3f91dda8 Mon Sep 17 00:00:00 2001 From: Dennis Schoepf Date: Sun, 23 Nov 2025 21:53:41 +0100 Subject: [PATCH] wip: dnsc-machine setup --- modules/wm/niri/config/config.kdl | 1 + modules/wm/swaync/config.json | 68 ++++++++++ modules/wm/swaync/default.nix | 73 +---------- modules/wm/swaync/style.css | 198 +++--------------------------- 4 files changed, 90 insertions(+), 250 deletions(-) create mode 100644 modules/wm/swaync/config.json diff --git a/modules/wm/niri/config/config.kdl b/modules/wm/niri/config/config.kdl index e4c9892..80fbb2b 100644 --- a/modules/wm/niri/config/config.kdl +++ b/modules/wm/niri/config/config.kdl @@ -185,6 +185,7 @@ layout { // STARTUP // Wallpaper Setup +spawn-at-startup "swaync" spawn-at-startup "swww-daemon" // Wallpaper spawn-sh-at-startup "~/.config/awww/bin/random-bg.sh ~/Pictures/Wallpapers/safe/dark" diff --git a/modules/wm/swaync/config.json b/modules/wm/swaync/config.json new file mode 100644 index 0000000..450c542 --- /dev/null +++ b/modules/wm/swaync/config.json @@ -0,0 +1,68 @@ +{ + "control-center-layer": "top", + "control-center-margin-bottom": 0, + "control-center-margin-left": 0, + "control-center-margin-right": 0, + "control-center-margin-top": 0, + "cssPriority": "application", + "layer": "overlay", + "layer-shell": true, + "notification-2fa-action": true, + "notification-body-image-height": 100, + "notification-body-image-width": 200, + "notification-icon-size": 32, + "notification-inline-replies": false, + "positionX": "right", + "positionY": "top", + "widget-config": { + "buttons-grid": { + "actions": [ + { + "command": "iwgtk", + "label": " 󰖩 " + }, + { + "command": "wezterm start -- bluetui", + "label": " 󰂯 " + }, + { + "command": "niri msg action quit", + "label": " 󰍃 " + }, + { + "command": "swaylock", + "label": " 󰌾 " + }, + { + "command": "systemctl reboot", + "label": " 󰜉 " + }, + { + "command": "systemctl poweroff", + "label": " 󰐥 " + } + ], + "buttons-per-row": 3 + }, + "dnd": { + "clear-all-button": true, + "text": "Do Not Disturb" + }, + "mpris": { + "autohide": true, + "loop-carousel": false, + "show-album-art": "always" + }, + "title": { + "clear-all-button": false, + "text": "Control Panel" + } + }, + "widgets": [ + "title", + "dnd", + "buttons-grid", + "notifications", + "mpris" + ] +} diff --git a/modules/wm/swaync/default.nix b/modules/wm/swaync/default.nix index 7341d43..df90368 100644 --- a/modules/wm/swaync/default.nix +++ b/modules/wm/swaync/default.nix @@ -3,75 +3,8 @@ xdg.configFile."swaync/style.css" = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/nix-config/modules/wm/swaync/style.css"; }; - 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" - "notifications" - "mpris" - ]; - widget-config = { - title = { - text = "Control Panel"; - clear-all-button = false; - }; - 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; - }; - }; - }; + + xdg.configFile."swaync/config.json" = { + source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/nix-config/modules/wm/swaync/config.json"; }; } diff --git a/modules/wm/swaync/style.css b/modules/wm/swaync/style.css index 8bec3c9..663c7cb 100644 --- a/modules/wm/swaync/style.css +++ b/modules/wm/swaync/style.css @@ -31,204 +31,42 @@ @define-color cyan_subtle_bg #133d56; @define-color silver #b8c6d5; @define-color silver_bright #ffffff; - -* { + +.control-center { border-radius: 0; -} - -.control-center .notification-row:focus, -.control-center .notification-row:hover { - opacity: 1; background: @bg; + color: @fg; } -.notification-row { - outline: none; - margin: 0; - padding: 0; - background: @bg; +.control-center-list-placeholder { + opacity: 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: 5px; +.control-center-list { + background: transparent; } -.notification { - opacity: 0.9; - border: none; +.control-center-list>.notification { + box-shadow: none; +} + +.notification-group { + background: transparent; +} + +.notification-group>.notification { + border: 1px solid $cyan_subtle_bg; } .close-button { background: @magenta_subtle_bg_darker; color: @magenta_brighter; text-shadow: none; - padding: 0; - border-radius: 50%; - border: none; + border-radius: 100%; } .close-button:hover { - cursor: pointer; background: @red_subtle_bg; color: @red_bright; box-shadow: none; } - -.notification-action { - border: 2px solid @cyan_subtle_bg; - border-top: none; -} - -.inline-reply-entry { - background: @bg_secondary; - color: @fg; - caret-color: @fg; - border: 1px solid @cyan_subtle_bg; -} - -.inline-reply-button { - margin-top: 4px; - margin-left: 4px; - background: @bg; - border: 1px solid @cyan_subtle_bg; - color: @fg; -} - -.inline-reply-button:disabled { - background: transparent; - color: @fg_dim; - border: 1px solid transparent; -} - -.inline-reply-button:hover { - background: @bg; -} - -.summary { - font-size: 16px; - font-weight: 700; - background: transparent; - color: @fg; - text-shadow: none; -} - -.time { - font-size: 16px; - font-weight: 400; - background: transparent; - color: @fg_dim; - text-shadow: none; - margin-right: 12px; -} - -.body { - margin-top: 8px; - font-size: 14px; - font-weight: 400; - background: transparent; - color: @fg_dim; - text-shadow: none; -} - -.control-center { - background: @bg; - padding: 0; -} - -.widget-title { - margin: 12px; - font-size: 1.8rem; -} - -.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; -}