Mako
介紹
Mako 是一個輕量級的通知守護進程,您可以閱讀 mako(5) 以獲取詳細信息。 其配置文件位於 ~/.config/mako/config,用於屏幕顯示(OSD)的圖標存儲在 ~/.config/mako/icons/ 並且應該是 PNG 格式。
使用方法
在本節的其餘部分,腳本使用的所有圖像都可以從此 GitHub 文件夾獲取。
註:由於本頁面是從Hyprland頁面的Mako一節遷移過來的,所以腳本路徑均為~/.config/hypr。
媒體鍵通知
腳本代碼(請按右側按鈕展開閱讀)
~/.config/hypr/scripts/volume
#!/usr/bin/env bash
iDIR="$HOME/.config/mako/icons"
# Get Volume
get_volume() {
volume=$(pamixer --get-volume)
echo "$volume"
}
# Get icons
get_icon() {
current=$(get_volume)
if [[ "$current" -eq "0" ]]; then
echo "$iDIR/volume-mute.png"
elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then
echo "$iDIR/volume-low.png"
elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then
echo "$iDIR/volume-mid.png"
elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then
echo "$iDIR/volume-high.png"
fi
}
# Notify
notify_user() {
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_icon)" "Volume : $(get_volume) %"
}
# Increase Volume
inc_volume() {
pamixer -i 5 && notify_user
}
# Decrease Volume
dec_volume() {
pamixer -d 5 && notify_user
}
# Toggle Mute
toggle_mute() {
if [ "$(pamixer --get-mute)" == "false" ]; then
pamixer -m && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/volume-mute.png" "Volume Switched OFF"
elif [ "$(pamixer --get-mute)" == "true" ]; then
pamixer -u && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_icon)" "Volume Switched ON"
fi
}
# Toggle Mic
toggle_mic() {
if [ "$(pamixer --default-source --get-mute)" == "false" ]; then
pamixer --default-source -m && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/microphone-mute.png" "Microphone Switched OFF"
elif [ "$(pamixer --default-source --get-mute)" == "true" ]; then
pamixer -u --default-source u && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/microphone.png" "Microphone Switched ON"
fi
}
# Get icons
get_mic_icon() {
current=$(pamixer --default-source --get-volume)
if [[ "$current" -eq "0" ]]; then
echo "$iDIR/microphone.png"
elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then
echo "$iDIR/microphone.png"
elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then
echo "$iDIR/microphone.png"
elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then
echo "$iDIR/microphone.png"
fi
}
# Notify
notify_mic_user() {
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_mic_icon)" "Mic-Level : $(pamixer --default-source --get-volume) %"
}
# Increase MIC Volume
inc_mic_volume() {
pamixer --default-source -i 5 && notify_mic_user
}
# Decrease MIC Volume
dec_mic_volume() {
pamixer --default-source -d 5 && notify_mic_user
}
# Execute accordingly
if [[ "$1" == "--get" ]]; then
get_volume
elif [[ "$1" == "--inc" ]]; then
inc_volume
elif [[ "$1" == "--dec" ]]; then
dec_volume
elif [[ "$1" == "--toggle" ]]; then
toggle_mute
elif [[ "$1" == "--toggle-mic" ]]; then
toggle_mic
elif [[ "$1" == "--get-icon" ]]; then
get_icon
elif [[ "$1" == "--get-mic-icon" ]]; then
get_mic_icon
elif [[ "$1" == "--mic-inc" ]]; then
inc_mic_volume
elif [[ "$1" == "--mic-dec" ]]; then
dec_mic_volume
else
get_volume
fi
屏幕背光通知
腳本代碼(請按右側按鈕展開閱讀)
~/.config/hypr/scripts/backlight
#!/usr/bin/env bash
iDIR="$HOME/.config/mako/icons"
# Get brightness
get_backlight() {
LIGHT="$(cat /sys/class/leds/*::kbd_backlight/brightness)"
echo "${LIGHT}"
}
# Get icons
get_icon() {
current="$(cat /sys/class/leds/*::kbd_backlight/brightness)"
if [[ ("$current" -ge "0") && ("$current" -le "1") ]]; then
icon="$iDIR/brightness-20.png"
elif [[ ("$current" -ge "1") && ("$current" -le "2") ]]; then
icon="$iDIR/brightness-60.png"
elif [[ ("$current" -ge "2") && ("$current" -le "3") ]]; then
icon="$iDIR/brightness-100.png"
fi
}
# Notify
notify_user() {
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$icon" "Keyboard Brightness : $(brightnessctl -d '*::kbd_backlight' g)"
}
# Increase brightness
inc_backlight() {
brightnessctl -d *::kbd_backlight set 33%+ && get_icon && notify_user
}
# Decrease brightness
dec_backlight() {
brightnessctl -d *::kbd_backlight set 33%- && get_icon && notify_user
}
# Zero brightness
zero_backlight() {
brightnessctl -d *::kbd_backlight s 0%
}
# Full brightness
full_backlight() {
brightnessctl -d *::kbd_backlight s 100%
}
# Execute accordingly
if [[ "$1" == "--get" ]]; then
brightnessctl -d '*::kbd_backlight' g
elif [[ "$1" == "--inc" ]]; then
inc_backlight
elif [[ "$1" == "--dec" ]]; then
dec_backlight
elif [[ "$1" == "--zero" ]]; then
zero_backlight
elif [[ "$1" == "--full" ]]; then
full_backlight
else
get_backlight
fi
鍵盤(Keyboard)語言通知
腳本代碼(請按右側按鈕展開閱讀)
~/.config/hypr/scripts/lang
#!/usr/bin/env bash
icon="$HOME/.config/mako/icons/language.png"
# Get language
get_lang() {
lang=$(hyprctl devices -j | gojq -r '.keyboards[] | select(.name == "at-translated-set-2-keyboard") | .active_keymap' | cut -c 1-2 | tr 'A-Z' 'a-z')
case $lang in
en)
lang="English language"
;;
ru)
lang="Русский язык"
;;
uk)
lang="Українська мова"
;;
esac
echo $lang
}
# Notify
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$icon" "$(get_lang)"