четверг, 20 марта 2014 г.

How to disable bold font into guake terminal

Жирный шрифт в окне терминала не всегда и не везде выглядит нормально, отсюда и желание многих - отображение шрифта bold'ом запретить. В gnome-terminal (да и во многих других) для этого есть галочка в настройках, хочешь включай жирный шрифт, хочешь - отключай. А в guake почему-то этого нет. Есть патчи, есть примеры, как настройку добавить, но автор добавлять эту мега-киллер-фичу не хочет.
Вот в https://github.com/Guake/guake/issues/168 есть ответ замечательный:
So, yeah, basically, bold works, and I don't see enough motivation to ever allow to disable it.

Раньше я добавлял в guake настройку для отключения bold'а, но там несколько файлов править приходится ручками, патч-то вслепую не накатишь, версия из репозитория дистрибутива обычно отличается немного от версии в репозитории автора. Поэтому решил не заморачиваться, сперва просто захардкодил отключение bold'а, но потом всё же решил оставить возможность изменения параметра через gconf, чтоб не только мне полезно было.

Итак. Всё применительно к Arch'у, в других дистрибутивах путь может немного отличаться.

Правим /usr/bin/guake.

В GConfHandler.__init__ вставляем строку
    notify_add(KEY('/style/font/allow_bold'), self.fallowbold_changed)


у меня она встала на 144 строку, над
    notify_add(KEY('/style/font/style'), self.fstyle_changed)
(я везде новый код добавил над /style/font/style)

Дальше в сам GConfHandler добавляем метод
def fallowbold_changed(self, client, connection_id, entry, data):
    policy = entry.value.get_bool()
    for i in self.guake.term_list:
        i.set_allow_bold( policy )
(я метод вставил над существующим методом fstyle_changed, 257 строка)