From: Antonio Ospite Date: Mon, 19 Jun 2017 14:28:59 +0000 (+0200) Subject: dump_selections.sh: print more details about the owner X-Git-Url: https://git.ao2.it/experiments/x-selection-debug.git/commitdiff_plain/HEAD?ds=sidebyside;hp=7ec9bb1dbf27b7cad6165e7d9c7fc5831986631a dump_selections.sh: print more details about the owner Always print the ID, and optionally the window name if there is one. Also if the window has no name try to get the parent id and name. --- diff --git a/dump_selections.sh b/dump_selections.sh index 9954a46..fcfd219 100755 --- a/dump_selections.sh +++ b/dump_selections.sh @@ -4,18 +4,31 @@ get_owner() { echo -n "$1" - OWNER=$(./xowner $1) - if [ $OWNER != "0x0" ]; + OWNER_ID=$(./xowner $1) + if [ $OWNER_ID != "0x0" ]; then - xwininfo -id $OWNER > /dev/null 2>&1; + OWNER="$OWNER_ID" + xwininfo -id $OWNER_ID > /dev/null 2>&1; if [ $? -eq 0 ]; then - OWNER_NAME=$(xprop -id $OWNER | grep "^WM_NAME" | cut -d ' ' -f 3-) - if [ -z "$OWNER_NAME" ]; + OWNER_NAME=$(xprop -id $OWNER_ID | grep "^WM_NAME" | cut -d ' ' -f 3-) + if [ -n "$OWNER_NAME" ]; then - OWNER_NAME="$OWNER" + OWNER="$OWNER $OWNER_NAME" + else + PARENT_ID=$(xwininfo -children -id $OWNER_ID | sed -n -e '/Parent window id:/s/.*window id: \([^ ]*\) .*$/\1/p') + if [ -n "$PARENT_ID" ]; + then + OWNER="$OWNER children of $PARENT_ID" + + PARENT_NAME=$(xprop -id $PARENT_ID | grep "^WM_NAME" | cut -d ' ' -f 3-) + if [ -n "$PARENT_NAME" ]; + then + OWNER="$OWNER $PARENT_NAME" + fi + fi fi - echo -n " owned by $OWNER_NAME" + echo -n " owned by $OWNER" fi fi