Как я могу изменить имя по умолчанию для скриншотов, сделанных gnome-screenshot?

34

Gnome-screenshot 3.1.2 использует такие имена, как этот

Снимок экрана: 2011-07-31 12: 13: 04.png

сделать его довольно легко увидеть, когда он был взят.

Проблема в том, что он использует символ двоеточия (:), что делает невозможным доступ к такому изображению из Windows.

Учитывая, что я делаю большинство своих скриншотов, чтобы отправить их пользователям Windows, это вызвало некоторые проблемы.

Есть ли способ изменить имя по умолчанию, которое используется инструментом «Снимок экрана» для замены «:» на «.» или "," ?

Chriskin
источник

Ответы:

12

Это на самом деле невозможно изменить легко, может быть, вы можете помочь с этим сообщением ошибке .

(для любопытных, проверьте исходный код . В настоящее время соответствующая строка 134 )

Обновление : ошибка была исправлена ​​в апстриме 2015-01-28 , заменяя двоеточия тире, что помогает. Но они не заняли место, к сожалению.

fain182
источник
3
+1 за ссылку на исходный код. Теперь это путь Linux. (Хотя код имени файла на самом деле здесь, сейчас: git.gnome.org/browse/gnome-utils/tree/gnome-screenshot/… )
Марк Э. Хаас
1
К сожалению, ссылка не работает: хранилища не найдены
gertvdijk
2
Новый URL: git.gnome.org/browse/gnome-screenshot/tree/src/… (получено в 2013-02-16 18:08 UTC + 0800)
LiuYan 研 研
Я хотел бы, чтобы мы могли настроить это локально до того, как старые добрые разработчики GNOME немного быстрее проснутся с такими важными проблемами, о которых сообщают пользователи ;-)
Sadi
3
Кто бы мог подумать, что стоит жестко закодировать имена скриншотов в C, требуя перекомпиляции всей среды рабочего стола? Неужели никто никогда не думал, что пользователь может захотеть изменить имя по умолчанию? Теперь, когда есть dconf-editorи такое, и gnome-screenshotиспользует его, почему бы не иметь строчку записи dconf для «политики имен скриншотов», которую вы могли бы задать Screenshot-%02d.png, и если она пуста, тогда придерживаться политики жестко закодированных имен? Эх ....
sdaau
10

Существует простой и грязный способ переименовать весь скриншот, сделанный сразу после создания, но вам нужно будет установить inotify-tools ( apt-get install inotify-tools), и тогда вы сможете запустить эту команду:

while true; do inotifywait -e CREATE ~/Pictures && rename 's/\:/\./g' Pictures/Screenshot*.png; done;

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

(Может быть, вы хотите изменить каталог, я не знаю, какой каталог использует Gnome 3) Если вам это действительно нравится, вы можете запускать эту команду в скрипте каждый раз, когда запускается gnome.

fain182
источник
3
+1 Это изящный маленький трюк, но ваше регулярное выражение должно быть 's /\:/\./ g'
Марк Э. Хаас
другой вариант замены: используйте символ Юникод
LiuYan 研 研
Обратите внимание, что скриншоты по умолчанию сохраняются в ~/Pictures, а не в ~/Desktop.
МестреЛион
9

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

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

rename 's/\:/\-/g' *.png

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

mrinterested
источник
Менее оптимальный, но гораздо более простой обходной путь, чем предложенный fain182 . +1
gertvdijk
6

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

Мы можем использовать это, чтобы написать небольшой скрипт bash, который заменит исходный gnome-screenshotдвоичный файл и выполнит оригинал с правильным параметром имени файла.

Обратите внимание, что у вас должны быть права суперпользователя для следующих операций, поэтому ставьте перед каждой командой префикс sudoили открывайте оболочку root 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
n.st
источник
4

Shutter - это еще одно приложение для создания снимков экрана, которое позволяет настроить имя файла: вы можете установить его из Ubuntu Software Center.

Марко Лацкович
источник
1
Затвор сам по себе удивителен, и это imho, это лучший подход: вместо того, чтобы исправлять плохие имена файлов, не создавайте их!
МестреЛион
Например, имя файла в Затвор может иметь следующий групповой символ: $nb_name_%Y-%m-%d-%H%M%S. Вы можете установить его в настройках.
Владимир Сергеевич
1

Если:

  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: сделайте резервную копию, прежде чем продолжить.
  • Размещено без каких-либо гарантий.
ЭКП
источник
0

В Debian 8.6 KDE → Системные настройки → Пользовательские ярлыки я установил Триггер → PrtScn и Действие →

gnome-screenshot -p -f "$(date +%F_%H-%M-%S)_D.png"

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

Флавио Р. Кавальканти
источник
Интересно, какая версия Debian была выпущена пять лет назад.
mook765