Нажатие экрана печати или нажатие на скриншоте приведет к захвату обоих экранов. Что, если я хочу только, чтобы был снят дисплей активного монитора, возможно ли это? Или я должен использовать затвор или что-то еще?
То есть не места на одном экране, а система с двумя мониторами на двух экранах.
Только стрелять в текущий экран не поведение по умолчанию, и при этом это не опция в gnome-screenshot
, ни любое другое приложение снимка экрана насколько я знаю.
Как практически что-либо однако, это может быть задано сценарием.
Сценарий далее ниже желания:
автоматически обрежьте изображение к разделу экрана, Вы в настоящее время включены (полученный от положения мыши) и создаете названное кадрированное изображение:
cropped_<image>.png
Для предотвращения перезаписи более ранние снимки экрана эти кадрированные изображения пронумерованы как их oroginals.
снимок экрана
если я нахожусь на левом экране:
если я нахожусь на правильном экране:
#!/usr/bin/env python3
import os
from PIL import Image
import subprocess
# ---set the name of your (automatically numbered) screenshots (no extension)
imagename = "screenshot"
# ---set the path to where you (want to) save your screenshots
savepath = "/home/jacob/Bureaublad"
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8")
n = 1
while True:
name = imagename+"_"+str(n)+".png"
path = os.path.join(savepath, name)
if os.path.exists(path):
n += 1
else:
break
# make the shot
subprocess.call(["gnome-screenshot", "-f", path])
# get the width of the left screen
screenborder = [int(n) for n in [s for s in get("xrandr").split()\
if "+0+0" in s][0].split("+")[0].split("x")]
# read the screenshot
im = Image.open(path)
width, height = im.size
# get the mouse position
mousepos = int(get(["xdotool", "getmouselocation"]).split()[0].split(":")[1])
top = 0
bottom = height
if mousepos <= screenborder[0]:
left = 0
right = screenborder[0]
else:
left = screenborder[0]
right = width
# create the image
im.crop((left, top, right, bottom)).save(os.path.join(savepath, "cropped_"+name))
Потребности сценария xdotool
, получить положение мыши:
sudo apt-get install xdotool
Кроме того, не уверенный, если python3-pil
установлен по умолчанию:
sudo apt-get install python3-pil
crop_screenshot.py
В главном разделе сценария определенного желаемое имя снимка экрана и каталога, Вы используете для своих снимков экрана:
# ---set the name of your (automatically numbered) screenshots (no extension)
imagename = "screenshot"
# ---set the path to where you (want to) save your screenshots
savepath = "/home/jacob/Bureaublad"
Тестовый прогон сценарий от терминала:
python3 /path/to/crop_screenshot.py
Результат:
Если все хорошо работает, добавьте его к ярлыку. Выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:
python3 /path/to/crop_screenshot.py
Сценарий, как это, просто разделяет изображение на ширине Вашего левого экрана. Это достаточно, потому что Ваши экраны имеют то же y-разрешение и выровнены.
Сценарий может однако очень хорошо быть отредактирован для работы с любым экранным расположением с любым количеством экранов, пока экраны расположены в неперекрывающемся расположении. Математика немного более сложна в этом случае как бы то ни было.
Если кому-либо будет интересно, то я добавлю его позже.
Противостояние изящному сценарию выше, на ubuntu 16.04 I нашло что alt-print-screen, как desribed в: Print Screen получает два Пробелов не, каждый работает. На самом деле это просто печатает текущее окно. Если цель состоит в том, чтобы получить фон, я не думаю, что она будет работать.