Вопрос или проблема
Мне довольно нравится 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
, вам потребуется создать небольшой скрипт. Для этого выполните следующие шаги:
-
Создайте файл, например,
screenshot.sh
:nano ~/screenshot.sh
-
Вставьте в него команду для захвата скриншота:
#!/bin/bash xfce4-screenshooter --fullscreen --save ~/Pictures/Screenshots/"Screenshot $(date +'%Y-%m-%d %H:%M').png"
-
Сделайте файл исполняемым:
chmod +x ~/screenshot.sh
-
Настройте горячую клавишу в настройках 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
действительно может быть настроен для сохранения скриншотов без открытия графического интерфейса, если использовать правильные параметры и подходы. Будь то через указание полного пути к файлу, создание оболочки для горячих клавиш или изменение конфигурационных файлов — вы можете легко настроить процесс под свои нужды.