From 7b78dbd23631ffdaf390ffece590baf37f837ad0 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sun, 4 Aug 2024 10:58:00 -0300 Subject: Feat: spice: notification on Awesome VM when a Spice session is taking too long to open --- ChangeLog.md | 2 +- kvmx | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 668816c..68b066e 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -10,7 +10,7 @@ * Inotify action for watching a folder in the host and issuing commands in the guest upon change. - * Notification on Awesome VM when a Spice session is triggered. + * Notification on Awesome VM when a Spice session taking too long to open. ## 0.2.0 - 2024-07-02 diff --git a/kvmx b/kvmx index 3a7e59d..ab599f5 100755 --- a/kvmx +++ b/kvmx @@ -265,11 +265,6 @@ function kvmx_spice { exit 1 fi - # UX - if which awesome-client &> /dev/null; then - echo "naughty.notify({title = \"KVMX:\", text =\"Starting GUI session for $VM\", timeout = 2})" | awesome-client - fi - local spicestring if [ "$spice_client" == "spicy" ] && which spicy &> /dev/null; then @@ -307,14 +302,11 @@ function kvmx_spice { local spicewait="0" local windowid local windowpid + local notify="0" # Wait for the spice window to show up. This might take a while and we'll # wait only a few times - while (( $spicewait <= 5 )); do - # Wait a bit - sleep 2 - let spicewait++ - + while (( $spicewait <= 10 )); do windowid="`xdotool search --name "$spicestring" 2> /dev/null`" if [ ! -z "$windowid" ]; then @@ -328,6 +320,17 @@ function kvmx_spice { windowpid="" fi fi + + # It's waiting too long, notify the user + if which awesome-client &> /dev/null && [ "$notify" == "0" ]; then + notify="1" + + echo "naughty.notify({title = \"KVMX:\", text =\"Starting GUI session for $VM\", timeout = 2})" | awesome-client + fi + + # Wait a bit and try again + sleep 1 + let spicewait++ done # Set window position -- cgit v1.2.3