diff --git a/.bin/sh/dunstaudio.sh b/.bin/sh/dunstaudio.sh deleted file mode 100755 index 25b3041..0000000 --- a/.bin/sh/dunstaudio.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash - -# See README.md for usage instructions -volume_step=1 -brightness_step=5 -max_volume=100 -notification_timeout=1500 -download_album_art=true -show_album_art=true -show_music_in_volume_indicator=true - -# Uses regex to get volume from pactl -function get_volume { - pactl get-sink-volume @DEFAULT_SINK@ | grep -Po '[0-9]{1,3}(?=%)' | head -1 -} - -# Uses regex to get mute status from pactl -function get_mute { - pactl get-sink-mute @DEFAULT_SINK@ | grep -Po '(?<=Mute: )(yes|no)' -} - -# Uses regex to get brightness from xbacklight -function get_brightness { - sudo light | grep -Po '[0-9]{1,3}' | head -n 1 -} - -# Returns a mute icon, a volume-low icon, or a volume-high icon, depending on the volume -function get_volume_icon { - volume=$(get_volume) - mute=$(get_mute) - if [ "$volume" -eq 0 ] || [ "$mute" == "yes" ] ; then - volume_icon="󰝟" - elif [ "$volume" -lt 50 ]; then - volume_icon="󰖀" - else - volume_icon="󰕾" - fi -} - -# Always returns the same icon - I couldn't get the brightness-low icon to work with fontawesome -function get_brightness_icon { - brightness_icon="" -} - -function get_album_art { - url=$(playerctl -f "{{mpris:artUrl}}" metadata) - if [[ $url == "file://"* ]]; then - album_art="${url/file:\/\//}" - elif [[ $url == "http://"* ]] && [[ $download_album_art == "true" ]]; then - # Identify filename from URL - filename="$(echo $url | sed "s/.*\///")" - - # Download file to /tmp if it doesn't exist - if [ ! -f "/tmp/$filename" ]; then - wget -O "/tmp/$filename" "$url" - fi - - album_art="/tmp/$filename" - elif [[ $url == "https://"* ]] && [[ $download_album_art == "true" ]]; then - # Identify filename from URL - filename="$(echo $url | sed "s/.*\///")" - - # Download file to /tmp if it doesn't exist - if [ ! -f "/tmp/$filename" ]; then - wget -O "/tmp/$filename" "$url" - fi - - album_art="/tmp/$filename" - else - album_art="" - fi -} - -# Displays a volume notification -function show_volume_notif { - volume=$(get_mute) - get_volume_icon - - if [[ $show_music_in_volume_indicator == "true" ]]; then - current_song=$(playerctl -f "{{title}} - {{artist}}" metadata) - - if [[ $show_album_art == "true" ]]; then - get_album_art - fi - - notify-send -t $notification_timeout -h string:x-dunst-stack-tag:volume_notif -h int:value:$volume -i "$album_art" "$volume_icon $volume%" "$current_song" - else - notify-send -t $notification_timeout -h string:x-dunst-stack-tag:volume_notif -h int:value:$volume "$volume_icon $volume%" - fi -} - -# Displays a music notification -function show_music_notif { - song_title=$(playerctl -f "{{title}}" metadata) - song_artist=$(playerctl -f "{{artist}}" metadata) - song_album=$(playerctl -f "{{album}}" metadata) - - if [[ $show_album_art == "true" ]]; then - get_album_art - fi - - notify-send -t $notification_timeout -h string:x-dunst-stack-tag:music_notif -i "$album_art" "$song_title" "$song_artist - $song_album" -} - -# Displays a brightness notification using dunstify -function show_brightness_notif { - brightness=$(get_brightness) - echo $brightness - get_brightness_icon - notify-send -t $notification_timeout -h string:x-dunst-stack-tag:brightness_notif -h int:value:$brightness "$brightness_icon $brightness%" -} - -# Main function - Takes user input, "volume_up", "volume_down", "brightness_up", or "brightness_down" -case $1 in - volume_up) - # Unmutes and increases volume, then displays the notification - pactl set-sink-mute @DEFAULT_SINK@ 0 - volume=$(get_volume) - if [ $(( "$volume" + "$volume_step" )) -gt $max_volume ]; then - pactl set-sink-volume @DEFAULT_SINK@ $max_volume% - else - pactl set-sink-volume @DEFAULT_SINK@ +$volume_step% - fi - show_volume_notif - ;; - - volume_down) - # Raises volume and displays the notification - pactl set-sink-volume @DEFAULT_SINK@ -$volume_step% - show_volume_notif - ;; - - volume_mute) - # Toggles mute and displays the notification - pactl set-sink-mute @DEFAULT_SINK@ toggle - show_volume_notif - ;; - - brightness_up) - # Increases brightness and displays the notification - sudo light -A $brightness_step - show_brightness_notif - ;; - - brightness_down) - # Decreases brightness and displays the notification - sudo light -U $brightness_step - show_brightness_notif - ;; - - next_track) - # Skips to the next song and displays the notification - playerctl next - sleep 0.5 && show_music_notif - ;; - - prev_track) - # Skips to the previous song and displays the notification - playerctl previous - sleep 0.5 && show_music_notif - ;; - - play_pause) - playerctl play-pause - show_music_notif - # Pauses/resumes playback and displays the notification - ;; -esac diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc deleted file mode 100644 index 8bcfef0..0000000 --- a/.config/dunst/dunstrc +++ /dev/null @@ -1,84 +0,0 @@ -# See dunst(5) for all configuration options - -[global] - monitor = 0 - follow = mouse - width = 400 - height = (0,400) - origin = top-right - offset = (15,15) - scale = 0 - notification_limit = 0 - progress_bar = true - progress_bar_height = 10 - progress_bar_frame_width = 1 - progress_bar_min_width = 150 - progress_bar_max_width = 400 - indicate_hidden = yes - transparency = 15 - separator_height = 1 - padding = 8 - horizontal_padding = 10 - text_icon_padding = 0 - frame_width = 1 - frame_color = "#44475a" - highlight = "#50fa7b" - separator_color = frame - sort = yes - idle_threshold = 120 - line_height = 0 - font = Droid Sans Regular 12 - markup = full - format = "%s \n%b" - alignment = left - vertical_alignment = center - show_age_threshold = 60 - ellipsize = middle - ignore_newline = no - stack_duplicates = true - hide_duplicate_count = false - show_indicators = yes - icon_position = left - min_icon_size = 64 - max_icon_size = 64 - icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices - sticky_history = yes - history_length = 20 - dmenu = /usr/bin/rofi -dmenu -p dunst: - browser = /usr/bin/firefox -new-tab - always_run_script = true - title = Dunst - class = Dunst - corner_radius = 6 - ignore_dbusclose = false - force_xwayland = false - force_xinerama = false - mouse_middle_click = close_current - mouse_left_click = do_action, close_current - mouse_right_click = close_all - -[experimental] - per_monitor_dpi = false - -[urgency_low] - background = "#282a36" - foreground = "#6272a4" - timeout = 10 - -[urgency_normal] - background = "#282a36" - foreground = "#bd93f9" - timeout = 10 - -[urgency_critical] - background = "#ff5555" - foreground = "#f8f8f2" - frame_color = "#ff5555" - timeout = 0 - -[fullscreen_delay_everything] - fullscreen = delay - -[fullscreen_show_critical] - msg_urgency = critical - fullscreen = show diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index c4bd702..3d93f11 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -55,8 +55,8 @@ exec-once = udiskie -t & exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = sleep 1; blueman-applet exec-once = hyprpaper -exec-once = [workspace special:music silent] supersonic-desktop -exec-once = dunst +exec-once = swaync +exec-once = [workspace special:music silent] sleep 1; supersonic-desktop exec-once = waybar exec-once = hypridle exec-once = hyprctl setcursor Dracula-cursors 24 @@ -222,7 +222,7 @@ bind = $mainMod, F, fullscreen bind = $mainMod, C, exec, galculator bind = $mainMod CTRL, T, exec, steam bind = $mainMod CTRL, Y, exec, heroic -bind = $mainMod, N, exec, dunstctl context +bind = $mainMod, N, exec, exec swaync-client -t -sw bind = $mainMod CTRL, U, exec, [workspace special:scratchpad silent] signal-desktop --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations bind = $mainMod CTRL, P, exec, [workspace special:password silent] keepassxc bind = $mainMod CTRL, M, exec, [workspace special:music silent] sleep 1; supersonic-desktop @@ -256,20 +256,15 @@ bind = ALT, SPACE, focuscurrentorlast # Media keys -bind = ,XF86AudioPlayPause,exec,~/.bin/sh/dunstaudio.sh play_pause -bind = ,XF86AudioPlay,exec,~/.bin/sh/dunstaudio.sh play_pause -bind = ,XF86AudioPause,exec,~/.bin/sh/dunstaudio.sh play_pause +bind = ,XF86AudioPlay,exec,playerctl play-pause +bind = ,XF86AudioPause,exec,playerctl pause bind = ,XF86AudioStop,exec,playerctl stop -bind = ,XF86AudioNext,exec,~/.bin/sh/dunstaudio.sh next_track -bind = ,XF86AudioPrev,exec,~/.bin/sh/dunstaudio.sh prev_track -bind = ,XF86AudioRaiseVolume,exec,~/.bin/sh/dunstaudio.sh volume_up -bind = ,XF86AudioLowerVolume,exec,~/.bin/sh/dunstaudio.sh volume_down -bind = ,XF86AudioMute,exec,~/.bin/sh/dunstaudio.sh volume_mute +bind = ,XF86AudioNext,exec,playerctl next +bind = ,XF86AudioPrev,exec,playerctl previous +bind = ,XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+ +bind = ,XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%- +bind = ,XF86AudioMute,exec,pactl set-sink-mute @DEFAULT_SINK@ toggle -# Brightness keys - -bind = ,XF86MonBrightnessUp,exec,~/.bin/sh/dunstaudio.sh brightness_up -bind = ,XF86MonBrightnessDown,exec,~/.bin/sh/dunstaudio.sh brightness_down # Move focus with Mod + arrow keys @@ -379,7 +374,6 @@ bind = ,Print,exec,grim -g "$(slurp)" - | swappy -f - # Environment management -bind = $mainMod Shift, n, exec, killall dunst || exec dunst bind = $mainMod Shift, w, exec, killall waybar || exec waybar bind = $mainMod Shift, h, exec, killall hypridle || exec hypridle diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi index 4676d5d..8607d07 100644 --- a/.config/rofi/config.rasi +++ b/.config/rofi/config.rasi @@ -4,7 +4,6 @@ configuration { show-icons: true; display-drun: ""; disable-history: false; - modi: "window,drun,run,ssh,filebrowser,keys"; } * { diff --git a/.config/supersonic/themes/dracula.toml b/.config/supersonic/themes/dracula.toml index 1287c43..380f66a 100644 --- a/.config/supersonic/themes/dracula.toml +++ b/.config/supersonic/themes/dracula.toml @@ -10,7 +10,7 @@ InputBackground = "#44475A" InputBorder = "#44475A" MenuBackground = "#282A36" OverlayBackground = "#282A36" -Hyperlink = "#50FA7B" +Hyperlink = "#BD93F9" Pressed = "#44475A" ListHeader = "#1E1F29" PageHeader = "#1E1F29" diff --git a/.config/waybar/config b/.config/waybar/config index 0c73e1c..3104e96 100644 --- a/.config/waybar/config +++ b/.config/waybar/config @@ -54,9 +54,6 @@ "tooltip-format": "󰠃 {artist}:  {title} (󰀥 {album})", "interval": 1, "album-len": 0, - "on-click": "exec ~/.bin/sh/dunstaudio.sh play_pause", - "on-click-right": "exec ~/.bin/sh/dunstaudio.sh next_track", - "on-click-middle": "exec ~/.bin/sh/dunstaudio.sh prev_track", "player-icons": { "default": "", "mpv": "" @@ -245,9 +242,7 @@ "car": "", "default": ["", "󰖀", "󰕾", ""] }, - "on-click": "pavucontrol", - "on-scroll-up": "exec ~/.bin/sh/dunstaudio.sh volume_up", - "on-scroll-down": "exec ~/.bin/sh/dunstaudio.sh volume_down" + "on-click": "pavucontrol" }, "bluetooth": { "format": " {status}", diff --git a/README.md b/README.md index 7e1f785..b916d52 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ I use the [Dracula theme](https://draculatheme.com/), following their [color pal * Networking: [NetworkManager](https://networkmanager.dev/) * Wayland Compositor: [Hyprland](https://github.com/hyprwm/Hyprland) * Bar: [Waybar](https://github.com/Alexays/Waybar) -* Notifications: [Dunst](https://dunst-project.org) +* Notifications: [SwayNotificationCenter](https://github.com/ErikReider/SwayNotificationCenter) * Launcher: [Wofi](https://hg.sr.ht/~scoopta/wofi) * Menu Editor: [alacarte](https://gitlab.gnome.org/GNOME/alacarte) * File Manager: [nnn](https://github.com/jarun/nnn) @@ -98,6 +98,5 @@ A lot of the code was modified or borrowed from others that I will attempt to li * MrRoy's swaync [style.css](https://gist.github.com/MrRoy/3a4a0b1462921e78bf667e1b36697268) and his [config.json](https://gist.github.com/MrRoy/40f103bc34f3a58699e218c3d06d1a43). * Chick2D's [neofetch-themes](https://github.com/Chick2D/neofetch-themes) repository. * MrVivekRajan's [themes for Hyprlock](https://github.com/MrVivekRajan/Hyprlock-Styles), which I used as base for mine. -* Nicholas Anand's [i3-volume-brightness-indicator ](https://gitlab.com/Nmoleo/i3-volume-brightness-indicator/-/tree/main), whose awesome script is powering my notifications with dunst. If I'm missing anybody else, just open up a MR.