У меня есть скрипт bash, который загружает скриншоты в imgur. Я хочу, чтобы mplayer сделал скриншот, а затем загрузил его с помощью скрипта bash, и все это одним нажатием клавиши. Есть ли способ поставить в очередь снимок экрана и затем запустить скрипт?
2 ответа
Насколько я знаю, это не возможно именно так, как вы думаете. Вы можете сделать снимок экрана в mplayer/mplayer2 с помощью ярлыка s
, но затем будет сложно заставить игрока сигнализировать сценарий bash для загрузки снятого изображения. Тем не менее, кажется, что mpv , форк mplayer и MPlayer2, может сделать это намного проще, позволяя пользователю связывать несколько команд (включая внешние).
Есть несколько способов обойти это:
Запустите bash-скрипт в фоновом режиме, который просматривает конкретный каталог (вам нужно, чтобы ваш игрок поместил свои скриншоты в этот каталог - по умолчанию
$PWD
экземпляра плеера), который обнаружит вновь добавленные изображения и вызовет скрипт загрузки на их.Не пытайтесь сделать так, чтобы ваш плеер справился с такой задачей, вместо этого свяжите ключ для вашего оконного менеджера или рабочего стола. Привязанная клавиша вызовет внешний инструмент (например, scrot), а затем вызовет скрипт загрузки для получающегося изображения.
Переключитесь на mpv и переопределите команду
s
вinput.conf
чтобы сделать снимок экрана, а затем вызовите скрипт загрузки для него.
1
есть пара очевидных проблем. Во-первых, тратить кучу ресурсов на такой скрипт bash, который постоянно просматривает папку. И, во-вторых, будет довольно сложно (хотя и не невозможно) заставить скрипт bash распознавать уже загруженные изображения и не повторять задачу.
2
имеет несколько преимуществ. Во-первых, вы не пытаетесь создавать скрипты внутри своего медиаплеера (как правило, странная идея). Во-вторых, это гораздо более обобщенно - вы можете использовать одну и ту же функцию в любом месте вашей среды, а не только в плеере.
Преимущество 3
«s является то , что он остается простым и фактически выполняет именно то , что вы хотите. Минус в том, что вам нужно будет переключать медиаплееры.
Не зная, какой WM/DE вы используете, дать вам конкретный процесс, который вам необходимо выполнить, невозможно, но я настоятельно рекомендую использовать вариант 2
если вы не чувствуете себя нормально, пробуя mpv. Если вы хотите взглянуть на другой инструмент, mpv - замечательный форк.
Я нашел решение сам. По сути, это bash-скрипт, который эмулирует нажатие клавиш в окне mplayer
, а затем переходит к отправке снимка экрана в imgur. Все сценарии выполняются вне mplayer
, так что вы можете просто использовать DE/WM/xbindkeys, чтобы связать его с любой клавишей. Вот:
#!/bin/bash
# press s to take a screenshot; vf=screenshot must be added to ~/.mplayer/confing
xdotool search --class mplayer2 key s
# So there's enough time for a screenshot to be written to a file.
sleep 0.3
cd /proc/`pidof mplayer`/cwd
imgur shot*.png
rm shot*.png
Я использую этот скрипт в качестве команды imgur
. mplayer
уже должен быть запущен, чтобы это работало.