如何从右键单击中删除更改桌面背景?


11

我想限制用户更改壁纸和主题。因此,有人可以说我如何从右键单击中删除“ 更改桌面背景”选项吗?

注意:

我只想从右键单击中删除该选项。


如果不从源代码重新编译,这看起来是不可能的。我将克隆存储库,看看代码在哪里。
nickguletskii 2011年

1
您是要删除对gnome-appearance-properties整个访问的权限,还是仅删除这种访问方法?如果要阻止用户自定义其背景或主题,则可能只想完全删除对该命令的访问权限(需要超级用户密码才能继续)。
crazy2be 2011年

Answers:


20

如果您的桌面上没有图标,可以完全通过Nautilus的show_desktop选项禁用右键菜单,如下所示:

gconftool-2 -t bool -s /apps/nautilus/preferences/show_desktop false

编辑:仅摆脱该菜单项将需要修补Nautilus源。菜单定义位于src/file-manager/fm-desktop-icon-view.c内部desktop_view_entries[](或仅搜索Change Desktop _Background)。编辑2:有关如何操作,请参见下文。

其他选择是使用其他文件管理器绘制桌面图标。也许PCMan File Manager在右键菜单中没有此条目?

最小编辑和重建Nautilus指南

如前所述,菜单项被硬编码为Nautilus,据我所知,如何删除菜单并保留所有其他功能的唯一方法是编辑Nautilus的源代码并重新编译。请注意,这将需要一些时间,并且您将需要一些空间来容纳所有开发包和编译本身。

该过程已通过Nautilus Elementary 2.32.2.2进行了测试,但是Nautilus 2.32的库存不应有任何差异。

  1. 获取基本的开发包:
    sudo apt-get install build-essential fakeroot dpkg-dev devscripts
  2. 获取Nautilus的开发依赖项
    须藤apt-get build-dep nautilus
  3. 下载Nautilus源代码-请注意,此命令不需要sudo。同样,它将多个文件放置到当前目录中,因此通常最好为此创建一个附加目录。
    鹦鹉螺
    光盘鹦鹉螺
    apt-get source nautilus
  4. 源将被下载并解压缩到nautilus-VERSION*文件夹(VERSION当然是一些版本号,最可能是2.32.something)。进入那个文件夹。
  5. 打开文件 src/file-manager/fm-desktop-icon-view.c
  6. 搜索GtkActionEntry desktop_view_entries[]-在我的情况下,它位于第721行,但是对于您的版本可能有所不同。它看起来应该像这样:

    static const GtkActionEntry desktop_view_entries[] = {
        /* name, stock id */
        { "New Launcher Desktop", NULL,
          /* label, accelerator */
          N_("Create L_auncher..."), NULL,
          /* tooltip */
          N_("Create a new launcher"),
          G_CALLBACK (action_new_launcher_callback) },
        /* name, stock id */
        { "Change Background", NULL,
          /* label, accelerator */
          N_("Change Desktop _Background"), NULL,
          /* tooltip */
          N_("Show a window that lets you set your desktop background's pattern or color"),
          G_CALLBACK (action_change_background_callback) },
        /* name, stock id */
        { "Empty Trash Conditional", NULL,
          /* label, accelerator */
          N_("Empty Trash"), NULL,
          /* tooltip */
          N_("Delete all items in the Trash"),
          G_CALLBACK (action_empty_trash_conditional_callback) },
    };

    请注意,第二个数组包含Change Background-删除它,因此您将获得以下内容:

    static const GtkActionEntry desktop_view_entries[] = {
        /* name, stock id */
        { "New Launcher Desktop", NULL,
          /* label, accelerator */
          N_("Create L_auncher..."), NULL,
          /* tooltip */
          N_("Create a new launcher"),
          G_CALLBACK (action_new_launcher_callback) },
        /* Change Background was here */
        /* name, stock id */
        { "Empty Trash Conditional", NULL,
          /* label, accelerator */
          N_("Empty Trash"), NULL,
          /* tooltip */
          N_("Delete all items in the Trash"),
          G_CALLBACK (action_empty_trash_conditional_callback) },
    };

    保存文件。

  7. 将Terminal cd返回到源根目录(如果尚未这样做的话)
    CD Nautilus- *
    然后跑
    dch -l local
    这将$EDITOR使用准备输入更改的changelog文件执行默认值(可能是Nano)。在后面写一些描述性的内容*,保持其他内容不变。请注意,该-l local选项用于记录本地版本,您可以使用其他任何方式代替local,但是将条目添加到changelog很重要,否则本地版本将被存储库版本覆盖。
  8. 编译并生成软件包
    编译-i -us -uc -b
    有关开关的说明,请参见“ debuild手册页示例”部分。
  9. 去喝杯咖啡,这可能需要一些时间。
  10. 构建完成(希望成功)后,您将在父目录中找到一堆.deb软件包。全部安装。
    光盘..
    须藤dpkg -i * .deb
  11. 注销或重新启动Nautilus,以确保公正。
    鹦鹉螺-q

