截屏:

我可能需要更改主题gtkrc文件中的某些内容,但我找不到需要更改的内容,因此我将字体大小减小了一个单位
仅供参考,我在 SO 上发现了类似的问题(尽管它是关于 Ubuntu 11.10):How to change the highlight color in autocomplete box in Eclipse,这表明即使 Eclipse也在系统设置中使用它,但更令人困惑的字体是更小(就像我想要的那样)
我不相信 gtkrc 修改是可能的。
即使您将此代码添加到 gtkrc 的末尾:
style "fontchangetest" {
font_name = "Sans 20"
}
class "GtkWidget" style "fontchangetest"
Run Code Online (Sandbox Code Playgroud)
重新启动 Geany(或任何与此相关的 GTK2 应用程序),许多 UI 小部件将采用此属性,但是实际的代码编辑器和自动完成列表将保留由 Geany 指定的字体。
但是,让我们查看源代码:
apt-get source geany
cd geany-0.20
Run Code Online (Sandbox Code Playgroud)
自动完成框的字体在 scintilla/ScintillaBase.cxx 第 264 行中定义:
ac.lb->SetFont(vs.styles[STYLE_DEFAULT].font);
Run Code Online (Sandbox Code Playgroud)
该SetFont函数仅用于自动完成列表框(使用“ ack SetFont”验证),因此更改它没有任何害处。
打开 scintilla/PlatGTK.cxx,导航到第 2029 行。您将看到以下代码:
void ListBoxX::SetFont(Font &scint_font) {
// Only do for Pango font as there have been crashes for GDK fonts
if (Created() && PFont(scint_font)->pfd) {
// Current font is Pango font
gtk_widget_modify_font(PWidget(list), PFont(scint_font)->pfd);
}
}
Run Code Online (Sandbox Code Playgroud)
替换为:
void ListBoxX::SetFont(Font &scint_font) {
// Only do for Pango font as there have been crashes for GDK fonts
if (Created() && PFont(scint_font)->pfd) {
// Current font is Pango font
PangoFontDescription* pf = pango_font_description_from_string("Sans 6");
gtk_widget_modify_font(PWidget(list), pf);
}
}
Run Code Online (Sandbox Code Playgroud)
显然,您可以将“Sans 6”更改为您喜欢的任何字体和大小。这是一个非常hacky的解决方案,但是我不知道C/C++所以也许有一种更优雅的方法来做到这一点。
然后你可以:
./configure && make && sudo make install
Run Code Online (Sandbox Code Playgroud)
进行快速编译和安装(尽管强烈建议先删除现有的 geany 包)
或者更正确的方法:
sudo aptitude install build-essential devscripts ubuntu-dev-tools \
debhelper dh-make diff patch cdbs quilt gnupg fakeroot lintian \
pbuilder piuparts intltool chrpath
debuild
cd ..
sudo dpkg -i geany_0.20-1.1ubuntu1_amd64.deb
Run Code Online (Sandbox Code Playgroud)
构建一个包含更改的新包,然后安装它。