Як я можу змінити ім'я за замовчуванням для скріншотів, зроблених екраном gnome?


34

Gnome-скріншот 3.1.2 використовує назви файлів, як цей

Знімок екрана в 2011-07-31 12: 13: 04.png

що робить його досить легко побачити, коли це було зроблено.

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

Зважаючи на те, що я беру більшість своїх скріншотів, щоб я могла надсилати їх користувачам Windows, це спричинило деякі проблеми.

Чи є спосіб змінити ім'я за замовчуванням, яке використовується інструментом скріншоту для заміни ":" на ". або ","?

Відповіді:


12

Насправді це неможливо легко змінити, можливо, ви можете допомогти з цим звітом про помилку .

(для допитливих перевіряйте вихідний код . Наразі відповідний рядок - 134 )

Оновлення : помилка була виправлена ​​вгору за течією 28.01.2015 , замінивши колонки на тире, що допомагає. Але місця вони не забрали, на жаль.


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 прокинуться трохи швидше до таких важливих проблем, про які повідомляли користувачі ;-)
Саді

3
Хто вважав, що це гарна ідея жорсткого коду імен скріншотів у C, що вимагає перекомпіляції всього середовища робочого столу? Хіба ніхто ніколи не думав, що користувач може захотіти змінити назву за замовчуванням? Тепер, коли існує dconf-editorі таке, і gnome-screenshotвін його використовує, чому б не створити stcon для запису dconf для "політики іменування скріншотів", яку ви могли б встановити Screenshot-%02d.png, а якщо порожній, то перейдіть разом із жорсткою кодовою політикою іменування? Eh ....
sdaau

10

Існує простий і брудний спосіб перейменувати всі знімки екрана, зроблені відразу після створення, але вам потрібно буде встановити 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.


3
+1 Це акуратний маленький трюк, але ваш регекс повинен бути 's /\:/\./ g'
Марк Е. Хааз

інший варіант заміни: використовуйте символ unicode
LiuYan 刘 研

Зауважте, що скріншоти зберігаються за замовчуванням у ~/Pictures, ні ~/Desktop.
MestreLion

9

Замість того, щоб встановлювати додаткове програмне забезпечення та писати цей код у інструменті скріншоту, ось рішення, яке потрібно перейменувати після цього.

Все, що вам потрібно зробити - це перейти до каталогу та виконати наступну команду

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

Це замінить усі колонки тире в усіх іменах файлів, що закінчуються .pngна тих, що присутні в поточному каталозі.


Менш оптимальний, але набагато простіший спосіб вирішення, ніж запропоновано fain182 . +1
gertvdijk

6

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 або :wqVim).

  5. Зробіть новостворений сценарій виконуваним:

    chmod a+x /usr/bin/gnome-screenshot

4

Затвор - це ще одна програма для зйомки скріншотів, яка дозволяє налаштувати ім'я файлу: встановити його можна з програмного забезпечення Ubuntu Software Center.


1
Затвор дивовижний сам по собі, і це не так, це найкращий підхід: замість того, щоб виправляти погані назви файлів, не створюйте їх!
MestreLion

Наприклад, ім'я файлу в Затвор може мати наступний груповий символ: $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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.