使用 gksudo 保留 GTK 主题

使用 gksudo 保留 GTK 主题

我有一台计算机,其中有两个(非同时)用户,他们都属于同一sudo组。有没有办法使用 保留用户的 GTK 主题gksudo,例如在运行更新管理器时?默认情况下使用 Raleigh 主题。

我使用 Lubuntu 14.04,带有一个简单的窗口管理器(Blackbox),没有显示管理器。

答案1

我不确定为什么通过启动的应用程序gksudo不使用用户的主题。它在完整的 Lubuntu 系统上对我有用。(但使用的是 Openbox,而不是 Blackbox。)幸运的是:

  • 对于像更新管理器这样的程序,最好的解决方案可能是安装 polkit(通常存在)并运行更新管理器没有 gksudo。 (看方法 1以下。)
  • 对于必须以 root 身份启动的应用程序,或者如果你不想安装 polkit,一种解决方法是指定你想要的主题GTK_THEME(看方法 2方法 3)。

方法 1:安装 polkit(又名 PolicyKit)。

适用于以下公用事业的最佳解决方案:

  • 软件更新程序/更新管理器 ( update-manager)
  • Ubuntu 软件中心 ( software-center)
  • Lubuntu 软件中心 ( lubuntu-software-center)
  • 软件和更新 ( software-properties-gtk)

...以及 Ubuntu 中的许多其他系统管理实用程序,根本不要以 root 身份运行它们。

通常你不需要以 root 身份运行这些实用程序,因为它们与波尔基特并在必要时使用它(而不是sudo)执行身份验证。由于显示用户界面的程序实际上是以您而不是 root 的身份运行的,因此它会根据您的用户帐户的配置进行显示。

通常,即使在 Lubuntu 系统上也无需执行任何特殊操作即可实现此目的。Ubuntu 的设计使得这些实用程序可以以非 root 用户身份运行,无需任何特殊配置。

由于您的系统特别小,您可能没有安装 polkit。您可以通过安装policykit-1安装 policykit-1policykit-1-gnome安装 policykit-1-gnome包。

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

安装 polkit 后,这些实用程序应该会自动使用它,而不需要以 root 身份启动。

但这可能并不合适:

  • 如果你不想安装 polkit,或者
  • 以 root 身份运行 GTK+ 程序没有已被编写以使用 polkit(例如 Leafpad 或 Gedit)。

方法 2:运行时设置所需的 GTK+ 主题gksudo

假设你想跑gedit以 root 身份运行。请注意,此技术对于其他 GTK+ 程序(例如更新管理器)也同样适用。

除了运行,您还可以运行:gksudo gedit

gksudo env GTK_THEME=HighContrast gedit

代替HighContrast使用所需主题的名称。

(我用env因为虽然sudo支持sudo VARIABLE=name command语法,但gksu/gksudo却不支持。)

方法 3:制作一个设置所需主题的启动器。

这与方法 2 相同,只是通过启动器运行程序,而不是每次都输入命令。

创建快捷方式运行一个程序(例如gedit)使用特定的 GTK+ 主题(例如HighContrast)在 LXDE 中以 root 身份运行:

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

代替gedit (as root),输入您想要的任何内容作为启动器的显示名称。

在运行该命令时出现的“文件属性”窗口中,单击“桌面条目”选项卡。在标有命令的文本框中,输入:

gksudo env GTK_THEME=HighContrast gedit

您可以将其他所有内容保留为空白,然后单击“确定”。

如果您愿意,您可以使用正在运行的可执行文件的完整路径(/usr/bin/gksudo和,在此示例中为/usr/bin/gedit)。但这通常不是必要的。

在此处输入图片描述
为 制作启动器gksudo env GTK_THEME HighContrast gedit。(命令的左侧部分不可见。)

答案2

我使用 i3wm 时实际上遇到了同样的问题。我想既然您使用的是 Lubuntu,那么您应该安装了 lxappearance。使用 gksudo 运行它,然后您应该会看到为 gksudo 选择了主题。更改并应用它,您应该会得到 gksudo 所需的主题。

相关内容