如何阻止用户更改壁纸(在Ubuntu 12和14中的Unity下)?

我找不到阻止用户更改我的机构壁纸的方法。
我有一些使用Unity运行Ubuntu 12.04的PC和其他使用Unity运行Ubuntu 14.04的PC。
我需要某种调整/命令/解决方案来阻止以任何可能的方式更改壁纸的选项。

请不要用GNOME下的解决方案回答我。 这两个对我不起作用:
– 如何限制用户更改壁纸?
– 无法阻止用户更改壁纸/设置

虽然下面的建议远非“防水”,但它至少提供了一些“一线”预防措施,以防止更换壁纸。

如果当前壁纸仍然是您在第一个位置设置的壁纸,则可以在后台运行一个小脚本,每隔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 

如何使用

  • 将脚本复制到空文件中。 将壁纸线(在set_wallpaper = )更改为壁纸图像的路径(以file://开头,与示例中一样)。 将其保存为something.py

  • 通过命令运行它:

     python3 /path/to/something.py 

    或(12.04)

     python /path/to/something.py 

如果一切正常,请将其添加到启动应用程序中:Dash>“Startup Applications”>“Add”