Files
dotfiles/.local/bin/firefox2mpv
T

53 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Version 2
# Last change: Mo 2026-06-15
# Git repo: https://git.fennek.xyz/fennek182/dotfiles
# Latest version: https://git.fennek.xyz/fennek182/dotfiles/src/branch/main/.local/bin/firefox2mpv
# Description: Open current firefox open page in mpv by using vimium extension and dotool package
# Functionality:
# this script initiates the vimium "y y" or "y f" keystroke
# to copy current tab or give highlight selection to clipboard
# in selection mode, it waits until the clipboard has changed or 5 secs have passed
# TODO: check if firefox is in focus
open_in_mpv() {
alacritty -e mpv "$1" > log.txt
}
case $1 in
--current)
#opens url from current tab
{ sleep 0.3; echo key z z; } | dotoolc
sleep 0.2
new_clipboard=$(wl-paste)
cmd_string="hyprctl 'dispatch hl.dsp.exec_cmd(\"mpv mpv "$(wl-paste)"\")'"
eval $cmd_string
;;
--select)
# TODO: this used to work but I'm haven't checked and used it for a while
# I'm lazy, you can try if you want :3
{ sleep 0.25; echo key z f; } | dotoolc
current_clipboard=""
new_clipboard=$(wl-paste)
wl-copy ""
i=0
# waits 4 secs max for clipboard change (0.2s *5 = 1 sec)
while [ $i -lt 20 ]
do
sleep 0.2
let "i+=1"
new_clipboard=$(wl-paste)
[[ $current_clipboard != $new_clipboard ]] && echo "clipboard neu! $new_clipboard" && break
done
[[ $current_clipboard == $new_clipboard ]] && notify-send "keine Änderung beim Clipboard festgestellt" && exit
open_in_mpv "$new_clipboard"
;;
esac