summaryrefslogtreecommitdiff
path: root/mac/.local/bin/gracefulkill
diff options
context:
space:
mode:
Diffstat (limited to 'mac/.local/bin/gracefulkill')
-rwxr-xr-xmac/.local/bin/gracefulkill25
1 files changed, 25 insertions, 0 deletions
diff --git a/mac/.local/bin/gracefulkill b/mac/.local/bin/gracefulkill
new file mode 100755
index 0000000..918ab79
--- /dev/null
+++ b/mac/.local/bin/gracefulkill
@@ -0,0 +1,25 @@
+#!/bin/bash
+set -euo pipefail
+
+changedVimFocused() {
+ title=$(getFocusedTitle)
+ [[ $title == *VIM\ \+\" ]]
+}
+
+getFocusedConId() {
+ i3-msg -t get_tree | jq 'recurse | objects | select(.type=="con" and .focused==true) | .id'
+}
+
+getFocusedTitle() {
+ id=$(getFocusedConId)
+ i3-msg -t get_tree | jq "recurse | objects | select(.id == $id) | .name"
+}
+
+killFocusedContainer() {
+ id=$(getFocusedConId)
+ i3-msg "[con_id=\"$id\"]" kill
+}
+
+if ! changedVimFocused; then
+ killFocusedContainer
+fi