Thunar — снимаем ограничение ширины панели

04.09.2009 | От | 4 комментария
Thunar без ограничения ширины панели закладок

С давних лет в Thunar тянется ошибка, при которой при использовании символов многобайтной кодировки, минимальный размер панели закладок становился равным длине строки «Файловая система» (File System) умноженной на количество байт, которым описывается каждый символ этой кодировки. В случае с локалью ru_RU.UTF-8, в которой кириллица кодируется двумя байтами на символ, минимальная ширина панели была в два раза больше, чем длинна закладки «Файловая система». Причиной тому является строка 307 файла thunar/thunar-shortcuts-view.c (актуально для Thunar версии 1.0.1). Комментарий к коду гласит:

ellipsizing as required, but "File System" must fit

Не совсем понятно для чего вообще нужно это ограничение на минимальную ширину. Есть два способа решить эту проблему:

  1. Привести код к верному, при котором минимальная ширина панели будет высчитываться правильно
  2. Убрать ограничение на минимальную ширину вовсе

Я выбираю второй способ, именно он кажется мне наиболее верным решением, так же являясь и наиболее простым.

Поехали! В районе строки 307 файла thunar/thunar-shortcuts-view.c находим следующий текст:

renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT,
                           "ellipsize-set", TRUE,
                           "ellipsize", PANGO_ELLIPSIZE_END,
                           "width-chars", strlen (_("File System")),
                           NULL);

Нас интересует строка

"width-chars", strlen (_("File System")),

Ее нужно просто удалить. После чего компилируем Thunar и наслаждаемся. Скриншот Thunar-а с решенной этим методом проблемой прилагается.

Ссылки:
Мой пост на Opennet
Патч (уже присутствует в ALT Linux, спасибо Денису Корявову!)

Опубликовано в: Linux | Тэги: , ,

Комментарии (4)

  1. ivan

    огромный респект! второй день ищу решение этой проблемы..

  2. Pavel Shiryaev

    Большое спасибо за этот пост! Всё не мог понят, откуда это ограничение.
    Сразу на ум пришло решение без перекомпиляции:
    Открываем бинарник Thunar (где он, можно узнать через `whereis Thunar`) в любом шестнадцатеричном реакторе (bless, hexedit, ghex).
    Находим там строчку «File System», в версии 1.0.1 такая единственная. В hex она будет «46 69 6C 65 20 53 79 73 74 65 6D»
    и меняем на что типа «46 69 6C 65 65 53 79 73 74 65 6D», те «FileeSystem». Перевод такого слова он не найдет и в результате посчитает длину от английского, а она очень удачно равна длине «Рабочий стол». Смотрится очень удачно, подправив всего один символ.

    Ну можно ещё сказать, что надо быть аккуратнее при редактировании, чтобы не произошло сдвига и если нет уверенности в результате, то сделать резервную копию.

    • Ого какой суровый способ 🙂 Ну я бы в таком случае предпочел бы подредактировать файл с переводом, убрав оттуда перевод фразы «File System», ну или поменяв на что-нибудь на латиннице.
      Кстати, в апстриме уже поправлена ошибка.

  3. samsung-sasha

    Интересная статья, особенно для тех кто совсем не в теме. Можно мне перепостить?

Оставьте отзыв

Trackback URL | RSS для этой записи