看吧,没有“更改背景”!

Nautilus桌面菜单

要100%确定,nautilus软件包锁定在Synaptic中可能是个好主意。

编辑:确认一切正常后,您可以使用此nifty命令摆脱build-dep软件包的困扰。您只需要安装aptitude...

参考文献


如果您说如何从右键单击中完全删除该选项,那就太好了。
karthick87

好的,我将介绍如何编辑Nautilus源并重新编译它。等一下
jnv 2011年

在这里,我希望它会有用。
jnv 2011年

1
好人@jnv :)
Rinzwind 2011年

谢谢林兹温德。我看到Markdown从fm-desktop-icon-view.c弄糟了源代码,请不要复制它。
jnv 2011年

6

我不知道该怎么做,但是我认为桌面背景是通过GConf键设置的。如果是这样,您可以以root用户身份运行gconf-editor,找到相关的密钥,并将其设置为必需。然后,将不允许用户更改其值。


4

免责声明: 我尚未使用Sabayon(Ubuntu中的用户配置文件编辑器)或Pesullus(Ubuntu中的锁定编辑器)。只是通过指出正确的方向来帮助您。:-)

http://live.gnome.org/Sabayon/

Sabayon是一个系统管理工具,用于为GNOME桌面环境定义和部署桌面配置文件。它使您可以控制面板布局,菜单项,默认gconf设置等内容,并为某些非GNOME程序(例如Firefox)提供预定义的默认值。它还利用了Pessulus的锁定功能。为此,它提供了“窗口内的桌面”,可让您自定义合适的桌面,然后记录更改,以便在登录时由sabayon-apply程序应用于用户。

谁应该使用Sabayon?Sabayon面向需要为其最终用户提供标准化GNOME桌面的任何人。管理实验室,图书馆和企业的老师都需要拥有一个“锁定”桌面,并且可以充分利用Sabayon

Ubuntu Software Center中搜索用户配置文件编辑器 ”。它将放置在“ 系统”>“管理”>“用户配置文件编辑器”中

运行程序,单击添加按钮,键入Student,单击添加,单击编辑,单击帮助,单击内容阅读帮助

这是另一个网站,对它进行了进一步解释,重点是自助服务终端。

http://users.telenet.be/mydotcom/howto/linuxkiosk/ubuntu01.htm

其他可以锁定内容的程序是在Ubuntu软件中心中找到的“ 锁定编辑器 ”(实际上称为Pessulus,不知道为什么Ubuntu称其为锁定编辑器。)

另一个是Ubuntu Tweak,可在http://ubuntu-tweak.com/找到

我认为Sabayon(Ubuntu中的用户配置文件编辑器)将是您最好的选择。

附注:这是关于您的问题的另一次讨论。... http : //brainstorm.ubuntu.com/item/1626/


3

对于Ubuntu 11.04及更早版本,只需将gconf密钥设置为必选。这是一种方法

sudo gconftool-2 --direct --config-source \
xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set \
/desktop/gnome/background/picture_filename \ 
"/usr/share/backgrounds/cosmos/blue-marble-west.jpg"

对于Ubuntu 11.10及更高版本(或使用Gnome 3),请将dconf密钥设置为必选。请参见本月底的文章


2

通过更改权限

sudo chmod 660 /usr/bin/gnome-appearance-properties #or any other permission

您可以限制对主题或背景属性的修改的访问。但是,这不会删除菜单项。


2

您是否尝试过Gofris,此应用程序等于wind * ws上的deepfreeze。您可能会注意到,您对其系统进行了任何更改:创建或删除文件,设置等,重新启动计算机后所有设置都会重置。

请执行以下操作在ubuntu 上安装Gofris

  • sudo add-apt-repository ppa:tldm217 / gofris
  • sudo apt-get更新
  • sudo apt-get install gofris-en

在终端中输入gofris-en即可运行。

在此处输入图片说明

检查此链接:http : //www.webupd8.org/2010/09/ofris-gets-appindicator-gofris-deep.html


2

我使它与gconftool-2一起工作。赶紧跑:

gconftool-2 --type bool --set /apps/nautilus/lockdown/disable_context_menus 1

如果所有用户都需要此文件,只需创建一个/etc/profile.d脚本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.