如何更改自动完成 Dropbox 中的字体大小

如何更改自动完成 Dropbox 中的字体大小

截屏:

截屏

我可能需要在主题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

构建一个包含更改的新包,然后安装它。

相关内容