Можно ли настроить xfce4-screenshotter для сохранения скриншота без появления интерфейса?

Вопрос или проблема

Мне довольно нравится xfce4-screenshooter, но даже когда я назначаю его на клавишу prntscrn и указываю, куда сохранять, например, xfce4-screenshooter --fullscreen --save ~/Pictures/Screenshots/, графический интерфейс все равно появляется и просит меня ввести имя файла. Есть ли способ заставить его не спрашивать?

Существуют аналогичные вопросы, например, этот, но они, похоже, не специфичны для xfce4-screenshooter.

Чтобы сделать снимок экрана и сохранить его без отображения графического интерфейса, xfce4-screenshot необходимо указать полный путь, по которому должен быть сохранен снимок экрана, включая имя файла, под которым он должен быть сохранен, а также папку, в которой он должен быть сохранен.

Вы можете указать это, сгенерировав имя файла на основе текущей даты с помощью команды:

xfce4-screenshooter --fullscreen --save ~/Pictures/Screenshots/"Screenshot $(date -d "today" +"%Y-%m-%d %H:%M").png"

Это должно автоматически сделать снимок экрана и сохранить его, например, как Screenshot 2021-12-01 00:00.png в ~/Pictures/Screenshots.

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

С опцией --save графический интерфейс не должен запускаться.

Чтобы управлять именем сохраненного файла, вы можете добавить две настройки в файл конфигурации xfce4-screenshooter, ~/.config/xfce4/xfce4-screenshooter, которые позволят вам изменить имя файла по умолчанию:

title=<YOUR_TITLE_HERE>
timestamp=<TRUE_OR_FALSE>

Параметр title изменит первую часть имени файла (по умолчанию “Screenshot”), а timestamp включит или выключит добавление временной метки после имени файла.

Если вы отключите временную метку, программа достаточно умная, чтобы добавлять -1, -2, -3 и т.д. в конце имени файла, если файл с таким именем уже существует.

Использование --save <filename>, к сожалению, не работает для меня, потому что моя версия xfce4-screenshooter слишком старая (версия 1.8.2). Согласно журналу изменений xfce4-screenshooter, опция --save была расширена для того, чтобы разрешить файлы в версии 1.9.4. В более ранних версиях разрешены только директории.

К счастью, я нашел тривиальное решение. Вместо выходного файла или папки вы можете указать выходное приложение с помощью --open <app>. Использование --open cat избегает графического интерфейса и отправляет данные PNG на stdout, которые вы можете перенаправить в файл или другую программу по мере необходимости:

xfce4-screenshooter --fullscreen --open cat > output_image.png
xfce4-screenshooter --fullscreen --open cat | your_program_here

Надеюсь, другие люди найдут это полезным.

Ответ или решение

Да, программа xfce4-screenshooter может быть настроена для сохранения скриншотов без появления графического интерфейса. Это можно сделать с помощью нескольких параметров и командных строк. Давайте рассмотрим различные подходы к этой задаче.

1. Использование параметра --save

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

xfce4-screenshooter --fullscreen --save ~/Pictures/Screenshots/"Screenshot $(date +'%Y-%m-%d %H:%M').png"

Эта команда автоматически создаст имя файла, основанное на текущей дате и времени, что позволит вам избежать конфликтов с ранее сохранёнными файлами. Убедитесь, что папка ~/Pictures/Screenshots/ существует, иначе команда выдаст ошибку.

2. Создание оболочки для назначения горячей клавиши

Если вы хотите, чтобы данная команда вызывалась при нажатии на, например, клавишу Print Scr, вам потребуется создать небольшой скрипт. Для этого выполните следующие шаги:

  1. Создайте файл, например, screenshot.sh:

    nano ~/screenshot.sh
  2. Вставьте в него команду для захвата скриншота:

    #!/bin/bash
    xfce4-screenshooter --fullscreen --save ~/Pictures/Screenshots/"Screenshot $(date +'%Y-%m-%d %H:%M').png"
  3. Сделайте файл исполняемым:

    chmod +x ~/screenshot.sh
  4. Настройте горячую клавишу в настройках XFCE, указав путь к созданному скрипту.

3. Параметры конфигурации

Вы также можете изменить настройки по умолчанию в конфигурационном файле xfce4-screenshooter, который находится по адресу ~/.config/xfce4/xfce4-screenshooter. В этом файле вы можете указать параметры, которые повлияют на имя файлов, например:

title=Ваш_Заголовок
timestamp=TRUE_ИЛИ_FALSE

Параметр title изменит первую часть имени файла, а timestamp определит, будет ли добавляться метка времени в конце имени.

4. Для старых версий xfce4-screenshooter

Если ваша версия xfce4-screenshooter слишком старая (например, 1.8.2), вам может не подойти использование параметра --save. В таком случае вы можете использовать параметр --open, который позволяет запускать приложение для обработки изображения. Например:

xfce4-screenshooter --fullscreen --open cat > output_image.png

Эта команда захватит изображение и перенаправит его вывод в файл output_image.png, избегая появления графического интерфейса.

Заключение

Подводя итоги, xfce4-screenshooter действительно может быть настроен для сохранения скриншотов без открытия графического интерфейса, если использовать правильные параметры и подходы. Будь то через указание полного пути к файлу, создание оболочки для горячих клавиш или изменение конфигурационных файлов — вы можете легко настроить процесс под свои нужды.

Оцените материал
Добавить комментарий

Капча загружается...