python - 为什么 Gio.Settings 不影响
问题描述
我想使用 Python 设置用户环境。但我不明白为什么这段代码不起作用?
环境:
Ubuntu 18.04.1
Python 2.7.15rc1
python-gi 3.26.1-2
libgtk-3-0:3.22.30-1ubu
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk,Gio
gsettings = Gio.Settings.new('org.gnome.shell.extensions.dash-to-dock')
gsettings.set_int('dash-max-icon-size', 16)
gsettings.apply()
并执行此代码,如sudo python /home/username/Documents/setup.py
.
解决方案
正如您所说,您的目标是设置您的用户环境。当您使用sudo
command运行代码时,您是以超级用户身份运行它,因此您实际上是在更改root的环境!
至于为什么.apply()
不需要:当您使用 实例化设置时Gio.Settings.new()
,就像您所做的那样,更改会立即应用。来自官方文档.apply()
:
应用对设置所做的任何更改。除非 self 处于“延迟应用”模式,否则此函数什么都不做;请参阅 Gio.Settings.delay()。在正常情况下,设置总是立即应用
推荐阅读
- python - 如何在 numpy 中指定随机数生成器
- python - 如何修复循环错误一次跳过 1 个值?
- r - 当有大量观察值时,绘制直方图在一个条形图中显示一系列值
- c# - 如何在 Visual Studio 2015 中正确安装 Visual Basic Power Pack
- java - 有没有办法按跨度内容单击标签
- macos - Mac OS X v10.12.6 上的 GDB,程序以未知信号终止
- android - 传递 XML 可绘制数组并使用 Glide 获取它
- glsl - GLSL 着色器不需要的灰度效果
- python-3.x - Keras 立即使用所有 GPU 内存
- python - 如果执行“someVariable['key'] = value”,会调用什么过程