Всем здравствуйте.
В пакете xkb-data
в каталоге /usr/share/X11/xkb/geometry
лежат описания геометрии всевозможных клавиатур, известных расширению XKEYBOARD
.
Если взгялуть на содержимое файлов – они довольно-таки формально (и достаточно понятно) описывают геометрию, напр.:
xkb_geometry "pc105" {
description= "Generic 105";
width= 470;
height= 180;
shape.cornerRadius= 1;
shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } };
shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } };
shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } };
shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } };
shape "RTRN" {
{ [0,0], [28,0], [28,37], [5,37], [5,18], [0,18] } ,
{ [2,1], [26,1], [26,35], [7,35], [7,16], [2,16] } ,
approx = { [5,0], [28,37] } };
shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } };
shape "LFSH" { { [ 25,18] }, { [2,1], [ 23,16] } };
shape "RTSH" { { [ 50,18] }, { [2,1], [ 48,16] } };
shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } };
shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } };
shape "SPCE" { { [113,18] }, { [2,1], [111,16] } };
shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } };
shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } };
shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } };
shape "LED" { cornerRadius= 0, { [ 5, 1 ] } };
solid "LedPanel" {
shape= "LEDS";
top= 22;
left= 377;
color= "grey10";
};
indicator.onColor= "green";
indicator.offColor= "green30";
indicator.top= 37;
indicator.shape= "LED";
indicator "Num Lock" { left= 382; };
indicator "Caps Lock" { left= 407; };
indicator "Scroll Lock" { left= 433; };
Вопрос: как перевести это описание в картинку, понятную глазу?
Есть древний проект XKeyCaps (https://www.jwz.org/xkeycaps/, https://salsa.debian.org/debian/xkeycaps), который уже давно почти не развивается, но, если взглянуть на исходный код, то описания клавиатур там в совершенно другом, несовместимом формате (Jamie Zawinski был молод и неопытен).
Хочется чего-то подобного, но современнее. Есть ли?