![如何删除右键单击的“更改桌面背景”?](https://linux22.com/image/957510/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E5%8F%B3%E9%94%AE%E5%8D%95%E5%87%BB%E7%9A%84%E2%80%9C%E6%9B%B4%E6%94%B9%E6%A1%8C%E9%9D%A2%E8%83%8C%E6%99%AF%E2%80%9D%EF%BC%9F.png)
我想限制用户更换壁纸和主题。所以有人能告诉我如何删除 更改桌面背景右键单击选项?
笔记:
我只是想从右键单击中删除该选项。
答案1
如果你可以忍受没有桌面图标的情况,你可以通过 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 文件管理器在右键菜单中没有这个条目?
编辑和重建 Nautilus 的简单指南
正如我之前提到的,菜单项是硬编码到 Nautilus 中的,所以据我所知,删除它并保留所有其他功能的唯一方法是编辑 Nautilus 的源代码并重新编译它。请注意,这将花费一些时间,并且您需要一些空间来存放所有开发包和编译本身。
该过程使用 Nautilus Elementary 2.32.2.2 进行了测试,但对于原始 Nautilus 2.32 来说应该没有任何差异。
- 获取基本开发包:
sudo apt-get install build-essential fakeroot dpkg-dev devscripts
- 获取 Nautilus 的开发依赖项
sudo apt-get build-dep nautilus
- 下载 Nautilus 源代码 - 请注意,此命令不需要 sudo;此外,它会将多个文件放置到当前目录中,因此通常最好为其创建一个额外的目录。
mkdir nautilus 鹦鹉螺 apt-get 源 nautilus
- 源代码将被下载并解压到
nautilus-VERSION*
文件夹(VERSION 当然是某个版本号,很可能是 2.32.something)。进入该文件夹。 - 打开文件
src/file-manager/fm-desktop-icon-view.c
搜索
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) }, };
保存文件。
- 返回终端 cd 到源根目录(如果您还没有这样做)
cd 鹦鹉螺-*
然后运行dch-l 本地
这将执行默认设置$EDITOR
(可能是 Nano),并准备好更改日志文件以输入您的更改。在 之后写一些描述性内容*
,其他内容保持不变。请注意,该-l local
选项用于记录本地构建,您可以使用任何其他内容代替local
,但将条目添加到更改日志很重要,否则您的本地构建将被存储库版本覆盖。 - 编译并构建包
卸载-i-us-uc-b
有关开关的解释,请参阅debuild 手册页示例部分 - 去喝点咖啡,这可能需要一些时间。
- 一旦构建完成(希望成功),您将在父目录中找到一堆 .deb 包。将它们全部安装。
光盘 .. sudo dpkg -i *.deb
- 注销或重新启动 Nautilus 以获得伟大的正义......
鹦鹉螺-q
瞧,没有“更改背景”!
为了 100% 确定,最好nautilus
在 Synaptic 中锁定包。
编辑:一旦您确认一切正常,您就可以使用以下方法删除 build-dep 包这个漂亮的命令。您只需要安装aptitude
...
参考
答案2
我不知道该怎么做,但我推测桌面背景是通过 GConf 键设置的。如果是这样,您可以以 root 身份运行 gconf-editor,找到相关键,并将其设置为强制。这样,用户将无法更改其值。
答案3
免责声明: 我没有使用过 Sabayon(Ubuntu 中的用户配置文件编辑器)或 Pesullus(Ubuntu 中的锁定编辑器)。只是想帮你指明正确的方向。:-)
http://live.gnome.org/Sabayon/
萨芭雍是一个系统管理工具,用于定义和部署 GNOME 桌面环境的桌面配置文件。它允许您控制面板布局、菜单项、默认 gconf 设置等内容,并为某些非 GNOME 程序(如 Firefox)提供预定义的默认值。它还利用了 Pessulus 的锁定功能。它通过提供“窗口内的桌面”来实现这一点,允许您根据需要自定义桌面,然后记录您的更改,以便在登录时由 sabayon-apply 程序应用于用户。
谁应该使用 Sabayon?Sabayon 面向需要向最终用户提供标准化 GNOME 桌面的任何人。管理实验室、图书馆和企业的教师都需要一个“锁定”桌面,并且可以充分利用 Sabayon
它位于Ubuntu 软件中心,做一个搜索为了 ”用户资料编辑器“它将被放置在系统>管理>用户配置文件编辑器
运行程序,点击添加按钮,类型学生, 点击添加, 点击编辑, 点击帮助, 点击内容。阅读帮助。
这是另一个对此进行更详细解释的网站,重点介绍了信息亭。
http://users.telenet.be/mydotcom/howto/linuxkiosk/ubuntu01.htm
其他可以让你锁定东西的程序有“锁定编辑器“在 Ubuntu 软件中心找到(它实际上被称为佩苏鲁斯,不知道为什么 Ubuntu 称它为 Lock Down Editor。)
另一个是Ubuntu 调整,发现于http://ubuntu-tweak.com/
我认为 Sabayon(Ubuntu 中的用户配置文件编辑器)将是您最好的选择。
附言这是对您的问题的另一个讨论…… http://brainstorm.ubuntu.com/item/1626/
答案4
通过更改权限
sudo chmod 660 /usr/bin/gnome-appearance-properties #or any other permission
您可以限制对主题或背景属性修改的访问。但是这将不是删除菜单项。