commit 97e098853ba538818935519261cf1d4fd2cad2d8 Author: Pepe44DEV Date: Tue Mar 17 00:36:35 2026 +0100 Inital Comit Upload Config Files diff --git a/config.json b/config.json new file mode 100644 index 0000000..50e5c84 --- /dev/null +++ b/config.json @@ -0,0 +1,70 @@ +{ + "$schema": "/etc/xdg/swaync/configSchema.json", + "ignore-gtk-theme": true, + "positionX": "right", + "positionY": "top", + "layer": "overlay", + "control-center-layer": "top", + "layer-shell": true, + "layer-shell-cover-screen": true, + "cssPriority": "user", + + "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-body-image-height": 100, + "notification-body-image-width": 200, + + "timeout": 10, + "timeout-low": 5, + "timeout-critical": 0, + + "fit-to-screen": true, + "relative-timestamps": true, + "control-center-width": 500, + "control-center-height": 700, + "notification-window-width": 500, + "keyboard-shortcuts": true, + "notification-grouping": true, + "image-visibility": "when-available", + "transition-time": 200, + "hide-on-clear": false, + "hide-on-action": true, + "text-empty": "No Notifications", + "script-fail-notify": true, + + "widgets": [ + "title", + "dnd", + "volume", + "mpris", + "notifications" + ], + + "widget-config": { + "title": { + "text": "Control Center", + "clear-all-button": true + }, + + "dnd": { + "text": "Do Not Disturb" + }, + + "volume": { + "label": "Volume" + }, + + "mpris": { + "autohide": true + }, + + "notifications": { + "vexpand": true + } + } +} \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..ac4e6ec --- /dev/null +++ b/style.css @@ -0,0 +1,531 @@ +:root { + --cc-bg: rgba(10, 16, 10, 0.82); + --noti-border-color: rgba(80, 255, 140, 0.18); + --noti-bg: 18, 24, 18; + --noti-bg-alpha: 0.92; + --noti-bg-darker: rgb(12, 18, 12); + --noti-bg-hover: rgba(30, 45, 30, 0.96); + --noti-bg-focus: rgba(40, 70, 40, 0.45); + --noti-bg-alt: rgba(22, 32, 22, 0.95); + --noti-close-bg: rgba(80, 255, 140, 0.10); + --noti-close-bg-hover: rgba(80, 255, 140, 0.18); + --text-color: rgb(232, 255, 236); + --text-color-disabled: rgb(120, 145, 124); + --bg-selected: rgb(80, 255, 140); + --notification-icon-size: 64px; + --notification-app-icon-size: calc(var(--notification-icon-size) / 3); + --notification-group-icon-size: 32px; + --border: 1px solid var(--noti-border-color); + --border-radius: 14px; + --notification-shadow: + 0 0 0 1px rgba(80, 255, 140, 0.08), + 0 4px 14px rgba(0, 0, 0, 0.45), + 0 0 20px rgba(80, 255, 140, 0.06); + --font-size-body: 15px; + --font-size-summary: 16px; + --hover-tranistion: background 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + --group-collapse-tranistion: opacity 400ms ease-in-out; + --hover-transition: var(--hover-tranistion); + --group-collapse-transition: var(--group-collapse-tranistion); +} + +/* Fallback for older CSS themes */ +@define-color cc-bg rgba(10, 16, 10, 0.82); +@define-color noti-border-color rgba(80, 255, 140, 0.18); +@define-color noti-bg rgba(18, 24, 18, 0.92); +@define-color noti-bg-opaque rgb(18, 24, 18); +@define-color noti-bg-darker rgb(12, 18, 12); +@define-color noti-bg-hover rgba(30, 45, 30, 0.96); +@define-color noti-bg-hover-opaque rgb(30, 45, 30); +@define-color noti-bg-focus rgba(40, 70, 40, 0.45); +@define-color noti-close-bg rgba(80, 255, 140, 0.10); +@define-color noti-close-bg-hover rgba(80, 255, 140, 0.18); +@define-color text-color rgb(232, 255, 236); +@define-color text-color-disabled rgb(120, 145, 124); +@define-color bg-selected rgb(80, 255, 140); + +notificationwindow, +blankwindow { + background: transparent; +} + +.close-button { + background: var(--noti-close-bg); + color: var(--text-color); + text-shadow: none; + padding: 0; + border-radius: 999px; + margin-top: 8px; + margin-right: 8px; + box-shadow: none; + border: 1px solid rgba(80, 255, 140, 0.12); + min-width: 24px; + min-height: 24px; +} + +.close-button:hover { + box-shadow: none; + background: var(--noti-close-bg-hover); + transition: var(--hover-tranistion); + border-color: rgba(80, 255, 140, 0.22); +} + +.notification-row { + background: none; + outline: none; +} + +.notification-row:focus { + background: var(--noti-bg-focus); +} + +.notification-row .notification-background { + padding: 8px 12px; +} + +.notification-row .notification-background .notification { + border-radius: var(--border-radius); + border: var(--border); + padding: 0; + transition: var(--hover-tranistion); + background: rgba(var(--noti-bg), var(--noti-bg-alpha)); + box-shadow: var(--notification-shadow); +} + +.notification-row .notification-background .notification.low { + border-color: rgba(120, 180, 120, 0.14); +} + +.notification-row .notification-background .notification.normal { + border-color: rgba(80, 255, 140, 0.18); +} + +.notification-row .notification-background .notification.critical { + border-color: rgba(255, 90, 90, 0.35); + box-shadow: + 0 0 0 1px rgba(255, 90, 90, 0.15), + 0 4px 14px rgba(0, 0, 0, 0.45); +} + +.notification-row .notification-background .notification .notification-default-action { + padding: 6px; + margin: 0; + box-shadow: none; + background: transparent; + border: none; + color: var(--text-color); + transition: var(--hover-tranistion); + border-radius: var(--border-radius); +} + +.notification-row .notification-background .notification .notification-default-action:hover { + -gtk-icon-filter: none; + background: var(--noti-bg-hover); +} + +.notification-row .notification-background .notification .notification-default-action:not(:only-child) { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content { + background: transparent; + border-radius: var(--border-radius); + padding: 2px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .image { + -gtk-icon-filter: none; + -gtk-icon-size: var(--notification-icon-size); + border-radius: 16px; + margin: 6px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .app-icon { + -gtk-icon-filter: none; + -gtk-icon-size: var(--notification-app-icon-size); + -gtk-icon-shadow: 0 1px 4px black; + margin: 6px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box label { + filter: none; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .summary { + font-size: var(--font-size-summary); + font-weight: 700; + background: transparent; + color: var(--text-color); + text-shadow: none; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .time { + font-size: 13px; + font-weight: 600; + background: transparent; + color: rgba(180, 255, 195, 0.75); + text-shadow: none; + margin-right: 30px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body { + font-size: var(--font-size-body); + font-weight: 400; + background: transparent; + color: rgba(225, 245, 229, 0.92); + text-shadow: none; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content progressbar { + margin-top: 6px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .body-image { + margin-top: 6px; + background-color: white; + -gtk-icon-filter: none; + border-radius: 10px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply { + margin-top: 6px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-entry { + background: var(--noti-bg-darker); + color: var(--text-color); + caret-color: var(--text-color); + border: var(--border); + border-radius: 12px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button { + margin-left: 6px; + background: rgba(var(--noti-bg), var(--noti-bg-alpha)); + border: var(--border); + border-radius: 12px; + color: var(--text-color); +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:disabled { + background: initial; + color: var(--text-color-disabled); + border: var(--border); + border-color: transparent; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:hover { + background: var(--noti-bg-hover); +} + +.notification-row .notification-background .notification .notification-alt-actions { + background: none; + border-bottom-left-radius: var(--border-radius); + border-bottom-right-radius: var(--border-radius); + padding: 4px 6px 8px 6px; +} + +.notification-row .notification-background .notification .notification-action { + margin: 4px; + padding: 0; +} + +.notification-row .notification-background .notification .notification-action > button { + border-radius: 12px; + color: var(--text-color); + background: rgba(80, 255, 140, 0.06); + border: 1px solid rgba(80, 255, 140, 0.10); +} + +.notification-row .notification-background .notification .notification-action > button:hover { + background: rgba(80, 255, 140, 0.12); + border-color: rgba(80, 255, 140, 0.18); +} + +.notification-group { + transition: opacity 200ms ease-in-out; +} + +.notification-group:focus { + background: var(--noti-bg-focus); +} + +.notification-group .notification-group-close-button .close-button { + margin: 12px 20px; +} + +.notification-group .notification-group-buttons, +.notification-group .notification-group-headers { + margin: 0 16px; + color: var(--text-color); +} + +.notification-group .notification-group-headers .notification-group-icon { + color: rgb(120, 255, 170); + -gtk-icon-size: var(--notification-group-icon-size); +} + +.notification-group .notification-group-headers .notification-group-header { + color: var(--text-color); +} + +.notification-group.collapsed.not-expanded { + opacity: 0.4; +} + +.notification-group.collapsed .notification-row .notification { + background-color: rgba(var(--noti-bg), 1); +} + +.notification-group.collapsed .notification-row:not(:last-child) .notification-action, +.notification-group.collapsed .notification-row:not(:last-child) .notification-default-action { + opacity: 0; +} + +.notification-group.collapsed:hover .notification-row:not(:only-child) .notification { + background-color: var(--noti-bg-hover); +} + +.control-center { + background: var(--cc-bg); + color: var(--text-color); + border-radius: 18px; + border: 1px solid rgba(80, 255, 140, 0.14); + box-shadow: + 0 8px 30px rgba(0, 0, 0, 0.45), + 0 0 20px rgba(80, 255, 140, 0.05); +} + +.control-center .control-center-list-placeholder { + opacity: 0.5; +} + +.control-center .control-center-list { + background: transparent; +} + +.control-center .control-center-list .notification { + box-shadow: var(--notification-shadow); +} + +.control-center .control-center-list .notification .notification-default-action, +.control-center .control-center-list .notification .notification-action { + transition: var(--group-collapse-tranistion), var(--hover-tranistion); +} + +.control-center .control-center-list .notification .notification-default-action:hover, +.control-center .control-center-list .notification .notification-action:hover { + background-color: var(--noti-bg-hover); +} + +.blank-window { + background: transparent; +} + +.floating-notifications { + background: transparent; +} + +.floating-notifications .notification { + box-shadow: var(--notification-shadow); +} + +/*** Widgets ***/ +.widget { + margin: 8px; + padding: 10px; + border-radius: var(--border-radius); + background: rgba(20, 28, 20, 0.72); + border: 1px solid rgba(80, 255, 140, 0.10); +} + +.widget-title > label { + margin-right: 8px; + font-size: 1.35rem; + font-weight: 700; + color: rgb(180, 255, 195); +} + +.widget-title > button { + margin-left: 8px; + border-radius: 12px; + background: rgba(80, 255, 140, 0.08); + border: 1px solid rgba(80, 255, 140, 0.12); +} + +.widget-title > button:hover { + background: rgba(80, 255, 140, 0.14); +} + +.widget-dnd label { + color: var(--text-color); + margin-right: 8px; + font-size: 1.05rem; +} + +.widget-dnd switch { + border-radius: var(--border-radius); + margin-left: 8px; + background: rgba(255, 255, 255, 0.08); +} + +.widget-dnd switch:checked { + background: rgba(80, 255, 140, 0.70); +} + +.widget-dnd switch slider { + border-radius: var(--border-radius); +} + +.widget-label > label { + font-size: 1.05rem; + color: var(--text-color); +} + +/* Mpris widget */ +:root { + --mpris-album-art-overlay: rgba(8, 14, 8, 0.60); + --mpris-button-hover: rgba(80, 255, 140, 0.12); + --mpris-album-art-icon-size: 96px; + --mpris-album-art-shadow: 0px 0px 16px rgba(0, 0, 0, 0.70); +} + +.widget-mpris { + padding: 0; +} + +.widget-mpris .widget-mpris-player { + margin: 16px 20px; + border-radius: var(--border-radius); + box-shadow: var(--mpris-album-art-shadow); + overflow: hidden; + border: 1px solid rgba(80, 255, 140, 0.10); +} + +.widget-mpris .widget-mpris-player .mpris-background { + filter: blur(10px); +} + +.widget-mpris .widget-mpris-player .mpris-overlay { + padding: 16px; + background-color: var(--mpris-album-art-overlay); +} + +.widget-mpris .widget-mpris-player .mpris-overlay button:hover { + background: var(--noti-bg-hover); +} + +.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-album-art { + border-radius: 12px; + box-shadow: var(--mpris-album-art-shadow); + -gtk-icon-size: var(--mpris-album-art-icon-size); +} + +.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-title { + font-weight: 700; + font-size: 1.15rem; + color: rgb(230, 255, 235); +} + +.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-subtitle { + font-size: 1rem; + color: rgba(200, 245, 208, 0.82); +} + +.widget-mpris .widget-mpris-player .mpris-overlay > box > button:hover { + background-color: var(--mpris-button-hover); +} + +.widget-buttons-grid flowboxchild > button { + border-radius: 12px; + background: rgba(80, 255, 140, 0.06); + border: 1px solid rgba(80, 255, 140, 0.12); +} + +.widget-buttons-grid flowboxchild > button:hover { + background: rgba(80, 255, 140, 0.14); +} + +.widget-buttons-grid flowboxchild > button.toggle:checked { + background: rgba(80, 255, 140, 0.22); + border-color: rgba(80, 255, 140, 0.30); +} + +.widget-menubar > .menu-button-bar > .start { + margin-left: 8px; +} + +.widget-menubar > .menu-button-bar > .end { + margin-right: 8px; +} + +.widget-menubar > .menu-button-bar > .widget-menubar-container button { + border-radius: 12px; + margin: 0 4px; + background: rgba(80, 255, 140, 0.06); + border: 1px solid rgba(80, 255, 140, 0.10); +} + +.widget-menubar > .menu-button-bar > .widget-menubar-container button:hover { + background: rgba(80, 255, 140, 0.14); +} + +.widget-menubar > revealer * { + margin-top: 8px; +} + +.widget-menubar > revealer * button { + border-radius: 12px; + margin: 8px; + margin-top: 0; + background: rgba(80, 255, 140, 0.06); + border: 1px solid rgba(80, 255, 140, 0.10); +} + +.widget-menubar > revealer * button:hover { + background: rgba(80, 255, 140, 0.14); +} + +.widget-menubar > revealer * button:last-child { + margin-bottom: 0; +} + +/* Volume widget */ +:root { + --widget-volume-row-icon-size: 24px; +} + +.widget-volume row image { + -gtk-icon-size: var(--widget-volume-row-icon-size); +} + +.per-app-volume { + background-color: var(--noti-bg-alt); + margin: 8px; + margin-bottom: 0; + border-radius: var(--border-radius); + border: 1px solid rgba(80, 255, 140, 0.08); +} + +.widget-slider label { + font-size: inherit; + color: var(--text-color); +} + +.widget-inhibitors > label { + margin-right: 8px; + font-size: 1.35rem; + color: rgb(180, 255, 195); +} + +.widget-inhibitors > button { + margin-left: 8px; + border-radius: 12px; + background: rgba(80, 255, 140, 0.06); + border: 1px solid rgba(80, 255, 140, 0.12); +} + +.widget-inhibitors > button:hover { + background: rgba(80, 255, 140, 0.14); +} \ No newline at end of file