diff options
Diffstat (limited to 'waybar-dwl.sh')
| -rwxr-xr-x | waybar-dwl.sh | 176 | 
1 files changed, 0 insertions, 176 deletions
| diff --git a/waybar-dwl.sh b/waybar-dwl.sh deleted file mode 100755 index 0d0312d..0000000 --- a/waybar-dwl.sh +++ /dev/null @@ -1,176 +0,0 @@ -#!/usr/bin/env bash -# -# wayar-dwl.sh - display dwl tags, layout, and active title -#   Based heavily upon this script by user "novakane" (Hugo Machet) used to do the same for yambar -#   https://codeberg.org/novakane/yambar/src/branch/master/examples/scripts/dwl-tags.sh -# -# USAGE: waybar-dwl.sh MONITOR COMPONENT -#        "COMPONENT" is an integer representing a dwl tag OR "layout" OR "title" -# -# REQUIREMENTS: -#  - inotifywait ( 'inotify-tools' on arch ) -#  - Launch dwl with `dwl > ~.cache/dwltags` or change $fname -# -# Now the fun part -# -### Example ~/.config/waybar/config -# -# { -#   "modules-left": ["custom/dwl_tag#0", "custom/dwl_tag#1", "custom/dwl_tag#2", "custom/dwl_tag#3", "custom/dwl_tag#4", "custom/dwl_tag#5", "custom/dwl_layout", "custom/dwl_title"], -#   // The empty '' argument used in the following "exec": fields works for single-monitor setups -#   // For multi-monitor setups, see https://github.com/Alexays/Waybar/wiki/Configuration -#   //     and enter the monitor id (like "eDP-1") as the first argument to waybar-dwl.sh -#   "custom/dwl_tag#0": { -#     "exec": "/path/to/waybar-dwl.sh '' 0", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_tag#1": { -#     "exec": "/path/to/waybar-dwl.sh '' 1", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_tag#2": { -#     "exec": "/path/to/waybar-dwl.sh '' 2", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_tag#3": { -#     "exec": "/path/to/waybar-dwl.sh '' 3", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_tag#4": { -#     "exec": "/path/to/waybar-dwl.sh '' 4", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_tag#5": { -#     "exec": "/path/to/waybar-dwl.sh '' 5", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_tag#6": { -#     "exec": "/path/to/waybar-dwl.sh '' 6", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_tag#7": { -#     "exec": "/path/to/waybar-dwl.sh '' 7", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_tag#8": { -#     "exec": "/path/to/waybar-dwl.sh '' 8", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_tag#9": { -#     "exec": "/path/to/waybar-dwl.sh '' 9", -#     "format": "{}", -#     "return-type": "json" -#   }, -#   "custom/dwl_layout": { -#     "exec": "/path/to/waybar-dwl.sh '' layout", -#     "format": "{}", -#     "escape": true, -#     "return-type": "json" -#   }, -#   "custom/dwl_title": { -#     "exec": "/path/to/waybar-dwl.sh '' title", -#     "format": "{}", -#     "escape": true, -#     "return-type": "json" -#   } -# } -# -### Example ~/.config/waybar/style.css -# #custom-dwl_layout { -#     color: #EC5800 -# } -# -# #custom-dwl_title { -#     color: #017AFF -# } -# -# #custom-dwl_tag { -#     color: #875F00 -# } -# -# #custom-dwl_tag.selected { -#     color: #017AFF -# } -# -# #custom-dwl_tag.urgent { -#     background-color: #FF0000 -# } -# -# #custom-dwl_tag.active { -#     border-top: 1px solid #EC5800 -# } - -# Variables -declare output title layout activetags selectedtags -declare -a tags name -readonly fname="$HOME"/.cache/dwltags - -tags=( "1" "2" "3" "4" "5" "6" "7" "8" "9" ) -name=( "1" "2" "3" "4" "5" "6" "7" "8" "9" ) # Array of labels for tags - -monitor="${1}" -component="${2}" - -_cycle() { -	case "${component}" in -	[012345678]) -	    this_tag="${component}" -	    unset this_status -	    mask=$((1<<this_tag)) - -	    if (( "${activetags}"   & mask )) 2>/dev/null; then this_status+='"active",'  ; fi -	    if (( "${selectedtags}" & mask )) 2>/dev/null; then this_status+='"selected",'; fi -	    if (( "${urgenttags}"   & mask )) 2>/dev/null; then this_status+='"urgent",'  ; fi - -	    if [[ "${this_status}" ]]; then -		printf -- '{"text":" %s ","class":[%s]}\n' "${name[this_tag]}" "${this_status}" -	    else -		printf -- '{"text":" %s "}\n' "${name[this_tag]}" -	    fi -	    ;; -	layout) -	    printf -- '{"text":"  %s  "}\n' "${layout}" -	    ;; -	title) -	    printf -- '{"text":"%s"}\n' "${title}" -	    ;; -	*) -	    printf -- '{"text":"INVALID INPUT"}\n' -	    ;; -    esac -} - -while [[ -n "$(pgrep waybar)" ]] ; do - -    [[ ! -f "${fname}" ]] && printf -- '%s\n' \ -				    "You need to redirect dwl stdout to ~/.cache/dwltags" >&2 - -    # Get info from the file -    output="$(grep  "${monitor}" "${fname}" | tail -n6)" -    title="$(echo   "${output}" | grep '^[[:graph:]]* title'  | cut -d ' ' -f 3-  | sed s/\"/“/g )" # Replace quotes - prevent waybar crash -    layout="$(echo  "${output}" | grep '^[[:graph:]]* layout' | cut -d ' ' -f 3- )" -    #selmon="$(echo "${output}" | grep 'selmon')" - -    # Get the tag bit mask as a decimal -    activetags="$(echo "${output}"   | grep '^[[:graph:]]* tags' | awk '{print $3}')" -    selectedtags="$(echo "${output}" | grep '^[[:graph:]]* tags' | awk '{print $4}')" -    urgenttags="$(echo "${output}"   | grep '^[[:graph:]]* tags' | awk '{print $6}')" - -    _cycle - -    # 60-second timeout keeps this from becoming a zombified process when waybar is no longer running -    inotifywait -t 60 -qq --event modify "${fname}" - -done - -unset -v activetags layout name output selectedtags tags title - | 
