From a9fd57c6e89d2431120a72c30b6ff11856e203bc Mon Sep 17 00:00:00 2001 From: Jamie Macdonald Date: Tue, 19 May 2020 04:30:03 -0700 Subject: [PATCH] Dirty hack to make keepassxc work. --- tdrop | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tdrop b/tdrop index 8189a17..9530aee 100755 --- a/tdrop +++ b/tdrop @@ -568,6 +568,7 @@ create_win_return_wid() { # also for when one of the programs above hadn't already been started pid=$! fi + echo spawned program $program with pid $pid >&2 visible_wid=false counter=0 while : ; do @@ -584,15 +585,25 @@ create_win_return_wid() { wids=$(xdotool search --classname qutebrowser) elif [[ $program =~ ^emacsclient ]]; then wids=$(xdotool search --classname emacs) + elif [[ $program == keepassxc ]]; then + # let both windows spawn + sleep 2 + wids=$(xdotool search --pid "$pid") else wids=$(xdotool search --pid "$pid") fi if [[ -n $wids ]]; then + echo found some wids: >&2 + echo $wids >&2 while read -r wid; do if [[ ! $blacklist =~ (^|$'\n')$wid($|$'\n') ]] && \ [[ $(get_visibility "$wid") == IsViewable ]]; then + echo $wid is visible >&2 visible_wid=true - program_wid=$wid + # use first visible wid + [[ -z $program_wid ]] && program_wid=$wid + else + echo $wid is invisible >&2 fi done <<< "$wids" fi @@ -613,6 +624,7 @@ create_win_return_wid() { program_wid=$maybe_program_wid fi fi + echo deciding on wid: "$program_wid" >&2 echo -n "$program_wid" }