kar*_*k87 11 wallpaper gnome-classic
我不希望我的用户更改系统壁纸。如何锁定墙纸?
用户通过右键单击图片并选择设置为墙纸来更改墙纸。如何限制这种行为?
是否可以从外观首选项中删除背景选项卡?如果是如何?

我知道有两种方法:
1. 以 root 身份运行 gconf-editor: gksudo gconf-editor。在左窗格中找到/ desktop / gnome / background. 在右侧面板上,找到picture_filename,右键单击它并选择Set as Mandatory。
2.另一种方法是通过运行(以root身份)简单地阻止普通用户执行壁纸更换器:chmod 744 /usr/bin/gnome-appearance-properties
马克答案的命令行版本是:
sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set /desktop/gnome/background/picture_filename "/usr/share/backgrounds/Tri_Narwhal_by_momez.jpg"
Run Code Online (Sandbox Code Playgroud)
11.04 及之前版本的 ubuntu
当您提到可以右键单击图像并设置为墙纸时,此答案假定您的意思是 - 将 jpeg 图像打开到 eog 中,右键单击并选择“设置为桌面背景”。

有了这个答案,您可以删除此选项:

考虑到这一假设,您可以通过直接编辑源代码(如果您想分发包)或在每个客户端上修改 GTK 窗口数据来删除菜单选项和右键单击选项。
解决方案 1 - 编辑 GTK 窗口数据
首先备份GTK窗口数据:
sudo cp /usr/share/eog/eog-ui.xml ~/
gksudo gedit /usr/share/eog/eog-ui.xml
Run Code Online (Sandbox Code Playgroud)
现在搜索“壁纸” - 删除包含此关键字的每一行并保存。
要还原更改:
sudo cp ~/eog-ui.xml /usr/share/eog
Run Code Online (Sandbox Code Playgroud)
解决方案 2 - 分发 deb 包
这可以用这个食谱来完成:
apt-get source eog
sudo apt-get build-dep eog
sudo apt-get install devscripts
Run Code Online (Sandbox Code Playgroud)
如果它要求配置您的邮件 - 选择不配置
cd eog-2*/data
gedit eog-ui.xml
Run Code Online (Sandbox Code Playgroud)
现在搜索“壁纸” - 删除包含此关键字的每一行。
节省。
cd ..
gedit debian/changelog
Run Code Online (Sandbox Code Playgroud)
添加+ppakarthick到第一行,使其内容如下:
eog (2.32.1-0ubuntu2+ppakarthick) natty; urgency=low
debuild -us -uc
cd ..
sudo dpkg -i eog_*.deb
Run Code Online (Sandbox Code Playgroud)
注意 - 只需要安装一个 deb 包 - 32 位或 64 位取决于您安装的 ubuntu 架构。另一个 deb 的产品是调试包和开发包,您可以忽略这两个包。
要还原更改:
sudo apt-get purge eog
sudo apt-get install eog
Run Code Online (Sandbox Code Playgroud)
这将删除完整的 eog 包。然后,第二个命令将从存储库重新下载当前的 eog 包。
注意 - 它可能想要删除元包ubuntu-desktop。唯一的影响是您是否打算升级到 Natty。如果要升级,只需ubuntu-desktop在升级前安装即可。
此选项卡的 GTK 窗口数据在文件中,/usr/share/gnome-control-center/ui/appearance.ui但我在此文件中没有找到可以隐藏背景选项卡本身的方便位置。

通过源代码更改 - 您可以使背景选项卡及其按钮不显示墙纸并且在单击按钮时不执行任何操作。
此解决方案与上面的解决方案 2 非常相似。
apt-get source gnome-control-center
sudo apt-get build-dep gnome-control-center
sudo apt-get install devscripts
Run Code Online (Sandbox Code Playgroud)
如果它要求配置您的邮件 - 选择不配置
cd gnome*/capplets/appearance
gedit appearance-desktop.c
Run Code Online (Sandbox Code Playgroud)
现在查找以下函数并添加return;如下所示:
void
desktop_init (AppearanceData *data,
const gchar **uris)
{
GtkWidget *add_button, *w;
GtkCellRenderer *cr;
char *url;
data->wp_update_gconf = TRUE;
data->wp_uris = NULL;
return;
Run Code Online (Sandbox Code Playgroud)
节省。
cd ../..
gedit debian/changelog
Run Code Online (Sandbox Code Playgroud)
添加+ppakarthick到第一行,使其内容如下:
gnome-control-center (1:2.30.1-0ubuntu2+ppakarthick) lucid-proposed; urgency=low
debuild -us -uc
cd ..
sudo dpkg -i capplets*.deb
sudo dpkg -i libgnome-window-settings1*.deb
sudo dpkg -i gnome-control-center_*.deb
Run Code Online (Sandbox Code Playgroud)
要还原更改:
sudo apt-get purge gnome-control-center libgnome-window-settings1 capplets-data
sudo apt-get install ubuntu_desktop
Run Code Online (Sandbox Code Playgroud)
这将删除完整的 gnome-control-center 包和一些其他包。然后,第二个命令将从存储库重新下载之前删除的所有包。