Openbox - наработочки...

Одним PKBUILD'ом тут не отделаться, ибо:
[email protected]:fbxkb-0.6$ diff fbxkb.c fbxkb1.c 
380a381,385
>             } else {
>                 group2info[no].sym = g_strdup(tok);
>                 group2info[no].flag = sym2flag(tok);
>                 group2info[no].name = XGetAtomName(dpy, kbd_desc_ptr->names->groups[no]);
>             }           
382,384d385
<             group2info[no].sym = g_strdup(tok);
<             group2info[no].flag = sym2flag(tok);
<             group2info[no].name = XGetAtomName(dpy, kbd_desc_ptr->names->groups[no]);
Ну так есть немало PKGBUILD-ов с приложенными патчами.
http://aur.archlinux.org/packages.php?O=0&K=patch&do_Search=Go
Не совсем там бага порылась :) Разработчик или не знал, или пофиг было, но вот сдесь
            if (!strcmp(tok, "pc") || !strcmp(tok, "group"))
                continue;
он отсек только псевдоимена pc & group, и видимо не в домек что бывают
[[email protected] ~]$ xlsatoms | grep pc
185	pc+us+inet(evdev)
200	pc(pc105)
239	pc+us+ru(winkeys):2+inet(evdev)+group(rctrl_toggle)
241	pc(pc104)
366	pc+us+ru(winkeys):2+inet(evdev)+group(rctrl_toggle)+terminate(ctrl_alt_bksp)
тоесть evdev и terminate и что там еще у вас в опциях описано… В результате по событию клавиатура становится terminate (или evdev) по умолчанию и значек для нее ставится zz.png, тот который с двумя ??. Бага, короче такая. Я в переделанном варианте просто отсек “pc” и все где больше 2х символов. А в более сложных переключалках массивы перебирают.
			if ( !strcmp(tok, "pc") || (strlen(tok) != 2) )
				continue;
 
Зарегистрироваться или войдите чтобы оставить сообщение.