Как я могу изменить имя по умолчанию для скриншотов, сделанных gnome-screenshot?
Gnome-screenshot 3.1.2 использует такие имена, как этот
Снимок экрана: 2011-07-31 12:13:04.png
сделать его довольно легко увидеть, когда он был взят.
Проблема в том, что он использует символ двоеточия (:), что делает невозможным доступ к такому изображению из Windows.
Учитывая, что я делаю большинство своих скриншотов, чтобы отправить их пользователям Windows, это вызвало некоторые проблемы.
Есть ли способ изменить имя по умолчанию, которое используется инструментом "Снимок экрана" для замены ":" на "." или же ","?
7 ответов
На самом деле невозможно легко изменить его, может быть, вы можете помочь с этим сообщением об ошибке.
(для любопытных проверьте исходный код. В настоящее время соответствующая строка - 134)
Обновление: ошибка была исправлена в апстриме 2015-01-28, заменяя двоеточия тире, что помогает. Но они не заняли место, к сожалению.
gnome-screenshot
не позволяет устанавливать глобальные значения по умолчанию для имен файлов снимков экрана, но вы можете использовать -f
возможность указать имя файла в командной строке.
Мы можем использовать это, чтобы написать небольшой скрипт bash, который заменит оригинал gnome-screenshot
двоичный файл и выполнит оригинал с правильным параметром имени файла.
Обратите внимание, что для следующих операций у вас должны быть права суперпользователя, поэтому перед каждой командой ставьте префикс sudo
или откройте корневую оболочку с sudo -i
,
Переместить оригинал
gnome-screenshot
бинарный из пути:dpkg-divert --add --rename --divert /usr/bin/gnome-screenshot.real /usr/bin/gnome-screenshot
открыто
/usr/bin/gnome-screenshot
в редакторе (вы должны увидеть новый пустой файл):editor /usr/bin/gnome-screenshot
Вставьте следующие две строки в редактор:
#!/bin/bash gnome-screenshot.real -f "$HOME/Pictures/Screenshots/$(date +%F_%H-%M-%S).png" $@
Вы можете вставить любой понравившийся вам путь после
-f
; просто заключите его в кавычки и сохраните$@
после этого.
В этом примере скриншоты будут храниться с такими именами файлов, как/home/yourusername/Pictures/Screenshots/2011-07-31_12-13-04.png
, Увидетьman date
для получения подробной информации оdate +%…
синтаксис.Сохраните файл и закройте редактор (например, используя Ctrl + X в Nano или
:wq
в Vim).Сделайте только что созданный скрипт исполняемым:
chmod a+x /usr/bin/gnome-screenshot
Существует простой и грязный способ переименовать весь скриншот, сделанный сразу после создания, но вам нужно будет установить inotify-tools (apt-get install inotify-tools
), а затем вы можете запустить эту команду:
while true; do inotifywait -e CREATE ~/Pictures && rename 's/\:/\./g' Pictures/Screenshot*.png; done;
Пока эта команда будет выполняться, каждый раз, когда вы сохраняете новый снимок экрана в Pictures/, скрипт переименовывает каждый файл, содержащий :
, подставляя :
с .
(Может быть, вы хотите изменить каталог, я не знаю, какой каталог использует Gnome 3) Если вам это действительно нравится, вы можете запускать эту команду в скрипте каждый раз, когда запускается gnome.
Вместо того, чтобы устанавливать дополнительное программное обеспечение и писать этот код в инструменте для создания скриншотов, вот обходной путь, чтобы впоследствии переименовать файлы.
Все, что вам нужно сделать, это перейти в каталог и выполнить следующую команду
rename 's/\:/\-/g' *.png
Это заменит все двоеточия тире во всех именах файлов, заканчивающихся на .png
из присутствующих в текущем каталоге.
Shutter - это еще одно приложение для создания снимков экрана, которое позволяет настроить имя файла: вы можете установить его из Ubuntu Software Center.
Если:
- вы знакомы с инструментами бинарного редактирования, такими как
bless
(см. пакет Ubuntu, например, или GitHub), - и вы знаете модификаторы формата строки C,
- и вы знаете разницу между
0x0
а также"0"
, - и вы не возражаете возиться с бинарными файлами, установленными выбранным вами дистрибутивом Linux,
Затем вы можете изменить имя файла, который используется gnome-screenshot
,
При бинарном редактировании gnome-screenshot
, вы найдете две строки формата:
%Y-%m-%d %H-%M-%S
сопровождаемый нулевым байтом,- а также
Screenshot from %s.%s
сопровождаемый нулевым байтом.
Во второй строке формата первый %s
дата, вторая %s
это расширение файла.
Отсюда вы можете, например, перезаписать %Y-%m-%d %H-%M-%S
с %F-%H%M%S
сопровождаемый нулевым байтом и Screenshot from %s.%s
от shot %s.%s
сопровождаемый нулевым байтом: скриншоты будут тогда названы "shot 2018-05-05_174857.png"
например.
Адаптируйтесь к вашим предпочтениям.
Есть два ограничения:
- новый формат даты и новый формат имени файла не должны быть длиннее оригинальных,
- Ваши настройки будут уничтожены, если вы установите новую версию
gnome-screenshot
Например, при обновлении вашей системы.
Предупреждения:
- Протестировано на Ubuntu 16.04 LTS, ваш пробег может отличаться.
- Это хак, а не чистый способ изменить имя по умолчанию, сгенерированное
gnome-screenshot
: сделайте резервную копию, прежде чем продолжить. - Размещено без каких-либо гарантий.
Вот мой. Я расширил ответ n.st.
Создайте сценарий оболочки для вызова
gnome-screenshot
Сохраните это в файл:
/usr/bin/area_screenshot
Возможно, вам придется использовать
sudo
. Так что используйте
vi
создать его.
sudo vi /usr/bin/area_screenshot
Скопируйте в него приведенный ниже код.
#!/bin/bash
screenshot_dir="$HOME/Documents/screenshot"
current_year_dir="$screenshot_dir/$(date +%Y)"
current_month_dir="$current_year_dir/$(date +%Y_%m)"
fileout="$current_month_dir/$(date +%Y_%m%d_%H%M%S).png"
# Step 1: Check for screenshot directory
[ -d "$screenshot_dir" ] || mkdir "$screenshot_dir"
# Step 2: Check year and month directory
[ -d "$current_year_dir" ] || mkdir "$current_year_dir"
[ -d "$current_month_dir" ] || mkdir "$current_month_dir"
# Step 3: Take area screenshot, and save to the current month
[ -d "$current_month_dir" ] && /usr/bin/gnome-screenshot -a -f "$fileout" $@
Затем отметьте файл как исполняемый.
chmod ugo+x /usr/bin/area_screenshot
Затем в сочетаниях клавиш установите
area_screenshot
к
Printscreen
кнопка. Вам нужно будет создать для этого собственный ярлык (может быть, кто-то еще может связать пример для этого).
Что это значит?
Будет создан снимок экрана на
HOME/Documents/YEAR/YEAR_MONTH/filex.png
.
куда
filex.png
находится в формате
YYYY_MMDD_HHMMSS.png
. Так, например,
2019_1220_121314.png
.
Чем это полезно? Я считаю, что этот метод очень полезен для создания снимков экрана с комментариями и статьями. Со временем я много снимаю, поэтому очень удобно автоматически распределять их по подпапкам. Затем с годами они продолжают накапливаться, и
year
вложенная папка сохраняет ее хорошо организованной. Я обычно помещаю текущий месяц в избранное (в Windows) и вручную обновляю его каждый месяц, так как обычно мне нужно смотреть только на текущий месяц.
Было бы здорово, если бы Ubuntu, Fedora и т. Д. Сделали что-то подобное стандартом для Linux. Пожалуйста, возьмите мой пример кода и сделайте его таким! Это поможет всем, если их скриншоты будут хорошо организованы.
Чтобы расширить этот ответ, относящийся к Debian, это относится к Ubuntu 20.04 "Focal Fossa":
Я установил собственное сочетание клавиш:
gnome-screenshot [--flags] --file=file:///home/User/Pictures/Screenshots/$(date +%F_%H-%M-%S).jpg
(Если вы копируете это, замените
User
с вашим собственным именем пользователя.)
--flags
может быть любой из вариантов. Вы можете узнать больше о
gnome-screenshot
из этого руководства.
Я установил, чтобы ярлык запускался с помощью PRINT SCR кнопки, и теперь он работает как шарм.
В Debian 8.6 KDE → Системные настройки → Пользовательские ярлыки я установил Триггер → PrtScn и Действие →
gnome-screenshot -p -f "$(date +%F_%H-%M-%S)_D.png"
и работает нормально.