Размер значка флага в Xfce (xfce4-xkb-plugin)

Руководства, инструкции, советы и хитрости
Ответить
Аватара пользователя
ZEN
Администратор
Сообщения: 1330
Зарегистрирован: 27 сен 2012, 18:23
Темы: 204
Откуда: Украина, Одесса
Статус: Не в сети

Размер значка флага в Xfce (xfce4-xkb-plugin)

Сообщение ZEN » 10 дек 2012, 12:46

После установки Xfce 4.10 я столкнулся с давно известной всем проблемой - размер флага раскладки в xfce4-xkb-plugin. Проблема не новая, но увы, инструкция как пересобрать xfce4-xkb-plugin в интернете пропала. Поэтому мой долг полученные ранее знания передать дальше.

В последний раз посмотрим на текущий значок:

Изображение

Посмотрели? А теперь начинаем.
  • Устанавливаем зависимости для пересборки пакета:
    /bin/bash писал(а):sudo apt-get build-dep xfce4-xkb-plugin
  • Скачиваем исходный код пакета:
    mkdir -p /tmp/xfce-xkb-plugin ; cd /tmp/xfce-xkb-plugin ; apt-get source xfce4-xkb-plugin ; rm *.tar.* *.dsc
    В каталоге /tmp/xfce-xkb-plugin будет только один каталог с версией плагина. В моем случае xfce4-xkb-plugin-0.5.4.3, заходим в этот каталог:
    /bin/bash писал(а):cd xfce4-xkb-plugin-0.5.4.3
  • Вот мы и подобрались до редактирования исходного кода. Открываем и редактируем файл panel-plugin/xkb-cairo.c
    /bin/bash писал(а):gedit panel-plugin/xkb-cairo.c
    Находим с 90 по 98 строку код. У меня они выглядят вот так

    Код: Выделить всё

        scalex = (double) (width - 4) / dim.width; 
        scaley = (double) (height - 4) / dim.height; 
    
        if (handle)
        {
            layoutx = (actual_width - width) / 2 + 2;
            layouty = (actual_height - height) / 2 + 2;
            cairo_translate (cr, layoutx, layouty); 
    И исправляем его на вот такой:

    Код: Выделить всё

        scalex = (double) (width - 8) / dim.width; 
        scaley = (double) (height - 8) / dim.height;
    
        if (handle)
        {
            layoutx = (actual_width - width) / 2 + 4;
            layouty = (actual_height - height) / 2 + 4; 
            cairo_translate (cr, layoutx, layouty); 
    Это мы изменили размер значка в трее, но есть еще один "подводный камень" - всплывающая подсказка.

    Изображение

    Исправим и его!
  • Открываем и редактируем файл panel-plugin/xkb-cairo.c
    /bin/bash писал(а):gedit panel-plugin/xkb-callbacks.c
    Ищем между 207-212 строками следующий код

    Код: Выделить всё

        if (handle)
        {
            tmp = rsvg_handle_get_pixbuf (handle);
            pixbuf = gdk_pixbuf_scale_simple (tmp, 24, 24, GDK_INTERP_BILINEAR);
            gtk_tooltip_set_icon (tooltip, pixbuf); 
    И исправляем его на вот такой:

    Код: Выделить всё

        if (handle)
        {
            tmp = rsvg_handle_get_pixbuf (handle);
            pixbuf = gdk_pixbuf_scale_simple (tmp, 30, 20, GDK_INTERP_BILINEAR);
            gtk_tooltip_set_icon (tooltip, pixbuf); 
  • Компилируем и заменяем xfce4-xkb-plugin!
    /bin/bash писал(а):./configure --prefix=/usr ; make
    После сборки должен появиться файл /tmp/xfce-xkb-plugin/xfce4-xkb-plugin-0.5.4.3/panel-plugin/xfce4-xkb-plugin

    Которым необходимо будет заменить оригинальный файл. Но сначала надо посмотреть где он находится. Для этого апплет должен быть запущен на панели. И в терминале выполняем команду
    /bin/bash писал(а):ps aux | grep xfce4-xkb | grep lib | awk '{print $11}'
    У меня плагин нашелся в /usr/lib/i386-linux-gnu/xfce4/panel-plugins/xfce4-xkb-plugin. Теперь предстоит его заменить скомпилированным. Обязательно перед этим убираем плагин с панели и выполняем команду из терминала
    /bin/bash писал(а):sudo -s ; cat /tmp/xfce-xkb-plugin/xfce4-xkb-plugin-0.5.4.3/panel-plugin/xfce4-xkb-plugin > /usr/lib/i386-linux-gnu/xfce4/panel-plugins/xfce4-xkb-plugin ; exit
  • Добавляем xfce4-xkb-plugin на панель и радуемся новому значку с нормальной всплывающей подсказкой:

    Изображение

    Изображение
  • Создаем deb-пакет для поделиться
    /bin/bash писал(а):sudo apt-get install dpkg-repack ; sudo dpkg-repack xfce4-xkb-plugin
    И в текущем каталоге получим deb-пакет xfce4-xkb-plugin_0.5.4.3-1.1_i386.deb
    Скачать готовый пакет для архитектуры i386, проверенный на CrunchBang 11 "Waldorf", можно по данной ссылке xfce4-xkb-plugin_0.5.4.3-1.1_i386
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей