first
This commit is contained in:
commit
c2439d6f8d
113126 changed files with 761815 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
nvim/
|
258
bin/.local/bin/volume-brightness
Executable file
258
bin/.local/bin/volume-brightness
Executable file
|
@ -0,0 +1,258 @@
|
|||
#!/bin/bash
|
||||
|
||||
# See README.md for usage instructions
|
||||
volume_step=5
|
||||
mic_volume_step=5
|
||||
brightness_step=5
|
||||
kbd_brightness_step=5
|
||||
max_volume=100
|
||||
max_mic_volume=100
|
||||
volume_notification_timeout=1000
|
||||
mic_volume_notification_timeout=1000
|
||||
brightness_notification_timeout=1000
|
||||
kbd_brightness_notification_timeout=1000
|
||||
player_notification_timeout=5000
|
||||
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
|
||||
}
|
||||
|
||||
function get_mic_volume {
|
||||
pactl get-source-volume @DEFAULT_SOURCE@ | 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)'
|
||||
}
|
||||
|
||||
function get_mic_mute {
|
||||
pactl get-source-mute @DEFAULT_SOURCE@ | grep -Po '(?<=Mute: )(yes|no)'
|
||||
}
|
||||
|
||||
# Uses regex to get brightness from xbacklight
|
||||
function get_brightness {
|
||||
brightnessctl -c backlight -P get | grep -Po '[0-9]{1,3}' | head -n 1
|
||||
}
|
||||
|
||||
function get_kbd_brightness {
|
||||
brightnessctl -d kbd_backlight -P get | 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 [ "$mute" == "yes" ]; then
|
||||
volume_icon="volume-level-muted"
|
||||
elif [ "$volume" -eq 0 ]; then
|
||||
volume_icon="volume-level-low"
|
||||
elif [ "$volume" -lt 50 ]; then
|
||||
volume_icon="volume-level-medium"
|
||||
else
|
||||
volume_icon="volume-level-high"
|
||||
fi
|
||||
}
|
||||
|
||||
function get_mic_volume_icon {
|
||||
mic_volume=$(get_mic_volume)
|
||||
mic_mute=$(get_mic_mute)
|
||||
if [ "$mic_mute" == "yes" ]; then
|
||||
mic_volume_icon="mic-volume-muted"
|
||||
elif [ "$mic_volume" -eq 0 ]; then
|
||||
mic_volume_icon="mic-volume-low"
|
||||
elif [ "$mic_volume" -lt 50 ]; then
|
||||
mic_volume_icon="mic-volume-medium"
|
||||
else
|
||||
mic_volume_icon="mic-volume-high"
|
||||
fi
|
||||
}
|
||||
|
||||
# Always returns the same icon - I couldn't get the brightness-low icon to work with fontawesome
|
||||
function get_brightness_icon {
|
||||
brightness=$(get_brightness)
|
||||
if [ "$brightness" -eq 0 ]; then
|
||||
brightness_icon="gpm-brightness-lcd-disabled"
|
||||
else
|
||||
brightness_icon="gpm-brightness-lcd"
|
||||
fi
|
||||
}
|
||||
|
||||
function get_kbd_brightness_icon {
|
||||
kbd_brightness=$(get_kbd_brightness)
|
||||
if [ "$kbd_brightness" -eq 0 ]; then
|
||||
kbd_brightness_icon="gpm-brightness-kbd-disabled"
|
||||
else
|
||||
kbd_brightness_icon="gpm-brightness-kbd"
|
||||
fi
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
notify-send -a "volume-brightness" -t $volume_notification_timeout -h string:x-dunst-stack-tag:volume_notif -h int:value:$volume -i "$volume_icon" "Volume"
|
||||
}
|
||||
|
||||
function show_mic_volume_notif {
|
||||
mic_volume=$(get_mic_mute)
|
||||
get_mic_volume_icon
|
||||
|
||||
notify-send -a "volume-brightness" -t $mic_volume_notification_timeout -h string:x-dunst-stack-tag:volume_notif -h int:value:$mic_volume -i "$mic_volume_icon" "Microphone volume"
|
||||
}
|
||||
|
||||
# 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 -a "volume-brightness" -t $player_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 -a "volume-brightness" -t $brightness_notification_timeout -h string:x-dunst-stack-tag:brightness_notif -h int:value:$brightness -i "$brightness_icon" "Brightness"
|
||||
}
|
||||
|
||||
function show_kbd_brightness_notif {
|
||||
kbd_brightness=$(get_kbd_brightness)
|
||||
echo $kbd_brightness
|
||||
get_kbd_brightness_icon
|
||||
notify-send -a "volume-brightness" -t $kbd_brightness_notification_timeout -h string:x-dunst-stack-tag:brightness_notif -h int:value:$kbd_brightness -i "$kbd_brightness_icon" "Keyboard 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
|
||||
;;
|
||||
|
||||
mic_volume_up)
|
||||
# Unmutes and increases volume, then displays the notification
|
||||
pactl set-source-mute @DEFAULT_SOURCE@ 0
|
||||
mic_volume=$(get_mic_volume)
|
||||
if [ $(( "$mic_volume" + "$mic_volume_step" )) -gt $max_mic_volume ]; then
|
||||
pactl set-source-volume @DEFAULT_SOURCE@ $max_mic_volume%
|
||||
else
|
||||
pactl set-source-volume @DEFAULT_SOURCE@ +$mic_volume_step%
|
||||
fi
|
||||
show_mic_volume_notif
|
||||
;;
|
||||
|
||||
mic_volume_down)
|
||||
# Raises volume and displays the notification
|
||||
pactl set-source-volume @DEFAULT_SOURCE@ -$mic_volume_step%
|
||||
show_mic_volume_notif
|
||||
;;
|
||||
|
||||
mic_volume_mute)
|
||||
# Toggles mute and displays the notification
|
||||
pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
show_mic_volume_notif
|
||||
;;
|
||||
|
||||
brightness_up)
|
||||
# Increases brightness and displays the notification
|
||||
brightnessctl -c backlight set $brightness_step%+
|
||||
show_brightness_notif
|
||||
;;
|
||||
|
||||
brightness_down)
|
||||
# Decreases brightness and displays the notification
|
||||
brightnessctl -c backlight set $brightness_step%-
|
||||
show_brightness_notif
|
||||
;;
|
||||
|
||||
kbd_brightness_up)
|
||||
# Increases brightness and displays the notification
|
||||
brightnessctl -d kbd_backlight set $kbd_brightness_step%+
|
||||
show_kbd_brightness_notif
|
||||
;;
|
||||
|
||||
kbd_brightness_down)
|
||||
# Decreases brightness and displays the notification
|
||||
brightnessctl -d kbd_backlight set $kbd_brightness_step%-
|
||||
show_kbd_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
|
||||
|
1
cursors/.Xresources
Normal file
1
cursors/.Xresources
Normal file
|
@ -0,0 +1 @@
|
|||
Xcursor.theme: Bibata-Modern-ClassicX
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,4 @@
|
|||
name = Bibata-Modern-Classic
|
||||
description = Generated Bibata repository
|
||||
version = 0.1
|
||||
cursors_directory = hyprcursors
|
|
@ -0,0 +1,3 @@
|
|||
[Icon Theme]
|
||||
Name=Bibata-Modern-Classic
|
||||
Inherits="Bibata-Modern-Classic"
|
|
@ -0,0 +1 @@
|
|||
left_ptr_watch
|
|
@ -0,0 +1 @@
|
|||
sb_v_double_arrow
|
|
@ -0,0 +1 @@
|
|||
sb_h_double_arrow
|
|
@ -0,0 +1 @@
|
|||
crossed_circle
|
|
@ -0,0 +1 @@
|
|||
left_ptr_watch
|
|
@ -0,0 +1 @@
|
|||
copy
|
|
@ -0,0 +1 @@
|
|||
sb_h_double_arrow
|
|
@ -0,0 +1 @@
|
|||
sb_v_double_arrow
|
|
@ -0,0 +1 @@
|
|||
link
|
|
@ -0,0 +1 @@
|
|||
left_ptr_watch
|
|
@ -0,0 +1 @@
|
|||
move
|
|
@ -0,0 +1 @@
|
|||
question_arrow
|
|
@ -0,0 +1 @@
|
|||
copy
|
|
@ -0,0 +1 @@
|
|||
link
|
|
@ -0,0 +1 @@
|
|||
move
|
|
@ -0,0 +1 @@
|
|||
hand2
|
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
link
|
1
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/alias
Symbolic link
1
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/alias
Symbolic link
|
@ -0,0 +1 @@
|
|||
dnd-link
|
|
@ -0,0 +1 @@
|
|||
move
|
1
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/arrow
Symbolic link
1
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/arrow
Symbolic link
|
@ -0,0 +1 @@
|
|||
left_ptr
|
|
@ -0,0 +1 @@
|
|||
copy
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
bd_double_arrow
|
1
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/cell
Symbolic link
1
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/cell
Symbolic link
|
@ -0,0 +1 @@
|
|||
plus
|
Binary file not shown.
BIN
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/circle
Normal file
BIN
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/circle
Normal file
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
grabbing
|
|
@ -0,0 +1 @@
|
|||
sb_h_double_arrow
|
|
@ -0,0 +1 @@
|
|||
tcross
|
Binary file not shown.
BIN
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/copy
Normal file
BIN
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/copy
Normal file
Binary file not shown.
BIN
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/cross
Normal file
BIN
cursors/.local/share/icons/Bibata-Modern-ClassicX/cursors/cross
Normal file
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
cross
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue