Индикатор раскладки клавиатуры xxkb в IceWM Thinstation | Thinstation по русски

Индикатор раскладки клавиатуры xxkb в IceWM Thinstation


При использовании в Thinstation оконного менеджера IceWM для полного счастья не хватает индикатора раскладки клавиатуры. Рассмотрим вариант устранения этого недостатка на примере TS-5.1 с помощью программы xxkb, которая является дополнением к "клавиатурному модулю" XKB, то есть, в отличии от других подобных программ, сама не загружает никакие раскладки и не манипулирует ими. Она только отображает состояние XKB и меняет это состояние "штатными средствами" XKB.

Thinstation 5 построена на базе дистрибутива CRUX, поэтому сразу находим в гугле несколько ссылок на порты под эту систему и используем один из них для компиляции xxkb для нашей сборки. 

Нам понадобится 3 файла:

  • Архив xxkb.
  • Файл Pkgfile следующего содержания:
    name=xxkb
    version=1.10
    release=2
    source=(/ts/ports/static-source/xxkb/xxkb-1.10.tgz \
    1474055_fix.patch)
    build() {
    cd $name-$version
    patch -p1 -i $SRC/1474055_fix.patch
    xmkmf
    make BASEDIR=/usr
    make install BASEDIR=/usr DESTDIR=$PKG
    rm -rf $PKG/usr/X11R6
    }
  • Патч 1474055_fix.patch:

    diff -pruN xxkb-1.10.orig/resource.c xxkb-1.10/resource.c
    --- xxkb-1.10.orig/resource.c	2006-05-02 12:50:21.000000000 +0300
    +++ xxkb-1.10/resource.c	2006-05-02 12:51:49.000000000 +0300
    @@ -4,6 +4,7 @@
     #include <string.h>
     #include <stdlib.h>
     #include <ctype.h>
    +#include <stdio.h>
     
     #include "wlist.h"
     #include "xxkb.h"
    @@ -383,7 +384,6 @@ XImage **pixmap;
       case XpmNoMemory:
         printf("No memory for open xpm file: %s\n", name);
         break;
    -  default:
       }
     }
    

Создаём в папке thinstation/ts/ports/static-source папку xxkb и кладем туда эти файлы. Далее запускаем chroot окружение, переходим в нашу папку и запускаем сборку пакета:

./setup-croot
cd /ts/ports/static-source/xxkb
pkgmk

После всех этих манипуляций получаем пакет xxkb#1.10-2.pkg.tar.gz

Для добавления индикатора в IceWM весь он нам не нужен и отдельный пакет xxkb для Thinstation делать тоже не будем. Вместо этого копируем из архива папки bin и lib в пакет IceWM, находящийся в папке конструктора thinstation/ts/5.1/packages/icewm, из папки share копируем папку с картинками xxkb в папку thinstation/ts/5.1/packages/icewm/lib.

Вносим свои изменения для корректного отображения индикатора в трее:

  • Меняем с помощью графического редактора размер изображений **48.xpm в папке thinstation/ts/5.1/packages/icewm/lib/xxkb на 25х25 пикселей (значки при желании можно поменять на свои).
  • В файле thinstation/ts/5.1/packages/icewm/lib/X11/app-defaults/XXkb изменяем имеющиеся параметры на следующие (если есть перед исправляемой строкой знак "!" - убираем его ):
    XXkb.xpm.path: /lib/xxkb
    ...........
    XXkb.mainwindow.geometry: 25x25
    ...........
    XXkb.mainwindow.in_tray: KDE2

И напоследок добавляем запуск программы в файл  thinstation/ts/5.1/packages/icewm/bin/icewm_startup, дописав после строки
x_auth_file
строку
/bin/xxkb

Ну и всё...

Собираем свой загрузочный образ Thinstation с русской локалью, параметром XKBOP­TI­ONS="grp:ctrl_shift_togg­le,grp_led:scroll" в файле thinstation.conf.buildtime и радуемся переключателю клавиатуры:

Если у Вас так не получилось - ниже доступны готовые файлы. Распакуйте архив в папку thinstation/ts/5.1/packages и пропишите строку в icewm_startup.



 

Обсудить на форуме (комментариев 0).