Comment restreindre les utilisateurs sur la modification de leurs fonds d'écran?

11

Je ne veux pas que mes utilisateurs modifient le fond d'écran du système. Comment verrouiller le fond d'écran?

Mise à jour

  • Les utilisateurs changent le fond d'écran en cliquant avec le bouton droit sur l'image et en choisissant définir comme fond d'écran. Comment restreindre ce comportement?

  • Est-il possible de supprimer l'onglet Arrière-plans des préférences d'apparence? Si oui comment?

entrez la description de l'image ici

karthick87
la source
OK, donc vous voulez qu'ils puissent ouvrir des images mais PAS pouvoir les définir comme fond d'écran? De plus, ont-ils besoin d'accéder aux "Paramètres" ( gnome-control-center)?
ish
@izx Oui, ils ont besoin d'accéder aux paramètres mais ne devraient pas pouvoir les définir comme fond d'écran.
karthick87
Ubuntu 10.10 et environnement de bureau gnome-classic.
karthick87
@ karthick87 - l'onglet d'arrière-plan est dessiné par /usr/share/gnome-control-center/ui/appearance.ui (recherchez "background" dans ce fichier) .... J'ai jeté un coup d'œil, mais je ne suis pas sûr pour l'instant quels bits modifier pour masquer l'onglet. J'examinerai un peu plus en profondeur quand j'aurai du temps. Merci.
fossfreedom
@ karthick87 - ok - pas tout à fait la suppression de l'onglet - mais mis à jour ma réponse pour que cette fonctionnalité d'onglet ne fasse rien. J'espère que cela t'aides.
fossfreedom

Réponses:

5

eog (œil de gnome)

11.04 et versions précédentes d'ubuntu

Lorsque vous avez mentionné que vous pouvez cliquer avec le bouton droit sur une image et définir comme fond d'écran, cette réponse suppose que vous vouliez dire - ouvrir l'image jpeg dans eog, cliquer avec le bouton droit et choisir "définir comme arrière-plan du bureau".

entrez la description de l'image ici

Avec cette réponse, vous pouvez supprimer cette option:

entrez la description de l'image ici

Avec cette hypothèse à l'esprit, vous pouvez supprimer l'option de menu ET l'option de clic droit en modifiant directement la source (si vous souhaitez distribuer un package) ou en modifiant par client les données de la fenêtre GTK.

solution 1 - modifier les données de la fenêtre GTK

Sauvegardez d'abord les données de la fenêtre GTK:

sudo cp /usr/share/eog/eog-ui.xml ~/
gksudo gedit /usr/share/eog/eog-ui.xml

Maintenant, recherchez "fond d'écran" - supprimez chaque ligne contenant ce mot-clé et enregistrez.

Pour annuler les modifications:

sudo cp ~/eog-ui.xml /usr/share/eog

solution 2 - distribuer le paquet deb

Cela peut être fait avec cette recette:

apt-get source eog
sudo apt-get build-dep eog
sudo apt-get install devscripts

S'il vous demande de configurer votre courrier - sélectionnez aucune configuration

cd eog-2*/data
gedit eog-ui.xml

Maintenant, recherchez "fond d'écran" - supprimez chaque ligne contenant ce mot-clé.

Sauvegarder.

cd ..
gedit debian/changelog

ajouter +ppakarthickà la première ligne pour qu'elle se lise comme suit:

eog (2.32.1-0ubuntu2+ppakarthick) natty; urgency=low

debuild -us -uc
cd ..
sudo dpkg -i eog_*.deb

Remarque - il n'y a qu'un seul paquet deb à installer - 32 bits ou 64 bits selon l'architecture ubuntu que vous avez installée. Les autres produits de deb sont un paquet de débogage et un paquet de développement, que vous pouvez ignorer.

Pour annuler les modifications:

sudo apt-get purge eog
sudo apt-get install eog

Cela supprimera le package eog complet. Ensuite, la deuxième commande téléchargera à nouveau à partir des référentiels, le package eog actuel.

Remarque - il peut vouloir supprimer le méta-paquet ubuntu-desktop. Le seul effet que cela a est si vous avez l'intention de passer à Natty. Si vous souhaitez mettre à niveau, installez simplement ubuntu-desktopavant la mise à niveau.

Onglet d'arrière-plan de Gnome-Control-Center

Les données de la fenêtre GTK pour cet onglet se /usr/share/gnome-control-center/ui/appearance.uitrouvent dans le fichier, mais je n'ai pas trouvé d'endroit pratique dans ce fichier où vous pouvez masquer l'onglet d'arrière-plan lui-même.

entrez la description de l'image ici

Avec un changement de code source - vous pouvez obtenir l'onglet d'arrière-plan et ses boutons pour ne pas afficher le papier peint et ne rien faire lorsque vous cliquez sur les boutons.

Cette solution est très similaire à la solution 2 ci-dessus.

apt-get source gnome-control-center
sudo apt-get build-dep gnome-control-center
sudo apt-get install devscripts

S'il vous demande de configurer votre courrier - sélectionnez aucune configuration

cd gnome*/capplets/appearance
gedit appearance-desktop.c

Recherchez maintenant la fonction suivante et ajoutez-la return;comme indiqué:

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;

Sauvegarder.

cd ../..
gedit debian/changelog

ajouter +ppakarthickà la première ligne pour qu'elle se lise comme suit:

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

Pour annuler les modifications:

sudo apt-get purge gnome-control-center libgnome-window-settings1 capplets-data
sudo apt-get install ubuntu_desktop

Cela supprimera le package gnome-control-center complet et quelques autres packages. Ensuite, la deuxième commande téléchargera à nouveau à partir des référentiels, tous les packages précédemment supprimés.

liberté de fossé
la source
L'erreur debuild -us -ucici est l'erreur pastebin.ubuntu.com/1040147
karthick87
chacune de ces "dépendances non satisfaites" aurait dû être installée lorsque vous l'avez fait sudo apt-get build-dep gnome-control-center- que se passe-t-il si vous les installez individuellement, par exemple sudo apt-get install libxss-dev, sudo apt-get install libgnome-menu-devetc., etc.?
fossfreedom
7

Il y a deux façons que je connais:

1. run racine gconf-éditeur: gksudo gconf-editor. Dans le volet gauche, recherchez / desktop / gnome / background. Dans le panneau de droite, recherchez picture_filename, faites un clic droit dessus et sélectionnez Set as Mandatory.

2. Une autre façon consiste simplement à empêcher les utilisateurs normaux d'exécuter le changeur de papier peint en exécutant (en tant que root):chmod 744 /usr/bin/gnome-appearance-properties

Mark Russell
la source
gconf-editor est ce que je veux. Est-il possible de définir cette option à Set as Mandatorypartir du terminal? Pour que je puisse faire un script et l'exécuter dans tous les hôtes.
karthick87
Une possibilité est que l'utilisateur ouvre le fond d'écran et clique droit et définit comme fond d'écran applique le fond d'écran. Une façon de restreindre cela?
karthick87
7

La version en ligne de commande de la réponse de Mark serait:

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"
8128
la source
Je l'ai fait, mais comment revenir en arrière?
karthick87
0

J'ai trouvé un moyen de définir facilement le fond d'écran (fond d'écran) à chaque connexion. Créez un nouveau programme de connexion dans "Applications de démarrage" avec la commande suivante.

gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/edubuntu_default.png"

Bien sûr, vous pouvez spécifier n'importe quelle image simplement en remplaçant "edubuntu_default.png" par votre image.

HarlemSquirrel
la source