Как я могу изменить имя по умолчанию для скриншотов, сделанных 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,

  1. Переместить оригинал gnome-screenshot бинарный из пути:

    dpkg-divert --add --rename --divert /usr/bin/gnome-screenshot.real /usr/bin/gnome-screenshot
    
  2. открыто /usr/bin/gnome-screenshot в редакторе (вы должны увидеть новый пустой файл):

    editor /usr/bin/gnome-screenshot
    
  3. Вставьте следующие две строки в редактор:

    #!/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 +%… синтаксис.

  4. Сохраните файл и закройте редактор (например, используя Ctrl + X в Nano или :wq в Vim).

  5. Сделайте только что созданный скрипт исполняемым:

    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.

Если:

  1. вы знакомы с инструментами бинарного редактирования, такими как bless(см. пакет Ubuntu, например, или GitHub),
  2. и вы знаете модификаторы формата строки C,
  3. и вы знаете разницу между 0x0 а также "0",
  4. и вы не возражаете возиться с бинарными файлами, установленными выбранным вами дистрибутивом Linux,

Затем вы можете изменить имя файла, который используется gnome-screenshot,

При бинарном редактировании gnome-screenshot, вы найдете две строки формата:

  1. %Y-%m-%d %H-%M-%S сопровождаемый нулевым байтом,
  2. а также 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" например.

Адаптируйтесь к вашим предпочтениям.

Есть два ограничения:

  1. новый формат даты и новый формат имени файла не должны быть длиннее оригинальных,
  2. Ваши настройки будут уничтожены, если вы установите новую версию 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"

и работает нормально.

Другие вопросы по тегам