summaryrefslogtreecommitdiff
path: root/ar/.local/bin/dmenuvirt
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-06-26 16:16:21 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-06-26 16:16:21 +0900
commit047e44ec5204efd07d90d57d459544cb88cc3e8d (patch)
treea76410bb52269cfb9c7dfaba9e4e1cd1d4b7159f /ar/.local/bin/dmenuvirt
parent7f067066e6f6b8412b1d3eb3b1cae49bd9d4f295 (diff)
deleted bin/refreshbrowser, created bin/dmenuvirt
Diffstat (limited to 'ar/.local/bin/dmenuvirt')
-rwxr-xr-xar/.local/bin/dmenuvirt28
1 files changed, 28 insertions, 0 deletions
diff --git a/ar/.local/bin/dmenuvirt b/ar/.local/bin/dmenuvirt
new file mode 100755
index 0000000..615c557
--- /dev/null
+++ b/ar/.local/bin/dmenuvirt
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# Select action
+CHOICE=$(printf "virt-manager\nstart\nshutdown" | dmenu -i -p "Choose an action:")
+[ -z "$CHOICE" ] && exit 1
+
+# Get list of VMs based on state
+case "$CHOICE" in
+virt-manager) setsid -f virt-manager && exit ;;
+start) VMLIST=$(virsh --connect qemu:///system list --all | awk '/shut off/ {print $2}') ;;
+shutdown) VMLIST=$(virsh --connect qemu:///system list --all | awk '/running/ {print $2}') ;;
+*) exit 1 ;;
+esac
+
+# Select a VM from the list
+VM=$(printf "%s\n" "$VMLIST" | dmenu -i -p "$CHOICE which VM?")
+[ -z "$VM" ] && exit 1
+
+# Perform the action
+case "$CHOICE" in
+start)
+ virsh --connect qemu:///system start "$VM" &&
+ setsid -f virt-viewer --connect qemu:///system "$VM" >/dev/null 2>&1
+ ;;
+shutdown)
+ virsh --connect qemu:///system shutdown "$VM"
+ ;;
+esac