shelix/libs/dispatch_all_hx
2024-02-26 00:37:44 +01:00

39 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# ╔-----------------------------------------------------------------------╗
# ║ ║
# ║ This file is part of the Shelix IDE. ║
# ║ Copyright (C) 2024 NVRM webdev23 https://github.com/webdev23 ║
# ║ ║
# ║ This program is free software: you can redistribute it and/or modify ║
# ║ it under the terms of the GNU General Public License as published by ║
# ║ the Free Software Foundation, either version 3 of the License, or ║
# ║ (at your option) any later version. ║
# ║ ║
# ║ This program is distributed in the hope that it will be useful, ║
# ║ but WITHOUT ANY WARRANTY; without even the implied warranty of ║
# ║ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ║
# ║ GNU General Public License for more details. ║
# ║ ║
# ║ You should have received a copy of the GNU General Public License ║
# ║ along with this program. If not, see <http://www.gnu.org/licenses/>. ║
# ╚-----------------------------------------------------------------------╝
# Pass a command to STDIN to dispatch to all hx instances in the window
# ":theme "
# kill pane with flag --exit
STDIN=$(cat -)
running=($(tmux list-panes -F '#{pane_current_command}'))
for index in "${!running[@]}"; do
if [ "${running[$index]}" = "hx" ]; then
tmux send-keys -t ":.$index" Escape
# On the lower limit, text might get introduced in the buffer ...
sleep 0.08 # 80ms Depends the machine env, can be reduced or even deleted
tmux send-keys -t ":.$index" "$STDIN" ENTER
fi
done