当前位置: 首页>>技术教程>>正文


我可以将主要的GTK3主题应用于单个应用程序吗?

, , , ,

问题描述

例如,我可以将Ambiance作为主题,但是将基本主题分配给小学的应用程序吗?

最佳解决方案

您可以使用GTK环境变量GTK_THEME=elementary来启动具有基本主题的应用程序。例如,运行GTK_THEME=elementary pantheon-files将使用基本GTK主题启动基本文件应用程序。

要在每次启动特定应用程序时应用此选项,最佳选择可能是创建自定义.desktop文件(启动程序)。

创建自定义.desktop文件

  1. 打开文件浏览器

  2. 导航到/usr/share/applications/

  3. 使用基本主题复制要启动的应用程序的启动程序(突出显示和Ctrl + C)

  4. 导航到~/.local/share/applications/并粘贴启动器(Ctrl + V)

  5. Right-click并使用文本编辑器打开启动器

  6. 修改以Exec=开头的行,以包含Exec=env GTK_THEME=elementary,然后修改该行的先前现有内容。 (所以Exec=pantheon-files将成为Exec=env GTK_THEME=elementary pantheon-files)

  7. 保存并关闭文件

下次从Unity(或您选择的应用程序启动器)启动应用程序时,它将使用基本主题。

奖励:使用命令行时使其工作

您可能还希望应用程序在从命令行启动时使用基本主题启动。为此:

  1. 打开终端应用

  2. 键入alias pantheon-files="GTK_THEME=elementary pantheon-files"(用所需的应用程序替换pantheon-files)

  3. 按Enter键


注意事项:

  1. 这不会将窗口管理器的主题更改为基本主题。

  2. 此(按设计)仅适用于您的帐户,而不是root或计算机上的任何其他人。

  3. 主题名称为cAsE-sEnsItiVe,应与主题文件夹名称匹配。


资料来源:

  1. 我是小学的贡献者;)

  2. GTK+ 3 Reference Manual: Running GTK+ Applications

  3. Set variable in .desktop file

次佳解决方案

问题仍然有效,我找到了一种方法:

  • 创建任何文件夹path/to/MY_FOLDER

  • 在其中创建一个/share/themes/文件夹(即path/to/MY_FOLDER/share/themes)。

  • 将任何GTK3主题放在后者中

  • 将主题重命名为CURRENTLY ACTIVE THEME的名称。最后,此命令将使应用程序使用重命名的主题而不是当前活动的主题:

GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON

(GTK_DATA_PREFIX=之后的路径必须是包含/share/themes/RENAMED_THEME的文件夹(并且只有那个)。这就是为什么它不是path/to/MY_FOLDER/share/themes/RENAMED_THEME,而只是path/to/MY_FOLDER。)

要将其置于启动器内,请相应更换:

Exec=sh -c 'GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATION'

第三种解决方案

它当然可能,我没有太多的主题经验,但是当你导航到/usr/share/themes/*Theme Name*/gtk-3.0/apps/目录时,你会发现.css文件,以他们定位到主题的应用程序命名,所以是的,你可以创建app-specific主题。

请注意,您提到的主题应用程序的方式可能需要完成一些工作(例如同时使Ambiance和Elementary同时工作,因为每个主题都有一个基本文件,特定于应用程序特定样式,(Gtk中的文件gtkrc) 2.0时,文件gtk.css在Gtk3.0的情况下)。

此基本主题文件包含专门针对给定主题的样式规则,因此您无法在不进行任何重大更改的情况下从Ambiance的基本主题文件创建基本的外观和感觉,即使您这样做,也会松散Ambiance看起来自己。

此外,在GNOME中,一次只能应用单个主题,例如,如果您在Ubuntu 12.04中使用了外观窗口,您知道可以从下拉列表中选择任何单个主题,以防您使用了gnome-tweak-tool,你可以为Gtk,Window框架和图标设置不同的主题,但是,它仍然不允许将特定的应用程序定位到主题,所以如前所述,如果你聪明地工作,你可以为不同的应用程序设置完全不同的主题使用基本主题文件,截至目前,没有第三方应用程序可以自己完成。

你可以自己做的一种方法是,让基本主题文件(gtk.css)只有对任何主题都是中性的基本规则,无论是黑暗还是浅色。并且使用位于上述目录中的app-specific文件编写实际主题设计,即为了设置Nautilus样式,您可以在nautilus.css文件中编写所有必需属性。与您希望定位的每个应用程序相同。显然,这样做需要一些体面的Gtk主题体验。

你可以参考this使用模板创建自己的主题,也有对GTK +更换主题皮肤体面documentation

第四种方案

是的,简单的方法是在运行应用程序的命令中将应用程序指向rc文件所在的所需路径:

GTK2_RC_FILES=/usr/share/themes/Redmond/gtk-2.0/gtkrc inkscape

这个12.04 for inkscape(仍然是Gnome2 btw)产生了这个:

unity,gnome,themes,gtk3,ubuntu

查看有关运行here的Gtk2主题的更多信息。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1915.html,未经允许,请勿转载。