Вопрос или проблема
При создании снимка экрана в Ubuntu 22.04 с помощью клавиши PrtSc изображение всегда сохраняется в каталоге ~/Pictures/Screenshots/
. Однако я почти всегда вставляю это изображение в другое приложение и не хочу, чтобы оно сохранялось как файл. Кроме засорения этого каталога ненужными файлами, я не хочу, чтобы некоторая конфиденциальная информация со снимков экрана попадала в файловую систему.
Обратите внимание, что я говорю о новой “встроенной” функции создания снимков экрана GNOME 42.x, которая активируется с помощью клавиши PrtSc, а не о старом приложении Screenshot (gnome-screenshot
).
Есть ли какая-либо скрытая опция, чтобы отключить или хотя бы изменить каталог назначения? Если нет, мне придется переключиться на старые приложения, такие как gnome-screenshot
или flameshot
.
Кажется, что это работает для меня, если я создаю символическую ссылку на каталог снимков экрана на /dev/null
:
mv ~/Pictures/Screenshots ~/Pictures/Screenshots.old
ln -s /dev/null ~/Pictures/Screenshots
Если я это делаю, уведомление о том, что снимок экрана доступен в буфере обмена, больше не появляется. Однако сам снимок экрана остается в буфере обмена.
Вы можете назначить печать экрана (или любую комбинацию клавиш) на эту утилиту, называемую xfce4-screenshooter – вы можете использовать ее, даже если не используете рабочий стол xfce. По умолчанию она спросит, что нужно захватить (весь экран, активное окно, выбрать область и т.д.), и по умолчанию спросит, что делать со снимком экрана (сохранить на диск, скопировать в буфер обмена и т.д.), но вы можете добавить переключатели в команду, которая выполняется при нажатии клавиши PrintScreen. Например, “xfce4-screenshooter -c -f” сделает снимок всего экрана и скопирует его в буфер обмена.
В репозиториях mint пакет называется xfce4-screenshooter, я подозреваю, что он будет аналогичным во всех вариантах ubuntu.
В качестве альтернативы xfce4-screenshooter я мог бы рекомендовать Flameshot. У него много “наворотов”, и для меня самым полезным является возможность точно настроить область, которую я хочу скопировать.
Flameshot и xfce4 не работали для меня, поэтому после некоторого поиска вот что я нашел. Из обсуждения в gnome вот простой код, который позволит копировать снимки экрана в буфер обмена без сохранения.
При создании пользовательской горячей клавиши в настройках добавьте следующий код в раздел Command
:
bash -c "gnome-screenshot -af ~/Pictures/Screenshots/_custom_screenshot && xclip ~/Pictures/Screenshots/_custom_screenshot -selection clipboard -target image/png; rm ~/Pictures/Screenshots/_custom_screenshot"
Убедитесь, что у вас установлены gnome-screenshot
и xclip
.
Вот идеальное решение для этого:
https://forum.zorin.com/t/take-area-screenshot-without-saving-in-disk-in-gnome-screenshot/43996/11?u=sh_fahim
по сути, добавьте эту команду как свою пользовательскую горячую клавишу, и вы в деле:
bash -c 'gnome-screenshot -af "$XDG_RUNTIME_DIR"/_custom_screenshot && xclip "$XDG_RUNTIME_DIR"/_custom_screenshot -selection clipboard -target image/png; rm "$XDG_RUNTIME_DIR"/_custom_screenshot'
Еще одно решение, если вы тоже не хотите иметь каталог Pictures
, это установить XDG_PICTURES_DIR="/tmp"
или XDG_PICTURES_DIR="/dev/null"
в ~/.config/user-dirs.dirs
, так как каталог Screenshots
создается внутри Pictures
.
.
Ответ или решение
В контексте использования Ubuntu 22.04 и нового встроенного функционала GNOME 42.x для снятия скриншотов, часто возникает необходимость копирования изображения в буфер обмена без его сохранения на диск. Наличие "лишних" файлов может не только заполнять дисковое пространство, но и вызывать риски безопасности, особенно если скриншоты содержат конфиденциальную информацию. Рассмотрим, как можно решить эту задачу более эффективно.
-
Использование символической ссылки на /dev/null:
Один из простых способов заключается в создании символической ссылки (symlink) для директории скриншотов, направляющей файлы в/dev/null
. Команда для этого будет следующей:mv ~/Pictures/Screenshots ~/Pictures/Screenshots.old ln -s /dev/null ~/Pictures/Screenshots
Однако, в результате уведомления о новом скриншоте в буфере обмена могут исчезнуть, хотя сам скриншот останется скопированным.
-
Настройка клавиатурных сокращений с использованием
gnome-screenshot
иxclip
:
Создание пользовательской команды для снятия скриншота и копирования его в буфер обмена без сохранения на диск с помощьюgnome-screenshot
иxclip
обеспечит нужную функциональность:bash -c 'gnome-screenshot -af "$XDG_RUNTIME_DIR"/_custom_screenshot && xclip "$XDG_RUNTIME_DIR"/_custom_screenshot -selection clipboard -target image/png; rm "$XDG_RUNTIME_DIR"/_custom_screenshot'
Для этого убедитесь, что у вас установлены пакеты
gnome-screenshot
иxclip
. -
Переназначение директории XDG_PICTURES_DIR:
Если вы не хотите, чтобы директорияPictures
вообще существовала или содержала скриншоты, можно изменить переменнуюXDG_PICTURES_DIR
в файле~/.config/user-dirs.dirs
:XDG_PICTURES_DIR="/tmp"
или
XDG_PICTURES_DIR="/dev/null"
Это обеспечит создание директории
Screenshots
в альтернативном месте, уводя ненужные файлы в системные директории, такие как временные папки.
Каждый из предложенных методов решает конкретные аспекты поставленной задачи: управление местом хранения, обеспечение конфиденциальности данных или удобство интеграции в рабочие процессы. Выбор будет зависеть от предпочтений и требований вашего рабочего окружения.
Эта информация поможет лучше интегрировать возможности снятия скриншотов с учетной записью Ubuntu на базе GNOME 42.x, улучшая управление данными и обеспечивая безопасность при работе с конфиденциальной информацией.