evince 更改文档背景颜色

先说一下用的是 debian 6,evince 版本是 2.30.3。

去年在 evince 的邮件列表中问过这个问题,得到的回答是人手不够,并且这个功能不是太紧急,因此目前并不考虑实现。随着看 pdf 的时间越来越长,白色背景看着实在很不爽,但是又不懂 gtk 编程,因此想通过修改反色的行为来实现修改背景颜色的功能,即当选择了反色的时候并不是把背景和字体的颜色都反过来,而是把背景颜色修改为我喜欢的颜色,字体的颜色不变。

先到源里把代码下下来,grep 一下关键字“invert”加上人肉筛选加上 gdb 打断点后发现实现反色的功能在 libdocument/ev-document-misc.c:

void
ev_document_misc_invert_surface (cairo_surface_t *surface) {
#if CAIRO_VERSION > CAIRO_VERSION_ENCODE(1, 9, 2)
    cairo_t *cr;

    cr = cairo_create (surface);

    /* white + DIFFERENCE -> invert 

阅读全文…