summaryrefslogtreecommitdiff
path: root/waybar-dwl.sh
diff options
context:
space:
mode:
Diffstat (limited to 'waybar-dwl.sh')
-rwxr-xr-xwaybar-dwl.sh176
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
-