前言
为什么是无脑呢?
因为这个问题我使用了一种并不优美的解决方案,解决的也并不彻底,可能还不对。。不过就这样吧。
本文环境Fedora 25。
问题
在安装系统时,我选择了中文,因此在 /home/kang 下有几个默认目录 比如 模板、音乐、图片啥的,
当时在shell里cd 还要转换输入法才可以进入,很麻烦,于是机智的我就把这些中文目录删了换成了英文目录,感觉自己棒棒嗒
但是PrtSc的截图都放在了/home/kang
这就很蛋疼了,一打开shell 一大堆截图,还要mv到指定目录,很麻烦。
我们当然希望将截图的默认位置改变为指定位置啦
这要怎么改呢??
解决
首先当然是想从设置 里面修改啦
然而看着哪个都不像和截图有关系。。QAQ
最后找到了键盘
看着这个蛋疼的kang
目录,就是没法改呀,(默认应该是图片
目录,然而我删除了,鬼知道怎么变成这个了)
这个由于是系统默认的命令,所以都不能删除,我们先把它快捷键改变,这样就不会再使用这个了。
问题的根本
如果小伙伴改过快捷键,比如(Fedora 下让启动shell变得和Ubuntu一样) ,那么应该知道,
其实我们的快捷键也是去执行了一个程序,(还是shell的例子,就是/usr/bin/gnome-shell啦),那么截图必然也是一个应用程序,我们只要让它的默认保存位置改变就Ok啦。
然而康康眉头一皱,发现事情并不简单
查看参数帮助
并没有修改默认保存地址的参数
那么我们只能修改它的配置文件了。
主角登场–gsettings
man中这样介绍它
gsettings offers a simple commandline interface to GSettings. It lets
you get, set or monitor an individual key for changes.
也就是一个应用程序(命令行接口)用来操作GSettings,让你可以查看,设置一些key
GSettings是啥呢?wiki上是这样的
The GSettings class provides a high-level API for application for storing and retrieving their own settings
GSettings类为应用程序提供了一个高层次的API来存储和检索自己的设置。
看到这里,我们有了大概的印象,GSetting大概就是编程中我们用来设置的API,而对于我们要直接修改配置文件(XML)很麻烦也不容易正确,所以有应用程序(gsettings)来帮我们修改,方便使用。就像修改sudoer
文件要用visudo
这个应用程序来修改就很方便和安全。
然而我并没有用gsettings
修改成功。。。
那么就手动修改吧。
手动修改
首先我们要先找到配置文件。
gsettings已经提供了这个选项
[kang@localhost ~]$ gsettings list-schemas | grep screenshot
找到了配置文件名为org.gnome.gnome-screenshot
路径为/usr/share/glib-2.0/schemas
在root下vim编辑之
<key name="auto-save-directory" type="s">
<default>''</default>
<summary>Screenshot directory</summary>
<description>The directory where the screenshots will be saved by default.</description>
</key>
在default中间填上你的指定目录就好了
然后就是更新配置文件(schema)。
引用自gsettings命令使用简介
schema文件并不能直接被gsettings使用,需要用glib-compile-schemas编译器将schema文件编译为二进制文件才能被gsettings所使用。
那么我们就
#glib-compile-schemas /usr/share/glib-2.0/schemas
再查看下更新是否成功
gsettings get org.gnome.gnome-screenshot auto-save-directory
最下面给出的key值不是''
啦
注意
经过上面的修改,我们直接调用gnome-screenshot
截屏是保存在正确位置,但如果未修改快捷键而直接用PrtSc
截屏的话依然无法保存到指定位置,所以我们最开始就把默认快捷键用别的代替了,而新建一套快捷键,来保证截图存到指定位置。
(squre就是方块的意思啦,来指代部分截屏每次都是截小方块)
感谢和引用
gsettings命令使用简介
Gconf与Gsettings的简介、及gsettings的具体使用案例
Wiki–GSettings