我找不到阻止用户更改我所在机构的壁纸的方法。
我有一些 PC 运行使用 Unity 的 Ubuntu 12.04,还有一些运行使用 Unity 的 Ubuntu 14.04。
我需要某种调整/命令/解决方案来阻止以任何可能的方式更改壁纸的选项。
请不要用 GNOME 下的解决方案来回答我。这两个对我来说不起作用:
-如何限制用户更换壁纸?
-无法阻止用户更改壁纸/设置
答案1
虽然下面的建议远非“防水”,但它至少提供了一些“第一线”预防措施,防止过于轻易地更换墙纸。
您可以编写一个小脚本在后台运行,每 x 秒检查一次当前壁纸是否仍然是您最初设置的壁纸。
查看命令(得到)当前的壁纸是什么:
gsettings get org.gnome.desktop.background picture-uri
如果你在终端中运行它,你将得到如下输出:
'file:///home/jacob/Thema/Bureaublad4/Frog.jpg'
如果原始壁纸已经改变,我们可以让脚本恢复原始壁纸。
到放特定的壁纸,命令是:
gsettings set org.gnome.desktop.background picture-uri 'file:///home/jacob/Thema/Bureaublad4/Frog.jpg'
如果我们在 python 脚本中使用这两个,我们可以得到以下内容(python3,14.04):
#!/usr/bin/env python3
import time
import subprocess
set_wallpaper = "file:///home/jacob/Thema/Bureaublad4/Frog.jpg"
cmd2 = "gsettings set org.gnome.desktop.background picture-uri "+set_wallpaper
cmd1 = "gsettings get org.gnome.desktop.background picture-uri"
def check_wall():
curr_wallpaper = subprocess.check_output(["/bin/bash", "-c", cmd1]).decode("utf-8").strip()
if curr_wallpaper == "'"+set_wallpaper+"'":
pass
else:
subprocess.Popen(["/bin/bash", "-c", cmd2])
while True:
check_wall()
time.sleep(10)
12.04 的唯一区别是 shebang:12.04 默认不附带 python3,因此 shebang 应该是:
#!/usr/bin/env python
如何使用
将脚本复制到一个空文件中。将 wallpaper 行(在 之后
set_wallpaper =
)更改为壁纸图像的路径(以 开头file://
,如示例中所示)。将其另存为something.py
。通过命令运行它:
python3 /path/to/something.py
或 (12.04)
python /path/to/something.py
如果一切顺利,请将其添加到启动应用程序中:Dash > “启动应用程序” > “添加”