当printscreen按钮截图时,更改保存的屏幕截图的位置

我想更改“ 将屏幕截图保存到图片 ”的默认位置以将其保存到桌面。

如果那是不可能的,还有其他办法吗? 我正在使用Ubuntu GNOME 17.04。

注意:我不想使用dconf-editor更改位置,因为它会更改屏幕截图小程序的位置,而不是我需要的快捷方式。
在此处输入图像描述

原来并不是那么简单。 首先,您可以尝试按照以下步骤将~/Desktop设置为gnome-screenshot的自动保存目录。

  1. 打开dconf编辑器
  2. 导航到/org/gnome/gnome-screenshot/auto-save-directory
  3. 禁用使用默认值
  4. file:///home/YOUR_USERNAME/Desktop放在“ 自定义”值框中。

或者,您可以在终端中运行以下命令:

 gsettings set org.gnome.gnome-screenshot auto-save-directory 'file:///home/YOUR_USERNAME/Desktop' 

但即使在按下Print后执行此操作,捕获的屏幕截图也会保存在~\Pictures (请参阅此错误报告 )。 作为一种解决方法,您现在可以为gnome-screenshot添加另一个键盘快捷键,它将捕获的截图保存到~/Desktop 。 为此,请按照步骤操作。

  1. 打开“设置”>“键盘”,然后向下滚动到底部。
  2. 单击+符号。 应弹出一个方框。
  3. 在“ 名称”框中输入您喜欢的任何名称。
  4. 命令框中输入gnome-screenshot
  5. 单击Set Shortcut …按钮并设置任何不会引起任何冲突的键盘组合,例如Super + Print

然后注销并再次登录。 现在Super + Print应该将捕获的屏幕截图保存在~/Desktop

为方便起见,您可以先将“ 将屏幕截图保存到图片 ”的快捷方式更改为“ 超级 + 打印 ”等其他内容,然后将“ 打印”分配给刚刚创建的自定义快捷方式。


您可以使用命令框中的以下标志( gnome-screenshot )来优化所需的屏幕截图类型:

  • -a (对于’area’)将允许您选择区域以获取使用鼠标的屏幕截图;
  • -w (对于’window’)将仅截取当前活动窗口的屏幕截图(而不是整个屏幕);
    • -b将在屏幕截图中包含窗口边框,
    • -B不包括边框,
  • -p (对于’指针’)将在屏幕截图中包含鼠标指针(显然不会对-a产生任何影响);
  • -i (用于“交互式”)将允许您在弹出对话框中设置选项。

您可以将标记组合在一起:例如, gnome-screenshot -wB将截取当前活动窗口的屏幕截图而不显示其边框。

您可以通过man gnome-screenshot获取可用选项/标志的详尽列表。

因为默认的屏幕截图应用程序始终将屏幕截图存储在$HOME/Pictures下面,并且没有明显的方法来重新配置该目录,所以我编写了systemd单元和监视$HOME/Pictures目录的脚本的组合。 每当该目录中的某些内容发生更改时,名为$HOME/Pictures/"Screenshot from"*所有文件都将移动到子目录$HOME/Pictures/Screenshots

这是我做的:

创建一个文件/etc/systemd/system/move-screenshots.path

 [Unit] Description=watch changes is Pictures folder [Path] PathChanged=/home/pduck/Pictures [Install] WantedBy=graphical.target 

创建一个文件/etc/systemd/system/move-screenshots.service

 [Unit] Description=move screenshots when Pictures folder has changed [Service] Type=oneshot ExecStart=/home/pduck/bin/screenshot-mover.sh User=pduck 

创建一个文件/home/pduck/bin/screenshot-mover.sh

 #!/usr/bin/env bash # Moves all files 'Screenshot from ...' from the directory $HOME/Pictures # to the directory $HOME/Pictures/Screenshots mkdir -p $HOME/Pictures/Screenshots; for file in $HOME/Pictures/"Screenshot from"*; do mv -v "$file" $HOME/Pictures/Screenshots; done 

然后发出

 sudo systemctl enable --now move-screenshots.path 

它能做什么:

每当路径/home/pduck/Pictures发生变化时,都会调用单元move-screenshots.service ,然后调用脚本/home/pduck/bin/screenshot-mover.sh 。 该脚本将每个匹配$HOME/Pictures/"Screenshot from"*文件移动到子目录$HOME/Pictures/Screenshots

我知道还有很大的改进空间,如果你想使用这个解决方法,你需要用你自己的用户名替换每一个pduck 。 但这几个脚本的组合几个月来一直适用于我,我只是想分享它。