Делание снимков экрана всех (или конкретный) виртуальные рабочие столы/рабочие области (или: окна, beyond/larger, чем текущий рабочий стол)?

Я часто должен делать снимки экрана окон, которые больше, чем в настоящее время показываемый рабочий стол. Я нахожусь на Ubuntu 11.04, gnome-about говорит Версия: 2.32.1; compiz --version заявляет Compiz 0.9.4.0 - и у меня есть четыре виртуальных рабочих стола/рабочих области, которые расположены как таковые:


Вышеупомянутые изображения были получены путем перемещения в каждую отдельную рабочую область и делания снимка экрана через клавишу Print Screen - то есть gnome-screenshot. (Я знаю, что существуют лучшие способы получить firefox выстрелы, как "дополнение" Средства сохранения Страницы - вышеупомянутое взято просто в качестве примера универсального окна увеличенного размера).

Править: Я, по-видимому, использую неправильную номенклатуру здесь (найденный с помощью Xorg - Получают текущий Виртуальный рабочий стол - число/имя/тег/идентификатор? - Unix и Linux) - это складывается в вышеупомянутом примере, у меня все еще есть только одна рабочая область; то, что изменяется, вместо этого, является областью просмотра - это что wmctrl -d шоу на каждом из "виртуальных рабочих столов":

$ wmctrl -d
0  * DG: 2048x1200  VP: 0,0  WA: 0,1 1024x598  Workspace 1
$ wmctrl -d
0  * DG: 2048x1200  VP: 0,600  WA: 0,1 1024x598  Workspace 1
$ wmctrl -d
0  * DG: 2048x1200  VP: 1024,0  WA: 0,1 1024x598  Workspace 1
$ wmctrl -d
0  * DG: 2048x1200  VP: 1024,600  WA: 0,1 1024x598  Workspace 1

таким образом для переключения между "виртуальными рабочими столами" из командной строки я должен на самом деле изменить "область просмотра", как в: wmctrl -o 1024,0

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

  • Большее, чем рабочий стол окно перемещено так, оно занимает место на нескольких виртуальных рабочих столах (как изображения выше шоу)
  • Большее, чем рабочий стол окно перемещено за пределами общего размера всех виртуальных рабочих столов (с точки зрения верхнего левого рабочего стола в составе выше, предположите перемещать окно приложения к верхнему левому, и за пределами настольной области - в противоположность ему перемещаемый нижний правый как показано выше),

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

Я попробовал следующие инструменты до сих пор:

  • gnome-screenshot
  • xwd
  • scrot
  • import (ImageMagick)

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

Я также попробовал shutter (0.87.2 Версия 1071), и в то время как я нашел информацию что от версии 0.86.4 вперед, "можно получить все виртуальные рабочие столы теперь. Затвор пройдет всех их, сделает снимок всех и составит их в один большой снимок экрана" - я действительно давал нажатию попытки "Capture all Workspaces" - но это только делает снимок текущей рабочей области/рабочего стола; получения окна аналогично сокращаются в пределах текущего рабочего стола (или сбой с "Ошибкой при делании снимка экрана: Возможно, указатель мыши не мог быть захвачен, или выбранная область недопустима". если окно полностью находится в виртуальном рабочем столе кроме текущего).

Затем я считал, что существует плагин снимка экрана для compiz - и с тех пор здесь compiz управляет виртуальными рабочими столами, я думал, что это могло обработать общую площадь - но нет никаких настроек там (в менеджере по настройкам CompizConfig), но: "Позвольте плагину", выходному каталогу и кнопке включить и установить горячие клавиши для "Начатого прямоугольного снимка экрана" - и так как по-видимому только вещью, которую можно сделать, является перетаскивание с мышью для определения прямоугольной области, я сомневаюсь, что плагин помог бы получению общей площади сразу.

Таким образом я хотел бы попросить некоторые предложения об инструментах, которые могут:

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

Я предпочел бы что-то, что имеет дело с этим материалом в памяти - я сам мог придумать что-то худшее: такой как a bash сценарий, который отправляет нажатия клавиш для изменения рабочих столов (или только через wmctrl), и делает отдельные снимки экрана там - но это было бы болью для использования, тем более, что я буду визуально подвергнут "настольному переключению", в то время как снимок экрана является получениями... Если не какие-либо полные программы, предложения для C/Perl/Python API, которые могут получить доступ к растровым данным по всем/любым виртуальным рабочим столам, были бы большими также.

