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

kar*_*k87 11 wallpaper administration scripts

我想限制用户更改壁纸和主题。那么谁能告诉我如何从右键单击中删除 更改桌面背景选项?

笔记:

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

jnv*_*jnv 20

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

gconftool-2 -t bool -s /apps/nautilus/preferences/show_desktop false
Run Code Online (Sandbox Code Playgroud)

编辑:仅删除该菜单项需要修补 Nautilus 源。菜单定义在src/file-manager/fm-desktop-icon-view.c里面desktop_view_entries[](或者只是搜索Change Desktop _Background)。编辑 2:有关 HowTo,请参见下文。

其他选项是使用不同的文件管理器来绘制桌面图标。也许 PCMan 文件管理器在右键菜单中没有这个条目?

编辑和重建 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 的开发依赖项
    sudo apt-get build-dep 鹦鹉螺
  3. 下载 Nautilus 源 - 注意这个命令不需要 sudo;此外,它会将多个文件放置到当前目录中,因此通常最好为此创建一个额外的目录。
    mkdir 鹦鹉螺
    光碟鹦鹉螺
    apt-get 源鹦鹉螺
  4. 源代码将被下载并解压到nautilus-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) },
    };
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,第二个数组包含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) },
    };
    
    Run Code Online (Sandbox Code Playgroud)

    保存文件。

  7. 回到终端 cd 到源根目录(如果您还没有这样做)
    cd 鹦鹉螺-*
    并运行
    dch -l 本地
    这将$EDITOR使用准备好输入更改的更改日志文件执行默认值(可能是 Nano)。在 之后写一些描述性的东西*,保持其他一切完好无损。请注意,该-l local选项是记录本地构建,您可以使用其他任何东西代替local,但是将条目添加到更改日志很重要,否则您的本地构建将被存储库版本覆盖。
  8. 编译和构建包
    解构 -i -us -uc -b
    有关开关的说明,请参阅debuild 手册页示例部分
  9. 去喝杯咖啡,这可能需要一些时间。
  10. 一旦构建完成(希望成功),您将在父目录中找到一堆 .deb 包。全部安装。
    光盘..
    须藤 dpkg -i *.deb
  11. 注销或重新启动 Nautilus 以获得正义......
    鹦鹉螺 -q

看,没有“更改背景”!

鹦鹉螺桌面菜单

为了 100% 确定,在 Synaptic 中锁定nautilus可能是个好主意。

编辑:一旦你确认一切正常,你可以使用这个漂亮的命令摆脱 build-dep 包。你只需要安装aptitude...

参考


Sco*_*nce 6

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