Автор Тема: Размер значка флага в Xfce (xfce4-xkb-plugin)  (Прочитано 4131 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ZEN

  • Местный житель
  • ***
  • Topic Author
  • Сообщений: 218
Размер значка флага в Xfce (xfce4-xkb-plugin)
« : 17 Декабрь 2012, 02:25:17 »
После установки Xfce 4.10 в Debian Wheezy я столкнулся с давно известной всем проблемой - размер флага раскладки в xfce4-xkb-plugin. Проблема не новая, но увы, инструкция как пересобрать xfce4-xkb-plugin в интернете пропала. Поэтому мой долг передать ранее полученные знания дальше.

Данная инструкция так же была проверена в xfce 4.6

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



Посмотрели? А теперь начинаем.

1. Устанавливаем зависимости для пересборки пакета:

Цитата: /bin/bash
sudo apt-get build-dep xfce4-xkb-plugin

2. Скачиваем исходный код пакета:

Цитировать
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

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);

Это мы изменили размер значка в трее, но есть еще один "подводный камень" - всплывающая подсказка.



Исправим и его!

4. Открываем и редактируем файл 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);

5. Компилируем и заменяем 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

6. Добавляем xfce4-xkb-plugin на панель и радуемся новому значку с нормальной всплывающей подсказкой:





7. Создаем 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
« Последнее редактирование: 02 Июнь 2013, 22:33:05 от ZEN »
Crimea is Ukraine
 

Оффлайн BULATUS

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2061
Re: Размер значка флага в Xfce (xfce4-xkb-plugin)
« Ответ #1 : 17 Декабрь 2012, 02:36:37 »
Спасибо за интересный способ. Осталось теперь поменять унылые флаги на более красочные, и не обязательно прямоугольные...

Оффлайн ZEN

  • Местный житель
  • ***
  • Topic Author
  • Сообщений: 218
Re: Размер значка флага в Xfce (xfce4-xkb-plugin)
« Ответ #2 : 17 Декабрь 2012, 15:01:20 »
Спасибо за интересный способ. Осталось теперь поменять унылые флаги на более красочные, и не обязательно прямоугольные...
флаги - это уже личное дело) Мою безвкусицу хватает и на обычные флаги :) Ах да, в целях правосудия, раньше был патч где-то в рассылке FreeBSD... Но так, как он не гуглится, инструкция восстановлена по памяти. Если у кого-то есть опыт создания *.patсh файла, то инструкцию можно будет укоротить.
Crimea is Ukraine
 

Теги: