full refactoring re mothership to endos
This commit is contained in:
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define the lengths for each column
|
||||
ws_length=2
|
||||
app_id_length=14
|
||||
name_length=50
|
||||
|
||||
# Fetch the data from swaymsg and format it
|
||||
formatted_output=$(swaymsg -t get_tree | jq -r --arg ws_length "$ws_length" --arg app_id_length "$app_id_length" --arg name_length "$name_length" '
|
||||
def lpad($len; $char):
|
||||
if (.|length) > $len then $char * ($len - (.|length)) +.[:$len-1] + "\u2026" else $char * ($len - (.|length)) +. end;
|
||||
def rpad($len; $char):
|
||||
if (.|length) > $len then.[:$len-1] + "\u2026" else. + $char * ($len - (.|length)) end;
|
||||
..
|
||||
| objects
|
||||
| select(.type == "workspace") as $ws
|
||||
|..
|
||||
| objects
|
||||
| select(has("app_id"))
|
||||
| (if.focused then "*" else " " end) as $asterisk
|
||||
| "\($asterisk)[\($ws.name | lpad($ws_length | tonumber; " "))]\((.app_id // "xwayland") | lpad($app_id_length | tonumber; " ")): \(.name | rpad($name_length | tonumber; " ")) (\(.id))"
|
||||
')
|
||||
|
||||
# Launch fuzzel with the formatted output
|
||||
row=$(echo "$formatted_output" | fuzzel --dmenu --width=80 --lines=12)
|
||||
|
||||
# Get the container ID from the selection and focus the container
|
||||
if [ -n "$row" ]; then
|
||||
winid="${row##*(}"
|
||||
winid="${winid%%)*}"
|
||||
swaymsg "[con_id=$winid] focus"
|
||||
fi
|
||||
Reference in New Issue
Block a user