截屏:
我可能需要在主题gtkrc
文件中进行一些更改,但我找不到需要更改的内容,以便将字体大小减小一个单位
仅供参考,我在 SO 上发现了类似的问题(尽管它是关于 Ubuntu 11.10):如何更改 Eclipse 中自动完成框的高亮颜色,这表明即使 Eclipse 也在使用系统设置中的此功能,但更令人困惑的是字体更小(就像我想要的那样)
答案1
我不相信通过 gtkrc 修改可以实现这一点。
即使你将这段代码添加到 gtkrc 的末尾:
style "fontchangetest" {
font_name = "Sans 20"
}
class "GtkWidget" style "fontchangetest"
重新启动 Geany(或任何 GTK2 应用程序),许多 UI 小部件将采用此属性,但实际的代码编辑器和自动完成列表将保留 Geany 指定的字体。
但是,让我们检查一下源代码:
apt-get source geany
cd geany-0.20
自动完成框的字体在 scintilla/ScintillaBase.cxx 第 264 行定义:
ac.lb->SetFont(vs.styles[STYLE_DEFAULT].font);
该SetFont
函数仅用于自动完成列表框(已通过'确认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);
}
}
替换为:
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);
}
}
显然,您可以将“Sans 6”更改为您喜欢的任何字体和大小。这是一个非常棘手的解决方案,但是我不懂 C/C++,所以也许有更优雅的方法来实现它。
然后您可以:
./configure && make && sudo make install
要进行快速编译和安装(强烈建议先删除现有的 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
构建一个包含更改的新包,然后安装它。