Скриншот конкретной Windows?

#linux #bash #image

#linux #bash #изображение

Вопрос:

есть ли способ сделать скриншот определенного окна в bash, чтобы, если оно не сфокусировано, оно все равно делало скриншот?

 sleep 10
while true;
    do 
        scrot ~/Screenshots/"$(date  "%d-%m-%Y_%H:%M:%S").png" 
        play ~/.custom-stuff/pew.mp3 vol 0.2 > /dev/null 2>amp;1
        echo Shot time: $(date  "%d-%m-%Y_%H:%M:%S")
        sleep 30
done
  

я хочу создать замедленное видео для конкретной программы (игры): 3

может быть, использовать идентификатор окна импорта вместо scrot? но я все еще не понимаю, как это работает…

Комментарии:

1. Как вы хотите выбрать окно, вручную, нажав на него или по названию?

2. я думаю, что любой из них действителен. я просто хочу установить окно, чтобы программа скриншота оставалась в нем

Ответ №1:

Я не уверен на 100%, будет ли это работать в каждом DE, но в моем, похоже, работает.

Что я сделал, так это запустил следующую строку в терминале:

 import -window $(xdotool getwindowfocus) -pause 5 asd.png amp; for i in {1..6}; do echo $i; sleep 1; done
  

Затем переключился на другое окно и подождал 10 секунд, и я смог увидеть изображение:
введите описание изображения здесь

Конечно, вы можете сначала получить идентификатор окна, выполнив xdotool в нужном окне, а затем соответствующим образом адаптировать команду bash.

Комментарии:

1. да, но ваш scipt может делать скриншоты только с терминала. для меня это больше похоже на: для i в {1 ..6}; выполнить echo $ i; перейти в режим ожидания 1; готово; импортировать окно $ (xdotool getwindowfocus) в формате asdf.png сначала подождите, затем прочитайте идентификатор окна и сделайте снимок экрана. в любом случае xdotool — это все, что мне было нужно. я отредактировал свои скрипты в соответствии со своими потребностями, и это работает. tnx