我安装了 codeblocks-contrib,它为我提供了更多控制功能,例如键盘快捷键设置。但是,我仍然无法弄清楚如何将暗色主题应用于除编辑器区域之外的所有区域,包括菜单栏和左窗格,就像附图所示。有人知道吗?
下图是我的 code::blocks,深色主题仅适用于编辑器区域。
答案1
我在以下链接找到了答案:http://codeisland.org/2013/codeblocks-dark-theme/
对于我这个 Linux Mint 用户来说,系统范围的版本不起作用。
我现在将在此重现此方法,以防链接消失。所有荣誉都归于此解决方法的最初发现者。
Code::Blocks 主题支持...
… 不存在。这是因为(为了便于移植)Code::Blocks GUI 是使用插件,它提供了“每个平台上的原生外观和感觉”。这相当于桌面环境认为正确的一切。
那么,要在 Code::Blocks 中获得深色主题,您需要为整个桌面环境使用深色主题吗?是也不是。
Linux 版 Code::Blocks 明确使用 wxGTK 端口创建,这意味着 wxWidgets API 围绕 Gtk API 进行封装。因此,在 Linux 上,Code::Blocks 使用 Gtk 作为其 GUI。
现在,wxGTK 端口尚未完全更新,因此它不使用 Gtk-3,而是使用(较旧的)Gtk-2。这很重要,因为主题的工作方式在这些版本之间略有不同。
对于使用 Gtk-3 的应用程序,Gnome 3 提供在其 settings.ini 文件中有一个gtk-application-prefer-dark-theme
条目,它告诉所有 Gtk-3 应用程序使用当前设置主题的深色版本(如果可用,例如 Gnome 3 默认主题“Adwaita”)。然而,这不是影响 Gtk-2 应用程序(如 Code::Blocks)。
此外,Gtk-3 应用程序可以决定不使用深色主题或始终使用它(例如 Eye of Gnome):
GtkSettings *settings = gtk_settings_get_default ();
g_object_set (G_OBJECT (settings),
"gtk-application-prefer-dark-theme", TRUE, NULL
);
(来自“侏儒之眼”来源,main.c 第 175 行) Gtk2 的深色主题
于是我去了Gnome-Look.org然后搜索了一个好的、深色的 Gtk-2 主题,找到了“优雅的侏儒” 才能很好地匹配。然后我手动将主题本身 [ Elegant-GTK
] 复制到~/.themes/
并将其图标主题 [ Elegant-AwOken
] 复制到~/.icons/
。
现在,要让 Code::Blocks 使用该主题,您有两个选择:将其设为默认的 Gtk-2 主题或告诉 Code::Blocks 明确使用您下载的主题文件。
我选择了后者。经过一番研究,我偶然发现了一篇博客文章,其中找到了以下方法:
GTK2_RC_FILES=/path/to/your/theme/gtkrc application
这会暂时将环境变量设置GTK2_RC_FILES
为主题路径,用于application
(在我们的例子中codeblocks
)的开始。Code::Blocks 现在应该具有深色外观。
[...]
启用所有默认设置
最后但同样重要的是,我希望 Code::Blocks 始终以深色 Gtk-2 主题开始。如果您在系统范围内设置主题,你不需要这样做。
我将带有临时主题的命令放在 shell 脚本中,并将文件更改/usr/share/applications/codeblocks.desktop
为:
[Desktop Entry]
Exec=/home/luke/.codeblocks/start_dark.sh
# More stuff down here...
或者您可以将文件复制到您的主目录并在那里进行修改:cp /usr/share/applications/codeblocks.desktop ~/.local/share/applications/codeblocks.desktop
脚本如下:
# It's important to give the path to the "gtkrc"-file here!
GTK2_RC_FILES=~/.themes/Elegant-GTK/gtk-2.0/gtkrc codeblocks
现在,Code::Blocks 是黑暗的。
摆脱窗户装饰
现在,我有一个黑色的编辑器和 GUI 主题,但有一个白色的窗口标题栏。为了摆脱这种情况,我安装了GnomeShell 的“Maximus”扩展。
未来
这篇文章可能很长时间都不能用了!正如 wxWidgets 的首页上所写:
2012-07-09
wxWidgets 2.9.4 has been officially released. […]
2.9 series bring many improvements compared to 2.8 series […] Compared to the previous 2.9.3 release, the most important change in this release is beta-level support for GTK+ 3 in wxGTK port.
we believe that 2.9.4 can be used in production environment […]
因此,Code::Blocks 升级并使用 Gtk-3 只是时间问题,届时它将无法按照此处描述的步骤工作。一旦遇到此问题,我将立即更新本文。我不再使用 code::blocks :(