dotfiles/sway/mpv_keys.sh

33 lines
667 B
Bash
Raw Normal View History

2022-10-02 22:39:52 -06:00
#!/usr/bin/env bash
# Send a key into mpv. Parses the mpv input.conf to do so
# Sends to pipe named /tmp/mpvfifo unless otherwise specified
#
# Args:
# 1: Key to send
# 2: [Optional] fifo
shopt -s lastpipe
declare -r KEY="$1"
declare -r FIFO="${2:-/tmp/mpvfifo}"
declare CMD=""
awk -v k="$KEY " '
BEGIN { split(k, key, "") }
{
is_key = 1
split($0, a, "");
for (i = 1; i <= length(k); i++)
is_key = is_key && (a[i] == key[i]);
if (is_key) {
if (match($0, /#/))
print substr($0, length(k)+1, RSTART - length(k) - 1);
else
print substr($0, length(k)+1);
}
}' ~/.config/mpv/input.conf | read -r CMD
echo "$CMD" | socat "$FIFO" -