diff --git a/Configs/atuin/.config/atuin/config.toml b/Configs/atuin/.config/atuin/config.toml index 4c7a808..84fd8a8 100644 --- a/Configs/atuin/.config/atuin/config.toml +++ b/Configs/atuin/.config/atuin/config.toml @@ -117,6 +117,8 @@ ctrl_n_shortcuts = false # "^/very/secret/area", # ] +store_failed = true + ## Configure the maximum height of the preview to show. ## Useful when you have long scripts in your history that you want to distinguish ## by more than the first few lines. diff --git a/Configs/swaync/.config/swaync/config.json b/Configs/swaync/.config/swaync/config.json new file mode 100644 index 0000000..f1ec4e7 --- /dev/null +++ b/Configs/swaync/.config/swaync/config.json @@ -0,0 +1,134 @@ +{ + "$schema": "/etc/xdg/swaync/configSchema.json", + "ignore-gtk-theme": true, + "positionX": "right", + "positionY": "top", + "cssPriority": "user", + + "hide-on-clear": true, + "hide-on-action": true, + + "relative-timestamps": true, + "keyboard-shortcuts": true, + "notification-grouping": true, + + "layer": "overlay", + "control-center-layer": "top", + "layer-shell": true, + "layer-shell-cover-screen": true, + + "control-center-width": 500, + "control-center-height": 600, + "control-center-margin-top": 10, + "control-center-margin-bottom": 10, + "control-center-margin-right": 10, + "control-center-margin-left": 10, + + "notification-2fa-action": true, + "notification-inline-replies": false, + "notification-body-image-height": 100, + "notification-body-image-width": 200, + "notification-window-width": 500, + + "timeout": 10, + "timeout-low": 5, + "timeout-critical": 0, + + "fit-to-screen": true, + + "image-visibility": "when-available", + "transition-time": 200, + + "text-empty": "No Notifications", + "script-fail-notify": true, + + "scripts": { + "example-script": { + "exec": "echo 'Do something...'", + "urgency": "Normal" + }, + "example-action-script": { + "exec": "echo 'Do something actionable!'", + "urgency": "Normal", + "run-on": "action" + } + }, + "notification-visibility": { + "example-name": { + "state": "muted", + "urgency": "Low", + "app-name": "Spotify" + } + }, + "widgets": [ + "buttons-grid", + "volume", + "inhibitors", + "title", + "dnd", + "notifications" + ], + "widget-config": { + "inhibitors": { + "text": "Inhibitors", + "button-text": "Clear All", + "clear-all-button": true + }, + "title": { + "text": "Notifications", + "clear-all-button": true, + "button-text": "Clear All" + }, + "dnd": { + "text": "Do Not Disturb" + }, + "label": { + "max-lines": 5, + "text": "Label Text" + }, + "volume": { + "label": " 󰕾 ", + "expand-button-label": " ", + "collapse-button-label": " ", + "show-per-app": true, + "show-per-app-icon": false, + "show-per-app-label": true + }, + "mpris": { + "blacklist": [], + "autohide": false, + "show-album-art": "always", + "loop-carousel": false + }, + "buttons-grid": { + "actions": [ + { + "label": "󰄜", + "type": "normal", + "command": "scrcpy", + "right-click-command": "scrcpy --help | head -20 | foot -e less" + }, + { + "label": "󰌘", + "type": "normal", + "command": "kdeconnect-app", + "right-click-command": "kdeconnect-settings" + }, + { + "label": " ", + "type": "toggle", + "active": false, + "command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && pactl set-source-mute @DEFAULT_SOURCE@ 1 || pactl set-source-mute @DEFAULT_SOURCE@ 0'", + "update-command": "sh -c '[[ $(pactl get-source-mute @DEFAULT_SOURCE@) == *yes* ]] && echo true || echo false'" + }, + { + "label": " ", + "type": "toggle", + "active": false, + "command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && pactl set-sink-mute @DEFAULT_SINK@ 1 || pactl set-sink-mute @DEFAULT_SINK@ 0'", + "update-command": "sh -c '[[ $(pactl get-sink-mute @DEFAULT_SINK@) == *yes* ]] && echo true || echo false'" + } + ] + } + } +} diff --git a/Configs/swaync/.config/swaync/style.css b/Configs/swaync/.config/swaync/style.css new file mode 100644 index 0000000..0278100 --- /dev/null +++ b/Configs/swaync/.config/swaync/style.css @@ -0,0 +1,393 @@ +/* ======================================================================== + SwayNC CSS Configuration - Catppuccin Theme + Reformatted for better readability and maintainability +======================================================================== */ + +/* ======================================================================== + COLOR PALETTE - Gruvbox Inspired +======================================================================== */ +@define-color bg-primary #24273a; /* Dark background - main canvas */ +@define-color bg-secondary #363a4f; /* Secondary background - panels */ +@define-color bg-tertiary #494d64; /* Tertiary background - hover states */ +@define-color bg-selected #8bd5ca; /* Selection background */ + +@define-color fg-primary #cad3f5; /* Primary text - cream/off-white */ +@define-color fg-secondary #d5c4a1; /* Secondary text - muted cream */ +@define-color fg-tertiary #bdae93; /* Tertiary text - greyish cream */ +@define-color fg-disabled #665c54; /* Disabled text - dark grey */ + +@define-color accent-green #8bd5ca; /* Spotify green accent */ +@define-color accent-orange #f5a97f; /* Warm orange accent */ +@define-color accent-red #ed8796; /* Error/critical red */ +@define-color accent-blue #8aadf4; /* Info blue */ +@define-color accent-purple #c6a0f6; /* Purple accent */ + +@define-color border-primary #8bd5ca; /* Primary border color */ +@define-color border-focus #c6a0f6; /* Focus border - green accent */ + +/* Special Purpose Colors */ +@define-color mpris-album-art-overlay rgba(0, 0, 0, 0.55); +@define-color mpris-button-hover rgba(0, 0, 0, 0.5); + +/* ======================================================================== + GLOBAL STYLES +======================================================================== */ +* { + outline: none; + font-family: "JetbrainsMono Nerd Font", monospace; + font-size: 18px; + text-shadow: none; + color: @fg-primary; +} + +/* ======================================================================== + CONTROL CENTER - Main notification panel +======================================================================== */ +.control-center { + background-color: @bg-primary; + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.65); + border: 2px solid @border-primary; + padding: 5px; + border-radius: 4px; +} + +.control-center * { + background-color: transparent; + box-shadow: none; + outline: none; +} + +.control-center .notification-row .notification-background { + border-radius: 4px; + margin-top: 5px; + background: none; +} + +.control-center .notification-row .notification-background .notification { + border-radius: 4px; +} + +.control-center .notification-row .notification-background .close-button { + border-radius: 4px; +} + +/* ======================================================================== + NOTIFICATION STYLES +======================================================================== */ +.notification { + border-radius: 4px; + border: 1px solid @border-primary; + margin: 8px 2px; +} + +.notification.low, +.notification.normal { + background-color: @bg-secondary; +} + +/* Notification Priority Styles */ +.notification.critical { + background-color: @accent-red; +} + + +.notification > *:last-child > * { + margin: 5px; +} + +/* Notification Content */ +.notification-content { + padding: 15px 10px 10px 20px; + border-radius: 4px; +} + +/* Text Elements */ +.summary { + font-size: 1.1rem; +} + +.time { + font-size: 0.8rem; +} + +.body { + font-size: 1rem; +} + +/* Notification Actions */ +.notification-action > button { + padding: unset; + margin: unset; + border-radius: 4px; +} + +.notification-action > label { + font-size: 1rem; + font-weight: normal; +} + +/* Close Button */ +.close-button { + background-color: @bg-tertiary; +} + +.close-button:hover { + background-color: @accent-red; +} + +/* ======================================================================== + NOTIFICATION GROUPS +======================================================================== */ +.notification-group-header, +.notification-group-icon { + font-size: 0.9rem; +} + +.notification-group-collapse-button, +.notification-group-close-all-button { + box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.35); + background-color: @bg-tertiary; + border-radius: 4px; +} + +.notification-group-collapse-button:hover { + background-color: @accent-blue; +} + +.notification-group-close-all-button:hover { + background-color: @accent-red; +} + +/* ======================================================================== + SCROLLBARS & SLIDERS +======================================================================== */ +trough highlight { + background: @accent-blue; + border-radius: 4px; +} + +scale trough { + margin: 0rem 1rem; + background-color: @bg-tertiary; + min-height: 8px; + min-width: 70px; + border-radius: 4px; +} + +slider { + background-color: @fg-primary; + border-radius: 4px; +} + +tooltip { + background-color: @bg-tertiary; + border-radius: 4px; +} + +/* ======================================================================== + WIDGET STYLES +======================================================================== */ + +/* ======================================================================== + BUTTONS GRID WIDGET - Quick action buttons +======================================================================== */ +.widget-buttons-grid { + font-size: 1rem; + background: @bg-secondary; +} + +.widget-buttons-grid > flowbox { + column-spacing: 10px; +} + +.widget-buttons-grid > flowbox > flowboxchild > button { + background: @bg-secondary; + /* border: 1px solid @accent-green; */ + box-shadow: 0px 0px 10px @bg-primary; + border-radius: 4px; + padding: 12px 0px; + transition: background-color 0.15s ease, color 0.15s ease; +} + +.widget-buttons-grid > flowbox > flowboxchild > button:hover { + background: @bg-selected; + color: @bg-primary; +} + +.widget-buttons-grid > flowbox > flowboxchild > button:hover > label { + color: @bg-primary; +} + +.widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked { + background: @accent-green; + color: @bg-primary; +} + +.widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked > label { + color: @bg-primary; +} + +.widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked:hover { + background: @accent-green; + color: @bg-primary; +} + +.widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked:hover > label { + color: @bg-primary; +} + +/* ======================================================================== + MPRIS WIDGET - Media player controls +======================================================================== */ + + +.widget-mpris .widget-mpris-player { + padding: 16px; + margin: 16px 5px; + background-color: @mpris-button-hover; + border-radius: 4px; + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.65); +} + +.widget-mpris .widget-mpris-player .widget-mpris-album-art { + border-radius: 4px; + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.65); +} + +.widget-mpris .widget-mpris-player .widget-mpris-title { + font-weight: bold; + font-size: 1.2rem; + color: @accent-purple; + margin: 0px 8px 8px 8px; +} + +.widget-mpris .widget-mpris-player .widget-mpris-subtitle { + font-size: 1rem; + color: @accent-purple; +} + +.widget-mpris .widget-mpris-player > box > button:hover { + background-color: @mpris-button-hover; +} + +.widget-mpris > box > button:hover { + background: alpha(@bg-selected, 0.6); +} + +.widget-mpris button:first-child, +.widget-mpris button:last-child { + opacity: 0; + min-width: 0; + min-height: 0; + padding: 0; + margin: 0; +} + +.widget-mpris .widget-mpris-player button:first-child, +.widget-mpris .widget-mpris-player button:last-child { + opacity: 0; + min-width: 0; + min-height: 0; + padding: 0; + margin: 0; +} + +/* ======================================================================== + VOLUME WIDGET - Audio controls +======================================================================== */ +.widget-volume { + padding: 6px 5px 5px 5px; + margin: unset; + font-size: 1.3rem; +} + +.widget-volume > box > button { + border: none; + background-color: #3A372F; +} +.widget-volume > box > button:hover { + background-color: @accent-blue; + color: @fg-primary; +} +.widget-volume > box > button:active { + background-color: @accent-blue; +} + +.per-app-volume { + padding: 4px 8px 8px 8px; + margin: 0px 8px 8px 8px; +} + +/* ======================================================================== + BACKLIGHT WIDGET - Brightness controls +======================================================================== */ +.widget-backlight { + padding: 0 0 3px 16px; + margin: unset; + font-size: 1.1rem; +} + +/* ======================================================================== + DND WIDGET - Do Not Disturb toggle +======================================================================== */ + +/* DND text */ +.widget-dnd > label { + color: @accent-purple; /* Replace with your desired color */ +} +.widget-dnd { + font-weight: bold; + margin: unset; + padding: 20px 15px 15px 15px; +} + +.widget-dnd > switch { + font-size: initial; + border-radius: 4px; + background: @bg-tertiary; + border: none; + box-shadow: none; + padding: 3px; +} + +.widget-dnd > switch:checked { + background: @accent-purple; +} + +.widget-dnd > switch slider { + background: @bg-primary; + border-radius: 4px; + min-width: 18px; + min-height: 18px; +} + +/* ======================================================================== + TITLE WIDGET - Header with clear all button +======================================================================== */ +.widget-title { + padding: unset; + margin: unset; + font-weight: bold; + padding: 15px; +} + +.widget-title > label { + font-size: 1.5rem; +} + +.widget-title > button { + padding: unset; + margin: unset; + text-shadow: none; + background: @accent-red; + border: none; + box-shadow: none; + border-radius: 4px; + padding: 0px 6px; + transition: all .7s ease; +} + +.widget-title > button:hover { + background: @accent-red; + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.65); +} diff --git a/Configs/waybar/.config/waybar/config.jsonc b/Configs/waybar/.config/waybar/config.jsonc index b0dfe6f..8198ba9 100644 --- a/Configs/waybar/.config/waybar/config.jsonc +++ b/Configs/waybar/.config/waybar/config.jsonc @@ -14,11 +14,12 @@ "modules-right": [ "tray", "idle_inhibitor", -// "network", + // "network", "bluetooth", "backlight", "wireplumber", "battery", + "custom/notification", "custom/power" ], @@ -129,5 +130,25 @@ }, "tray": { "show-passive-items": true + }, + "custom/notification": { + "tooltip": false, + "format": "{} {icon}", + "format-icons": { + "notification": "", + "none": "", + "dnd-notification": "", + "dnd-none": "", + "inhibited-notification": "", + "inhibited-none": "", + "dnd-inhibited-notification": "", + "dnd-inhibited-none": "" + }, + "return-type": "json", + "exec-if": "which swaync-client", + "exec": "swaync-client -swb", + "on-click": "swaync-client -t -sw", + "on-click-right": "swaync-client -d -sw", + "escape": true } }