Signed-off-by: Stacy Harper <contact@stacyharper.net>master
parent
00e495374d
commit
35b312c0b8
2 changed files with 50 additions and 1 deletions
@ -0,0 +1,49 @@ |
|||||||
|
#!/bin/sh |
||||||
|
# |
||||||
|
# Initial author: Adrien Le Guillou |
||||||
|
# License: MIT |
||||||
|
# |
||||||
|
# include common definitions |
||||||
|
# shellcheck source=scripts/core/sxmo_common.sh |
||||||
|
. "$(dirname "$0")/sxmo_common.sh" |
||||||
|
|
||||||
|
set -e # error if a command as non 0 exit |
||||||
|
set -u # error if undefined variable |
||||||
|
|
||||||
|
|
||||||
|
# Default parameters |
||||||
|
FORMAT="W:%W | %A - %T" |
||||||
|
DMENU="sxmo_dmenu.sh" |
||||||
|
|
||||||
|
# FORMAT as a `jq` concatenation string |
||||||
|
FORMAT="$FORMAT (%I)" |
||||||
|
FORMAT=$(echo "$FORMAT" | \ |
||||||
|
sed 's/%O/" + .output + "/ |
||||||
|
s/%W/" + .workspace + "/ |
||||||
|
s/%A/" + .app_id + "/ |
||||||
|
s/%T/" + .name + "/ |
||||||
|
s/%I/" + .id + "/ |
||||||
|
s/"/\"/ |
||||||
|
s/\(.*\)/\"\1\"/') |
||||||
|
|
||||||
|
# Get the container ID from the node tree |
||||||
|
CON_ID=$(swaymsg -t get_tree | \ |
||||||
|
jq -r ".nodes[] |
||||||
|
| {output: .name, content: .nodes[]} |
||||||
|
| {output: .output, workspace: .content.name, |
||||||
|
apps: .content |
||||||
|
| .. |
||||||
|
| {id: .id?|tostring, name: .name?, app_id: .app_id?, shell: .shell?} |
||||||
|
| select(.app_id != null or .shell != null)} |
||||||
|
| {output: .output, workspace: .workspace, |
||||||
|
id: .apps.id, app_id: .apps.app_id, name: .apps.name } |
||||||
|
| $FORMAT |
||||||
|
| tostring" | \ |
||||||
|
$DMENU -i -p "Window Switcher") |
||||||
|
|
||||||
|
# Requires the actual `id` to be at the end and between paretheses |
||||||
|
CON_ID=${CON_ID##*(} |
||||||
|
CON_ID=${CON_ID%)} |
||||||
|
|
||||||
|
# Focus on the chosen window |
||||||
|
swaymsg "[con_id=$CON_ID]" focus |
Loading…
Reference in new issue