feat: add hyprland sound system with event-triggered audio feedback;
feat: implement new hyprland plugins (hyprfocus, hyprbars, dynamic-cursors); refactor: reorganize hyprland autostart with delay staging and plugin configuration; feat: add notification urgency-based sound system to swaync; feat: enhance waybar with battery module, mpd controls, and dock bar; refactor: update waybar taskbar with active window indicators and sorting; feat: add hyprland shutdown sound and login audio greeting; fix: adjust cava sleep timer and mpd sticker database configuration; feat: update rmpc keybindings for improved playlist management; fix: modify rofi keybindings for better navigation; chore: add zsh aliases and misspell corrections; refactor: update styling across swaync, waybar, and hyprland with new border radii and accent colors.
This commit is contained in:
@@ -27,15 +27,27 @@
|
||||
"keyboard-shortcuts": true,
|
||||
"notification-grouping": false,
|
||||
"image-visibility": "when-available",
|
||||
"show-per-app-icon": true,
|
||||
"transition-time": 100,
|
||||
"hide-on-clear": false,
|
||||
"hide-on-action": true,
|
||||
"text-empty": "No nothing",
|
||||
"text-empty": "No disturbances",
|
||||
"script-fail-notify": true,
|
||||
"scripts": {
|
||||
"notification-sound": {
|
||||
"exec": "sh $HOME/.config/swaync/scripts/sound.sh",
|
||||
"app-name": "^(?!.*AyuGram).*$"
|
||||
"notification-sound-low": {
|
||||
"exec": "sh $HOME/.config/swaync/scripts/sound.sh low",
|
||||
"app-name": "^(?!.*AyuGram).*$",
|
||||
"urgency": "Low"
|
||||
},
|
||||
"notification-sound-normal": {
|
||||
"exec": "sh $HOME/.config/swaync/scripts/sound.sh normal",
|
||||
"app-name": "^(?!.*AyuGram).*$",
|
||||
"urgency": "Normal"
|
||||
},
|
||||
"notification-sound-critical": {
|
||||
"exec": "sh $HOME/.config/swaync/scripts/sound.sh critical",
|
||||
"app-name": "^(?!.*AyuGram).*$",
|
||||
"urgency": "Critical"
|
||||
}
|
||||
},
|
||||
"notification-visibility": {
|
||||
@@ -48,8 +60,6 @@
|
||||
"widgets": [
|
||||
"menubar",
|
||||
"buttons-grid",
|
||||
"volume",
|
||||
"slider#brightness",
|
||||
"inhibitors",
|
||||
"title",
|
||||
"notifications",
|
||||
|
||||
@@ -5,29 +5,42 @@ if [ $(swaync-client --get-dnd) == "true" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Directory containing your notification sounds
|
||||
SOUND_DIR="$HOME/.config/swaync/scripts/sounds"
|
||||
SOUND_LOW_DIR="$HOME/.config/swaync/scripts/sounds/low"
|
||||
SOUND_NORMAL_DIR="$HOME/.config/swaync/scripts/sounds/normal"
|
||||
SOUND_CRITICAL_DIR="$HOME/.config/swaync/scripts/sounds/critical"
|
||||
|
||||
case $1 in
|
||||
low)
|
||||
DIR=$SOUND_LOW_DIR
|
||||
;;
|
||||
normal)
|
||||
DIR=$SOUND_NORMAL_DIR
|
||||
;;
|
||||
critical)
|
||||
DIR=$SOUND_CRITICAL_DIR
|
||||
;;
|
||||
*)
|
||||
echo "Unknown urgency level '$1'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Enable nullglob to prevent literal interpretation when no files match
|
||||
shopt -s nullglob
|
||||
|
||||
# Get a list of audio files in the directory (simpler approach)
|
||||
SOUND_FILES=()
|
||||
for ext in wav mp3 ogg flac; do
|
||||
SOUND_FILES+=("$SOUND_DIR"/*."$ext")
|
||||
SOUND_FILES+=("$DIR"/*."$ext")
|
||||
done
|
||||
|
||||
# Check if any sound files exist
|
||||
if [ ${#SOUND_FILES[@]} -eq 0 ]; then
|
||||
echo "No sound files found in $SOUND_DIR"
|
||||
exit 0 # Exit with success so notifications still work
|
||||
echo "No sound files found in $SOUND_NORMAL_DIR"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Select a random sound file
|
||||
RANDOM_INDEX=$((RANDOM % ${#SOUND_FILES[@]}))
|
||||
RANDOM_SOUND="${SOUND_FILES[$RANDOM_INDEX]}"
|
||||
|
||||
# Play the random sound
|
||||
play -v 0.5 "$RANDOM_SOUND" 2>/dev/null || {
|
||||
echo "Failed to play $RANDOM_SOUND"
|
||||
}
|
||||
|
||||
BIN
swaync/scripts/sounds/critical/sting_instruction3.mp3
Normal file
BIN
swaync/scripts/sounds/critical/sting_instruction3.mp3
Normal file
Binary file not shown.
BIN
swaync/scripts/sounds/critical/sting_instruction4.mp3
Normal file
BIN
swaync/scripts/sounds/critical/sting_instruction4.mp3
Normal file
Binary file not shown.
BIN
swaync/scripts/sounds/low/pc_granted.mp3
Normal file
BIN
swaync/scripts/sounds/low/pc_granted.mp3
Normal file
Binary file not shown.
@@ -20,6 +20,8 @@
|
||||
--button-top: #505050;
|
||||
--button-on-top: #CE5268;
|
||||
--button-off: #2e2d31;
|
||||
|
||||
--accent: #E83C82;
|
||||
}
|
||||
|
||||
* {
|
||||
@@ -66,12 +68,12 @@ button:hover {
|
||||
}
|
||||
|
||||
.notification-row .notification-background {
|
||||
padding: 6px 12px;
|
||||
padding: 6px 15px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification {
|
||||
/* The actual notification */
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
border: 1px solid var(--noti-border-color);
|
||||
padding: 0;
|
||||
transition: background 0.15s ease-in-out;
|
||||
@@ -88,18 +90,35 @@ button:hover {
|
||||
|
||||
.notification-row .notification-background .notification.critical {
|
||||
/* Critical Priority Notification */
|
||||
border-color: var(--accent);
|
||||
}
|
||||
|
||||
/* Critical Priority Notification */
|
||||
.notification-row .notification-background .notification.critical .notification-default-action .notification-content .text-box .summary {
|
||||
color: var(--accent);
|
||||
text-shadow: 0px 0px 8px var(--accent);
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification.critical .notification-default-action .notification-content .text-box .summary {
|
||||
color: var(--accent);
|
||||
text-shadow: 0px 0px 8px var(--accent);
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification.critical .notification-default-action .notification-content .text-box .body {
|
||||
color: var(--accent);
|
||||
text-shadow: 0px 0px 8px var(--accent);
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action {
|
||||
/* The large action that also displays the notification summary and body */
|
||||
padding: 4px;
|
||||
padding: 10px;
|
||||
margin: 0;
|
||||
box-shadow: none;
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: var(--text-color);
|
||||
transition: background 0.15s ease-in-out;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.notification-row:focus .notification-background .notification .notification-default-action {
|
||||
@@ -118,7 +137,7 @@ button:hover {
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content {
|
||||
background: transparent;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@@ -194,14 +213,14 @@ button:hover {
|
||||
color: var(--text-color);
|
||||
caret-color: var(--text-color);
|
||||
border: 1px solid var(--noti-border-color);
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button {
|
||||
margin-left: 4px;
|
||||
background: rgba(var(--noti-bg), var(--noti-bg-alpha));
|
||||
border: 1px solid var(--noti-border-color);
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
@@ -218,8 +237,8 @@ button:hover {
|
||||
|
||||
.notification-row .notification-background .notification .notification-alt-actions {
|
||||
background: none;
|
||||
border-bottom-left-radius: 12px;
|
||||
border-bottom-right-radius: 12px;
|
||||
border-bottom-left-radius: 15px;
|
||||
border-bottom-right-radius: 15px;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
@@ -230,7 +249,7 @@ button:hover {
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-action > button {
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.notification-group {
|
||||
@@ -256,7 +275,7 @@ button:hover {
|
||||
}
|
||||
|
||||
.notification-group .notification-group-close-button .close-button {
|
||||
margin: 12px 20px;
|
||||
margin: 15px 20px;
|
||||
}
|
||||
|
||||
.notification-group .notification-group-buttons, .notification-group .notification-group-headers {
|
||||
@@ -363,7 +382,7 @@ button:hover {
|
||||
|
||||
.widget-title > button {
|
||||
margin: 0px;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
/* DND widget */
|
||||
@@ -374,7 +393,7 @@ button:hover {
|
||||
}
|
||||
|
||||
.widget-dnd switch {
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
@@ -384,7 +403,7 @@ button:hover {
|
||||
|
||||
|
||||
.widget-dnd switch slider {
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
/* Label widget */
|
||||
@@ -410,7 +429,7 @@ button:hover {
|
||||
|
||||
.widget-mpris .widget-mpris-player {
|
||||
margin: 16px 20px;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
@@ -429,7 +448,7 @@ button:hover {
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-album-art {
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75);
|
||||
-gtk-icon-size: var(--mpris-album-art-icon-size);
|
||||
}
|
||||
@@ -464,11 +483,11 @@ button:hover {
|
||||
min-height: 50px;
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.widget-buttons-grid flowboxchild > button {
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@@ -513,7 +532,7 @@ button:hover {
|
||||
}
|
||||
|
||||
.widget-menubar > .menu-button-bar > .widget-menubar-container button {
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
padding: 0px 15px;
|
||||
margin: 0 4px;
|
||||
background-color: var(--noti-bg-selection);
|
||||
@@ -536,7 +555,7 @@ button:hover {
|
||||
}
|
||||
|
||||
.widget-menubar > revealer button {
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
margin: 8px;
|
||||
margin-top: 0;
|
||||
}
|
||||
@@ -553,7 +572,7 @@ button:hover {
|
||||
.widget-volume {
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.widget-volume label:first-child {
|
||||
@@ -573,14 +592,14 @@ button:hover {
|
||||
background-color: var(--noti-bg-alt);
|
||||
padding: 4px 8px 8px 8px;
|
||||
margin: 0px 8px 8px 8px;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
/* Slider widget */
|
||||
.widget-slider {
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.widget-slider trough highlight {
|
||||
@@ -595,7 +614,7 @@ button:hover {
|
||||
.widget-backlight {
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
/* Inhibitors widget */
|
||||
@@ -606,7 +625,7 @@ button:hover {
|
||||
|
||||
.widget-inhibitors > button {
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.notification-row:parent {
|
||||
|
||||
Reference in New Issue
Block a user