У меня есть скрипт bash, который загружает скриншоты в imgur. Я хочу, чтобы mplayer сделал скриншот, а затем загрузил его с помощью скрипта bash, и все это одним нажатием клавиши. Есть ли способ поставить в очередь снимок экрана и затем запустить скрипт?

2 ответа2

3

Насколько я знаю, это не возможно именно так, как вы думаете. Вы можете сделать снимок экрана в mplayer/mplayer2 с помощью ярлыка s , но затем будет сложно заставить игрока сигнализировать сценарий bash для загрузки снятого изображения. Тем не менее, кажется, что mpv , форк mplayer и MPlayer2, может сделать это намного проще, позволяя пользователю связывать несколько команд (включая внешние).

Есть несколько способов обойти это:

  1. Запустите bash-скрипт в фоновом режиме, который просматривает конкретный каталог (вам нужно, чтобы ваш игрок поместил свои скриншоты в этот каталог - по умолчанию $PWD экземпляра плеера), который обнаружит вновь добавленные изображения и вызовет скрипт загрузки на их.

  2. Не пытайтесь сделать так, чтобы ваш плеер справился с такой задачей, вместо этого свяжите ключ для вашего оконного менеджера или рабочего стола. Привязанная клавиша вызовет внешний инструмент (например, scrot), а затем вызовет скрипт загрузки для получающегося изображения.

  3. Переключитесь на mpv и переопределите команду s в input.conf чтобы сделать снимок экрана, а затем вызовите скрипт загрузки для него.

1 есть пара очевидных проблем. Во-первых, тратить кучу ресурсов на такой скрипт bash, который постоянно просматривает папку. И, во-вторых, будет довольно сложно (хотя и не невозможно) заставить скрипт bash распознавать уже загруженные изображения и не повторять задачу.

2 имеет несколько преимуществ. Во-первых, вы не пытаетесь создавать скрипты внутри своего медиаплеера (как правило, странная идея). Во-вторых, это гораздо более обобщенно - вы можете использовать одну и ту же функцию в любом месте вашей среды, а не только в плеере.

Преимущество 3 «s является то , что он остается простым и фактически выполняет именно то , что вы хотите. Минус в том, что вам нужно будет переключать медиаплееры.


Не зная, какой WM/DE вы используете, дать вам конкретный процесс, который вам необходимо выполнить, невозможно, но я настоятельно рекомендую использовать вариант 2 если вы не чувствуете себя нормально, пробуя mpv. Если вы хотите взглянуть на другой инструмент, mpv - замечательный форк.

0

Я нашел решение сам. По сути, это 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 уже должен быть запущен, чтобы это работало.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .