mirror of
https://codeberg.org/frosty/dotfiles.git
synced 2024-09-19 03:37:10 -04:00
new install push
This commit is contained in:
parent
c3ed78ecb9
commit
5662f5c172
|
@ -15,7 +15,7 @@ export BROWSER="${BROWSER:-firefox}"
|
||||||
|
|
||||||
# $HOME cleanup
|
# $HOME cleanup
|
||||||
export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority"
|
export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority"
|
||||||
export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
|
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc"
|
||||||
export XCURSOR_PATH="/usr/share/icons:$XDG_DATA_HOME/icons"
|
export XCURSOR_PATH="/usr/share/icons:$XDG_DATA_HOME/icons"
|
||||||
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||||
export GOPATH="$XDG_DATA_HOME/go"
|
export GOPATH="$XDG_DATA_HOME/go"
|
||||||
|
@ -26,18 +26,14 @@ export NODE_REPL_HISTORY="$XDG_DATA_HOME/node_repl_history"
|
||||||
export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
|
export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
|
||||||
|
|
||||||
# Other program settings
|
# Other program settings
|
||||||
export SVDIR="$XDG_CONFIG_HOME/service"
|
|
||||||
export _JAVA_OPTIONS="-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java"
|
|
||||||
export XIDLEHOOK_SOCK="$XDG_STATE_HOME/xidlehook.sock"
|
export XIDLEHOOK_SOCK="$XDG_STATE_HOME/xidlehook.sock"
|
||||||
|
|
||||||
# $PATH additions
|
# $PATH additions
|
||||||
export PATH="$PATH:$HOME/.local/bin"
|
export PATH="$PATH:$HOME/.local/bin"
|
||||||
export PATH="$PATH:$HOME/.local/bin/screenlayouts"
|
export PATH="$PATH:$HOME/.local/bin/screenlayouts"
|
||||||
export PATH="$PATH:$HOME/.ghcup/bin"
|
|
||||||
export PATH="$PATH:$HOME/.cabal/bin"
|
|
||||||
export PATH="$PATH:$GOPATH/bin"
|
export PATH="$PATH:$GOPATH/bin"
|
||||||
export PATH="$PATH:$CARGO_HOME/bin"
|
export PATH="$PATH:$CARGO_HOME/bin"
|
||||||
export PATH="$PATH:$XDG_DATA_HOME/npm/bin"
|
export PATH="$PATH:$XDG_DATA_HOME/npm/bin"
|
||||||
|
|
||||||
# Automatic graphical start on tty1
|
# Automatic graphical start
|
||||||
[ "$(tty)" = "/dev/tty2" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx >/dev/null 2>&1
|
[ "$(tty)" = "/dev/tty2" ] && exec startx
|
||||||
|
|
29
.bashrc
29
.bashrc
|
@ -1,14 +1,12 @@
|
||||||
# shellcheck shell=sh
|
# shellcheck shell=sh
|
||||||
|
|
||||||
case "$-" in
|
case $- in
|
||||||
*i*) ;;
|
*i*) ;;
|
||||||
*) return ;;
|
*) return ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
export HISTFILE="$XDG_STATE_HOME/bash/history"
|
|
||||||
|
|
||||||
lfcd() {
|
lfcd() {
|
||||||
cd "$(command lf -print-last-dir "$@")" || return
|
cd "$(command lf -print-last-dir "$@")" || return
|
||||||
}
|
}
|
||||||
|
|
||||||
# Default options
|
# Default options
|
||||||
|
@ -16,18 +14,29 @@ alias cp='cp -iv'
|
||||||
alias mv='mv -iv'
|
alias mv='mv -iv'
|
||||||
alias rm='rm -vI'
|
alias rm='rm -vI'
|
||||||
alias mkdir='mkdir -pv'
|
alias mkdir='mkdir -pv'
|
||||||
alias lf='lfub'
|
|
||||||
alias ls='ls --color=auto -AF'
|
alias ls='ls --color=auto -AF'
|
||||||
cd() {
|
cd() {
|
||||||
builtin cd "$@" && ls
|
builtin cd "$@" && ls
|
||||||
}
|
}
|
||||||
alias grep='grep --color=auto'
|
alias grep='grep --color=auto'
|
||||||
# alias wget='wget --no-hsts-file'
|
alias wget='wget --no-hsts'
|
||||||
alias vim='nvim'
|
alias vim='nvim'
|
||||||
|
|
||||||
# Utilities
|
# Utilities
|
||||||
alias ipp='curl https://ipinfo.io/ip && echo'
|
alias ipp='curl https://ipinfo.io/ip && echo'
|
||||||
alias ipl='monitors local_ip'
|
ipl() {
|
||||||
|
if address="$(ip route get 1 2>/dev/null)"; then
|
||||||
|
address="${address#* via * dev * src }"
|
||||||
|
address="${address% uid *}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$address" ]; then
|
||||||
|
printf '%s' "$address"
|
||||||
|
else
|
||||||
|
printf 'Offline'
|
||||||
|
fi
|
||||||
|
printf '\n'
|
||||||
|
}
|
||||||
|
|
||||||
# Shorthands
|
# Shorthands
|
||||||
alias l='ls'
|
alias l='ls'
|
||||||
|
@ -48,6 +57,6 @@ alias gp='git push'
|
||||||
alias gl='git pull'
|
alias gl='git pull'
|
||||||
|
|
||||||
if [ -d "$XDG_DATA_HOME/bash/iceline" ]; then
|
if [ -d "$XDG_DATA_HOME/bash/iceline" ]; then
|
||||||
. "$XDG_DATA_HOME/bash/iceline/iceline.sh"
|
. "$XDG_DATA_HOME/bash/iceline/iceline.sh"
|
||||||
PROMPT_COMMAND='_prompt_command'
|
PROMPT_COMMAND='_prompt_command'
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
|
||||||
EDITOR="${EDITOR:-vim}"
|
|
||||||
|
|
||||||
BM_DIRS="$XDG_CONFIG_HOME/bookmarks/directories"
|
|
||||||
BM_FILES="$XDG_CONFIG_HOME/bookmarks/files"
|
|
||||||
OUTPUT_FILE="$XDG_CONFIG_HOME/shell/10-bookmarks.sh"
|
|
||||||
|
|
||||||
cleanup_file() {
|
|
||||||
while IFS= read -r line; do
|
|
||||||
[ -z "$line" ] && continue
|
|
||||||
|
|
||||||
while IFS='#' read -r content _; do
|
|
||||||
[ -n "$content" ] && printf '%s\n' "$content"
|
|
||||||
done <<EOF
|
|
||||||
$line
|
|
||||||
EOF
|
|
||||||
done <"$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
while IFS=' ' read -r name value; do
|
|
||||||
printf "alias %s='cd %s'\n" "$name" "$value"
|
|
||||||
done <<EOF
|
|
||||||
$(cleanup_file "$BM_DIRS")
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# TODO(frosty): Support other applications per line, instead of only using $EDITOR.
|
|
||||||
while IFS=' ' read -r name value; do
|
|
||||||
printf "alias %s='%s %s'\n" "$name" "$EDITOR" "$value"
|
|
||||||
done <<EOF
|
|
||||||
$(cleanup_file "$BM_FILES")
|
|
||||||
EOF
|
|
||||||
} >"$OUTPUT_FILE"
|
|
|
@ -1,40 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
languages="go
|
|
||||||
rust"
|
|
||||||
coreutils="awk
|
|
||||||
sed"
|
|
||||||
|
|
||||||
while IFS= read -r line; do
|
|
||||||
case "$languages" in
|
|
||||||
*$line*)
|
|
||||||
tool="language"
|
|
||||||
selected="$line"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
case "$coreutils" in
|
|
||||||
*$line*)
|
|
||||||
tool="coreutil"
|
|
||||||
selected="$line"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done <<EOF
|
|
||||||
$(printf '%s\n%s' "$languages" "$coreutils" | shuf | fzf)
|
|
||||||
EOF
|
|
||||||
[ -z "$selected" ] && exit 1
|
|
||||||
|
|
||||||
printf "enter a query: " >&2
|
|
||||||
read -r query
|
|
||||||
|
|
||||||
if [ -n "$query" ]; then
|
|
||||||
case "$tool" in
|
|
||||||
language) url="$selected/$query" ;;
|
|
||||||
coreutil) url="$selected~$query" ;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
url="$selected"
|
|
||||||
fi
|
|
||||||
|
|
||||||
curl -s "https://cht.sh/$url"
|
|
|
@ -1,29 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
|
||||||
UEBERZUG_TMP_DIR="${UEBERZUG_TMP_DIR:-/tmp}"
|
|
||||||
|
|
||||||
UB_PID=
|
|
||||||
UB_SOCKET=
|
|
||||||
|
|
||||||
cleanup() {
|
|
||||||
exec 3>&-
|
|
||||||
ueberzugpp cmd -s "$UB_SOCKET" -a exit
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
|
||||||
lf "$@"
|
|
||||||
else
|
|
||||||
[ -d "$XDG_CACHE_HOME/lf" ] || mkdir -p "$XDG_CACHE_HOME/lf"
|
|
||||||
|
|
||||||
UB_PID_FILE="$UEBERZUG_TMP_DIR/.$(uuidgen)"
|
|
||||||
ueberzugpp layer --silent --no-stdin --use-escape-codes --pid-file "$UB_PID_FILE"
|
|
||||||
read -r UB_PID <"$UB_PID_FILE"
|
|
||||||
rm "$UB_PID_FILE"
|
|
||||||
|
|
||||||
UB_SOCKET="$UEBERZUG_TMP_DIR/ueberzugpp-$UB_PID.socket"
|
|
||||||
export UB_PID UB_SOCKET
|
|
||||||
trap cleanup HUP INT QUIT TERM EXIT
|
|
||||||
|
|
||||||
lf "$@" 3>&-
|
|
||||||
fi
|
|
25
.local/bin/mod-battery
Executable file
25
.local/bin/mod-battery
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
FULL_THRESHOLD=90
|
||||||
|
|
||||||
|
for battery in /sys/class/power_supply/BAT*; do
|
||||||
|
if [ ! -f "$battery/capacity" ] || [ ! -f "$battery/status" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -r capacity <"$battery/capacity"
|
||||||
|
read -r status <"$battery/status"
|
||||||
|
|
||||||
|
if [ "$status" = "Charging" ] || ([ "$capacity" -ge "$FULL_THRESHOLD" ] && [ "$status" = "Not charging" ]); then
|
||||||
|
prefix="AC"
|
||||||
|
else
|
||||||
|
prefix="BAT"
|
||||||
|
fi
|
||||||
|
printf '%s %s%%' "$prefix" "$capacity"
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 1
|
53
.local/bin/mod-memory
Executable file
53
.local/bin/mod-memory
Executable file
|
@ -0,0 +1,53 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
DISPLAY_DECIMAL_PLACES=2
|
||||||
|
|
||||||
|
MEBI=1024
|
||||||
|
GIBI=$((MEBI * MEBI))
|
||||||
|
TEBI=$((GIBI * MEBI))
|
||||||
|
|
||||||
|
display_kib_unit() {
|
||||||
|
size_kib=$1
|
||||||
|
decimal_places=$2
|
||||||
|
|
||||||
|
if [ "$size_kib" -lt "$MEBI" ]; then
|
||||||
|
size=$size_kib
|
||||||
|
unit="K"
|
||||||
|
elif [ "$size_kib" -lt "$GIBI" ]; then
|
||||||
|
size=$(printf 'scale=%s; %s / %s\n' "$decimal_places" "$size_kib" "$MEBI" | bc)
|
||||||
|
unit="M"
|
||||||
|
elif [ "$size_kib" -lt "$TEBI" ]; then
|
||||||
|
size=$(printf 'scale=%s; %s / %s\n' "$decimal_places" "$size_kib" "$GIBI" | bc)
|
||||||
|
unit="G"
|
||||||
|
else
|
||||||
|
size=$(printf 'scale=%s; %s / %s\n' "$decimal_places" "$size_kib" "$TEBI" | bc)
|
||||||
|
unit="T"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '%.*f%s' "$decimal_places" "$size" "$unit"
|
||||||
|
}
|
||||||
|
|
||||||
|
mem_total=
|
||||||
|
mem_free=
|
||||||
|
mem_buffers=
|
||||||
|
mem_cached=
|
||||||
|
mem_sreclaimable=
|
||||||
|
mem_shmem=
|
||||||
|
|
||||||
|
while read -r type value _; do
|
||||||
|
case $type in
|
||||||
|
MemTotal:) mem_total=$value ;;
|
||||||
|
MemFree:) mem_free=$value ;;
|
||||||
|
Buffers:) mem_buffers=$value ;;
|
||||||
|
Cached:) mem_cached=$value ;;
|
||||||
|
SReclaimable:) mem_sreclaimable=$value ;;
|
||||||
|
Shmem:) mem_shmem=$value ;;
|
||||||
|
esac
|
||||||
|
done </proc/meminfo
|
||||||
|
|
||||||
|
mem_used=$((mem_total - mem_free))
|
||||||
|
mem_non_cache_buffer=$((mem_used - (mem_buffers + (mem_cached + mem_sreclaimable - mem_shmem))))
|
||||||
|
|
||||||
|
printf 'MEM %s' $(display_kib_unit "$mem_non_cache_buffer" "$DISPLAY_DECIMAL_PLACES")
|
14
.local/bin/mod-network
Executable file
14
.local/bin/mod-network
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
if address="$(ip route get 1 2>/dev/null)"; then
|
||||||
|
address="${address#* via * dev * src }"
|
||||||
|
address="${address% uid *}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$address" ]; then
|
||||||
|
printf '%s' "$address"
|
||||||
|
else
|
||||||
|
printf 'Offline'
|
||||||
|
fi
|
24
.local/bin/mod-volume
Executable file
24
.local/bin/mod-volume
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
SINK="@DEFAULT_AUDIO_SINK@"
|
||||||
|
|
||||||
|
muted=
|
||||||
|
volume=$(wpctl get-volume "$SINK")
|
||||||
|
|
||||||
|
case $volume in
|
||||||
|
*\[MUTED\]) muted=1 ;;
|
||||||
|
esac
|
||||||
|
volume=${volume#Volume: }
|
||||||
|
volume=${volume%.*}${volume#*.}
|
||||||
|
volume=${volume#0}
|
||||||
|
volume=${volume#0}
|
||||||
|
volume=${volume% \[MUTED\]}
|
||||||
|
|
||||||
|
if [ -n "$muted" ]; then
|
||||||
|
prefix="MUTE"
|
||||||
|
else
|
||||||
|
prefix="VOL"
|
||||||
|
fi
|
||||||
|
printf '%s %s%%' "$prefix" "$volume"
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
notify() {
|
|
||||||
notify-send -r 9991 "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
i=0
|
|
||||||
while IFS= read -r line; do
|
|
||||||
case "$i" in
|
|
||||||
0) track_artist="$line" ;;
|
|
||||||
1) track_title="$line" ;;
|
|
||||||
*) break ;;
|
|
||||||
esac
|
|
||||||
i=$((i + 1))
|
|
||||||
done <<EOF
|
|
||||||
$(MPC_FORMAT="%artist%\n%title%" mpc)
|
|
||||||
EOF
|
|
||||||
|
|
||||||
notify "$track_title" "by $track_artist"
|
|
|
@ -4,58 +4,28 @@ set -eu
|
||||||
|
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs"
|
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs"
|
||||||
OUTPUT_DIRECTORY="${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}"
|
OUTPUT_DIRECTORY=${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}
|
||||||
FILENAME_BASE=
|
FILENAME_BASE=
|
||||||
FILENAME_DATE_FORMAT="%Y-%m-%d_%H-%M-%S"
|
FILENAME_DATE_FORMAT="%Y-%m-%d_%H-%M-%S"
|
||||||
|
|
||||||
QUIET=
|
NOTIFY=1
|
||||||
COPY=
|
COPY=1
|
||||||
SAVE=
|
SAVE=1
|
||||||
|
|
||||||
die() {
|
screenshot_type=$1
|
||||||
printf '%s: %s\n' "${0##*/}" "$1"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
notify() {
|
if [ "$SAVE" ]; then
|
||||||
notify-send "${0##*/}" "$@"
|
FILE_PATH=${FILE_PATH:-$OUTPUT_DIRECTORY/$FILENAME_BASE$(date "+$FILENAME_DATE_FORMAT").png}
|
||||||
}
|
else
|
||||||
|
FILE_PATH="/tmp/${0##*/}-$!.png"
|
||||||
|
fi
|
||||||
|
|
||||||
screenshot_select() {
|
case $screenshot_type in
|
||||||
maim -qsu "$@"
|
select) maim -qug "$(slop || exit 0)" "$FILE_PATH" ;;
|
||||||
}
|
full) maim -qu "$FILE_PATH" ;;
|
||||||
|
|
||||||
screenshot_full() {
|
|
||||||
maim -qu "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
while getopts :hVqcos opt; do
|
|
||||||
case "$opt" in
|
|
||||||
q) QUIET=1 ;;
|
|
||||||
c) COPY=1 ;;
|
|
||||||
s) SAVE=1 ;;
|
|
||||||
*) die "invalid option: -$OPTARG" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
shift "$((OPTIND - 1))"
|
|
||||||
|
|
||||||
SCREENSHOT_TYPE="${1:-full}"
|
|
||||||
FILE_PATH="${2:-}"
|
|
||||||
|
|
||||||
case "$SCREENSHOT_TYPE" in
|
|
||||||
select | full) ;;
|
|
||||||
*) exit 1 ;;
|
*) exit 1 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ -n "$SAVE" ]; then
|
[ "$NOTIFY" ] && notify-send "${0##*/}" "Screenshot taken"
|
||||||
FILE_PATH="${FILE_PATH:-$OUTPUT_DIRECTORY/$FILENAME_BASE$(date "+$FILENAME_DATE_FORMAT").png}"
|
[ "$COPY" ] && xclip -sel clip -t image/png "$FILE_PATH"
|
||||||
else
|
[ "$SAVE" ] || rm "$FILE_PATH"
|
||||||
FILE_PATH="/tmp/${0##*/}-$(date '+%s').png"
|
|
||||||
fi
|
|
||||||
|
|
||||||
screenshot_"$SCREENSHOT_TYPE" "$FILE_PATH" || exit 0
|
|
||||||
|
|
||||||
[ -z "$QUIET" ] && notify -i "$FILE_PATH" "Screenshot saved to <b>${FILE_PATH##*/}</b>."
|
|
||||||
[ -n "$COPY" ] && xclip -sel clip -t image/png "$FILE_PATH"
|
|
||||||
[ -z "$SAVE" ] && rm "$FILE_PATH"
|
|
||||||
|
|
18
.local/bin/sys-volume
Executable file
18
.local/bin/sys-volume
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
SINK="@DEFAULT_AUDIO_SINK@"
|
||||||
|
STATUSBAR="modbot"
|
||||||
|
STATUSBAR_SIGNAL=1
|
||||||
|
|
||||||
|
action=$1
|
||||||
|
|
||||||
|
if [ "$action" = "toggle" ]; then
|
||||||
|
wpctl set-mute "$SINK" toggle
|
||||||
|
else
|
||||||
|
wpctl set-mute "$SINK" 0
|
||||||
|
wpctl set-volume "$SINK" "$action"
|
||||||
|
fi
|
||||||
|
|
||||||
|
pkill -RTMIN+"$STATUSBAR_SIGNAL" "$STATUSBAR"
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
pipe="$1"
|
|
||||||
update="$2"
|
|
||||||
|
|
||||||
PIPE_FILE="/tmp/pipe-$pipe"
|
|
||||||
[ -p "$PIPE_FILE" ] || mkfifo "$PIPE_FILE"
|
|
||||||
$update >"$PIPE_FILE"
|
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
SINK="@DEFAULT_AUDIO_SINK@"
|
|
||||||
NOTIFY_ID=9990
|
|
||||||
NOTIFY_URGENCY="low"
|
|
||||||
|
|
||||||
action="${1:-}"
|
|
||||||
[ -z "$action" ] && exit 1
|
|
||||||
|
|
||||||
if [ "$action" = "toggle" ]; then
|
|
||||||
wpctl set-mute "$SINK" "$action" || exit 1
|
|
||||||
else
|
|
||||||
wpctl set-volume "$SINK" "$action" || exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
volume="$(wpctl get-volume "$SINK")"
|
|
||||||
case "$volume" in
|
|
||||||
*\[MUTED\]*) muted=1 ;;
|
|
||||||
*) muted=0 ;;
|
|
||||||
esac
|
|
||||||
volume="${volume% \[MUTED\]}"
|
|
||||||
volume="${volume#Volume: }"
|
|
||||||
volume="${volume%.*}${volume#*.}"
|
|
||||||
volume="${volume#0}"
|
|
||||||
|
|
||||||
if [ "$muted" -eq 1 ]; then
|
|
||||||
icon="audio-volume-muted-symbolic"
|
|
||||||
title="Volume Muted"
|
|
||||||
else
|
|
||||||
case "$volume" in
|
|
||||||
[0-9] | [1-2][0-9] | 3[0-3]) icon="audio-volume-low-symbolic" ;;
|
|
||||||
3[4-9] | [4-5][0-9] | 6[0-6]) icon="audio-volume-medium-symbolic" ;;
|
|
||||||
6[7-9] | [7-9][0-9] | 100) icon="audio-volume-high-symbolic" ;;
|
|
||||||
esac
|
|
||||||
title="Volume"
|
|
||||||
fi
|
|
||||||
|
|
||||||
notify-send -r "$NOTIFY_ID" -u "$NOTIFY_URGENCY" -h int:value:"$volume" -i "$icon" "$title"
|
|
||||||
update-pipe volume 'monitors volume'
|
|
Loading…
Reference in a new issue