Постановка задачи
Я использую scrot
для создания снимков экрана, и это работает отлично, за исключением случаев, когда у меня несколько мониторов или дисплеев. В этом случае scrot
объединяет снимки экрана с разных мониторов в один вывод.
На странице руководства scrot
поддерживает параметр -m
:
-m, --multidisp
For multiple heads, grab shot from each and join them together.
Поэтому я предположил, что поведение по умолчанию будет заключаться в том, чтобы НЕ объединять их вместе. Тем не менее, это не так. Даже без опции -m
я получаю соединенные скриншоты.
Я оптимистично настроен, что scrot
сможет это сделать, так как он поддерживает опцию -u
:
-u, --focused
Use the currently focused window.
который отлично работает.
Я также проверил другой инструмент CLI под названием maim
, но снова не смог понять, как делать снимки экрана разных мониторов по отдельности.
Итак, решение, которое я исключаю, должно работать примерно так:
screenshot_command <display_name> # and other options
сделать скриншот только дисплея <display_name>
.
Мои попытки решения на данный момент
maim
поддерживает любопытный вариант -x
:
-x, --xdisplay=hostname:number.screen_number
Sets the xdisplay to use.
Итак, я попробовал maim -x 0.0 | xclip -selection clipboard -t image/png
, но это не сработало. Я не знаю, как эта опция предназначена для использования, поскольку документации недостаточно.
И scrot
, и maim
также поддерживают опцию -s
:
-s, --select
Interactively select a window or rectangle with the mouse.
Итак, я представляю себе очень уродливое/хакерское решение, использующее xdotool
(или подобное) для выбора нужного дисплея, а использование с параметром -s
to maim
или scrot
может выполнить эту работу. Но я бы предпочел не идти по этому пути, если нет другого прямого решения.
Дикое предположение
Интересно, может ли эта проблема быть из-за того, как я добавляю новые мониторы? Обычно я добавляю свой второй дисплей с помощью примерно такой команды:
xrandr --output eDP-1 --auto --output HDMI-1-4 --auto --right-of eDP-1
Поэтому мне интересно, может быть для scrot
или maim
есть только один дисплей. И я так думаю, потому что вывод xdpyinfo | grep -A4 '^screen'
с ОДНИМ монитором выглядит так:
$ xdpyinfo | grep -A4 '^screen'
screen #0:
dimensions: 1920x1080 pixels (506x285 millimeters)
resolution: 96x96 dots per inch
depths (7): 24, 1, 4, 8, 15, 16, 32
root window id: 0x1ba
а с двумя мониторами выглядит так:
$ xdpyinfo | grep -A4 '^screen'
screen #0:
dimensions: 3280x1080 pixels (865x285 millimeters)
resolution: 96x96 dots per inch
depths (7): 24, 1, 4, 8, 15, 16, 32
root window id: 0x1ba
Если это действительно причина моих проблем, то как мне добавить второй монитор?
convert
, как описано здесь: askubuntu.com/a/647272/386622 - person Arkadiusz Drabczyk   schedule 26.09.2019