Снимок экрана не активное окно

Возможно, 'меньше-F file_to_read' является опцией: это выходит меньше, если окно достаточно отобразить весь файл и ожидать на пейджере, если это не имеет место

7
04.04.2014, 02:44
5 ответов
for i in `xprop -root|grep "_NET_CLIENT_LIST_STACKING(WINDOW): window id" |tr '#' ','|tr ',' '\n'| grep 0x`;do xwininfo -id $i|grep "Window id" ;done

Используя вышеупомянутое я смог получить идентификатор окон. и использование

xwininfo
способный найти маркировку или имя или заголовок окна.
1
27.01.2020, 20:17
  • 1
    import -window <window_ID> screenshot.png –  spendyala 22.05.2013, 19:36
  • 2
    Это - последний шаг, который автоматизирует процесс. Это - интересное для меня. –  spendyala 07.06.2013, 16:25

Под чем Вы подразумеваете "не активный"? "Не имея фокус" или "скрытый некоторым другим окном"? В первом случае калека сделает это без любых проблем (Файл-> Создают-> Снимок экрана). Во втором случае это более трудно (если это возможно вообще).

2
27.01.2020, 20:17
  • 1
    Да, не активные средства, не имеющие фокус. Мы можем сделать снимок экрана сфокусированного. Мы можем сделать окно, которое не фокусируется, чтобы быть сфокусированным с помощью командной строки. Раз так, как может быть, делают это. –  spendyala 21.05.2013, 19:21
  • 2
    я хочу сделать в командной строке, автоматизировать процесс. –  spendyala 21.05.2013, 19:23
  • 3
    я просто проверил это import (от комплекта ImageMagick), имеет a -window id опция. Если Вы знаете идентификатор окна, который должен работать, даже на командной строке. Можно получить использование идентификатора окна xwininfo, но для этого необходимо будет использовать мышь, по крайней мере, однажды. –  Uwe 21.05.2013, 19:24
  • 4
    Могу я извлекать для фиксированной высоты и ширины с помощью импорта наряду с идентификатором окна. Я также проверяю это. –  spendyala 21.05.2013, 20:08

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

Используя следующее (уже данный) команда :

import -window <windowid> image.png

или

xwd -id <windowid> | convert xwd:- image.png

( - из convert для использования стандартного входа от канала, xwd: говорит формату входа), что каждый, кажется, может под Просвещением (e17, протестирован с Fedora 19) для получения снимка экрана :

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

Я согласовал с Openbox (та же конфигурация) и KDE (со старым Научным Linux 4.8 и последней версией ImageMagick (да, невероятно это скомпилировало …)), и в обоих случаях снимки экрана показывают только, что сверх слоев дисплея — то есть, только что уже видимо на экране.

Дело в том, что import управляйте проверками на map_state поле, возвращенное XGetWindowAttributes быть IsViewable, и если не это возвращает ошибку. Можно проверить map_state например, использование :

xwininfo -id <windowid> | grep 'Map State'

Это, кажется, всегда IsViewable под e17, в то время как это IsUnMapped под openbox и KDE, как только окно минимизировано или что бы то ни было.

Не уверенный, хотя, почему снимок экрана является всегда чистым с e17, в то время как он смешан с другими окнами, когда окно частично восстанавливается с другим WMs, но очевидно это также имеет отношение к способу, которым WM обрабатывает дисплей.

Так или иначе ясно это - вопрос WM. Было бы хорошо иметь список WMs, который в состоянии по сравнению с неспособным сделать снимки экрана скрытых окон — я не делаю его.

6
27.01.2020, 20:17
  • 1
    Интересный знать: Вы получаете идентификатор окна, если Вы делаете xwininfo | grep -i 'window id' и нажмите на рассматриваемое окно. –  erik 03.06.2016, 21:01
  • 2
    не работает, если окно полностью невидимо (в другой рабочей области, не активной) –  AnonymousLurker 29.04.2018, 11:06

Хотя этот ответ может быть нежелательным в некоторых ситуациях, этот скрипт будет поднимать каждое окно на текущем рабочем столе по одному, чтобы их можно было сделать скриншотами с помощью вашего инструмента скриншотов в ближайшее время.

#!/bin/bash
# raiseAll - Mark Belanger - raise all windows

# get the ID of the current desktop
thisDT=`wmctrl -d |grep ' \* ' | awk '{print $1}'`

echo Raising windows for desktop $thisDT
for window in `wmctrl -l |grep " $thisDT " | awk '{print $1}'`
do
  echo Raising $window - put your screenshot command here
  wmctrl -i -a $window
  sleep 1
done
0
27.01.2020, 20:17

Решение для kde

Системные настройки ->Дисплей и мониторы ->Compositor ->Всегда сохранять эскизы окон

0
15.11.2020, 20:52

Теги

Похожие вопросы