如何更改gnome-screenshot制作的屏幕截图的默认名称?


34

Gnome屏幕截图3.1.2使用像这样的文件名

2011年7月31日的屏幕截图12:13:04.png

使其很容易看到何时服用。

问题在于它使用冒号(:)字符-无法从Windows访问此类图像。

考虑到我拍摄了大部分屏幕截图,因此可以将其发送给Windows用户,这引起了一些问题。

有什么方法可以更改屏幕截图工具使用的默认名称,以将“:”替换为“。”。要么 ”,” ?

Answers:


12

实际上,不可能轻松地对其进行更改,也许您可​​以为该错误报告提供帮助。

(出于好奇,请检查源代码。当前,相关行是134

更新:该错误已于 2015 年1月28在上游修复,将破折号替换为破折号,这很有帮助。但是不幸的是,他们并没有把这个空间浪费掉。


3
+1用于链接到源代码。现在,这就是Linux方式。(尽管文件名代码实际上在这里,但是现在:git.gnome.org/browse/gnome-utils/tree/gnome-screenshot/…
Mark E. Haase

1
不幸的是,链接已死:未找到存储库
gertvdijk

2
新网址:git.gnome.org/browse/gnome-screenshot/tree/src/…(在2013-02-16 18:08 UTC + 0800检索)
LiuYan刘研

我希望我们能在好老的GNOME开发人员醒来之前更快地解决用户报告的此类重要问题;-)
Sadi 2014年

3
谁想到将C的屏幕快照名称硬编码,需要重新编译整个桌面环境是一个好主意?没有人曾经想到过用户可能想要更改默认命名吗?既然存在dconf-editorgnome-screenshot使用了它,为什么不设置一个dconf条目来表示“屏幕快照命名策略”,您可以将其设置为Screenshot-%02d.png,如果为空,则使用硬编码命名策略?

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这是一个整洁的小把戏,但你的正则表达式应该是的/\:/\./ G'
马克·E.·哈泽

替换的另一个选择:使用unicode字符
LiuYan刘研

请注意,屏幕截图默认情况下保存在~/Pictures,而不是中~/Desktop
MestreLion

9

替代安装其他软件并在屏幕截图工具中编写此代码的方法,这里是一种解决方法,之后可以重命名文件。

您需要做的就是导航到目录并运行以下命令

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

这将用所有以.png当前目录中存在的文件名结尾的破折号代替所有冒号。


与fain182所建议的相比,最优性较差,但解决方法要容易得多。+1
gertvdijk

6

gnome-screenshot不允许为屏幕快照文件名设置全局默认值,但是您可以使用该-f选项在命令行上指定文件名。

我们可以使用它来编写一个小的bash脚本,该脚本将代替原始gnome-screenshot二进制文件并使用正确的filename参数执行原始文件。

请注意,您必须具有执行以下操作的root特权,因此请在每个命令前加上前缀sudo或使用来打开root shell 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. 保存文件并关闭编辑器(例如,在Nano或Vim中使用Ctrl+ )。X:wq

  5. 使新创建的脚本可执行:

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

4

Shutter是另一个用于截屏的应用程序,它允许您自定义文件名:可以从Ubuntu Software Center安装它。


1
快门本身就是令人惊叹的,这是恕我直言,这是最好的方法:不要修复错误的文件名,不要生成它们!
MestreLion

例如,快门中的文件名可能具有以下通配符:$nb_name_%Y-%m-%d-%H%M%S。您可以在“首选项”中进行设置。
Vladimir 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上进行了测试,您的行驶里程可能会有所不同。
  • 这是一个hack,不是一种修改由...生成的默认名称的干净方法gnome-screenshot:做一个备份,然后再继续。
  • 张贴没有任何形式的任何保证。

0

在Debian 8.6 KDE→系统设置→自定义快捷方式中,我设置了Trigger→PrtScn,然后设置Action→

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

而且效果很好。


我想知道五年前是哪个Debian版本。
mook765
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.