web-dev-qa-db-fra.com

Préserver le thème GTK avec gksudo

J'ai un ordinateur avec deux utilisateurs (non simultanés) qui sont tous les deux dans le groupe Sudo. Existe-t-il un moyen de conserver le thème GTK de l'utilisateur avec gksudo, par exemple lors de l'exécution du gestionnaire de mise à jour? Par défaut, le thème Raleigh est utilisé.

J'utilise Lubuntu 14.04 avec un simple gestionnaire de fenêtres (Blackbox) et aucun gestionnaire d'affichage.

2
August Karlstrom

Je ne sais pas pourquoi les applications lancées via gksudo n'utilisent pas le thème de votre utilisateur. Cela fonctionne pour moi sur un système Lubuntu complet. (Mais cela utilise Openbox, pas Blackbox.) Heureusement:

  • La meilleure solution pour un programme comme Update Manager est probablement d'installer polkit (qui est normalement présent) et d'exécuter Update Manager sansgksudo. (Voir Voie 1 ci-dessous.)
  • Pour les applications qui doivent être démarrées en tant que root, ou si vous ne voulez pas que polkit soit installé, une solution de contournement est de spécifiez le thème que vous voulez avec GTK_THEME (voir Voie 2 et Voie 3 ).

Méthode 1: installez polkit (a.k.a. PolicyKit).

La meilleure solution pour les utilitaires comme:

  • Logiciel de mise à jour/gestionnaire de mise à jour (update-manager)
  • Centre logiciel Ubuntu (software-center)
  • Lubuntu Software Center (lubuntu-software-center)
  • Logiciels et mises à jour (software-properties-gtk)

... et de nombreux autres utilitaires d'administration système dans Ubuntu, c'est de ne pas les exécuter en tant que root du tout.

Normalement, vous n'avez pas besoin d'exécuter ces utilitaires en tant que root car ils s'intègrent avec polkit et l'utilisent (au lieu de Sudo) pour effectuer l'authentification (uniquement) lorsque cela est nécessaire. Étant donné que le programme vous montrant l'interface utilisateur s'exécute réellement en tant que vous et non en tant que root, il s'affiche conformément à la configuration de votre compte d'utilisateur.

En général, rien de spécial ne doit être fait pour y parvenir, même sur un système Lubuntu. Ubuntu est conçu pour que ces utilitaires puissent simplement être exécutés en tant qu'utilisateur non root, sans configuration particulière.

Mais puisque votre système est particulièrement minimal, vous n'avez probablement pas installé polkit. Vous pouvez l'obtenir en installant policykit-1 Install policykit-1 et policykit-1-gnome Install policykit-1-gnome packages.

Sudo apt-get update
Sudo apt-get install policykit-1 policykit1-1-gnome

Avec polkit installé, ces utilitaires devraient l'utiliser automatiquement et n'auront pas besoin d'être lancés en tant que root.

Cependant, cela peut ne pas convenir:

  • si vous ne voulez pas installer polkit, ou
  • pour exécuter des programmes GTK + en tant que root qui pas a été écrit pour utiliser polkit (comme Leafpad ou Gedit).

Méthode 2: définissez le thème GTK + souhaité lorsque vous exécutez gksudo.

Supposons que vous souhaitiez exécuter gedit en tant que root. Notez que cette technique fonctionne de la même manière pour les autres programmes GTK + (tels que Update Manager).

Au lieu d'exécuter gksudo gedit, Vous pouvez exécuter:

gksudo env GTK_THEME=HighContrastgedit

Remplacez HighContrast par le nom du thème souhaité.

(J'utilise env car bien que Sudo supporte la syntaxe Sudo VARIABLE=name command, gksu/gksudo ne le fait pas.)

Méthode 3: Créez un lanceur qui définit le thème souhaité.

C'est la même chose que Way 2, exécutant simplement votre programme via un lanceur plutôt que de taper une commande à chaque fois.

Pour créer un raccourci pour exécuter un programme (comme gedit) avec un thème GTK + particulier (comme HighContrast) en tant que root dans LXDE, exécutez:

lxshortcut -o ~/Desktop/'gedit (as root)'

Au lieu de gedit (as root), mettez ce que vous voulez comme nom d'affichage du lanceur.

Dans la fenêtre Propriétés du fichier qui s'affiche lorsque vous exécutez cette commande, cliquez sur l'onglet Entrée de bureau. Dans la zone de texte intitulée commande, mettez:

gksudo env GTK_THEME=HighContrastgedit

Vous pouvez laisser tout le reste vide et cliquez simplement sur OK.

Si vous le souhaitez, vous pouvez utiliser les chemins d'accès complets des exécutables en cours d'exécution (/usr/bin/gksudo Et, dans cet exemple, /usr/bin/gedit.) Mais ce n'est généralement pas nécessaire.

enter image description here
Création d'un lanceur pour gksudo env GTK_THEME HighContrast gedit. (La partie gauche de la commande n'est pas visible.)

1
Eliah Kagan

J'ai en fait le même problème que j'utilise i3wm. Je suppose que puisque vous utilisez Lubuntu, vous devriez avoir installé lxappearance. Exécutez cela avec gksudo, puis vous devriez voir votre thème pour gksudo sélectionné. Modifiez et appliquez cela, vous devriez avoir le thème souhaité pour le gksudo.

0
Richard Wong