gnome-shell
我在 Ubuntu 12.04 上使用。当我PrtSc点击截屏时,它可以工作,但它会自动将截图保存在我的图片文件夹中。没有询问保存位置的对话框。但它确实在 Unity 下显示对话框。
答案1
假设我读过这篇文章错误报告正确地……
这是设计使然。事实并非如此!
评论#37 及以后讨论了这个问题。
当前的 Unity 补丁状态:
在 Unity 会话中使用按键绑定截屏后会显示一个确认对话框,自动保存行为会让用户感到困惑
线程继续:
但当我不使用 Unity 时,您的修复不起作用。您为什么认为这仅适用于 Unity 用户?
回复如下:
因为 GNOME 上游和 GNOME 用户不断要求我们不要干涉他们的桌面,而是按照设计发布,所以我们尝试这样做,我们坚持 GNOME 环境的上游行为,并为 Unity 做出设计决策
所以你明白了。Gnome 开发人员坚持认为他们的桌面环境应该以这种方式运行。这是一个上游问题。Canonical 开发人员尊重这一决定,因此出现了“分歧”——Unity 用户有另存为对话框,而 gnome-shell 用户有按设计没有对话功能。
因此,如果您使用 gnome-shell/gnome-classic,所有屏幕截图都会保存在您的主图片文件夹中~/Pictures
笔记:gsettings
您可以使用(命令行)或dconf-editor
(GUI)覆盖屏幕截图位置:
- 设置
org.gnome.gnome-screenshot auto-save-directory
为file:///home/yourusername/wherever/you/want
答案2
我迟到了,但我刚刚偶然发现了这一点,想提供一个稍微不同的答案。
基本上,在最新的 Gnome 3 / Gnome Shell 中,它们是不再使用 Gnome 截图。这意味着对 Gnome-Screenshot 的默认设置(如默认保存位置)的任何更改都不会影响任何内容。
相反,您需要转到键盘设置,禁用“将屏幕截图 […] 保存到图片”快捷方式,并添加您自己的自定义快捷方式,这些快捷方式gnome-screenshot
无需参数即可调用(自动保存到其 gsettings 定义的位置)、-a
(保存区域)、-w
(保存当前窗口)或-i
(如果您想要返回选项对话框)。您显然可以混合搭配一些设置,或者从中添加更多设置man gnome-screenshot
。
答案3
尝试使用 Shutter,它是最好的屏幕捕获工具(正如其网站所说:)
sudo add-apt-repository ppa:shutter/ppa
sudo apt-get update && sudo apt-get install shutter
应用网站:http://shutter-project.org/
要将 Shutter 配置为按 PrtSc 或 Alt+PrtSc 时截取屏幕截图的默认工具,您需要执行以下操作:
侏儒:
1 转到 Shutter 中的编辑 ▸ 首选项
2 在键盘选项卡中,启用“捕获”和“选择捕获”复选框:
3 就是这样!现在常用的 PrtSc 和 Alt+PrtSc 键绑定将使用 Shutter 来截取屏幕截图。
答案4
也许有人觉得这很有用:为了恢复此功能,我将 v3.18.0 二进制文件复制到/usr/bin/gnome-screenshot
,禁用了“将区域的屏幕截图保存到图片”的系统热键,并使用以下命令创建了一个新的快捷方式/usr/bin/gnome-screenshot -a -i
缺点:没有它-i
我只能选择要复制到剪贴板的区域(已经比以前好多了),有了开关后,我首先要获得 gnome-screenshot 选项,然后才能选择区域,但其余的都很好。
要查看完整屏幕截图,请拖放-a
(在 ubuntu 18 下构建 v3.18.0 有点混乱,我最终得到了类似
- 启动一个 ubuntu 16.04 docker 容器(不要忘记挂载类似的程序,
-v /tmp:/tmp
这样你最终就可以将二进制文件复制到你的主机系统) - 启用反向移植,
apt-get update
- 安装:
apt-get install git gnome-common libx11-dev libglib2.0-dev libgtk-3-dev libcanberra-gtk3-dev
./autogen.sh && make && cp ./src/gnome-screenshot /tmp/
- 离开docker容器,
/usr/bin/gnome-screenshot
用文件覆盖/tmp
意识到这样做其实是个不错的想法,尽管它在我的计算机上似乎运行良好,但二进制文件可能链接到 ubuntu 18 上不再存在的符号/行为不同。(我认为我在 16.04 容器中编译它的主要问题是 libpcre 中的版本冲突)