Есть такой отличный индикатор раскладок клавиатуры, называется xxkb. Пользовался я этой программой практически с самого начала знакомства с Linux и всегда был доволен. Решил вот собрать эту программу в Slackware 12.1 Небольшой индикатор в виде флага в заголовке окна — что может быть удобнее?
Так же стоит заметить, что xxkb сама по себе не загружает раскладок и не манипулирует ими. Она просто отображает состояние xkb. Впрочем, обо всем этом можно прочитать на сайте.
Подготовка пакета
Скачиваем xxkb-1.10.tgz. Распаковываем, пробуем собрать.
$ xmkmf
$ make
У меня вот не получилось.
resource.c:387: ошибка: метка в конце составного оператора
Открываем файл, переходим к строке 387. Заменяем конструкцию
default:
}
на
default:
break;
}
Теперь все в порядке. Подготавливаем патч.
$ diff -u resource.c.orig resource.c | gzip > patch.resource.c.gz
Создаем иерархию каталогов и копируем туда наши файлы, что-то вроде:
xxkb/patches/patch.resource.c.gz
xxkb/slack-desc
xxkb/xxbk-1.10.tgz
xxkb/xxkb.SlackBuild
Файл slack-desc и SlackBuild берем из состава дистрибутива Slackware и правим под свои нужды. В slack-desc я просто поместил описание, взятое с официального сайта программы.
Весь SlackBuild приводить не буду, вот описание правок:
PKGNAM=xxkb
VERSION=${VERSION:-1.10}
далее немного правим код, отвечающий за наложение патчей
zcat $file | patch -p1 || exit 1
заменяем на
zcat $file | patch -p0 || exit 1
в код, занимающийся сборкой, перед вызовом make добавляем
xmkmf
и, наконец исправляем цикл, копирующий документацию в целевой каталог таким образом, чтобы он обработал все файлы с документацией входящие в состав xxkb.
cp -a \
CHANGES* LICENSE README* \
$PKG/usr/doc/${PKGNAM}-$VERSION
Ура!
Установка
Запускаем только что созданный xxkb.SlackBuild, в /tmp находим сгенерированный пакет и выполняем установку
$ sudo installpkg xxkb-1.10-i486-1.tgz
Настройка
Программа хранит свои настройки в файле
/etc/X11/app-defaults/XXkb
Я отключил главное окно программы
XXkb.mainwindow.enable: no
и изменил местоположение индикатора в заголовке окна
XXkb.button.geometry: 15x15-45+2
Вот собственно и все:-) Спасибо Ивану Паскалю за отличную программу!