4
задан 13 April 2017 в 15:37

2 ответа

На своей рабочей станции FreeBSD я создал сценарий bash для захвата нескольких виртуальных рабочих пространств, а затем пропустил результаты через ImageMagic 'montage', чтобы сшить их. Вот скрипт bash:

#!/usr/local/bin/bash
dnum=$(xdotool get_num_desktops)
desk=0
while [[ "$desk" -lt "$dnum" ]];
     do
          xdotool set_desktop $desk;
          sleep 2;
          maim --format png /dev/stdout > ~/capture/desktop$desk.png;
          desk=$((desk+1));
     done

Вот команда, которую я запускаю в каталоге ~ / capture /, чтобы соединить их вместе:

montage  desktop*.png  -tile 10x1 -geometry 1920x2160+1+1 workspaces.png

Очевидно, что можно изменить -tile и -геометрия для собственной системы. ;)

Для этого решения необходимо установить bash, maim (или эквивалентный), xdotool и ImageMagick. НТН

0
ответ дан 13 April 2017 в 15:37

Хорошо, найденный этим для X-окон:

Форумы FVWM • Тема представления - Thumbnailing Окно на другой Области просмотра

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

Так, я предполагаю, что средство, что я хочу, невозможно? Хотя существует два обходных решения:

  • использовать xrandr увеличить виртуальный размер (каждый из четырех) области просмотра

Это - то, что работы для меня - сначала запрашивают для наблюдения, которые производят Вас, хотите, затем выполняйтесь:

$ xrandr -q
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 4096 x 4096
LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x600       60.0*+
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 disconnected (normal left inverted right x axis y axis)

$ xrandr --output LVDS1 --panning 1600x768

... см. также X/Config/Resolution - Ubuntu Wiki

  • Использовать xvfb для виртуального рендеринга

Получил это через x11 - Удаленный внеэкранный рендеринг - Отказ сервера, также посмотрите Xvfb - Википедия, свободная энциклопедия для примеров. Это - то, что работало на меня - каждая команда входит в собственный терминал (поскольку некоторые из них предназначены, чтобы быть сервисами),

# start xvfb as display 1 - note the "screen 0" there refers to "its own" screen 0; should set it to 24-bit color

Xvfb :1 -screen 0 1600x1200x24 -pixdepths 3 -fp /usr/share/fonts/X11/Type1

# start metacity on display 1 (would start gdm, but [Bug #598848: gdm no longer works with xvfb](https://bugs.launchpad.net/bugs/598848)
# needed to we have title bars, and possibility to move windows around 

DISPLAY=:1 metacity

# start application (here web-browser arora) again on display 1

DISPLAY=:1 arora

# start vnc server, which will bridge display 1 to port 5900
# note - this command exists, however starts a server in background 

x11vnc -display :1 -bg -nopw -listen localhost -xkb

# start vnc viewer on port 5900 - so we can see display 1:
# note also - when vncviewer exits, it also will kill the x11vnc server

vncviewer -FullColor=1 localhost:5900

Проблема здесь состоит в том, что не все части ОС инициализируются - таким образом, нет никакого художественного оформления окна, и только основное X шрифтов; хотя, приложения могут найти свои собственные шрифты, как замечено ниже:

vnc-xvfb.png

xvfb взгляды почти идеал мне - так как я мог в основном настроить "невидимую" среду, столь большую, как я хочу, и делают снимки экрана непосредственно от него (использование xwd). Проблема состоит в том, что я не могу иметь окна на "своем" ДИСПЛЕЕ =:0, затем переключить его на 'виртуальный' ДИСПЛЕЙ =:1 для screenshotting, затем возвратить его для ОТОБРАЖЕНИЯ =:0. Затем нужно настроить приложение специально для xvfb; и раз так происходит, Вам нужно больше размера - затем, целая цепочка выше должна быть перезапущена.

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

Само собой разумеется, я все еще любил бы слышать о возможном решении для командной строки, которое могло сделать этот вид screenshotting сразу :)

3
ответ дан 13 April 2017 в 15:37

Другие вопросы по тегам:

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