40 files changed, 13021 insertions, 0 deletions
diff --git a/apps/Settings/keyz-cfg.desktop b/apps/Settings/keyz-cfg.desktop new file mode 100644 index 0000000..104eb73 --- a/dev/null +++ b/apps/Settings/keyz-cfg.desktop | |||
@@ -0,0 +1,6 @@ | |||
1 | [Desktop Entry] | ||
2 | Comment=keyz configurator | ||
3 | Exec=keyz-cfg | ||
4 | Icon=keyz-cfg | ||
5 | Type=Application | ||
6 | Name=keyz configurator | ||
diff --git a/noncore/applets/zkbapplet/config.in b/noncore/applets/zkbapplet/config.in new file mode 100644 index 0000000..19d6597 --- a/dev/null +++ b/noncore/applets/zkbapplet/config.in | |||
@@ -0,0 +1,4 @@ | |||
1 | config ZKBAPPLET | ||
2 | boolean "zkbapplet (switch keyboard layout on the fly)" | ||
3 | default "n" | ||
4 | depends ( LIBQPE || LIBQPE-X11 ) && KEYZCFG | ||
diff --git a/noncore/applets/zkbapplet/zkbapplet.control b/noncore/applets/zkbapplet/zkbapplet.control new file mode 100644 index 0000000..973373f --- a/dev/null +++ b/noncore/applets/zkbapplet/zkbapplet.control | |||
@@ -0,0 +1,9 @@ | |||
1 | Package: zkbapplet | ||
2 | Files: plugins/applets/libzkbapplet.so* pics/zkb-disabled.png share/zkb/*.xml | ||
3 | Priority: optional | ||
4 | Section: opie/applets | ||
5 | Maintainer: Rajko Albrecht <alwin@handhelds.org> | ||
6 | Architecture: arm | ||
7 | Depends: task-opie-minimal, key-cfg | ||
8 | Description: ZKB Applet | ||
9 | Version: 0.6.0-$EXTRAVERSION | ||
diff --git a/noncore/applets/zkbapplet/zkbapplet.cpp b/noncore/applets/zkbapplet/zkbapplet.cpp new file mode 100644 index 0000000..6c71568 --- a/dev/null +++ b/noncore/applets/zkbapplet/zkbapplet.cpp | |||
@@ -0,0 +1,49 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <qlabel.h> | ||
3 | #include <qbutton.h> | ||
4 | #include <qwindowsystem_qws.h> | ||
5 | #include "zkbapplet.h" | ||
6 | #include "zkbwidget.h" | ||
7 | |||
8 | |||
9 | ZkbApplet::ZkbApplet() : app(0){ | ||
10 | } | ||
11 | |||
12 | ZkbApplet::~ZkbApplet() | ||
13 | { | ||
14 | if (app) delete app; | ||
15 | } | ||
16 | |||
17 | QWidget* ZkbApplet::applet(QWidget* parent) { | ||
18 | if (app == 0) { | ||
19 | app = new ZkbWidget(parent); | ||
20 | } | ||
21 | |||
22 | return app; | ||
23 | } | ||
24 | |||
25 | int ZkbApplet::position() const { | ||
26 | return 8; | ||
27 | } | ||
28 | |||
29 | QRESULT ZkbApplet::queryInterface(const QUuid& uuid, QUnknownInterface** iface) { | ||
30 | |||
31 | *iface = 0; | ||
32 | if (uuid == IID_QUnknown) { | ||
33 | *iface = this; | ||
34 | } else if (uuid == IID_TaskbarApplet) { | ||
35 | *iface = this; | ||
36 | } else { | ||
37 | return QS_FALSE; | ||
38 | } | ||
39 | |||
40 | if (*iface) { | ||
41 | (*iface)->addRef(); | ||
42 | } | ||
43 | |||
44 | return QS_OK; | ||
45 | } | ||
46 | |||
47 | Q_EXPORT_INTERFACE() { | ||
48 | Q_CREATE_INSTANCE(ZkbApplet) | ||
49 | } | ||
diff --git a/noncore/applets/zkbapplet/zkbapplet.h b/noncore/applets/zkbapplet/zkbapplet.h new file mode 100644 index 0000000..fcf03b5 --- a/dev/null +++ b/noncore/applets/zkbapplet/zkbapplet.h | |||
@@ -0,0 +1,23 @@ | |||
1 | #include "qpe/taskbarappletinterface.h" | ||
2 | |||
3 | #ifndef ZKBAPPLET_H | ||
4 | #define ZKBAPPLET_H | ||
5 | |||
6 | class ZkbWidget; | ||
7 | |||
8 | class ZkbApplet : public TaskbarAppletInterface { | ||
9 | public: | ||
10 | ZkbApplet(); | ||
11 | virtual ~ZkbApplet(); | ||
12 | |||
13 | QRESULT queryInterface(const QUuid&, QUnknownInterface**); | ||
14 | Q_REFCOUNT | ||
15 | |||
16 | virtual QWidget* applet(QWidget*); | ||
17 | virtual int position() const; | ||
18 | |||
19 | protected: | ||
20 | ZkbWidget* app; | ||
21 | }; | ||
22 | |||
23 | #endif | ||
diff --git a/noncore/applets/zkbapplet/zkbapplet.pro b/noncore/applets/zkbapplet/zkbapplet.pro new file mode 100644 index 0000000..22615d0 --- a/dev/null +++ b/noncore/applets/zkbapplet/zkbapplet.pro | |||
@@ -0,0 +1,22 @@ | |||
1 | TEMPLATE = lib | ||
2 | CONFIG += qt plugin warn_on release | ||
3 | HEADERS = zkbapplet.h\ | ||
4 | zkbwidget.h \ | ||
5 | ../../apps/keyz-cfg/zkbcfg.h \ | ||
6 | ../../apps/keyz-cfg/zkbnames.h \ | ||
7 | ../../apps/keyz-cfg/zkbxml.h \ | ||
8 | ../../apps/keyz-cfg/zkb.h | ||
9 | SOURCES = zkbapplet.cpp \ | ||
10 | zkbwidget.cpp \ | ||
11 | ../../apps/keyz-cfg/zkbcfg.cpp \ | ||
12 | ../../apps/keyz-cfg/zkbnames.cpp \ | ||
13 | ../../apps/keyz-cfg/zkbxml.cpp \ | ||
14 | ../../apps/keyz-cfg/zkb.cpp | ||
15 | TARGET = zkbapplet | ||
16 | DESTDIR = $(OPIEDIR)/plugins/applets | ||
17 | INCLUDEPATH += $(OPIEDIR)/include ../../apps/keyz-cfg | ||
18 | DEPENDPATH += ../$(OPIEDIR)/include | ||
19 | VERSION = 0.6.0 | ||
20 | LIBS += -lqpe | ||
21 | |||
22 | include ( $(OPIEDIR)/include.pro ) | ||
diff --git a/noncore/applets/zkbapplet/zkbwidget.cpp b/noncore/applets/zkbapplet/zkbwidget.cpp new file mode 100644 index 0000000..05a76e7 --- a/dev/null +++ b/noncore/applets/zkbapplet/zkbwidget.cpp | |||
@@ -0,0 +1,150 @@ | |||
1 | #include <qpe/qcopenvelope_qws.h> | ||
2 | #include <qpe/applnk.h> | ||
3 | #include <qpe/qpeapplication.h> | ||
4 | #include <qpe/resource.h> | ||
5 | #include <stdio.h> | ||
6 | #include <unistd.h> | ||
7 | #include "zkbwidget.h" | ||
8 | #include "zkbcfg.h" | ||
9 | |||
10 | ZkbWidget::ZkbWidget(QWidget* parent):QLabel(parent),keymap(0), | ||
11 | disabled(Resource::loadPixmap("zkb-disabled")) { | ||
12 | |||
13 | labels = new QPopupMenu(); | ||
14 | connect(labels, SIGNAL(activated(int)), this, | ||
15 | SLOT(labelChanged(int))); | ||
16 | |||
17 | loadKeymap(); | ||
18 | |||
19 | channel = new QCopChannel("QPE/zkb", this); | ||
20 | connect(channel, SIGNAL(received(const QCString&, const QByteArray&)), | ||
21 | this, SLOT(signalReceived(const QCString&, const QByteArray&))); | ||
22 | setFixedWidth ( AppLnk::smallIconSize() ); | ||
23 | setFixedHeight ( AppLnk::smallIconSize() ); | ||
24 | } | ||
25 | |||
26 | ZkbWidget::~ZkbWidget() { | ||
27 | } | ||
28 | |||
29 | bool ZkbWidget::loadKeymap() { | ||
30 | ZkbConfig c(QPEApplication::qpeDir()+"/share/zkb"); | ||
31 | QFontMetrics fm(font()); | ||
32 | |||
33 | if (keymap != 0) { | ||
34 | delete keymap; | ||
35 | keymap = 0; | ||
36 | } | ||
37 | |||
38 | Keymap* km = new Keymap(); | ||
39 | |||
40 | if (!c.load("zkb.xml", *km, "")) { | ||
41 | delete km; | ||
42 | setPixmap(disabled); | ||
43 | return false; | ||
44 | } | ||
45 | |||
46 | connect(km, SIGNAL(stateChanged(const QString&)), | ||
47 | this, SLOT(stateChanged(const QString&))); | ||
48 | |||
49 | qwsServer->setKeyboardFilter(km); | ||
50 | |||
51 | Keymap* oldkm = keymap; | ||
52 | keymap = km; | ||
53 | |||
54 | if (oldkm != 0) { | ||
55 | delete oldkm; | ||
56 | } | ||
57 | |||
58 | setText(keymap->getCurrentLabel()); | ||
59 | |||
60 | labels->clear(); | ||
61 | QStringList l = keymap->listLabels(); | ||
62 | labels->insertItem(disabled, 0, 0); | ||
63 | int n = 1; | ||
64 | w = 0; | ||
65 | for(QStringList::Iterator it = l.begin(); it != l.end(); | ||
66 | ++it, n++) { | ||
67 | |||
68 | // printf("label: %s\n", (const char*) (*it).utf8()); | ||
69 | |||
70 | labels->insertItem(*it, n, n); | ||
71 | int lw = fm.width(*it); | ||
72 | if (lw > w) { | ||
73 | w = lw; | ||
74 | } | ||
75 | } | ||
76 | |||
77 | if (w == 0) { | ||
78 | hide(); | ||
79 | } else { | ||
80 | show(); | ||
81 | } | ||
82 | return true; | ||
83 | } | ||
84 | |||
85 | QSize ZkbWidget::sizeHint() const { | ||
86 | return QSize(AppLnk::smallIconSize(),AppLnk::smallIconSize()); | ||
87 | } | ||
88 | |||
89 | void ZkbWidget::stateChanged(const QString& s) { | ||
90 | //qDebug("stateChanged: %s\n", (const char*) s.utf8()); | ||
91 | setText(s); | ||
92 | } | ||
93 | |||
94 | void ZkbWidget::labelChanged(int id) { | ||
95 | if (id == 0) { | ||
96 | keymap->disable(); | ||
97 | setPixmap(disabled); | ||
98 | return; | ||
99 | } | ||
100 | |||
101 | keymap->enable(); | ||
102 | |||
103 | QStringList l = keymap->listLabels(); | ||
104 | QString lbl = l[id-1]; | ||
105 | |||
106 | //printf("labelChanged: %s\n", (const char*) lbl.utf8()); | ||
107 | State* state = keymap->getStateByLabel(lbl); | ||
108 | if (state != 0) { | ||
109 | keymap->setCurrentState(state); | ||
110 | setText(lbl); | ||
111 | } | ||
112 | } | ||
113 | |||
114 | void ZkbWidget::mouseReleaseEvent(QMouseEvent*) { | ||
115 | QSize sh = labels->sizeHint(); | ||
116 | QPoint p = mapToGlobal(QPoint((width()-sh.width())/2,-sh.height())); | ||
117 | labels->exec(p); | ||
118 | } | ||
119 | |||
120 | void ZkbWidget::signalReceived(const QCString& msg, const QByteArray& data) { | ||
121 | QDataStream stream(data, IO_ReadOnly); | ||
122 | |||
123 | if (msg == "enable()") { | ||
124 | keymap->enable(); | ||
125 | } else if (msg == "disable()") { | ||
126 | keymap->disable(); | ||
127 | } else if (msg == "reload()") { | ||
128 | QCopEnvelope("QPE/System", "busy()"); | ||
129 | QTimer::singleShot(0, this, SLOT(reload())); | ||
130 | } else if (msg == "switch(QString)") { | ||
131 | QString lbl; | ||
132 | stream >> lbl; | ||
133 | |||
134 | if (keymap != 0) { | ||
135 | State* state = keymap->getStateByLabel(lbl); | ||
136 | if (state != 0) { | ||
137 | keymap->setCurrentState(state); | ||
138 | setText(lbl); | ||
139 | } | ||
140 | } | ||
141 | } else if (msg == "debug(QString)") { | ||
142 | QString flag; | ||
143 | stream >> flag; | ||
144 | } | ||
145 | } | ||
146 | |||
147 | void ZkbWidget::reload() { | ||
148 | loadKeymap(); | ||
149 | QCopEnvelope("QPE/System", "notBusy()"); | ||
150 | } | ||
diff --git a/noncore/applets/zkbapplet/zkbwidget.h b/noncore/applets/zkbapplet/zkbwidget.h new file mode 100644 index 0000000..a943563 --- a/dev/null +++ b/noncore/applets/zkbapplet/zkbwidget.h | |||
@@ -0,0 +1,38 @@ | |||
1 | #ifndef ZKBWIDGET_H | ||
2 | #define ZKBWIDGET_H | ||
3 | |||
4 | #include <qwidget.h> | ||
5 | #include <qlabel.h> | ||
6 | #include <qpopupmenu.h> | ||
7 | #include <qpixmap.h> | ||
8 | #include <qcopchannel_qws.h> | ||
9 | |||
10 | #include "zkb.h" | ||
11 | |||
12 | class ZkbWidget : public QLabel { | ||
13 | Q_OBJECT | ||
14 | |||
15 | public: | ||
16 | ZkbWidget(QWidget* parent); | ||
17 | ~ZkbWidget(); | ||
18 | |||
19 | QSize sizeHint() const; | ||
20 | |||
21 | protected: | ||
22 | QLabel* label; | ||
23 | Keymap* keymap; | ||
24 | QPopupMenu* labels; | ||
25 | QCopChannel* channel; | ||
26 | int w, h; | ||
27 | QPixmap disabled; | ||
28 | |||
29 | bool loadKeymap(); | ||
30 | void mouseReleaseEvent(QMouseEvent*); | ||
31 | |||
32 | protected slots: | ||
33 | void stateChanged(const QString&); | ||
34 | void labelChanged(int id); | ||
35 | void signalReceived(const QCString& msg, const QByteArray& data); | ||
36 | void reload(); | ||
37 | }; | ||
38 | #endif | ||
diff --git a/noncore/apps/keyz-cfg/cfgdlg.cpp b/noncore/apps/keyz-cfg/cfgdlg.cpp new file mode 100644 index 0000000..863f21e --- a/dev/null +++ b/noncore/apps/keyz-cfg/cfgdlg.cpp | |||
@@ -0,0 +1,131 @@ | |||
1 | |||
2 | #include <qdir.h> | ||
3 | #include <qpe/qpeapplication.h> | ||
4 | #include <qpe/qcopenvelope_qws.h> | ||
5 | #include <unistd.h> | ||
6 | #include "cfgdlg.h" | ||
7 | |||
8 | CfgDlg::CfgDlg(QWidget* parent, CfgFile* cf, QApplication* app):QDialog(parent), cfile(cf), application(app) { | ||
9 | setCaption(tr("keyz configurator")); | ||
10 | |||
11 | QGridLayout* gl = new QGridLayout(this, 7, 5, 5, 5); | ||
12 | |||
13 | QLabel* flabel = new QLabel("Available Keymaps", this); | ||
14 | files = new QListBox(this); | ||
15 | QPushButton* addButton = new QPushButton(">>", this); //add->setText("Add"); | ||
16 | connect(addButton, SIGNAL(clicked()), this, SLOT(add())); | ||
17 | QLabel* klabel = new QLabel("Selected Keymaps", this); | ||
18 | keymaps = new QListBox(this); | ||
19 | connect(keymaps, SIGNAL(highlighted(const QString&)), this, SLOT(keymapHighlighted(const QString&))); | ||
20 | QPushButton* delButton = new QPushButton("<<", this); //del->setText("Delete"); | ||
21 | connect(delButton, SIGNAL(clicked()), this, SLOT(del())); | ||
22 | QPushButton* slabelButton = new QPushButton("Set Label", this); //apply->setText("Apply"); | ||
23 | connect(slabelButton, SIGNAL(clicked()), this, SLOT(setLabel())); | ||
24 | QLabel* l = new QLabel("Label", this); | ||
25 | label = new QLineEdit(this); | ||
26 | QLabel* adlabel = new QLabel("Auto Repeat Delay (ms)", this); | ||
27 | QLabel* aplabel = new QLabel("Auto Repeat Period (ms)", this); | ||
28 | ad = new QSpinBox(50, 5000, 5, this); | ||
29 | ap = new QSpinBox(0, 5000, 5, this); | ||
30 | |||
31 | //QLabel* adms = new QLabel("ms", this); | ||
32 | //QLabel* apms = new QLabel("ms", this); | ||
33 | |||
34 | //QCheckBox* enable = new QCheckBox("Enable", t); | ||
35 | |||
36 | gl->setColStretch(0, 1); | ||
37 | gl->setColStretch(1, 1); | ||
38 | gl->setColStretch(3, 1); | ||
39 | gl->setColStretch(4, 1); | ||
40 | gl->setRowStretch(3, 1); | ||
41 | gl->addMultiCellWidget(flabel, 0, 0, 0, 1); | ||
42 | gl->addMultiCellWidget(klabel, 0, 0, 3, 4); | ||
43 | gl->addMultiCellWidget(files, 1, 3, 0, 1); | ||
44 | gl->addMultiCellWidget(keymaps, 1, 3, 3, 4); | ||
45 | gl->addWidget(addButton, 1, 2); | ||
46 | gl->addWidget(delButton, 2, 2); | ||
47 | |||
48 | gl->addWidget(l, 4, 0); | ||
49 | gl->addWidget(label, 4, 1); | ||
50 | gl->addMultiCellWidget(slabelButton, 4, 4, 3, 4); | ||
51 | |||
52 | gl->addMultiCellWidget(adlabel, 5, 5, 0, 2); | ||
53 | gl->addMultiCellWidget(ad, 5, 5, 3, 4); | ||
54 | //gl->addWidget(adms, 5, 3); | ||
55 | |||
56 | gl->addMultiCellWidget(aplabel, 6, 6, 0, 2); | ||
57 | gl->addMultiCellWidget(ap, 6, 6, 3, 4); | ||
58 | |||
59 | //gl->addWidget(apms, 6, 3); | ||
60 | |||
61 | QList<CfgEntry>& e = cfile->getEntries(); | ||
62 | |||
63 | for(uint i = 0; i < e.count(); i++) { | ||
64 | CfgEntry* entry = e.at(i); | ||
65 | keymaps->insertItem(entry->getFile()); | ||
66 | m.insert(entry->getFile(), entry->getLabel()); | ||
67 | } | ||
68 | |||
69 | QDir dir(QPEApplication::qpeDir()+"/share/zkb", "*.xml"); | ||
70 | QStringList flist = dir.entryList(); | ||
71 | QStringList::Iterator sit; | ||
72 | for(sit = flist.begin(); sit != flist.end(); ++sit) { | ||
73 | if (*sit != "common.xml" && *sit != "zkb.xml" && m.find(*sit) == m.end()) { | ||
74 | files->insertItem(*sit); | ||
75 | } | ||
76 | } | ||
77 | |||
78 | ad->setValue(cfile->getAutorepeatDelay()); | ||
79 | ap->setValue(cfile->getAutorepeatPeriod()); | ||
80 | |||
81 | //gl->addMultiCellWidget(enable, 7, 7, 0, 4); | ||
82 | } | ||
83 | |||
84 | CfgDlg::~CfgDlg() { | ||
85 | } | ||
86 | |||
87 | void CfgDlg::add() { | ||
88 | if (!files->currentText().isEmpty()) { | ||
89 | QString t = files->currentText(); | ||
90 | files->removeItem(files->currentItem()); | ||
91 | keymaps->insertItem(t); | ||
92 | cfile->replaceEntry(t, ""); | ||
93 | m.replace(t, ""); | ||
94 | } | ||
95 | } | ||
96 | |||
97 | void CfgDlg::del() { | ||
98 | if (!keymaps->currentText().isEmpty()) { | ||
99 | QString t = keymaps->currentText(); | ||
100 | keymaps->removeItem(keymaps->currentItem()); | ||
101 | cfile->deleteEntry(t); | ||
102 | files->insertItem(t); | ||
103 | m.remove(files->currentText()); | ||
104 | } | ||
105 | } | ||
106 | |||
107 | void CfgDlg::setLabel() { | ||
108 | if (!keymaps->currentText().isEmpty()) { | ||
109 | cfile->replaceEntry(keymaps->currentText(), | ||
110 | label->text()); | ||
111 | m.replace(keymaps->currentText(), label->text()); | ||
112 | } | ||
113 | } | ||
114 | |||
115 | void CfgDlg::keymapHighlighted(const QString&text) { | ||
116 | label->setText(*m.find(text)); | ||
117 | } | ||
118 | |||
119 | |||
120 | void CfgDlg::accept() { | ||
121 | cfile->setAutorepeatDelay(ad->value()); | ||
122 | cfile->setAutorepeatPeriod(ap->value()); | ||
123 | |||
124 | CfgParser p; | ||
125 | p.save(QPEApplication::qpeDir()+"/share/zkb/zkb.xml", *cfile); | ||
126 | QCopEnvelope("QPE/zkb", "reload()"); | ||
127 | |||
128 | QDialog::accept(); | ||
129 | parentWidget()->close(false); | ||
130 | } | ||
131 | |||
diff --git a/noncore/apps/keyz-cfg/cfgdlg.h b/noncore/apps/keyz-cfg/cfgdlg.h new file mode 100644 index 0000000..16732ee --- a/dev/null +++ b/noncore/apps/keyz-cfg/cfgdlg.h | |||
@@ -0,0 +1,39 @@ | |||
1 | #include <qlabel.h> | ||
2 | #include <qlistbox.h> | ||
3 | #include <qpushbutton.h> | ||
4 | #include <qlineedit.h> | ||
5 | #include <qlayout.h> | ||
6 | #include <qcheckbox.h> | ||
7 | #include <qspinbox.h> | ||
8 | #include <qdialog.h> | ||
9 | #include <qapplication.h> | ||
10 | |||
11 | #include "cfgfile.h" | ||
12 | |||
13 | class CfgDlg : public QDialog { | ||
14 | Q_OBJECT | ||
15 | |||
16 | public: | ||
17 | CfgDlg(QWidget* parent, CfgFile* cfile, QApplication *); | ||
18 | virtual ~CfgDlg(); | ||
19 | |||
20 | protected: | ||
21 | CfgFile* cfile; | ||
22 | QApplication* application; | ||
23 | |||
24 | QMap<QString, QString> m; | ||
25 | |||
26 | QListBox* files; | ||
27 | QListBox* keymaps; | ||
28 | QLineEdit* label; | ||
29 | QSpinBox* ap; | ||
30 | QSpinBox* ad; | ||
31 | |||
32 | virtual void accept(); | ||
33 | |||
34 | protected slots: | ||
35 | void add(); | ||
36 | void del(); | ||
37 | void setLabel(); | ||
38 | void keymapHighlighted(const QString&); | ||
39 | }; | ||
diff --git a/noncore/apps/keyz-cfg/cfgfile.cpp b/noncore/apps/keyz-cfg/cfgfile.cpp new file mode 100644 index 0000000..b0dc968 --- a/dev/null +++ b/noncore/apps/keyz-cfg/cfgfile.cpp | |||
@@ -0,0 +1,338 @@ | |||
1 | #include <qmessagebox.h> | ||
2 | #include "cfgfile.h" | ||
3 | |||
4 | // CfgEntry implementation | ||
5 | CfgEntry::CfgEntry() { | ||
6 | } | ||
7 | |||
8 | CfgEntry::CfgEntry(const QString& f, const QString& l): | ||
9 | file(f), label(l) { | ||
10 | } | ||
11 | |||
12 | const QString& CfgEntry::getFile() const { | ||
13 | return file; | ||
14 | } | ||
15 | |||
16 | void CfgEntry::setFile(const QString& f) { | ||
17 | file = f; | ||
18 | } | ||
19 | |||
20 | const QString& CfgEntry::getLabel() const { | ||
21 | return label; | ||
22 | } | ||
23 | |||
24 | void CfgEntry::setLabel(const QString& f) { | ||
25 | label = f; | ||
26 | } | ||
27 | |||
28 | // CfgFile implementation | ||
29 | CfgFile::CfgFile():ardelay(400), arperiod(80) { | ||
30 | } | ||
31 | |||
32 | CfgFile::~CfgFile() { | ||
33 | } | ||
34 | |||
35 | QList<CfgEntry>& CfgFile::getEntries() { | ||
36 | return entries; | ||
37 | } | ||
38 | |||
39 | bool CfgFile::replaceEntry(const QString& file, const QString& label, int index) { | ||
40 | deleteEntry(file); | ||
41 | |||
42 | CfgEntry* entry = new CfgEntry(file, label); | ||
43 | if (index >= 0) { | ||
44 | entries.insert(index, entry); | ||
45 | } else { | ||
46 | entries.append(entry); | ||
47 | } | ||
48 | |||
49 | return true; | ||
50 | } | ||
51 | |||
52 | bool CfgFile::deleteEntry(const QString& file) { | ||
53 | for(int i = 0; i < (int) entries.count(); i++) { | ||
54 | CfgEntry* entry = entries.at(i); | ||
55 | if (entry->getFile() == file) { | ||
56 | entries.remove(i); | ||
57 | return true; | ||
58 | } | ||
59 | } | ||
60 | return false; | ||
61 | } | ||
62 | |||
63 | int CfgFile::getAutorepeatDelay() const { | ||
64 | return ardelay; | ||
65 | } | ||
66 | |||
67 | void CfgFile::setAutorepeatDelay(int n) { | ||
68 | ardelay = n; | ||
69 | } | ||
70 | |||
71 | int CfgFile::getAutorepeatPeriod() const { | ||
72 | return arperiod; | ||
73 | } | ||
74 | |||
75 | void CfgFile::setAutorepeatPeriod(int n) { | ||
76 | arperiod = n; | ||
77 | } | ||
78 | |||
79 | // CfgParser implementation | ||
80 | CfgParser::CfgParser() { | ||
81 | } | ||
82 | |||
83 | bool CfgParser::load(QString file, CfgFile& cfg) { | ||
84 | QFile f(file); | ||
85 | QXmlInputSource is(f); | ||
86 | QXmlSimpleReader reader; | ||
87 | CfgHandler p(*this); | ||
88 | |||
89 | reader.setErrorHandler(this); | ||
90 | reader.setContentHandler(&p); | ||
91 | |||
92 | err = ""; | ||
93 | ardelay = -1; | ||
94 | arperiod = -1; | ||
95 | reader.parse(is); | ||
96 | |||
97 | if (!err.isEmpty()) { | ||
98 | qDebug(err); | ||
99 | return false; | ||
100 | } | ||
101 | |||
102 | QMap<QString, QString>::Iterator fit, lit; | ||
103 | for(uint i = 0; i < includeList.count(); i++) { | ||
104 | QString file = *includeList.at(i); | ||
105 | fit = includes.find(file); | ||
106 | QString prefix = fit.data(); | ||
107 | QString label = ""; | ||
108 | |||
109 | qDebug("include: file=" + fit.key() + ", prefix=" + fit.data()); | ||
110 | lit = labels.find(prefix+":*"); | ||
111 | if (lit != labels.end()) { | ||
112 | label = lit.data(); | ||
113 | } | ||
114 | |||
115 | cfg.replaceEntry(file, label); | ||
116 | } | ||
117 | |||
118 | if (ardelay != -1) { | ||
119 | cfg.setAutorepeatDelay(ardelay); | ||
120 | } | ||
121 | |||
122 | if (arperiod != -1) { | ||
123 | cfg.setAutorepeatPeriod(arperiod); | ||
124 | } | ||
125 | |||
126 | return true; | ||
127 | } | ||
128 | |||
129 | bool CfgParser::save(QString file, CfgFile& cfg) { | ||
130 | FILE* f = fopen((const char*) file.local8Bit(), "w"); | ||
131 | |||
132 | fprintf(f, "<keymap autorepeat-delay=\"%d\" autorepeat-period=\"%d\" " | ||
133 | "author=\"keyzcfg\">\n", cfg.getAutorepeatDelay(), | ||
134 | cfg.getAutorepeatPeriod()); | ||
135 | |||
136 | QList<CfgEntry>& entries = cfg.getEntries(); | ||
137 | int n; | ||
138 | |||
139 | for(n=0; n < (int) entries.count(); n++) { | ||
140 | CfgEntry* entry = entries.at(n); | ||
141 | QString l = entry->getLabel(); | ||
142 | if (!l.isEmpty()) { | ||
143 | fprintf(f, "\t<label name=\"%s\" state=\"km%d:*\"/>\n", | ||
144 | (const char*) l.utf8(), n); | ||
145 | } | ||
146 | } | ||
147 | |||
148 | for(n=0; n < (int) entries.count(); n++) { | ||
149 | CfgEntry* entry = entries.at(n); | ||
150 | fprintf(f, "\t<include file=\"%s\" prefix=\"km%d\"/>\n", | ||
151 | (const char*) entry->getFile().utf8(), n); | ||
152 | } | ||
153 | |||
154 | int k = n-1; | ||
155 | char* states[] = { "LShift", "LShift-Caps", "LShift-Num", | ||
156 | "LShift-Num-Caps", 0}; | ||
157 | |||
158 | for(n=0; n < (int) entries.count(); n++) { | ||
159 | QString nstate = "km" + QString::number(n+1); | ||
160 | if (n == k) { | ||
161 | nstate = "km" + QString::number(0); | ||
162 | } | ||
163 | |||
164 | for(int i = 0; states[i] != 0; i++) { | ||
165 | fprintf(f, "\t<state name=\"km%d:%s\">\n", | ||
166 | n, states[i]); | ||
167 | fprintf(f, "\t\t<map keycode=\"Middle\" pressed=\"true\">\n"); | ||
168 | fprintf(f, "\t\t\t<next-state name=\"%s:%s\"/>\n", | ||
169 | (const char*) nstate.utf8(), states[i]); | ||
170 | fprintf(f, "\t\t</map>\n\t</state>\n\n"); | ||
171 | } | ||
172 | } | ||
173 | |||
174 | fprintf(f, "\t<state name=\"km0:Normal\" default=\"true\"/>\n"); | ||
175 | |||
176 | fprintf(f, "</keymap>"); | ||
177 | fclose(f); | ||
178 | return true; | ||
179 | } | ||
180 | |||
181 | CfgParser::~CfgParser() { | ||
182 | } | ||
183 | |||
184 | int CfgParser::getAutorepeatDelay() const { | ||
185 | return ardelay; | ||
186 | } | ||
187 | |||
188 | void CfgParser::setAutorepeatDelay(int n) { | ||
189 | ardelay = n; | ||
190 | } | ||
191 | |||
192 | int CfgParser::getAutorepeatPeriod() const { | ||
193 | return arperiod; | ||
194 | } | ||
195 | |||
196 | void CfgParser::setAutorepeatPeriod(int n) { | ||
197 | arperiod = n; | ||
198 | } | ||
199 | |||
200 | void CfgParser::addLabel(const QString& name, const QString& state) { | ||
201 | labels.insert(state, name); | ||
202 | labelList.append(&labels.find(state).data()); | ||
203 | } | ||
204 | |||
205 | void CfgParser::addFile(const QString& file, const QString& prefix) { | ||
206 | includes.insert(file, prefix); | ||
207 | includeList.append(&includes.find(file).key()); | ||
208 | } | ||
209 | |||
210 | QString CfgParser::errorString() { | ||
211 | return err; | ||
212 | } | ||
213 | |||
214 | bool CfgParser::warning(const QXmlParseException& e) { | ||
215 | QString tmp; | ||
216 | |||
217 | tmp.sprintf("%d: warning: %s\n", e.lineNumber(), | ||
218 | (const char*) e.message().utf8()); | ||
219 | |||
220 | err += tmp; | ||
221 | |||
222 | return true; | ||
223 | } | ||
224 | |||
225 | bool CfgParser::error(const QXmlParseException& e) { | ||
226 | QString tmp; | ||
227 | |||
228 | tmp.sprintf("%d: error: %s\n", e.lineNumber(), | ||
229 | (const char*) e.message().utf8()); | ||
230 | |||
231 | err += tmp; | ||
232 | |||
233 | return true; | ||
234 | } | ||
235 | |||
236 | bool CfgParser::fatalError(const QXmlParseException& e) { | ||
237 | QString tmp; | ||
238 | |||
239 | tmp.sprintf("%d: fatal error: %s\n", e.lineNumber(), | ||
240 | (const char*) e.message().utf8()); | ||
241 | |||
242 | err += tmp; | ||
243 | |||
244 | return false; | ||
245 | } | ||
246 | |||
247 | // CfgHandler implementation | ||
248 | CfgHandler::CfgHandler(CfgParser& c):cfg(c) { | ||
249 | } | ||
250 | |||
251 | CfgHandler::~CfgHandler() { | ||
252 | } | ||
253 | |||
254 | bool CfgHandler::startKeymapElement(int ard, int arp, const QString& author) { | ||
255 | if (author != "keyzcfg") { | ||
256 | bool ret; | ||
257 | ret = QMessageBox::warning(0, "keyz configurator", | ||
258 | "Your zkb.xml doesn't seem created by keyz configurator.\n" | ||
259 | "By using keyz configurator you may loose your current " | ||
260 | "configuration\n Do you want to continue\n\n", | ||
261 | "Yes", "No", 0, 0, 1); | ||
262 | |||
263 | if (ret != 0) { | ||
264 | err = "cancelled by user"; | ||
265 | return false; | ||
266 | } | ||
267 | } | ||
268 | |||
269 | if (ard != -1) { | ||
270 | cfg.setAutorepeatDelay(ard); | ||
271 | } | ||
272 | |||
273 | if (arp != -1) { | ||
274 | cfg.setAutorepeatPeriod(arp); | ||
275 | } | ||
276 | |||
277 | return true; | ||
278 | } | ||
279 | |||
280 | bool CfgHandler::startIncludeElement(const QString& file, | ||
281 | const QString& pref) { | ||
282 | |||
283 | cfg.addFile(file, pref); | ||
284 | return true; | ||
285 | } | ||
286 | |||
287 | bool CfgHandler::startLabelElement(const QString& label, | ||
288 | const QString& state) { | ||
289 | |||
290 | cfg.addLabel(label, state); | ||
291 | return true; | ||
292 | } | ||
293 | |||
294 | bool CfgHandler::startStateElement(const QString&, const QString&, bool) { | ||
295 | |||
296 | return true; | ||
297 | } | ||
298 | |||
299 | bool CfgHandler::startMapElement(int, bool) { | ||
300 | return true; | ||
301 | } | ||
302 | |||
303 | bool CfgHandler::startEventElement(int, int, int, bool, bool) { | ||
304 | return true; | ||
305 | } | ||
306 | |||
307 | bool CfgHandler::startNextStateElement(const QString&) { | ||
308 | return true; | ||
309 | } | ||
310 | |||
311 | |||
312 | bool CfgHandler::endKeymapElement() { | ||
313 | return true; | ||
314 | } | ||
315 | |||
316 | bool CfgHandler::endIncludeElement() { | ||
317 | return true; | ||
318 | } | ||
319 | |||
320 | bool CfgHandler::endLabelElement() { | ||
321 | return true; | ||
322 | } | ||
323 | |||
324 | bool CfgHandler::endStateElement() { | ||
325 | return true; | ||
326 | } | ||
327 | |||
328 | bool CfgHandler::endMapElement() { | ||
329 | return true; | ||
330 | } | ||
331 | |||
332 | bool CfgHandler::endEventElement() { | ||
333 | return true; | ||
334 | } | ||
335 | |||
336 | bool CfgHandler::endNextStateElement() { | ||
337 | return true; | ||
338 | } | ||
diff --git a/noncore/apps/keyz-cfg/cfgfile.h b/noncore/apps/keyz-cfg/cfgfile.h new file mode 100644 index 0000000..9759900 --- a/dev/null +++ b/noncore/apps/keyz-cfg/cfgfile.h | |||
@@ -0,0 +1,106 @@ | |||
1 | #ifndef CFGFILE_H | ||
2 | #define CFGFILE_H | ||
3 | |||
4 | #include <qlist.h> | ||
5 | #include "zkbxml.h" | ||
6 | |||
7 | class CfgEntry { | ||
8 | public: | ||
9 | CfgEntry(); | ||
10 | CfgEntry(const QString& file, const QString& label); | ||
11 | |||
12 | const QString& getFile() const; | ||
13 | void setFile(const QString& f); | ||
14 | const QString& getLabel() const; | ||
15 | void setLabel(const QString& l); | ||
16 | |||
17 | protected: | ||
18 | QString file; | ||
19 | QString label; | ||
20 | }; | ||
21 | |||
22 | class CfgFile { | ||
23 | public: | ||
24 | CfgFile(); | ||
25 | ~CfgFile(); | ||
26 | |||
27 | QList<CfgEntry>& getEntries(); | ||
28 | bool replaceEntry(const QString& file, const QString& label, | ||
29 | int index = -1); | ||
30 | bool deleteEntry(const QString& file); | ||
31 | |||
32 | int getAutorepeatDelay() const; | ||
33 | void setAutorepeatDelay(int); | ||
34 | int getAutorepeatPeriod() const; | ||
35 | void setAutorepeatPeriod(int); | ||
36 | |||
37 | protected: | ||
38 | QList<CfgEntry> entries; | ||
39 | int ardelay; | ||
40 | int arperiod; | ||
41 | }; | ||
42 | |||
43 | class CfgParser : public QXmlErrorHandler { | ||
44 | public: | ||
45 | CfgParser(); | ||
46 | virtual ~CfgParser(); | ||
47 | |||
48 | bool load(QString file, CfgFile& cfg); | ||
49 | bool save(QString file, CfgFile& cfg); | ||
50 | |||
51 | void addLabel(const QString& name, const QString& state); | ||
52 | void addFile(const QString& file, const QString& prefix); | ||
53 | |||
54 | int getAutorepeatDelay() const; | ||
55 | void setAutorepeatDelay(int); | ||
56 | int getAutorepeatPeriod() const; | ||
57 | void setAutorepeatPeriod(int); | ||
58 | |||
59 | virtual bool warning(const QXmlParseException& e); | ||
60 | virtual bool error(const QXmlParseException& e); | ||
61 | virtual bool fatalError(const QXmlParseException& e); | ||
62 | virtual QString errorString(); | ||
63 | |||
64 | QString getError(); | ||
65 | |||
66 | protected: | ||
67 | QString err; | ||
68 | QMap<QString, QString> labels; | ||
69 | QMap<QString, QString> includes; | ||
70 | QList<QString> labelList; | ||
71 | QList<QString> includeList; | ||
72 | int ardelay; | ||
73 | int arperiod; | ||
74 | }; | ||
75 | |||
76 | class CfgHandler : public ZkbXmlHandler { | ||
77 | public: | ||
78 | CfgHandler(CfgParser &); | ||
79 | virtual ~CfgHandler(); | ||
80 | |||
81 | protected: | ||
82 | CfgParser& cfg; | ||
83 | |||
84 | virtual bool startKeymapElement(int ardelay, int arperiod, | ||
85 | const QString& author); | ||
86 | virtual bool startIncludeElement(const QString& file, | ||
87 | const QString& prfix); | ||
88 | virtual bool startLabelElement(const QString& label, | ||
89 | const QString& state); | ||
90 | virtual bool startStateElement(const QString& name, | ||
91 | const QString& parent, bool dflt); | ||
92 | virtual bool startMapElement(int key, bool pressed); | ||
93 | virtual bool startEventElement(int keycode, int unicode, int modifiers, | ||
94 | bool pressed, bool autorepeat); | ||
95 | virtual bool startNextStateElement(const QString& state); | ||
96 | |||
97 | virtual bool endKeymapElement(); | ||
98 | virtual bool endIncludeElement(); | ||
99 | virtual bool endLabelElement(); | ||
100 | virtual bool endStateElement(); | ||
101 | virtual bool endMapElement(); | ||
102 | virtual bool endEventElement(); | ||
103 | virtual bool endNextStateElement(); | ||
104 | }; | ||
105 | |||
106 | #endif | ||
diff --git a/noncore/apps/keyz-cfg/config.in b/noncore/apps/keyz-cfg/config.in new file mode 100644 index 0000000..319bc1e --- a/dev/null +++ b/noncore/apps/keyz-cfg/config.in | |||
@@ -0,0 +1,4 @@ | |||
1 | config KEYZCFG | ||
2 | boolean "keyz-cfg (configuration tool for keyz applett)" | ||
3 | default "n" | ||
4 | depends ( LIBQPE || LIBQPE-X11 ) | ||
diff --git a/noncore/apps/keyz-cfg/keyz-cfg.control b/noncore/apps/keyz-cfg/keyz-cfg.control new file mode 100644 index 0000000..2a74b33 --- a/dev/null +++ b/noncore/apps/keyz-cfg/keyz-cfg.control | |||
@@ -0,0 +1,9 @@ | |||
1 | Package: keyz-cfg | ||
2 | Files: bin/keyz-cfg apps/Settings/key-cfg.desktop pics/keyz-cfg.png share/zkb/zkb.xml.sample | ||
3 | Priority: optional | ||
4 | Section: opie/applications | ||
5 | Maintainer: Rajko Albrecht <alwin@handhelds.org> | ||
6 | Architecture: arm | ||
7 | Depends: task-opie-minimal | ||
8 | Description: Keyz configuration program | ||
9 | Version: 0.6.0-$EXTRAVERSION | ||
diff --git a/noncore/apps/keyz-cfg/keyz-cfg.postinst b/noncore/apps/keyz-cfg/keyz-cfg.postinst new file mode 100755 index 0000000..c7d1cf4 --- a/dev/null +++ b/noncore/apps/keyz-cfg/keyz-cfg.postinst | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | test -f $OPIEDIR/share/zkb/zkb.xml || cp $OPIEDIR/share/zkb/zkb.xml.sample $OPIEDIR/share/zkb/zkb.xml | ||
diff --git a/noncore/apps/keyz-cfg/keyz-cfg.pro b/noncore/apps/keyz-cfg/keyz-cfg.pro new file mode 100644 index 0000000..cbaf718 --- a/dev/null +++ b/noncore/apps/keyz-cfg/keyz-cfg.pro | |||
@@ -0,0 +1,24 @@ | |||
1 | TEMPLATE = app | ||
2 | DESTDIR = $(OPIEDIR)/bin | ||
3 | CONFIG = qt warn_on release | ||
4 | HEADERS = zkb.h \ | ||
5 | zkbcfg.h \ | ||
6 | zkbnames.h \ | ||
7 | zkbxml.h \ | ||
8 | cfgdlg.h \ | ||
9 | cfgfile.h | ||
10 | |||
11 | SOURCES = main.cpp \ | ||
12 | cfgdlg.cpp \ | ||
13 | cfgfile.cpp \ | ||
14 | zkb.cpp \ | ||
15 | zkbcfg.cpp \ | ||
16 | zkbnames.cpp \ | ||
17 | zkbxml.cpp | ||
18 | |||
19 | INCLUDEPATH += $(OPIEDIR)/include | ||
20 | DEPENDPATH += $(OPIEDIR)/include | ||
21 | LIBS += -lqpe | ||
22 | TARGET = keyz-cfg | ||
23 | |||
24 | include ( $(OPIEDIR)/include.pro ) | ||
diff --git a/noncore/apps/keyz-cfg/main.cpp b/noncore/apps/keyz-cfg/main.cpp new file mode 100644 index 0000000..264db20 --- a/dev/null +++ b/noncore/apps/keyz-cfg/main.cpp | |||
@@ -0,0 +1,24 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <qpe/qpeapplication.h> | ||
3 | #include <qpe/qcopenvelope_qws.h> | ||
4 | #include <qmainwindow.h> | ||
5 | |||
6 | #include "cfgfile.h" | ||
7 | #include "cfgdlg.h" | ||
8 | |||
9 | int main( int argc, char **argv ) { | ||
10 | QPEApplication app(argc, argv); | ||
11 | CfgFile cfile; | ||
12 | CfgParser cp; | ||
13 | cp.load(QPEApplication::qpeDir()+"/share/zkb/zkb.xml", cfile); | ||
14 | |||
15 | QMainWindow m; | ||
16 | CfgDlg c(&m, &cfile, &app); | ||
17 | app.showMainWidget(&m); | ||
18 | m.hide(); | ||
19 | c.showMaximized(); | ||
20 | |||
21 | int ret = app.exec(); | ||
22 | |||
23 | return ret; | ||
24 | } | ||
diff --git a/noncore/apps/keyz-cfg/zkb.cpp b/noncore/apps/keyz-cfg/zkb.cpp new file mode 100644 index 0000000..abe1f5f --- a/dev/null +++ b/noncore/apps/keyz-cfg/zkb.cpp | |||
@@ -0,0 +1,590 @@ | |||
1 | #include <qnamespace.h> | ||
2 | #include "zkb.h" | ||
3 | #include <stdio.h> | ||
4 | |||
5 | // Implementation of Action class | ||
6 | Action::Action():state(0), keycode(0), unicode(0), flags(0) { | ||
7 | } | ||
8 | |||
9 | Action::Action(State* s, ushort kc, ushort uni, int f): | ||
10 | state(s), keycode(kc), unicode(uni), flags(f) { | ||
11 | } | ||
12 | |||
13 | Action::~Action() { | ||
14 | } | ||
15 | |||
16 | State* Action::getState() const { | ||
17 | return state; | ||
18 | } | ||
19 | |||
20 | void Action::setState(State* s) { | ||
21 | state = s; | ||
22 | setDefined(true); | ||
23 | } | ||
24 | |||
25 | bool Action::hasEvent() const { | ||
26 | return flags & Event; | ||
27 | } | ||
28 | |||
29 | void Action::setEvent(bool e) { | ||
30 | flags = (flags & ~Event) | ((e) ? Event : 0); | ||
31 | |||
32 | if (e) { | ||
33 | setDefined(true); | ||
34 | } else { | ||
35 | if (state == 0) { | ||
36 | setDefined(false); | ||
37 | } | ||
38 | } | ||
39 | } | ||
40 | |||
41 | bool Action::isDefined() const { | ||
42 | return flags & Defined; | ||
43 | } | ||
44 | |||
45 | void Action::setDefined(bool d) { | ||
46 | flags = (flags & ~Defined) | ((d) ? Defined : 0); | ||
47 | } | ||
48 | |||
49 | int Action::getKeycode() const { | ||
50 | return keycode; | ||
51 | } | ||
52 | |||
53 | void Action::setKeycode(int c) { | ||
54 | keycode = (ushort) c; | ||
55 | setEvent(true); | ||
56 | } | ||
57 | |||
58 | int Action::getUnicode() const { | ||
59 | return unicode; | ||
60 | } | ||
61 | |||
62 | void Action::setUnicode(int u) { | ||
63 | unicode = (ushort) u; | ||
64 | setEvent(true); | ||
65 | } | ||
66 | |||
67 | int Action::getModifiers() const { | ||
68 | int ret = 0; | ||
69 | if (flags & Shift_Mod) { | ||
70 | ret |= Qt::ShiftButton; | ||
71 | } | ||
72 | |||
73 | if (flags & Ctrl_Mod) { | ||
74 | ret |= Qt::ControlButton; | ||
75 | } | ||
76 | |||
77 | if (flags & Alt_Mod) { | ||
78 | ret |= Qt::AltButton; | ||
79 | } | ||
80 | |||
81 | if (flags & Keypad_Mod) { | ||
82 | ret |= Qt::Keypad; | ||
83 | } | ||
84 | |||
85 | return ret; | ||
86 | } | ||
87 | |||
88 | void Action::setModifiers(int m) { | ||
89 | int n = 0; | ||
90 | |||
91 | if (m & Qt::ShiftButton) { | ||
92 | n |= Shift_Mod; | ||
93 | } | ||
94 | |||
95 | if (m & Qt::ControlButton) { | ||
96 | n |= Ctrl_Mod; | ||
97 | } | ||
98 | |||
99 | if (m & Qt::AltButton) { | ||
100 | n |= Alt_Mod; | ||
101 | } | ||
102 | |||
103 | if (m & Qt::Keypad) { | ||
104 | n |= Keypad_Mod; | ||
105 | } | ||
106 | |||
107 | flags = flags & ~Mod_Bits | n; | ||
108 | setEvent(true); | ||
109 | } | ||
110 | |||
111 | bool Action::isPressed() const { | ||
112 | return (flags & Press) != 0; | ||
113 | } | ||
114 | |||
115 | void Action::setPressed(bool p) { | ||
116 | flags = (flags & ~Press) | ((p) ? Press : 0); | ||
117 | setEvent(true); | ||
118 | } | ||
119 | |||
120 | bool Action::isAutorepeat() const { | ||
121 | return (flags & Autorepeat) != 0; | ||
122 | } | ||
123 | |||
124 | void Action::setAutorepeat(bool p) { | ||
125 | flags = (flags & ~Autorepeat) | ((p) ? Autorepeat : 0); | ||
126 | setEvent(true); | ||
127 | } | ||
128 | |||
129 | // Implementation of State class | ||
130 | const short State::x1[] = { /* from 0x20 to 0x5f */ | ||
131 | 31, 0, 28, 3, 5, 6, 9, 28, /* 0x20 - 0x27 */ | ||
132 | 11, 26, 10, 13, 26, 1, 29, 27, /* 0x28 - 0x2f */ | ||
133 | 15, 16, 22, 4, 17, 19, 24, 20, /* 0x30 - 0x37 */ | ||
134 | 8, 14, 29, 26, 29, 12, 32, 27, /* 0x38 - 0x3f */ | ||
135 | 18, 0, 1, 2, 3, 4, 5, 6, /* 0x40 - 0x47 */ | ||
136 | 7, 8, 9, 10, 11, 12, 13, 14, /* 0x48 - 0x4f */ | ||
137 | 15, 16, 17, 18, 19, 20, 21, 22, /* 0x50 - 0x57 */ | ||
138 | 23, 24, 25, 30, -1, 26, 28, 7, /* 0x58 - 0x5f */ | ||
139 | 31, -1, -1, -1, -1, -1, -1, -1, /* 0x60 - 0x67 */ | ||
140 | -1, -1, -1, -1, -1, -1, -1, -1, /* 0x68 - 0x6f */ | ||
141 | -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70 - 0x77 */ | ||
142 | -1, -1, -1, 29, 31, 32, 32, 28, /* 0x78 - 0x7f */ | ||
143 | }; | ||
144 | |||
145 | const short State::x2[] = { /* from 0x1000 to 0x1057*/ | ||
146 | 42, 36, -1, 30, 32, -1, -1, -1, /* 0x1000 - 0x1007 */ | ||
147 | -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1008 - 0x100f */ | ||
148 | -1, -1, 44, 45, 46, 47, -1, -1, /* 0x1010 - 0x1017 */ | ||
149 | -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1018 - 0x101f */ | ||
150 | 33, 35, 34, -1, 36, 27, -1, -1, /* 0x1020 - 0x1027 */ | ||
151 | -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1028 - 0x102f */ | ||
152 | -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1030 - 0x1037 */ | ||
153 | 37, 38, 40, 39, 41, -1, -1, -1, /* 0x1038 - 0x103f */ | ||
154 | -1, -1, -1, -1, -1, 35, -1, -1, /* 0x1040 - 0x1047 */ | ||
155 | -1, -1, -1, -1, -1, 48, -1, -1, /* 0x1048 - 0x104f */ | ||
156 | 43, 49, 50, -1, -1, -1, -1, -1, /* 0x1050 - 0x1057 */ | ||
157 | }; | ||
158 | |||
159 | State::State(State* p):parent(p), keys(0) { | ||
160 | keys = new Action[Key_Max * 2 + 1]; | ||
161 | } | ||
162 | |||
163 | State::State(const State& s) { | ||
164 | parent = s.parent; | ||
165 | keys = new Action[Key_Max * 2 + 1]; | ||
166 | memcpy(keys, s.keys, sizeof(Action) * (Key_Max * 2 + 1)); | ||
167 | } | ||
168 | |||
169 | State::~State() { | ||
170 | if (keys!=0) { | ||
171 | delete [] keys; | ||
172 | } | ||
173 | } | ||
174 | |||
175 | Action* State::get(int keycode, bool pressed, bool follow) const { | ||
176 | Action* ret = 0; | ||
177 | int n = translateKeycode(keycode); | ||
178 | |||
179 | if (n != -1 && keys != 0) { | ||
180 | if (pressed) { | ||
181 | n += Key_Max; | ||
182 | } | ||
183 | ret = &keys[n]; | ||
184 | } | ||
185 | |||
186 | if (ret==0 || !ret->isDefined()) { | ||
187 | if (follow && parent!=0) { | ||
188 | ret = parent->get(keycode, pressed, follow); | ||
189 | } | ||
190 | } | ||
191 | |||
192 | return ret; | ||
193 | } | ||
194 | |||
195 | bool State::set(int keycode, bool pressed, Action& action) { | ||
196 | int n = translateKeycode(keycode); | ||
197 | |||
198 | if (n==-1 || keys==0) { | ||
199 | return false; | ||
200 | } | ||
201 | |||
202 | if (pressed) { | ||
203 | n += Key_Max + 1; | ||
204 | } | ||
205 | |||
206 | keys[n] = action; | ||
207 | return true; | ||
208 | } | ||
209 | |||
210 | State* State::getParent() const { | ||
211 | return parent; | ||
212 | } | ||
213 | |||
214 | void State::setParent(State* s) { | ||
215 | parent = s; | ||
216 | } | ||
217 | |||
218 | int State::translateKeycode(int keycode) const { | ||
219 | if (keycode < 0x20) { | ||
220 | return -1; | ||
221 | } | ||
222 | |||
223 | if (keycode < 0x80) { | ||
224 | return x1[keycode - 0x20]; | ||
225 | } | ||
226 | |||
227 | if (keycode < 0x1000) { | ||
228 | return -1; | ||
229 | } | ||
230 | |||
231 | if (keycode < 0x1057) { | ||
232 | return x2[keycode - 0x1000]; | ||
233 | } | ||
234 | |||
235 | return -1; | ||
236 | } | ||
237 | |||
238 | // Implementation of Keymap class | ||
239 | Keymap::Keymap():enabled(true), currentState(0), autoRepeatAction(0), repeater(this) { | ||
240 | repeatDelay=400; | ||
241 | repeatPeriod=80; | ||
242 | connect(&repeater, SIGNAL(timeout()), this, SLOT(autoRepeat())); | ||
243 | } | ||
244 | |||
245 | Keymap::~Keymap() { | ||
246 | QMap<QString, State*>::Iterator it; | ||
247 | for(it = states.begin(); it != states.end(); ++it) { | ||
248 | delete it.data(); | ||
249 | } | ||
250 | states.clear(); | ||
251 | } | ||
252 | |||
253 | bool Keymap::filter(int unicode, int keycode, int modifiers, | ||
254 | bool isPress, bool autoRepeat) { | ||
255 | |||
256 | qDebug("filter: >>> unicode=%x, keycode=%x, modifiers=%x, " | ||
257 | "ispressed=%x\n", unicode, keycode, modifiers, isPress); | ||
258 | |||
259 | if (!enabled) { | ||
260 | return false; | ||
261 | } | ||
262 | |||
263 | // the second check is workaround to make suspend work if | ||
264 | // the user pressed it right after he did resume. for some | ||
265 | // reason the event sent by qt has autoRepeat true in this | ||
266 | // case | ||
267 | if (autoRepeat && keycode != 4177) { | ||
268 | return true; | ||
269 | } | ||
270 | |||
271 | (void) unicode; (void) modifiers; | ||
272 | |||
273 | Action* action = currentState->get(keycode, isPress, true); | ||
274 | if (action==0 || !action->isDefined()) { | ||
275 | return true; | ||
276 | } | ||
277 | |||
278 | if (action->hasEvent()) { | ||
279 | qDebug("filter:<<< unicode=%x, keycode=%x, modifiers=%x, " | ||
280 | "ispressed=%x\n", action->getUnicode(), | ||
281 | action->getKeycode(), action->getModifiers(), | ||
282 | action->isPressed()); | ||
283 | |||
284 | QWSServer::sendKeyEvent(action->getUnicode(), | ||
285 | action->getKeycode(), action->getModifiers(), | ||
286 | action->isPressed(), false); | ||
287 | } | ||
288 | |||
289 | if (action->isAutorepeat()) { | ||
290 | autoRepeatAction = action; | ||
291 | repeater.start(repeatDelay, TRUE); | ||
292 | } else { | ||
293 | autoRepeatAction = 0; | ||
294 | } | ||
295 | |||
296 | State* nstate = action->getState(); | ||
297 | if (nstate != 0) { | ||
298 | setCurrentState(nstate); | ||
299 | QString lbl = getCurrentLabel(); | ||
300 | if (!lbl.isEmpty()) { | ||
301 | emit stateChanged(lbl); | ||
302 | } | ||
303 | } | ||
304 | |||
305 | |||
306 | return true; | ||
307 | } | ||
308 | |||
309 | void Keymap::enable() { | ||
310 | enabled = true; | ||
311 | } | ||
312 | |||
313 | void Keymap::disable() { | ||
314 | enabled = false; | ||
315 | } | ||
316 | |||
317 | QStringList Keymap::listStates() { | ||
318 | QStringList ret; | ||
319 | |||
320 | QMap<QString, State*>::Iterator it; | ||
321 | for(it = states.begin(); it != states.end(); ++it) { | ||
322 | ret.append(it.key()); | ||
323 | } | ||
324 | |||
325 | return ret; | ||
326 | } | ||
327 | |||
328 | State* Keymap::getStateByName(const QString& name) { | ||
329 | QMap<QString, State*>::Iterator it = states.find(name); | ||
330 | |||
331 | if (it == states.end()) { | ||
332 | return 0; | ||
333 | } | ||
334 | |||
335 | return it.data(); | ||
336 | } | ||
337 | |||
338 | QStringList Keymap::listLabels() { | ||
339 | QStringList ret; | ||
340 | |||
341 | for(uint i = 0; i < labelList.count(); i++) { | ||
342 | ret.append(*labelList.at(i)); | ||
343 | } | ||
344 | |||
345 | return ret; | ||
346 | } | ||
347 | |||
348 | State* Keymap::getStateByLabel(const QString& label) { | ||
349 | QMap<QString, QString>::Iterator lit = labels.find(label); | ||
350 | State* state = 0; | ||
351 | |||
352 | if (lit == labels.end()) { | ||
353 | return 0; | ||
354 | } | ||
355 | |||
356 | QString name = lit.data(); | ||
357 | |||
358 | int n = name.find(":*"); | ||
359 | if (n>=0 && n==(int)(name.length()-2)) { | ||
360 | name=name.left(name.length() - 1); | ||
361 | |||
362 | n = currentStateName.findRev(":"); | ||
363 | if (n >= 0) { | ||
364 | name += currentStateName.mid(n+1); | ||
365 | } | ||
366 | } | ||
367 | |||
368 | //qDebug("look for: %s\n", (const char*) name.utf8()); | ||
369 | QMap<QString, State*>::Iterator sit = states.find(name); | ||
370 | if (sit != states.end()) { | ||
371 | state = sit.data(); | ||
372 | } | ||
373 | |||
374 | return state; | ||
375 | } | ||
376 | |||
377 | bool Keymap::addState(const QString& name, State* state) { | ||
378 | if (states.find(name) != states.end()) { | ||
379 | return false; | ||
380 | } | ||
381 | |||
382 | states.insert(name, state); | ||
383 | lsmapInSync = false; | ||
384 | |||
385 | if (currentState == 0) { | ||
386 | setCurrentState(state); | ||
387 | } | ||
388 | |||
389 | return true; | ||
390 | } | ||
391 | |||
392 | State* Keymap::getCurrentState() const { | ||
393 | return currentState; | ||
394 | } | ||
395 | |||
396 | QString Keymap::getCurrentLabel() { | ||
397 | return currentLabel; | ||
398 | } | ||
399 | |||
400 | bool Keymap::setCurrentState(State* state) { | ||
401 | QMap<QString, State*>::Iterator it; | ||
402 | for(it = states.begin(); it != states.end(); ++it) { | ||
403 | State* s = it.data(); | ||
404 | if (s == state) { | ||
405 | currentState = s; | ||
406 | currentStateName = it.key(); | ||
407 | |||
408 | qDebug("state changed: %s\n", (const char*) | ||
409 | currentStateName.utf8()); | ||
410 | |||
411 | if (!lsmapInSync) { | ||
412 | generateLabelStateMaps(); | ||
413 | } | ||
414 | |||
415 | QMap<State*, QString>::Iterator tit; | ||
416 | tit = stateLabelMap.find(state); | ||
417 | if (tit != stateLabelMap.end()) { | ||
418 | currentLabel = tit.data(); | ||
419 | } else { | ||
420 | // qDebug("no label for: " + currentStateName + "\n"); | ||
421 | currentLabel = ""; | ||
422 | } | ||
423 | |||
424 | return true; | ||
425 | } | ||
426 | } | ||
427 | |||
428 | return false; | ||
429 | } | ||
430 | |||
431 | bool Keymap::removeState(const QString& name, bool force) { | ||
432 | QMap<QString, State*>::Iterator it = states.find(name); | ||
433 | |||
434 | if (it == states.end()) { | ||
435 | return false; | ||
436 | } | ||
437 | |||
438 | State* state = it.data(); | ||
439 | QList<Action> acts = findStateUsage(state); | ||
440 | |||
441 | if (!acts.isEmpty()) { | ||
442 | if (!force) { | ||
443 | return false; | ||
444 | } else { | ||
445 | for(Action* a = acts.first(); a != 0; a = acts.next()) { | ||
446 | a->setState(0); | ||
447 | } | ||
448 | } | ||
449 | } | ||
450 | |||
451 | if (state == currentState) { | ||
452 | if (states.begin() != states.end()) { | ||
453 | setCurrentState(states.begin().data()); | ||
454 | } | ||
455 | } | ||
456 | |||
457 | states.remove(it); | ||
458 | delete state; | ||
459 | |||
460 | lsmapInSync = false; | ||
461 | |||
462 | return true; | ||
463 | } | ||
464 | |||
465 | void Keymap::autoRepeat() { | ||
466 | if (autoRepeatAction != 0) { | ||
467 | qDebug("filter:<<< unicode=%x, keycode=%x, modifiers=%x, " | ||
468 | "ispressed=%x\n", autoRepeatAction->getUnicode(), | ||
469 | autoRepeatAction->getKeycode(), | ||
470 | autoRepeatAction->getModifiers(), | ||
471 | autoRepeatAction->isPressed()); | ||
472 | |||
473 | QWSServer::sendKeyEvent(autoRepeatAction->getUnicode(), | ||
474 | autoRepeatAction->getKeycode(), | ||
475 | autoRepeatAction->getModifiers(), | ||
476 | autoRepeatAction->isPressed(), true); | ||
477 | } | ||
478 | |||
479 | repeater.start(repeatPeriod, TRUE); | ||
480 | } | ||
481 | |||
482 | bool Keymap::addLabel(const QString& label, const QString& state, int index) { | ||
483 | if (labels.find(label) != labels.end()) { | ||
484 | return false; | ||
485 | } | ||
486 | |||
487 | labels.insert(label, state); | ||
488 | const QString& l = labels.find(label).key(); | ||
489 | if (index == -1) { | ||
490 | labelList.append(l); | ||
491 | } else { | ||
492 | labelList.insert(labelList.at(index), l); | ||
493 | } | ||
494 | |||
495 | lsmapInSync = false; | ||
496 | |||
497 | return true; | ||
498 | } | ||
499 | |||
500 | bool Keymap::removeLabel(const QString& label) { | ||
501 | |||
502 | if (labels.find(label) == labels.end()) { | ||
503 | return false; | ||
504 | } | ||
505 | |||
506 | labels.remove(label); | ||
507 | labelList.remove(label); | ||
508 | lsmapInSync = false; | ||
509 | |||
510 | if (label == currentLabel) { | ||
511 | currentLabel = ""; | ||
512 | } | ||
513 | |||
514 | return true; | ||
515 | } | ||
516 | |||
517 | int Keymap::getAutorepeatDelay() const { | ||
518 | return repeatDelay; | ||
519 | } | ||
520 | |||
521 | void Keymap::setAutorepeatDelay(int n) { | ||
522 | repeatDelay = n; | ||
523 | } | ||
524 | |||
525 | int Keymap::getAutorepeatPeriod() const { | ||
526 | return repeatPeriod; | ||
527 | } | ||
528 | |||
529 | void Keymap::setAutorepeatPeriod(int n) { | ||
530 | repeatPeriod = n; | ||
531 | } | ||
532 | |||
533 | QList<Action> Keymap::findStateUsage(State* s) { | ||
534 | QList<Action> ret; | ||
535 | |||
536 | QMap<QString, State*>::Iterator it; | ||
537 | for(it = states.begin(); it != states.end(); ++it) { | ||
538 | State* state = it.data(); | ||
539 | |||
540 | for(int i = 0; i < 0x1100; i++) { | ||
541 | Action* action = state->get(i, false); | ||
542 | if (action!=0 && action->getState()==s) { | ||
543 | ret.append(action); | ||
544 | } | ||
545 | |||
546 | action = state->get(i, true); | ||
547 | if (action!=0 && action->getState()==s) { | ||
548 | ret.append(action); | ||
549 | } | ||
550 | } | ||
551 | } | ||
552 | |||
553 | return ret; | ||
554 | } | ||
555 | |||
556 | void Keymap::generateLabelStateMaps() { | ||
557 | stateLabelMap.clear(); | ||
558 | |||
559 | QMap<QString, QString>::Iterator lit; | ||
560 | for(lit = labels.begin(); lit != labels.end(); ++lit) { | ||
561 | QString label = lit.key(); | ||
562 | QString name = lit.data(); | ||
563 | |||
564 | bool wc = false; | ||
565 | int n = name.find("*"); | ||
566 | if (n>=0 && n==(int)(name.length()-1)) { | ||
567 | name=name.left(name.length() - 1); | ||
568 | wc = true; | ||
569 | } | ||
570 | |||
571 | QMap<QString, State*>::Iterator sit; | ||
572 | for(sit = states.begin(); sit != states.end(); ++sit) { | ||
573 | QString sname = sit.key(); | ||
574 | State* state = sit.data(); | ||
575 | |||
576 | if (sname.length() < name.length()) { | ||
577 | continue; | ||
578 | } | ||
579 | |||
580 | if (sname.left(name.length()) == name) { | ||
581 | if (wc || sname.length()==name.length()) { | ||
582 | stateLabelMap.insert(state, label); | ||
583 | } | ||
584 | |||
585 | } | ||
586 | } | ||
587 | } | ||
588 | |||
589 | lsmapInSync = true; | ||
590 | } | ||
diff --git a/noncore/apps/keyz-cfg/zkb.h b/noncore/apps/keyz-cfg/zkb.h new file mode 100644 index 0000000..deff869 --- a/dev/null +++ b/noncore/apps/keyz-cfg/zkb.h | |||
@@ -0,0 +1,205 @@ | |||
1 | #ifndef ZKB_H | ||
2 | #define ZKB_H | ||
3 | |||
4 | #include <qstring.h> | ||
5 | #include <qstringlist.h> | ||
6 | #include <qmap.h> | ||
7 | #include <qwindowsystem_qws.h> | ||
8 | #include <qkeyboard_qws.h> | ||
9 | #include <qtimer.h> | ||
10 | #include <stdio.h> | ||
11 | |||
12 | class State; | ||
13 | |||
14 | class Action { | ||
15 | protected: | ||
16 | State* state; | ||
17 | ushort keycode; | ||
18 | ushort unicode; | ||
19 | int flags; | ||
20 | |||
21 | enum { | ||
22 | Shift_Mod = 1, | ||
23 | Ctrl_Mod = 2, | ||
24 | Alt_Mod = 4, | ||
25 | Keypad_Mod = 8, | ||
26 | Mod_Bits = 15, | ||
27 | Press = 16, | ||
28 | Autorepeat = 32, | ||
29 | Event = 64, | ||
30 | Defined = 128, | ||
31 | }; | ||
32 | |||
33 | void setDefined(bool); | ||
34 | |||
35 | public: | ||
36 | Action(); | ||
37 | Action(State*, ushort, ushort, int); | ||
38 | ~Action(); | ||
39 | |||
40 | State* getState() const; | ||
41 | void setState(State*); | ||
42 | |||
43 | bool hasEvent() const; | ||
44 | void setEvent(bool); | ||
45 | |||
46 | bool isDefined() const; | ||
47 | |||
48 | int getKeycode() const; | ||
49 | void setKeycode(int); | ||
50 | |||
51 | int getUnicode() const; | ||
52 | void setUnicode(int); | ||
53 | |||
54 | int getModifiers() const; | ||
55 | void setModifiers(int m); | ||
56 | |||
57 | bool isPressed() const; | ||
58 | void setPressed(bool); | ||
59 | |||
60 | bool isAutorepeat() const; | ||
61 | void setAutorepeat(bool); | ||
62 | }; | ||
63 | |||
64 | class State { | ||
65 | protected: | ||
66 | State* parent; | ||
67 | Action* keys; | ||
68 | |||
69 | enum { | ||
70 | Key_a=0, | ||
71 | Key_b=1, | ||
72 | Key_c=2, | ||
73 | Key_d=3, | ||
74 | Key_e=4, | ||
75 | Key_f=5, | ||
76 | Key_g=6, | ||
77 | Key_h=7, | ||
78 | Key_i=8, | ||
79 | Key_j=9, | ||
80 | Key_k=10, | ||
81 | Key_l=11, | ||
82 | Key_m=12, | ||
83 | Key_n=13, | ||
84 | Key_o=14, | ||
85 | Key_p=15, | ||
86 | Key_q=16, | ||
87 | Key_r=17, | ||
88 | Key_s=18, | ||
89 | Key_t=19, | ||
90 | Key_u=20, | ||
91 | Key_v=21, | ||
92 | Key_w=22, | ||
93 | Key_x=23, | ||
94 | Key_y=24, | ||
95 | Key_z=25, | ||
96 | Key_Comma=26, | ||
97 | Key_Slash=27, | ||
98 | Key_Quote=28, | ||
99 | Key_Dot=29, | ||
100 | Key_Backspace=30, | ||
101 | Key_Space=31, | ||
102 | Key_Enter=32, | ||
103 | Key_LeftShift=33, | ||
104 | Key_RightShift=34, | ||
105 | Key_Fn=35, | ||
106 | Key_Tab=36, | ||
107 | Key_Calendar=37, | ||
108 | Key_Addressbook=38, | ||
109 | Key_Home=39, | ||
110 | Key_Menu=40, | ||
111 | Key_Mail=41, | ||
112 | Key_Cancel=42, | ||
113 | Key_OK=43, | ||
114 | Key_Left=44, | ||
115 | Key_Up=45, | ||
116 | Key_Right=46, | ||
117 | Key_Down=47, | ||
118 | Key_Middle=48, | ||
119 | Key_Off=49, | ||
120 | Key_Light=50, | ||
121 | |||
122 | Key_Max=51 | ||
123 | }; | ||
124 | |||
125 | static const short x1[]; | ||
126 | static const short x2[]; | ||
127 | |||
128 | int translateKeycode(int keycode) const; | ||
129 | |||
130 | public: | ||
131 | State(State* parent=0); | ||
132 | State(const State&); | ||
133 | ~State(); | ||
134 | |||
135 | Action* get(int keycode, bool pressed, bool follow = false) const; | ||
136 | bool set(int keycode, bool pressed, Action& action); | ||
137 | |||
138 | State* getParent() const; | ||
139 | void setParent(State*); | ||
140 | }; | ||
141 | |||
142 | class Keymap : public QObject, public QWSServer::KeyboardFilter { | ||
143 | Q_OBJECT | ||
144 | |||
145 | public: | ||
146 | Keymap(); | ||
147 | virtual ~Keymap(); | ||
148 | |||
149 | virtual bool filter(int unicode, int keycode, int modifiers, | ||
150 | bool isPress, bool autoRepeat); | ||
151 | |||
152 | void enable(); | ||
153 | void disable(); | ||
154 | |||
155 | QStringList listStates(); | ||
156 | State* getStateByName(const QString& name); | ||
157 | |||
158 | QStringList listLabels(); | ||
159 | State* getStateByLabel(const QString& label); | ||
160 | |||
161 | bool addState(const QString& name, State* state); | ||
162 | bool removeState(const QString& name, bool force = false); | ||
163 | bool setCurrentState(State*); | ||
164 | State* getCurrentState() const; | ||
165 | QString getCurrentLabel(); | ||
166 | |||
167 | bool addLabel(const QString& label, const QString& state, | ||
168 | int index=-1); | ||
169 | bool removeLabel(const QString& label); | ||
170 | |||
171 | int getAutorepeatDelay() const; | ||
172 | void setAutorepeatDelay(int); | ||
173 | |||
174 | int getAutorepeatPeriod() const; | ||
175 | void setAutorepeatPeriod(int); | ||
176 | |||
177 | signals: | ||
178 | void stateChanged(const QString& name); | ||
179 | |||
180 | protected slots: | ||
181 | void autoRepeat(); | ||
182 | |||
183 | protected: | ||
184 | QMap<QString, State*> states; | ||
185 | QMap<QString, QString> labels; | ||
186 | QStringList labelList; | ||
187 | |||
188 | QMap<State*,QString> stateLabelMap; | ||
189 | bool lsmapInSync; | ||
190 | |||
191 | bool enabled; | ||
192 | State* currentState; | ||
193 | QString currentStateName; | ||
194 | QString currentLabel; | ||
195 | Action* autoRepeatAction; | ||
196 | |||
197 | int repeatDelay; | ||
198 | int repeatPeriod; | ||
199 | QTimer repeater; | ||
200 | |||
201 | QList<Action> findStateUsage(State* s); | ||
202 | void generateLabelStateMaps(); | ||
203 | }; | ||
204 | |||
205 | #endif | ||
diff --git a/noncore/apps/keyz-cfg/zkbcfg.cpp b/noncore/apps/keyz-cfg/zkbcfg.cpp new file mode 100644 index 0000000..0992b9a --- a/dev/null +++ b/noncore/apps/keyz-cfg/zkbcfg.cpp | |||
@@ -0,0 +1,228 @@ | |||
1 | #include <qfileinfo.h> | ||
2 | |||
3 | #include "zkbcfg.h" | ||
4 | |||
5 | |||
6 | // Implementation of XkbConfig class | ||
7 | ZkbConfig::ZkbConfig(const QString& dir):path(dir) { | ||
8 | } | ||
9 | |||
10 | ZkbConfig::~ZkbConfig() { | ||
11 | } | ||
12 | |||
13 | bool ZkbConfig::load(const QString& file, Keymap& keymap, const QString& prefix) { | ||
14 | bool ret; | ||
15 | QFile f(path+"/"+file); | ||
16 | QFileInfo fi(f); | ||
17 | |||
18 | qDebug("start loading file=%s\n", (const char*) file.utf8()); | ||
19 | if (includedFiles.find(fi.absFilePath()) != includedFiles.end()) { | ||
20 | return false; | ||
21 | } | ||
22 | |||
23 | includedFiles.insert(fi.absFilePath(), 1); | ||
24 | QXmlInputSource is(f); | ||
25 | QXmlSimpleReader reader; | ||
26 | ZkbHandler h(*this, keymap, prefix); | ||
27 | |||
28 | reader.setContentHandler(&h); | ||
29 | reader.setErrorHandler(this); | ||
30 | ret = reader.parse(is); | ||
31 | includedFiles.remove(fi.absFilePath()); | ||
32 | |||
33 | qDebug("end loading file=%s : status=%s\n", (const char*) file.utf8(), | ||
34 | (const char*) err.utf8()); | ||
35 | return ret; | ||
36 | } | ||
37 | |||
38 | bool ZkbConfig::warning(const QXmlParseException& e) { | ||
39 | QString tmp; | ||
40 | |||
41 | tmp.sprintf("%d: warning: %s\n", e.lineNumber(), | ||
42 | (const char*) e.message().utf8()); | ||
43 | |||
44 | err += tmp; | ||
45 | |||
46 | return true; | ||
47 | } | ||
48 | |||
49 | bool ZkbConfig::error(const QXmlParseException& e) { | ||
50 | QString tmp; | ||
51 | |||
52 | tmp.sprintf("%d: error: %s\n", e.lineNumber(), | ||
53 | (const char*) e.message().utf8()); | ||
54 | |||
55 | err += tmp; | ||
56 | |||
57 | return true; | ||
58 | } | ||
59 | |||
60 | bool ZkbConfig::fatalError(const QXmlParseException& e) { | ||
61 | QString tmp; | ||
62 | |||
63 | tmp.sprintf("%d: fatal error: %s\n", e.lineNumber(), | ||
64 | (const char*) e.message().utf8()); | ||
65 | |||
66 | err += tmp; | ||
67 | |||
68 | return false; | ||
69 | } | ||
70 | |||
71 | QString ZkbConfig::errorString() { | ||
72 | return err; | ||
73 | } | ||
74 | |||
75 | // Implementation of ZkbHandler | ||
76 | ZkbHandler::ZkbHandler(ZkbConfig& z, Keymap& k, const QString& p):zkc(z), keymap(k), | ||
77 | prefix(p), ardelay(-1), arperiod(-1), currentState(0), currentAction(0) { | ||
78 | } | ||
79 | |||
80 | ZkbHandler::~ZkbHandler() { | ||
81 | } | ||
82 | |||
83 | bool ZkbHandler::startKeymapElement(int ard, int arp, const QString&) { | ||
84 | ardelay = ard; | ||
85 | arperiod = arp; | ||
86 | |||
87 | return true; | ||
88 | } | ||
89 | |||
90 | bool ZkbHandler::startIncludeElement(const QString& file, | ||
91 | const QString& pref) { | ||
92 | |||
93 | QString p = prefix; | ||
94 | |||
95 | if (!pref.isNull()) { | ||
96 | p += pref + ":"; | ||
97 | } | ||
98 | |||
99 | |||
100 | bool ret = zkc.load(file, keymap, p); | ||
101 | if (!ret) { | ||
102 | setError("Error including file: " + file); | ||
103 | } | ||
104 | |||
105 | return ret; | ||
106 | } | ||
107 | |||
108 | bool ZkbHandler::startLabelElement(const QString& label, | ||
109 | const QString& state) { | ||
110 | |||
111 | if (!keymap.addLabel(label, prefix + state)) { | ||
112 | err = "label " + label + " already defined"; | ||
113 | return false; | ||
114 | } | ||
115 | |||
116 | return true; | ||
117 | } | ||
118 | |||
119 | bool ZkbHandler::startStateElement(const QString& name, | ||
120 | const QString& parentName, bool dflt) { | ||
121 | |||
122 | currentStateName = prefix + name; | ||
123 | currentState = keymap.getStateByName(currentStateName); | ||
124 | |||
125 | //qDebug("state name=%s\n", (const char*) currentStateName.utf8()); | ||
126 | |||
127 | State* parent = 0; | ||
128 | if (!parentName.isEmpty()) { | ||
129 | QString pn = prefix + parentName; | ||
130 | parent = keymap.getStateByName(pn); | ||
131 | if (parent == 0) { | ||
132 | err = currentStateName + | ||
133 | ": undefined parent state: " + pn; | ||
134 | return false; | ||
135 | } | ||
136 | } | ||
137 | |||
138 | if (currentState == 0) { | ||
139 | currentState = new State(parent); | ||
140 | keymap.addState(currentStateName, currentState); | ||
141 | } else { | ||
142 | if (parent!=0) { | ||
143 | currentState->setParent(parent); | ||
144 | } | ||
145 | } | ||
146 | |||
147 | if (dflt) { | ||
148 | keymap.setCurrentState(currentState); | ||
149 | } | ||
150 | |||
151 | return true; | ||
152 | } | ||
153 | |||
154 | bool ZkbHandler::startMapElement(int keycode, bool pressed) { | ||
155 | currentAction = currentState->get(keycode, pressed); | ||
156 | if (currentAction == 0) { | ||
157 | setError("keycode " + QString::number(keycode) + " not supported"); | ||
158 | return false; | ||
159 | } | ||
160 | |||
161 | currentAction->setEvent(false); | ||
162 | currentAction->setState(0); | ||
163 | |||
164 | return true; | ||
165 | } | ||
166 | |||
167 | bool ZkbHandler::startEventElement(int keycode, int unicode, int modifiers, | ||
168 | bool pressed, bool autorepeat) { | ||
169 | |||
170 | currentAction->setEvent(true); | ||
171 | currentAction->setKeycode(keycode); | ||
172 | currentAction->setUnicode(unicode); | ||
173 | currentAction->setModifiers(modifiers); | ||
174 | currentAction->setPressed(pressed); | ||
175 | currentAction->setAutorepeat(autorepeat); | ||
176 | |||
177 | return true; | ||
178 | } | ||
179 | |||
180 | bool ZkbHandler::startNextStateElement(const QString& state) { | ||
181 | State* s = keymap.getStateByName(prefix + state); | ||
182 | if (s == 0) { | ||
183 | setError("undefine state: " + prefix + state); | ||
184 | return false; | ||
185 | } | ||
186 | |||
187 | currentAction->setState(s); | ||
188 | return true; | ||
189 | } | ||
190 | |||
191 | |||
192 | bool ZkbHandler::endKeymapElement() { | ||
193 | if (ardelay > 0) { | ||
194 | keymap.setAutorepeatDelay(ardelay); | ||
195 | } | ||
196 | |||
197 | if (arperiod > 0) { | ||
198 | keymap.setAutorepeatPeriod(arperiod); | ||
199 | } | ||
200 | |||
201 | return true; | ||
202 | } | ||
203 | |||
204 | bool ZkbHandler::endIncludeElement() { | ||
205 | return true; | ||
206 | } | ||
207 | |||
208 | bool ZkbHandler::endLabelElement() { | ||
209 | return true; | ||
210 | } | ||
211 | |||
212 | bool ZkbHandler::endStateElement() { | ||
213 | currentState = 0; | ||
214 | return true; | ||
215 | } | ||
216 | |||
217 | bool ZkbHandler::endMapElement() { | ||
218 | currentAction = 0; | ||
219 | return true; | ||
220 | } | ||
221 | |||
222 | bool ZkbHandler::endEventElement() { | ||
223 | return true; | ||
224 | } | ||
225 | |||
226 | bool ZkbHandler::endNextStateElement() { | ||
227 | return true; | ||
228 | } | ||
diff --git a/noncore/apps/keyz-cfg/zkbcfg.h b/noncore/apps/keyz-cfg/zkbcfg.h new file mode 100644 index 0000000..dc1ac07 --- a/dev/null +++ b/noncore/apps/keyz-cfg/zkbcfg.h | |||
@@ -0,0 +1,69 @@ | |||
1 | #ifndef ZKBCFG_H | ||
2 | #define ZKBCFG_H | ||
3 | |||
4 | #include <qxml.h> | ||
5 | #include "zkb.h" | ||
6 | #include "zkbxml.h" | ||
7 | |||
8 | class ZkbConfig : public QXmlErrorHandler { | ||
9 | public: | ||
10 | ZkbConfig(const QString& dir); | ||
11 | virtual ~ZkbConfig(); | ||
12 | |||
13 | bool load(const QString& file, Keymap& keymap, const QString& prefix); | ||
14 | |||
15 | virtual bool warning(const QXmlParseException& e); | ||
16 | virtual bool error(const QXmlParseException& e); | ||
17 | virtual bool fatalError(const QXmlParseException& e); | ||
18 | virtual QString errorString(); | ||
19 | |||
20 | protected: | ||
21 | QString path; | ||
22 | QMap<QString, int> includedFiles; | ||
23 | QString err; | ||
24 | }; | ||
25 | |||
26 | class ZkbHandler : public ZkbXmlHandler { | ||
27 | public: | ||
28 | ZkbHandler(ZkbConfig& zkc, Keymap& keymap, const QString& prefix); | ||
29 | virtual ~ZkbHandler(); | ||
30 | |||
31 | protected: | ||
32 | ZkbConfig& zkc; | ||
33 | Keymap& keymap; | ||
34 | QString prefix; | ||
35 | |||
36 | // stuff for keymap tag | ||
37 | int ardelay; | ||
38 | int arperiod; | ||
39 | |||
40 | // stuff for state tag | ||
41 | QString currentStateName; | ||
42 | State* currentState; | ||
43 | |||
44 | // stuff for map tag | ||
45 | Action* currentAction; | ||
46 | |||
47 | virtual bool startKeymapElement(int ardelay, int arperiod, | ||
48 | const QString& author); | ||
49 | virtual bool startIncludeElement(const QString& file, | ||
50 | const QString& prfix); | ||
51 | virtual bool startLabelElement(const QString& label, | ||
52 | const QString& state); | ||
53 | virtual bool startStateElement(const QString& name, | ||
54 | const QString& parent, bool dflt); | ||
55 | virtual bool startMapElement(int key, bool pressed); | ||
56 | virtual bool startEventElement(int keycode, int unicode, int modifiers, | ||
57 | bool pressed, bool autorepeat); | ||
58 | virtual bool startNextStateElement(const QString& state); | ||
59 | |||
60 | virtual bool endKeymapElement(); | ||
61 | virtual bool endIncludeElement(); | ||
62 | virtual bool endLabelElement(); | ||
63 | virtual bool endStateElement(); | ||
64 | virtual bool endMapElement(); | ||
65 | virtual bool endEventElement(); | ||
66 | virtual bool endNextStateElement(); | ||
67 | }; | ||
68 | |||
69 | #endif | ||
diff --git a/noncore/apps/keyz-cfg/zkbnames.cpp b/noncore/apps/keyz-cfg/zkbnames.cpp new file mode 100644 index 0000000..fec3a2e --- a/dev/null +++ b/noncore/apps/keyz-cfg/zkbnames.cpp | |||
@@ -0,0 +1,450 @@ | |||
1 | #ifdef USE_ZKB_NAMES | ||
2 | |||
3 | #include <qmap.h> | ||
4 | #include <qstring.h> | ||
5 | |||
6 | #include "zkbnames.h" | ||
7 | |||
8 | QString Null_String((const char*) 0); | ||
9 | |||
10 | // Implementation of KeyNames | ||
11 | static struct { | ||
12 | int key; | ||
13 | char *name; | ||
14 | } Key_Names[] = { | ||
15 | { 32, "Space" }, | ||
16 | { 39, "Apostrophe" }, | ||
17 | { 44, "Comma" }, | ||
18 | { 46, "Period" }, | ||
19 | { 47, "Slash" }, | ||
20 | { 65, "A" }, | ||
21 | { 66, "B" }, | ||
22 | { 67, "C" }, | ||
23 | { 68, "D" }, | ||
24 | { 69, "E" }, | ||
25 | { 70, "F" }, | ||
26 | { 71, "G" }, | ||
27 | { 72, "H" }, | ||
28 | { 73, "I" }, | ||
29 | { 74, "J" }, | ||
30 | { 75, "K" }, | ||
31 | { 76, "L" }, | ||
32 | { 77, "M" }, | ||
33 | { 78, "N" }, | ||
34 | { 79, "O" }, | ||
35 | { 80, "P" }, | ||
36 | { 81, "Q" }, | ||
37 | { 82, "R" }, | ||
38 | { 83, "S" }, | ||
39 | { 84, "T" }, | ||
40 | { 85, "U" }, | ||
41 | { 86, "V" }, | ||
42 | { 87, "W" }, | ||
43 | { 88, "X" }, | ||
44 | { 89, "Y" }, | ||
45 | { 90, "Z" }, | ||
46 | { 4096, "Cancel" }, | ||
47 | { 4097, "Tab" }, | ||
48 | { 4099, "Backspace" }, | ||
49 | { 4100, "Enter" }, | ||
50 | { 4114, "Left" }, | ||
51 | { 4115, "Up" }, | ||
52 | { 4116, "Right" }, | ||
53 | { 4117, "Down" }, | ||
54 | { 4128, "Left Shift" }, | ||
55 | { 4130, "Right Shift" }, | ||
56 | { 4152, "Calendar" }, | ||
57 | { 4153, "Addressbook" }, | ||
58 | { 4154, "Menu" }, | ||
59 | { 4155, "Home" }, | ||
60 | { 4156, "Mail" }, | ||
61 | { 4165, "Fn" }, | ||
62 | { 4173, "Middle" }, | ||
63 | { 4176, "OK" }, | ||
64 | { 4177, "Off" }, | ||
65 | { 4178, "Light" }, | ||
66 | { 0, 0 } | ||
67 | }; | ||
68 | |||
69 | static QMap<QString, int> kn_map; | ||
70 | static QMap<int, QString> kn_rmap; | ||
71 | |||
72 | void init_kn_maps() { | ||
73 | int i = 0; | ||
74 | while (Key_Names[i].name != 0) { | ||
75 | int key = Key_Names[i].key; | ||
76 | QString name(Key_Names[i].name); | ||
77 | |||
78 | kn_map.insert(name, key); | ||
79 | kn_rmap.insert(key, name); | ||
80 | i++; | ||
81 | } | ||
82 | } | ||
83 | |||
84 | int KeyNames::find(const QString& key) { | ||
85 | if (kn_map.isEmpty()) { | ||
86 | init_kn_maps(); | ||
87 | } | ||
88 | |||
89 | QMap<QString, int>::Iterator it = kn_map.find(key); | ||
90 | if (it == kn_map.end()) { | ||
91 | return -1; | ||
92 | } else { | ||
93 | return it.data(); | ||
94 | } | ||
95 | } | ||
96 | |||
97 | const QString& KeyNames::find(int k) { | ||
98 | if (kn_map.isEmpty()) { | ||
99 | init_kn_maps(); | ||
100 | } | ||
101 | |||
102 | QMap<int, QString>::Iterator it = kn_rmap.find(k); | ||
103 | if (it == kn_rmap.end()) { | ||
104 | return Null_String; | ||
105 | } else { | ||
106 | return it.data(); | ||
107 | } | ||
108 | } | ||
109 | |||
110 | // Implementation of ModifierNames | ||
111 | struct { | ||
112 | int value; | ||
113 | char* name; | ||
114 | } Modifier_Names[] = { | ||
115 | { 8, "Shift" }, | ||
116 | { 16, "Control" }, | ||
117 | { 32, "Alt" }, | ||
118 | { 0x4000, "Keypad" }, | ||
119 | { 0, 0 } | ||
120 | }; | ||
121 | |||
122 | static QMap<QString, int> mn_map; | ||
123 | static QMap<int, QString> mn_rmap; | ||
124 | |||
125 | void init_mn_maps() { | ||
126 | int i = 0; | ||
127 | while (Modifier_Names[i].name != 0) { | ||
128 | int value = Modifier_Names[i].value; | ||
129 | QString name(Modifier_Names[i].name); | ||
130 | |||
131 | mn_map.insert(name, value); | ||
132 | mn_rmap.insert(value, name); | ||
133 | i++; | ||
134 | } | ||
135 | } | ||
136 | |||
137 | int ModifierNames::find(const QString& key) { | ||
138 | if (mn_map.isEmpty()) { | ||
139 | init_mn_maps(); | ||
140 | } | ||
141 | |||
142 | QMap<QString, int>::Iterator it = mn_map.find(key); | ||
143 | if (it == mn_map.end()) { | ||
144 | return -1; | ||
145 | } else { | ||
146 | return it.data(); | ||
147 | } | ||
148 | } | ||
149 | |||
150 | const QString& ModifierNames::find(int k) { | ||
151 | if (mn_map.isEmpty()) { | ||
152 | init_mn_maps(); | ||
153 | } | ||
154 | |||
155 | QMap<int, QString>::Iterator it = mn_rmap.find(k); | ||
156 | if (it == mn_rmap.end()) { | ||
157 | return Null_String; | ||
158 | } else { | ||
159 | return it.data(); | ||
160 | } | ||
161 | } | ||
162 | |||
163 | // Implementation of KeycodeNames | ||
164 | |||
165 | struct { | ||
166 | char* name; | ||
167 | int keycode; | ||
168 | } Keycode_Names[] = { | ||
169 | { "Escape", 0x1000 }, | ||
170 | { "Tab", 0x1001 }, | ||
171 | { "Backtab", 0x1002 }, | ||
172 | { "Backspace", 0x1003 }, | ||
173 | { "BackSpace", 0x1003 }, | ||
174 | { "Return", 0x1004 }, | ||
175 | { "Enter", 0x1005 }, | ||
176 | { "Insert", 0x1006 }, | ||
177 | { "Delete", 0x1007 }, | ||
178 | { "Pause", 0x1008 }, | ||
179 | { "Print", 0x1009 }, | ||
180 | { "SysReq", 0x100a }, | ||
181 | { "Home", 0x1010 }, | ||
182 | { "End", 0x1011 }, | ||
183 | { "Left", 0x1012 }, | ||
184 | { "Up", 0x1013 }, | ||
185 | { "Right", 0x1014 }, | ||
186 | { "Down", 0x1015 }, | ||
187 | { "Prior", 0x1016 }, | ||
188 | { "PageUp", 0x1016 }, | ||
189 | { "Next", 0x1017 }, | ||
190 | { "PageDown", 0x1017 }, | ||
191 | { "Shift", 0x1020 }, | ||
192 | { "Control", 0x1021 }, | ||
193 | { "Meta", 0x1022 }, | ||
194 | { "Alt", 0x1023 }, | ||
195 | { "CapsLock", 0x1024 }, | ||
196 | { "NumLock", 0x1025 }, | ||
197 | { "ScrollLock", 0x1026 }, | ||
198 | { "F1", 0x1030 }, | ||
199 | { "F2", 0x1031 }, | ||
200 | { "F3", 0x1032 }, | ||
201 | { "F4", 0x1033 }, | ||
202 | { "F5", 0x1034 }, | ||
203 | { "F6", 0x1035 }, | ||
204 | { "F7", 0x1036 }, | ||
205 | { "F8", 0x1037 }, | ||
206 | { "F9", 0x1038 }, | ||
207 | { "F10", 0x1039 }, | ||
208 | { "F11", 0x103a }, | ||
209 | { "F12", 0x103b }, | ||
210 | { "F13", 0x103c }, | ||
211 | { "F14", 0x103d }, | ||
212 | { "F15", 0x103e }, | ||
213 | { "F16", 0x103f }, | ||
214 | { "F17", 0x1040 }, | ||
215 | { "F18", 0x1041 }, | ||
216 | { "F19", 0x1042 }, | ||
217 | { "F20", 0x1043 }, | ||
218 | { "F21", 0x1044 }, | ||
219 | { "F22", 0x1045 }, | ||
220 | { "F23", 0x1046 }, | ||
221 | { "F24", 0x1047 }, | ||
222 | { "F25", 0x1048 }, | ||
223 | { "F26", 0x1049 }, | ||
224 | { "F27", 0x104a }, | ||
225 | { "F28", 0x104b }, | ||
226 | { "F29", 0x104c }, | ||
227 | { "F30", 0x104d }, | ||
228 | { "F31", 0x104e }, | ||
229 | { "F32", 0x104f }, | ||
230 | { "F33", 0x1050 }, | ||
231 | { "F34", 0x1051 }, | ||
232 | { "F35", 0x1052 }, | ||
233 | { "Super_L", 0x1053 }, | ||
234 | { "Super_R", 0x1054 }, | ||
235 | { "Menu", 0x1055 }, | ||
236 | { "Hyper_L", 0x1056 }, | ||
237 | { "Hyper_R", 0x1057 }, | ||
238 | { "Help", 0x1058 }, | ||
239 | { "Space", 0x20 }, | ||
240 | { "Any", 0x20 }, | ||
241 | { "Exclam", 0x21 }, | ||
242 | { "QuoteDbl", 0x22 }, | ||
243 | { "NumberSign", 0x23 }, | ||
244 | { "Dollar", 0x24 }, | ||
245 | { "Percent", 0x25 }, | ||
246 | { "Ampersand", 0x26 }, | ||
247 | { "Apostrophe", 0x27 }, | ||
248 | { "ParenLeft", 0x28 }, | ||
249 | { "ParenRight", 0x29 }, | ||
250 | { "Asterisk", 0x2a }, | ||
251 | { "Plus", 0x2b }, | ||
252 | { "Comma", 0x2c }, | ||
253 | { "Minus", 0x2d }, | ||
254 | { "Period", 0x2e }, | ||
255 | { "Slash", 0x2f }, | ||
256 | { "0", 0x30 }, | ||
257 | { "1", 0x31 }, | ||
258 | { "2", 0x32 }, | ||
259 | { "3", 0x33 }, | ||
260 | { "4", 0x34 }, | ||
261 | { "5", 0x35 }, | ||
262 | { "6", 0x36 }, | ||
263 | { "7", 0x37 }, | ||
264 | { "8", 0x38 }, | ||
265 | { "9", 0x39 }, | ||
266 | { "Colon", 0x3a }, | ||
267 | { "Semicolon", 0x3b }, | ||
268 | { "Less", 0x3c }, | ||
269 | { "Equal", 0x3d }, | ||
270 | { "Greater", 0x3e }, | ||
271 | { "Question", 0x3f }, | ||
272 | { "At", 0x40 }, | ||
273 | { "A", 0x41 }, | ||
274 | { "B", 0x42 }, | ||
275 | { "C", 0x43 }, | ||
276 | { "D", 0x44 }, | ||
277 | { "E", 0x45 }, | ||
278 | { "F", 0x46 }, | ||
279 | { "G", 0x47 }, | ||
280 | { "H", 0x48 }, | ||
281 | { "I", 0x49 }, | ||
282 | { "J", 0x4a }, | ||
283 | { "K", 0x4b }, | ||
284 | { "L", 0x4c }, | ||
285 | { "M", 0x4d }, | ||
286 | { "N", 0x4e }, | ||
287 | { "O", 0x4f }, | ||
288 | { "P", 0x50 }, | ||
289 | { "Q", 0x51 }, | ||
290 | { "R", 0x52 }, | ||
291 | { "S", 0x53 }, | ||
292 | { "T", 0x54 }, | ||
293 | { "U", 0x55 }, | ||
294 | { "V", 0x56 }, | ||
295 | { "W", 0x57 }, | ||
296 | { "X", 0x58 }, | ||
297 | { "Y", 0x59 }, | ||
298 | { "Z", 0x5a }, | ||
299 | { "BracketLeft", 0x5b }, | ||
300 | { "Backslash", 0x5c }, | ||
301 | { "BracketRight", 0x5d }, | ||
302 | { "AsciiCircum", 0x5e }, | ||
303 | { "Underscore", 0x5f }, | ||
304 | { "QuoteLeft", 0x60 }, | ||
305 | { "BraceLeft", 0x7b }, | ||
306 | { "Bar", 0x7c }, | ||
307 | { "BraceRight", 0x7d }, | ||
308 | { "AsciiTilde", 0x7e }, | ||
309 | { "nobreakspace", 0x0a0 }, | ||
310 | { "exclamdown", 0x0a1 }, | ||
311 | { "cent", 0x0a2 }, | ||
312 | { "sterling", 0x0a3 }, | ||
313 | { "currency", 0x0a4 }, | ||
314 | { "yen", 0x0a5 }, | ||
315 | { "brokenbar", 0x0a6 }, | ||
316 | { "section", 0x0a7 }, | ||
317 | { "diaeresis", 0x0a8 }, | ||
318 | { "copyright", 0x0a9 }, | ||
319 | { "ordfeminine", 0x0aa }, | ||
320 | { "guillemotleft", 0x0ab }, | ||
321 | { "notsign", 0x0ac }, | ||
322 | { "hyphen", 0x0ad }, | ||
323 | { "registered", 0x0ae }, | ||
324 | { "macron", 0x0af }, | ||
325 | { "degree", 0x0b0 }, | ||
326 | { "plusminus", 0x0b1 }, | ||
327 | { "twosuperior", 0x0b2 }, | ||
328 | { "threesuperior", 0x0b3 }, | ||
329 | { "acute", 0x0b4 }, | ||
330 | { "mu", 0x0b5 }, | ||
331 | { "paragraph", 0x0b6 }, | ||
332 | { "periodcentered", 0x0b7 }, | ||
333 | { "cedilla", 0x0b8 }, | ||
334 | { "onesuperior", 0x0b9 }, | ||
335 | { "masculine", 0x0ba }, | ||
336 | { "guillemotright", 0x0bb }, | ||
337 | { "onequarter", 0x0bc }, | ||
338 | { "onehalf", 0x0bd }, | ||
339 | { "threequarters", 0x0be }, | ||
340 | { "questiondown", 0x0bf }, | ||
341 | { "Agrave", 0x0c0 }, | ||
342 | { "Aacute", 0x0c1 }, | ||
343 | { "Acircumflex", 0x0c2 }, | ||
344 | { "Atilde", 0x0c3 }, | ||
345 | { "Adiaeresis", 0x0c4 }, | ||
346 | { "Aring", 0x0c5 }, | ||
347 | { "AE", 0x0c6 }, | ||
348 | { "Ccedilla", 0x0c7 }, | ||
349 | { "Egrave", 0x0c8 }, | ||
350 | { "Eacute", 0x0c9 }, | ||
351 | { "Ecircumflex", 0x0ca }, | ||
352 | { "Ediaeresis", 0x0cb }, | ||
353 | { "Igrave", 0x0cc }, | ||
354 | { "Iacute", 0x0cd }, | ||
355 | { "Icircumflex", 0x0ce }, | ||
356 | { "Idiaeresis", 0x0cf }, | ||
357 | { "ETH", 0x0d0 }, | ||
358 | { "Ntilde", 0x0d1 }, | ||
359 | { "Ograve", 0x0d2 }, | ||
360 | { "Oacute", 0x0d3 }, | ||
361 | { "Ocircumflex", 0x0d4 }, | ||
362 | { "Otilde", 0x0d5 }, | ||
363 | { "Odiaeresis", 0x0d6 }, | ||
364 | { "multiply", 0x0d7 }, | ||
365 | { "Ooblique", 0x0d8 }, | ||
366 | { "Ugrave", 0x0d9 }, | ||
367 | { "Uacute", 0x0da }, | ||
368 | { "Ucircumflex", 0x0db }, | ||
369 | { "Udiaeresis", 0x0dc }, | ||
370 | { "Yacute", 0x0dd }, | ||
371 | { "THORN", 0x0de }, | ||
372 | { "ssharp", 0x0df }, | ||
373 | { "agrave", 0x0e0 }, | ||
374 | { "aacute", 0x0e1 }, | ||
375 | { "acircumflex", 0x0e2 }, | ||
376 | { "atilde", 0x0e3 }, | ||
377 | { "adiaeresis", 0x0e4 }, | ||
378 | { "aring", 0x0e5 }, | ||
379 | { "ae", 0x0e6 }, | ||
380 | { "ccedilla", 0x0e7 }, | ||
381 | { "egrave", 0x0e8 }, | ||
382 | { "eacute", 0x0e9 }, | ||
383 | { "ecircumflex", 0x0ea }, | ||
384 | { "ediaeresis", 0x0eb }, | ||
385 | { "igrave", 0x0ec }, | ||
386 | { "iacute", 0x0ed }, | ||
387 | { "icircumflex", 0x0ee }, | ||
388 | { "idiaeresis", 0x0ef }, | ||
389 | { "eth", 0x0f0 }, | ||
390 | { "ntilde", 0x0f1 }, | ||
391 | { "ograve", 0x0f2 }, | ||
392 | { "oacute", 0x0f3 }, | ||
393 | { "ocircumflex", 0x0f4 }, | ||
394 | { "otilde", 0x0f5 }, | ||
395 | { "odiaeresis", 0x0f6 }, | ||
396 | { "division", 0x0f7 }, | ||
397 | { "oslash", 0x0f8 }, | ||
398 | { "ugrave", 0x0f9 }, | ||
399 | { "uacute", 0x0fa }, | ||
400 | { "ucircumflex", 0x0fb }, | ||
401 | { "udiaeresis", 0x0fc }, | ||
402 | { "yacute", 0x0fd }, | ||
403 | { "thorn", 0x0fe }, | ||
404 | { "ydiaeresis", 0x0ff }, | ||
405 | { "unknown", 0xffff }, | ||
406 | { 0, 0} | ||
407 | }; | ||
408 | |||
409 | static QMap<QString, int> kcn_map; | ||
410 | static QMap<int, QString> kcn_rmap; | ||
411 | |||
412 | void init_kcn_maps() { | ||
413 | int i = 0; | ||
414 | while (Keycode_Names[i].name != 0) { | ||
415 | int keycode = Keycode_Names[i].keycode; | ||
416 | QString name(Keycode_Names[i].name); | ||
417 | |||
418 | kcn_map.insert(name, keycode); | ||
419 | kcn_rmap.insert(keycode, name); | ||
420 | i++; | ||
421 | } | ||
422 | } | ||
423 | |||
424 | int KeycodeNames::find(const QString& key) { | ||
425 | if (kcn_map.isEmpty()) { | ||
426 | init_kcn_maps(); | ||
427 | } | ||
428 | |||
429 | QMap<QString, int>::Iterator it = kcn_map.find(key); | ||
430 | if (it == kcn_map.end()) { | ||
431 | return -1; | ||
432 | } else { | ||
433 | return it.data(); | ||
434 | } | ||
435 | } | ||
436 | |||
437 | const QString& KeycodeNames::find(int k) { | ||
438 | if (kcn_map.isEmpty()) { | ||
439 | init_kcn_maps(); | ||
440 | } | ||
441 | |||
442 | QMap<int, QString>::Iterator it = kcn_rmap.find(k); | ||
443 | if (it == kcn_rmap.end()) { | ||
444 | return Null_String; | ||
445 | } else { | ||
446 | return it.data(); | ||
447 | } | ||
448 | } | ||
449 | |||
450 | #endif | ||
diff --git a/noncore/apps/keyz-cfg/zkbnames.h b/noncore/apps/keyz-cfg/zkbnames.h new file mode 100644 index 0000000..58462ff --- a/dev/null +++ b/noncore/apps/keyz-cfg/zkbnames.h | |||
@@ -0,0 +1,27 @@ | |||
1 | #ifndef ZKBNAMES_H | ||
2 | #define ZKBNAMES_H | ||
3 | |||
4 | #ifdef USE_ZKB_NAMES | ||
5 | |||
6 | #include <qstring.h> | ||
7 | |||
8 | class KeyNames { | ||
9 | public: | ||
10 | static int find(const QString& key); | ||
11 | static const QString& find(int); | ||
12 | }; | ||
13 | |||
14 | class KeycodeNames { | ||
15 | public: | ||
16 | static int find(const QString& key); | ||
17 | static const QString& find(int); | ||
18 | }; | ||
19 | |||
20 | class ModifierNames { | ||
21 | public: | ||
22 | static int find(const QString& key); | ||
23 | static const QString& find(int); | ||
24 | }; | ||
25 | |||
26 | #endif | ||
27 | #endif | ||
diff --git a/noncore/apps/keyz-cfg/zkbxml.cpp b/noncore/apps/keyz-cfg/zkbxml.cpp new file mode 100644 index 0000000..76472cb --- a/dev/null +++ b/noncore/apps/keyz-cfg/zkbxml.cpp | |||
@@ -0,0 +1,587 @@ | |||
1 | #include "zkbxml.h" | ||
2 | #include "zkbnames.h" | ||
3 | |||
4 | static QString Keymap_Tag("keymap"); | ||
5 | static QString Include_Tag("include"); | ||
6 | static QString Label_Tag("label"); | ||
7 | static QString State_Tag("state"); | ||
8 | static QString Map_Tag("map"); | ||
9 | static QString Event_Tag("event"); | ||
10 | static QString NextState_Tag("next-state"); | ||
11 | |||
12 | ZkbXmlHandler::ZkbXmlHandler() { | ||
13 | } | ||
14 | |||
15 | ZkbXmlHandler::~ZkbXmlHandler() { | ||
16 | } | ||
17 | |||
18 | bool ZkbXmlHandler::startElement(const QString&, const QString&, | ||
19 | const QString& name, const QXmlAttributes& attr) { | ||
20 | |||
21 | bool ret = false; | ||
22 | |||
23 | if (name == Keymap_Tag) { | ||
24 | ret = start_keymap(attr); | ||
25 | } else if (name == Include_Tag) { | ||
26 | ret = start_include(attr); | ||
27 | } else if (name == Label_Tag) { | ||
28 | ret = start_label(attr); | ||
29 | } else if (name == State_Tag) { | ||
30 | ret = start_state(attr); | ||
31 | } else if (name == Map_Tag) { | ||
32 | ret = start_map(attr); | ||
33 | } else if (name == Event_Tag) { | ||
34 | ret = start_event(attr); | ||
35 | } else if (name == NextState_Tag) { | ||
36 | ret = start_next_state(attr); | ||
37 | } | ||
38 | |||
39 | elements.prepend(name); | ||
40 | |||
41 | return ret; | ||
42 | } | ||
43 | |||
44 | bool ZkbXmlHandler::endElement(const QString&, const QString&, | ||
45 | const QString& name) { | ||
46 | |||
47 | bool ret = false; | ||
48 | |||
49 | elements.remove(elements.begin()); | ||
50 | |||
51 | if (name == Keymap_Tag) { | ||
52 | ret = end_keymap(); | ||
53 | } else if (name == Include_Tag) { | ||
54 | ret = end_include(); | ||
55 | } else if (name == Label_Tag) { | ||
56 | ret = end_label(); | ||
57 | } else if (name == State_Tag) { | ||
58 | ret = end_state(); | ||
59 | } else if (name == Map_Tag) { | ||
60 | ret = end_map(); | ||
61 | } else if (name == Event_Tag) { | ||
62 | ret = end_event(); | ||
63 | } else if (name == NextState_Tag) { | ||
64 | ret = end_next_state(); | ||
65 | } | ||
66 | |||
67 | return ret; | ||
68 | } | ||
69 | |||
70 | QString ZkbXmlHandler::errorString() { | ||
71 | return err; | ||
72 | } | ||
73 | |||
74 | bool ZkbXmlHandler::startKeymapElement(int ardelay, int arperiod, const QString& author) { | ||
75 | return false; | ||
76 | } | ||
77 | |||
78 | bool ZkbXmlHandler::startIncludeElement(const QString& file, | ||
79 | const QString& prefix) { | ||
80 | |||
81 | return false; | ||
82 | } | ||
83 | |||
84 | bool ZkbXmlHandler::startLabelElement(const QString& label, | ||
85 | const QString& state) { | ||
86 | |||
87 | return false; | ||
88 | } | ||
89 | |||
90 | bool ZkbXmlHandler::startStateElement(const QString& name, | ||
91 | const QString& parent, bool dflt) { | ||
92 | |||
93 | return false; | ||
94 | } | ||
95 | |||
96 | bool ZkbXmlHandler::startMapElement(int keycode, bool pressed) { | ||
97 | return false; | ||
98 | } | ||
99 | |||
100 | bool ZkbXmlHandler::startEventElement(int keycode, int unicode, int modifiers, | ||
101 | bool pressed, bool autorepeat) { | ||
102 | |||
103 | return false; | ||
104 | } | ||
105 | |||
106 | bool ZkbXmlHandler::startNextStateElement(const QString& state) { | ||
107 | return false; | ||
108 | } | ||
109 | |||
110 | |||
111 | bool ZkbXmlHandler::endKeymapElement() { | ||
112 | return false; | ||
113 | } | ||
114 | |||
115 | bool ZkbXmlHandler::endIncludeElement() { | ||
116 | return false; | ||
117 | } | ||
118 | |||
119 | bool ZkbXmlHandler::endLabelElement() { | ||
120 | return false; | ||
121 | } | ||
122 | |||
123 | bool ZkbXmlHandler::endStateElement() { | ||
124 | return false; | ||
125 | } | ||
126 | |||
127 | bool ZkbXmlHandler::endMapElement() { | ||
128 | return false; | ||
129 | } | ||
130 | |||
131 | bool ZkbXmlHandler::endEventElement() { | ||
132 | return false; | ||
133 | } | ||
134 | |||
135 | bool ZkbXmlHandler::endNextStateElement() { | ||
136 | return false; | ||
137 | } | ||
138 | |||
139 | |||
140 | bool ZkbXmlHandler::start_keymap(const QXmlAttributes& attr) { | ||
141 | int nattr = 0; | ||
142 | int didx = attr.index("autorepeat-delay"); | ||
143 | int pidx = attr.index("autorepeat-period"); | ||
144 | int aidx = attr.index("author"); | ||
145 | int ard = -1; | ||
146 | int arp = -1; | ||
147 | QString author; | ||
148 | |||
149 | if (!elements.isEmpty()) { | ||
150 | setError("keymap element should be top-level element"); | ||
151 | return false; | ||
152 | } | ||
153 | |||
154 | if (didx >= 0) { | ||
155 | QString s = attr.value(didx); | ||
156 | bool ok; | ||
157 | |||
158 | ard = s.toInt(&ok); | ||
159 | if (!ok) { | ||
160 | setError("Invalid autorepeat-delay value: " + s); | ||
161 | return false; | ||
162 | } | ||
163 | |||
164 | nattr++; | ||
165 | } | ||
166 | |||
167 | if (pidx >= 0) { | ||
168 | QString s = attr.value(pidx); | ||
169 | bool ok; | ||
170 | |||
171 | arp = s.toInt(&ok); | ||
172 | if (!ok) { | ||
173 | setError("Invalid autorepeat-period value: " + s); | ||
174 | return false; | ||
175 | } | ||
176 | |||
177 | nattr++; | ||
178 | } | ||
179 | |||
180 | if (aidx >= 0) { | ||
181 | author = attr.value(aidx); | ||
182 | nattr++; | ||
183 | } | ||
184 | |||
185 | if (attr.length() > nattr) { | ||
186 | setError("Unsupported attributes"); | ||
187 | return false; | ||
188 | } | ||
189 | |||
190 | return startKeymapElement(ard, arp, author); | ||
191 | } | ||
192 | |||
193 | bool ZkbXmlHandler::start_include(const QXmlAttributes& attr) { | ||
194 | int nattr = 0; | ||
195 | int fidx = attr.index("file"); | ||
196 | int pidx = attr.index("prefix"); | ||
197 | QString file; | ||
198 | QString prefix((const char*) 0); | ||
199 | |||
200 | if (elements.first() != Keymap_Tag) { | ||
201 | setError("include element should be used only " | ||
202 | "within keymap element"); | ||
203 | return false; | ||
204 | } | ||
205 | |||
206 | if (fidx >= 0) { | ||
207 | file = attr.value(fidx); | ||
208 | nattr++; | ||
209 | } else { | ||
210 | setError("Missing file attribute"); | ||
211 | return false; | ||
212 | } | ||
213 | |||
214 | if (pidx >= 0) { | ||
215 | prefix = attr.value(pidx); | ||
216 | nattr++; | ||
217 | } | ||
218 | |||
219 | if (attr.length() > nattr) { | ||
220 | setError("Unsupported attributes"); | ||
221 | return false; | ||
222 | } | ||
223 | |||
224 | return startIncludeElement(file, prefix); | ||
225 | } | ||
226 | |||
227 | bool ZkbXmlHandler::start_label(const QXmlAttributes& attr) { | ||
228 | int nattr = 0; | ||
229 | int nidx = attr.index("name"); | ||
230 | int sidx = attr.index("state"); | ||
231 | QString name; | ||
232 | QString state; | ||
233 | |||
234 | if (elements.first() != Keymap_Tag) { | ||
235 | setError("label element should be used only " | ||
236 | "within keymap element"); | ||
237 | return false; | ||
238 | } | ||
239 | |||
240 | if (nidx >= 0) { | ||
241 | name = attr.value(nidx); | ||
242 | nattr++; | ||
243 | } else { | ||
244 | setError("Missing name attribute"); | ||
245 | return false; | ||
246 | } | ||
247 | |||
248 | if (sidx >= 0) { | ||
249 | state = attr.value(sidx); | ||
250 | nattr++; | ||
251 | } else { | ||
252 | setError("Missing name attribute"); | ||
253 | return false; | ||
254 | } | ||
255 | |||
256 | if (attr.length() > nattr) { | ||
257 | setError("Unsupported attributes"); | ||
258 | return false; | ||
259 | } | ||
260 | |||
261 | return startLabelElement(name, state); | ||
262 | } | ||
263 | |||
264 | bool ZkbXmlHandler::start_state(const QXmlAttributes& attr) { | ||
265 | int nattr = 0; | ||
266 | int nidx = attr.index("name"); | ||
267 | int pidx = attr.index("parent"); | ||
268 | int didx = attr.index("default"); | ||
269 | QString name; | ||
270 | QString parent((const char*) 0); | ||
271 | bool dflt = false; | ||
272 | |||
273 | if (elements.first() != Keymap_Tag) { | ||
274 | setError("state element should be used only " | ||
275 | "within keymap element"); | ||
276 | return false; | ||
277 | } | ||
278 | |||
279 | if (nidx >= 0) { | ||
280 | name = attr.value(nidx); | ||
281 | nattr++; | ||
282 | } else { | ||
283 | setError("Missing name attribute"); | ||
284 | return false; | ||
285 | } | ||
286 | |||
287 | if (pidx >= 0) { | ||
288 | parent = attr.value(pidx); | ||
289 | nattr++; | ||
290 | } | ||
291 | |||
292 | if (didx >= 0) { | ||
293 | dflt = str2bool(attr.value(didx)); | ||
294 | if (!err.isEmpty()) { | ||
295 | return false; | ||
296 | } | ||
297 | |||
298 | nattr++; | ||
299 | } | ||
300 | |||
301 | if (attr.length() > nattr) { | ||
302 | setError("Unsupported attributes"); | ||
303 | return false; | ||
304 | } | ||
305 | |||
306 | return startStateElement(name, parent, dflt); | ||
307 | } | ||
308 | |||
309 | bool ZkbXmlHandler::start_map(const QXmlAttributes& attr) { | ||
310 | int nattr = 0; | ||
311 | int kidx = attr.index("keycode"); | ||
312 | int pidx = attr.index("pressed"); | ||
313 | int key; | ||
314 | bool pressed; | ||
315 | |||
316 | if (elements.first() != State_Tag) { | ||
317 | setError("map element should be used only " | ||
318 | "within state element"); | ||
319 | return false; | ||
320 | } | ||
321 | |||
322 | if (kidx >= 0) { | ||
323 | key = str2key(attr.value(kidx)); | ||
324 | if (!err.isEmpty()) { | ||
325 | return false; | ||
326 | } | ||
327 | nattr++; | ||
328 | } else { | ||
329 | setError("Missing keycode attribute"); | ||
330 | return false; | ||
331 | } | ||
332 | |||
333 | if (pidx >= 0) { | ||
334 | pressed = str2bool(attr.value(pidx)); | ||
335 | if (!err.isEmpty()) { | ||
336 | return false; | ||
337 | } | ||
338 | nattr++; | ||
339 | } else { | ||
340 | setError("Missing pressed attribute"); | ||
341 | return false; | ||
342 | } | ||
343 | |||
344 | if (attr.length() > nattr) { | ||
345 | setError("Unsupported attributes"); | ||
346 | return false; | ||
347 | } | ||
348 | |||
349 | return startMapElement(key, pressed); | ||
350 | } | ||
351 | |||
352 | bool ZkbXmlHandler::start_event(const QXmlAttributes& attr) { | ||
353 | int nattr = 0; | ||
354 | int kidx = attr.index("keycode"); | ||
355 | int pidx = attr.index("pressed"); | ||
356 | int uidx = attr.index("unicode"); | ||
357 | int midx = attr.index("modifiers"); | ||
358 | int aidx = attr.index("autorepeat"); | ||
359 | |||
360 | int keycode; | ||
361 | int unicode; | ||
362 | int modifiers = 0; | ||
363 | bool pressed; | ||
364 | bool autorepeat = false; | ||
365 | |||
366 | if (elements.first() != Map_Tag) { | ||
367 | setError("event element should be used only " | ||
368 | "within map element"); | ||
369 | return false; | ||
370 | } | ||
371 | |||
372 | if (kidx >= 0) { | ||
373 | keycode = str2keycode(attr.value(kidx)); | ||
374 | if (!err.isEmpty()) { | ||
375 | return false; | ||
376 | } | ||
377 | nattr++; | ||
378 | } else { | ||
379 | setError("Missing keycode attribute"); | ||
380 | return false; | ||
381 | } | ||
382 | |||
383 | if (uidx >= 0) { | ||
384 | unicode = str2unicode(attr.value(uidx)); | ||
385 | if (!err.isEmpty()) { | ||
386 | return false; | ||
387 | } | ||
388 | nattr++; | ||
389 | } else { | ||
390 | setError("Missing unicode attribute"); | ||
391 | return false; | ||
392 | } | ||
393 | |||
394 | if (midx >= 0) { | ||
395 | modifiers = str2modifier(attr.value(midx)); | ||
396 | if (!err.isEmpty()) { | ||
397 | return false; | ||
398 | } | ||
399 | nattr++; | ||
400 | } | ||
401 | |||
402 | if (pidx >= 0) { | ||
403 | pressed = str2bool(attr.value(pidx)); | ||
404 | if (!err.isEmpty()) { | ||
405 | return false; | ||
406 | } | ||
407 | nattr++; | ||
408 | } else { | ||
409 | setError("Missing pressed attribute"); | ||
410 | return false; | ||
411 | } | ||
412 | |||
413 | if (aidx >= 0) { | ||
414 | autorepeat = str2bool(attr.value(aidx)); | ||
415 | if (!err.isEmpty()) { | ||
416 | return false; | ||
417 | } | ||
418 | nattr++; | ||
419 | } | ||
420 | |||
421 | if (attr.length() > nattr) { | ||
422 | setError("Unsupported attributes"); | ||
423 | return false; | ||
424 | } | ||
425 | |||
426 | return startEventElement(keycode, unicode, modifiers, pressed, | ||
427 | autorepeat); | ||
428 | } | ||
429 | |||
430 | bool ZkbXmlHandler::start_next_state(const QXmlAttributes& attr) { | ||
431 | int nattr = 0; | ||
432 | int nidx = attr.index("name"); | ||
433 | QString name; | ||
434 | |||
435 | if (elements.first() != Map_Tag) { | ||
436 | setError("next-state element should be used only " | ||
437 | "within map element"); | ||
438 | return false; | ||
439 | } | ||
440 | |||
441 | if (nidx >= 0) { | ||
442 | name = attr.value(nidx); | ||
443 | nattr++; | ||
444 | } else { | ||
445 | setError("Missing name attribute"); | ||
446 | return false; | ||
447 | } | ||
448 | |||
449 | if (attr.length() > nattr) { | ||
450 | setError("Unsupported attributes"); | ||
451 | return false; | ||
452 | } | ||
453 | |||
454 | return startNextStateElement(name); | ||
455 | } | ||
456 | |||
457 | bool ZkbXmlHandler::end_keymap() { | ||
458 | return endKeymapElement(); | ||
459 | } | ||
460 | |||
461 | bool ZkbXmlHandler::end_include() { | ||
462 | return endIncludeElement(); | ||
463 | } | ||
464 | |||
465 | bool ZkbXmlHandler::end_label() { | ||
466 | return endLabelElement(); | ||
467 | } | ||
468 | |||
469 | bool ZkbXmlHandler::end_state() { | ||
470 | return endStateElement(); | ||
471 | } | ||
472 | |||
473 | bool ZkbXmlHandler::end_map() { | ||
474 | return endMapElement(); | ||
475 | } | ||
476 | |||
477 | bool ZkbXmlHandler::end_event() { | ||
478 | return endEventElement(); | ||
479 | } | ||
480 | |||
481 | bool ZkbXmlHandler::end_next_state() { | ||
482 | return endNextStateElement(); | ||
483 | } | ||
484 | |||
485 | void ZkbXmlHandler::setError(const QString& e) { | ||
486 | err = e; | ||
487 | } | ||
488 | |||
489 | int ZkbXmlHandler::str2key(const QString& s) { | ||
490 | int ret; | ||
491 | |||
492 | #ifdef USE_ZKB_NAMES | ||
493 | ret = KeyNames::find(s); | ||
494 | if (ret == -1) { | ||
495 | setError("Invalid value: " + s); | ||
496 | } | ||
497 | |||
498 | #else | ||
499 | ret = str2uint(s); | ||
500 | #endif | ||
501 | |||
502 | return ret; | ||
503 | } | ||
504 | |||
505 | int ZkbXmlHandler::str2modifier(const QString& val) { | ||
506 | int ret; | ||
507 | |||
508 | #ifdef USE_ZKB_NAMES | ||
509 | int n, i; | ||
510 | ret = 0; | ||
511 | n = 0; | ||
512 | do { | ||
513 | i = val.find('|', n); | ||
514 | if (i < 0) { | ||
515 | i = val.length(); | ||
516 | } | ||
517 | |||
518 | QString s = val.mid(n, i - n); | ||
519 | int v = ModifierNames::find(s.stripWhiteSpace()); | ||
520 | |||
521 | if (v == -1) { | ||
522 | setError("Invalid value: " + val); | ||
523 | return -1; | ||
524 | } | ||
525 | |||
526 | ret |= v; | ||
527 | n = i + 1; | ||
528 | } while (n < val.length()); | ||
529 | #else | ||
530 | ret = str2uint(val); | ||
531 | #endif | ||
532 | |||
533 | return ret; | ||
534 | } | ||
535 | |||
536 | bool ZkbXmlHandler::str2bool(const QString& s) { | ||
537 | if (s == "true") { | ||
538 | return true; | ||
539 | } else { | ||
540 | return false; | ||
541 | } | ||
542 | } | ||
543 | |||
544 | int ZkbXmlHandler::str2unicode(const QString& s) { | ||
545 | return str2uint(s); | ||
546 | } | ||
547 | |||
548 | int ZkbXmlHandler::str2keycode(const QString& s) { | ||
549 | int ret; | ||
550 | |||
551 | #ifdef USE_ZKB_NAMES | ||
552 | ret = KeycodeNames::find(s); | ||
553 | if (ret == -1) { | ||
554 | setError("Invalid value: " + s); | ||
555 | } | ||
556 | |||
557 | #else | ||
558 | ret = str2uint(s); | ||
559 | #endif | ||
560 | |||
561 | return ret; | ||
562 | } | ||
563 | |||
564 | int ZkbXmlHandler::str2uint(const QString& s) { | ||
565 | int ret; | ||
566 | bool ok; | ||
567 | QString val = s; | ||
568 | int r; | ||
569 | |||
570 | if (val.left(2) == "0x") { | ||
571 | val = s.mid(2); | ||
572 | r = 16; | ||
573 | } else if (val.left(1) == "0") { | ||
574 | val = s.mid(1); | ||
575 | r = 8; | ||
576 | } else { | ||
577 | r = 10; | ||
578 | } | ||
579 | |||
580 | ret = val.toInt(&ok, r); | ||
581 | if (!ok) { | ||
582 | setError("Invalid value: " + s); | ||
583 | ret = -1; | ||
584 | } | ||
585 | |||
586 | return ret; | ||
587 | } | ||
diff --git a/noncore/apps/keyz-cfg/zkbxml.h b/noncore/apps/keyz-cfg/zkbxml.h new file mode 100644 index 0000000..2b15cbb --- a/dev/null +++ b/noncore/apps/keyz-cfg/zkbxml.h | |||
@@ -0,0 +1,68 @@ | |||
1 | #ifndef ZKBXML_H | ||
2 | #define ZKBXML_H | ||
3 | |||
4 | #include <qxml.h> | ||
5 | |||
6 | class ZkbXmlHandler : public QXmlDefaultHandler { | ||
7 | public: | ||
8 | ZkbXmlHandler(); | ||
9 | virtual ~ZkbXmlHandler(); | ||
10 | |||
11 | virtual bool startElement(const QString&, const QString&, | ||
12 | const QString& name, const QXmlAttributes& attr); | ||
13 | |||
14 | virtual bool endElement(const QString&, const QString&, | ||
15 | const QString& name); | ||
16 | |||
17 | virtual QString errorString(); | ||
18 | |||
19 | protected: | ||
20 | QString err; | ||
21 | QStringList elements; | ||
22 | |||
23 | virtual bool startKeymapElement(int ardelay, int arperiod, | ||
24 | const QString& author); | ||
25 | virtual bool startIncludeElement(const QString& file, | ||
26 | const QString& prfix); | ||
27 | virtual bool startLabelElement(const QString& label, | ||
28 | const QString& state); | ||
29 | virtual bool startStateElement(const QString& name, | ||
30 | const QString& parent, bool dflt); | ||
31 | virtual bool startMapElement(int key, bool pressed); | ||
32 | virtual bool startEventElement(int keycode, int unicode, int modifiers, | ||
33 | bool pressed, bool autorepeat); | ||
34 | virtual bool startNextStateElement(const QString& state); | ||
35 | |||
36 | virtual bool endKeymapElement(); | ||
37 | virtual bool endIncludeElement(); | ||
38 | virtual bool endLabelElement(); | ||
39 | virtual bool endStateElement(); | ||
40 | virtual bool endMapElement(); | ||
41 | virtual bool endEventElement(); | ||
42 | virtual bool endNextStateElement(); | ||
43 | |||
44 | bool start_keymap(const QXmlAttributes&); | ||
45 | bool start_include(const QXmlAttributes&); | ||
46 | bool start_label(const QXmlAttributes&); | ||
47 | bool start_state(const QXmlAttributes&); | ||
48 | bool start_map(const QXmlAttributes&); | ||
49 | bool start_event(const QXmlAttributes&); | ||
50 | bool start_next_state(const QXmlAttributes&); | ||
51 | bool end_keymap(); | ||
52 | bool end_include(); | ||
53 | bool end_label(); | ||
54 | bool end_state(); | ||
55 | bool end_map(); | ||
56 | bool end_event(); | ||
57 | bool end_next_state(); | ||
58 | |||
59 | void setError(const QString&); | ||
60 | int str2key(const QString&); | ||
61 | int str2modifier(const QString&); | ||
62 | bool str2bool(const QString&); | ||
63 | int str2unicode(const QString&); | ||
64 | int str2keycode(const QString&); | ||
65 | int str2uint(const QString&); | ||
66 | }; | ||
67 | |||
68 | #endif | ||
@@ -1,205 +1,207 @@ | |||
1 | CONFIG_ADDRESSBOOK core/pim/addressbookaddressbook.pro | 1 | CONFIG_ADDRESSBOOK core/pim/addressbookaddressbook.pro |
2 | CONFIG_ADVANCEDFM noncore/apps/advancedfmadvancedfm.pro | 2 | CONFIG_ADVANCEDFM noncore/apps/advancedfmadvancedfm.pro |
3 | CONFIG_APPEARANCE2 noncore/settings/appearance2appearance2.pro | 3 | CONFIG_APPEARANCE2 noncore/settings/appearance2appearance2.pro |
4 | CONFIG_APPLET_EXAMPLE examples/applet example.pro | 4 | CONFIG_APPLET_EXAMPLE examples/applet example.pro |
5 | CONFIG_APPSKEY noncore/settings/appskeyappskey.pro | 5 | CONFIG_APPSKEY noncore/settings/appskeyappskey.pro |
6 | CONFIG_AQPKG noncore/settings/aqpkgaqpkg.pro | 6 | CONFIG_AQPKG noncore/settings/aqpkgaqpkg.pro |
7 | CONFIG_AUTOROTATEAPPLET noncore/applets/autorotateappletautorotateapplet.pro | 7 | CONFIG_AUTOROTATEAPPLET noncore/applets/autorotateappletautorotateapplet.pro |
8 | CONFIG_BACKGAMMONnoncore/games/backgammon backgammon.pro | 8 | CONFIG_BACKGAMMONnoncore/games/backgammon backgammon.pro |
9 | CONFIG_BACKUP noncore/settings/backupbackup.pro | 9 | CONFIG_BACKUP noncore/settings/backupbackup.pro |
10 | CONFIG_BARTENDER noncore/apps/opie-bartenderbartender.pro | 10 | CONFIG_BARTENDER noncore/apps/opie-bartenderbartender.pro |
11 | CONFIG_BATTERYAPPLET core/applets/batteryappletbatteryapplet.pro | 11 | CONFIG_BATTERYAPPLET core/applets/batteryappletbatteryapplet.pro |
12 | CONFIG_BEND noncore/unsupported/mail2/bendbend.pro | 12 | CONFIG_BEND noncore/unsupported/mail2/bendbend.pro |
13 | CONFIG_BIGSCREEN_EXAMPLE libopie/big-screen/example osplitter_mail.pro | 13 | CONFIG_BIGSCREEN_EXAMPLE libopie/big-screen/example osplitter_mail.pro |
14 | CONFIG_BINARY noncore/tools/calc2/binarybinary.pro | 14 | CONFIG_BINARY noncore/tools/calc2/binarybinary.pro |
15 | CONFIG_BLUE-PIN noncore/net/opietooth/blue-pinblue-pin.pro | 15 | CONFIG_BLUE-PIN noncore/net/opietooth/blue-pinblue-pin.pro |
16 | CONFIG_BOUNCE noncore/games/bouncebounce.pro | 16 | CONFIG_BOUNCE noncore/games/bouncebounce.pro |
17 | CONFIG_BUTTON-SETTINGS core/settings/buttonbutton.pro | 17 | CONFIG_BUTTON-SETTINGS core/settings/buttonbutton.pro |
18 | CONFIG_BUZZWORD noncore/games/buzzwordbuzzword.pro | 18 | CONFIG_BUZZWORD noncore/games/buzzwordbuzzword.pro |
19 | CONFIG_CALC2 noncore/tools/calc2calc.pro | 19 | CONFIG_CALC2 noncore/tools/calc2calc.pro |
20 | CONFIG_CALCULATOR noncore/tools/calculatorcalculator.pro | 20 | CONFIG_CALCULATOR noncore/tools/calculatorcalculator.pro |
21 | CONFIG_CALIBRATE core/apps/calibratecalibrate.pro | 21 | CONFIG_CALIBRATE core/apps/calibratecalibrate.pro |
22 | CONFIG_CAMERA noncore/multimedia/cameracamera.pro | 22 | CONFIG_CAMERA noncore/multimedia/cameracamera.pro |
23 | CONFIG_CARDMON core/applets/cardmoncardmon.pro | 23 | CONFIG_CARDMON core/applets/cardmoncardmon.pro |
24 | CONFIG_CHECKBOOK noncore/apps/checkbookcheckbook.pro | 24 | CONFIG_CHECKBOOK noncore/apps/checkbookcheckbook.pro |
25 | CONFIG_CITYTIME core/settings/citytimecitytime.pro | 25 | CONFIG_CITYTIME core/settings/citytimecitytime.pro |
26 | CONFIG_CLIPBOARDAPPLET core/applets/clipboardappletclipboardapplet.pro | 26 | CONFIG_CLIPBOARDAPPLET core/applets/clipboardappletclipboardapplet.pro |
27 | CONFIG_CLOCKAPPLET core/applets/clockappletclockapplet.pro | 27 | CONFIG_CLOCKAPPLET core/applets/clockappletclockapplet.pro |
28 | CONFIG_CLOCK noncore/tools/clockclock.pro | 28 | CONFIG_CLOCK noncore/tools/clockclock.pro |
29 | CONFIG_CONFEDIT noncore/apps/confeditconfedit.pro | 29 | CONFIG_CONFEDIT noncore/apps/confeditconfedit.pro |
30 | CONFIG_DASHER inputmethods/dasherdasher.pro | 30 | CONFIG_DASHER inputmethods/dasherdasher.pro |
31 | CONFIG_DATEBOOK core/pim/datebookdatebook.pro | 31 | CONFIG_DATEBOOK core/pim/datebookdatebook.pro |
32 | CONFIG_DECO_FLAT noncore/decorations/flatflat.pro | 32 | CONFIG_DECO_FLAT noncore/decorations/flatflat.pro |
33 | CONFIG_DECO_LIQUID noncore/decorations/liquidliquid.pro | 33 | CONFIG_DECO_LIQUID noncore/decorations/liquidliquid.pro |
34 | CONFIG_DECO_POLISHED noncore/decorations/polishedpolished.pro | 34 | CONFIG_DECO_POLISHED noncore/decorations/polishedpolished.pro |
35 | CONFIG_DICTIONARY noncore/apps/dictionarydictionary.pro | 35 | CONFIG_DICTIONARY noncore/apps/dictionarydictionary.pro |
36 | CONFIG_DOCTAB noncore/settings/doctab doctab.pro | 36 | CONFIG_DOCTAB noncore/settings/doctab doctab.pro |
37 | CONFIG_DRAWPAD noncore/graphics/drawpaddrawpad.pro | 37 | CONFIG_DRAWPAD noncore/graphics/drawpaddrawpad.pro |
38 | CONFIG_DVORAK inputmethods/dvorakdvorak.pro | 38 | CONFIG_DVORAK inputmethods/dvorakdvorak.pro |
39 | CONFIG_EMBEDDEDKONSOLE core/apps/embeddedkonsoleembeddedkonsole.pro | 39 | CONFIG_EMBEDDEDKONSOLE core/apps/embeddedkonsoleembeddedkonsole.pro |
40 | CONFIG_EUROCONV noncore/tools/euroconv/ euroconv.pro | 40 | CONFIG_EUROCONV noncore/tools/euroconv/ euroconv.pro |
41 | CONFIG_EXAMPLE_BOARD examples/inputmethod example.pro | 41 | CONFIG_EXAMPLE_BOARD examples/inputmethod example.pro |
42 | CONFIG_EXAMPLE_MENU examples/menuapplet menuapplet.pro | 42 | CONFIG_EXAMPLE_MENU examples/menuapplet menuapplet.pro |
43 | CONFIG_EXAMPLE_VPN examples/networksettings example.pro | 43 | CONFIG_EXAMPLE_VPN examples/networksettings example.pro |
44 | CONFIG_FIFTEEN noncore/games/fifteenfifteen.pro | 44 | CONFIG_FIFTEEN noncore/games/fifteenfifteen.pro |
45 | CONFIG_FILEBROWSER noncore/unsupported/filebrowserfilebrowser.pro | 45 | CONFIG_FILEBROWSER noncore/unsupported/filebrowserfilebrowser.pro |
46 | CONFIG_FLAT noncore/styles/flatflat.pro | 46 | CONFIG_FLAT noncore/styles/flatflat.pro |
47 | CONFIG_FORMATTER noncore/tools/formatterformatter.pro | 47 | CONFIG_FORMATTER noncore/tools/formatterformatter.pro |
48 | CONFIG_FREETYPE freetypefreetype.pro | 48 | CONFIG_FREETYPE freetypefreetype.pro |
49 | CONFIG_FRESH noncore/styles/freshfresh.pro | 49 | CONFIG_FRESH noncore/styles/freshfresh.pro |
50 | CONFIG_FTPLIB noncore/net/ftplibftplib.pro | 50 | CONFIG_FTPLIB noncore/net/ftplibftplib.pro |
51 | CONFIG_GO noncore/games/gogo.pro | 51 | CONFIG_GO noncore/games/gogo.pro |
52 | CONFIG_GSMTOOL noncore/unsupported/gsmtoolgsmtool.pro | 52 | CONFIG_GSMTOOL noncore/unsupported/gsmtoolgsmtool.pro |
53 | CONFIG_HANDWRITING inputmethods/handwritinghandwriting.pro | 53 | CONFIG_HANDWRITING inputmethods/handwritinghandwriting.pro |
54 | CONFIG_HELPBROWSER core/apps/helpbrowserhelpbrowser.pro | 54 | CONFIG_HELPBROWSER core/apps/helpbrowserhelpbrowser.pro |
55 | CONFIG_HOMEAPPLET core/applets/homeapplethomeapplet.pro | 55 | CONFIG_HOMEAPPLET core/applets/homeapplethomeapplet.pro |
56 | CONFIG_INTERFACES noncore/settings/networksettings/interfacesinterfaces.pro | 56 | CONFIG_INTERFACES noncore/settings/networksettings/interfacesinterfaces.pro |
57 | CONFIG_IRDAAPPLET core/applets/irdaappletirdaapplet.pro | 57 | CONFIG_IRDAAPPLET core/applets/irdaappletirdaapplet.pro |
58 | CONFIG_JUMPX inputmethods/jumpxjumpx.pro | 58 | CONFIG_JUMPX inputmethods/jumpxjumpx.pro |
59 | CONFIG_KBILL noncore/games/kbillkbill.pro | 59 | CONFIG_KBILL noncore/games/kbillkbill.pro |
60 | CONFIG_KCHECKERS noncore/games/kcheckerskcheckers.pro | 60 | CONFIG_KCHECKERS noncore/games/kcheckerskcheckers.pro |
61 | CONFIG_KEYBOARD inputmethods/keyboardkeyboard.pro | 61 | CONFIG_KEYBOARD inputmethods/keyboardkeyboard.pro |
62 | CONFIG_KEYPEBBLE noncore/comm/keypebblekeypebble.pro | 62 | CONFIG_KEYPEBBLE noncore/comm/keypebblekeypebble.pro |
63 | CONFIG_KEYVIEW development/keyviewkeyview.pro | 63 | CONFIG_KEYVIEW development/keyviewkeyview.pro |
64 | CONFIG_KEYZCFG noncore/apps/keyz-cfg keyz-cfg.pro | ||
64 | CONFIG_KJUMPX inputmethods/kjumpxkjumpx.pro | 65 | CONFIG_KJUMPX inputmethods/kjumpxkjumpx.pro |
65 | CONFIG_KPACMAN noncore/games/kpacmankpacman.pro | 66 | CONFIG_KPACMAN noncore/games/kpacmankpacman.pro |
66 | CONFIG_LANGUAGE noncore/settings/languagelanguage.pro | 67 | CONFIG_LANGUAGE noncore/settings/languagelanguage.pro |
67 | CONFIG_LAUNCHER_CORE core/launcherserver.pro | 68 | CONFIG_LAUNCHER_CORE core/launcherserver.pro |
68 | CONFIG_LAUNCHER-SETTINGS core/settings/launcherlauncher.pro | 69 | CONFIG_LAUNCHER-SETTINGS core/settings/launcherlauncher.pro |
69 | CONFIG_LIBFFMPEG core/multimedia/opieplayer/libffmpeglibffmpeg.pro | 70 | CONFIG_LIBFFMPEG core/multimedia/opieplayer/libffmpeglibffmpeg.pro |
70 | CONFIG_LIBFLASH core/multimedia/opieplayer/libflashlibflash.pro | 71 | CONFIG_LIBFLASH core/multimedia/opieplayer/libflashlibflash.pro |
71 | CONFIG_LIBKATE noncore/apps/tinykate/libkate libkate.pro | 72 | CONFIG_LIBKATE noncore/apps/tinykate/libkate libkate.pro |
72 | CONFIG_LIBMAD core/multimedia/opieplayer/libmadlibmad.pro | 73 | CONFIG_LIBMAD core/multimedia/opieplayer/libmadlibmad.pro |
73 | CONFIG_LIBMAIL noncore/unsupported/mail2/libmaillibmail.pro | 74 | CONFIG_LIBMAIL noncore/unsupported/mail2/libmaillibmail.pro |
74 | CONFIG_LIBMAILWRAPPER noncore/net/mail/libmailwrapper libmailwrapper.pro | 75 | CONFIG_LIBMAILWRAPPER noncore/net/mail/libmailwrapper libmailwrapper.pro |
75 | CONFIG_LIBMPEG3 core/multimedia/opieplayer/libmpeg3libmpeg3.pro | 76 | CONFIG_LIBMPEG3 core/multimedia/opieplayer/libmpeg3libmpeg3.pro |
76 | CONFIG_LIBOPIE2CORE libopie2/opiecoreopiecore.pro | 77 | CONFIG_LIBOPIE2CORE libopie2/opiecoreopiecore.pro |
77 | CONFIG_LIBOPIE2DB libopie2/opiedbopiedb.pro | 78 | CONFIG_LIBOPIE2DB libopie2/opiedbopiedb.pro |
78 | CONFIG_LIBOPIE2EXAMPLES libopie2/examplesexamples.pro | 79 | CONFIG_LIBOPIE2EXAMPLES libopie2/examplesexamples.pro |
79 | CONFIG_LIBOPIE2MM libopie2/opiemmopiemm.pro | 80 | CONFIG_LIBOPIE2MM libopie2/opiemmopiemm.pro |
80 | CONFIG_LIBOPIE2NET libopie2/opienetopienet.pro | 81 | CONFIG_LIBOPIE2NET libopie2/opienetopienet.pro |
81 | CONFIG_LIBOPIE2PIM libopie2/opiepimopiepim.pro | 82 | CONFIG_LIBOPIE2PIM libopie2/opiepimopiepim.pro |
82 | CONFIG_LIBOPIE2UI libopie2/opieuiopieui.pro | 83 | CONFIG_LIBOPIE2UI libopie2/opieuiopieui.pro |
83 | CONFIG_LIBOPIE libopielibopie.pro | 84 | CONFIG_LIBOPIE libopielibopie.pro |
84 | CONFIG_LIBOPIE_PIM libopie/pimpim.pro | 85 | CONFIG_LIBOPIE_PIM libopie/pimpim.pro |
85 | CONFIG_LIBOPIETOOTH noncore/net/opietooth/liblib.pro | 86 | CONFIG_LIBOPIETOOTH noncore/net/opietooth/liblib.pro |
86 | CONFIG_LIBQPE librarylibrary.pro | 87 | CONFIG_LIBQPE librarylibrary.pro |
87 | CONFIG_LIBQPE-X11 x11/libqpe-x11libqpe-x11.pro | 88 | CONFIG_LIBQPE-X11 x11/libqpe-x11libqpe-x11.pro |
88 | CONFIG_LIBQTAUX libqtauxlibqtaux.pro | 89 | CONFIG_LIBQTAUX libqtauxlibqtaux.pro |
89 | CONFIG_LIBSQL libsqllibsql.pro | 90 | CONFIG_LIBSQL libsqllibsql.pro |
90 | CONFIG_LIBTREMOR core/multimedia/opieplayer/vorbis/tremor tremor.pro | 91 | CONFIG_LIBTREMOR core/multimedia/opieplayer/vorbis/tremor tremor.pro |
91 | CONFIG_LIBTREMORPLUGIN core/multimedia/opieplayer/vorbis libtremor.pro | 92 | CONFIG_LIBTREMORPLUGIN core/multimedia/opieplayer/vorbis libtremor.pro |
92 | CONFIG_LIGHT-AND-POWER core/settings/light-and-powerlight-and-power.pro | 93 | CONFIG_LIGHT-AND-POWER core/settings/light-and-powerlight-and-power.pro |
93 | CONFIG_LIQUID noncore/styles/liquidliquid.pro | 94 | CONFIG_LIQUID noncore/styles/liquidliquid.pro |
94 | CONFIG_LOGOUTAPPLET core/applets/logoutappletlogoutapplet.pro | 95 | CONFIG_LOGOUTAPPLET core/applets/logoutappletlogoutapplet.pro |
95 | CONFIG_MAIL3 noncore/net/mail mail.pro | 96 | CONFIG_MAIL3 noncore/net/mail mail.pro |
96 | CONFIG_MAILAPPLET noncore/net/mail/taskbarapplet taskbarapplet.pro | 97 | CONFIG_MAILAPPLET noncore/net/mail/taskbarapplet taskbarapplet.pro |
97 | CONFIG_MAILIT noncore/unsupported/mailit mailit.pro | 98 | CONFIG_MAILIT noncore/unsupported/mailit mailit.pro |
98 | CONFIG_MAIN_TAB_EXAMPLE examples/main-tab example.pro | 99 | CONFIG_MAIN_TAB_EXAMPLE examples/main-tab example.pro |
99 | CONFIG_MEDIUMMOUNT noncore/settings/mediummountmediummount.pro | 100 | CONFIG_MEDIUMMOUNT noncore/settings/mediummountmediummount.pro |
100 | CONFIG_MEMORYAPPLET noncore/applets/memoryappletmemoryapplet.pro | 101 | CONFIG_MEMORYAPPLET noncore/applets/memoryappletmemoryapplet.pro |
101 | CONFIG_METAL noncore/styles/metalmetal.pro | 102 | CONFIG_METAL noncore/styles/metalmetal.pro |
102 | CONFIG_MINDBREAKER noncore/games/mindbreakermindbreaker.pro | 103 | CONFIG_MINDBREAKER noncore/games/mindbreakermindbreaker.pro |
103 | CONFIG_MINESWEEP noncore/games/minesweepminesweep.pro | 104 | CONFIG_MINESWEEP noncore/games/minesweepminesweep.pro |
104 | CONFIG_MOBILEMSG noncore/comm/mobilemsgmobilemsg.pro | 105 | CONFIG_MOBILEMSG noncore/comm/mobilemsgmobilemsg.pro |
105 | CONFIG_MODPLUG core/multimedia/opieplayer/modplugmodplug.pro | 106 | CONFIG_MODPLUG core/multimedia/opieplayer/modplugmodplug.pro |
106 | CONFIG_MULTIKEYAPPLET core/applets/multikeyappletmultikeyapplet.pro | 107 | CONFIG_MULTIKEYAPPLET core/applets/multikeyappletmultikeyapplet.pro |
107 | CONFIG_MULTIKEY inputmethods/multikeymultikey.pro | 108 | CONFIG_MULTIKEY inputmethods/multikeymultikey.pro |
108 | CONFIG_NETSYSTEMTIME noncore/settings/netsystemtimenetsystemtime.pro | 109 | CONFIG_NETSYSTEMTIME noncore/settings/netsystemtimenetsystemtime.pro |
109 | CONFIG_NETWORKAPPLET noncore/applets/networkappletnetworkapplet.pro | 110 | CONFIG_NETWORKAPPLET noncore/applets/networkappletnetworkapplet.pro |
110 | CONFIG_NETWORKSETUP noncore/settings/networksettingsnetworksettings.pro | 111 | CONFIG_NETWORKSETUP noncore/settings/networksettingsnetworksettings.pro |
111 | CONFIG_NOTESAPPLET noncore/applets/notesappletnotesapplet.pro | 112 | CONFIG_NOTESAPPLET noncore/applets/notesappletnotesapplet.pro |
112 | CONFIG_OAPP core/apps/oappoapp.pro | 113 | CONFIG_OAPP core/apps/oappoapp.pro |
113 | CONFIG_OBEX core/applets/obex2obex.pro | 114 | CONFIG_OBEX core/applets/obex2obex.pro |
114 | CONFIG_ODICT noncore/apps/odictodict.pro | 115 | CONFIG_ODICT noncore/apps/odictodict.pro |
115 | CONFIG_OIPKG noncore/unsupported/oipkgoipkg.pro | 116 | CONFIG_OIPKG noncore/unsupported/oipkgoipkg.pro |
116 | CONFIG_OPIEALARMcore/opiealarm | 117 | CONFIG_OPIEALARMcore/opiealarm |
117 | CONFIG_OPIE-CONSOLE noncore/apps/opie-consoleopie-console.pro | 118 | CONFIG_OPIE-CONSOLE noncore/apps/opie-consoleopie-console.pro |
118 | CONFIG_OPIEFTP noncore/net/opieftpopieftp.pro | 119 | CONFIG_OPIEFTP noncore/net/opieftpopieftp.pro |
119 | CONFIG_OPIEIRC noncore/net/opieircopieirc.pro | 120 | CONFIG_OPIEIRC noncore/net/opieircopieirc.pro |
120 | CONFIG_OPIE-LOGIN core/opie-loginopie-login.pro | 121 | CONFIG_OPIE-LOGIN core/opie-loginopie-login.pro |
121 | CONFIG_OPIEMAIL2noncore/unsupported/mail2 mail.pro | 122 | CONFIG_OPIEMAIL2noncore/unsupported/mail2 mail.pro |
122 | CONFIG_OPIEPLAYER2 noncore/multimedia/opieplayer2opieplayer2.pro | 123 | CONFIG_OPIEPLAYER2 noncore/multimedia/opieplayer2opieplayer2.pro |
123 | CONFIG_OPIEPLAYER core/multimedia/opieplayeropieplayer.pro | 124 | CONFIG_OPIEPLAYER core/multimedia/opieplayeropieplayer.pro |
124 | CONFIG_OPIE-RDESKTOP noncore/net/opierdesktopopierdesktop.pro | 125 | CONFIG_OPIE-RDESKTOP noncore/net/opierdesktopopierdesktop.pro |
125 | CONFIG_OPIE-READER noncore/apps/opie-readeropie-reader.pro | 126 | CONFIG_OPIE-READER noncore/apps/opie-readeropie-reader.pro |
126 | CONFIG_OPIEREC noncore/multimedia/opierecopierec.pro | 127 | CONFIG_OPIEREC noncore/multimedia/opierecopierec.pro |
127 | CONFIG_OPIE-SHEET noncore/apps/opie-sheetopie-sheet.pro | 128 | CONFIG_OPIE-SHEET noncore/apps/opie-sheetopie-sheet.pro |
128 | CONFIG_OPIE-SH noncore/tools/opie-shopie-sh.pro | 129 | CONFIG_OPIE-SH noncore/tools/opie-shopie-sh.pro |
129 | CONFIG_OPIETOOTH-APPLET noncore/net/opietooth/appletapplet.pro | 130 | CONFIG_OPIETOOTH-APPLET noncore/net/opietooth/appletapplet.pro |
130 | CONFIG_OPIETOOTH-MANAGER noncore/net/opietooth/managermanager.pro | 131 | CONFIG_OPIETOOTH-MANAGER noncore/net/opietooth/managermanager.pro |
131 | CONFIG_OPIE-WRITE noncore/apps/opie-writeopie-write.pro | 132 | CONFIG_OPIE-WRITE noncore/apps/opie-writeopie-write.pro |
132 | CONFIG_OSEARCH core/pim/osearchosearch.pro | 133 | CONFIG_OSEARCH core/pim/osearchosearch.pro |
133 | CONFIG_OXYGEN noncore/apps/oxygenoxygen.pro | 134 | CONFIG_OXYGEN noncore/apps/oxygenoxygen.pro |
134 | CONFIG_PACKAGEMANAGER noncore/settings/packagemanagerpackagemanager.pro | 135 | CONFIG_PACKAGEMANAGER noncore/settings/packagemanagerpackagemanager.pro |
135 | CONFIG_PARASHOOT noncore/games/parashootparashoot.pro | 136 | CONFIG_PARASHOOT noncore/games/parashootparashoot.pro |
136 | CONFIG_PICKBOARD inputmethods/pickboardpickboard.pro | 137 | CONFIG_PICKBOARD inputmethods/pickboardpickboard.pro |
137 | CONFIG_POWERCHORD noncore/multimedia/powerchordpowerchord.pro | 138 | CONFIG_POWERCHORD noncore/multimedia/powerchordpowerchord.pro |
138 | CONFIG_PPP noncore/settings/networksettings/ppp ppp.pro | 139 | CONFIG_PPP noncore/settings/networksettings/ppp ppp.pro |
139 | CONFIG_QASHMONEY noncore/apps/qashmoneyqashmoney.pro | 140 | CONFIG_QASHMONEY noncore/apps/qashmoneyqashmoney.pro |
140 | CONFIG_QASTEROIDS noncore/games/qasteroidsqasteroids.pro | 141 | CONFIG_QASTEROIDS noncore/games/qasteroidsqasteroids.pro |
141 | CONFIG_QCOP core/apps/qcopqcop.pro | 142 | CONFIG_QCOP core/apps/qcopqcop.pro |
142 | CONFIG_QPDF noncore/unsupported/qpdfqpdf.pro | 143 | CONFIG_QPDF noncore/unsupported/qpdfqpdf.pro |
143 | CONFIG_QUICKLAUNCHER core/tools/quicklauncher quicklauncher.pro | 144 | CONFIG_QUICKLAUNCHER core/tools/quicklauncher quicklauncher.pro |
144 | CONFIG_QWS core/qwsqws.pro | 145 | CONFIG_QWS core/qwsqws.pro |
145 | CONFIG_REMOTE noncore/tools/remoteremote.pro | 146 | CONFIG_REMOTE noncore/tools/remoteremote.pro |
146 | CONFIG_RESTARTAPPLET2 core/applets/restartapplet2restartapplet2.pro | 147 | CONFIG_RESTARTAPPLET2 core/applets/restartapplet2restartapplet2.pro |
147 | CONFIG_RESTARTAPPLET core/applets/restartappletrestartapplet.pro | 148 | CONFIG_RESTARTAPPLET core/applets/restartappletrestartapplet.pro |
148 | CONFIG_ROTATEAPPLET core/applets/rotateappletrotateapplet.pro | 149 | CONFIG_ROTATEAPPLET core/applets/rotateappletrotateapplet.pro |
149 | CONFIG_ROTATION noncore/settings/rotationrotation.pro | 150 | CONFIG_ROTATION noncore/settings/rotationrotation.pro |
150 | CONFIG_RUNAPPLET core/applets/runappletrunapplet.pro | 151 | CONFIG_RUNAPPLET core/applets/runappletrunapplet.pro |
151 | CONFIG_SCREENSHOTAPPLET core/applets/screenshotappletscreenshotapplet.pro | 152 | CONFIG_SCREENSHOTAPPLET core/applets/screenshotappletscreenshotapplet.pro |
152 | CONFIG_SECURITY core/settings/securitysecurity.pro | 153 | CONFIG_SECURITY core/settings/securitysecurity.pro |
153 | CONFIG_SFCAVE noncore/games/sfcavesfcave.pro | 154 | CONFIG_SFCAVE noncore/games/sfcavesfcave.pro |
154 | CONFIG_SFCAVE-SDL noncore/games/sfcave-sdlsfcave-sdl.pro | 155 | CONFIG_SFCAVE-SDL noncore/games/sfcave-sdlsfcave-sdl.pro |
155 | CONFIG_SHOWIMG noncore/multimedia/showimgshowimg.pro | 156 | CONFIG_SHOWIMG noncore/multimedia/showimgshowimg.pro |
156 | CONFIG_SIMPLE_EXAMPLE examples/simple example.pro | 157 | CONFIG_SIMPLE_EXAMPLE examples/simple example.pro |
157 | CONFIG_SIMPLE_ICON examples/simple-icon example.pro | 158 | CONFIG_SIMPLE_ICON examples/simple-icon example.pro |
158 | CONFIG_SIMPLE_MAIN examples/simple-main example.pro | 159 | CONFIG_SIMPLE_MAIN examples/simple-main example.pro |
159 | CONFIG_SIMPLE noncore/tools/calc2/simplesimple.pro | 160 | CONFIG_SIMPLE noncore/tools/calc2/simplesimple.pro |
160 | CONFIG_SIMPLE_PIM examples/simple-pim example.pro | 161 | CONFIG_SIMPLE_PIM examples/simple-pim example.pro |
161 | CONFIG_SINGLE singlesingle.pro | 162 | CONFIG_SINGLE singlesingle.pro |
162 | CONFIG_SNAKE noncore/games/snakesnake.pro | 163 | CONFIG_SNAKE noncore/games/snakesnake.pro |
163 | CONFIG_SOLITAIRE noncore/games/solitairesolitaire.pro | 164 | CONFIG_SOLITAIRE noncore/games/solitairesolitaire.pro |
164 | CONFIG_SOUND noncore/settings/soundsound.pro | 165 | CONFIG_SOUND noncore/settings/soundsound.pro |
165 | CONFIG_SSHKEYS noncore/settings/sshkeyssshkeys.pro | 166 | CONFIG_SSHKEYS noncore/settings/sshkeyssshkeys.pro |
166 | CONFIG_SUSPENDAPPLET core/applets/suspendappletsuspendapplet.pro | 167 | CONFIG_SUSPENDAPPLET core/applets/suspendappletsuspendapplet.pro |
167 | CONFIG_SYSINFO noncore/settings/sysinfosysinfo.pro | 168 | CONFIG_SYSINFO noncore/settings/sysinfosysinfo.pro |
168 | CONFIG_TABLEVIEWER noncore/apps/tableviewertableviewer.pro | 169 | CONFIG_TABLEVIEWER noncore/apps/tableviewertableviewer.pro |
169 | CONFIG_TABMANAGER noncore/settings/tabmanagertabmanager.pro | 170 | CONFIG_TABMANAGER noncore/settings/tabmanagertabmanager.pro |
170 | CONFIG_TABOAPP core/apps/taboapptaboapp.pro | 171 | CONFIG_TABOAPP core/apps/taboapptaboapp.pro |
171 | CONFIG_TEST libsql/testtest.pro | 172 | CONFIG_TEST libsql/testtest.pro |
172 | CONFIG_TEST noncore/apps/opie-console/testtest.pro | 173 | CONFIG_TEST noncore/apps/opie-console/testtest.pro |
173 | CONFIG_TETRIX noncore/games/tetrixtetrix.pro | 174 | CONFIG_TETRIX noncore/games/tetrixtetrix.pro |
174 | CONFIG_TEXTEDIT core/apps/textedittextedit.pro | 175 | CONFIG_TEXTEDIT core/apps/textedittextedit.pro |
175 | CONFIG_THEME noncore/styles/themetheme.pro | 176 | CONFIG_THEME noncore/styles/themetheme.pro |
176 | CONFIG_TICTAC noncore/games/tictactictac.pro | 177 | CONFIG_TICTAC noncore/games/tictactictac.pro |
177 | CONFIG_TINYKATE noncore/apps/tinykatetinykate.pro | 178 | CONFIG_TINYKATE noncore/apps/tinykatetinykate.pro |
178 | CONFIG_TODAY_ADDRESSBOOK core/pim/today/plugins/addressbook addressbook.pro | 179 | CONFIG_TODAY_ADDRESSBOOK core/pim/today/plugins/addressbook addressbook.pro |
179 | CONFIG_TODAY core/pim/todaytoday.pro | 180 | CONFIG_TODAY core/pim/todaytoday.pro |
180 | CONFIG_TODAY_DATEBOOK core/pim/today/plugins/datebookdatebook.pro | 181 | CONFIG_TODAY_DATEBOOK core/pim/today/plugins/datebookdatebook.pro |
181 | CONFIG_TODAY_EXAMPLE examples/todayplugin example.pro | 182 | CONFIG_TODAY_EXAMPLE examples/todayplugin example.pro |
182 | CONFIG_TODAY_FORTUNE noncore/todayplugins/fortunefortune.pro | 183 | CONFIG_TODAY_FORTUNE noncore/todayplugins/fortunefortune.pro |
183 | CONFIG_TODAY_MAIL core/pim/today/plugins/mailmail.pro | 184 | CONFIG_TODAY_MAIL core/pim/today/plugins/mailmail.pro |
184 | CONFIG_TODAY_STOCKTICKERLIB noncore/todayplugins/stockticker/stocktickerlibstocktickerlib.pro | 185 | CONFIG_TODAY_STOCKTICKERLIB noncore/todayplugins/stockticker/stocktickerlibstocktickerlib.pro |
185 | CONFIG_TODAY_STOCKTICKER noncore/todayplugins/stockticker/stocktickerstockticker.pro | 186 | CONFIG_TODAY_STOCKTICKER noncore/todayplugins/stockticker/stocktickerstockticker.pro |
186 | CONFIG_TODAY_TODOLIST core/pim/today/plugins/todolisttodolist.pro | 187 | CONFIG_TODAY_TODOLIST core/pim/today/plugins/todolisttodolist.pro |
187 | CONFIG_TODAY_WEATHERnoncore/todayplugins/weather weather.pro | 188 | CONFIG_TODAY_WEATHERnoncore/todayplugins/weather weather.pro |
188 | CONFIG_TODO core/pim/todotodo.pro | 189 | CONFIG_TODO core/pim/todotodo.pro |
189 | CONFIG_TONLEITER noncore/multimedia/tonleitertonleiter.pro | 190 | CONFIG_TONLEITER noncore/multimedia/tonleitertonleiter.pro |
190 | CONFIG_TRACKER noncore/multimedia/trackertracker.pro | 191 | CONFIG_TRACKER noncore/multimedia/trackertracker.pro |
191 | CONFIG_UBROWSER noncore/net/ubrowserubrowser.pro | 192 | CONFIG_UBROWSER noncore/net/ubrowserubrowser.pro |
192 | CONFIG_UNIKEYBOARD inputmethods/unikeyboardunikeyboard.pro | 193 | CONFIG_UNIKEYBOARD inputmethods/unikeyboardunikeyboard.pro |
193 | CONFIG_USERMANAGER noncore/settings/usermanagerusermanager.pro | 194 | CONFIG_USERMANAGER noncore/settings/usermanagerusermanager.pro |
194 | CONFIG_VMEMO core/applets/vmemovmemo.pro | 195 | CONFIG_VMEMO core/applets/vmemovmemo.pro |
195 | CONFIG_VOLUMEAPPLET core/applets/volumeappletvolumeapplet.pro | 196 | CONFIG_VOLUMEAPPLET core/applets/volumeappletvolumeapplet.pro |
196 | CONFIG_VTAPPLET core/applets/vtappletvtapplet.pro | 197 | CONFIG_VTAPPLET core/applets/vtappletvtapplet.pro |
197 | CONFIG_WAVPLUGIN core/multimedia/opieplayer/wavpluginwavplugin.pro | 198 | CONFIG_WAVPLUGIN core/multimedia/opieplayer/wavpluginwavplugin.pro |
198 | CONFIG_WELLENREITER noncore/net/wellenreiterwellenreiter.pro | 199 | CONFIG_WELLENREITER noncore/net/wellenreiterwellenreiter.pro |
199 | CONFIG_WIRELESSAPPLET noncore/applets/wirelessappletwirelessapplet.pro | 200 | CONFIG_WIRELESSAPPLET noncore/applets/wirelessappletwirelessapplet.pro |
200 | CONFIG_WLAN noncore/settings/networksettings/wlanwlan.pro | 201 | CONFIG_WLAN noncore/settings/networksettings/wlanwlan.pro |
201 | CONFIG_WORDGAME noncore/games/wordgamewordgame.pro | 202 | CONFIG_WORDGAME noncore/games/wordgamewordgame.pro |
202 | CONFIG_YATZEE noncore/games/oyatzeeoyatzee.pro | 203 | CONFIG_YATZEE noncore/games/oyatzeeoyatzee.pro |
204 | CONFIG_ZKBAPPLET noncore/applets/zkbapplet zkbapplet.pro | ||
203 | CONFIG_ZLINES noncore/games/zlines zlines.pro | 205 | CONFIG_ZLINES noncore/games/zlines zlines.pro |
204 | CONFIG_ZSAFEnoncore/apps/zsafe zsafe.pro | 206 | CONFIG_ZSAFEnoncore/apps/zsafe zsafe.pro |
205 | CONFIG_ZSAME noncore/games/zsame zsame.pro | 207 | CONFIG_ZSAME noncore/games/zsame zsame.pro |
diff --git a/pics/keyz-cfg.png b/pics/keyz-cfg.png new file mode 100644 index 0000000..2855f5f --- a/dev/null +++ b/pics/keyz-cfg.png | |||
Binary files differ | |||
diff --git a/pics/zkb-disabled.png b/pics/zkb-disabled.png new file mode 100644 index 0000000..f64a4cd --- a/dev/null +++ b/pics/zkb-disabled.png | |||
Binary files differ | |||
diff --git a/share/zkb/bg.xml b/share/zkb/bg.xml new file mode 100644 index 0000000..b2c0b06 --- a/dev/null +++ b/share/zkb/bg.xml | |||
@@ -0,0 +1,494 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <include file="common.xml"/> | ||
4 | |||
5 | <state name="LShift-RShift" parent="common"/> | ||
6 | <state name="LShift-RShift-Caps" parent="common"/> | ||
7 | |||
8 | <state name="LShift"> | ||
9 | <map keycode="Right Shift" pressed="true"> | ||
10 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
11 | <next-state name="LShift-RShift"/> | ||
12 | </map> | ||
13 | </state> | ||
14 | |||
15 | <state name="RShift"> | ||
16 | <map keycode="L" pressed="true"> | ||
17 | <event keycode="L" unicode="1096" pressed="true" autorepeat="true"/> | ||
18 | </map> | ||
19 | |||
20 | <map keycode="Comma" pressed="true"> | ||
21 | <event keycode="Comma" unicode="1097" pressed="true" autorepeat="true"/> | ||
22 | </map> | ||
23 | <map keycode="L" pressed="false"> | ||
24 | <event keycode="L" unicode="1096" pressed="false"/> | ||
25 | </map> | ||
26 | |||
27 | <map keycode="Comma" pressed="false"> | ||
28 | <event keycode="Comma" unicode="1097" pressed="false"/> | ||
29 | </map> | ||
30 | <map keycode="Left Shift" pressed="false"> | ||
31 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
32 | <next-state name="LShift-RShift"/> | ||
33 | </map> | ||
34 | </state> | ||
35 | |||
36 | <state name="LShift-Caps"> | ||
37 | <map keycode="Right Shift" pressed="true"> | ||
38 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
39 | <next-state name="LShift-RShift-Caps"/> | ||
40 | </map> | ||
41 | </state> | ||
42 | |||
43 | <state name="LShift-Num"> | ||
44 | <map keycode="Left Shift" pressed="false"> | ||
45 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
46 | <next-state name="Num"/> | ||
47 | </map> | ||
48 | |||
49 | <map keycode="Fn" pressed="true"> | ||
50 | <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/> | ||
51 | <next-state name="LShift-Fn-Num"/> | ||
52 | </map> | ||
53 | </state> | ||
54 | |||
55 | <state name="RShift-Caps"> | ||
56 | <map keycode="L" pressed="true"> | ||
57 | <event keycode="L" unicode="1064" pressed="true" autorepeat="true"/> | ||
58 | </map> | ||
59 | |||
60 | <map keycode="Comma" pressed="true"> | ||
61 | <event keycode="Comma" unicode="1065" pressed="true" autorepeat="true"/> | ||
62 | </map> | ||
63 | <map keycode="L" pressed="false"> | ||
64 | <event keycode="L" unicode="1064" pressed="false"/> | ||
65 | </map> | ||
66 | |||
67 | <map keycode="Comma" pressed="false"> | ||
68 | <event keycode="Comma" unicode="1065" pressed="false"/> | ||
69 | </map> | ||
70 | <map keycode="Left Shift" pressed="true"> | ||
71 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
72 | <next-state name="LShift-RShift-Caps"/> | ||
73 | </map> | ||
74 | </state> | ||
75 | |||
76 | <state name="LShift-RShift"> | ||
77 | <map keycode="L" pressed="true"> | ||
78 | <event keycode="L" unicode="1064" pressed="true" autorepeat="true"/> | ||
79 | </map> | ||
80 | |||
81 | <map keycode="Comma" pressed="true"> | ||
82 | <event keycode="Comma" unicode="1065" pressed="true" autorepeat="true"/> | ||
83 | </map> | ||
84 | <map keycode="L" pressed="false"> | ||
85 | <event keycode="L" unicode="1064" pressed="false"/> | ||
86 | </map> | ||
87 | |||
88 | <map keycode="Comma" pressed="false"> | ||
89 | <event keycode="Comma" unicode="1065" pressed="false"/> | ||
90 | </map> | ||
91 | <map keycode="Left Shift" pressed="false"> | ||
92 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
93 | <next-state name="RShift"/> | ||
94 | </map> | ||
95 | |||
96 | <map keycode="Right Shift" pressed="false"> | ||
97 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
98 | <next-state name="LShift"/> | ||
99 | </map> | ||
100 | </state> | ||
101 | |||
102 | <state name="LShift-RShift-Caps"> | ||
103 | <map keycode="L" pressed="true"> | ||
104 | <event keycode="L" unicode="1096" pressed="true" autorepeat="true"/> | ||
105 | </map> | ||
106 | |||
107 | <map keycode="Comma" pressed="true"> | ||
108 | <event keycode="Comma" unicode="1097" pressed="true" autorepeat="true"/> | ||
109 | </map> | ||
110 | <map keycode="L" pressed="false"> | ||
111 | <event keycode="L" unicode="1096" pressed="false"/> | ||
112 | </map> | ||
113 | |||
114 | <map keycode="Comma" pressed="false"> | ||
115 | <event keycode="Comma" unicode="1097" pressed="false"/> | ||
116 | </map> | ||
117 | <map keycode="Left Shift" pressed="false"> | ||
118 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
119 | <next-state name="RShift-Caps"/> | ||
120 | </map> | ||
121 | |||
122 | <map keycode="Right Shift" pressed="false"> | ||
123 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
124 | <next-state name="LShift-Caps"/> | ||
125 | </map> | ||
126 | </state> | ||
127 | |||
128 | <state name="upper-case"> | ||
129 | <map keycode="Apostrophe" pressed="true"> | ||
130 | <event keycode="QuoteDbl" unicode="1068" pressed="true" autorepeat="true"/> | ||
131 | </map> | ||
132 | <map keycode="Comma" pressed="true"> | ||
133 | <event keycode="Semicolon" unicode="59" pressed="true" autorepeat="true"/> | ||
134 | </map> | ||
135 | <map keycode="Period" pressed="true"> | ||
136 | <event keycode="Colon" unicode="58" pressed="true" autorepeat="true"/> | ||
137 | </map> | ||
138 | <map keycode="Slash" pressed="true"> | ||
139 | <event keycode="Question" unicode="1070" pressed="true" autorepeat="true"/> | ||
140 | </map> | ||
141 | <map keycode="A" pressed="true"> | ||
142 | <event keycode="A" unicode="1040" pressed="true" autorepeat="true"/> | ||
143 | </map> | ||
144 | <map keycode="B" pressed="true"> | ||
145 | <event keycode="B" unicode="1041" pressed="true" autorepeat="true"/> | ||
146 | </map> | ||
147 | <map keycode="C" pressed="true"> | ||
148 | <event keycode="C" unicode="1062" pressed="true" autorepeat="true"/> | ||
149 | </map> | ||
150 | <map keycode="D" pressed="true"> | ||
151 | <event keycode="D" unicode="1044" pressed="true" autorepeat="true"/> | ||
152 | </map> | ||
153 | <map keycode="E" pressed="true"> | ||
154 | <event keycode="E" unicode="1045" pressed="true" autorepeat="true"/> | ||
155 | </map> | ||
156 | <map keycode="F" pressed="true"> | ||
157 | <event keycode="F" unicode="1060" pressed="true" autorepeat="true"/> | ||
158 | </map> | ||
159 | <map keycode="G" pressed="true"> | ||
160 | <event keycode="G" unicode="1043" pressed="true" autorepeat="true"/> | ||
161 | </map> | ||
162 | <map keycode="H" pressed="true"> | ||
163 | <event keycode="H" unicode="1061" pressed="true" autorepeat="true"/> | ||
164 | </map> | ||
165 | <map keycode="I" pressed="true"> | ||
166 | <event keycode="I" unicode="1048" pressed="true" autorepeat="true"/> | ||
167 | </map> | ||
168 | <map keycode="J" pressed="true"> | ||
169 | <event keycode="J" unicode="1049" pressed="true" autorepeat="true"/> | ||
170 | </map> | ||
171 | <map keycode="K" pressed="true"> | ||
172 | <event keycode="K" unicode="1050" pressed="true" autorepeat="true"/> | ||
173 | </map> | ||
174 | <map keycode="L" pressed="true"> | ||
175 | <event keycode="L" unicode="1051" pressed="true" autorepeat="true"/> | ||
176 | </map> | ||
177 | <map keycode="M" pressed="true"> | ||
178 | <event keycode="M" unicode="1052" pressed="true" autorepeat="true"/> | ||
179 | </map> | ||
180 | <map keycode="N" pressed="true"> | ||
181 | <event keycode="N" unicode="1053" pressed="true" autorepeat="true"/> | ||
182 | </map> | ||
183 | <map keycode="O" pressed="true"> | ||
184 | <event keycode="O" unicode="1054" pressed="true" autorepeat="true"/> | ||
185 | </map> | ||
186 | <map keycode="P" pressed="true"> | ||
187 | <event keycode="P" unicode="1055" pressed="true" autorepeat="true"/> | ||
188 | </map> | ||
189 | <map keycode="Q" pressed="true"> | ||
190 | <event keycode="Q" unicode="1071" pressed="true" autorepeat="true"/> | ||
191 | </map> | ||
192 | <map keycode="R" pressed="true"> | ||
193 | <event keycode="R" unicode="1056" pressed="true" autorepeat="true"/> | ||
194 | </map> | ||
195 | <map keycode="S" pressed="true"> | ||
196 | <event keycode="S" unicode="1057" pressed="true" autorepeat="true"/> | ||
197 | </map> | ||
198 | <map keycode="T" pressed="true"> | ||
199 | <event keycode="T" unicode="1058" pressed="true" autorepeat="true"/> | ||
200 | </map> | ||
201 | <map keycode="U" pressed="true"> | ||
202 | <event keycode="U" unicode="1059" pressed="true" autorepeat="true"/> | ||
203 | </map> | ||
204 | <map keycode="V" pressed="true"> | ||
205 | <event keycode="V" unicode="1046" pressed="true" autorepeat="true"/> | ||
206 | </map> | ||
207 | <map keycode="W" pressed="true"> | ||
208 | <event keycode="W" unicode="1042" pressed="true" autorepeat="true"/> | ||
209 | </map> | ||
210 | <map keycode="X" pressed="true"> | ||
211 | <event keycode="X" unicode="1063" pressed="true" autorepeat="true"/> | ||
212 | </map> | ||
213 | <map keycode="Y" pressed="true"> | ||
214 | <event keycode="Y" unicode="1066" pressed="true" autorepeat="true"/> | ||
215 | </map> | ||
216 | <map keycode="Z" pressed="true"> | ||
217 | <event keycode="Z" unicode="1047" pressed="true" autorepeat="true"/> | ||
218 | </map> | ||
219 | <map keycode="Apostrophe" pressed="false"> | ||
220 | <event keycode="QuoteDbl" unicode="1068" pressed="false"/> | ||
221 | </map> | ||
222 | <map keycode="Comma" pressed="false"> | ||
223 | <event keycode="Semicolon" unicode="59" pressed="false"/> | ||
224 | </map> | ||
225 | <map keycode="Period" pressed="false"> | ||
226 | <event keycode="Colon" unicode="58" pressed="false"/> | ||
227 | </map> | ||
228 | <map keycode="Slash" pressed="false"> | ||
229 | <event keycode="Question" unicode="1070" pressed="false"/> | ||
230 | </map> | ||
231 | <map keycode="A" pressed="false"> | ||
232 | <event keycode="A" unicode="1040" pressed="false"/> | ||
233 | </map> | ||
234 | <map keycode="B" pressed="false"> | ||
235 | <event keycode="B" unicode="1041" pressed="false"/> | ||
236 | </map> | ||
237 | <map keycode="C" pressed="false"> | ||
238 | <event keycode="C" unicode="1062" pressed="false"/> | ||
239 | </map> | ||
240 | <map keycode="D" pressed="false"> | ||
241 | <event keycode="D" unicode="1044" pressed="false"/> | ||
242 | </map> | ||
243 | <map keycode="E" pressed="false"> | ||
244 | <event keycode="E" unicode="1045" pressed="false"/> | ||
245 | </map> | ||
246 | <map keycode="F" pressed="false"> | ||
247 | <event keycode="F" unicode="1060" pressed="false"/> | ||
248 | </map> | ||
249 | <map keycode="G" pressed="false"> | ||
250 | <event keycode="G" unicode="1043" pressed="false"/> | ||
251 | </map> | ||
252 | <map keycode="H" pressed="false"> | ||
253 | <event keycode="H" unicode="1061" pressed="false"/> | ||
254 | </map> | ||
255 | <map keycode="I" pressed="false"> | ||
256 | <event keycode="I" unicode="1048" pressed="false"/> | ||
257 | </map> | ||
258 | <map keycode="J" pressed="false"> | ||
259 | <event keycode="J" unicode="1049" pressed="false"/> | ||
260 | </map> | ||
261 | <map keycode="K" pressed="false"> | ||
262 | <event keycode="K" unicode="1050" pressed="false"/> | ||
263 | </map> | ||
264 | <map keycode="L" pressed="false"> | ||
265 | <event keycode="L" unicode="1051" pressed="false"/> | ||
266 | </map> | ||
267 | <map keycode="M" pressed="false"> | ||
268 | <event keycode="M" unicode="1052" pressed="false"/> | ||
269 | </map> | ||
270 | <map keycode="N" pressed="false"> | ||
271 | <event keycode="N" unicode="1053" pressed="false"/> | ||
272 | </map> | ||
273 | <map keycode="O" pressed="false"> | ||
274 | <event keycode="O" unicode="1054" pressed="false"/> | ||
275 | </map> | ||
276 | <map keycode="P" pressed="false"> | ||
277 | <event keycode="P" unicode="1055" pressed="false"/> | ||
278 | </map> | ||
279 | <map keycode="Q" pressed="false"> | ||
280 | <event keycode="Q" unicode="1071" pressed="false"/> | ||
281 | </map> | ||
282 | <map keycode="R" pressed="false"> | ||
283 | <event keycode="R" unicode="1056" pressed="false"/> | ||
284 | </map> | ||
285 | <map keycode="S" pressed="false"> | ||
286 | <event keycode="S" unicode="1057" pressed="false"/> | ||
287 | </map> | ||
288 | <map keycode="T" pressed="false"> | ||
289 | <event keycode="T" unicode="1058" pressed="false"/> | ||
290 | </map> | ||
291 | <map keycode="U" pressed="false"> | ||
292 | <event keycode="U" unicode="1059" pressed="false"/> | ||
293 | </map> | ||
294 | <map keycode="V" pressed="false"> | ||
295 | <event keycode="V" unicode="1046" pressed="false"/> | ||
296 | </map> | ||
297 | <map keycode="W" pressed="false"> | ||
298 | <event keycode="W" unicode="1042" pressed="false"/> | ||
299 | </map> | ||
300 | <map keycode="X" pressed="false"> | ||
301 | <event keycode="X" unicode="1063" pressed="false"/> | ||
302 | </map> | ||
303 | <map keycode="Y" pressed="false"> | ||
304 | <event keycode="Y" unicode="1066" pressed="false"/> | ||
305 | </map> | ||
306 | <map keycode="Z" pressed="false"> | ||
307 | <event keycode="Z" unicode="1047" pressed="false"/> | ||
308 | </map> | ||
309 | </state> | ||
310 | |||
311 | <state name="lower-case"> | ||
312 | <map keycode="Apostrophe" pressed="true"> | ||
313 | <event keycode="Apostrophe" unicode="1100" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
314 | </map> | ||
315 | <map keycode="Comma" pressed="true"> | ||
316 | <event keycode="Comma" unicode="44" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
317 | </map> | ||
318 | <map keycode="Period" pressed="true"> | ||
319 | <event keycode="Period" unicode="46" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
320 | </map> | ||
321 | <map keycode="Slash" pressed="true"> | ||
322 | <event keycode="Slash" unicode="1102" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
323 | </map> | ||
324 | <map keycode="A" pressed="true"> | ||
325 | <event keycode="A" unicode="1072" pressed="true" autorepeat="true"/> | ||
326 | </map> | ||
327 | <map keycode="B" pressed="true"> | ||
328 | <event keycode="B" unicode="1073" pressed="true" autorepeat="true"/> | ||
329 | </map> | ||
330 | <map keycode="C" pressed="true"> | ||
331 | <event keycode="C" unicode="1094" pressed="true" autorepeat="true"/> | ||
332 | </map> | ||
333 | <map keycode="D" pressed="true"> | ||
334 | <event keycode="D" unicode="1076" pressed="true" autorepeat="true"/> | ||
335 | </map> | ||
336 | <map keycode="E" pressed="true"> | ||
337 | <event keycode="E" unicode="1077" pressed="true" autorepeat="true"/> | ||
338 | </map> | ||
339 | <map keycode="F" pressed="true"> | ||
340 | <event keycode="F" unicode="1092" pressed="true" autorepeat="true"/> | ||
341 | </map> | ||
342 | <map keycode="G" pressed="true"> | ||
343 | <event keycode="G" unicode="1075" pressed="true" autorepeat="true"/> | ||
344 | </map> | ||
345 | <map keycode="H" pressed="true"> | ||
346 | <event keycode="H" unicode="1093" pressed="true" autorepeat="true"/> | ||
347 | </map> | ||
348 | <map keycode="I" pressed="true"> | ||
349 | <event keycode="I" unicode="1080" pressed="true" autorepeat="true"/> | ||
350 | </map> | ||
351 | <map keycode="J" pressed="true"> | ||
352 | <event keycode="J" unicode="1081" pressed="true" autorepeat="true"/> | ||
353 | </map> | ||
354 | <map keycode="K" pressed="true"> | ||
355 | <event keycode="K" unicode="1082" pressed="true" autorepeat="true"/> | ||
356 | </map> | ||
357 | <map keycode="L" pressed="true"> | ||
358 | <event keycode="L" unicode="1083" pressed="true" autorepeat="true"/> | ||
359 | </map> | ||
360 | <map keycode="M" pressed="true"> | ||
361 | <event keycode="M" unicode="1084" pressed="true" autorepeat="true"/> | ||
362 | </map> | ||
363 | <map keycode="N" pressed="true"> | ||
364 | <event keycode="N" unicode="1085" pressed="true" autorepeat="true"/> | ||
365 | </map> | ||
366 | <map keycode="O" pressed="true"> | ||
367 | <event keycode="O" unicode="1086" pressed="true" autorepeat="true"/> | ||
368 | </map> | ||
369 | <map keycode="P" pressed="true"> | ||
370 | <event keycode="P" unicode="1087" pressed="true" autorepeat="true"/> | ||
371 | </map> | ||
372 | <map keycode="Q" pressed="true"> | ||
373 | <event keycode="Q" unicode="1103" pressed="true" autorepeat="true"/> | ||
374 | </map> | ||
375 | <map keycode="R" pressed="true"> | ||
376 | <event keycode="R" unicode="1088" pressed="true" autorepeat="true"/> | ||
377 | </map> | ||
378 | <map keycode="S" pressed="true"> | ||
379 | <event keycode="S" unicode="1089" pressed="true" autorepeat="true"/> | ||
380 | </map> | ||
381 | <map keycode="T" pressed="true"> | ||
382 | <event keycode="T" unicode="1090" pressed="true" autorepeat="true"/> | ||
383 | </map> | ||
384 | <map keycode="U" pressed="true"> | ||
385 | <event keycode="U" unicode="1091" pressed="true" autorepeat="true"/> | ||
386 | </map> | ||
387 | <map keycode="V" pressed="true"> | ||
388 | <event keycode="V" unicode="1078" pressed="true" autorepeat="true"/> | ||
389 | </map> | ||
390 | <map keycode="W" pressed="true"> | ||
391 | <event keycode="W" unicode="1074" pressed="true" autorepeat="true"/> | ||
392 | </map> | ||
393 | <map keycode="X" pressed="true"> | ||
394 | <event keycode="X" unicode="1095" pressed="true" autorepeat="true"/> | ||
395 | </map> | ||
396 | <map keycode="Y" pressed="true"> | ||
397 | <event keycode="Y" unicode="1098" pressed="true" autorepeat="true"/> | ||
398 | </map> | ||
399 | <map keycode="Z" pressed="true"> | ||
400 | <event keycode="Z" unicode="1079" pressed="true" autorepeat="true"/> | ||
401 | </map> | ||
402 | <map keycode="Apostrophe" pressed="false"> | ||
403 | <event keycode="Apostrophe" unicode="1100" modifiers="Shift" pressed="false"/> | ||
404 | </map> | ||
405 | <map keycode="Comma" pressed="false"> | ||
406 | <event keycode="Comma" unicode="44" modifiers="Shift" pressed="false"/> | ||
407 | </map> | ||
408 | <map keycode="Period" pressed="false"> | ||
409 | <event keycode="Period" unicode="46" modifiers="Shift" pressed="false"/> | ||
410 | </map> | ||
411 | <map keycode="Slash" pressed="false"> | ||
412 | <event keycode="Slash" unicode="1102" modifiers="Shift" pressed="false"/> | ||
413 | </map> | ||
414 | <map keycode="A" pressed="false"> | ||
415 | <event keycode="A" unicode="1072" pressed="false"/> | ||
416 | </map> | ||
417 | <map keycode="B" pressed="false"> | ||
418 | <event keycode="B" unicode="1073" pressed="false"/> | ||
419 | </map> | ||
420 | <map keycode="C" pressed="false"> | ||
421 | <event keycode="C" unicode="1094" pressed="false"/> | ||
422 | </map> | ||
423 | <map keycode="D" pressed="false"> | ||
424 | <event keycode="D" unicode="1076" pressed="false"/> | ||
425 | </map> | ||
426 | <map keycode="E" pressed="false"> | ||
427 | <event keycode="E" unicode="1077" pressed="false"/> | ||
428 | </map> | ||
429 | <map keycode="F" pressed="false"> | ||
430 | <event keycode="F" unicode="1092" pressed="false"/> | ||
431 | </map> | ||
432 | <map keycode="G" pressed="false"> | ||
433 | <event keycode="G" unicode="1075" pressed="false"/> | ||
434 | </map> | ||
435 | <map keycode="H" pressed="false"> | ||
436 | <event keycode="H" unicode="1093" pressed="false"/> | ||
437 | </map> | ||
438 | <map keycode="I" pressed="false"> | ||
439 | <event keycode="I" unicode="1080" pressed="false"/> | ||
440 | </map> | ||
441 | <map keycode="J" pressed="false"> | ||
442 | <event keycode="J" unicode="1081" pressed="false"/> | ||
443 | </map> | ||
444 | <map keycode="K" pressed="false"> | ||
445 | <event keycode="K" unicode="1082" pressed="false"/> | ||
446 | </map> | ||
447 | <map keycode="L" pressed="false"> | ||
448 | <event keycode="L" unicode="1083" pressed="false"/> | ||
449 | </map> | ||
450 | <map keycode="M" pressed="false"> | ||
451 | <event keycode="M" unicode="1084" pressed="false"/> | ||
452 | </map> | ||
453 | <map keycode="N" pressed="false"> | ||
454 | <event keycode="N" unicode="1085" pressed="false"/> | ||
455 | </map> | ||
456 | <map keycode="O" pressed="false"> | ||
457 | <event keycode="O" unicode="1086" pressed="false"/> | ||
458 | </map> | ||
459 | <map keycode="P" pressed="false"> | ||
460 | <event keycode="P" unicode="1087" pressed="false"/> | ||
461 | </map> | ||
462 | <map keycode="Q" pressed="false"> | ||
463 | <event keycode="Q" unicode="1103" pressed="false"/> | ||
464 | </map> | ||
465 | <map keycode="R" pressed="false"> | ||
466 | <event keycode="R" unicode="1088" pressed="false"/> | ||
467 | </map> | ||
468 | <map keycode="S" pressed="false"> | ||
469 | <event keycode="S" unicode="1089" pressed="false"/> | ||
470 | </map> | ||
471 | <map keycode="T" pressed="false"> | ||
472 | <event keycode="T" unicode="1090" pressed="false"/> | ||
473 | </map> | ||
474 | <map keycode="U" pressed="false"> | ||
475 | <event keycode="U" unicode="1091" pressed="false"/> | ||
476 | </map> | ||
477 | <map keycode="V" pressed="false"> | ||
478 | <event keycode="V" unicode="1078" pressed="false"/> | ||
479 | </map> | ||
480 | <map keycode="W" pressed="false"> | ||
481 | <event keycode="W" unicode="1074" pressed="false"/> | ||
482 | </map> | ||
483 | <map keycode="X" pressed="false"> | ||
484 | <event keycode="X" unicode="1095" pressed="false"/> | ||
485 | </map> | ||
486 | <map keycode="Y" pressed="false"> | ||
487 | <event keycode="Y" unicode="1098" pressed="false"/> | ||
488 | </map> | ||
489 | <map keycode="Z" pressed="false"> | ||
490 | <event keycode="Z" unicode="1079" pressed="false"/> | ||
491 | </map> | ||
492 | </state> | ||
493 | |||
494 | </keymap> | ||
diff --git a/share/zkb/bg.xml.num b/share/zkb/bg.xml.num new file mode 100644 index 0000000..91fe872 --- a/dev/null +++ b/share/zkb/bg.xml.num | |||
@@ -0,0 +1,506 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <include file="common.xml"/> | ||
4 | |||
5 | <state name="LShift-RShift" parent="common"/> | ||
6 | <state name="LShift-RShift-Caps" parent="common"/> | ||
7 | |||
8 | <state name="LShift"> | ||
9 | <map keycode="4130" pressed="true"> | ||
10 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
11 | <next-state name="LShift-RShift"/> | ||
12 | </map> | ||
13 | </state> | ||
14 | |||
15 | <state name="RShift"> | ||
16 | <map keycode="76" pressed="true"> | ||
17 | <event keycode="76" unicode="1096" modifiers="0" pressed="true" autorepeat="true"/> | ||
18 | </map> | ||
19 | |||
20 | <map keycode="44" pressed="true"> | ||
21 | <event keycode="44" unicode="1097" modifiers="0" pressed="true" autorepeat="true"/> | ||
22 | </map> | ||
23 | <map keycode="76" pressed="false"> | ||
24 | <event keycode="76" unicode="1096" modifiers="0" pressed="false" autorepeat="false"/> | ||
25 | </map> | ||
26 | |||
27 | <map keycode="44" pressed="false"> | ||
28 | <event keycode="44" unicode="1097" modifiers="0" pressed="false" autorepeat="false"/> | ||
29 | </map> | ||
30 | <map keycode="4128" pressed="false"> | ||
31 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
32 | <next-state name="LShift-RShift"/> | ||
33 | </map> | ||
34 | </state> | ||
35 | |||
36 | <state name="LShift-Caps"> | ||
37 | <map keycode="4130" pressed="true"> | ||
38 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
39 | <next-state name="LShift-RShift-Caps"/> | ||
40 | </map> | ||
41 | </state> | ||
42 | |||
43 | <state name="LShift-Num"> | ||
44 | <map keycode="4128" pressed="false"> | ||
45 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
46 | <next-state name="Num"/> | ||
47 | </map> | ||
48 | |||
49 | <map keycode="4165" pressed="true"> | ||
50 | <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
51 | <next-state name="LShift-Fn-Num"/> | ||
52 | </map> | ||
53 | </state> | ||
54 | |||
55 | <state name="RShift-Caps"> | ||
56 | <map keycode="76" pressed="true"> | ||
57 | <event keycode="76" unicode="1064" modifiers="0" pressed="true" autorepeat="true"/> | ||
58 | </map> | ||
59 | |||
60 | <map keycode="44" pressed="true"> | ||
61 | <event keycode="44" unicode="1065" modifiers="0" pressed="true" autorepeat="true"/> | ||
62 | </map> | ||
63 | <map keycode="76" pressed="false"> | ||
64 | <event keycode="76" unicode="1064" modifiers="0" pressed="false" autorepeat="false"/> | ||
65 | </map> | ||
66 | |||
67 | <map keycode="44" pressed="false"> | ||
68 | <event keycode="44" unicode="1065" modifiers="0" pressed="false" autorepeat="false"/> | ||
69 | </map> | ||
70 | <map keycode="4128" pressed="true"> | ||
71 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
72 | <next-state name="LShift-RShift-Caps"/> | ||
73 | </map> | ||
74 | </state> | ||
75 | |||
76 | <state name="LShift-RShift"> | ||
77 | <map keycode="76" pressed="true"> | ||
78 | <event keycode="76" unicode="1064" modifiers="0" pressed="true" autorepeat="true"/> | ||
79 | </map> | ||
80 | |||
81 | <map keycode="44" pressed="true"> | ||
82 | <event keycode="44" unicode="1065" modifiers="0" pressed="true" autorepeat="true"/> | ||
83 | </map> | ||
84 | <map keycode="76" pressed="false"> | ||
85 | <event keycode="76" unicode="1064" modifiers="0" pressed="false" autorepeat="false"/> | ||
86 | </map> | ||
87 | |||
88 | <map keycode="44" pressed="false"> | ||
89 | <event keycode="44" unicode="1065" modifiers="0" pressed="false" autorepeat="false"/> | ||
90 | </map> | ||
91 | <map keycode="4128" pressed="false"> | ||
92 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
93 | <next-state name="RShift"/> | ||
94 | </map> | ||
95 | |||
96 | <map keycode="4130" pressed="false"> | ||
97 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
98 | <next-state name="LShift"/> | ||
99 | </map> | ||
100 | </state> | ||
101 | |||
102 | <state name="LShift-RShift-Caps"> | ||
103 | <map keycode="76" pressed="true"> | ||
104 | <event keycode="76" unicode="1096" modifiers="0" pressed="true" autorepeat="true"/> | ||
105 | </map> | ||
106 | |||
107 | <map keycode="44" pressed="true"> | ||
108 | <event keycode="44" unicode="1097" modifiers="0" pressed="true" autorepeat="true"/> | ||
109 | </map> | ||
110 | <map keycode="76" pressed="false"> | ||
111 | <event keycode="76" unicode="1096" modifiers="0" pressed="false" autorepeat="false"/> | ||
112 | </map> | ||
113 | |||
114 | <map keycode="44" pressed="false"> | ||
115 | <event keycode="44" unicode="1097" modifiers="0" pressed="false" autorepeat="false"/> | ||
116 | </map> | ||
117 | <map keycode="4128" pressed="false"> | ||
118 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
119 | <next-state name="RShift-Caps"/> | ||
120 | </map> | ||
121 | |||
122 | <map keycode="4130" pressed="false"> | ||
123 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
124 | <next-state name="LShift-Caps"/> | ||
125 | </map> | ||
126 | </state> | ||
127 | |||
128 | <state name="upper-case"> | ||
129 | <map keycode="32" pressed="true"> | ||
130 | <event keycode="32" unicode="32" modifiers="0" pressed="true" autorepeat="false"/> | ||
131 | </map> | ||
132 | <map keycode="39" pressed="true"> | ||
133 | <event keycode="39" unicode="1068" modifiers="0" pressed="true" autorepeat="false"/> | ||
134 | </map> | ||
135 | <map keycode="44" pressed="true"> | ||
136 | <event keycode="44" unicode="44" modifiers="0" pressed="true" autorepeat="false"/> | ||
137 | </map> | ||
138 | <map keycode="46" pressed="true"> | ||
139 | <event keycode="46" unicode="46" modifiers="0" pressed="true" autorepeat="false"/> | ||
140 | </map> | ||
141 | <map keycode="47" pressed="true"> | ||
142 | <event keycode="47" unicode="1070" modifiers="0" pressed="true" autorepeat="false"/> | ||
143 | </map> | ||
144 | <map keycode="65" pressed="true"> | ||
145 | <event keycode="65" unicode="1040" modifiers="0" pressed="true" autorepeat="false"/> | ||
146 | </map> | ||
147 | <map keycode="66" pressed="true"> | ||
148 | <event keycode="66" unicode="1041" modifiers="0" pressed="true" autorepeat="false"/> | ||
149 | </map> | ||
150 | <map keycode="67" pressed="true"> | ||
151 | <event keycode="67" unicode="1062" modifiers="0" pressed="true" autorepeat="false"/> | ||
152 | </map> | ||
153 | <map keycode="68" pressed="true"> | ||
154 | <event keycode="68" unicode="1044" modifiers="0" pressed="true" autorepeat="false"/> | ||
155 | </map> | ||
156 | <map keycode="69" pressed="true"> | ||
157 | <event keycode="69" unicode="1045" modifiers="0" pressed="true" autorepeat="false"/> | ||
158 | </map> | ||
159 | <map keycode="70" pressed="true"> | ||
160 | <event keycode="70" unicode="1060" modifiers="0" pressed="true" autorepeat="false"/> | ||
161 | </map> | ||
162 | <map keycode="71" pressed="true"> | ||
163 | <event keycode="71" unicode="1043" modifiers="0" pressed="true" autorepeat="false"/> | ||
164 | </map> | ||
165 | <map keycode="72" pressed="true"> | ||
166 | <event keycode="72" unicode="1061" modifiers="0" pressed="true" autorepeat="false"/> | ||
167 | </map> | ||
168 | <map keycode="73" pressed="true"> | ||
169 | <event keycode="73" unicode="1048" modifiers="0" pressed="true" autorepeat="false"/> | ||
170 | </map> | ||
171 | <map keycode="74" pressed="true"> | ||
172 | <event keycode="74" unicode="1049" modifiers="0" pressed="true" autorepeat="false"/> | ||
173 | </map> | ||
174 | <map keycode="75" pressed="true"> | ||
175 | <event keycode="75" unicode="1050" modifiers="0" pressed="true" autorepeat="false"/> | ||
176 | </map> | ||
177 | <map keycode="76" pressed="true"> | ||
178 | <event keycode="76" unicode="1051" modifiers="0" pressed="true" autorepeat="false"/> | ||
179 | </map> | ||
180 | <map keycode="77" pressed="true"> | ||
181 | <event keycode="77" unicode="1052" modifiers="0" pressed="true" autorepeat="false"/> | ||
182 | </map> | ||
183 | <map keycode="78" pressed="true"> | ||
184 | <event keycode="78" unicode="1053" modifiers="0" pressed="true" autorepeat="false"/> | ||
185 | </map> | ||
186 | <map keycode="79" pressed="true"> | ||
187 | <event keycode="79" unicode="1054" modifiers="0" pressed="true" autorepeat="false"/> | ||
188 | </map> | ||
189 | <map keycode="80" pressed="true"> | ||
190 | <event keycode="80" unicode="1055" modifiers="0" pressed="true" autorepeat="false"/> | ||
191 | </map> | ||
192 | <map keycode="81" pressed="true"> | ||
193 | <event keycode="81" unicode="1071" modifiers="0" pressed="true" autorepeat="false"/> | ||
194 | </map> | ||
195 | <map keycode="82" pressed="true"> | ||
196 | <event keycode="82" unicode="1056" modifiers="0" pressed="true" autorepeat="false"/> | ||
197 | </map> | ||
198 | <map keycode="83" pressed="true"> | ||
199 | <event keycode="83" unicode="1057" modifiers="0" pressed="true" autorepeat="false"/> | ||
200 | </map> | ||
201 | <map keycode="84" pressed="true"> | ||
202 | <event keycode="84" unicode="1058" modifiers="0" pressed="true" autorepeat="false"/> | ||
203 | </map> | ||
204 | <map keycode="85" pressed="true"> | ||
205 | <event keycode="85" unicode="1059" modifiers="0" pressed="true" autorepeat="false"/> | ||
206 | </map> | ||
207 | <map keycode="86" pressed="true"> | ||
208 | <event keycode="86" unicode="1046" modifiers="0" pressed="true" autorepeat="false"/> | ||
209 | </map> | ||
210 | <map keycode="87" pressed="true"> | ||
211 | <event keycode="87" unicode="1042" modifiers="0" pressed="true" autorepeat="false"/> | ||
212 | </map> | ||
213 | <map keycode="88" pressed="true"> | ||
214 | <event keycode="88" unicode="1063" modifiers="0" pressed="true" autorepeat="false"/> | ||
215 | </map> | ||
216 | <map keycode="89" pressed="true"> | ||
217 | <event keycode="89" unicode="1066" modifiers="0" pressed="true" autorepeat="false"/> | ||
218 | </map> | ||
219 | <map keycode="90" pressed="true"> | ||
220 | <event keycode="90" unicode="1047" modifiers="0" pressed="true" autorepeat="false"/> | ||
221 | </map> | ||
222 | <map keycode="32" pressed="false"> | ||
223 | <event keycode="32" unicode="32" modifiers="0" pressed="false" autorepeat="false"/> | ||
224 | </map> | ||
225 | <map keycode="39" pressed="false"> | ||
226 | <event keycode="39" unicode="1068" modifiers="0" pressed="false" autorepeat="false"/> | ||
227 | </map> | ||
228 | <map keycode="44" pressed="false"> | ||
229 | <event keycode="44" unicode="44" modifiers="0" pressed="false" autorepeat="false"/> | ||
230 | </map> | ||
231 | <map keycode="46" pressed="false"> | ||
232 | <event keycode="46" unicode="46" modifiers="0" pressed="false" autorepeat="false"/> | ||
233 | </map> | ||
234 | <map keycode="47" pressed="false"> | ||
235 | <event keycode="47" unicode="1070" modifiers="0" pressed="false" autorepeat="false"/> | ||
236 | </map> | ||
237 | <map keycode="65" pressed="false"> | ||
238 | <event keycode="65" unicode="1040" modifiers="0" pressed="false" autorepeat="false"/> | ||
239 | </map> | ||
240 | <map keycode="66" pressed="false"> | ||
241 | <event keycode="66" unicode="1041" modifiers="0" pressed="false" autorepeat="false"/> | ||
242 | </map> | ||
243 | <map keycode="67" pressed="false"> | ||
244 | <event keycode="67" unicode="1062" modifiers="0" pressed="false" autorepeat="false"/> | ||
245 | </map> | ||
246 | <map keycode="68" pressed="false"> | ||
247 | <event keycode="68" unicode="1044" modifiers="0" pressed="false" autorepeat="false"/> | ||
248 | </map> | ||
249 | <map keycode="69" pressed="false"> | ||
250 | <event keycode="69" unicode="1045" modifiers="0" pressed="false" autorepeat="false"/> | ||
251 | </map> | ||
252 | <map keycode="70" pressed="false"> | ||
253 | <event keycode="70" unicode="1060" modifiers="0" pressed="false" autorepeat="false"/> | ||
254 | </map> | ||
255 | <map keycode="71" pressed="false"> | ||
256 | <event keycode="71" unicode="1043" modifiers="0" pressed="false" autorepeat="false"/> | ||
257 | </map> | ||
258 | <map keycode="72" pressed="false"> | ||
259 | <event keycode="72" unicode="1061" modifiers="0" pressed="false" autorepeat="false"/> | ||
260 | </map> | ||
261 | <map keycode="73" pressed="false"> | ||
262 | <event keycode="73" unicode="1048" modifiers="0" pressed="false" autorepeat="false"/> | ||
263 | </map> | ||
264 | <map keycode="74" pressed="false"> | ||
265 | <event keycode="74" unicode="1049" modifiers="0" pressed="false" autorepeat="false"/> | ||
266 | </map> | ||
267 | <map keycode="75" pressed="false"> | ||
268 | <event keycode="75" unicode="1050" modifiers="0" pressed="false" autorepeat="false"/> | ||
269 | </map> | ||
270 | <map keycode="76" pressed="false"> | ||
271 | <event keycode="76" unicode="1051" modifiers="0" pressed="false" autorepeat="false"/> | ||
272 | </map> | ||
273 | <map keycode="77" pressed="false"> | ||
274 | <event keycode="77" unicode="1052" modifiers="0" pressed="false" autorepeat="false"/> | ||
275 | </map> | ||
276 | <map keycode="78" pressed="false"> | ||
277 | <event keycode="78" unicode="1053" modifiers="0" pressed="false" autorepeat="false"/> | ||
278 | </map> | ||
279 | <map keycode="79" pressed="false"> | ||
280 | <event keycode="79" unicode="1054" modifiers="0" pressed="false" autorepeat="false"/> | ||
281 | </map> | ||
282 | <map keycode="80" pressed="false"> | ||
283 | <event keycode="80" unicode="1055" modifiers="0" pressed="false" autorepeat="false"/> | ||
284 | </map> | ||
285 | <map keycode="81" pressed="false"> | ||
286 | <event keycode="81" unicode="1071" modifiers="0" pressed="false" autorepeat="false"/> | ||
287 | </map> | ||
288 | <map keycode="82" pressed="false"> | ||
289 | <event keycode="82" unicode="1056" modifiers="0" pressed="false" autorepeat="false"/> | ||
290 | </map> | ||
291 | <map keycode="83" pressed="false"> | ||
292 | <event keycode="83" unicode="1057" modifiers="0" pressed="false" autorepeat="false"/> | ||
293 | </map> | ||
294 | <map keycode="84" pressed="false"> | ||
295 | <event keycode="84" unicode="1058" modifiers="0" pressed="false" autorepeat="false"/> | ||
296 | </map> | ||
297 | <map keycode="85" pressed="false"> | ||
298 | <event keycode="85" unicode="1059" modifiers="0" pressed="false" autorepeat="false"/> | ||
299 | </map> | ||
300 | <map keycode="86" pressed="false"> | ||
301 | <event keycode="86" unicode="1046" modifiers="0" pressed="false" autorepeat="false"/> | ||
302 | </map> | ||
303 | <map keycode="87" pressed="false"> | ||
304 | <event keycode="87" unicode="1042" modifiers="0" pressed="false" autorepeat="false"/> | ||
305 | </map> | ||
306 | <map keycode="88" pressed="false"> | ||
307 | <event keycode="88" unicode="1063" modifiers="0" pressed="false" autorepeat="false"/> | ||
308 | </map> | ||
309 | <map keycode="89" pressed="false"> | ||
310 | <event keycode="89" unicode="1066" modifiers="0" pressed="false" autorepeat="false"/> | ||
311 | </map> | ||
312 | <map keycode="90" pressed="false"> | ||
313 | <event keycode="90" unicode="1047" modifiers="0" pressed="false" autorepeat="false"/> | ||
314 | </map> | ||
315 | </state> | ||
316 | |||
317 | <state name="lower-case"> | ||
318 | <map keycode="32" pressed="true"> | ||
319 | <event keycode="32" unicode="32" modifiers="8" pressed="true" autorepeat="false"/> | ||
320 | </map> | ||
321 | <map keycode="39" pressed="true"> | ||
322 | <event keycode="34" unicode="1100" modifiers="8" pressed="true" autorepeat="false"/> | ||
323 | </map> | ||
324 | <map keycode="44" pressed="true"> | ||
325 | <event keycode="59" unicode="59" modifiers="8" pressed="true" autorepeat="false"/> | ||
326 | </map> | ||
327 | <map keycode="46" pressed="true"> | ||
328 | <event keycode="58" unicode="58" modifiers="8" pressed="true" autorepeat="false"/> | ||
329 | </map> | ||
330 | <map keycode="47" pressed="true"> | ||
331 | <event keycode="63" unicode="1102" modifiers="8" pressed="true" autorepeat="false"/> | ||
332 | </map> | ||
333 | <map keycode="65" pressed="true"> | ||
334 | <event keycode="65" unicode="1072" modifiers="0" pressed="true" autorepeat="false"/> | ||
335 | </map> | ||
336 | <map keycode="66" pressed="true"> | ||
337 | <event keycode="66" unicode="1073" modifiers="0" pressed="true" autorepeat="false"/> | ||
338 | </map> | ||
339 | <map keycode="67" pressed="true"> | ||
340 | <event keycode="67" unicode="1094" modifiers="0" pressed="true" autorepeat="false"/> | ||
341 | </map> | ||
342 | <map keycode="68" pressed="true"> | ||
343 | <event keycode="68" unicode="1076" modifiers="0" pressed="true" autorepeat="false"/> | ||
344 | </map> | ||
345 | <map keycode="69" pressed="true"> | ||
346 | <event keycode="69" unicode="1077" modifiers="0" pressed="true" autorepeat="false"/> | ||
347 | </map> | ||
348 | <map keycode="70" pressed="true"> | ||
349 | <event keycode="70" unicode="1092" modifiers="0" pressed="true" autorepeat="false"/> | ||
350 | </map> | ||
351 | <map keycode="71" pressed="true"> | ||
352 | <event keycode="71" unicode="1075" modifiers="0" pressed="true" autorepeat="false"/> | ||
353 | </map> | ||
354 | <map keycode="72" pressed="true"> | ||
355 | <event keycode="72" unicode="1093" modifiers="0" pressed="true" autorepeat="false"/> | ||
356 | </map> | ||
357 | <map keycode="73" pressed="true"> | ||
358 | <event keycode="73" unicode="1080" modifiers="0" pressed="true" autorepeat="false"/> | ||
359 | </map> | ||
360 | <map keycode="74" pressed="true"> | ||
361 | <event keycode="74" unicode="1081" modifiers="0" pressed="true" autorepeat="false"/> | ||
362 | </map> | ||
363 | <map keycode="75" pressed="true"> | ||
364 | <event keycode="75" unicode="1082" modifiers="0" pressed="true" autorepeat="false"/> | ||
365 | </map> | ||
366 | <map keycode="76" pressed="true"> | ||
367 | <event keycode="76" unicode="1083" modifiers="0" pressed="true" autorepeat="false"/> | ||
368 | </map> | ||
369 | <map keycode="77" pressed="true"> | ||
370 | <event keycode="77" unicode="1084" modifiers="0" pressed="true" autorepeat="false"/> | ||
371 | </map> | ||
372 | <map keycode="78" pressed="true"> | ||
373 | <event keycode="78" unicode="1085" modifiers="0" pressed="true" autorepeat="false"/> | ||
374 | </map> | ||
375 | <map keycode="79" pressed="true"> | ||
376 | <event keycode="79" unicode="1086" modifiers="0" pressed="true" autorepeat="false"/> | ||
377 | </map> | ||
378 | <map keycode="80" pressed="true"> | ||
379 | <event keycode="80" unicode="1087" modifiers="0" pressed="true" autorepeat="false"/> | ||
380 | </map> | ||
381 | <map keycode="81" pressed="true"> | ||
382 | <event keycode="81" unicode="1103" modifiers="0" pressed="true" autorepeat="false"/> | ||
383 | </map> | ||
384 | <map keycode="82" pressed="true"> | ||
385 | <event keycode="82" unicode="1088" modifiers="0" pressed="true" autorepeat="false"/> | ||
386 | </map> | ||
387 | <map keycode="83" pressed="true"> | ||
388 | <event keycode="83" unicode="1089" modifiers="0" pressed="true" autorepeat="false"/> | ||
389 | </map> | ||
390 | <map keycode="84" pressed="true"> | ||
391 | <event keycode="84" unicode="1090" modifiers="0" pressed="true" autorepeat="false"/> | ||
392 | </map> | ||
393 | <map keycode="85" pressed="true"> | ||
394 | <event keycode="85" unicode="1091" modifiers="0" pressed="true" autorepeat="false"/> | ||
395 | </map> | ||
396 | <map keycode="86" pressed="true"> | ||
397 | <event keycode="86" unicode="1078" modifiers="0" pressed="true" autorepeat="false"/> | ||
398 | </map> | ||
399 | <map keycode="87" pressed="true"> | ||
400 | <event keycode="87" unicode="1074" modifiers="0" pressed="true" autorepeat="false"/> | ||
401 | </map> | ||
402 | <map keycode="88" pressed="true"> | ||
403 | <event keycode="88" unicode="1095" modifiers="0" pressed="true" autorepeat="false"/> | ||
404 | </map> | ||
405 | <map keycode="89" pressed="true"> | ||
406 | <event keycode="89" unicode="1098" modifiers="0" pressed="true" autorepeat="false"/> | ||
407 | </map> | ||
408 | <map keycode="90" pressed="true"> | ||
409 | <event keycode="90" unicode="1079" modifiers="0" pressed="true" autorepeat="false"/> | ||
410 | </map> | ||
411 | <map keycode="32" pressed="false"> | ||
412 | <event keycode="32" unicode="32" modifiers="8" pressed="false" autorepeat="false"/> | ||
413 | </map> | ||
414 | <map keycode="39" pressed="false"> | ||
415 | <event keycode="34" unicode="1100" modifiers="8" pressed="false" autorepeat="false"/> | ||
416 | </map> | ||
417 | <map keycode="44" pressed="false"> | ||
418 | <event keycode="59" unicode="59" modifiers="8" pressed="false" autorepeat="false"/> | ||
419 | </map> | ||
420 | <map keycode="46" pressed="false"> | ||
421 | <event keycode="58" unicode="58" modifiers="8" pressed="false" autorepeat="false"/> | ||
422 | </map> | ||
423 | <map keycode="47" pressed="false"> | ||
424 | <event keycode="63" unicode="1102" modifiers="8" pressed="false" autorepeat="false"/> | ||
425 | </map> | ||
426 | <map keycode="65" pressed="false"> | ||
427 | <event keycode="65" unicode="1072" modifiers="0" pressed="false" autorepeat="false"/> | ||
428 | </map> | ||
429 | <map keycode="66" pressed="false"> | ||
430 | <event keycode="66" unicode="1073" modifiers="0" pressed="false" autorepeat="false"/> | ||
431 | </map> | ||
432 | <map keycode="67" pressed="false"> | ||
433 | <event keycode="67" unicode="1094" modifiers="0" pressed="false" autorepeat="false"/> | ||
434 | </map> | ||
435 | <map keycode="68" pressed="false"> | ||
436 | <event keycode="68" unicode="1076" modifiers="0" pressed="false" autorepeat="false"/> | ||
437 | </map> | ||
438 | <map keycode="69" pressed="false"> | ||
439 | <event keycode="69" unicode="1077" modifiers="0" pressed="false" autorepeat="false"/> | ||
440 | </map> | ||
441 | <map keycode="70" pressed="false"> | ||
442 | <event keycode="70" unicode="1092" modifiers="0" pressed="false" autorepeat="false"/> | ||
443 | </map> | ||
444 | <map keycode="71" pressed="false"> | ||
445 | <event keycode="71" unicode="1075" modifiers="0" pressed="false" autorepeat="false"/> | ||
446 | </map> | ||
447 | <map keycode="72" pressed="false"> | ||
448 | <event keycode="72" unicode="1093" modifiers="0" pressed="false" autorepeat="false"/> | ||
449 | </map> | ||
450 | <map keycode="73" pressed="false"> | ||
451 | <event keycode="73" unicode="1080" modifiers="0" pressed="false" autorepeat="false"/> | ||
452 | </map> | ||
453 | <map keycode="74" pressed="false"> | ||
454 | <event keycode="74" unicode="1081" modifiers="0" pressed="false" autorepeat="false"/> | ||
455 | </map> | ||
456 | <map keycode="75" pressed="false"> | ||
457 | <event keycode="75" unicode="1082" modifiers="0" pressed="false" autorepeat="false"/> | ||
458 | </map> | ||
459 | <map keycode="76" pressed="false"> | ||
460 | <event keycode="76" unicode="1083" modifiers="0" pressed="false" autorepeat="false"/> | ||
461 | </map> | ||
462 | <map keycode="77" pressed="false"> | ||
463 | <event keycode="77" unicode="1084" modifiers="0" pressed="false" autorepeat="false"/> | ||
464 | </map> | ||
465 | <map keycode="78" pressed="false"> | ||
466 | <event keycode="78" unicode="1085" modifiers="0" pressed="false" autorepeat="false"/> | ||
467 | </map> | ||
468 | <map keycode="79" pressed="false"> | ||
469 | <event keycode="79" unicode="1086" modifiers="0" pressed="false" autorepeat="false"/> | ||
470 | </map> | ||
471 | <map keycode="80" pressed="false"> | ||
472 | <event keycode="80" unicode="1087" modifiers="0" pressed="false" autorepeat="false"/> | ||
473 | </map> | ||
474 | <map keycode="81" pressed="false"> | ||
475 | <event keycode="81" unicode="1103" modifiers="0" pressed="false" autorepeat="false"/> | ||
476 | </map> | ||
477 | <map keycode="82" pressed="false"> | ||
478 | <event keycode="82" unicode="1088" modifiers="0" pressed="false" autorepeat="false"/> | ||
479 | </map> | ||
480 | <map keycode="83" pressed="false"> | ||
481 | <event keycode="83" unicode="1089" modifiers="0" pressed="false" autorepeat="false"/> | ||
482 | </map> | ||
483 | <map keycode="84" pressed="false"> | ||
484 | <event keycode="84" unicode="1090" modifiers="0" pressed="false" autorepeat="false"/> | ||
485 | </map> | ||
486 | <map keycode="85" pressed="false"> | ||
487 | <event keycode="85" unicode="1091" modifiers="0" pressed="false" autorepeat="false"/> | ||
488 | </map> | ||
489 | <map keycode="86" pressed="false"> | ||
490 | <event keycode="86" unicode="1078" modifiers="0" pressed="false" autorepeat="false"/> | ||
491 | </map> | ||
492 | <map keycode="87" pressed="false"> | ||
493 | <event keycode="87" unicode="1074" modifiers="0" pressed="false" autorepeat="false"/> | ||
494 | </map> | ||
495 | <map keycode="88" pressed="false"> | ||
496 | <event keycode="88" unicode="1095" modifiers="0" pressed="false" autorepeat="false"/> | ||
497 | </map> | ||
498 | <map keycode="89" pressed="false"> | ||
499 | <event keycode="89" unicode="1098" modifiers="0" pressed="false" autorepeat="false"/> | ||
500 | </map> | ||
501 | <map keycode="90" pressed="false"> | ||
502 | <event keycode="90" unicode="1079" modifiers="0" pressed="false" autorepeat="false"/> | ||
503 | </map> | ||
504 | </state> | ||
505 | |||
506 | </keymap> | ||
diff --git a/share/zkb/common.xml b/share/zkb/common.xml new file mode 100644 index 0000000..255e677 --- a/dev/null +++ b/share/zkb/common.xml | |||
@@ -0,0 +1,2121 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <!-- State Declarations --> | ||
4 | |||
5 | <state name="common"/> | ||
6 | <state name="lower-case" parent="common"/> | ||
7 | <state name="upper-case" parent="common"/> | ||
8 | <state name="number" parent="common"/> | ||
9 | <state name="control" parent="common"/> | ||
10 | <state name="alt" parent="common"/> | ||
11 | |||
12 | <state name="Normal" parent="lower-case"/> | ||
13 | <state name="LShift" parent="upper-case"/> | ||
14 | <state name="RShift" parent="upper-case"/> | ||
15 | <state name="Fn" parent="number"/> | ||
16 | <state name="Num" parent="number"/> | ||
17 | <state name="Caps" parent="upper-case"/> | ||
18 | <state name="iFn"/> | ||
19 | <state name="sFn" parent="number"/> | ||
20 | |||
21 | <state name="LShift-Fn" parent="control"/> | ||
22 | <state name="RShift-Fn" parent="alt"/> | ||
23 | <state name="LShift-Caps" parent="lower-case"/> | ||
24 | <state name="LShift-Num" parent="number"/> | ||
25 | <state name="RShift-Caps" parent="lower-case"/> | ||
26 | <state name="RShift-Num" parent="number"/> | ||
27 | <state name="Fn-Num" parent="number"/> | ||
28 | <state name="Fn-Caps" parent="number"/> | ||
29 | <state name="Num-Caps" parent="number"/> | ||
30 | <state name="Caps-iFn"/> | ||
31 | <state name="Caps-sFn" parent="sFn"/> | ||
32 | |||
33 | <state name="LShift-Fn-Caps" parent="control"/> | ||
34 | <state name="LShift-Fn-Num" parent="control"/> | ||
35 | <state name="LShift-Num-Caps" parent="number"/> | ||
36 | <state name="RShift-Fn-Caps" parent="control"/> | ||
37 | <state name="RShift-Fn-Num" parent="control"/> | ||
38 | <state name="RShift-Num-Caps" parent="number"/> | ||
39 | <state name="Fn-Num-Caps" parent="number"/> | ||
40 | <state name="LShift-Fn-Num-Caps" parent="control"/> | ||
41 | <state name="RShift-Fn-Num-Caps" parent="control"/> | ||
42 | |||
43 | <state name="Normal" default="true"> | ||
44 | <map keycode="Left Shift" pressed="true"> | ||
45 | <event keycode="Shift" unicode="-1" modifiers="Shift" pressed="true"/> | ||
46 | <next-state name="LShift"/> | ||
47 | </map> | ||
48 | <map keycode="Right Shift" pressed="true"> | ||
49 | <event keycode="Meta" unicode="-1" modifiers="Shift" pressed="true"/> | ||
50 | <next-state name="RShift"/> | ||
51 | </map> | ||
52 | <map keycode="Fn" pressed="true"> | ||
53 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
54 | <next-state name="iFn"/> | ||
55 | </map> | ||
56 | </state> | ||
57 | |||
58 | <state name="LShift"> | ||
59 | <map keycode="Left Shift" pressed="false"> | ||
60 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
61 | <next-state name="Normal"/> | ||
62 | </map> | ||
63 | <map keycode="Fn" pressed="true"> | ||
64 | <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/> | ||
65 | <next-state name="LShift-Fn"/> | ||
66 | </map> | ||
67 | </state> | ||
68 | |||
69 | <state name="RShift"> | ||
70 | <map keycode="Right Shift" pressed="false"> | ||
71 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
72 | <next-state name="Normal"/> | ||
73 | </map> | ||
74 | <map keycode="Fn" pressed="true"> | ||
75 | <event keycode="F22" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
76 | <next-state name="RShift-Fn"/> | ||
77 | </map> | ||
78 | </state> | ||
79 | |||
80 | <state name="Fn"> | ||
81 | <map keycode="Space" pressed="true"> | ||
82 | <event keycode="Bar" unicode="124" pressed="true"/> | ||
83 | </map> | ||
84 | <map keycode="Apostrophe" pressed="true"> | ||
85 | <event keycode="AsciiTilde" unicode="126" pressed="true"/> | ||
86 | </map> | ||
87 | <map keycode="Comma" pressed="true"> | ||
88 | <event keycode="ParenRight" unicode="41" pressed="true"/> | ||
89 | </map> | ||
90 | <map keycode="Period" pressed="true"> | ||
91 | <event keycode="Less" unicode="60" pressed="true"/> | ||
92 | </map> | ||
93 | <map keycode="Slash" pressed="true"> | ||
94 | <event keycode="NumLock" unicode="-1" pressed="true"/> | ||
95 | <next-state name="Fn-Num"/> | ||
96 | </map> | ||
97 | <map keycode="C" pressed="true"> | ||
98 | <event keycode="C" unicode="3" modifiers="Control" pressed="true"/> | ||
99 | </map> | ||
100 | <map keycode="V" pressed="true"> | ||
101 | <event keycode="V" unicode="22" modifiers="Control" pressed="true"/> | ||
102 | </map> | ||
103 | <map keycode="X" pressed="true"> | ||
104 | <event keycode="X" unicode="24" modifiers="Control" pressed="true"/> | ||
105 | </map> | ||
106 | <map keycode="Space" pressed="false"> | ||
107 | <event keycode="Bar" unicode="124" pressed="false"/> | ||
108 | </map> | ||
109 | <map keycode="Apostrophe" pressed="false"> | ||
110 | <event keycode="AsciiTilde" unicode="126" pressed="false"/> | ||
111 | </map> | ||
112 | <map keycode="Comma" pressed="false"> | ||
113 | <event keycode="ParenRight" unicode="41" pressed="false"/> | ||
114 | </map> | ||
115 | <map keycode="Period" pressed="false"> | ||
116 | <event keycode="Less" unicode="60" pressed="false"/> | ||
117 | </map> | ||
118 | <map keycode="C" pressed="false"> | ||
119 | <event keycode="C" unicode="3" modifiers="Control" pressed="false"/> | ||
120 | </map> | ||
121 | <map keycode="V" pressed="false"> | ||
122 | <event keycode="V" unicode="22" modifiers="Control" pressed="false"/> | ||
123 | </map> | ||
124 | <map keycode="X" pressed="false"> | ||
125 | <event keycode="X" unicode="24" modifiers="Control" pressed="false"/> | ||
126 | </map> | ||
127 | <map keycode="Tab" pressed="true"> | ||
128 | <event keycode="CapsLock" unicode="-1" pressed="true"/> | ||
129 | <next-state name="Fn-Caps"/> | ||
130 | </map> | ||
131 | <map keycode="Left Shift" pressed="true"> | ||
132 | <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/> | ||
133 | <next-state name="LShift-Fn"/> | ||
134 | </map> | ||
135 | <map keycode="Right Shift" pressed="true"> | ||
136 | <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
137 | <next-state name="RShift-Fn"/> | ||
138 | </map> | ||
139 | <map keycode="Fn" pressed="false"> | ||
140 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
141 | <next-state name="Normal"/> | ||
142 | </map> | ||
143 | </state> | ||
144 | |||
145 | <state name="Num"> | ||
146 | <map keycode="Fn" pressed="true"> | ||
147 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
148 | <next-state name="Fn-Num"/> | ||
149 | </map> | ||
150 | </state> | ||
151 | |||
152 | <state name="Caps"> | ||
153 | <map keycode="Left Shift" pressed="true"> | ||
154 | <event keycode="Shift" unicode="-1" modifiers="Shift" pressed="true"/> | ||
155 | <next-state name="LShift-Caps"/> | ||
156 | </map> | ||
157 | |||
158 | <map keycode="Right Shift" pressed="true"> | ||
159 | <event keycode="Meta" unicode="-1" pressed="true"/> | ||
160 | <next-state name="RShift-Caps"/> | ||
161 | </map> | ||
162 | |||
163 | <map keycode="Fn" pressed="true"> | ||
164 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
165 | <next-state name="Caps-iFn"/> | ||
166 | </map> | ||
167 | </state> | ||
168 | |||
169 | <state name="LShift-Fn"> | ||
170 | <map keycode="Left Shift" pressed="false"> | ||
171 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
172 | <next-state name="Fn"/> | ||
173 | </map> | ||
174 | |||
175 | <map keycode="Fn" pressed="false"> | ||
176 | <event keycode="F22" unicode="-1" modifiers="Shift" pressed="false"/> | ||
177 | <next-state name="LShift"/> | ||
178 | </map> | ||
179 | |||
180 | <map keycode="Tab" pressed="true"> | ||
181 | <event keycode="CapsLock" unicode="-1" modifiers="Control|Shift" pressed="true"/> | ||
182 | <next-state name="LShift-Fn-Caps"/> | ||
183 | </map> | ||
184 | |||
185 | <map keycode="Slash" pressed="true"> | ||
186 | <event keycode="NumLock" unicode="-1" modifiers="Control" pressed="true"/> | ||
187 | <next-state name="LShift-Fn-Num"/> | ||
188 | </map> | ||
189 | </state> | ||
190 | |||
191 | <state name="RShift-Fn"> | ||
192 | <map keycode="Right Shift" pressed="false"> | ||
193 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
194 | <next-state name="Fn"/> | ||
195 | </map> | ||
196 | |||
197 | <map keycode="Fn" pressed="false"> | ||
198 | <event keycode="F22" unicode="-1" modifiers="Shift" pressed="false"/> | ||
199 | <next-state name="RShift"/> | ||
200 | </map> | ||
201 | |||
202 | <map keycode="Tab" pressed="true"> | ||
203 | <event keycode="CapsLock" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
204 | <next-state name="RShift-Fn-Caps"/> | ||
205 | </map> | ||
206 | |||
207 | <map keycode="Slash" pressed="true"> | ||
208 | <event keycode="NumLock" unicode="-1" modifiers="Alt" pressed="true"/> | ||
209 | <next-state name="RShift-Fn-Num"/> | ||
210 | </map> | ||
211 | </state> | ||
212 | |||
213 | <state name="LShift-Caps"> | ||
214 | <map keycode="Left Shift" pressed="false"> | ||
215 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
216 | <next-state name="Caps"/> | ||
217 | </map> | ||
218 | |||
219 | <map keycode="Fn" pressed="true"> | ||
220 | <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/> | ||
221 | <next-state name="LShift-Fn-Caps"/> | ||
222 | </map> | ||
223 | </state> | ||
224 | |||
225 | <state name="LShift-Num"> | ||
226 | <map keycode="Left Shift" pressed="false"> | ||
227 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
228 | <next-state name="Num"/> | ||
229 | </map> | ||
230 | |||
231 | <map keycode="Fn" pressed="true"> | ||
232 | <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/> | ||
233 | <next-state name="LShift-Fn-Num"/> | ||
234 | </map> | ||
235 | </state> | ||
236 | |||
237 | <state name="RShift-Caps"> | ||
238 | <map keycode="Right Shift" pressed="false"> | ||
239 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
240 | <next-state name="Caps"/> | ||
241 | </map> | ||
242 | |||
243 | <map keycode="Fn" pressed="true"> | ||
244 | <event keycode="F22" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
245 | <next-state name="RShift-Fn-Caps"/> | ||
246 | </map> | ||
247 | </state> | ||
248 | |||
249 | <state name="RShift-Num"> | ||
250 | <map keycode="Right Shift" pressed="false"> | ||
251 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
252 | <next-state name="Num"/> | ||
253 | </map> | ||
254 | |||
255 | <map keycode="Fn" pressed="true"> | ||
256 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
257 | <next-state name="RShift-Fn-Caps"/> | ||
258 | </map> | ||
259 | </state> | ||
260 | |||
261 | <state name="Fn-Num"> | ||
262 | <map keycode="Slash" pressed="true"> | ||
263 | <event keycode="NumLock" unicode="-1" pressed="true"/> | ||
264 | <next-state name="Fn"/> | ||
265 | </map> | ||
266 | |||
267 | <map keycode="Tab" pressed="true"> | ||
268 | <event keycode="CapsLock" unicode="-1" pressed="true"/> | ||
269 | <next-state name="Fn-Num-Caps"/> | ||
270 | </map> | ||
271 | |||
272 | <map keycode="Fn" pressed="false"> | ||
273 | <event keycode="F22" unicode="-1" pressed="false"/> | ||
274 | <next-state name="Num"/> | ||
275 | </map> | ||
276 | </state> | ||
277 | |||
278 | <state name="Fn-Caps"> | ||
279 | <map keycode="Slash" pressed="true"> | ||
280 | <event keycode="NumLock" unicode="-1" pressed="true"/> | ||
281 | <next-state name="Fn-Num-Caps"/> | ||
282 | </map> | ||
283 | |||
284 | <map keycode="Tab" pressed="true"> | ||
285 | <event keycode="CapsLock" unicode="-1" pressed="true"/> | ||
286 | <next-state name="Fn"/> | ||
287 | </map> | ||
288 | |||
289 | <map keycode="Fn" pressed="false"> | ||
290 | <event keycode="F22" unicode="-1" pressed="false"/> | ||
291 | <next-state name="Caps"/> | ||
292 | </map> | ||
293 | </state> | ||
294 | |||
295 | <state name="Num-Caps"> | ||
296 | <map keycode="Fn" pressed="true"> | ||
297 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
298 | <next-state name="Fn-Num-Caps"/> | ||
299 | </map> | ||
300 | </state> | ||
301 | |||
302 | <state name="LShift-Fn-Caps"> | ||
303 | <map keycode="Left Shift" pressed="false"> | ||
304 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
305 | <next-state name="Fn-Caps"/> | ||
306 | </map> | ||
307 | |||
308 | <map keycode="Fn" pressed="false"> | ||
309 | <event keycode="F22" unicode="-1" modifiers="Shift" pressed="false"/> | ||
310 | <next-state name="LShift-Caps"/> | ||
311 | </map> | ||
312 | |||
313 | <map keycode="Tab" pressed="true"> | ||
314 | <event keycode="CapsLock" unicode="-1" modifiers="Control" pressed="true"/> | ||
315 | <next-state name="LShift-Fn"/> | ||
316 | </map> | ||
317 | </state> | ||
318 | |||
319 | <state name="LShift-Fn-Num"> | ||
320 | <map keycode="Left Shift" pressed="false"> | ||
321 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
322 | <next-state name="Fn-Num"/> | ||
323 | </map> | ||
324 | |||
325 | <map keycode="Fn" pressed="false"> | ||
326 | <event keycode="F22" unicode="-1" pressed="false"/> | ||
327 | <next-state name="LShift-Num"/> | ||
328 | </map> | ||
329 | |||
330 | <map keycode="Slash" pressed="true"> | ||
331 | <event keycode="NumLock" unicode="-1" modifiers="Control" pressed="true"/> | ||
332 | <next-state name="LShift-Fn"/> | ||
333 | </map> | ||
334 | </state> | ||
335 | |||
336 | <state name="LShift-Num-Caps"> | ||
337 | <map keycode="Fn" pressed="true"> | ||
338 | <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/> | ||
339 | <next-state name="LShift-Fn-Num-Caps"/> | ||
340 | </map> | ||
341 | |||
342 | <map keycode="Left Shift" pressed="false"> | ||
343 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
344 | <next-state name="Num-Caps"/> | ||
345 | </map> | ||
346 | </state> | ||
347 | |||
348 | <state name="RShift-Fn-Caps"> | ||
349 | <map keycode="Right Shift" pressed="false"> | ||
350 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
351 | <next-state name="Fn-Caps"/> | ||
352 | </map> | ||
353 | |||
354 | <map keycode="Fn" pressed="false"> | ||
355 | <event keycode="F22" unicode="-1" modifiers="Shift" pressed="false"/> | ||
356 | <next-state name="RShift-Caps"/> | ||
357 | </map> | ||
358 | |||
359 | <map keycode="Tab" pressed="true"> | ||
360 | <event keycode="CapsLock" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
361 | <next-state name="RShift-Fn"/> | ||
362 | </map> | ||
363 | </state> | ||
364 | |||
365 | <state name="RShift-Fn-Num"> | ||
366 | <map keycode="Right Shift" pressed="false"> | ||
367 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
368 | <next-state name="Fn-Num"/> | ||
369 | </map> | ||
370 | |||
371 | <map keycode="Fn" pressed="false"> | ||
372 | <event keycode="F22" unicode="-1" pressed="false"/> | ||
373 | <next-state name="RShift-Num"/> | ||
374 | </map> | ||
375 | |||
376 | <map keycode="Slash" pressed="true"> | ||
377 | <event keycode="NumLock" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
378 | <next-state name="RShift-Fn"/> | ||
379 | </map> | ||
380 | </state> | ||
381 | |||
382 | <state name="RShift-Num-Caps"> | ||
383 | <map keycode="Fn" pressed="true"> | ||
384 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
385 | <next-state name="RShift-Fn-Num-Caps"/> | ||
386 | </map> | ||
387 | |||
388 | <map keycode="Right Shift" pressed="false"> | ||
389 | <event keycode="Meta" unicode="-1" pressed="true"/> | ||
390 | <next-state name="Num-Caps"/> | ||
391 | </map> | ||
392 | </state> | ||
393 | |||
394 | <state name="Fn-Num-Caps"> | ||
395 | <map keycode="Fn" pressed="false"> | ||
396 | <event keycode="F22" unicode="-1" pressed="false"/> | ||
397 | <next-state name="Num-Caps"/> | ||
398 | </map> | ||
399 | |||
400 | <map keycode="Tab" pressed="true"> | ||
401 | <event keycode="CapsLock" unicode="-1" pressed="true"/> | ||
402 | <next-state name="Fn-Num"/> | ||
403 | </map> | ||
404 | |||
405 | <map keycode="Slash" pressed="true"> | ||
406 | <event keycode="NumLock" unicode="-1" pressed="true"/> | ||
407 | <next-state name="Fn-Caps"/> | ||
408 | </map> | ||
409 | |||
410 | <map keycode="Left Shift" pressed="true"> | ||
411 | <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/> | ||
412 | <next-state name="LShift-Fn-Num-Caps"/> | ||
413 | </map> | ||
414 | |||
415 | <map keycode="Right Shift" pressed="true"> | ||
416 | <event keycode="Meta" unicode="-1" modifiers="Alt" pressed="true"/> | ||
417 | <next-state name="RShift-Fn-Num-Caps"/> | ||
418 | </map> | ||
419 | </state> | ||
420 | |||
421 | <state name="LShift-Fn-Num-Caps"> | ||
422 | <map keycode="Fn" pressed="false"> | ||
423 | <event keycode="F22" unicode="-1" pressed="false"/> | ||
424 | <next-state name="LShift-Num-Caps"/> | ||
425 | </map> | ||
426 | |||
427 | <map keycode="Tab" pressed="true"> | ||
428 | <event keycode="CapsLock" unicode="-1" modifiers="Control" pressed="true"/> | ||
429 | <next-state name="LShift-Fn-Num"/> | ||
430 | </map> | ||
431 | |||
432 | <map keycode="Slash" pressed="true"> | ||
433 | <event keycode="NumLock" unicode="-1" modifiers="Control|Shift" pressed="true"/> | ||
434 | <next-state name="LShift-Fn-Caps"/> | ||
435 | </map> | ||
436 | |||
437 | <map keycode="Left Shift" pressed="false"> | ||
438 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
439 | <next-state name="Fn-Num-Caps"/> | ||
440 | </map> | ||
441 | </state> | ||
442 | |||
443 | <state name="RShift-Fn-Num-Caps"> | ||
444 | <map keycode="Fn" pressed="false"> | ||
445 | <event keycode="F22" unicode="-1" pressed="false"/> | ||
446 | <next-state name="RShift-Num-Caps"/> | ||
447 | </map> | ||
448 | |||
449 | <map keycode="Tab" pressed="true"> | ||
450 | <event keycode="CapsLock" unicode="-1" modifiers="Alt" pressed="true"/> | ||
451 | <next-state name="RShift-Fn-Num"/> | ||
452 | </map> | ||
453 | |||
454 | <map keycode="Slash" pressed="true"> | ||
455 | <event keycode="NumLock" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
456 | <next-state name="RShift-Fn-Caps"/> | ||
457 | </map> | ||
458 | |||
459 | <map keycode="Right Shift" pressed="false"> | ||
460 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
461 | <next-state name="Fn-Num-Caps"/> | ||
462 | </map> | ||
463 | </state> | ||
464 | |||
465 | <state name="common"> | ||
466 | <map keycode="Space" pressed="true"> | ||
467 | <event keycode="Space" unicode="32" pressed="true" autorepeat="true"/> | ||
468 | </map> | ||
469 | <map keycode="Cancel" pressed="true"> | ||
470 | <event keycode="Escape" unicode="27" pressed="true" autorepeat="true"/> | ||
471 | </map> | ||
472 | <map keycode="Tab" pressed="true"> | ||
473 | <event keycode="Tab" unicode="9" pressed="true" autorepeat="true"/> | ||
474 | </map> | ||
475 | <map keycode="Backspace" pressed="true"> | ||
476 | <event keycode="Backspace" unicode="127" pressed="true" autorepeat="true"/> | ||
477 | </map> | ||
478 | <map keycode="Enter" pressed="true"> | ||
479 | <event keycode="Return" unicode="13" pressed="true" autorepeat="true"/> | ||
480 | </map> | ||
481 | <map keycode="Left" pressed="true"> | ||
482 | <event keycode="Left" unicode="-1" pressed="true" autorepeat="true"/> | ||
483 | </map> | ||
484 | <map keycode="Up" pressed="true"> | ||
485 | <event keycode="Up" unicode="-1" pressed="true" autorepeat="true"/> | ||
486 | </map> | ||
487 | <map keycode="Right" pressed="true"> | ||
488 | <event keycode="Right" unicode="-1" pressed="true" autorepeat="true"/> | ||
489 | </map> | ||
490 | <map keycode="Down" pressed="true"> | ||
491 | <event keycode="Down" unicode="-1" pressed="true" autorepeat="true"/> | ||
492 | </map> | ||
493 | <map keycode="Calendar" pressed="true"> | ||
494 | <event keycode="F9" unicode="-1" pressed="true" autorepeat="true"/> | ||
495 | </map> | ||
496 | <map keycode="Addressbook" pressed="true"> | ||
497 | <event keycode="F10" unicode="-1" pressed="true" autorepeat="true"/> | ||
498 | </map> | ||
499 | <map keycode="Menu" pressed="true"> | ||
500 | <event keycode="F11" unicode="-1" pressed="true" autorepeat="true"/> | ||
501 | </map> | ||
502 | <map keycode="Home" pressed="true"> | ||
503 | <event keycode="F12" unicode="-1" pressed="true" autorepeat="true"/> | ||
504 | </map> | ||
505 | <map keycode="Mail" pressed="true"> | ||
506 | <event keycode="F13" unicode="-1" pressed="true" autorepeat="true"/> | ||
507 | </map> | ||
508 | <map keycode="Middle" pressed="true"> | ||
509 | <event keycode="F30" unicode="-1" pressed="true" autorepeat="true"/> | ||
510 | </map> | ||
511 | <map keycode="OK" pressed="true"> | ||
512 | <event keycode="F33" unicode="-1" pressed="true" autorepeat="true"/> | ||
513 | </map> | ||
514 | <map keycode="Off" pressed="true"> | ||
515 | <event keycode="F34" unicode="-1" pressed="true"/> | ||
516 | </map> | ||
517 | <map keycode="Light" pressed="true"> | ||
518 | <event keycode="F35" unicode="-1" pressed="true" autorepeat="true"/> | ||
519 | </map> | ||
520 | <map keycode="Space" pressed="false"> | ||
521 | <event keycode="Space" unicode="32" pressed="false" autorepeat="true"/> | ||
522 | </map> | ||
523 | <map keycode="Cancel" pressed="false"> | ||
524 | <event keycode="Escape" unicode="27" pressed="false"/> | ||
525 | </map> | ||
526 | <map keycode="Tab" pressed="false"> | ||
527 | <event keycode="Tab" unicode="9" pressed="false"/> | ||
528 | </map> | ||
529 | <map keycode="Backspace" pressed="false"> | ||
530 | <event keycode="Backspace" unicode="127" pressed="false"/> | ||
531 | </map> | ||
532 | <map keycode="Enter" pressed="false"> | ||
533 | <event keycode="Return" unicode="13" pressed="false"/> | ||
534 | </map> | ||
535 | <map keycode="Left" pressed="false"> | ||
536 | <event keycode="Left" unicode="-1" pressed="false"/> | ||
537 | </map> | ||
538 | <map keycode="Up" pressed="false"> | ||
539 | <event keycode="Up" unicode="-1" pressed="false"/> | ||
540 | </map> | ||
541 | <map keycode="Right" pressed="false"> | ||
542 | <event keycode="Right" unicode="-1" pressed="false"/> | ||
543 | </map> | ||
544 | <map keycode="Down" pressed="false"> | ||
545 | <event keycode="Down" unicode="-1" pressed="false"/> | ||
546 | </map> | ||
547 | <map keycode="Calendar" pressed="false"> | ||
548 | <event keycode="F9" unicode="-1" pressed="false"/> | ||
549 | </map> | ||
550 | <map keycode="Addressbook" pressed="false"> | ||
551 | <event keycode="F10" unicode="-1" pressed="false"/> | ||
552 | </map> | ||
553 | <map keycode="Menu" pressed="false"> | ||
554 | <event keycode="F11" unicode="-1" pressed="false"/> | ||
555 | </map> | ||
556 | <map keycode="Home" pressed="false"> | ||
557 | <event keycode="F12" unicode="-1" pressed="false"/> | ||
558 | </map> | ||
559 | <map keycode="Mail" pressed="false"> | ||
560 | <event keycode="F13" unicode="-1" pressed="false"/> | ||
561 | </map> | ||
562 | <map keycode="Middle" pressed="false"> | ||
563 | <event keycode="F30" unicode="-1" pressed="false"/> | ||
564 | </map> | ||
565 | <map keycode="OK" pressed="false"> | ||
566 | <event keycode="F33" unicode="-1" pressed="false"/> | ||
567 | </map> | ||
568 | <map keycode="Off" pressed="false"> | ||
569 | <event keycode="F34" unicode="-1" pressed="false"/> | ||
570 | </map> | ||
571 | <map keycode="Light" pressed="false"> | ||
572 | <event keycode="F35" unicode="-1" pressed="false"/> | ||
573 | </map> | ||
574 | </state> | ||
575 | |||
576 | <state name="number"> | ||
577 | <map keycode="Space" pressed="true"> | ||
578 | <event keycode="Space" unicode="32" pressed="true" autorepeat="true"/> | ||
579 | </map> | ||
580 | <map keycode="Apostrophe" pressed="true"> | ||
581 | <event keycode="Apostrophe" unicode="39" pressed="true" autorepeat="true"/> | ||
582 | </map> | ||
583 | <map keycode="Comma" pressed="true"> | ||
584 | <event keycode="Comma" unicode="44" pressed="true" autorepeat="true"/> | ||
585 | </map> | ||
586 | <map keycode="Period" pressed="true"> | ||
587 | <event keycode="Period" unicode="46" pressed="true" autorepeat="true"/> | ||
588 | </map> | ||
589 | <map keycode="A" pressed="true"> | ||
590 | <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/> | ||
591 | </map> | ||
592 | <map keycode="B" pressed="true"> | ||
593 | <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/> | ||
594 | </map> | ||
595 | <map keycode="D" pressed="true"> | ||
596 | <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/> | ||
597 | </map> | ||
598 | <map keycode="E" pressed="true"> | ||
599 | <event keycode="3" unicode="51" pressed="true" autorepeat="true"/> | ||
600 | </map> | ||
601 | <map keycode="F" pressed="true"> | ||
602 | <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/> | ||
603 | </map> | ||
604 | <map keycode="G" pressed="true"> | ||
605 | <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/> | ||
606 | </map> | ||
607 | <map keycode="H" pressed="true"> | ||
608 | <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/> | ||
609 | </map> | ||
610 | <map keycode="I" pressed="true"> | ||
611 | <event keycode="8" unicode="56" pressed="true" autorepeat="true"/> | ||
612 | </map> | ||
613 | <map keycode="J" pressed="true"> | ||
614 | <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/> | ||
615 | </map> | ||
616 | <map keycode="K" pressed="true"> | ||
617 | <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/> | ||
618 | </map> | ||
619 | <map keycode="L" pressed="true"> | ||
620 | <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/> | ||
621 | </map> | ||
622 | <map keycode="M" pressed="true"> | ||
623 | <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/> | ||
624 | </map> | ||
625 | <map keycode="N" pressed="true"> | ||
626 | <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/> | ||
627 | </map> | ||
628 | <map keycode="O" pressed="true"> | ||
629 | <event keycode="9" unicode="57" pressed="true" autorepeat="true"/> | ||
630 | </map> | ||
631 | <map keycode="P" pressed="true"> | ||
632 | <event keycode="0" unicode="48" pressed="true" autorepeat="true"/> | ||
633 | </map> | ||
634 | <map keycode="Q" pressed="true"> | ||
635 | <event keycode="1" unicode="49" pressed="true" autorepeat="true"/> | ||
636 | </map> | ||
637 | <map keycode="R" pressed="true"> | ||
638 | <event keycode="4" unicode="52" pressed="true" autorepeat="true"/> | ||
639 | </map> | ||
640 | <map keycode="S" pressed="true"> | ||
641 | <event keycode="At" unicode="64" pressed="true" autorepeat="true"/> | ||
642 | </map> | ||
643 | <map keycode="T" pressed="true"> | ||
644 | <event keycode="5" unicode="53" pressed="true" autorepeat="true"/> | ||
645 | </map> | ||
646 | <map keycode="U" pressed="true"> | ||
647 | <event keycode="7" unicode="55" pressed="true" autorepeat="true"/> | ||
648 | </map> | ||
649 | <map keycode="W" pressed="true"> | ||
650 | <event keycode="2" unicode="50" pressed="true" autorepeat="true"/> | ||
651 | </map> | ||
652 | <map keycode="Y" pressed="true"> | ||
653 | <event keycode="6" unicode="54" pressed="true" autorepeat="true"/> | ||
654 | </map> | ||
655 | <map keycode="Space" pressed="false"> | ||
656 | <event keycode="Space" unicode="32" pressed="false"/> | ||
657 | </map> | ||
658 | <map keycode="Apostrophe" pressed="false"> | ||
659 | <event keycode="Apostrophe" unicode="39" pressed="false"/> | ||
660 | </map> | ||
661 | <map keycode="Comma" pressed="false"> | ||
662 | <event keycode="Comma" unicode="44" pressed="false"/> | ||
663 | </map> | ||
664 | <map keycode="Period" pressed="false"> | ||
665 | <event keycode="Period" unicode="46" pressed="false"/> | ||
666 | </map> | ||
667 | <map keycode="A" pressed="false"> | ||
668 | <event keycode="Exclam" unicode="33" pressed="false"/> | ||
669 | </map> | ||
670 | <map keycode="B" pressed="false"> | ||
671 | <event keycode="Minus" unicode="45" pressed="false"/> | ||
672 | </map> | ||
673 | <map keycode="D" pressed="false"> | ||
674 | <event keycode="NumberSign" unicode="35" pressed="false"/> | ||
675 | </map> | ||
676 | <map keycode="E" pressed="false"> | ||
677 | <event keycode="3" unicode="51" pressed="false"/> | ||
678 | </map> | ||
679 | <map keycode="F" pressed="false"> | ||
680 | <event keycode="Dollar" unicode="36" pressed="false"/> | ||
681 | </map> | ||
682 | <map keycode="G" pressed="false"> | ||
683 | <event keycode="Percent" unicode="37" pressed="false"/> | ||
684 | </map> | ||
685 | <map keycode="H" pressed="false"> | ||
686 | <event keycode="Underscore" unicode="95" pressed="false"/> | ||
687 | </map> | ||
688 | <map keycode="I" pressed="false"> | ||
689 | <event keycode="8" unicode="56" pressed="false"/> | ||
690 | </map> | ||
691 | <map keycode="J" pressed="false"> | ||
692 | <event keycode="Ampersand" unicode="38" pressed="false"/> | ||
693 | </map> | ||
694 | <map keycode="K" pressed="false"> | ||
695 | <event keycode="Asterisk" unicode="42" pressed="false"/> | ||
696 | </map> | ||
697 | <map keycode="L" pressed="false"> | ||
698 | <event keycode="ParenLeft" unicode="40" pressed="false"/> | ||
699 | </map> | ||
700 | <map keycode="M" pressed="false"> | ||
701 | <event keycode="Equal" unicode="61" pressed="false"/> | ||
702 | </map> | ||
703 | <map keycode="N" pressed="false"> | ||
704 | <event keycode="Plus" unicode="43" pressed="false"/> | ||
705 | </map> | ||
706 | <map keycode="O" pressed="false"> | ||
707 | <event keycode="9" unicode="57" pressed="false"/> | ||
708 | </map> | ||
709 | <map keycode="P" pressed="false"> | ||
710 | <event keycode="0" unicode="48" pressed="false"/> | ||
711 | </map> | ||
712 | <map keycode="Q" pressed="false"> | ||
713 | <event keycode="1" unicode="49" pressed="false"/> | ||
714 | </map> | ||
715 | <map keycode="R" pressed="false"> | ||
716 | <event keycode="4" unicode="52" pressed="false"/> | ||
717 | </map> | ||
718 | <map keycode="S" pressed="false"> | ||
719 | <event keycode="At" unicode="64" pressed="false"/> | ||
720 | </map> | ||
721 | <map keycode="T" pressed="false"> | ||
722 | <event keycode="5" unicode="53" pressed="false"/> | ||
723 | </map> | ||
724 | <map keycode="U" pressed="false"> | ||
725 | <event keycode="7" unicode="55" pressed="false"/> | ||
726 | </map> | ||
727 | <map keycode="W" pressed="false"> | ||
728 | <event keycode="2" unicode="50" pressed="false"/> | ||
729 | </map> | ||
730 | <map keycode="Y" pressed="false"> | ||
731 | <event keycode="6" unicode="54" pressed="false"/> | ||
732 | </map> | ||
733 | </state> | ||
734 | |||
735 | <state name="control"> | ||
736 | <map keycode="Space" pressed="true"> | ||
737 | <event keycode="QuoteLeft" unicode="96" modifiers="Control" pressed="true"/> | ||
738 | </map> | ||
739 | <map keycode="Apostrophe" pressed="true"> | ||
740 | <event keycode="AsciiCircum" unicode="94" modifiers="Control" pressed="true"/> | ||
741 | </map> | ||
742 | <map keycode="Comma" pressed="true"> | ||
743 | <event keycode="BraceLeft" unicode="123" modifiers="Control" pressed="true"/> | ||
744 | </map> | ||
745 | <map keycode="Period" pressed="true"> | ||
746 | <event keycode="BracketRight" unicode="93" modifiers="Control" pressed="true"/> | ||
747 | </map> | ||
748 | <map keycode="A" pressed="true"> | ||
749 | <event keycode="A" unicode="1" modifiers="Control" pressed="true"/> | ||
750 | </map> | ||
751 | <map keycode="B" pressed="true"> | ||
752 | <event keycode="B" unicode="2" modifiers="Control" pressed="true"/> | ||
753 | </map> | ||
754 | <map keycode="C" pressed="true"> | ||
755 | <event keycode="C" unicode="3" modifiers="Control" pressed="true"/> | ||
756 | </map> | ||
757 | <map keycode="D" pressed="true"> | ||
758 | <event keycode="D" unicode="4" modifiers="Control" pressed="true"/> | ||
759 | </map> | ||
760 | <map keycode="E" pressed="true"> | ||
761 | <event keycode="E" unicode="5" modifiers="Control" pressed="true"/> | ||
762 | </map> | ||
763 | <map keycode="F" pressed="true"> | ||
764 | <event keycode="F" unicode="6" modifiers="Control" pressed="true"/> | ||
765 | </map> | ||
766 | <map keycode="G" pressed="true"> | ||
767 | <event keycode="G" unicode="7" modifiers="Control" pressed="true"/> | ||
768 | </map> | ||
769 | <map keycode="H" pressed="true"> | ||
770 | <event keycode="H" unicode="8" modifiers="Control" pressed="true"/> | ||
771 | </map> | ||
772 | <map keycode="I" pressed="true"> | ||
773 | <event keycode="I" unicode="9" modifiers="Control" pressed="true"/> | ||
774 | </map> | ||
775 | <map keycode="J" pressed="true"> | ||
776 | <event keycode="J" unicode="10" modifiers="Control" pressed="true"/> | ||
777 | </map> | ||
778 | <map keycode="K" pressed="true"> | ||
779 | <event keycode="K" unicode="11" modifiers="Control" pressed="true"/> | ||
780 | </map> | ||
781 | <map keycode="L" pressed="true"> | ||
782 | <event keycode="L" unicode="12" modifiers="Control" pressed="true"/> | ||
783 | </map> | ||
784 | <map keycode="M" pressed="true"> | ||
785 | <event keycode="M" unicode="13" modifiers="Control" pressed="true"/> | ||
786 | </map> | ||
787 | <map keycode="N" pressed="true"> | ||
788 | <event keycode="N" unicode="14" modifiers="Control" pressed="true"/> | ||
789 | </map> | ||
790 | <map keycode="O" pressed="true"> | ||
791 | <event keycode="O" unicode="15" modifiers="Control" pressed="true"/> | ||
792 | </map> | ||
793 | <map keycode="P" pressed="true"> | ||
794 | <event keycode="P" unicode="16" modifiers="Control" pressed="true"/> | ||
795 | </map> | ||
796 | <map keycode="Q" pressed="true"> | ||
797 | <event keycode="Q" unicode="17" modifiers="Control" pressed="true"/> | ||
798 | </map> | ||
799 | <map keycode="R" pressed="true"> | ||
800 | <event keycode="R" unicode="18" modifiers="Control" pressed="true"/> | ||
801 | </map> | ||
802 | <map keycode="S" pressed="true"> | ||
803 | <event keycode="S" unicode="19" modifiers="Control" pressed="true"/> | ||
804 | </map> | ||
805 | <map keycode="T" pressed="true"> | ||
806 | <event keycode="T" unicode="20" modifiers="Control" pressed="true"/> | ||
807 | </map> | ||
808 | <map keycode="U" pressed="true"> | ||
809 | <event keycode="U" unicode="21" modifiers="Control" pressed="true"/> | ||
810 | </map> | ||
811 | <map keycode="V" pressed="true"> | ||
812 | <event keycode="V" unicode="22" modifiers="Control" pressed="true"/> | ||
813 | </map> | ||
814 | <map keycode="W" pressed="true"> | ||
815 | <event keycode="W" unicode="23" modifiers="Control" pressed="true"/> | ||
816 | </map> | ||
817 | <map keycode="X" pressed="true"> | ||
818 | <event keycode="X" unicode="24" modifiers="Control" pressed="true"/> | ||
819 | </map> | ||
820 | <map keycode="Y" pressed="true"> | ||
821 | <event keycode="Y" unicode="25" modifiers="Control" pressed="true"/> | ||
822 | </map> | ||
823 | <map keycode="Z" pressed="true"> | ||
824 | <event keycode="Z" unicode="26" modifiers="Control" pressed="true"/> | ||
825 | </map> | ||
826 | <map keycode="Space" pressed="false"> | ||
827 | <event keycode="QuoteLeft" unicode="96" modifiers="Control" pressed="false"/> | ||
828 | </map> | ||
829 | <map keycode="Apostrophe" pressed="false"> | ||
830 | <event keycode="AsciiCircum" unicode="94" modifiers="Control" pressed="false"/> | ||
831 | </map> | ||
832 | <map keycode="Comma" pressed="false"> | ||
833 | <event keycode="BraceLeft" unicode="123" modifiers="Control" pressed="false"/> | ||
834 | </map> | ||
835 | <map keycode="Period" pressed="false"> | ||
836 | <event keycode="BracketRight" unicode="93" modifiers="Control" pressed="false"/> | ||
837 | </map> | ||
838 | <map keycode="A" pressed="false"> | ||
839 | <event keycode="A" unicode="1" modifiers="Control" pressed="false"/> | ||
840 | </map> | ||
841 | <map keycode="B" pressed="false"> | ||
842 | <event keycode="B" unicode="2" modifiers="Control" pressed="false"/> | ||
843 | </map> | ||
844 | <map keycode="C" pressed="false"> | ||
845 | <event keycode="C" unicode="3" modifiers="Control" pressed="false"/> | ||
846 | </map> | ||
847 | <map keycode="D" pressed="false"> | ||
848 | <event keycode="D" unicode="4" modifiers="Control" pressed="false"/> | ||
849 | </map> | ||
850 | <map keycode="E" pressed="false"> | ||
851 | <event keycode="E" unicode="5" modifiers="Control" pressed="false"/> | ||
852 | </map> | ||
853 | <map keycode="F" pressed="false"> | ||
854 | <event keycode="F" unicode="6" modifiers="Control" pressed="false"/> | ||
855 | </map> | ||
856 | <map keycode="G" pressed="false"> | ||
857 | <event keycode="G" unicode="7" modifiers="Control" pressed="false"/> | ||
858 | </map> | ||
859 | <map keycode="H" pressed="false"> | ||
860 | <event keycode="H" unicode="8" modifiers="Control" pressed="false"/> | ||
861 | </map> | ||
862 | <map keycode="I" pressed="false"> | ||
863 | <event keycode="I" unicode="9" modifiers="Control" pressed="false"/> | ||
864 | </map> | ||
865 | <map keycode="J" pressed="false"> | ||
866 | <event keycode="J" unicode="10" modifiers="Control" pressed="false"/> | ||
867 | </map> | ||
868 | <map keycode="K" pressed="false"> | ||
869 | <event keycode="K" unicode="11" modifiers="Control" pressed="false"/> | ||
870 | </map> | ||
871 | <map keycode="L" pressed="false"> | ||
872 | <event keycode="L" unicode="12" modifiers="Control" pressed="false"/> | ||
873 | </map> | ||
874 | <map keycode="M" pressed="false"> | ||
875 | <event keycode="M" unicode="13" modifiers="Control" pressed="false"/> | ||
876 | </map> | ||
877 | <map keycode="N" pressed="false"> | ||
878 | <event keycode="N" unicode="14" modifiers="Control" pressed="false"/> | ||
879 | </map> | ||
880 | <map keycode="O" pressed="false"> | ||
881 | <event keycode="O" unicode="15" modifiers="Control" pressed="false"/> | ||
882 | </map> | ||
883 | <map keycode="P" pressed="false"> | ||
884 | <event keycode="P" unicode="16" modifiers="Control" pressed="false"/> | ||
885 | </map> | ||
886 | <map keycode="Q" pressed="false"> | ||
887 | <event keycode="Q" unicode="17" modifiers="Control" pressed="false"/> | ||
888 | </map> | ||
889 | <map keycode="R" pressed="false"> | ||
890 | <event keycode="R" unicode="18" modifiers="Control" pressed="false"/> | ||
891 | </map> | ||
892 | <map keycode="S" pressed="false"> | ||
893 | <event keycode="S" unicode="19" modifiers="Control" pressed="false"/> | ||
894 | </map> | ||
895 | <map keycode="T" pressed="false"> | ||
896 | <event keycode="T" unicode="20" modifiers="Control" pressed="false"/> | ||
897 | </map> | ||
898 | <map keycode="U" pressed="false"> | ||
899 | <event keycode="U" unicode="21" modifiers="Control" pressed="false"/> | ||
900 | </map> | ||
901 | <map keycode="V" pressed="false"> | ||
902 | <event keycode="V" unicode="22" modifiers="Control" pressed="false"/> | ||
903 | </map> | ||
904 | <map keycode="W" pressed="false"> | ||
905 | <event keycode="W" unicode="23" modifiers="Control" pressed="false"/> | ||
906 | </map> | ||
907 | <map keycode="X" pressed="false"> | ||
908 | <event keycode="X" unicode="24" modifiers="Control" pressed="false"/> | ||
909 | </map> | ||
910 | <map keycode="Y" pressed="false"> | ||
911 | <event keycode="Y" unicode="25" modifiers="Control" pressed="false"/> | ||
912 | </map> | ||
913 | <map keycode="Z" pressed="false"> | ||
914 | <event keycode="Z" unicode="26" modifiers="Control" pressed="false"/> | ||
915 | </map> | ||
916 | </state> | ||
917 | |||
918 | <state name="alt"> | ||
919 | <map keycode="Space" pressed="true"> | ||
920 | <event keycode="Space" unicode="96" modifiers="Alt|Shift" pressed="true"/> | ||
921 | </map> | ||
922 | <map keycode="Apostrophe" pressed="true"> | ||
923 | <event keycode="AsciiCircum" unicode="94" modifiers="Alt|Shift" pressed="true"/> | ||
924 | </map> | ||
925 | <map keycode="Comma" pressed="true"> | ||
926 | <event keycode="BraceLeft" unicode="123" modifiers="Alt|Shift" pressed="true"/> | ||
927 | </map> | ||
928 | <map keycode="Period" pressed="true"> | ||
929 | <event keycode="BracketRight" unicode="93" modifiers="Alt|Shift" pressed="true"/> | ||
930 | </map> | ||
931 | <map keycode="A" pressed="true"> | ||
932 | <event keycode="Exclam" unicode="65" modifiers="Alt|Shift" pressed="true"/> | ||
933 | </map> | ||
934 | <map keycode="B" pressed="true"> | ||
935 | <event keycode="Minus" unicode="66" modifiers="Alt|Shift" pressed="true"/> | ||
936 | </map> | ||
937 | <map keycode="C" pressed="true"> | ||
938 | <event keycode="NumberSign" unicode="67" modifiers="Alt|Shift" pressed="true"/> | ||
939 | </map> | ||
940 | <map keycode="D" pressed="true"> | ||
941 | <event keycode="3" unicode="68" modifiers="Alt|Shift" pressed="true"/> | ||
942 | </map> | ||
943 | <map keycode="E" pressed="true"> | ||
944 | <event keycode="Dollar" unicode="69" modifiers="Alt|Shift" pressed="true"/> | ||
945 | </map> | ||
946 | <map keycode="F" pressed="true"> | ||
947 | <event keycode="Percent" unicode="70" modifiers="Alt|Shift" pressed="true"/> | ||
948 | </map> | ||
949 | <map keycode="G" pressed="true"> | ||
950 | <event keycode="Underscore" unicode="71" modifiers="Alt|Shift" pressed="true"/> | ||
951 | </map> | ||
952 | <map keycode="H" pressed="true"> | ||
953 | <event keycode="8" unicode="72" modifiers="Alt|Shift" pressed="true"/> | ||
954 | </map> | ||
955 | <map keycode="I" pressed="true"> | ||
956 | <event keycode="8" unicode="73" modifiers="Alt|Shift" pressed="true"/> | ||
957 | </map> | ||
958 | <map keycode="J" pressed="true"> | ||
959 | <event keycode="Ampersand" unicode="74" modifiers="Alt|Shift" pressed="true"/> | ||
960 | </map> | ||
961 | <map keycode="K" pressed="true"> | ||
962 | <event keycode="Asterisk" unicode="75" modifiers="Alt|Shift" pressed="true"/> | ||
963 | </map> | ||
964 | <map keycode="L" pressed="true"> | ||
965 | <event keycode="ParenLeft" unicode="76" modifiers="Alt|Shift" pressed="true"/> | ||
966 | </map> | ||
967 | <map keycode="M" pressed="true"> | ||
968 | <event keycode="Equal" unicode="77" modifiers="Alt|Shift" pressed="true"/> | ||
969 | </map> | ||
970 | <map keycode="N" pressed="true"> | ||
971 | <event keycode="Plus" unicode="78" modifiers="Alt|Shift" pressed="true"/> | ||
972 | </map> | ||
973 | <map keycode="O" pressed="true"> | ||
974 | <event keycode="9" unicode="79" modifiers="Alt|Shift" pressed="true"/> | ||
975 | </map> | ||
976 | <map keycode="P" pressed="true"> | ||
977 | <event keycode="0" unicode="80" modifiers="Alt|Shift" pressed="true"/> | ||
978 | </map> | ||
979 | <map keycode="Q" pressed="true"> | ||
980 | <event keycode="1" unicode="81" modifiers="Alt|Shift" pressed="true"/> | ||
981 | </map> | ||
982 | <map keycode="R" pressed="true"> | ||
983 | <event keycode="4" unicode="82" modifiers="Alt|Shift" pressed="true"/> | ||
984 | </map> | ||
985 | <map keycode="S" pressed="true"> | ||
986 | <event keycode="At" unicode="83" modifiers="Alt|Shift" pressed="true"/> | ||
987 | </map> | ||
988 | <map keycode="T" pressed="true"> | ||
989 | <event keycode="5" unicode="84" modifiers="Alt|Shift" pressed="true"/> | ||
990 | </map> | ||
991 | <map keycode="U" pressed="true"> | ||
992 | <event keycode="7" unicode="85" modifiers="Alt|Shift" pressed="true"/> | ||
993 | </map> | ||
994 | <map keycode="V" pressed="true"> | ||
995 | <event keycode="2" unicode="86" modifiers="Alt|Shift" pressed="true"/> | ||
996 | </map> | ||
997 | <map keycode="W" pressed="true"> | ||
998 | <event keycode="6" unicode="87" modifiers="Alt|Shift" pressed="true"/> | ||
999 | </map> | ||
1000 | <map keycode="X" pressed="true"> | ||
1001 | <event keycode="Bar" unicode="88" modifiers="Alt|Shift" pressed="true"/> | ||
1002 | </map> | ||
1003 | <map keycode="Y" pressed="true"> | ||
1004 | <event keycode="AsciiTilde" unicode="89" modifiers="Alt|Shift" pressed="true"/> | ||
1005 | </map> | ||
1006 | <map keycode="Z" pressed="true"> | ||
1007 | <event keycode="Z" unicode="90" modifiers="Alt|Shift" pressed="true"/> | ||
1008 | </map> | ||
1009 | <map keycode="Space" pressed="false"> | ||
1010 | <event keycode="Space" unicode="96" modifiers="Alt|Shift" pressed="false"/> | ||
1011 | </map> | ||
1012 | <map keycode="Apostrophe" pressed="false"> | ||
1013 | <event keycode="AsciiCircum" unicode="94" modifiers="Alt|Shift" pressed="false"/> | ||
1014 | </map> | ||
1015 | <map keycode="Comma" pressed="false"> | ||
1016 | <event keycode="BraceLeft" unicode="123" modifiers="Alt|Shift" pressed="false"/> | ||
1017 | </map> | ||
1018 | <map keycode="Period" pressed="false"> | ||
1019 | <event keycode="BracketRight" unicode="93" modifiers="Alt|Shift" pressed="false"/> | ||
1020 | </map> | ||
1021 | <map keycode="A" pressed="false"> | ||
1022 | <event keycode="Exclam" unicode="65" modifiers="Alt|Shift" pressed="false"/> | ||
1023 | </map> | ||
1024 | <map keycode="B" pressed="false"> | ||
1025 | <event keycode="Minus" unicode="66" modifiers="Alt|Shift" pressed="false"/> | ||
1026 | </map> | ||
1027 | <map keycode="C" pressed="false"> | ||
1028 | <event keycode="NumberSign" unicode="67" modifiers="Alt|Shift" pressed="false"/> | ||
1029 | </map> | ||
1030 | <map keycode="D" pressed="false"> | ||
1031 | <event keycode="3" unicode="68" modifiers="Alt|Shift" pressed="false"/> | ||
1032 | </map> | ||
1033 | <map keycode="E" pressed="false"> | ||
1034 | <event keycode="Dollar" unicode="69" modifiers="Alt|Shift" pressed="false"/> | ||
1035 | </map> | ||
1036 | <map keycode="F" pressed="false"> | ||
1037 | <event keycode="Percent" unicode="70" modifiers="Alt|Shift" pressed="false"/> | ||
1038 | </map> | ||
1039 | <map keycode="G" pressed="false"> | ||
1040 | <event keycode="Underscore" unicode="71" modifiers="Alt|Shift" pressed="false"/> | ||
1041 | </map> | ||
1042 | <map keycode="H" pressed="false"> | ||
1043 | <event keycode="8" unicode="72" modifiers="Alt|Shift" pressed="false"/> | ||
1044 | </map> | ||
1045 | <map keycode="I" pressed="false"> | ||
1046 | <event keycode="8" unicode="73" modifiers="Alt|Shift" pressed="false"/> | ||
1047 | </map> | ||
1048 | <map keycode="J" pressed="false"> | ||
1049 | <event keycode="Ampersand" unicode="74" modifiers="Alt|Shift" pressed="false"/> | ||
1050 | </map> | ||
1051 | <map keycode="K" pressed="false"> | ||
1052 | <event keycode="Asterisk" unicode="75" modifiers="Alt|Shift" pressed="false"/> | ||
1053 | </map> | ||
1054 | <map keycode="L" pressed="false"> | ||
1055 | <event keycode="ParenLeft" unicode="76" modifiers="Alt|Shift" pressed="false"/> | ||
1056 | </map> | ||
1057 | <map keycode="M" pressed="false"> | ||
1058 | <event keycode="Equal" unicode="77" modifiers="Alt|Shift" pressed="false"/> | ||
1059 | </map> | ||
1060 | <map keycode="N" pressed="false"> | ||
1061 | <event keycode="Plus" unicode="78" modifiers="Alt|Shift" pressed="false"/> | ||
1062 | </map> | ||
1063 | <map keycode="O" pressed="false"> | ||
1064 | <event keycode="9" unicode="79" modifiers="Alt|Shift" pressed="false"/> | ||
1065 | </map> | ||
1066 | <map keycode="P" pressed="false"> | ||
1067 | <event keycode="0" unicode="80" modifiers="Alt|Shift" pressed="false"/> | ||
1068 | </map> | ||
1069 | <map keycode="Q" pressed="false"> | ||
1070 | <event keycode="1" unicode="81" modifiers="Alt|Shift" pressed="false"/> | ||
1071 | </map> | ||
1072 | <map keycode="R" pressed="false"> | ||
1073 | <event keycode="4" unicode="82" modifiers="Alt|Shift" pressed="false"/> | ||
1074 | </map> | ||
1075 | <map keycode="S" pressed="false"> | ||
1076 | <event keycode="At" unicode="83" modifiers="Alt|Shift" pressed="false"/> | ||
1077 | </map> | ||
1078 | <map keycode="T" pressed="false"> | ||
1079 | <event keycode="5" unicode="84" modifiers="Alt|Shift" pressed="false"/> | ||
1080 | </map> | ||
1081 | <map keycode="U" pressed="false"> | ||
1082 | <event keycode="7" unicode="85" modifiers="Alt|Shift" pressed="false"/> | ||
1083 | </map> | ||
1084 | <map keycode="V" pressed="false"> | ||
1085 | <event keycode="2" unicode="86" modifiers="Alt|Shift" pressed="false"/> | ||
1086 | </map> | ||
1087 | <map keycode="W" pressed="false"> | ||
1088 | <event keycode="6" unicode="87" modifiers="Alt|Shift" pressed="false"/> | ||
1089 | </map> | ||
1090 | <map keycode="X" pressed="false"> | ||
1091 | <event keycode="Bar" unicode="88" modifiers="Alt|Shift" pressed="false"/> | ||
1092 | </map> | ||
1093 | <map keycode="Y" pressed="false"> | ||
1094 | <event keycode="AsciiTilde" unicode="89" modifiers="Alt|Shift" pressed="false"/> | ||
1095 | </map> | ||
1096 | <map keycode="Z" pressed="false"> | ||
1097 | <event keycode="Z" unicode="90" modifiers="Alt|Shift" pressed="false"/> | ||
1098 | </map> | ||
1099 | </state> | ||
1100 | |||
1101 | <state name="iFn"> | ||
1102 | <map keycode="Space" pressed="true"> | ||
1103 | <event keycode="Bar" unicode="124" pressed="true" autorepeat="true"/> | ||
1104 | <next-state name="Fn"/> | ||
1105 | </map> | ||
1106 | <map keycode="Apostrophe" pressed="true"> | ||
1107 | <event keycode="AsciiTilde" unicode="126" pressed="true" autorepeat="true"/> | ||
1108 | <next-state name="Fn"/> | ||
1109 | </map> | ||
1110 | <map keycode="Comma" pressed="true"> | ||
1111 | <event keycode="ParenRight" unicode="41" pressed="true" autorepeat="true"/> | ||
1112 | <next-state name="Fn"/> | ||
1113 | </map> | ||
1114 | <map keycode="Period" pressed="true"> | ||
1115 | <event keycode="Less" unicode="60" pressed="true" autorepeat="true"/> | ||
1116 | <next-state name="Fn"/> | ||
1117 | </map> | ||
1118 | <map keycode="Slash" pressed="true"> | ||
1119 | <event keycode="NumLock" unicode="-1" pressed="true"/> | ||
1120 | <next-state name="Fn-Num"/> | ||
1121 | </map> | ||
1122 | <map keycode="A" pressed="true"> | ||
1123 | <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/> | ||
1124 | <next-state name="Fn"/> | ||
1125 | </map> | ||
1126 | <map keycode="B" pressed="true"> | ||
1127 | <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/> | ||
1128 | <next-state name="Fn"/> | ||
1129 | </map> | ||
1130 | <map keycode="C" pressed="true"> | ||
1131 | <event keycode="C" unicode="3" modifiers="Control" pressed="true"/> | ||
1132 | <next-state name="Fn"/> | ||
1133 | </map> | ||
1134 | <map keycode="D" pressed="true"> | ||
1135 | <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/> | ||
1136 | <next-state name="Fn"/> | ||
1137 | </map> | ||
1138 | <map keycode="E" pressed="true"> | ||
1139 | <event keycode="3" unicode="51" pressed="true" autorepeat="true"/> | ||
1140 | <next-state name="Fn"/> | ||
1141 | </map> | ||
1142 | <map keycode="F" pressed="true"> | ||
1143 | <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/> | ||
1144 | <next-state name="Fn"/> | ||
1145 | </map> | ||
1146 | <map keycode="G" pressed="true"> | ||
1147 | <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/> | ||
1148 | <next-state name="Fn"/> | ||
1149 | </map> | ||
1150 | <map keycode="H" pressed="true"> | ||
1151 | <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/> | ||
1152 | <next-state name="Fn"/> | ||
1153 | </map> | ||
1154 | <map keycode="I" pressed="true"> | ||
1155 | <event keycode="8" unicode="56" pressed="true" autorepeat="true"/> | ||
1156 | <next-state name="Fn"/> | ||
1157 | </map> | ||
1158 | <map keycode="J" pressed="true"> | ||
1159 | <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/> | ||
1160 | <next-state name="Fn"/> | ||
1161 | </map> | ||
1162 | <map keycode="K" pressed="true"> | ||
1163 | <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/> | ||
1164 | <next-state name="Fn"/> | ||
1165 | </map> | ||
1166 | <map keycode="L" pressed="true"> | ||
1167 | <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/> | ||
1168 | <next-state name="Fn"/> | ||
1169 | </map> | ||
1170 | <map keycode="M" pressed="true"> | ||
1171 | <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/> | ||
1172 | <next-state name="Fn"/> | ||
1173 | </map> | ||
1174 | <map keycode="N" pressed="true"> | ||
1175 | <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/> | ||
1176 | <next-state name="Fn"/> | ||
1177 | </map> | ||
1178 | <map keycode="O" pressed="true"> | ||
1179 | <event keycode="9" unicode="57" pressed="true" autorepeat="true"/> | ||
1180 | <next-state name="Fn"/> | ||
1181 | </map> | ||
1182 | <map keycode="P" pressed="true"> | ||
1183 | <event keycode="0" unicode="48" pressed="true" autorepeat="true"/> | ||
1184 | <next-state name="Fn"/> | ||
1185 | </map> | ||
1186 | <map keycode="Q" pressed="true"> | ||
1187 | <event keycode="1" unicode="49" pressed="true" autorepeat="true"/> | ||
1188 | <next-state name="Fn"/> | ||
1189 | </map> | ||
1190 | <map keycode="R" pressed="true"> | ||
1191 | <event keycode="4" unicode="52" pressed="true" autorepeat="true"/> | ||
1192 | <next-state name="Fn"/> | ||
1193 | </map> | ||
1194 | <map keycode="S" pressed="true"> | ||
1195 | <event keycode="At" unicode="64" pressed="true" autorepeat="true"/> | ||
1196 | <next-state name="Fn"/> | ||
1197 | </map> | ||
1198 | <map keycode="T" pressed="true"> | ||
1199 | <event keycode="5" unicode="53" pressed="true" autorepeat="true"/> | ||
1200 | <next-state name="Fn"/> | ||
1201 | </map> | ||
1202 | <map keycode="U" pressed="true"> | ||
1203 | <event keycode="7" unicode="55" pressed="true" autorepeat="true"/> | ||
1204 | <next-state name="Fn"/> | ||
1205 | </map> | ||
1206 | <map keycode="V" pressed="true"> | ||
1207 | <event keycode="V" unicode="22" modifiers="Control" pressed="true"/> | ||
1208 | <next-state name="Fn"/> | ||
1209 | </map> | ||
1210 | <map keycode="W" pressed="true"> | ||
1211 | <event keycode="2" unicode="50" pressed="true" autorepeat="true"/> | ||
1212 | <next-state name="Fn"/> | ||
1213 | </map> | ||
1214 | <map keycode="X" pressed="true"> | ||
1215 | <event keycode="X" unicode="24" modifiers="Control" pressed="true"/> | ||
1216 | <next-state name="Fn"/> | ||
1217 | </map> | ||
1218 | <map keycode="Y" pressed="true"> | ||
1219 | <event keycode="6" unicode="54" pressed="true" autorepeat="true"/> | ||
1220 | <next-state name="Fn"/> | ||
1221 | </map> | ||
1222 | <map keycode="Tab" pressed="true"> | ||
1223 | <event keycode="CapsLock" unicode="-1" pressed="true"/> | ||
1224 | <next-state name="Fn-Caps"/> | ||
1225 | </map> | ||
1226 | <map keycode="Left Shift" pressed="true"> | ||
1227 | <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/> | ||
1228 | <next-state name="LShift-Fn"/> | ||
1229 | </map> | ||
1230 | <map keycode="Right Shift" pressed="true"> | ||
1231 | <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
1232 | <next-state name="RShift-Fn"/> | ||
1233 | </map> | ||
1234 | <map keycode="Space" pressed="false"> | ||
1235 | <event keycode="Bar" unicode="124" pressed="false"/> | ||
1236 | <next-state name="Fn"/> | ||
1237 | </map> | ||
1238 | <map keycode="Apostrophe" pressed="false"> | ||
1239 | <event keycode="AsciiTilde" unicode="126" pressed="false"/> | ||
1240 | <next-state name="Fn"/> | ||
1241 | </map> | ||
1242 | <map keycode="Comma" pressed="false"> | ||
1243 | <event keycode="ParenRight" unicode="41" pressed="false"/> | ||
1244 | <next-state name="Fn"/> | ||
1245 | </map> | ||
1246 | <map keycode="Period" pressed="false"> | ||
1247 | <event keycode="Less" unicode="60" pressed="false"/> | ||
1248 | <next-state name="Fn"/> | ||
1249 | </map> | ||
1250 | <map keycode="A" pressed="false"> | ||
1251 | <event keycode="Exclam" unicode="33" pressed="false"/> | ||
1252 | <next-state name="Fn"/> | ||
1253 | </map> | ||
1254 | <map keycode="B" pressed="false"> | ||
1255 | <event keycode="Minus" unicode="45" pressed="false"/> | ||
1256 | <next-state name="Fn"/> | ||
1257 | </map> | ||
1258 | <map keycode="C" pressed="false"> | ||
1259 | <event keycode="C" unicode="3" modifiers="Control" pressed="false"/> | ||
1260 | <next-state name="Fn"/> | ||
1261 | </map> | ||
1262 | <map keycode="D" pressed="false"> | ||
1263 | <event keycode="NumberSign" unicode="35" pressed="false"/> | ||
1264 | <next-state name="Fn"/> | ||
1265 | </map> | ||
1266 | <map keycode="E" pressed="false"> | ||
1267 | <event keycode="3" unicode="51" pressed="false"/> | ||
1268 | <next-state name="Fn"/> | ||
1269 | </map> | ||
1270 | <map keycode="F" pressed="false"> | ||
1271 | <event keycode="Dollar" unicode="36" pressed="false"/> | ||
1272 | <next-state name="Fn"/> | ||
1273 | </map> | ||
1274 | <map keycode="G" pressed="false"> | ||
1275 | <event keycode="Percent" unicode="37" pressed="false"/> | ||
1276 | <next-state name="Fn"/> | ||
1277 | </map> | ||
1278 | <map keycode="H" pressed="false"> | ||
1279 | <event keycode="Underscore" unicode="95" pressed="false"/> | ||
1280 | <next-state name="Fn"/> | ||
1281 | </map> | ||
1282 | <map keycode="I" pressed="false"> | ||
1283 | <event keycode="8" unicode="56" pressed="false"/> | ||
1284 | <next-state name="Fn"/> | ||
1285 | </map> | ||
1286 | <map keycode="J" pressed="false"> | ||
1287 | <event keycode="Ampersand" unicode="38" pressed="false"/> | ||
1288 | <next-state name="Fn"/> | ||
1289 | </map> | ||
1290 | <map keycode="K" pressed="false"> | ||
1291 | <event keycode="Asterisk" unicode="42" pressed="false"/> | ||
1292 | <next-state name="Fn"/> | ||
1293 | </map> | ||
1294 | <map keycode="L" pressed="false"> | ||
1295 | <event keycode="ParenLeft" unicode="40" pressed="false"/> | ||
1296 | <next-state name="Fn"/> | ||
1297 | </map> | ||
1298 | <map keycode="M" pressed="false"> | ||
1299 | <event keycode="Equal" unicode="61" pressed="false"/> | ||
1300 | <next-state name="Fn"/> | ||
1301 | </map> | ||
1302 | <map keycode="N" pressed="false"> | ||
1303 | <event keycode="Plus" unicode="43" pressed="false"/> | ||
1304 | <next-state name="Fn"/> | ||
1305 | </map> | ||
1306 | <map keycode="O" pressed="false"> | ||
1307 | <event keycode="9" unicode="57" pressed="false"/> | ||
1308 | <next-state name="Fn"/> | ||
1309 | </map> | ||
1310 | <map keycode="P" pressed="false"> | ||
1311 | <event keycode="0" unicode="48" pressed="false"/> | ||
1312 | <next-state name="Fn"/> | ||
1313 | </map> | ||
1314 | <map keycode="Q" pressed="false"> | ||
1315 | <event keycode="1" unicode="49" pressed="false"/> | ||
1316 | <next-state name="Fn"/> | ||
1317 | </map> | ||
1318 | <map keycode="R" pressed="false"> | ||
1319 | <event keycode="4" unicode="52" pressed="false"/> | ||
1320 | <next-state name="Fn"/> | ||
1321 | </map> | ||
1322 | <map keycode="S" pressed="false"> | ||
1323 | <event keycode="At" unicode="64" pressed="false"/> | ||
1324 | <next-state name="Fn"/> | ||
1325 | </map> | ||
1326 | <map keycode="T" pressed="false"> | ||
1327 | <event keycode="5" unicode="53" pressed="false"/> | ||
1328 | <next-state name="Fn"/> | ||
1329 | </map> | ||
1330 | <map keycode="U" pressed="false"> | ||
1331 | <event keycode="7" unicode="55" pressed="false"/> | ||
1332 | <next-state name="Fn"/> | ||
1333 | </map> | ||
1334 | <map keycode="V" pressed="false"> | ||
1335 | <event keycode="V" unicode="22" modifiers="Control" pressed="false"/> | ||
1336 | <next-state name="Fn"/> | ||
1337 | </map> | ||
1338 | <map keycode="W" pressed="false"> | ||
1339 | <event keycode="2" unicode="50" pressed="false"/> | ||
1340 | <next-state name="Fn"/> | ||
1341 | </map> | ||
1342 | <map keycode="X" pressed="false"> | ||
1343 | <event keycode="X" unicode="24" modifiers="Control" pressed="false"/> | ||
1344 | <next-state name="Fn"/> | ||
1345 | </map> | ||
1346 | <map keycode="Y" pressed="false"> | ||
1347 | <event keycode="6" unicode="54" pressed="false"/> | ||
1348 | <next-state name="Fn"/> | ||
1349 | </map> | ||
1350 | <map keycode="Fn" pressed="false"> | ||
1351 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
1352 | <next-state name="sFn"/> | ||
1353 | </map> | ||
1354 | </state> | ||
1355 | |||
1356 | <state name="sFn"> | ||
1357 | <map keycode="Space" pressed="true"> | ||
1358 | <event keycode="Bar" unicode="124" pressed="true" autorepeat="true"/> | ||
1359 | <next-state name="Normal"/> | ||
1360 | </map> | ||
1361 | <map keycode="Apostrophe" pressed="true"> | ||
1362 | <event keycode="AsciiTilde" unicode="126" pressed="true" autorepeat="true"/> | ||
1363 | <next-state name="Normal"/> | ||
1364 | </map> | ||
1365 | <map keycode="Comma" pressed="true"> | ||
1366 | <event keycode="ParenRight" unicode="41" pressed="true" autorepeat="true"/> | ||
1367 | <next-state name="Normal"/> | ||
1368 | </map> | ||
1369 | <map keycode="Period" pressed="true"> | ||
1370 | <event keycode="Less" unicode="60" pressed="true" autorepeat="true"/> | ||
1371 | <next-state name="Normal"/> | ||
1372 | </map> | ||
1373 | <map keycode="Slash" pressed="true"> | ||
1374 | <event keycode="NumLock" unicode="-1" pressed="true"/> | ||
1375 | <next-state name="Num"/> | ||
1376 | </map> | ||
1377 | <map keycode="A" pressed="true"> | ||
1378 | <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/> | ||
1379 | <next-state name="Normal"/> | ||
1380 | </map> | ||
1381 | <map keycode="B" pressed="true"> | ||
1382 | <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/> | ||
1383 | <next-state name="Normal"/> | ||
1384 | </map> | ||
1385 | <map keycode="C" pressed="true"> | ||
1386 | <event keycode="C" unicode="3" modifiers="Control" pressed="true"/> | ||
1387 | <next-state name="Normal"/> | ||
1388 | </map> | ||
1389 | <map keycode="D" pressed="true"> | ||
1390 | <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/> | ||
1391 | <next-state name="Normal"/> | ||
1392 | </map> | ||
1393 | <map keycode="E" pressed="true"> | ||
1394 | <event keycode="3" unicode="51" pressed="true" autorepeat="true"/> | ||
1395 | <next-state name="Normal"/> | ||
1396 | </map> | ||
1397 | <map keycode="F" pressed="true"> | ||
1398 | <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/> | ||
1399 | <next-state name="Normal"/> | ||
1400 | </map> | ||
1401 | <map keycode="G" pressed="true"> | ||
1402 | <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/> | ||
1403 | <next-state name="Normal"/> | ||
1404 | </map> | ||
1405 | <map keycode="H" pressed="true"> | ||
1406 | <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/> | ||
1407 | <next-state name="Normal"/> | ||
1408 | </map> | ||
1409 | <map keycode="I" pressed="true"> | ||
1410 | <event keycode="8" unicode="56" pressed="true" autorepeat="true"/> | ||
1411 | <next-state name="Normal"/> | ||
1412 | </map> | ||
1413 | <map keycode="J" pressed="true"> | ||
1414 | <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/> | ||
1415 | <next-state name="Normal"/> | ||
1416 | </map> | ||
1417 | <map keycode="K" pressed="true"> | ||
1418 | <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/> | ||
1419 | <next-state name="Normal"/> | ||
1420 | </map> | ||
1421 | <map keycode="L" pressed="true"> | ||
1422 | <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/> | ||
1423 | <next-state name="Normal"/> | ||
1424 | </map> | ||
1425 | <map keycode="M" pressed="true"> | ||
1426 | <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/> | ||
1427 | <next-state name="Normal"/> | ||
1428 | </map> | ||
1429 | <map keycode="N" pressed="true"> | ||
1430 | <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/> | ||
1431 | <next-state name="Normal"/> | ||
1432 | </map> | ||
1433 | <map keycode="O" pressed="true"> | ||
1434 | <event keycode="9" unicode="57" pressed="true" autorepeat="true"/> | ||
1435 | <next-state name="Normal"/> | ||
1436 | </map> | ||
1437 | <map keycode="P" pressed="true"> | ||
1438 | <event keycode="0" unicode="48" pressed="true" autorepeat="true"/> | ||
1439 | <next-state name="Normal"/> | ||
1440 | </map> | ||
1441 | <map keycode="Q" pressed="true"> | ||
1442 | <event keycode="1" unicode="49" pressed="true" autorepeat="true"/> | ||
1443 | <next-state name="Normal"/> | ||
1444 | </map> | ||
1445 | <map keycode="R" pressed="true"> | ||
1446 | <event keycode="4" unicode="52" pressed="true" autorepeat="true"/> | ||
1447 | <next-state name="Normal"/> | ||
1448 | </map> | ||
1449 | <map keycode="S" pressed="true"> | ||
1450 | <event keycode="At" unicode="64" pressed="true" autorepeat="true"/> | ||
1451 | <next-state name="Normal"/> | ||
1452 | </map> | ||
1453 | <map keycode="T" pressed="true"> | ||
1454 | <event keycode="5" unicode="53" pressed="true" autorepeat="true"/> | ||
1455 | <next-state name="Normal"/> | ||
1456 | </map> | ||
1457 | <map keycode="U" pressed="true"> | ||
1458 | <event keycode="7" unicode="55" pressed="true" autorepeat="true"/> | ||
1459 | <next-state name="Normal"/> | ||
1460 | </map> | ||
1461 | <map keycode="V" pressed="true"> | ||
1462 | <event keycode="V" unicode="22" modifiers="Control" pressed="true"/> | ||
1463 | <next-state name="Normal"/> | ||
1464 | </map> | ||
1465 | <map keycode="W" pressed="true"> | ||
1466 | <event keycode="2" unicode="50" pressed="true" autorepeat="true"/> | ||
1467 | <next-state name="Normal"/> | ||
1468 | </map> | ||
1469 | <map keycode="X" pressed="true"> | ||
1470 | <event keycode="X" unicode="24" modifiers="Control" pressed="true"/> | ||
1471 | <next-state name="Normal"/> | ||
1472 | </map> | ||
1473 | <map keycode="Y" pressed="true"> | ||
1474 | <event keycode="6" unicode="54" pressed="true" autorepeat="true"/> | ||
1475 | <next-state name="Normal"/> | ||
1476 | </map> | ||
1477 | <map keycode="Tab" pressed="true"> | ||
1478 | <event keycode="CapsLock" unicode="-1" pressed="true"/> | ||
1479 | <next-state name="Caps"/> | ||
1480 | </map> | ||
1481 | <map keycode="Left Shift" pressed="true"> | ||
1482 | <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/> | ||
1483 | <next-state name="LShift"/> | ||
1484 | </map> | ||
1485 | <map keycode="Right Shift" pressed="true"> | ||
1486 | <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
1487 | <next-state name="RShift"/> | ||
1488 | </map> | ||
1489 | <map keycode="Space" pressed="false"> | ||
1490 | <event keycode="Bar" unicode="124" pressed="false"/> | ||
1491 | <next-state name="Normal"/> | ||
1492 | </map> | ||
1493 | <map keycode="Apostrophe" pressed="false"> | ||
1494 | <event keycode="AsciiTilde" unicode="126" pressed="false"/> | ||
1495 | <next-state name="Normal"/> | ||
1496 | </map> | ||
1497 | <map keycode="Comma" pressed="false"> | ||
1498 | <event keycode="ParenRight" unicode="41" pressed="false"/> | ||
1499 | <next-state name="Normal"/> | ||
1500 | </map> | ||
1501 | <map keycode="Period" pressed="false"> | ||
1502 | <event keycode="Less" unicode="60" pressed="false"/> | ||
1503 | <next-state name="Normal"/> | ||
1504 | </map> | ||
1505 | <map keycode="A" pressed="false"> | ||
1506 | <event keycode="Exclam" unicode="33" pressed="false"/> | ||
1507 | <next-state name="Normal"/> | ||
1508 | </map> | ||
1509 | <map keycode="B" pressed="false"> | ||
1510 | <event keycode="Minus" unicode="45" pressed="false"/> | ||
1511 | <next-state name="Normal"/> | ||
1512 | </map> | ||
1513 | <map keycode="C" pressed="false"> | ||
1514 | <event keycode="C" unicode="3" modifiers="Control" pressed="false"/> | ||
1515 | <next-state name="Normal"/> | ||
1516 | </map> | ||
1517 | <map keycode="D" pressed="false"> | ||
1518 | <event keycode="NumberSign" unicode="35" pressed="false"/> | ||
1519 | <next-state name="Normal"/> | ||
1520 | </map> | ||
1521 | <map keycode="E" pressed="false"> | ||
1522 | <event keycode="3" unicode="51" pressed="false"/> | ||
1523 | <next-state name="Normal"/> | ||
1524 | </map> | ||
1525 | <map keycode="F" pressed="false"> | ||
1526 | <event keycode="Dollar" unicode="36" pressed="false"/> | ||
1527 | <next-state name="Normal"/> | ||
1528 | </map> | ||
1529 | <map keycode="G" pressed="false"> | ||
1530 | <event keycode="Percent" unicode="37" pressed="false"/> | ||
1531 | <next-state name="Normal"/> | ||
1532 | </map> | ||
1533 | <map keycode="H" pressed="false"> | ||
1534 | <event keycode="Underscore" unicode="95" pressed="false"/> | ||
1535 | <next-state name="Normal"/> | ||
1536 | </map> | ||
1537 | <map keycode="I" pressed="false"> | ||
1538 | <event keycode="8" unicode="56" pressed="false"/> | ||
1539 | <next-state name="Normal"/> | ||
1540 | </map> | ||
1541 | <map keycode="J" pressed="false"> | ||
1542 | <event keycode="Ampersand" unicode="38" pressed="false"/> | ||
1543 | <next-state name="Normal"/> | ||
1544 | </map> | ||
1545 | <map keycode="K" pressed="false"> | ||
1546 | <event keycode="Asterisk" unicode="42" pressed="false"/> | ||
1547 | <next-state name="Normal"/> | ||
1548 | </map> | ||
1549 | <map keycode="L" pressed="false"> | ||
1550 | <event keycode="ParenLeft" unicode="40" pressed="false"/> | ||
1551 | <next-state name="Normal"/> | ||
1552 | </map> | ||
1553 | <map keycode="M" pressed="false"> | ||
1554 | <event keycode="Equal" unicode="61" pressed="false"/> | ||
1555 | <next-state name="Normal"/> | ||
1556 | </map> | ||
1557 | <map keycode="N" pressed="false"> | ||
1558 | <event keycode="Plus" unicode="43" pressed="false"/> | ||
1559 | <next-state name="Normal"/> | ||
1560 | </map> | ||
1561 | <map keycode="O" pressed="false"> | ||
1562 | <event keycode="9" unicode="57" pressed="false"/> | ||
1563 | <next-state name="Normal"/> | ||
1564 | </map> | ||
1565 | <map keycode="P" pressed="false"> | ||
1566 | <event keycode="0" unicode="48" pressed="false"/> | ||
1567 | <next-state name="Normal"/> | ||
1568 | </map> | ||
1569 | <map keycode="Q" pressed="false"> | ||
1570 | <event keycode="1" unicode="49" pressed="false"/> | ||
1571 | <next-state name="Normal"/> | ||
1572 | </map> | ||
1573 | <map keycode="R" pressed="false"> | ||
1574 | <event keycode="4" unicode="52" pressed="false"/> | ||
1575 | <next-state name="Normal"/> | ||
1576 | </map> | ||
1577 | <map keycode="S" pressed="false"> | ||
1578 | <event keycode="At" unicode="64" pressed="false"/> | ||
1579 | <next-state name="Normal"/> | ||
1580 | </map> | ||
1581 | <map keycode="T" pressed="false"> | ||
1582 | <event keycode="5" unicode="53" pressed="false"/> | ||
1583 | <next-state name="Normal"/> | ||
1584 | </map> | ||
1585 | <map keycode="U" pressed="false"> | ||
1586 | <event keycode="7" unicode="55" pressed="false"/> | ||
1587 | <next-state name="Normal"/> | ||
1588 | </map> | ||
1589 | <map keycode="V" pressed="false"> | ||
1590 | <event keycode="V" unicode="22" modifiers="Control" pressed="false"/> | ||
1591 | <next-state name="Normal"/> | ||
1592 | </map> | ||
1593 | <map keycode="W" pressed="false"> | ||
1594 | <event keycode="2" unicode="50" pressed="false"/> | ||
1595 | <next-state name="Normal"/> | ||
1596 | </map> | ||
1597 | <map keycode="X" pressed="false"> | ||
1598 | <event keycode="X" unicode="24" modifiers="Control" pressed="false"/> | ||
1599 | <next-state name="Normal"/> | ||
1600 | </map> | ||
1601 | <map keycode="Y" pressed="false"> | ||
1602 | <event keycode="6" unicode="54" pressed="false"/> | ||
1603 | <next-state name="Normal"/> | ||
1604 | </map> | ||
1605 | <map keycode="Fn" pressed="false"> | ||
1606 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
1607 | <next-state name="iFn"/> | ||
1608 | </map> | ||
1609 | </state> | ||
1610 | |||
1611 | <state name="Caps-iFn"> | ||
1612 | <map keycode="Space" pressed="true"> | ||
1613 | <event keycode="Bar" unicode="124" pressed="true" autorepeat="true"/> | ||
1614 | <next-state name="Fn-Caps"/> | ||
1615 | </map> | ||
1616 | <map keycode="Apostrophe" pressed="true"> | ||
1617 | <event keycode="AsciiTilde" unicode="126" pressed="true" autorepeat="true"/> | ||
1618 | <next-state name="Fn-Caps"/> | ||
1619 | </map> | ||
1620 | <map keycode="Comma" pressed="true"> | ||
1621 | <event keycode="ParenRight" unicode="41" pressed="true" autorepeat="true"/> | ||
1622 | <next-state name="Fn-Caps"/> | ||
1623 | </map> | ||
1624 | <map keycode="Period" pressed="true"> | ||
1625 | <event keycode="Less" unicode="60" pressed="true" autorepeat="true"/> | ||
1626 | <next-state name="Fn-Caps"/> | ||
1627 | </map> | ||
1628 | <map keycode="Slash" pressed="true"> | ||
1629 | <event keycode="NumLock" unicode="-1" pressed="true"/> | ||
1630 | <next-state name="Fn-Num"/> | ||
1631 | </map> | ||
1632 | <map keycode="A" pressed="true"> | ||
1633 | <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/> | ||
1634 | <next-state name="Fn-Caps"/> | ||
1635 | </map> | ||
1636 | <map keycode="B" pressed="true"> | ||
1637 | <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/> | ||
1638 | <next-state name="Fn-Caps"/> | ||
1639 | </map> | ||
1640 | <map keycode="C" pressed="true"> | ||
1641 | <event keycode="C" unicode="3" modifiers="Control" pressed="true"/> | ||
1642 | <next-state name="Fn-Caps"/> | ||
1643 | </map> | ||
1644 | <map keycode="D" pressed="true"> | ||
1645 | <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/> | ||
1646 | <next-state name="Fn-Caps"/> | ||
1647 | </map> | ||
1648 | <map keycode="E" pressed="true"> | ||
1649 | <event keycode="3" unicode="51" pressed="true" autorepeat="true"/> | ||
1650 | <next-state name="Fn-Caps"/> | ||
1651 | </map> | ||
1652 | <map keycode="F" pressed="true"> | ||
1653 | <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/> | ||
1654 | <next-state name="Fn-Caps"/> | ||
1655 | </map> | ||
1656 | <map keycode="G" pressed="true"> | ||
1657 | <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/> | ||
1658 | <next-state name="Fn-Caps"/> | ||
1659 | </map> | ||
1660 | <map keycode="H" pressed="true"> | ||
1661 | <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/> | ||
1662 | <next-state name="Fn-Caps"/> | ||
1663 | </map> | ||
1664 | <map keycode="I" pressed="true"> | ||
1665 | <event keycode="8" unicode="56" pressed="true" autorepeat="true"/> | ||
1666 | <next-state name="Fn-Caps"/> | ||
1667 | </map> | ||
1668 | <map keycode="J" pressed="true"> | ||
1669 | <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/> | ||
1670 | <next-state name="Fn-Caps"/> | ||
1671 | </map> | ||
1672 | <map keycode="K" pressed="true"> | ||
1673 | <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/> | ||
1674 | <next-state name="Fn-Caps"/> | ||
1675 | </map> | ||
1676 | <map keycode="L" pressed="true"> | ||
1677 | <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/> | ||
1678 | <next-state name="Fn-Caps"/> | ||
1679 | </map> | ||
1680 | <map keycode="M" pressed="true"> | ||
1681 | <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/> | ||
1682 | <next-state name="Fn-Caps"/> | ||
1683 | </map> | ||
1684 | <map keycode="N" pressed="true"> | ||
1685 | <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/> | ||
1686 | <next-state name="Fn-Caps"/> | ||
1687 | </map> | ||
1688 | <map keycode="O" pressed="true"> | ||
1689 | <event keycode="9" unicode="57" pressed="true" autorepeat="true"/> | ||
1690 | <next-state name="Fn-Caps"/> | ||
1691 | </map> | ||
1692 | <map keycode="P" pressed="true"> | ||
1693 | <event keycode="0" unicode="48" pressed="true" autorepeat="true"/> | ||
1694 | <next-state name="Fn-Caps"/> | ||
1695 | </map> | ||
1696 | <map keycode="Q" pressed="true"> | ||
1697 | <event keycode="1" unicode="49" pressed="true" autorepeat="true"/> | ||
1698 | <next-state name="Fn-Caps"/> | ||
1699 | </map> | ||
1700 | <map keycode="R" pressed="true"> | ||
1701 | <event keycode="4" unicode="52" pressed="true" autorepeat="true"/> | ||
1702 | <next-state name="Fn-Caps"/> | ||
1703 | </map> | ||
1704 | <map keycode="S" pressed="true"> | ||
1705 | <event keycode="At" unicode="64" pressed="true" autorepeat="true"/> | ||
1706 | <next-state name="Fn-Caps"/> | ||
1707 | </map> | ||
1708 | <map keycode="T" pressed="true"> | ||
1709 | <event keycode="5" unicode="53" pressed="true" autorepeat="true"/> | ||
1710 | <next-state name="Fn-Caps"/> | ||
1711 | </map> | ||
1712 | <map keycode="U" pressed="true"> | ||
1713 | <event keycode="7" unicode="55" pressed="true" autorepeat="true"/> | ||
1714 | <next-state name="Fn-Caps"/> | ||
1715 | </map> | ||
1716 | <map keycode="V" pressed="true"> | ||
1717 | <event keycode="V" unicode="22" modifiers="Control" pressed="true"/> | ||
1718 | <next-state name="Fn-Caps"/> | ||
1719 | </map> | ||
1720 | <map keycode="W" pressed="true"> | ||
1721 | <event keycode="2" unicode="50" pressed="true" autorepeat="true"/> | ||
1722 | <next-state name="Fn-Caps"/> | ||
1723 | </map> | ||
1724 | <map keycode="X" pressed="true"> | ||
1725 | <event keycode="X" unicode="24" modifiers="Control" pressed="true"/> | ||
1726 | <next-state name="Fn-Caps"/> | ||
1727 | </map> | ||
1728 | <map keycode="Y" pressed="true"> | ||
1729 | <event keycode="6" unicode="54" pressed="true" autorepeat="true"/> | ||
1730 | <next-state name="Fn-Caps"/> | ||
1731 | </map> | ||
1732 | <map keycode="Tab" pressed="true"> | ||
1733 | <event keycode="CapsLock" unicode="-1" pressed="true"/> | ||
1734 | <next-state name="Fn"/> | ||
1735 | </map> | ||
1736 | <map keycode="Left Shift" pressed="true"> | ||
1737 | <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/> | ||
1738 | <next-state name="LShift-Fn-Caps"/> | ||
1739 | </map> | ||
1740 | <map keycode="Right Shift" pressed="true"> | ||
1741 | <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
1742 | <next-state name="RShift-Fn-Caps"/> | ||
1743 | </map> | ||
1744 | <map keycode="Space" pressed="false"> | ||
1745 | <event keycode="Bar" unicode="124" pressed="false"/> | ||
1746 | <next-state name="Fn-Caps"/> | ||
1747 | </map> | ||
1748 | <map keycode="Apostrophe" pressed="false"> | ||
1749 | <event keycode="AsciiTilde" unicode="126" pressed="false"/> | ||
1750 | <next-state name="Fn-Caps"/> | ||
1751 | </map> | ||
1752 | <map keycode="Comma" pressed="false"> | ||
1753 | <event keycode="ParenRight" unicode="41" pressed="false"/> | ||
1754 | <next-state name="Fn-Caps"/> | ||
1755 | </map> | ||
1756 | <map keycode="Period" pressed="false"> | ||
1757 | <event keycode="Less" unicode="60" pressed="false"/> | ||
1758 | <next-state name="Fn-Caps"/> | ||
1759 | </map> | ||
1760 | <map keycode="A" pressed="false"> | ||
1761 | <event keycode="Exclam" unicode="33" pressed="false"/> | ||
1762 | <next-state name="Fn-Caps"/> | ||
1763 | </map> | ||
1764 | <map keycode="B" pressed="false"> | ||
1765 | <event keycode="Minus" unicode="45" pressed="false"/> | ||
1766 | <next-state name="Fn-Caps"/> | ||
1767 | </map> | ||
1768 | <map keycode="C" pressed="false"> | ||
1769 | <event keycode="C" unicode="3" modifiers="Control" pressed="false"/> | ||
1770 | <next-state name="Fn-Caps"/> | ||
1771 | </map> | ||
1772 | <map keycode="D" pressed="false"> | ||
1773 | <event keycode="NumberSign" unicode="35" pressed="false"/> | ||
1774 | <next-state name="Fn-Caps"/> | ||
1775 | </map> | ||
1776 | <map keycode="E" pressed="false"> | ||
1777 | <event keycode="3" unicode="51" pressed="false"/> | ||
1778 | <next-state name="Fn-Caps"/> | ||
1779 | </map> | ||
1780 | <map keycode="F" pressed="false"> | ||
1781 | <event keycode="Dollar" unicode="36" pressed="false"/> | ||
1782 | <next-state name="Fn-Caps"/> | ||
1783 | </map> | ||
1784 | <map keycode="G" pressed="false"> | ||
1785 | <event keycode="Percent" unicode="37" pressed="false"/> | ||
1786 | <next-state name="Fn-Caps"/> | ||
1787 | </map> | ||
1788 | <map keycode="H" pressed="false"> | ||
1789 | <event keycode="Underscore" unicode="95" pressed="false"/> | ||
1790 | <next-state name="Fn-Caps"/> | ||
1791 | </map> | ||
1792 | <map keycode="I" pressed="false"> | ||
1793 | <event keycode="8" unicode="56" pressed="false"/> | ||
1794 | <next-state name="Fn-Caps"/> | ||
1795 | </map> | ||
1796 | <map keycode="J" pressed="false"> | ||
1797 | <event keycode="Ampersand" unicode="38" pressed="false"/> | ||
1798 | <next-state name="Fn-Caps"/> | ||
1799 | </map> | ||
1800 | <map keycode="K" pressed="false"> | ||
1801 | <event keycode="Asterisk" unicode="42" pressed="false"/> | ||
1802 | <next-state name="Fn-Caps"/> | ||
1803 | </map> | ||
1804 | <map keycode="L" pressed="false"> | ||
1805 | <event keycode="ParenLeft" unicode="40" pressed="false"/> | ||
1806 | <next-state name="Fn-Caps"/> | ||
1807 | </map> | ||
1808 | <map keycode="M" pressed="false"> | ||
1809 | <event keycode="Equal" unicode="61" pressed="false"/> | ||
1810 | <next-state name="Fn-Caps"/> | ||
1811 | </map> | ||
1812 | <map keycode="N" pressed="false"> | ||
1813 | <event keycode="Plus" unicode="43" pressed="false"/> | ||
1814 | <next-state name="Fn-Caps"/> | ||
1815 | </map> | ||
1816 | <map keycode="O" pressed="false"> | ||
1817 | <event keycode="9" unicode="57" pressed="false"/> | ||
1818 | <next-state name="Fn-Caps"/> | ||
1819 | </map> | ||
1820 | <map keycode="P" pressed="false"> | ||
1821 | <event keycode="0" unicode="48" pressed="false"/> | ||
1822 | <next-state name="Fn-Caps"/> | ||
1823 | </map> | ||
1824 | <map keycode="Q" pressed="false"> | ||
1825 | <event keycode="1" unicode="49" pressed="false"/> | ||
1826 | <next-state name="Fn-Caps"/> | ||
1827 | </map> | ||
1828 | <map keycode="R" pressed="false"> | ||
1829 | <event keycode="4" unicode="52" pressed="false"/> | ||
1830 | <next-state name="Fn-Caps"/> | ||
1831 | </map> | ||
1832 | <map keycode="S" pressed="false"> | ||
1833 | <event keycode="At" unicode="64" pressed="false"/> | ||
1834 | <next-state name="Fn-Caps"/> | ||
1835 | </map> | ||
1836 | <map keycode="T" pressed="false"> | ||
1837 | <event keycode="5" unicode="53" pressed="false"/> | ||
1838 | <next-state name="Fn-Caps"/> | ||
1839 | </map> | ||
1840 | <map keycode="U" pressed="false"> | ||
1841 | <event keycode="7" unicode="55" pressed="false"/> | ||
1842 | <next-state name="Fn-Caps"/> | ||
1843 | </map> | ||
1844 | <map keycode="V" pressed="false"> | ||
1845 | <event keycode="V" unicode="22" modifiers="Control" pressed="false"/> | ||
1846 | <next-state name="Fn-Caps"/> | ||
1847 | </map> | ||
1848 | <map keycode="W" pressed="false"> | ||
1849 | <event keycode="2" unicode="50" pressed="false"/> | ||
1850 | <next-state name="Fn-Caps"/> | ||
1851 | </map> | ||
1852 | <map keycode="X" pressed="false"> | ||
1853 | <event keycode="X" unicode="24" modifiers="Control" pressed="false"/> | ||
1854 | <next-state name="Fn-Caps"/> | ||
1855 | </map> | ||
1856 | <map keycode="Y" pressed="false"> | ||
1857 | <event keycode="6" unicode="54" pressed="false"/> | ||
1858 | <next-state name="Fn-Caps"/> | ||
1859 | </map> | ||
1860 | <map keycode="Fn" pressed="false"> | ||
1861 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
1862 | <next-state name="Caps-sFn"/> | ||
1863 | </map> | ||
1864 | </state> | ||
1865 | |||
1866 | <state name="Caps-sFn"> | ||
1867 | <map keycode="Space" pressed="true"> | ||
1868 | <event keycode="Bar" unicode="124" pressed="true" autorepeat="true"/> | ||
1869 | <next-state name="Caps"/> | ||
1870 | </map> | ||
1871 | <map keycode="Apostrophe" pressed="true"> | ||
1872 | <event keycode="AsciiTilde" unicode="126" pressed="true" autorepeat="true"/> | ||
1873 | <next-state name="Caps"/> | ||
1874 | </map> | ||
1875 | <map keycode="Comma" pressed="true"> | ||
1876 | <event keycode="ParenRight" unicode="41" pressed="true" autorepeat="true"/> | ||
1877 | <next-state name="Caps"/> | ||
1878 | </map> | ||
1879 | <map keycode="Period" pressed="true"> | ||
1880 | <event keycode="Less" unicode="60" pressed="true" autorepeat="true"/> | ||
1881 | <next-state name="Caps"/> | ||
1882 | </map> | ||
1883 | <map keycode="Slash" pressed="true"> | ||
1884 | <event keycode="NumLock" unicode="-1" pressed="true"/> | ||
1885 | <next-state name="Num"/> | ||
1886 | </map> | ||
1887 | <map keycode="A" pressed="true"> | ||
1888 | <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/> | ||
1889 | <next-state name="Caps"/> | ||
1890 | </map> | ||
1891 | <map keycode="B" pressed="true"> | ||
1892 | <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/> | ||
1893 | <next-state name="Caps"/> | ||
1894 | </map> | ||
1895 | <map keycode="C" pressed="true"> | ||
1896 | <event keycode="C" unicode="3" modifiers="Control" pressed="true"/> | ||
1897 | <next-state name="Caps"/> | ||
1898 | </map> | ||
1899 | <map keycode="D" pressed="true"> | ||
1900 | <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/> | ||
1901 | <next-state name="Caps"/> | ||
1902 | </map> | ||
1903 | <map keycode="E" pressed="true"> | ||
1904 | <event keycode="3" unicode="51" pressed="true" autorepeat="true"/> | ||
1905 | <next-state name="Caps"/> | ||
1906 | </map> | ||
1907 | <map keycode="F" pressed="true"> | ||
1908 | <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/> | ||
1909 | <next-state name="Caps"/> | ||
1910 | </map> | ||
1911 | <map keycode="G" pressed="true"> | ||
1912 | <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/> | ||
1913 | <next-state name="Caps"/> | ||
1914 | </map> | ||
1915 | <map keycode="H" pressed="true"> | ||
1916 | <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/> | ||
1917 | <next-state name="Caps"/> | ||
1918 | </map> | ||
1919 | <map keycode="I" pressed="true"> | ||
1920 | <event keycode="8" unicode="56" pressed="true" autorepeat="true"/> | ||
1921 | <next-state name="Caps"/> | ||
1922 | </map> | ||
1923 | <map keycode="J" pressed="true"> | ||
1924 | <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/> | ||
1925 | <next-state name="Caps"/> | ||
1926 | </map> | ||
1927 | <map keycode="K" pressed="true"> | ||
1928 | <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/> | ||
1929 | <next-state name="Caps"/> | ||
1930 | </map> | ||
1931 | <map keycode="L" pressed="true"> | ||
1932 | <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/> | ||
1933 | <next-state name="Caps"/> | ||
1934 | </map> | ||
1935 | <map keycode="M" pressed="true"> | ||
1936 | <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/> | ||
1937 | <next-state name="Caps"/> | ||
1938 | </map> | ||
1939 | <map keycode="N" pressed="true"> | ||
1940 | <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/> | ||
1941 | <next-state name="Caps"/> | ||
1942 | </map> | ||
1943 | <map keycode="O" pressed="true"> | ||
1944 | <event keycode="9" unicode="57" pressed="true" autorepeat="true"/> | ||
1945 | <next-state name="Caps"/> | ||
1946 | </map> | ||
1947 | <map keycode="P" pressed="true"> | ||
1948 | <event keycode="0" unicode="48" pressed="true" autorepeat="true"/> | ||
1949 | <next-state name="Caps"/> | ||
1950 | </map> | ||
1951 | <map keycode="Q" pressed="true"> | ||
1952 | <event keycode="1" unicode="49" pressed="true" autorepeat="true"/> | ||
1953 | <next-state name="Caps"/> | ||
1954 | </map> | ||
1955 | <map keycode="R" pressed="true"> | ||
1956 | <event keycode="4" unicode="52" pressed="true" autorepeat="true"/> | ||
1957 | <next-state name="Caps"/> | ||
1958 | </map> | ||
1959 | <map keycode="S" pressed="true"> | ||
1960 | <event keycode="At" unicode="64" pressed="true" autorepeat="true"/> | ||
1961 | <next-state name="Caps"/> | ||
1962 | </map> | ||
1963 | <map keycode="T" pressed="true"> | ||
1964 | <event keycode="5" unicode="53" pressed="true" autorepeat="true"/> | ||
1965 | <next-state name="Caps"/> | ||
1966 | </map> | ||
1967 | <map keycode="U" pressed="true"> | ||
1968 | <event keycode="7" unicode="55" pressed="true" autorepeat="true"/> | ||
1969 | <next-state name="Caps"/> | ||
1970 | </map> | ||
1971 | <map keycode="V" pressed="true"> | ||
1972 | <event keycode="V" unicode="22" modifiers="Control" pressed="true"/> | ||
1973 | <next-state name="Caps"/> | ||
1974 | </map> | ||
1975 | <map keycode="W" pressed="true"> | ||
1976 | <event keycode="2" unicode="50" pressed="true" autorepeat="true"/> | ||
1977 | <next-state name="Caps"/> | ||
1978 | </map> | ||
1979 | <map keycode="X" pressed="true"> | ||
1980 | <event keycode="X" unicode="24" modifiers="Control" pressed="true"/> | ||
1981 | <next-state name="Caps"/> | ||
1982 | </map> | ||
1983 | <map keycode="Y" pressed="true"> | ||
1984 | <event keycode="6" unicode="54" pressed="true" autorepeat="true"/> | ||
1985 | <next-state name="Caps"/> | ||
1986 | </map> | ||
1987 | <map keycode="Tab" pressed="true"> | ||
1988 | <event keycode="CapsLock" unicode="-1" pressed="true"/> | ||
1989 | <next-state name="Normal"/> | ||
1990 | </map> | ||
1991 | <map keycode="Left Shift" pressed="true"> | ||
1992 | <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/> | ||
1993 | <next-state name="LShift-Caps"/> | ||
1994 | </map> | ||
1995 | <map keycode="Right Shift" pressed="true"> | ||
1996 | <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/> | ||
1997 | <next-state name="RShift-Caps"/> | ||
1998 | </map> | ||
1999 | <map keycode="Space" pressed="false"> | ||
2000 | <event keycode="Bar" unicode="124" pressed="false"/> | ||
2001 | <next-state name="Caps"/> | ||
2002 | </map> | ||
2003 | <map keycode="Apostrophe" pressed="false"> | ||
2004 | <event keycode="AsciiTilde" unicode="126" pressed="false"/> | ||
2005 | <next-state name="Caps"/> | ||
2006 | </map> | ||
2007 | <map keycode="Comma" pressed="false"> | ||
2008 | <event keycode="ParenRight" unicode="41" pressed="false"/> | ||
2009 | <next-state name="Caps"/> | ||
2010 | </map> | ||
2011 | <map keycode="Period" pressed="false"> | ||
2012 | <event keycode="Less" unicode="60" pressed="false"/> | ||
2013 | <next-state name="Caps"/> | ||
2014 | </map> | ||
2015 | <map keycode="A" pressed="false"> | ||
2016 | <event keycode="Exclam" unicode="33" pressed="false"/> | ||
2017 | <next-state name="Caps"/> | ||
2018 | </map> | ||
2019 | <map keycode="B" pressed="false"> | ||
2020 | <event keycode="Minus" unicode="45" pressed="false"/> | ||
2021 | <next-state name="Caps"/> | ||
2022 | </map> | ||
2023 | <map keycode="C" pressed="false"> | ||
2024 | <event keycode="C" unicode="3" modifiers="Control" pressed="false"/> | ||
2025 | <next-state name="Caps"/> | ||
2026 | </map> | ||
2027 | <map keycode="D" pressed="false"> | ||
2028 | <event keycode="NumberSign" unicode="35" pressed="false"/> | ||
2029 | <next-state name="Caps"/> | ||
2030 | </map> | ||
2031 | <map keycode="E" pressed="false"> | ||
2032 | <event keycode="3" unicode="51" pressed="false"/> | ||
2033 | <next-state name="Caps"/> | ||
2034 | </map> | ||
2035 | <map keycode="F" pressed="false"> | ||
2036 | <event keycode="Dollar" unicode="36" pressed="false"/> | ||
2037 | <next-state name="Caps"/> | ||
2038 | </map> | ||
2039 | <map keycode="G" pressed="false"> | ||
2040 | <event keycode="Percent" unicode="37" pressed="false"/> | ||
2041 | <next-state name="Caps"/> | ||
2042 | </map> | ||
2043 | <map keycode="H" pressed="false"> | ||
2044 | <event keycode="Underscore" unicode="95" pressed="false"/> | ||
2045 | <next-state name="Caps"/> | ||
2046 | </map> | ||
2047 | <map keycode="I" pressed="false"> | ||
2048 | <event keycode="8" unicode="56" pressed="false"/> | ||
2049 | <next-state name="Caps"/> | ||
2050 | </map> | ||
2051 | <map keycode="J" pressed="false"> | ||
2052 | <event keycode="Ampersand" unicode="38" pressed="false"/> | ||
2053 | <next-state name="Caps"/> | ||
2054 | </map> | ||
2055 | <map keycode="K" pressed="false"> | ||
2056 | <event keycode="Asterisk" unicode="42" pressed="false"/> | ||
2057 | <next-state name="Caps"/> | ||
2058 | </map> | ||
2059 | <map keycode="L" pressed="false"> | ||
2060 | <event keycode="ParenLeft" unicode="40" pressed="false"/> | ||
2061 | <next-state name="Caps"/> | ||
2062 | </map> | ||
2063 | <map keycode="M" pressed="false"> | ||
2064 | <event keycode="Equal" unicode="61" pressed="false"/> | ||
2065 | <next-state name="Caps"/> | ||
2066 | </map> | ||
2067 | <map keycode="N" pressed="false"> | ||
2068 | <event keycode="Plus" unicode="43" pressed="false"/> | ||
2069 | <next-state name="Caps"/> | ||
2070 | </map> | ||
2071 | <map keycode="O" pressed="false"> | ||
2072 | <event keycode="9" unicode="57" pressed="false"/> | ||
2073 | <next-state name="Caps"/> | ||
2074 | </map> | ||
2075 | <map keycode="P" pressed="false"> | ||
2076 | <event keycode="0" unicode="48" pressed="false"/> | ||
2077 | <next-state name="Caps"/> | ||
2078 | </map> | ||
2079 | <map keycode="Q" pressed="false"> | ||
2080 | <event keycode="1" unicode="49" pressed="false"/> | ||
2081 | <next-state name="Caps"/> | ||
2082 | </map> | ||
2083 | <map keycode="R" pressed="false"> | ||
2084 | <event keycode="4" unicode="52" pressed="false"/> | ||
2085 | <next-state name="Caps"/> | ||
2086 | </map> | ||
2087 | <map keycode="S" pressed="false"> | ||
2088 | <event keycode="At" unicode="64" pressed="false"/> | ||
2089 | <next-state name="Caps"/> | ||
2090 | </map> | ||
2091 | <map keycode="T" pressed="false"> | ||
2092 | <event keycode="5" unicode="53" pressed="false"/> | ||
2093 | <next-state name="Caps"/> | ||
2094 | </map> | ||
2095 | <map keycode="U" pressed="false"> | ||
2096 | <event keycode="7" unicode="55" pressed="false"/> | ||
2097 | <next-state name="Caps"/> | ||
2098 | </map> | ||
2099 | <map keycode="V" pressed="false"> | ||
2100 | <event keycode="V" unicode="22" modifiers="Control" pressed="false"/> | ||
2101 | <next-state name="Caps"/> | ||
2102 | </map> | ||
2103 | <map keycode="W" pressed="false"> | ||
2104 | <event keycode="2" unicode="50" pressed="false"/> | ||
2105 | <next-state name="Caps"/> | ||
2106 | </map> | ||
2107 | <map keycode="X" pressed="false"> | ||
2108 | <event keycode="X" unicode="24" modifiers="Control" pressed="false"/> | ||
2109 | <next-state name="Caps"/> | ||
2110 | </map> | ||
2111 | <map keycode="Y" pressed="false"> | ||
2112 | <event keycode="6" unicode="54" pressed="false"/> | ||
2113 | <next-state name="Caps"/> | ||
2114 | </map> | ||
2115 | <map keycode="Fn" pressed="false"> | ||
2116 | <event keycode="F22" unicode="-1" pressed="true"/> | ||
2117 | <next-state name="Caps-iFn"/> | ||
2118 | </map> | ||
2119 | </state> | ||
2120 | |||
2121 | </keymap> | ||
diff --git a/share/zkb/common.xml.num b/share/zkb/common.xml.num new file mode 100644 index 0000000..ff4c450 --- a/dev/null +++ b/share/zkb/common.xml.num | |||
@@ -0,0 +1,2115 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <!-- State Declarations --> | ||
4 | |||
5 | <state name="common"/> | ||
6 | <state name="lower-case" parent="common"/> | ||
7 | <state name="upper-case" parent="common"/> | ||
8 | <state name="number" parent="common"/> | ||
9 | <state name="control" parent="common"/> | ||
10 | <state name="alt" parent="common"/> | ||
11 | |||
12 | <state name="Normal" parent="lower-case"/> | ||
13 | <state name="LShift" parent="upper-case"/> | ||
14 | <state name="RShift" parent="upper-case"/> | ||
15 | <state name="Fn" parent="number"/> | ||
16 | <state name="Num" parent="number"/> | ||
17 | <state name="Caps" parent="upper-case"/> | ||
18 | <state name="iFn"/> | ||
19 | <state name="sFn" parent="number"/> | ||
20 | |||
21 | <state name="LShift-Fn" parent="control"/> | ||
22 | <state name="RShift-Fn" parent="alt"/> | ||
23 | <state name="LShift-Caps" parent="lower-case"/> | ||
24 | <state name="LShift-Num" parent="number"/> | ||
25 | <state name="RShift-Caps" parent="lower-case"/> | ||
26 | <state name="RShift-Num" parent="number"/> | ||
27 | <state name="Fn-Num" parent="number"/> | ||
28 | <state name="Fn-Caps" parent="number"/> | ||
29 | <state name="Num-Caps" parent="number"/> | ||
30 | <state name="Caps-iFn"/> | ||
31 | <state name="Caps-sFn" parent="sFn"/> | ||
32 | |||
33 | <state name="LShift-Fn-Caps" parent="control"/> | ||
34 | <state name="LShift-Fn-Num" parent="control"/> | ||
35 | <state name="LShift-Num-Caps" parent="number"/> | ||
36 | <state name="RShift-Fn-Caps" parent="control"/> | ||
37 | <state name="RShift-Fn-Num" parent="control"/> | ||
38 | <state name="RShift-Num-Caps" parent="number"/> | ||
39 | <state name="Fn-Num-Caps" parent="number"/> | ||
40 | <state name="LShift-Fn-Num-Caps" parent="control"/> | ||
41 | <state name="RShift-Fn-Num-Caps" parent="control"/> | ||
42 | |||
43 | <state name="Normal" default="true"> | ||
44 | <map keycode="4128" pressed="true"> | ||
45 | <event keycode="4128" unicode="-1" modifiers="8" pressed="true" autorepeat="false"/> | ||
46 | <next-state name="LShift"/> | ||
47 | </map> | ||
48 | <map keycode="4130" pressed="true"> | ||
49 | <event keycode="4130" unicode="-1" modifiers="8" pressed="true" autorepeat="false"/> | ||
50 | <next-state name="RShift"/> | ||
51 | </map> | ||
52 | <map keycode="4165" pressed="true"> | ||
53 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
54 | <next-state name="iFn"/> | ||
55 | </map> | ||
56 | </state> | ||
57 | |||
58 | <state name="LShift"> | ||
59 | <map keycode="4128" pressed="false"> | ||
60 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
61 | <next-state name="Normal"/> | ||
62 | </map> | ||
63 | <map keycode="4165" pressed="true"> | ||
64 | <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
65 | <next-state name="LShift-Fn"/> | ||
66 | </map> | ||
67 | </state> | ||
68 | |||
69 | <state name="RShift"> | ||
70 | <map keycode="4130" pressed="false"> | ||
71 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
72 | <next-state name="Normal"/> | ||
73 | </map> | ||
74 | <map keycode="4165" pressed="true"> | ||
75 | <event keycode="4165" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
76 | <next-state name="RShift-Fn"/> | ||
77 | </map> | ||
78 | </state> | ||
79 | |||
80 | <state name="Fn"> | ||
81 | <map keycode="32" pressed="true"> | ||
82 | <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="false"/> | ||
83 | </map> | ||
84 | <map keycode="39" pressed="true"> | ||
85 | <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="false"/> | ||
86 | </map> | ||
87 | <map keycode="44" pressed="true"> | ||
88 | <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="false"/> | ||
89 | </map> | ||
90 | <map keycode="46" pressed="true"> | ||
91 | <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="false"/> | ||
92 | </map> | ||
93 | <map keycode="47" pressed="true"> | ||
94 | <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
95 | <next-state name="Fn-Num"/> | ||
96 | </map> | ||
97 | <map keycode="67" pressed="true"> | ||
98 | <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/> | ||
99 | </map> | ||
100 | <map keycode="86" pressed="true"> | ||
101 | <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/> | ||
102 | </map> | ||
103 | <map keycode="88" pressed="true"> | ||
104 | <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/> | ||
105 | </map> | ||
106 | <map keycode="32" pressed="false"> | ||
107 | <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/> | ||
108 | </map> | ||
109 | <map keycode="39" pressed="false"> | ||
110 | <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/> | ||
111 | </map> | ||
112 | <map keycode="44" pressed="false"> | ||
113 | <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/> | ||
114 | </map> | ||
115 | <map keycode="46" pressed="false"> | ||
116 | <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/> | ||
117 | </map> | ||
118 | <map keycode="67" pressed="false"> | ||
119 | <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/> | ||
120 | </map> | ||
121 | <map keycode="86" pressed="false"> | ||
122 | <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/> | ||
123 | </map> | ||
124 | <map keycode="88" pressed="false"> | ||
125 | <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/> | ||
126 | </map> | ||
127 | <map keycode="4097" pressed="true"> | ||
128 | <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
129 | <next-state name="Fn-Caps"/> | ||
130 | </map> | ||
131 | <map keycode="4128" pressed="true"> | ||
132 | <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
133 | <next-state name="LShift-Fn"/> | ||
134 | </map> | ||
135 | <map keycode="4130" pressed="true"> | ||
136 | <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
137 | <next-state name="RShift-Fn"/> | ||
138 | </map> | ||
139 | <map keycode="4165" pressed="false"> | ||
140 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
141 | <next-state name="Normal"/> | ||
142 | </map> | ||
143 | </state> | ||
144 | |||
145 | <state name="Num"> | ||
146 | <map keycode="4165" pressed="true"> | ||
147 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
148 | <next-state name="Fn-Num"/> | ||
149 | </map> | ||
150 | </state> | ||
151 | |||
152 | <state name="Caps"> | ||
153 | <map keycode="4128" pressed="true"> | ||
154 | <event keycode="4128" unicode="-1" modifiers="8" pressed="true" autorepeat="false"/> | ||
155 | <next-state name="LShift-Caps"/> | ||
156 | </map> | ||
157 | |||
158 | <map keycode="4130" pressed="true"> | ||
159 | <event keycode="4130" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
160 | <next-state name="RShift-Caps"/> | ||
161 | </map> | ||
162 | |||
163 | <map keycode="4165" pressed="true"> | ||
164 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
165 | <next-state name="Caps-iFn"/> | ||
166 | </map> | ||
167 | </state> | ||
168 | |||
169 | <state name="LShift-Fn"> | ||
170 | <map keycode="4128" pressed="false"> | ||
171 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
172 | <next-state name="Fn"/> | ||
173 | </map> | ||
174 | |||
175 | <map keycode="4165" pressed="false"> | ||
176 | <event keycode="4165" unicode="-1" modifiers="8" pressed="false" autorepeat="false"/> | ||
177 | <next-state name="LShift"/> | ||
178 | </map> | ||
179 | |||
180 | <map keycode="4097" pressed="true"> | ||
181 | <event keycode="4132" unicode="-1" modifiers="24" pressed="true" autorepeat="false"/> | ||
182 | <next-state name="LShift-Fn-Caps"/> | ||
183 | </map> | ||
184 | |||
185 | <map keycode="47" pressed="true"> | ||
186 | <event keycode="4133" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
187 | <next-state name="LShift-Fn-Num"/> | ||
188 | </map> | ||
189 | </state> | ||
190 | |||
191 | <state name="RShift-Fn"> | ||
192 | <map keycode="4130" pressed="false"> | ||
193 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
194 | <next-state name="Fn"/> | ||
195 | </map> | ||
196 | |||
197 | <map keycode="4165" pressed="false"> | ||
198 | <event keycode="4165" unicode="-1" modifiers="8" pressed="false" autorepeat="false"/> | ||
199 | <next-state name="RShift"/> | ||
200 | </map> | ||
201 | |||
202 | <map keycode="4097" pressed="true"> | ||
203 | <event keycode="4132" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
204 | <next-state name="RShift-Fn-Caps"/> | ||
205 | </map> | ||
206 | |||
207 | <map keycode="47" pressed="true"> | ||
208 | <event keycode="4133" unicode="-1" modifiers="32" pressed="true" autorepeat="false"/> | ||
209 | <next-state name="RShift-Fn-Num"/> | ||
210 | </map> | ||
211 | </state> | ||
212 | |||
213 | <state name="LShift-Caps"> | ||
214 | <map keycode="4128" pressed="false"> | ||
215 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
216 | <next-state name="Caps"/> | ||
217 | </map> | ||
218 | |||
219 | <map keycode="4165" pressed="true"> | ||
220 | <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
221 | <next-state name="LShift-Fn-Caps"/> | ||
222 | </map> | ||
223 | </state> | ||
224 | |||
225 | <state name="LShift-Num"> | ||
226 | <map keycode="4128" pressed="false"> | ||
227 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
228 | <next-state name="Num"/> | ||
229 | </map> | ||
230 | |||
231 | <map keycode="4165" pressed="true"> | ||
232 | <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
233 | <next-state name="LShift-Fn-Num"/> | ||
234 | </map> | ||
235 | </state> | ||
236 | |||
237 | <state name="RShift-Caps"> | ||
238 | <map keycode="4130" pressed="false"> | ||
239 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
240 | <next-state name="Caps"/> | ||
241 | </map> | ||
242 | |||
243 | <map keycode="4165" pressed="true"> | ||
244 | <event keycode="4165" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
245 | <next-state name="RShift-Fn-Caps"/> | ||
246 | </map> | ||
247 | </state> | ||
248 | |||
249 | <state name="RShift-Num"> | ||
250 | <map keycode="4130" pressed="false"> | ||
251 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
252 | <next-state name="Num"/> | ||
253 | </map> | ||
254 | |||
255 | <map keycode="4165" pressed="true"> | ||
256 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
257 | <next-state name="RShift-Fn-Caps"/> | ||
258 | </map> | ||
259 | </state> | ||
260 | |||
261 | <state name="Fn-Num"> | ||
262 | <map keycode="47" pressed="true"> | ||
263 | <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
264 | <next-state name="Fn"/> | ||
265 | </map> | ||
266 | |||
267 | <map keycode="4097" pressed="true"> | ||
268 | <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
269 | <next-state name="Fn-Num-Caps"/> | ||
270 | </map> | ||
271 | |||
272 | <map keycode="4165" pressed="false"> | ||
273 | <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
274 | <next-state name="Num"/> | ||
275 | </map> | ||
276 | </state> | ||
277 | |||
278 | <state name="Fn-Caps"> | ||
279 | <map keycode="47" pressed="true"> | ||
280 | <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
281 | <next-state name="Fn-Num-Caps"/> | ||
282 | </map> | ||
283 | |||
284 | <map keycode="4097" pressed="true"> | ||
285 | <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
286 | <next-state name="Fn"/> | ||
287 | </map> | ||
288 | |||
289 | <map keycode="4165" pressed="false"> | ||
290 | <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
291 | <next-state name="Caps"/> | ||
292 | </map> | ||
293 | </state> | ||
294 | |||
295 | <state name="Num-Caps"> | ||
296 | <map keycode="4165" pressed="true"> | ||
297 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
298 | <next-state name="Fn-Num-Caps"/> | ||
299 | </map> | ||
300 | </state> | ||
301 | |||
302 | <state name="LShift-Fn-Caps"> | ||
303 | <map keycode="4128" pressed="false"> | ||
304 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
305 | <next-state name="Fn-Caps"/> | ||
306 | </map> | ||
307 | |||
308 | <map keycode="4165" pressed="false"> | ||
309 | <event keycode="4165" unicode="-1" modifiers="8" pressed="false" autorepeat="false"/> | ||
310 | <next-state name="LShift-Caps"/> | ||
311 | </map> | ||
312 | |||
313 | <map keycode="4097" pressed="true"> | ||
314 | <event keycode="4132" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
315 | <next-state name="LShift-Fn"/> | ||
316 | </map> | ||
317 | </state> | ||
318 | |||
319 | <state name="LShift-Fn-Num"> | ||
320 | <map keycode="4128" pressed="false"> | ||
321 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
322 | <next-state name="Fn-Num"/> | ||
323 | </map> | ||
324 | |||
325 | <map keycode="4165" pressed="false"> | ||
326 | <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
327 | <next-state name="LShift-Num"/> | ||
328 | </map> | ||
329 | |||
330 | <map keycode="47" pressed="true"> | ||
331 | <event keycode="4133" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
332 | <next-state name="LShift-Fn"/> | ||
333 | </map> | ||
334 | </state> | ||
335 | |||
336 | <state name="LShift-Num-Caps"> | ||
337 | <map keycode="4165" pressed="true"> | ||
338 | <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
339 | <next-state name="LShift-Fn-Num-Caps"/> | ||
340 | </map> | ||
341 | |||
342 | <map keycode="4128" pressed="false"> | ||
343 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
344 | <next-state name="Num-Caps"/> | ||
345 | </map> | ||
346 | </state> | ||
347 | |||
348 | <state name="RShift-Fn-Caps"> | ||
349 | <map keycode="4130" pressed="false"> | ||
350 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
351 | <next-state name="Fn-Caps"/> | ||
352 | </map> | ||
353 | |||
354 | <map keycode="4165" pressed="false"> | ||
355 | <event keycode="4165" unicode="-1" modifiers="8" pressed="false" autorepeat="false"/> | ||
356 | <next-state name="RShift-Caps"/> | ||
357 | </map> | ||
358 | |||
359 | <map keycode="4097" pressed="true"> | ||
360 | <event keycode="4132" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
361 | <next-state name="RShift-Fn"/> | ||
362 | </map> | ||
363 | </state> | ||
364 | |||
365 | <state name="RShift-Fn-Num"> | ||
366 | <map keycode="4130" pressed="false"> | ||
367 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
368 | <next-state name="Fn-Num"/> | ||
369 | </map> | ||
370 | |||
371 | <map keycode="4165" pressed="false"> | ||
372 | <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
373 | <next-state name="RShift-Num"/> | ||
374 | </map> | ||
375 | |||
376 | <map keycode="47" pressed="true"> | ||
377 | <event keycode="4133" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
378 | <next-state name="RShift-Fn"/> | ||
379 | </map> | ||
380 | </state> | ||
381 | |||
382 | <state name="RShift-Num-Caps"> | ||
383 | <map keycode="4165" pressed="true"> | ||
384 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
385 | <next-state name="RShift-Fn-Num-Caps"/> | ||
386 | </map> | ||
387 | |||
388 | <map keycode="4130" pressed="false"> | ||
389 | <event keycode="4130" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
390 | <next-state name="Num-Caps"/> | ||
391 | </map> | ||
392 | </state> | ||
393 | |||
394 | <state name="Fn-Num-Caps"> | ||
395 | <map keycode="4165" pressed="false"> | ||
396 | <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
397 | <next-state name="Num-Caps"/> | ||
398 | </map> | ||
399 | |||
400 | <map keycode="4097" pressed="true"> | ||
401 | <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
402 | <next-state name="Fn-Num"/> | ||
403 | </map> | ||
404 | |||
405 | <map keycode="47" pressed="true"> | ||
406 | <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
407 | <next-state name="Fn-Caps"/> | ||
408 | </map> | ||
409 | |||
410 | <map keycode="4128" pressed="true"> | ||
411 | <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
412 | <next-state name="LShift-Fn-Num-Caps"/> | ||
413 | </map> | ||
414 | |||
415 | <map keycode="4130" pressed="true"> | ||
416 | <event keycode="4130" unicode="-1" modifiers="32" pressed="true" autorepeat="false"/> | ||
417 | <next-state name="RShift-Fn-Num-Caps"/> | ||
418 | </map> | ||
419 | </state> | ||
420 | |||
421 | <state name="LShift-Fn-Num-Caps"> | ||
422 | <map keycode="4165" pressed="false"> | ||
423 | <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
424 | <next-state name="LShift-Num-Caps"/> | ||
425 | </map> | ||
426 | |||
427 | <map keycode="4097" pressed="true"> | ||
428 | <event keycode="4132" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
429 | <next-state name="LShift-Fn-Num"/> | ||
430 | </map> | ||
431 | |||
432 | <map keycode="47" pressed="true"> | ||
433 | <event keycode="4133" unicode="-1" modifiers="24" pressed="true" autorepeat="false"/> | ||
434 | <next-state name="LShift-Fn-Caps"/> | ||
435 | </map> | ||
436 | |||
437 | <map keycode="4128" pressed="false"> | ||
438 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
439 | <next-state name="Fn-Num-Caps"/> | ||
440 | </map> | ||
441 | </state> | ||
442 | |||
443 | <state name="RShift-Fn-Num-Caps"> | ||
444 | <map keycode="4165" pressed="false"> | ||
445 | <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
446 | <next-state name="RShift-Num-Caps"/> | ||
447 | </map> | ||
448 | |||
449 | <map keycode="4097" pressed="true"> | ||
450 | <event keycode="4132" unicode="-1" modifiers="32" pressed="true" autorepeat="false"/> | ||
451 | <next-state name="RShift-Fn-Num"/> | ||
452 | </map> | ||
453 | |||
454 | <map keycode="47" pressed="true"> | ||
455 | <event keycode="4133" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
456 | <next-state name="RShift-Fn-Caps"/> | ||
457 | </map> | ||
458 | |||
459 | <map keycode="4130" pressed="false"> | ||
460 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
461 | <next-state name="Fn-Num-Caps"/> | ||
462 | </map> | ||
463 | </state> | ||
464 | |||
465 | <state name="common"> | ||
466 | <map keycode="4096" pressed="true"> | ||
467 | <event keycode="4096" unicode="27" modifiers="0" pressed="true" autorepeat="true"/> | ||
468 | </map> | ||
469 | <map keycode="4097" pressed="true"> | ||
470 | <event keycode="4097" unicode="9" modifiers="0" pressed="true" autorepeat="true"/> | ||
471 | </map> | ||
472 | <map keycode="4099" pressed="true"> | ||
473 | <event keycode="4099" unicode="127" modifiers="0" pressed="true" autorepeat="true"/> | ||
474 | </map> | ||
475 | <map keycode="4100" pressed="true"> | ||
476 | <event keycode="4100" unicode="13" modifiers="0" pressed="true" autorepeat="true"/> | ||
477 | </map> | ||
478 | <map keycode="4114" pressed="true"> | ||
479 | <event keycode="4114" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
480 | </map> | ||
481 | <map keycode="4115" pressed="true"> | ||
482 | <event keycode="4115" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
483 | </map> | ||
484 | <map keycode="4116" pressed="true"> | ||
485 | <event keycode="4116" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
486 | </map> | ||
487 | <map keycode="4117" pressed="true"> | ||
488 | <event keycode="4117" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
489 | </map> | ||
490 | <map keycode="4152" pressed="true"> | ||
491 | <event keycode="4152" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
492 | </map> | ||
493 | <map keycode="4153" pressed="true"> | ||
494 | <event keycode="4153" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
495 | </map> | ||
496 | <map keycode="4154" pressed="true"> | ||
497 | <event keycode="4154" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
498 | </map> | ||
499 | <map keycode="4155" pressed="true"> | ||
500 | <event keycode="4155" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
501 | </map> | ||
502 | <map keycode="4156" pressed="true"> | ||
503 | <event keycode="4156" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
504 | </map> | ||
505 | <map keycode="4173" pressed="true"> | ||
506 | <event keycode="4173" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
507 | </map> | ||
508 | <map keycode="4176" pressed="true"> | ||
509 | <event keycode="4176" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
510 | </map> | ||
511 | <map keycode="4177" pressed="true"> | ||
512 | <event keycode="4177" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
513 | </map> | ||
514 | <map keycode="4178" pressed="true"> | ||
515 | <event keycode="4178" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/> | ||
516 | </map> | ||
517 | <map keycode="4096" pressed="false"> | ||
518 | <event keycode="4096" unicode="27" modifiers="0" pressed="false" autorepeat="false"/> | ||
519 | </map> | ||
520 | <map keycode="4097" pressed="false"> | ||
521 | <event keycode="4097" unicode="9" modifiers="0" pressed="false" autorepeat="false"/> | ||
522 | </map> | ||
523 | <map keycode="4099" pressed="false"> | ||
524 | <event keycode="4099" unicode="127" modifiers="0" pressed="false" autorepeat="false"/> | ||
525 | </map> | ||
526 | <map keycode="4100" pressed="false"> | ||
527 | <event keycode="4100" unicode="13" modifiers="0" pressed="false" autorepeat="false"/> | ||
528 | </map> | ||
529 | <map keycode="4114" pressed="false"> | ||
530 | <event keycode="4114" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
531 | </map> | ||
532 | <map keycode="4115" pressed="false"> | ||
533 | <event keycode="4115" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
534 | </map> | ||
535 | <map keycode="4116" pressed="false"> | ||
536 | <event keycode="4116" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
537 | </map> | ||
538 | <map keycode="4117" pressed="false"> | ||
539 | <event keycode="4117" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
540 | </map> | ||
541 | <map keycode="4152" pressed="false"> | ||
542 | <event keycode="4152" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
543 | </map> | ||
544 | <map keycode="4153" pressed="false"> | ||
545 | <event keycode="4153" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
546 | </map> | ||
547 | <map keycode="4154" pressed="false"> | ||
548 | <event keycode="4154" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
549 | </map> | ||
550 | <map keycode="4155" pressed="false"> | ||
551 | <event keycode="4155" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
552 | </map> | ||
553 | <map keycode="4156" pressed="false"> | ||
554 | <event keycode="4156" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
555 | </map> | ||
556 | <map keycode="4173" pressed="false"> | ||
557 | <event keycode="4173" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
558 | </map> | ||
559 | <map keycode="4176" pressed="false"> | ||
560 | <event keycode="4176" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
561 | </map> | ||
562 | <map keycode="4177" pressed="false"> | ||
563 | <event keycode="4177" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
564 | </map> | ||
565 | <map keycode="4178" pressed="false"> | ||
566 | <event keycode="4178" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
567 | </map> | ||
568 | </state> | ||
569 | |||
570 | <state name="number"> | ||
571 | <map keycode="32" pressed="true"> | ||
572 | <event keycode="32" unicode="32" modifiers="0" pressed="true" autorepeat="true"/> | ||
573 | </map> | ||
574 | <map keycode="39" pressed="true"> | ||
575 | <event keycode="39" unicode="39" modifiers="0" pressed="true" autorepeat="true"/> | ||
576 | </map> | ||
577 | <map keycode="44" pressed="true"> | ||
578 | <event keycode="44" unicode="44" modifiers="0" pressed="true" autorepeat="true"/> | ||
579 | </map> | ||
580 | <map keycode="46" pressed="true"> | ||
581 | <event keycode="46" unicode="46" modifiers="0" pressed="true" autorepeat="true"/> | ||
582 | </map> | ||
583 | <map keycode="65" pressed="true"> | ||
584 | <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/> | ||
585 | </map> | ||
586 | <map keycode="66" pressed="true"> | ||
587 | <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/> | ||
588 | </map> | ||
589 | <map keycode="68" pressed="true"> | ||
590 | <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/> | ||
591 | </map> | ||
592 | <map keycode="69" pressed="true"> | ||
593 | <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/> | ||
594 | </map> | ||
595 | <map keycode="70" pressed="true"> | ||
596 | <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/> | ||
597 | </map> | ||
598 | <map keycode="71" pressed="true"> | ||
599 | <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/> | ||
600 | </map> | ||
601 | <map keycode="72" pressed="true"> | ||
602 | <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/> | ||
603 | </map> | ||
604 | <map keycode="73" pressed="true"> | ||
605 | <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/> | ||
606 | </map> | ||
607 | <map keycode="74" pressed="true"> | ||
608 | <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/> | ||
609 | </map> | ||
610 | <map keycode="75" pressed="true"> | ||
611 | <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/> | ||
612 | </map> | ||
613 | <map keycode="76" pressed="true"> | ||
614 | <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/> | ||
615 | </map> | ||
616 | <map keycode="77" pressed="true"> | ||
617 | <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/> | ||
618 | </map> | ||
619 | <map keycode="78" pressed="true"> | ||
620 | <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/> | ||
621 | </map> | ||
622 | <map keycode="79" pressed="true"> | ||
623 | <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/> | ||
624 | </map> | ||
625 | <map keycode="80" pressed="true"> | ||
626 | <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/> | ||
627 | </map> | ||
628 | <map keycode="81" pressed="true"> | ||
629 | <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/> | ||
630 | </map> | ||
631 | <map keycode="82" pressed="true"> | ||
632 | <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/> | ||
633 | </map> | ||
634 | <map keycode="83" pressed="true"> | ||
635 | <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/> | ||
636 | </map> | ||
637 | <map keycode="84" pressed="true"> | ||
638 | <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/> | ||
639 | </map> | ||
640 | <map keycode="85" pressed="true"> | ||
641 | <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/> | ||
642 | </map> | ||
643 | <map keycode="87" pressed="true"> | ||
644 | <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/> | ||
645 | </map> | ||
646 | <map keycode="89" pressed="true"> | ||
647 | <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/> | ||
648 | </map> | ||
649 | <map keycode="32" pressed="false"> | ||
650 | <event keycode="32" unicode="32" modifiers="0" pressed="false" autorepeat="false"/> | ||
651 | </map> | ||
652 | <map keycode="39" pressed="false"> | ||
653 | <event keycode="39" unicode="39" modifiers="0" pressed="false" autorepeat="false"/> | ||
654 | </map> | ||
655 | <map keycode="44" pressed="false"> | ||
656 | <event keycode="44" unicode="44" modifiers="0" pressed="false" autorepeat="false"/> | ||
657 | </map> | ||
658 | <map keycode="46" pressed="false"> | ||
659 | <event keycode="46" unicode="46" modifiers="0" pressed="false" autorepeat="false"/> | ||
660 | </map> | ||
661 | <map keycode="65" pressed="false"> | ||
662 | <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/> | ||
663 | </map> | ||
664 | <map keycode="66" pressed="false"> | ||
665 | <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/> | ||
666 | </map> | ||
667 | <map keycode="68" pressed="false"> | ||
668 | <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/> | ||
669 | </map> | ||
670 | <map keycode="69" pressed="false"> | ||
671 | <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/> | ||
672 | </map> | ||
673 | <map keycode="70" pressed="false"> | ||
674 | <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/> | ||
675 | </map> | ||
676 | <map keycode="71" pressed="false"> | ||
677 | <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/> | ||
678 | </map> | ||
679 | <map keycode="72" pressed="false"> | ||
680 | <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/> | ||
681 | </map> | ||
682 | <map keycode="73" pressed="false"> | ||
683 | <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/> | ||
684 | </map> | ||
685 | <map keycode="74" pressed="false"> | ||
686 | <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/> | ||
687 | </map> | ||
688 | <map keycode="75" pressed="false"> | ||
689 | <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/> | ||
690 | </map> | ||
691 | <map keycode="76" pressed="false"> | ||
692 | <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/> | ||
693 | </map> | ||
694 | <map keycode="77" pressed="false"> | ||
695 | <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/> | ||
696 | </map> | ||
697 | <map keycode="78" pressed="false"> | ||
698 | <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/> | ||
699 | </map> | ||
700 | <map keycode="79" pressed="false"> | ||
701 | <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/> | ||
702 | </map> | ||
703 | <map keycode="80" pressed="false"> | ||
704 | <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/> | ||
705 | </map> | ||
706 | <map keycode="81" pressed="false"> | ||
707 | <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/> | ||
708 | </map> | ||
709 | <map keycode="82" pressed="false"> | ||
710 | <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/> | ||
711 | </map> | ||
712 | <map keycode="83" pressed="false"> | ||
713 | <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/> | ||
714 | </map> | ||
715 | <map keycode="84" pressed="false"> | ||
716 | <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/> | ||
717 | </map> | ||
718 | <map keycode="85" pressed="false"> | ||
719 | <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/> | ||
720 | </map> | ||
721 | <map keycode="87" pressed="false"> | ||
722 | <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/> | ||
723 | </map> | ||
724 | <map keycode="89" pressed="false"> | ||
725 | <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/> | ||
726 | </map> | ||
727 | </state> | ||
728 | |||
729 | <state name="control"> | ||
730 | <map keycode="32" pressed="true"> | ||
731 | <event keycode="96" unicode="96" modifiers="16" pressed="true" autorepeat="false"/> | ||
732 | </map> | ||
733 | <map keycode="39" pressed="true"> | ||
734 | <event keycode="94" unicode="94" modifiers="16" pressed="true" autorepeat="false"/> | ||
735 | </map> | ||
736 | <map keycode="44" pressed="true"> | ||
737 | <event keycode="123" unicode="123" modifiers="16" pressed="true" autorepeat="false"/> | ||
738 | </map> | ||
739 | <map keycode="46" pressed="true"> | ||
740 | <event keycode="93" unicode="93" modifiers="16" pressed="true" autorepeat="false"/> | ||
741 | </map> | ||
742 | <map keycode="65" pressed="true"> | ||
743 | <event keycode="65" unicode="1" modifiers="16" pressed="true" autorepeat="false"/> | ||
744 | </map> | ||
745 | <map keycode="66" pressed="true"> | ||
746 | <event keycode="66" unicode="2" modifiers="16" pressed="true" autorepeat="false"/> | ||
747 | </map> | ||
748 | <map keycode="67" pressed="true"> | ||
749 | <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/> | ||
750 | </map> | ||
751 | <map keycode="68" pressed="true"> | ||
752 | <event keycode="68" unicode="4" modifiers="16" pressed="true" autorepeat="false"/> | ||
753 | </map> | ||
754 | <map keycode="69" pressed="true"> | ||
755 | <event keycode="69" unicode="5" modifiers="16" pressed="true" autorepeat="false"/> | ||
756 | </map> | ||
757 | <map keycode="70" pressed="true"> | ||
758 | <event keycode="70" unicode="6" modifiers="16" pressed="true" autorepeat="false"/> | ||
759 | </map> | ||
760 | <map keycode="71" pressed="true"> | ||
761 | <event keycode="71" unicode="7" modifiers="16" pressed="true" autorepeat="false"/> | ||
762 | </map> | ||
763 | <map keycode="72" pressed="true"> | ||
764 | <event keycode="72" unicode="8" modifiers="16" pressed="true" autorepeat="false"/> | ||
765 | </map> | ||
766 | <map keycode="73" pressed="true"> | ||
767 | <event keycode="73" unicode="9" modifiers="16" pressed="true" autorepeat="false"/> | ||
768 | </map> | ||
769 | <map keycode="74" pressed="true"> | ||
770 | <event keycode="74" unicode="10" modifiers="16" pressed="true" autorepeat="false"/> | ||
771 | </map> | ||
772 | <map keycode="75" pressed="true"> | ||
773 | <event keycode="75" unicode="11" modifiers="16" pressed="true" autorepeat="false"/> | ||
774 | </map> | ||
775 | <map keycode="76" pressed="true"> | ||
776 | <event keycode="76" unicode="12" modifiers="16" pressed="true" autorepeat="false"/> | ||
777 | </map> | ||
778 | <map keycode="77" pressed="true"> | ||
779 | <event keycode="77" unicode="13" modifiers="16" pressed="true" autorepeat="false"/> | ||
780 | </map> | ||
781 | <map keycode="78" pressed="true"> | ||
782 | <event keycode="78" unicode="14" modifiers="16" pressed="true" autorepeat="false"/> | ||
783 | </map> | ||
784 | <map keycode="79" pressed="true"> | ||
785 | <event keycode="79" unicode="15" modifiers="16" pressed="true" autorepeat="false"/> | ||
786 | </map> | ||
787 | <map keycode="80" pressed="true"> | ||
788 | <event keycode="80" unicode="16" modifiers="16" pressed="true" autorepeat="false"/> | ||
789 | </map> | ||
790 | <map keycode="81" pressed="true"> | ||
791 | <event keycode="81" unicode="17" modifiers="16" pressed="true" autorepeat="false"/> | ||
792 | </map> | ||
793 | <map keycode="82" pressed="true"> | ||
794 | <event keycode="82" unicode="18" modifiers="16" pressed="true" autorepeat="false"/> | ||
795 | </map> | ||
796 | <map keycode="83" pressed="true"> | ||
797 | <event keycode="83" unicode="19" modifiers="16" pressed="true" autorepeat="false"/> | ||
798 | </map> | ||
799 | <map keycode="84" pressed="true"> | ||
800 | <event keycode="84" unicode="20" modifiers="16" pressed="true" autorepeat="false"/> | ||
801 | </map> | ||
802 | <map keycode="85" pressed="true"> | ||
803 | <event keycode="85" unicode="21" modifiers="16" pressed="true" autorepeat="false"/> | ||
804 | </map> | ||
805 | <map keycode="86" pressed="true"> | ||
806 | <event keycode="86" unicode="22" modifiers="16" pressed="true" autorepeat="false"/> | ||
807 | </map> | ||
808 | <map keycode="87" pressed="true"> | ||
809 | <event keycode="87" unicode="23" modifiers="16" pressed="true" autorepeat="false"/> | ||
810 | </map> | ||
811 | <map keycode="88" pressed="true"> | ||
812 | <event keycode="88" unicode="24" modifiers="16" pressed="true" autorepeat="false"/> | ||
813 | </map> | ||
814 | <map keycode="89" pressed="true"> | ||
815 | <event keycode="89" unicode="25" modifiers="16" pressed="true" autorepeat="false"/> | ||
816 | </map> | ||
817 | <map keycode="90" pressed="true"> | ||
818 | <event keycode="90" unicode="26" modifiers="16" pressed="true" autorepeat="false"/> | ||
819 | </map> | ||
820 | <map keycode="32" pressed="false"> | ||
821 | <event keycode="96" unicode="96" modifiers="16" pressed="false" autorepeat="false"/> | ||
822 | </map> | ||
823 | <map keycode="39" pressed="false"> | ||
824 | <event keycode="94" unicode="94" modifiers="16" pressed="false" autorepeat="false"/> | ||
825 | </map> | ||
826 | <map keycode="44" pressed="false"> | ||
827 | <event keycode="123" unicode="123" modifiers="16" pressed="false" autorepeat="false"/> | ||
828 | </map> | ||
829 | <map keycode="46" pressed="false"> | ||
830 | <event keycode="93" unicode="93" modifiers="16" pressed="false" autorepeat="false"/> | ||
831 | </map> | ||
832 | <map keycode="65" pressed="false"> | ||
833 | <event keycode="65" unicode="1" modifiers="16" pressed="false" autorepeat="false"/> | ||
834 | </map> | ||
835 | <map keycode="66" pressed="false"> | ||
836 | <event keycode="66" unicode="2" modifiers="16" pressed="false" autorepeat="false"/> | ||
837 | </map> | ||
838 | <map keycode="67" pressed="false"> | ||
839 | <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/> | ||
840 | </map> | ||
841 | <map keycode="68" pressed="false"> | ||
842 | <event keycode="68" unicode="4" modifiers="16" pressed="false" autorepeat="false"/> | ||
843 | </map> | ||
844 | <map keycode="69" pressed="false"> | ||
845 | <event keycode="69" unicode="5" modifiers="16" pressed="false" autorepeat="false"/> | ||
846 | </map> | ||
847 | <map keycode="70" pressed="false"> | ||
848 | <event keycode="70" unicode="6" modifiers="16" pressed="false" autorepeat="false"/> | ||
849 | </map> | ||
850 | <map keycode="71" pressed="false"> | ||
851 | <event keycode="71" unicode="7" modifiers="16" pressed="false" autorepeat="false"/> | ||
852 | </map> | ||
853 | <map keycode="72" pressed="false"> | ||
854 | <event keycode="72" unicode="8" modifiers="16" pressed="false" autorepeat="false"/> | ||
855 | </map> | ||
856 | <map keycode="73" pressed="false"> | ||
857 | <event keycode="73" unicode="9" modifiers="16" pressed="false" autorepeat="false"/> | ||
858 | </map> | ||
859 | <map keycode="74" pressed="false"> | ||
860 | <event keycode="74" unicode="10" modifiers="16" pressed="false" autorepeat="false"/> | ||
861 | </map> | ||
862 | <map keycode="75" pressed="false"> | ||
863 | <event keycode="75" unicode="11" modifiers="16" pressed="false" autorepeat="false"/> | ||
864 | </map> | ||
865 | <map keycode="76" pressed="false"> | ||
866 | <event keycode="76" unicode="12" modifiers="16" pressed="false" autorepeat="false"/> | ||
867 | </map> | ||
868 | <map keycode="77" pressed="false"> | ||
869 | <event keycode="77" unicode="13" modifiers="16" pressed="false" autorepeat="false"/> | ||
870 | </map> | ||
871 | <map keycode="78" pressed="false"> | ||
872 | <event keycode="78" unicode="14" modifiers="16" pressed="false" autorepeat="false"/> | ||
873 | </map> | ||
874 | <map keycode="79" pressed="false"> | ||
875 | <event keycode="79" unicode="15" modifiers="16" pressed="false" autorepeat="false"/> | ||
876 | </map> | ||
877 | <map keycode="80" pressed="false"> | ||
878 | <event keycode="80" unicode="16" modifiers="16" pressed="false" autorepeat="false"/> | ||
879 | </map> | ||
880 | <map keycode="81" pressed="false"> | ||
881 | <event keycode="81" unicode="17" modifiers="16" pressed="false" autorepeat="false"/> | ||
882 | </map> | ||
883 | <map keycode="82" pressed="false"> | ||
884 | <event keycode="82" unicode="18" modifiers="16" pressed="false" autorepeat="false"/> | ||
885 | </map> | ||
886 | <map keycode="83" pressed="false"> | ||
887 | <event keycode="83" unicode="19" modifiers="16" pressed="false" autorepeat="false"/> | ||
888 | </map> | ||
889 | <map keycode="84" pressed="false"> | ||
890 | <event keycode="84" unicode="20" modifiers="16" pressed="false" autorepeat="false"/> | ||
891 | </map> | ||
892 | <map keycode="85" pressed="false"> | ||
893 | <event keycode="85" unicode="21" modifiers="16" pressed="false" autorepeat="false"/> | ||
894 | </map> | ||
895 | <map keycode="86" pressed="false"> | ||
896 | <event keycode="86" unicode="22" modifiers="16" pressed="false" autorepeat="false"/> | ||
897 | </map> | ||
898 | <map keycode="87" pressed="false"> | ||
899 | <event keycode="87" unicode="23" modifiers="16" pressed="false" autorepeat="false"/> | ||
900 | </map> | ||
901 | <map keycode="88" pressed="false"> | ||
902 | <event keycode="88" unicode="24" modifiers="16" pressed="false" autorepeat="false"/> | ||
903 | </map> | ||
904 | <map keycode="89" pressed="false"> | ||
905 | <event keycode="89" unicode="25" modifiers="16" pressed="false" autorepeat="false"/> | ||
906 | </map> | ||
907 | <map keycode="90" pressed="false"> | ||
908 | <event keycode="90" unicode="26" modifiers="16" pressed="false" autorepeat="false"/> | ||
909 | </map> | ||
910 | </state> | ||
911 | |||
912 | <state name="alt"> | ||
913 | <map keycode="32" pressed="true"> | ||
914 | <event keycode="32" unicode="96" modifiers="40" pressed="true" autorepeat="false"/> | ||
915 | </map> | ||
916 | <map keycode="39" pressed="true"> | ||
917 | <event keycode="94" unicode="94" modifiers="40" pressed="true" autorepeat="false"/> | ||
918 | </map> | ||
919 | <map keycode="44" pressed="true"> | ||
920 | <event keycode="123" unicode="123" modifiers="40" pressed="true" autorepeat="false"/> | ||
921 | </map> | ||
922 | <map keycode="46" pressed="true"> | ||
923 | <event keycode="93" unicode="93" modifiers="40" pressed="true" autorepeat="false"/> | ||
924 | </map> | ||
925 | <map keycode="65" pressed="true"> | ||
926 | <event keycode="33" unicode="65" modifiers="40" pressed="true" autorepeat="false"/> | ||
927 | </map> | ||
928 | <map keycode="66" pressed="true"> | ||
929 | <event keycode="45" unicode="66" modifiers="40" pressed="true" autorepeat="false"/> | ||
930 | </map> | ||
931 | <map keycode="67" pressed="true"> | ||
932 | <event keycode="35" unicode="67" modifiers="40" pressed="true" autorepeat="false"/> | ||
933 | </map> | ||
934 | <map keycode="68" pressed="true"> | ||
935 | <event keycode="51" unicode="68" modifiers="40" pressed="true" autorepeat="false"/> | ||
936 | </map> | ||
937 | <map keycode="69" pressed="true"> | ||
938 | <event keycode="36" unicode="69" modifiers="40" pressed="true" autorepeat="false"/> | ||
939 | </map> | ||
940 | <map keycode="70" pressed="true"> | ||
941 | <event keycode="37" unicode="70" modifiers="40" pressed="true" autorepeat="false"/> | ||
942 | </map> | ||
943 | <map keycode="71" pressed="true"> | ||
944 | <event keycode="95" unicode="71" modifiers="40" pressed="true" autorepeat="false"/> | ||
945 | </map> | ||
946 | <map keycode="72" pressed="true"> | ||
947 | <event keycode="56" unicode="72" modifiers="40" pressed="true" autorepeat="false"/> | ||
948 | </map> | ||
949 | <map keycode="73" pressed="true"> | ||
950 | <event keycode="56" unicode="73" modifiers="40" pressed="true" autorepeat="false"/> | ||
951 | </map> | ||
952 | <map keycode="74" pressed="true"> | ||
953 | <event keycode="38" unicode="74" modifiers="40" pressed="true" autorepeat="false"/> | ||
954 | </map> | ||
955 | <map keycode="75" pressed="true"> | ||
956 | <event keycode="42" unicode="75" modifiers="40" pressed="true" autorepeat="false"/> | ||
957 | </map> | ||
958 | <map keycode="76" pressed="true"> | ||
959 | <event keycode="40" unicode="76" modifiers="40" pressed="true" autorepeat="false"/> | ||
960 | </map> | ||
961 | <map keycode="77" pressed="true"> | ||
962 | <event keycode="61" unicode="77" modifiers="40" pressed="true" autorepeat="false"/> | ||
963 | </map> | ||
964 | <map keycode="78" pressed="true"> | ||
965 | <event keycode="43" unicode="78" modifiers="40" pressed="true" autorepeat="false"/> | ||
966 | </map> | ||
967 | <map keycode="79" pressed="true"> | ||
968 | <event keycode="57" unicode="79" modifiers="40" pressed="true" autorepeat="false"/> | ||
969 | </map> | ||
970 | <map keycode="80" pressed="true"> | ||
971 | <event keycode="48" unicode="80" modifiers="40" pressed="true" autorepeat="false"/> | ||
972 | </map> | ||
973 | <map keycode="81" pressed="true"> | ||
974 | <event keycode="49" unicode="81" modifiers="40" pressed="true" autorepeat="false"/> | ||
975 | </map> | ||
976 | <map keycode="82" pressed="true"> | ||
977 | <event keycode="52" unicode="82" modifiers="40" pressed="true" autorepeat="false"/> | ||
978 | </map> | ||
979 | <map keycode="83" pressed="true"> | ||
980 | <event keycode="64" unicode="83" modifiers="40" pressed="true" autorepeat="false"/> | ||
981 | </map> | ||
982 | <map keycode="84" pressed="true"> | ||
983 | <event keycode="53" unicode="84" modifiers="40" pressed="true" autorepeat="false"/> | ||
984 | </map> | ||
985 | <map keycode="85" pressed="true"> | ||
986 | <event keycode="55" unicode="85" modifiers="40" pressed="true" autorepeat="false"/> | ||
987 | </map> | ||
988 | <map keycode="86" pressed="true"> | ||
989 | <event keycode="50" unicode="86" modifiers="40" pressed="true" autorepeat="false"/> | ||
990 | </map> | ||
991 | <map keycode="87" pressed="true"> | ||
992 | <event keycode="54" unicode="87" modifiers="40" pressed="true" autorepeat="false"/> | ||
993 | </map> | ||
994 | <map keycode="88" pressed="true"> | ||
995 | <event keycode="124" unicode="88" modifiers="40" pressed="true" autorepeat="false"/> | ||
996 | </map> | ||
997 | <map keycode="89" pressed="true"> | ||
998 | <event keycode="126" unicode="89" modifiers="40" pressed="true" autorepeat="false"/> | ||
999 | </map> | ||
1000 | <map keycode="90" pressed="true"> | ||
1001 | <event keycode="90" unicode="90" modifiers="40" pressed="true" autorepeat="false"/> | ||
1002 | </map> | ||
1003 | <map keycode="32" pressed="false"> | ||
1004 | <event keycode="32" unicode="96" modifiers="40" pressed="false" autorepeat="false"/> | ||
1005 | </map> | ||
1006 | <map keycode="39" pressed="false"> | ||
1007 | <event keycode="94" unicode="94" modifiers="40" pressed="false" autorepeat="false"/> | ||
1008 | </map> | ||
1009 | <map keycode="44" pressed="false"> | ||
1010 | <event keycode="123" unicode="123" modifiers="40" pressed="false" autorepeat="false"/> | ||
1011 | </map> | ||
1012 | <map keycode="46" pressed="false"> | ||
1013 | <event keycode="93" unicode="93" modifiers="40" pressed="false" autorepeat="false"/> | ||
1014 | </map> | ||
1015 | <map keycode="65" pressed="false"> | ||
1016 | <event keycode="33" unicode="65" modifiers="40" pressed="false" autorepeat="false"/> | ||
1017 | </map> | ||
1018 | <map keycode="66" pressed="false"> | ||
1019 | <event keycode="45" unicode="66" modifiers="40" pressed="false" autorepeat="false"/> | ||
1020 | </map> | ||
1021 | <map keycode="67" pressed="false"> | ||
1022 | <event keycode="35" unicode="67" modifiers="40" pressed="false" autorepeat="false"/> | ||
1023 | </map> | ||
1024 | <map keycode="68" pressed="false"> | ||
1025 | <event keycode="51" unicode="68" modifiers="40" pressed="false" autorepeat="false"/> | ||
1026 | </map> | ||
1027 | <map keycode="69" pressed="false"> | ||
1028 | <event keycode="36" unicode="69" modifiers="40" pressed="false" autorepeat="false"/> | ||
1029 | </map> | ||
1030 | <map keycode="70" pressed="false"> | ||
1031 | <event keycode="37" unicode="70" modifiers="40" pressed="false" autorepeat="false"/> | ||
1032 | </map> | ||
1033 | <map keycode="71" pressed="false"> | ||
1034 | <event keycode="95" unicode="71" modifiers="40" pressed="false" autorepeat="false"/> | ||
1035 | </map> | ||
1036 | <map keycode="72" pressed="false"> | ||
1037 | <event keycode="56" unicode="72" modifiers="40" pressed="false" autorepeat="false"/> | ||
1038 | </map> | ||
1039 | <map keycode="73" pressed="false"> | ||
1040 | <event keycode="56" unicode="73" modifiers="40" pressed="false" autorepeat="false"/> | ||
1041 | </map> | ||
1042 | <map keycode="74" pressed="false"> | ||
1043 | <event keycode="38" unicode="74" modifiers="40" pressed="false" autorepeat="false"/> | ||
1044 | </map> | ||
1045 | <map keycode="75" pressed="false"> | ||
1046 | <event keycode="42" unicode="75" modifiers="40" pressed="false" autorepeat="false"/> | ||
1047 | </map> | ||
1048 | <map keycode="76" pressed="false"> | ||
1049 | <event keycode="40" unicode="76" modifiers="40" pressed="false" autorepeat="false"/> | ||
1050 | </map> | ||
1051 | <map keycode="77" pressed="false"> | ||
1052 | <event keycode="61" unicode="77" modifiers="40" pressed="false" autorepeat="false"/> | ||
1053 | </map> | ||
1054 | <map keycode="78" pressed="false"> | ||
1055 | <event keycode="43" unicode="78" modifiers="40" pressed="false" autorepeat="false"/> | ||
1056 | </map> | ||
1057 | <map keycode="79" pressed="false"> | ||
1058 | <event keycode="57" unicode="79" modifiers="40" pressed="false" autorepeat="false"/> | ||
1059 | </map> | ||
1060 | <map keycode="80" pressed="false"> | ||
1061 | <event keycode="48" unicode="80" modifiers="40" pressed="false" autorepeat="false"/> | ||
1062 | </map> | ||
1063 | <map keycode="81" pressed="false"> | ||
1064 | <event keycode="49" unicode="81" modifiers="40" pressed="false" autorepeat="false"/> | ||
1065 | </map> | ||
1066 | <map keycode="82" pressed="false"> | ||
1067 | <event keycode="52" unicode="82" modifiers="40" pressed="false" autorepeat="false"/> | ||
1068 | </map> | ||
1069 | <map keycode="83" pressed="false"> | ||
1070 | <event keycode="64" unicode="83" modifiers="40" pressed="false" autorepeat="false"/> | ||
1071 | </map> | ||
1072 | <map keycode="84" pressed="false"> | ||
1073 | <event keycode="53" unicode="84" modifiers="40" pressed="false" autorepeat="false"/> | ||
1074 | </map> | ||
1075 | <map keycode="85" pressed="false"> | ||
1076 | <event keycode="55" unicode="85" modifiers="40" pressed="false" autorepeat="false"/> | ||
1077 | </map> | ||
1078 | <map keycode="86" pressed="false"> | ||
1079 | <event keycode="50" unicode="86" modifiers="40" pressed="false" autorepeat="false"/> | ||
1080 | </map> | ||
1081 | <map keycode="87" pressed="false"> | ||
1082 | <event keycode="54" unicode="87" modifiers="40" pressed="false" autorepeat="false"/> | ||
1083 | </map> | ||
1084 | <map keycode="88" pressed="false"> | ||
1085 | <event keycode="124" unicode="88" modifiers="40" pressed="false" autorepeat="false"/> | ||
1086 | </map> | ||
1087 | <map keycode="89" pressed="false"> | ||
1088 | <event keycode="126" unicode="89" modifiers="40" pressed="false" autorepeat="false"/> | ||
1089 | </map> | ||
1090 | <map keycode="90" pressed="false"> | ||
1091 | <event keycode="90" unicode="90" modifiers="40" pressed="false" autorepeat="false"/> | ||
1092 | </map> | ||
1093 | </state> | ||
1094 | |||
1095 | <state name="iFn"> | ||
1096 | <map keycode="32" pressed="true"> | ||
1097 | <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="true"/> | ||
1098 | <next-state name="Fn"/> | ||
1099 | </map> | ||
1100 | <map keycode="39" pressed="true"> | ||
1101 | <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="true"/> | ||
1102 | <next-state name="Fn"/> | ||
1103 | </map> | ||
1104 | <map keycode="44" pressed="true"> | ||
1105 | <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="true"/> | ||
1106 | <next-state name="Fn"/> | ||
1107 | </map> | ||
1108 | <map keycode="46" pressed="true"> | ||
1109 | <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="true"/> | ||
1110 | <next-state name="Fn"/> | ||
1111 | </map> | ||
1112 | <map keycode="47" pressed="true"> | ||
1113 | <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1114 | <next-state name="Fn-Num"/> | ||
1115 | </map> | ||
1116 | <map keycode="65" pressed="true"> | ||
1117 | <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/> | ||
1118 | <next-state name="Fn"/> | ||
1119 | </map> | ||
1120 | <map keycode="66" pressed="true"> | ||
1121 | <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/> | ||
1122 | <next-state name="Fn"/> | ||
1123 | </map> | ||
1124 | <map keycode="67" pressed="true"> | ||
1125 | <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/> | ||
1126 | <next-state name="Fn"/> | ||
1127 | </map> | ||
1128 | <map keycode="68" pressed="true"> | ||
1129 | <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/> | ||
1130 | <next-state name="Fn"/> | ||
1131 | </map> | ||
1132 | <map keycode="69" pressed="true"> | ||
1133 | <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/> | ||
1134 | <next-state name="Fn"/> | ||
1135 | </map> | ||
1136 | <map keycode="70" pressed="true"> | ||
1137 | <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/> | ||
1138 | <next-state name="Fn"/> | ||
1139 | </map> | ||
1140 | <map keycode="71" pressed="true"> | ||
1141 | <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/> | ||
1142 | <next-state name="Fn"/> | ||
1143 | </map> | ||
1144 | <map keycode="72" pressed="true"> | ||
1145 | <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/> | ||
1146 | <next-state name="Fn"/> | ||
1147 | </map> | ||
1148 | <map keycode="73" pressed="true"> | ||
1149 | <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/> | ||
1150 | <next-state name="Fn"/> | ||
1151 | </map> | ||
1152 | <map keycode="74" pressed="true"> | ||
1153 | <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/> | ||
1154 | <next-state name="Fn"/> | ||
1155 | </map> | ||
1156 | <map keycode="75" pressed="true"> | ||
1157 | <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/> | ||
1158 | <next-state name="Fn"/> | ||
1159 | </map> | ||
1160 | <map keycode="76" pressed="true"> | ||
1161 | <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/> | ||
1162 | <next-state name="Fn"/> | ||
1163 | </map> | ||
1164 | <map keycode="77" pressed="true"> | ||
1165 | <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/> | ||
1166 | <next-state name="Fn"/> | ||
1167 | </map> | ||
1168 | <map keycode="78" pressed="true"> | ||
1169 | <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/> | ||
1170 | <next-state name="Fn"/> | ||
1171 | </map> | ||
1172 | <map keycode="79" pressed="true"> | ||
1173 | <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/> | ||
1174 | <next-state name="Fn"/> | ||
1175 | </map> | ||
1176 | <map keycode="80" pressed="true"> | ||
1177 | <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/> | ||
1178 | <next-state name="Fn"/> | ||
1179 | </map> | ||
1180 | <map keycode="81" pressed="true"> | ||
1181 | <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/> | ||
1182 | <next-state name="Fn"/> | ||
1183 | </map> | ||
1184 | <map keycode="82" pressed="true"> | ||
1185 | <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/> | ||
1186 | <next-state name="Fn"/> | ||
1187 | </map> | ||
1188 | <map keycode="83" pressed="true"> | ||
1189 | <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/> | ||
1190 | <next-state name="Fn"/> | ||
1191 | </map> | ||
1192 | <map keycode="84" pressed="true"> | ||
1193 | <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/> | ||
1194 | <next-state name="Fn"/> | ||
1195 | </map> | ||
1196 | <map keycode="85" pressed="true"> | ||
1197 | <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/> | ||
1198 | <next-state name="Fn"/> | ||
1199 | </map> | ||
1200 | <map keycode="86" pressed="true"> | ||
1201 | <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/> | ||
1202 | <next-state name="Fn"/> | ||
1203 | </map> | ||
1204 | <map keycode="87" pressed="true"> | ||
1205 | <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/> | ||
1206 | <next-state name="Fn"/> | ||
1207 | </map> | ||
1208 | <map keycode="88" pressed="true"> | ||
1209 | <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/> | ||
1210 | <next-state name="Fn"/> | ||
1211 | </map> | ||
1212 | <map keycode="89" pressed="true"> | ||
1213 | <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/> | ||
1214 | <next-state name="Fn"/> | ||
1215 | </map> | ||
1216 | <map keycode="4097" pressed="true"> | ||
1217 | <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1218 | <next-state name="Fn-Caps"/> | ||
1219 | </map> | ||
1220 | <map keycode="4128" pressed="true"> | ||
1221 | <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
1222 | <next-state name="LShift-Fn"/> | ||
1223 | </map> | ||
1224 | <map keycode="4130" pressed="true"> | ||
1225 | <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
1226 | <next-state name="RShift-Fn"/> | ||
1227 | </map> | ||
1228 | <map keycode="32" pressed="false"> | ||
1229 | <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/> | ||
1230 | <next-state name="Fn"/> | ||
1231 | </map> | ||
1232 | <map keycode="39" pressed="false"> | ||
1233 | <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/> | ||
1234 | <next-state name="Fn"/> | ||
1235 | </map> | ||
1236 | <map keycode="44" pressed="false"> | ||
1237 | <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/> | ||
1238 | <next-state name="Fn"/> | ||
1239 | </map> | ||
1240 | <map keycode="46" pressed="false"> | ||
1241 | <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/> | ||
1242 | <next-state name="Fn"/> | ||
1243 | </map> | ||
1244 | <map keycode="65" pressed="false"> | ||
1245 | <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/> | ||
1246 | <next-state name="Fn"/> | ||
1247 | </map> | ||
1248 | <map keycode="66" pressed="false"> | ||
1249 | <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/> | ||
1250 | <next-state name="Fn"/> | ||
1251 | </map> | ||
1252 | <map keycode="67" pressed="false"> | ||
1253 | <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/> | ||
1254 | <next-state name="Fn"/> | ||
1255 | </map> | ||
1256 | <map keycode="68" pressed="false"> | ||
1257 | <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/> | ||
1258 | <next-state name="Fn"/> | ||
1259 | </map> | ||
1260 | <map keycode="69" pressed="false"> | ||
1261 | <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/> | ||
1262 | <next-state name="Fn"/> | ||
1263 | </map> | ||
1264 | <map keycode="70" pressed="false"> | ||
1265 | <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/> | ||
1266 | <next-state name="Fn"/> | ||
1267 | </map> | ||
1268 | <map keycode="71" pressed="false"> | ||
1269 | <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/> | ||
1270 | <next-state name="Fn"/> | ||
1271 | </map> | ||
1272 | <map keycode="72" pressed="false"> | ||
1273 | <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/> | ||
1274 | <next-state name="Fn"/> | ||
1275 | </map> | ||
1276 | <map keycode="73" pressed="false"> | ||
1277 | <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/> | ||
1278 | <next-state name="Fn"/> | ||
1279 | </map> | ||
1280 | <map keycode="74" pressed="false"> | ||
1281 | <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/> | ||
1282 | <next-state name="Fn"/> | ||
1283 | </map> | ||
1284 | <map keycode="75" pressed="false"> | ||
1285 | <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/> | ||
1286 | <next-state name="Fn"/> | ||
1287 | </map> | ||
1288 | <map keycode="76" pressed="false"> | ||
1289 | <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/> | ||
1290 | <next-state name="Fn"/> | ||
1291 | </map> | ||
1292 | <map keycode="77" pressed="false"> | ||
1293 | <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/> | ||
1294 | <next-state name="Fn"/> | ||
1295 | </map> | ||
1296 | <map keycode="78" pressed="false"> | ||
1297 | <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/> | ||
1298 | <next-state name="Fn"/> | ||
1299 | </map> | ||
1300 | <map keycode="79" pressed="false"> | ||
1301 | <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/> | ||
1302 | <next-state name="Fn"/> | ||
1303 | </map> | ||
1304 | <map keycode="80" pressed="false"> | ||
1305 | <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/> | ||
1306 | <next-state name="Fn"/> | ||
1307 | </map> | ||
1308 | <map keycode="81" pressed="false"> | ||
1309 | <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/> | ||
1310 | <next-state name="Fn"/> | ||
1311 | </map> | ||
1312 | <map keycode="82" pressed="false"> | ||
1313 | <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/> | ||
1314 | <next-state name="Fn"/> | ||
1315 | </map> | ||
1316 | <map keycode="83" pressed="false"> | ||
1317 | <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/> | ||
1318 | <next-state name="Fn"/> | ||
1319 | </map> | ||
1320 | <map keycode="84" pressed="false"> | ||
1321 | <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/> | ||
1322 | <next-state name="Fn"/> | ||
1323 | </map> | ||
1324 | <map keycode="85" pressed="false"> | ||
1325 | <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/> | ||
1326 | <next-state name="Fn"/> | ||
1327 | </map> | ||
1328 | <map keycode="86" pressed="false"> | ||
1329 | <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/> | ||
1330 | <next-state name="Fn"/> | ||
1331 | </map> | ||
1332 | <map keycode="87" pressed="false"> | ||
1333 | <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/> | ||
1334 | <next-state name="Fn"/> | ||
1335 | </map> | ||
1336 | <map keycode="88" pressed="false"> | ||
1337 | <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/> | ||
1338 | <next-state name="Fn"/> | ||
1339 | </map> | ||
1340 | <map keycode="89" pressed="false"> | ||
1341 | <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/> | ||
1342 | <next-state name="Fn"/> | ||
1343 | </map> | ||
1344 | <map keycode="4165" pressed="false"> | ||
1345 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1346 | <next-state name="sFn"/> | ||
1347 | </map> | ||
1348 | </state> | ||
1349 | |||
1350 | <state name="sFn"> | ||
1351 | <map keycode="32" pressed="true"> | ||
1352 | <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="true"/> | ||
1353 | <next-state name="Normal"/> | ||
1354 | </map> | ||
1355 | <map keycode="39" pressed="true"> | ||
1356 | <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="true"/> | ||
1357 | <next-state name="Normal"/> | ||
1358 | </map> | ||
1359 | <map keycode="44" pressed="true"> | ||
1360 | <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="true"/> | ||
1361 | <next-state name="Normal"/> | ||
1362 | </map> | ||
1363 | <map keycode="46" pressed="true"> | ||
1364 | <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="true"/> | ||
1365 | <next-state name="Normal"/> | ||
1366 | </map> | ||
1367 | <map keycode="47" pressed="true"> | ||
1368 | <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1369 | <next-state name="Num"/> | ||
1370 | </map> | ||
1371 | <map keycode="65" pressed="true"> | ||
1372 | <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/> | ||
1373 | <next-state name="Normal"/> | ||
1374 | </map> | ||
1375 | <map keycode="66" pressed="true"> | ||
1376 | <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/> | ||
1377 | <next-state name="Normal"/> | ||
1378 | </map> | ||
1379 | <map keycode="67" pressed="true"> | ||
1380 | <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/> | ||
1381 | <next-state name="Normal"/> | ||
1382 | </map> | ||
1383 | <map keycode="68" pressed="true"> | ||
1384 | <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/> | ||
1385 | <next-state name="Normal"/> | ||
1386 | </map> | ||
1387 | <map keycode="69" pressed="true"> | ||
1388 | <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/> | ||
1389 | <next-state name="Normal"/> | ||
1390 | </map> | ||
1391 | <map keycode="70" pressed="true"> | ||
1392 | <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/> | ||
1393 | <next-state name="Normal"/> | ||
1394 | </map> | ||
1395 | <map keycode="71" pressed="true"> | ||
1396 | <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/> | ||
1397 | <next-state name="Normal"/> | ||
1398 | </map> | ||
1399 | <map keycode="72" pressed="true"> | ||
1400 | <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/> | ||
1401 | <next-state name="Normal"/> | ||
1402 | </map> | ||
1403 | <map keycode="73" pressed="true"> | ||
1404 | <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/> | ||
1405 | <next-state name="Normal"/> | ||
1406 | </map> | ||
1407 | <map keycode="74" pressed="true"> | ||
1408 | <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/> | ||
1409 | <next-state name="Normal"/> | ||
1410 | </map> | ||
1411 | <map keycode="75" pressed="true"> | ||
1412 | <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/> | ||
1413 | <next-state name="Normal"/> | ||
1414 | </map> | ||
1415 | <map keycode="76" pressed="true"> | ||
1416 | <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/> | ||
1417 | <next-state name="Normal"/> | ||
1418 | </map> | ||
1419 | <map keycode="77" pressed="true"> | ||
1420 | <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/> | ||
1421 | <next-state name="Normal"/> | ||
1422 | </map> | ||
1423 | <map keycode="78" pressed="true"> | ||
1424 | <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/> | ||
1425 | <next-state name="Normal"/> | ||
1426 | </map> | ||
1427 | <map keycode="79" pressed="true"> | ||
1428 | <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/> | ||
1429 | <next-state name="Normal"/> | ||
1430 | </map> | ||
1431 | <map keycode="80" pressed="true"> | ||
1432 | <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/> | ||
1433 | <next-state name="Normal"/> | ||
1434 | </map> | ||
1435 | <map keycode="81" pressed="true"> | ||
1436 | <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/> | ||
1437 | <next-state name="Normal"/> | ||
1438 | </map> | ||
1439 | <map keycode="82" pressed="true"> | ||
1440 | <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/> | ||
1441 | <next-state name="Normal"/> | ||
1442 | </map> | ||
1443 | <map keycode="83" pressed="true"> | ||
1444 | <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/> | ||
1445 | <next-state name="Normal"/> | ||
1446 | </map> | ||
1447 | <map keycode="84" pressed="true"> | ||
1448 | <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/> | ||
1449 | <next-state name="Normal"/> | ||
1450 | </map> | ||
1451 | <map keycode="85" pressed="true"> | ||
1452 | <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/> | ||
1453 | <next-state name="Normal"/> | ||
1454 | </map> | ||
1455 | <map keycode="86" pressed="true"> | ||
1456 | <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/> | ||
1457 | <next-state name="Normal"/> | ||
1458 | </map> | ||
1459 | <map keycode="87" pressed="true"> | ||
1460 | <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/> | ||
1461 | <next-state name="Normal"/> | ||
1462 | </map> | ||
1463 | <map keycode="88" pressed="true"> | ||
1464 | <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/> | ||
1465 | <next-state name="Normal"/> | ||
1466 | </map> | ||
1467 | <map keycode="89" pressed="true"> | ||
1468 | <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/> | ||
1469 | <next-state name="Normal"/> | ||
1470 | </map> | ||
1471 | <map keycode="4097" pressed="true"> | ||
1472 | <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1473 | <next-state name="Caps"/> | ||
1474 | </map> | ||
1475 | <map keycode="4128" pressed="true"> | ||
1476 | <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
1477 | <next-state name="LShift"/> | ||
1478 | </map> | ||
1479 | <map keycode="4130" pressed="true"> | ||
1480 | <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
1481 | <next-state name="RShift"/> | ||
1482 | </map> | ||
1483 | <map keycode="32" pressed="false"> | ||
1484 | <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/> | ||
1485 | <next-state name="Normal"/> | ||
1486 | </map> | ||
1487 | <map keycode="39" pressed="false"> | ||
1488 | <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/> | ||
1489 | <next-state name="Normal"/> | ||
1490 | </map> | ||
1491 | <map keycode="44" pressed="false"> | ||
1492 | <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/> | ||
1493 | <next-state name="Normal"/> | ||
1494 | </map> | ||
1495 | <map keycode="46" pressed="false"> | ||
1496 | <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/> | ||
1497 | <next-state name="Normal"/> | ||
1498 | </map> | ||
1499 | <map keycode="65" pressed="false"> | ||
1500 | <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/> | ||
1501 | <next-state name="Normal"/> | ||
1502 | </map> | ||
1503 | <map keycode="66" pressed="false"> | ||
1504 | <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/> | ||
1505 | <next-state name="Normal"/> | ||
1506 | </map> | ||
1507 | <map keycode="67" pressed="false"> | ||
1508 | <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/> | ||
1509 | <next-state name="Normal"/> | ||
1510 | </map> | ||
1511 | <map keycode="68" pressed="false"> | ||
1512 | <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/> | ||
1513 | <next-state name="Normal"/> | ||
1514 | </map> | ||
1515 | <map keycode="69" pressed="false"> | ||
1516 | <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/> | ||
1517 | <next-state name="Normal"/> | ||
1518 | </map> | ||
1519 | <map keycode="70" pressed="false"> | ||
1520 | <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/> | ||
1521 | <next-state name="Normal"/> | ||
1522 | </map> | ||
1523 | <map keycode="71" pressed="false"> | ||
1524 | <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/> | ||
1525 | <next-state name="Normal"/> | ||
1526 | </map> | ||
1527 | <map keycode="72" pressed="false"> | ||
1528 | <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/> | ||
1529 | <next-state name="Normal"/> | ||
1530 | </map> | ||
1531 | <map keycode="73" pressed="false"> | ||
1532 | <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/> | ||
1533 | <next-state name="Normal"/> | ||
1534 | </map> | ||
1535 | <map keycode="74" pressed="false"> | ||
1536 | <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/> | ||
1537 | <next-state name="Normal"/> | ||
1538 | </map> | ||
1539 | <map keycode="75" pressed="false"> | ||
1540 | <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/> | ||
1541 | <next-state name="Normal"/> | ||
1542 | </map> | ||
1543 | <map keycode="76" pressed="false"> | ||
1544 | <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/> | ||
1545 | <next-state name="Normal"/> | ||
1546 | </map> | ||
1547 | <map keycode="77" pressed="false"> | ||
1548 | <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/> | ||
1549 | <next-state name="Normal"/> | ||
1550 | </map> | ||
1551 | <map keycode="78" pressed="false"> | ||
1552 | <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/> | ||
1553 | <next-state name="Normal"/> | ||
1554 | </map> | ||
1555 | <map keycode="79" pressed="false"> | ||
1556 | <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/> | ||
1557 | <next-state name="Normal"/> | ||
1558 | </map> | ||
1559 | <map keycode="80" pressed="false"> | ||
1560 | <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/> | ||
1561 | <next-state name="Normal"/> | ||
1562 | </map> | ||
1563 | <map keycode="81" pressed="false"> | ||
1564 | <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/> | ||
1565 | <next-state name="Normal"/> | ||
1566 | </map> | ||
1567 | <map keycode="82" pressed="false"> | ||
1568 | <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/> | ||
1569 | <next-state name="Normal"/> | ||
1570 | </map> | ||
1571 | <map keycode="83" pressed="false"> | ||
1572 | <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/> | ||
1573 | <next-state name="Normal"/> | ||
1574 | </map> | ||
1575 | <map keycode="84" pressed="false"> | ||
1576 | <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/> | ||
1577 | <next-state name="Normal"/> | ||
1578 | </map> | ||
1579 | <map keycode="85" pressed="false"> | ||
1580 | <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/> | ||
1581 | <next-state name="Normal"/> | ||
1582 | </map> | ||
1583 | <map keycode="86" pressed="false"> | ||
1584 | <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/> | ||
1585 | <next-state name="Normal"/> | ||
1586 | </map> | ||
1587 | <map keycode="87" pressed="false"> | ||
1588 | <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/> | ||
1589 | <next-state name="Normal"/> | ||
1590 | </map> | ||
1591 | <map keycode="88" pressed="false"> | ||
1592 | <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/> | ||
1593 | <next-state name="Normal"/> | ||
1594 | </map> | ||
1595 | <map keycode="89" pressed="false"> | ||
1596 | <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/> | ||
1597 | <next-state name="Normal"/> | ||
1598 | </map> | ||
1599 | <map keycode="4165" pressed="false"> | ||
1600 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1601 | <next-state name="iFn"/> | ||
1602 | </map> | ||
1603 | </state> | ||
1604 | |||
1605 | <state name="Caps-iFn"> | ||
1606 | <map keycode="32" pressed="true"> | ||
1607 | <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="true"/> | ||
1608 | <next-state name="Fn-Caps"/> | ||
1609 | </map> | ||
1610 | <map keycode="39" pressed="true"> | ||
1611 | <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="true"/> | ||
1612 | <next-state name="Fn-Caps"/> | ||
1613 | </map> | ||
1614 | <map keycode="44" pressed="true"> | ||
1615 | <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="true"/> | ||
1616 | <next-state name="Fn-Caps"/> | ||
1617 | </map> | ||
1618 | <map keycode="46" pressed="true"> | ||
1619 | <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="true"/> | ||
1620 | <next-state name="Fn-Caps"/> | ||
1621 | </map> | ||
1622 | <map keycode="47" pressed="true"> | ||
1623 | <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1624 | <next-state name="Fn-Num"/> | ||
1625 | </map> | ||
1626 | <map keycode="65" pressed="true"> | ||
1627 | <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/> | ||
1628 | <next-state name="Fn-Caps"/> | ||
1629 | </map> | ||
1630 | <map keycode="66" pressed="true"> | ||
1631 | <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/> | ||
1632 | <next-state name="Fn-Caps"/> | ||
1633 | </map> | ||
1634 | <map keycode="67" pressed="true"> | ||
1635 | <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/> | ||
1636 | <next-state name="Fn-Caps"/> | ||
1637 | </map> | ||
1638 | <map keycode="68" pressed="true"> | ||
1639 | <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/> | ||
1640 | <next-state name="Fn-Caps"/> | ||
1641 | </map> | ||
1642 | <map keycode="69" pressed="true"> | ||
1643 | <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/> | ||
1644 | <next-state name="Fn-Caps"/> | ||
1645 | </map> | ||
1646 | <map keycode="70" pressed="true"> | ||
1647 | <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/> | ||
1648 | <next-state name="Fn-Caps"/> | ||
1649 | </map> | ||
1650 | <map keycode="71" pressed="true"> | ||
1651 | <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/> | ||
1652 | <next-state name="Fn-Caps"/> | ||
1653 | </map> | ||
1654 | <map keycode="72" pressed="true"> | ||
1655 | <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/> | ||
1656 | <next-state name="Fn-Caps"/> | ||
1657 | </map> | ||
1658 | <map keycode="73" pressed="true"> | ||
1659 | <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/> | ||
1660 | <next-state name="Fn-Caps"/> | ||
1661 | </map> | ||
1662 | <map keycode="74" pressed="true"> | ||
1663 | <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/> | ||
1664 | <next-state name="Fn-Caps"/> | ||
1665 | </map> | ||
1666 | <map keycode="75" pressed="true"> | ||
1667 | <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/> | ||
1668 | <next-state name="Fn-Caps"/> | ||
1669 | </map> | ||
1670 | <map keycode="76" pressed="true"> | ||
1671 | <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/> | ||
1672 | <next-state name="Fn-Caps"/> | ||
1673 | </map> | ||
1674 | <map keycode="77" pressed="true"> | ||
1675 | <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/> | ||
1676 | <next-state name="Fn-Caps"/> | ||
1677 | </map> | ||
1678 | <map keycode="78" pressed="true"> | ||
1679 | <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/> | ||
1680 | <next-state name="Fn-Caps"/> | ||
1681 | </map> | ||
1682 | <map keycode="79" pressed="true"> | ||
1683 | <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/> | ||
1684 | <next-state name="Fn-Caps"/> | ||
1685 | </map> | ||
1686 | <map keycode="80" pressed="true"> | ||
1687 | <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/> | ||
1688 | <next-state name="Fn-Caps"/> | ||
1689 | </map> | ||
1690 | <map keycode="81" pressed="true"> | ||
1691 | <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/> | ||
1692 | <next-state name="Fn-Caps"/> | ||
1693 | </map> | ||
1694 | <map keycode="82" pressed="true"> | ||
1695 | <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/> | ||
1696 | <next-state name="Fn-Caps"/> | ||
1697 | </map> | ||
1698 | <map keycode="83" pressed="true"> | ||
1699 | <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/> | ||
1700 | <next-state name="Fn-Caps"/> | ||
1701 | </map> | ||
1702 | <map keycode="84" pressed="true"> | ||
1703 | <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/> | ||
1704 | <next-state name="Fn-Caps"/> | ||
1705 | </map> | ||
1706 | <map keycode="85" pressed="true"> | ||
1707 | <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/> | ||
1708 | <next-state name="Fn-Caps"/> | ||
1709 | </map> | ||
1710 | <map keycode="86" pressed="true"> | ||
1711 | <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/> | ||
1712 | <next-state name="Fn-Caps"/> | ||
1713 | </map> | ||
1714 | <map keycode="87" pressed="true"> | ||
1715 | <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/> | ||
1716 | <next-state name="Fn-Caps"/> | ||
1717 | </map> | ||
1718 | <map keycode="88" pressed="true"> | ||
1719 | <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/> | ||
1720 | <next-state name="Fn-Caps"/> | ||
1721 | </map> | ||
1722 | <map keycode="89" pressed="true"> | ||
1723 | <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/> | ||
1724 | <next-state name="Fn-Caps"/> | ||
1725 | </map> | ||
1726 | <map keycode="4097" pressed="true"> | ||
1727 | <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1728 | <next-state name="Fn"/> | ||
1729 | </map> | ||
1730 | <map keycode="4128" pressed="true"> | ||
1731 | <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
1732 | <next-state name="LShift-Fn-Caps"/> | ||
1733 | </map> | ||
1734 | <map keycode="4130" pressed="true"> | ||
1735 | <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
1736 | <next-state name="RShift-Fn-Caps"/> | ||
1737 | </map> | ||
1738 | <map keycode="32" pressed="false"> | ||
1739 | <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/> | ||
1740 | <next-state name="Fn-Caps"/> | ||
1741 | </map> | ||
1742 | <map keycode="39" pressed="false"> | ||
1743 | <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/> | ||
1744 | <next-state name="Fn-Caps"/> | ||
1745 | </map> | ||
1746 | <map keycode="44" pressed="false"> | ||
1747 | <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/> | ||
1748 | <next-state name="Fn-Caps"/> | ||
1749 | </map> | ||
1750 | <map keycode="46" pressed="false"> | ||
1751 | <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/> | ||
1752 | <next-state name="Fn-Caps"/> | ||
1753 | </map> | ||
1754 | <map keycode="65" pressed="false"> | ||
1755 | <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/> | ||
1756 | <next-state name="Fn-Caps"/> | ||
1757 | </map> | ||
1758 | <map keycode="66" pressed="false"> | ||
1759 | <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/> | ||
1760 | <next-state name="Fn-Caps"/> | ||
1761 | </map> | ||
1762 | <map keycode="67" pressed="false"> | ||
1763 | <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/> | ||
1764 | <next-state name="Fn-Caps"/> | ||
1765 | </map> | ||
1766 | <map keycode="68" pressed="false"> | ||
1767 | <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/> | ||
1768 | <next-state name="Fn-Caps"/> | ||
1769 | </map> | ||
1770 | <map keycode="69" pressed="false"> | ||
1771 | <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/> | ||
1772 | <next-state name="Fn-Caps"/> | ||
1773 | </map> | ||
1774 | <map keycode="70" pressed="false"> | ||
1775 | <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/> | ||
1776 | <next-state name="Fn-Caps"/> | ||
1777 | </map> | ||
1778 | <map keycode="71" pressed="false"> | ||
1779 | <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/> | ||
1780 | <next-state name="Fn-Caps"/> | ||
1781 | </map> | ||
1782 | <map keycode="72" pressed="false"> | ||
1783 | <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/> | ||
1784 | <next-state name="Fn-Caps"/> | ||
1785 | </map> | ||
1786 | <map keycode="73" pressed="false"> | ||
1787 | <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/> | ||
1788 | <next-state name="Fn-Caps"/> | ||
1789 | </map> | ||
1790 | <map keycode="74" pressed="false"> | ||
1791 | <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/> | ||
1792 | <next-state name="Fn-Caps"/> | ||
1793 | </map> | ||
1794 | <map keycode="75" pressed="false"> | ||
1795 | <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/> | ||
1796 | <next-state name="Fn-Caps"/> | ||
1797 | </map> | ||
1798 | <map keycode="76" pressed="false"> | ||
1799 | <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/> | ||
1800 | <next-state name="Fn-Caps"/> | ||
1801 | </map> | ||
1802 | <map keycode="77" pressed="false"> | ||
1803 | <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/> | ||
1804 | <next-state name="Fn-Caps"/> | ||
1805 | </map> | ||
1806 | <map keycode="78" pressed="false"> | ||
1807 | <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/> | ||
1808 | <next-state name="Fn-Caps"/> | ||
1809 | </map> | ||
1810 | <map keycode="79" pressed="false"> | ||
1811 | <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/> | ||
1812 | <next-state name="Fn-Caps"/> | ||
1813 | </map> | ||
1814 | <map keycode="80" pressed="false"> | ||
1815 | <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/> | ||
1816 | <next-state name="Fn-Caps"/> | ||
1817 | </map> | ||
1818 | <map keycode="81" pressed="false"> | ||
1819 | <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/> | ||
1820 | <next-state name="Fn-Caps"/> | ||
1821 | </map> | ||
1822 | <map keycode="82" pressed="false"> | ||
1823 | <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/> | ||
1824 | <next-state name="Fn-Caps"/> | ||
1825 | </map> | ||
1826 | <map keycode="83" pressed="false"> | ||
1827 | <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/> | ||
1828 | <next-state name="Fn-Caps"/> | ||
1829 | </map> | ||
1830 | <map keycode="84" pressed="false"> | ||
1831 | <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/> | ||
1832 | <next-state name="Fn-Caps"/> | ||
1833 | </map> | ||
1834 | <map keycode="85" pressed="false"> | ||
1835 | <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/> | ||
1836 | <next-state name="Fn-Caps"/> | ||
1837 | </map> | ||
1838 | <map keycode="86" pressed="false"> | ||
1839 | <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/> | ||
1840 | <next-state name="Fn-Caps"/> | ||
1841 | </map> | ||
1842 | <map keycode="87" pressed="false"> | ||
1843 | <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/> | ||
1844 | <next-state name="Fn-Caps"/> | ||
1845 | </map> | ||
1846 | <map keycode="88" pressed="false"> | ||
1847 | <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/> | ||
1848 | <next-state name="Fn-Caps"/> | ||
1849 | </map> | ||
1850 | <map keycode="89" pressed="false"> | ||
1851 | <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/> | ||
1852 | <next-state name="Fn-Caps"/> | ||
1853 | </map> | ||
1854 | <map keycode="4165" pressed="false"> | ||
1855 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1856 | <next-state name="Caps-sFn"/> | ||
1857 | </map> | ||
1858 | </state> | ||
1859 | |||
1860 | <state name="Caps-sFn"> | ||
1861 | <map keycode="32" pressed="true"> | ||
1862 | <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="true"/> | ||
1863 | <next-state name="Caps"/> | ||
1864 | </map> | ||
1865 | <map keycode="39" pressed="true"> | ||
1866 | <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="true"/> | ||
1867 | <next-state name="Caps"/> | ||
1868 | </map> | ||
1869 | <map keycode="44" pressed="true"> | ||
1870 | <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="true"/> | ||
1871 | <next-state name="Caps"/> | ||
1872 | </map> | ||
1873 | <map keycode="46" pressed="true"> | ||
1874 | <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="true"/> | ||
1875 | <next-state name="Caps"/> | ||
1876 | </map> | ||
1877 | <map keycode="47" pressed="true"> | ||
1878 | <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1879 | <next-state name="Num"/> | ||
1880 | </map> | ||
1881 | <map keycode="65" pressed="true"> | ||
1882 | <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/> | ||
1883 | <next-state name="Caps"/> | ||
1884 | </map> | ||
1885 | <map keycode="66" pressed="true"> | ||
1886 | <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/> | ||
1887 | <next-state name="Caps"/> | ||
1888 | </map> | ||
1889 | <map keycode="67" pressed="true"> | ||
1890 | <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/> | ||
1891 | <next-state name="Caps"/> | ||
1892 | </map> | ||
1893 | <map keycode="68" pressed="true"> | ||
1894 | <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/> | ||
1895 | <next-state name="Caps"/> | ||
1896 | </map> | ||
1897 | <map keycode="69" pressed="true"> | ||
1898 | <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/> | ||
1899 | <next-state name="Caps"/> | ||
1900 | </map> | ||
1901 | <map keycode="70" pressed="true"> | ||
1902 | <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/> | ||
1903 | <next-state name="Caps"/> | ||
1904 | </map> | ||
1905 | <map keycode="71" pressed="true"> | ||
1906 | <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/> | ||
1907 | <next-state name="Caps"/> | ||
1908 | </map> | ||
1909 | <map keycode="72" pressed="true"> | ||
1910 | <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/> | ||
1911 | <next-state name="Caps"/> | ||
1912 | </map> | ||
1913 | <map keycode="73" pressed="true"> | ||
1914 | <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/> | ||
1915 | <next-state name="Caps"/> | ||
1916 | </map> | ||
1917 | <map keycode="74" pressed="true"> | ||
1918 | <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/> | ||
1919 | <next-state name="Caps"/> | ||
1920 | </map> | ||
1921 | <map keycode="75" pressed="true"> | ||
1922 | <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/> | ||
1923 | <next-state name="Caps"/> | ||
1924 | </map> | ||
1925 | <map keycode="76" pressed="true"> | ||
1926 | <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/> | ||
1927 | <next-state name="Caps"/> | ||
1928 | </map> | ||
1929 | <map keycode="77" pressed="true"> | ||
1930 | <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/> | ||
1931 | <next-state name="Caps"/> | ||
1932 | </map> | ||
1933 | <map keycode="78" pressed="true"> | ||
1934 | <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/> | ||
1935 | <next-state name="Caps"/> | ||
1936 | </map> | ||
1937 | <map keycode="79" pressed="true"> | ||
1938 | <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/> | ||
1939 | <next-state name="Caps"/> | ||
1940 | </map> | ||
1941 | <map keycode="80" pressed="true"> | ||
1942 | <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/> | ||
1943 | <next-state name="Caps"/> | ||
1944 | </map> | ||
1945 | <map keycode="81" pressed="true"> | ||
1946 | <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/> | ||
1947 | <next-state name="Caps"/> | ||
1948 | </map> | ||
1949 | <map keycode="82" pressed="true"> | ||
1950 | <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/> | ||
1951 | <next-state name="Caps"/> | ||
1952 | </map> | ||
1953 | <map keycode="83" pressed="true"> | ||
1954 | <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/> | ||
1955 | <next-state name="Caps"/> | ||
1956 | </map> | ||
1957 | <map keycode="84" pressed="true"> | ||
1958 | <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/> | ||
1959 | <next-state name="Caps"/> | ||
1960 | </map> | ||
1961 | <map keycode="85" pressed="true"> | ||
1962 | <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/> | ||
1963 | <next-state name="Caps"/> | ||
1964 | </map> | ||
1965 | <map keycode="86" pressed="true"> | ||
1966 | <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/> | ||
1967 | <next-state name="Caps"/> | ||
1968 | </map> | ||
1969 | <map keycode="87" pressed="true"> | ||
1970 | <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/> | ||
1971 | <next-state name="Caps"/> | ||
1972 | </map> | ||
1973 | <map keycode="88" pressed="true"> | ||
1974 | <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/> | ||
1975 | <next-state name="Caps"/> | ||
1976 | </map> | ||
1977 | <map keycode="89" pressed="true"> | ||
1978 | <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/> | ||
1979 | <next-state name="Caps"/> | ||
1980 | </map> | ||
1981 | <map keycode="4097" pressed="true"> | ||
1982 | <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
1983 | <next-state name="Normal"/> | ||
1984 | </map> | ||
1985 | <map keycode="4128" pressed="true"> | ||
1986 | <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
1987 | <next-state name="LShift-Caps"/> | ||
1988 | </map> | ||
1989 | <map keycode="4130" pressed="true"> | ||
1990 | <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/> | ||
1991 | <next-state name="RShift-Caps"/> | ||
1992 | </map> | ||
1993 | <map keycode="32" pressed="false"> | ||
1994 | <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/> | ||
1995 | <next-state name="Caps"/> | ||
1996 | </map> | ||
1997 | <map keycode="39" pressed="false"> | ||
1998 | <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/> | ||
1999 | <next-state name="Caps"/> | ||
2000 | </map> | ||
2001 | <map keycode="44" pressed="false"> | ||
2002 | <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/> | ||
2003 | <next-state name="Caps"/> | ||
2004 | </map> | ||
2005 | <map keycode="46" pressed="false"> | ||
2006 | <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/> | ||
2007 | <next-state name="Caps"/> | ||
2008 | </map> | ||
2009 | <map keycode="65" pressed="false"> | ||
2010 | <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/> | ||
2011 | <next-state name="Caps"/> | ||
2012 | </map> | ||
2013 | <map keycode="66" pressed="false"> | ||
2014 | <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/> | ||
2015 | <next-state name="Caps"/> | ||
2016 | </map> | ||
2017 | <map keycode="67" pressed="false"> | ||
2018 | <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/> | ||
2019 | <next-state name="Caps"/> | ||
2020 | </map> | ||
2021 | <map keycode="68" pressed="false"> | ||
2022 | <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/> | ||
2023 | <next-state name="Caps"/> | ||
2024 | </map> | ||
2025 | <map keycode="69" pressed="false"> | ||
2026 | <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/> | ||
2027 | <next-state name="Caps"/> | ||
2028 | </map> | ||
2029 | <map keycode="70" pressed="false"> | ||
2030 | <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/> | ||
2031 | <next-state name="Caps"/> | ||
2032 | </map> | ||
2033 | <map keycode="71" pressed="false"> | ||
2034 | <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/> | ||
2035 | <next-state name="Caps"/> | ||
2036 | </map> | ||
2037 | <map keycode="72" pressed="false"> | ||
2038 | <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/> | ||
2039 | <next-state name="Caps"/> | ||
2040 | </map> | ||
2041 | <map keycode="73" pressed="false"> | ||
2042 | <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/> | ||
2043 | <next-state name="Caps"/> | ||
2044 | </map> | ||
2045 | <map keycode="74" pressed="false"> | ||
2046 | <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/> | ||
2047 | <next-state name="Caps"/> | ||
2048 | </map> | ||
2049 | <map keycode="75" pressed="false"> | ||
2050 | <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/> | ||
2051 | <next-state name="Caps"/> | ||
2052 | </map> | ||
2053 | <map keycode="76" pressed="false"> | ||
2054 | <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/> | ||
2055 | <next-state name="Caps"/> | ||
2056 | </map> | ||
2057 | <map keycode="77" pressed="false"> | ||
2058 | <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/> | ||
2059 | <next-state name="Caps"/> | ||
2060 | </map> | ||
2061 | <map keycode="78" pressed="false"> | ||
2062 | <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/> | ||
2063 | <next-state name="Caps"/> | ||
2064 | </map> | ||
2065 | <map keycode="79" pressed="false"> | ||
2066 | <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/> | ||
2067 | <next-state name="Caps"/> | ||
2068 | </map> | ||
2069 | <map keycode="80" pressed="false"> | ||
2070 | <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/> | ||
2071 | <next-state name="Caps"/> | ||
2072 | </map> | ||
2073 | <map keycode="81" pressed="false"> | ||
2074 | <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/> | ||
2075 | <next-state name="Caps"/> | ||
2076 | </map> | ||
2077 | <map keycode="82" pressed="false"> | ||
2078 | <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/> | ||
2079 | <next-state name="Caps"/> | ||
2080 | </map> | ||
2081 | <map keycode="83" pressed="false"> | ||
2082 | <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/> | ||
2083 | <next-state name="Caps"/> | ||
2084 | </map> | ||
2085 | <map keycode="84" pressed="false"> | ||
2086 | <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/> | ||
2087 | <next-state name="Caps"/> | ||
2088 | </map> | ||
2089 | <map keycode="85" pressed="false"> | ||
2090 | <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/> | ||
2091 | <next-state name="Caps"/> | ||
2092 | </map> | ||
2093 | <map keycode="86" pressed="false"> | ||
2094 | <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/> | ||
2095 | <next-state name="Caps"/> | ||
2096 | </map> | ||
2097 | <map keycode="87" pressed="false"> | ||
2098 | <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/> | ||
2099 | <next-state name="Caps"/> | ||
2100 | </map> | ||
2101 | <map keycode="88" pressed="false"> | ||
2102 | <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/> | ||
2103 | <next-state name="Caps"/> | ||
2104 | </map> | ||
2105 | <map keycode="89" pressed="false"> | ||
2106 | <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/> | ||
2107 | <next-state name="Caps"/> | ||
2108 | </map> | ||
2109 | <map keycode="4165" pressed="false"> | ||
2110 | <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/> | ||
2111 | <next-state name="Caps-iFn"/> | ||
2112 | </map> | ||
2113 | </state> | ||
2114 | |||
2115 | </keymap> | ||
diff --git a/share/zkb/de.xml b/share/zkb/de.xml new file mode 100644 index 0000000..679ebc3 --- a/dev/null +++ b/share/zkb/de.xml | |||
@@ -0,0 +1,617 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <include file="common.xml"/> | ||
4 | |||
5 | <state name="LShift-RShift" parent="common"/> | ||
6 | <state name="LShift-RShift-Caps" parent="common"/> | ||
7 | |||
8 | <state name="LShift"> | ||
9 | <map keycode="Right Shift" pressed="true"> | ||
10 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
11 | <next-state name="LShift-RShift"/> | ||
12 | </map> | ||
13 | </state> | ||
14 | |||
15 | <state name="RShift"> | ||
16 | <map keycode="E" pressed="true"> | ||
17 | <event keycode="E" unicode="8364" pressed="true" autorepeat="true"/> | ||
18 | </map> | ||
19 | |||
20 | <map keycode="O" pressed="true"> | ||
21 | <event keycode="O" unicode="223" pressed="true" autorepeat="true"/> | ||
22 | </map> | ||
23 | |||
24 | <map keycode="L" pressed="true"> | ||
25 | <event keycode="L" unicode="252" pressed="true" autorepeat="true"/> | ||
26 | </map> | ||
27 | |||
28 | <map keycode="M" pressed="true"> | ||
29 | <event keycode="M" unicode="246" pressed="true" autorepeat="true"/> | ||
30 | </map> | ||
31 | |||
32 | <map keycode="Comma" pressed="true"> | ||
33 | <event keycode="Comma" unicode="228" pressed="true" autorepeat="true"/> | ||
34 | </map> | ||
35 | |||
36 | <map keycode="E" pressed="false"> | ||
37 | <event keycode="E" unicode="8364" pressed="false"/> | ||
38 | </map> | ||
39 | |||
40 | <map keycode="O" pressed="false"> | ||
41 | <event keycode="O" unicode="223" pressed="false"/> | ||
42 | </map> | ||
43 | |||
44 | <map keycode="L" pressed="false"> | ||
45 | <event keycode="L" unicode="252" pressed="false"/> | ||
46 | </map> | ||
47 | |||
48 | <map keycode="M" pressed="false"> | ||
49 | <event keycode="M" unicode="246" pressed="false"/> | ||
50 | </map> | ||
51 | |||
52 | <map keycode="Comma" pressed="false"> | ||
53 | <event keycode="Comma" unicode="228" pressed="false"/> | ||
54 | </map> | ||
55 | |||
56 | <map keycode="Left Shift" pressed="true"> | ||
57 | <event keycode="Shift" unicode="-1" pressed="true"/> | ||
58 | <next-state name="LShift-RShift"/> | ||
59 | </map> | ||
60 | </state> | ||
61 | |||
62 | <state name="LShift-Caps"> | ||
63 | <map keycode="Right Shift" pressed="true"> | ||
64 | <event keycode="Meta" unicode="-1" pressed="true"/> | ||
65 | <next-state name="LShift-RShift-Caps"/> | ||
66 | </map> | ||
67 | </state> | ||
68 | |||
69 | <state name="LShift-Num"> | ||
70 | <map keycode="Left Shift" pressed="false"> | ||
71 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
72 | <next-state name="Num"/> | ||
73 | </map> | ||
74 | |||
75 | <map keycode="Fn" pressed="true"> | ||
76 | <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/> | ||
77 | <next-state name="LShift-Fn-Num"/> | ||
78 | </map> | ||
79 | </state> | ||
80 | |||
81 | <state name="RShift-Caps"> | ||
82 | <map keycode="E" pressed="true"> | ||
83 | <event keycode="E" unicode="8364" pressed="true" autorepeat="true"/> | ||
84 | </map> | ||
85 | |||
86 | <map keycode="O" pressed="true"> | ||
87 | <event keycode="O" unicode="223" pressed="true" autorepeat="true"/> | ||
88 | </map> | ||
89 | |||
90 | <map keycode="L" pressed="true"> | ||
91 | <event keycode="L" unicode="220" pressed="true" autorepeat="true"/> | ||
92 | </map> | ||
93 | |||
94 | <map keycode="M" pressed="true"> | ||
95 | <event keycode="M" unicode="214" pressed="true" autorepeat="true"/> | ||
96 | </map> | ||
97 | |||
98 | <map keycode="Comma" pressed="true"> | ||
99 | <event keycode="Comma" unicode="196" pressed="true" autorepeat="true"/> | ||
100 | </map> | ||
101 | |||
102 | <map keycode="E" pressed="false"> | ||
103 | <event keycode="E" unicode="8364" pressed="false"/> | ||
104 | </map> | ||
105 | |||
106 | <map keycode="O" pressed="false"> | ||
107 | <event keycode="O" unicode="223" pressed="false"/> | ||
108 | </map> | ||
109 | |||
110 | <map keycode="L" pressed="false"> | ||
111 | <event keycode="L" unicode="220" pressed="false"/> | ||
112 | </map> | ||
113 | |||
114 | <map keycode="M" pressed="false"> | ||
115 | <event keycode="M" unicode="214" pressed="false"/> | ||
116 | </map> | ||
117 | |||
118 | <map keycode="Comma" pressed="false"> | ||
119 | <event keycode="Comma" unicode="196" pressed="false"/> | ||
120 | </map> | ||
121 | |||
122 | <map keycode="Left Shift" pressed="true"> | ||
123 | <event keycode="Shift" unicode="-1" pressed="true"/> | ||
124 | <next-state name="LShift-RShift-Caps"/> | ||
125 | </map> | ||
126 | </state> | ||
127 | |||
128 | <state name="LShift-RShift"> | ||
129 | <map keycode="E" pressed="true"> | ||
130 | <event keycode="E" unicode="8364" pressed="true" autorepeat="true"/> | ||
131 | </map> | ||
132 | |||
133 | <map keycode="O" pressed="true"> | ||
134 | <event keycode="O" unicode="223" pressed="true" autorepeat="true"/> | ||
135 | </map> | ||
136 | |||
137 | <map keycode="L" pressed="true"> | ||
138 | <event keycode="L" unicode="220" pressed="true" autorepeat="true"/> | ||
139 | </map> | ||
140 | |||
141 | <map keycode="M" pressed="true"> | ||
142 | <event keycode="M" unicode="214" pressed="true" autorepeat="true"/> | ||
143 | </map> | ||
144 | |||
145 | <map keycode="Comma" pressed="true"> | ||
146 | <event keycode="Comma" unicode="196" pressed="true" autorepeat="true"/> | ||
147 | </map> | ||
148 | |||
149 | <map keycode="E" pressed="false"> | ||
150 | <event keycode="E" unicode="8364" pressed="false"/> | ||
151 | </map> | ||
152 | |||
153 | <map keycode="O" pressed="false"> | ||
154 | <event keycode="O" unicode="223" pressed="false"/> | ||
155 | </map> | ||
156 | |||
157 | <map keycode="L" pressed="false"> | ||
158 | <event keycode="L" unicode="220" pressed="false"/> | ||
159 | </map> | ||
160 | |||
161 | <map keycode="M" pressed="false"> | ||
162 | <event keycode="M" unicode="214" pressed="false"/> | ||
163 | </map> | ||
164 | |||
165 | <map keycode="Period" pressed="false"> | ||
166 | <event keycode="Period" unicode="196" pressed="false"/> | ||
167 | </map> | ||
168 | |||
169 | <map keycode="Left Shift" pressed="false"> | ||
170 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
171 | <next-state name="RShift"/> | ||
172 | </map> | ||
173 | |||
174 | <map keycode="Right Shift" pressed="false"> | ||
175 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
176 | <next-state name="LShift"/> | ||
177 | </map> | ||
178 | </state> | ||
179 | |||
180 | <state name="LShift-RShift-Caps"> | ||
181 | <map keycode="E" pressed="true"> | ||
182 | <event keycode="E" unicode="8364" pressed="true" autorepeat="true"/> | ||
183 | </map> | ||
184 | |||
185 | <map keycode="O" pressed="true"> | ||
186 | <event keycode="O" unicode="223" pressed="true" autorepeat="true"/> | ||
187 | </map> | ||
188 | |||
189 | <map keycode="L" pressed="true"> | ||
190 | <event keycode="L" unicode="252" pressed="true" autorepeat="true"/> | ||
191 | </map> | ||
192 | |||
193 | <map keycode="M" pressed="true"> | ||
194 | <event keycode="M" unicode="246" pressed="true" autorepeat="true"/> | ||
195 | </map> | ||
196 | |||
197 | <map keycode="Comma" pressed="true"> | ||
198 | <event keycode="Comma" unicode="228" pressed="true" autorepeat="true"/> | ||
199 | </map> | ||
200 | |||
201 | <map keycode="E" pressed="false"> | ||
202 | <event keycode="E" unicode="8364" pressed="false"/> | ||
203 | </map> | ||
204 | |||
205 | <map keycode="O" pressed="false"> | ||
206 | <event keycode="O" unicode="223" pressed="false"/> | ||
207 | </map> | ||
208 | |||
209 | <map keycode="L" pressed="false"> | ||
210 | <event keycode="L" unicode="252" pressed="false"/> | ||
211 | </map> | ||
212 | |||
213 | <map keycode="M" pressed="false"> | ||
214 | <event keycode="M" unicode="246" pressed="false"/> | ||
215 | </map> | ||
216 | |||
217 | <map keycode="Comma" pressed="false"> | ||
218 | <event keycode="Comma" unicode="228" pressed="false"/> | ||
219 | </map> | ||
220 | |||
221 | <map keycode="Left Shift" pressed="false"> | ||
222 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
223 | <next-state name="RShift-Caps"/> | ||
224 | </map> | ||
225 | |||
226 | <map keycode="Right Shift" pressed="false"> | ||
227 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
228 | <next-state name="LShift-Caps"/> | ||
229 | </map> | ||
230 | </state> | ||
231 | |||
232 | <state name="Caps"> | ||
233 | <map keycode="Right Shift" pressed="true"> | ||
234 | <event keycode="Meta" unicode="-1" pressed="true"/> | ||
235 | <next-state name="RShift-Caps"/> | ||
236 | </map> | ||
237 | </state> | ||
238 | |||
239 | <state name="lower-case"> | ||
240 | <map keycode="Space" pressed="true"> | ||
241 | <event keycode="Space" unicode="32" pressed="true" autorepeat="true"/> | ||
242 | </map> | ||
243 | <map keycode="Apostrophe" pressed="true"> | ||
244 | <event keycode="Apostrophe" unicode="39" pressed="true" autorepeat="true"/> | ||
245 | </map> | ||
246 | <map keycode="Comma" pressed="true"> | ||
247 | <event keycode="Comma" unicode="44" pressed="true" autorepeat="true"/> | ||
248 | </map> | ||
249 | <map keycode="Period" pressed="true"> | ||
250 | <event keycode="Period" unicode="46" pressed="true" autorepeat="true"/> | ||
251 | </map> | ||
252 | <map keycode="Slash" pressed="true"> | ||
253 | <event keycode="Slash" unicode="47" pressed="true" autorepeat="true"/> | ||
254 | </map> | ||
255 | <map keycode="A" pressed="true"> | ||
256 | <event keycode="A" unicode="97" pressed="true" autorepeat="true"/> | ||
257 | </map> | ||
258 | <map keycode="B" pressed="true"> | ||
259 | <event keycode="B" unicode="98" pressed="true" autorepeat="true"/> | ||
260 | </map> | ||
261 | <map keycode="C" pressed="true"> | ||
262 | <event keycode="C" unicode="99" pressed="true" autorepeat="true"/> | ||
263 | </map> | ||
264 | <map keycode="D" pressed="true"> | ||
265 | <event keycode="D" unicode="100" pressed="true" autorepeat="true"/> | ||
266 | </map> | ||
267 | <map keycode="E" pressed="true"> | ||
268 | <event keycode="E" unicode="101" pressed="true" autorepeat="true"/> | ||
269 | </map> | ||
270 | <map keycode="F" pressed="true"> | ||
271 | <event keycode="F" unicode="102" pressed="true" autorepeat="true"/> | ||
272 | </map> | ||
273 | <map keycode="G" pressed="true"> | ||
274 | <event keycode="G" unicode="103" pressed="true" autorepeat="true"/> | ||
275 | </map> | ||
276 | <map keycode="H" pressed="true"> | ||
277 | <event keycode="H" unicode="104" pressed="true" autorepeat="true"/> | ||
278 | </map> | ||
279 | <map keycode="I" pressed="true"> | ||
280 | <event keycode="I" unicode="105" pressed="true" autorepeat="true"/> | ||
281 | </map> | ||
282 | <map keycode="J" pressed="true"> | ||
283 | <event keycode="J" unicode="106" pressed="true" autorepeat="true"/> | ||
284 | </map> | ||
285 | <map keycode="K" pressed="true"> | ||
286 | <event keycode="K" unicode="107" pressed="true" autorepeat="true"/> | ||
287 | </map> | ||
288 | <map keycode="L" pressed="true"> | ||
289 | <event keycode="L" unicode="108" pressed="true" autorepeat="true"/> | ||
290 | </map> | ||
291 | <map keycode="M" pressed="true"> | ||
292 | <event keycode="M" unicode="109" pressed="true" autorepeat="true"/> | ||
293 | </map> | ||
294 | <map keycode="N" pressed="true"> | ||
295 | <event keycode="N" unicode="110" pressed="true" autorepeat="true"/> | ||
296 | </map> | ||
297 | <map keycode="O" pressed="true"> | ||
298 | <event keycode="O" unicode="111" pressed="true" autorepeat="true"/> | ||
299 | </map> | ||
300 | <map keycode="P" pressed="true"> | ||
301 | <event keycode="P" unicode="112" pressed="true" autorepeat="true"/> | ||
302 | </map> | ||
303 | <map keycode="Q" pressed="true"> | ||
304 | <event keycode="Q" unicode="113" pressed="true" autorepeat="true"/> | ||
305 | </map> | ||
306 | <map keycode="R" pressed="true"> | ||
307 | <event keycode="R" unicode="114" pressed="true" autorepeat="true"/> | ||
308 | </map> | ||
309 | <map keycode="S" pressed="true"> | ||
310 | <event keycode="S" unicode="115" pressed="true" autorepeat="true"/> | ||
311 | </map> | ||
312 | <map keycode="T" pressed="true"> | ||
313 | <event keycode="T" unicode="116" pressed="true" autorepeat="true"/> | ||
314 | </map> | ||
315 | <map keycode="U" pressed="true"> | ||
316 | <event keycode="U" unicode="117" pressed="true" autorepeat="true"/> | ||
317 | </map> | ||
318 | <map keycode="V" pressed="true"> | ||
319 | <event keycode="V" unicode="118" pressed="true" autorepeat="true"/> | ||
320 | </map> | ||
321 | <map keycode="W" pressed="true"> | ||
322 | <event keycode="W" unicode="119" pressed="true" autorepeat="true"/> | ||
323 | </map> | ||
324 | <map keycode="X" pressed="true"> | ||
325 | <event keycode="X" unicode="120" pressed="true" autorepeat="true"/> | ||
326 | </map> | ||
327 | <map keycode="Y" pressed="true"> | ||
328 | <event keycode="Y" unicode="122" pressed="true" autorepeat="true"/> | ||
329 | </map> | ||
330 | <map keycode="Z" pressed="true"> | ||
331 | <event keycode="Z" unicode="121" pressed="true" autorepeat="true"/> | ||
332 | </map> | ||
333 | <map keycode="Space" pressed="false"> | ||
334 | <event keycode="Space" unicode="32" pressed="false"/> | ||
335 | </map> | ||
336 | <map keycode="Apostrophe" pressed="false"> | ||
337 | <event keycode="Apostrophe" unicode="39" pressed="false"/> | ||
338 | </map> | ||
339 | <map keycode="Comma" pressed="false"> | ||
340 | <event keycode="Comma" unicode="44" pressed="false"/> | ||
341 | </map> | ||
342 | <map keycode="Period" pressed="false"> | ||
343 | <event keycode="Period" unicode="46" pressed="false"/> | ||
344 | </map> | ||
345 | <map keycode="Slash" pressed="false"> | ||
346 | <event keycode="Slash" unicode="47" pressed="false"/> | ||
347 | </map> | ||
348 | <map keycode="A" pressed="false"> | ||
349 | <event keycode="A" unicode="97" pressed="false"/> | ||
350 | </map> | ||
351 | <map keycode="B" pressed="false"> | ||
352 | <event keycode="B" unicode="98" pressed="false"/> | ||
353 | </map> | ||
354 | <map keycode="C" pressed="false"> | ||
355 | <event keycode="C" unicode="99" pressed="false"/> | ||
356 | </map> | ||
357 | <map keycode="D" pressed="false"> | ||
358 | <event keycode="D" unicode="100" pressed="false"/> | ||
359 | </map> | ||
360 | <map keycode="E" pressed="false"> | ||
361 | <event keycode="E" unicode="101" pressed="false"/> | ||
362 | </map> | ||
363 | <map keycode="F" pressed="false"> | ||
364 | <event keycode="F" unicode="102" pressed="false"/> | ||
365 | </map> | ||
366 | <map keycode="G" pressed="false"> | ||
367 | <event keycode="G" unicode="103" pressed="false"/> | ||
368 | </map> | ||
369 | <map keycode="H" pressed="false"> | ||
370 | <event keycode="H" unicode="104" pressed="false"/> | ||
371 | </map> | ||
372 | <map keycode="I" pressed="false"> | ||
373 | <event keycode="I" unicode="105" pressed="false"/> | ||
374 | </map> | ||
375 | <map keycode="J" pressed="false"> | ||
376 | <event keycode="J" unicode="106" pressed="false"/> | ||
377 | </map> | ||
378 | <map keycode="K" pressed="false"> | ||
379 | <event keycode="K" unicode="107" pressed="false"/> | ||
380 | </map> | ||
381 | <map keycode="L" pressed="false"> | ||
382 | <event keycode="L" unicode="108" pressed="false"/> | ||
383 | </map> | ||
384 | <map keycode="M" pressed="false"> | ||
385 | <event keycode="M" unicode="109" pressed="false"/> | ||
386 | </map> | ||
387 | <map keycode="N" pressed="false"> | ||
388 | <event keycode="N" unicode="110" pressed="false"/> | ||
389 | </map> | ||
390 | <map keycode="O" pressed="false"> | ||
391 | <event keycode="O" unicode="111" pressed="false"/> | ||
392 | </map> | ||
393 | <map keycode="P" pressed="false"> | ||
394 | <event keycode="P" unicode="112" pressed="false"/> | ||
395 | </map> | ||
396 | <map keycode="Q" pressed="false"> | ||
397 | <event keycode="Q" unicode="113" pressed="false"/> | ||
398 | </map> | ||
399 | <map keycode="R" pressed="false"> | ||
400 | <event keycode="R" unicode="114" pressed="false"/> | ||
401 | </map> | ||
402 | <map keycode="S" pressed="false"> | ||
403 | <event keycode="S" unicode="115" pressed="false"/> | ||
404 | </map> | ||
405 | <map keycode="T" pressed="false"> | ||
406 | <event keycode="T" unicode="116" pressed="false"/> | ||
407 | </map> | ||
408 | <map keycode="U" pressed="false"> | ||
409 | <event keycode="U" unicode="117" pressed="false"/> | ||
410 | </map> | ||
411 | <map keycode="V" pressed="false"> | ||
412 | <event keycode="V" unicode="118" pressed="false"/> | ||
413 | </map> | ||
414 | <map keycode="W" pressed="false"> | ||
415 | <event keycode="W" unicode="119" pressed="false"/> | ||
416 | </map> | ||
417 | <map keycode="X" pressed="false"> | ||
418 | <event keycode="X" unicode="120" pressed="false"/> | ||
419 | </map> | ||
420 | <map keycode="Y" pressed="false"> | ||
421 | <event keycode="Y" unicode="122" pressed="false"/> | ||
422 | </map> | ||
423 | <map keycode="Z" pressed="false"> | ||
424 | <event keycode="Z" unicode="121" pressed="false"/> | ||
425 | </map> | ||
426 | </state> | ||
427 | |||
428 | <state name="upper-case"> | ||
429 | <map keycode="Space" pressed="true"> | ||
430 | <event keycode="Space" unicode="32" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
431 | </map> | ||
432 | <map keycode="Apostrophe" pressed="true"> | ||
433 | <event keycode="QuoteDbl" unicode="34" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
434 | </map> | ||
435 | <map keycode="Comma" pressed="true"> | ||
436 | <event keycode="Semicolon" unicode="59" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
437 | </map> | ||
438 | <map keycode="Period" pressed="true"> | ||
439 | <event keycode="Colon" unicode="58" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
440 | </map> | ||
441 | <map keycode="Slash" pressed="true"> | ||
442 | <event keycode="Question" unicode="63" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
443 | </map> | ||
444 | <map keycode="A" pressed="true"> | ||
445 | <event keycode="A" unicode="65" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
446 | </map> | ||
447 | <map keycode="B" pressed="true"> | ||
448 | <event keycode="B" unicode="66" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
449 | </map> | ||
450 | <map keycode="C" pressed="true"> | ||
451 | <event keycode="C" unicode="67" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
452 | </map> | ||
453 | <map keycode="D" pressed="true"> | ||
454 | <event keycode="D" unicode="68" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
455 | </map> | ||
456 | <map keycode="E" pressed="true"> | ||
457 | <event keycode="E" unicode="69" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
458 | </map> | ||
459 | <map keycode="F" pressed="true"> | ||
460 | <event keycode="F" unicode="70" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
461 | </map> | ||
462 | <map keycode="G" pressed="true"> | ||
463 | <event keycode="G" unicode="71" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
464 | </map> | ||
465 | <map keycode="H" pressed="true"> | ||
466 | <event keycode="H" unicode="72" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
467 | </map> | ||
468 | <map keycode="I" pressed="true"> | ||
469 | <event keycode="I" unicode="73" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
470 | </map> | ||
471 | <map keycode="J" pressed="true"> | ||
472 | <event keycode="J" unicode="74" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
473 | </map> | ||
474 | <map keycode="K" pressed="true"> | ||
475 | <event keycode="K" unicode="75" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
476 | </map> | ||
477 | <map keycode="L" pressed="true"> | ||
478 | <event keycode="L" unicode="76" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
479 | </map> | ||
480 | <map keycode="M" pressed="true"> | ||
481 | <event keycode="M" unicode="77" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
482 | </map> | ||
483 | <map keycode="N" pressed="true"> | ||
484 | <event keycode="N" unicode="78" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
485 | </map> | ||
486 | <map keycode="O" pressed="true"> | ||
487 | <event keycode="O" unicode="79" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
488 | </map> | ||
489 | <map keycode="P" pressed="true"> | ||
490 | <event keycode="P" unicode="80" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
491 | </map> | ||
492 | <map keycode="Q" pressed="true"> | ||
493 | <event keycode="Q" unicode="81" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
494 | </map> | ||
495 | <map keycode="R" pressed="true"> | ||
496 | <event keycode="R" unicode="82" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
497 | </map> | ||
498 | <map keycode="S" pressed="true"> | ||
499 | <event keycode="S" unicode="83" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
500 | </map> | ||
501 | <map keycode="T" pressed="true"> | ||
502 | <event keycode="T" unicode="84" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
503 | </map> | ||
504 | <map keycode="U" pressed="true"> | ||
505 | <event keycode="U" unicode="85" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
506 | </map> | ||
507 | <map keycode="V" pressed="true"> | ||
508 | <event keycode="V" unicode="86" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
509 | </map> | ||
510 | <map keycode="W" pressed="true"> | ||
511 | <event keycode="W" unicode="87" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
512 | </map> | ||
513 | <map keycode="X" pressed="true"> | ||
514 | <event keycode="X" unicode="88" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
515 | </map> | ||
516 | <map keycode="Y" pressed="true"> | ||
517 | <event keycode="Y" unicode="90" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
518 | </map> | ||
519 | <map keycode="Z" pressed="true"> | ||
520 | <event keycode="Z" unicode="89" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
521 | </map> | ||
522 | <map keycode="Space" pressed="false"> | ||
523 | <event keycode="Space" unicode="32" modifiers="Shift" pressed="false"/> | ||
524 | </map> | ||
525 | <map keycode="Apostrophe" pressed="false"> | ||
526 | <event keycode="QuoteDbl" unicode="34" modifiers="Shift" pressed="false"/> | ||
527 | </map> | ||
528 | <map keycode="Comma" pressed="false"> | ||
529 | <event keycode="Semicolon" unicode="59" modifiers="Shift" pressed="false"/> | ||
530 | </map> | ||
531 | <map keycode="Period" pressed="false"> | ||
532 | <event keycode="Colon" unicode="58" modifiers="Shift" pressed="false"/> | ||
533 | </map> | ||
534 | <map keycode="Slash" pressed="false"> | ||
535 | <event keycode="Question" unicode="63" modifiers="Shift" pressed="false"/> | ||
536 | </map> | ||
537 | <map keycode="A" pressed="false"> | ||
538 | <event keycode="A" unicode="65" modifiers="Shift" pressed="false"/> | ||
539 | </map> | ||
540 | <map keycode="B" pressed="false"> | ||
541 | <event keycode="B" unicode="66" modifiers="Shift" pressed="false"/> | ||
542 | </map> | ||
543 | <map keycode="C" pressed="false"> | ||
544 | <event keycode="C" unicode="67" modifiers="Shift" pressed="false"/> | ||
545 | </map> | ||
546 | <map keycode="D" pressed="false"> | ||
547 | <event keycode="D" unicode="68" modifiers="Shift" pressed="false"/> | ||
548 | </map> | ||
549 | <map keycode="E" pressed="false"> | ||
550 | <event keycode="E" unicode="69" modifiers="Shift" pressed="false"/> | ||
551 | </map> | ||
552 | <map keycode="F" pressed="false"> | ||
553 | <event keycode="F" unicode="70" modifiers="Shift" pressed="false"/> | ||
554 | </map> | ||
555 | <map keycode="G" pressed="false"> | ||
556 | <event keycode="G" unicode="71" modifiers="Shift" pressed="false"/> | ||
557 | </map> | ||
558 | <map keycode="H" pressed="false"> | ||
559 | <event keycode="H" unicode="72" modifiers="Shift" pressed="false"/> | ||
560 | </map> | ||
561 | <map keycode="I" pressed="false"> | ||
562 | <event keycode="I" unicode="73" modifiers="Shift" pressed="false"/> | ||
563 | </map> | ||
564 | <map keycode="J" pressed="false"> | ||
565 | <event keycode="J" unicode="74" modifiers="Shift" pressed="false"/> | ||
566 | </map> | ||
567 | <map keycode="K" pressed="false"> | ||
568 | <event keycode="K" unicode="75" modifiers="Shift" pressed="false"/> | ||
569 | </map> | ||
570 | <map keycode="L" pressed="false"> | ||
571 | <event keycode="L" unicode="76" modifiers="Shift" pressed="false"/> | ||
572 | </map> | ||
573 | <map keycode="M" pressed="false"> | ||
574 | <event keycode="M" unicode="77" modifiers="Shift" pressed="false"/> | ||
575 | </map> | ||
576 | <map keycode="N" pressed="false"> | ||
577 | <event keycode="N" unicode="78" modifiers="Shift" pressed="false"/> | ||
578 | </map> | ||
579 | <map keycode="O" pressed="false"> | ||
580 | <event keycode="O" unicode="79" modifiers="Shift" pressed="false"/> | ||
581 | </map> | ||
582 | <map keycode="P" pressed="false"> | ||
583 | <event keycode="P" unicode="80" modifiers="Shift" pressed="false"/> | ||
584 | </map> | ||
585 | <map keycode="Q" pressed="false"> | ||
586 | <event keycode="Q" unicode="81" modifiers="Shift" pressed="false"/> | ||
587 | </map> | ||
588 | <map keycode="R" pressed="false"> | ||
589 | <event keycode="R" unicode="82" modifiers="Shift" pressed="false"/> | ||
590 | </map> | ||
591 | <map keycode="S" pressed="false"> | ||
592 | <event keycode="S" unicode="83" modifiers="Shift" pressed="false"/> | ||
593 | </map> | ||
594 | <map keycode="T" pressed="false"> | ||
595 | <event keycode="T" unicode="84" modifiers="Shift" pressed="false"/> | ||
596 | </map> | ||
597 | <map keycode="U" pressed="false"> | ||
598 | <event keycode="U" unicode="85" modifiers="Shift" pressed="false"/> | ||
599 | </map> | ||
600 | <map keycode="V" pressed="false"> | ||
601 | <event keycode="V" unicode="86" modifiers="Shift" pressed="false"/> | ||
602 | </map> | ||
603 | <map keycode="W" pressed="false"> | ||
604 | <event keycode="W" unicode="87" modifiers="Shift" pressed="false"/> | ||
605 | </map> | ||
606 | <map keycode="X" pressed="false"> | ||
607 | <event keycode="X" unicode="88" modifiers="Shift" pressed="false"/> | ||
608 | </map> | ||
609 | <map keycode="Y" pressed="false"> | ||
610 | <event keycode="Y" unicode="90" modifiers="Shift" pressed="false"/> | ||
611 | </map> | ||
612 | <map keycode="Z" pressed="false"> | ||
613 | <event keycode="Z" unicode="89" modifiers="Shift" pressed="false"/> | ||
614 | </map> | ||
615 | </state> | ||
616 | |||
617 | </keymap> \ No newline at end of file | ||
diff --git a/share/zkb/de.xml.num b/share/zkb/de.xml.num new file mode 100644 index 0000000..15ebf11 --- a/dev/null +++ b/share/zkb/de.xml.num | |||
@@ -0,0 +1,618 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <include file="common.xml"/> | ||
4 | |||
5 | <state name="LShift-RShift" parent="common"/> | ||
6 | <state name="LShift-RShift-Caps" parent="common"/> | ||
7 | |||
8 | <state name="LShift"> | ||
9 | <map keycode="4130" pressed="true"> | ||
10 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
11 | <next-state name="LShift-RShift"/> | ||
12 | </map> | ||
13 | </state> | ||
14 | |||
15 | <state name="RShift"> | ||
16 | <map keycode="69" pressed="true"> | ||
17 | <event keycode="69" unicode="8364" modifiers="0" pressed="true" autorepeat="true"/> | ||
18 | </map> | ||
19 | |||
20 | <map keycode="79" pressed="true"> | ||
21 | <event keycode="79" unicode="223" modifiers="0" pressed="true" autorepeat="true"/> | ||
22 | </map> | ||
23 | |||
24 | <map keycode="76" pressed="true"> | ||
25 | <event keycode="76" unicode="252" modifiers="0" pressed="true" autorepeat="true"/> | ||
26 | </map> | ||
27 | |||
28 | <map keycode="77" pressed="true"> | ||
29 | <event keycode="77" unicode="246" modifiers="0" pressed="true" autorepeat="true"/> | ||
30 | </map> | ||
31 | |||
32 | <map keycode="46" pressed="true"> | ||
33 | <event keycode="46" unicode="228" modifiers="0" pressed="true" autorepeat="true"/> | ||
34 | </map> | ||
35 | |||
36 | <map keycode="69" pressed="false"> | ||
37 | <event keycode="69" unicode="8364" modifiers="0" pressed="false" autorepeat="true"/> | ||
38 | </map> | ||
39 | |||
40 | <map keycode="79" pressed="false"> | ||
41 | <event keycode="79" unicode="223" modifiers="0" pressed="false" autorepeat="true"/> | ||
42 | </map> | ||
43 | |||
44 | <map keycode="76" pressed="false"> | ||
45 | <event keycode="76" unicode="252" modifiers="0" pressed="false" autorepeat="true"/> | ||
46 | </map> | ||
47 | |||
48 | <map keycode="77" pressed="false"> | ||
49 | <event keycode="77" unicode="246" modifiers="0" pressed="false" autorepeat="true"/> | ||
50 | </map> | ||
51 | |||
52 | <map keycode="46" pressed="false"> | ||
53 | <event keycode="46" unicode="228" modifiers="0" pressed="false" autorepeat="true"/> | ||
54 | </map> | ||
55 | |||
56 | <map keycode="4128" pressed="false"> | ||
57 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
58 | <next-state name="LShift-RShift"/> | ||
59 | </map> | ||
60 | </state> | ||
61 | |||
62 | <state name="LShift-Caps"> | ||
63 | <map keycode="4130" pressed="true"> | ||
64 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
65 | <next-state name="LShift-RShift-Caps"/> | ||
66 | </map> | ||
67 | </state> | ||
68 | |||
69 | <state name="LShift-Num"> | ||
70 | <map keycode="4128" pressed="false"> | ||
71 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
72 | <next-state name="Num"/> | ||
73 | </map> | ||
74 | |||
75 | <map keycode="4165" pressed="true"> | ||
76 | <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/> | ||
77 | <next-state name="LShift-Fn-Num"/> | ||
78 | </map> | ||
79 | </state> | ||
80 | |||
81 | <state name="RShift-Caps"> | ||
82 | <map keycode="69" pressed="true"> | ||
83 | <event keycode="69" unicode="8364" modifiers="0" pressed="true" autorepeat="true"/> | ||
84 | </map> | ||
85 | |||
86 | <map keycode="79" pressed="true"> | ||
87 | <event keycode="79" unicode="223" modifiers="0" pressed="true" autorepeat="true"/> | ||
88 | </map> | ||
89 | |||
90 | <map keycode="76" pressed="true"> | ||
91 | <event keycode="76" unicode="220" modifiers="0" pressed="true" autorepeat="true"/> | ||
92 | </map> | ||
93 | |||
94 | <map keycode="77" pressed="true"> | ||
95 | <event keycode="77" unicode="214" modifiers="0" pressed="true" autorepeat="true"/> | ||
96 | </map> | ||
97 | |||
98 | <map keycode="46" pressed="true"> | ||
99 | <event keycode="46" unicode="196" modifiers="0" pressed="false" autorepeat="true"/> | ||
100 | </map> | ||
101 | |||
102 | <map keycode="69" pressed="false"> | ||
103 | <event keycode="69" unicode="8364" modifiers="0" pressed="false" autorepeat="true"/> | ||
104 | </map> | ||
105 | |||
106 | <map keycode="79" pressed="false"> | ||
107 | <event keycode="79" unicode="223" modifiers="0" pressed="false" autorepeat="true"/> | ||
108 | </map> | ||
109 | |||
110 | <map keycode="76" pressed="false"> | ||
111 | <event keycode="76" unicode="220" modifiers="0" pressed="false" autorepeat="true"/> | ||
112 | </map> | ||
113 | |||
114 | <map keycode="77" pressed="false"> | ||
115 | <event keycode="77" unicode="214" modifiers="0" pressed="false" autorepeat="true"/> | ||
116 | </map> | ||
117 | |||
118 | <map keycode="46" pressed="false"> | ||
119 | <event keycode="46" unicode="196" modifiers="0" pressed="false" autorepeat="true"/> | ||
120 | </map> | ||
121 | |||
122 | <map keycode="4128" pressed="true"> | ||
123 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
124 | <next-state name="LShift-RShift-Caps"/> | ||
125 | </map> | ||
126 | </state> | ||
127 | |||
128 | <state name="LShift-RShift"> | ||
129 | <map keycode="69" pressed="true"> | ||
130 | <event keycode="69" unicode="8364" modifiers="0" pressed="true" autorepeat="true"/> | ||
131 | </map> | ||
132 | |||
133 | <map keycode="79" pressed="true"> | ||
134 | <event keycode="79" unicode="223" modifiers="0" pressed="true" autorepeat="true"/> | ||
135 | </map> | ||
136 | |||
137 | <map keycode="76" pressed="true"> | ||
138 | <event keycode="76" unicode="220" modifiers="0" pressed="true" autorepeat="true"/> | ||
139 | </map> | ||
140 | |||
141 | <map keycode="77" pressed="true"> | ||
142 | <event keycode="77" unicode="214" modifiers="0" pressed="true" autorepeat="true"/> | ||
143 | </map> | ||
144 | |||
145 | <map keycode="46" pressed="true"> | ||
146 | <event keycode="46" unicode="196" modifiers="0" pressed="false" autorepeat="true"/> | ||
147 | </map> | ||
148 | |||
149 | <map keycode="69" pressed="false"> | ||
150 | <event keycode="69" unicode="8364" modifiers="0" pressed="false" autorepeat="true"/> | ||
151 | </map> | ||
152 | |||
153 | <map keycode="79" pressed="false"> | ||
154 | <event keycode="79" unicode="223" modifiers="0" pressed="false" autorepeat="true"/> | ||
155 | </map> | ||
156 | |||
157 | <map keycode="76" pressed="false"> | ||
158 | <event keycode="76" unicode="220" modifiers="0" pressed="false" autorepeat="true"/> | ||
159 | </map> | ||
160 | |||
161 | <map keycode="77" pressed="false"> | ||
162 | <event keycode="77" unicode="214" modifiers="0" pressed="false" autorepeat="true"/> | ||
163 | </map> | ||
164 | |||
165 | <map keycode="46" pressed="false"> | ||
166 | <event keycode="46" unicode="196" modifiers="0" pressed="false" autorepeat="true"/> | ||
167 | </map> | ||
168 | |||
169 | <map keycode="4128" pressed="false"> | ||
170 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
171 | <next-state name="RShift"/> | ||
172 | </map> | ||
173 | |||
174 | <map keycode="4130" pressed="false"> | ||
175 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
176 | <next-state name="LShift"/> | ||
177 | </map> | ||
178 | </state> | ||
179 | |||
180 | <state name="LShift-RShift-Caps"> | ||
181 | <map keycode="69" pressed="true"> | ||
182 | <event keycode="69" unicode="8364" modifiers="0" pressed="true" autorepeat="true"/> | ||
183 | </map> | ||
184 | |||
185 | <map keycode="79" pressed="true"> | ||
186 | <event keycode="79" unicode="223" modifiers="0" pressed="true" autorepeat="true"/> | ||
187 | </map> | ||
188 | |||
189 | <map keycode="76" pressed="true"> | ||
190 | <event keycode="76" unicode="252" modifiers="0" pressed="true" autorepeat="true"/> | ||
191 | </map> | ||
192 | |||
193 | <map keycode="77" pressed="true"> | ||
194 | <event keycode="77" unicode="246" modifiers="0" pressed="true" autorepeat="true"/> | ||
195 | </map> | ||
196 | |||
197 | <map keycode="46" pressed="true"> | ||
198 | <event keycode="46" unicode="228" modifiers="0" pressed="true" autorepeat="true"/> | ||
199 | </map> | ||
200 | |||
201 | <map keycode="69" pressed="false"> | ||
202 | <event keycode="69" unicode="8364" modifiers="0" pressed="false" autorepeat="true"/> | ||
203 | </map> | ||
204 | |||
205 | <map keycode="79" pressed="false"> | ||
206 | <event keycode="79" unicode="223" modifiers="0" pressed="false" autorepeat="true"/> | ||
207 | </map> | ||
208 | |||
209 | <map keycode="76" pressed="false"> | ||
210 | <event keycode="76" unicode="252" modifiers="0" pressed="false" autorepeat="true"/> | ||
211 | </map> | ||
212 | |||
213 | <map keycode="77" pressed="false"> | ||
214 | <event keycode="77" unicode="246" modifiers="0" pressed="false" autorepeat="true"/> | ||
215 | </map> | ||
216 | |||
217 | <map keycode="46" pressed="false"> | ||
218 | <event keycode="46" unicode="228" modifiers="0" pressed="false" autorepeat="true"/> | ||
219 | </map> | ||
220 | |||
221 | <map keycode="4128" pressed="false"> | ||
222 | <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
223 | <next-state name="RShift-Caps"/> | ||
224 | </map> | ||
225 | |||
226 | <map keycode="4130" pressed="false"> | ||
227 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
228 | <next-state name="LShift-Caps"/> | ||
229 | </map> | ||
230 | </state> | ||
231 | |||
232 | <state name="Caps"> | ||
233 | <map keycode="4130" pressed="true"> | ||
234 | <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/> | ||
235 | <next-state name="RShift-Caps"/> | ||
236 | </map> | ||
237 | </state> | ||
238 | |||
239 | <state name="lower-case"> | ||
240 | <map keycode="32" pressed="true"> | ||
241 | <event keycode="32" unicode="32" modifiers="0" pressed="true" autorepeat="true"/> | ||
242 | </map> | ||
243 | <map keycode="39" pressed="true"> | ||
244 | <event keycode="39" unicode="39" modifiers="0" pressed="true" autorepeat="true"/> | ||
245 | </map> | ||
246 | <map keycode="44" pressed="true"> | ||
247 | <event keycode="44" unicode="44" modifiers="0" pressed="true" autorepeat="true"/> | ||
248 | </map> | ||
249 | <map keycode="46" pressed="true"> | ||
250 | <event keycode="46" unicode="46" modifiers="0" pressed="true" autorepeat="true"/> | ||
251 | </map> | ||
252 | <map keycode="47" pressed="true"> | ||
253 | <event keycode="47" unicode="47" modifiers="0" pressed="true" autorepeat="true"/> | ||
254 | </map> | ||
255 | <map keycode="65" pressed="true"> | ||
256 | <event keycode="65" unicode="97" modifiers="0" pressed="true" autorepeat="true"/> | ||
257 | </map> | ||
258 | <map keycode="66" pressed="true"> | ||
259 | <event keycode="66" unicode="98" modifiers="0" pressed="true" autorepeat="true"/> | ||
260 | </map> | ||
261 | <map keycode="67" pressed="true"> | ||
262 | <event keycode="67" unicode="99" modifiers="0" pressed="true" autorepeat="true"/> | ||
263 | </map> | ||
264 | <map keycode="68" pressed="true"> | ||
265 | <event keycode="68" unicode="100" modifiers="0" pressed="true" autorepeat="true"/> | ||
266 | </map> | ||
267 | <map keycode="69" pressed="true"> | ||
268 | <event keycode="69" unicode="101" modifiers="0" pressed="true" autorepeat="true"/> | ||
269 | </map> | ||
270 | <map keycode="70" pressed="true"> | ||
271 | <event keycode="70" unicode="102" modifiers="0" pressed="true" autorepeat="true"/> | ||
272 | </map> | ||
273 | <map keycode="71" pressed="true"> | ||
274 | <event keycode="71" unicode="103" modifiers="0" pressed="true" autorepeat="true"/> | ||
275 | </map> | ||
276 | <map keycode="72" pressed="true"> | ||
277 | <event keycode="72" unicode="104" modifiers="0" pressed="true" autorepeat="true"/> | ||
278 | </map> | ||
279 | <map keycode="73" pressed="true"> | ||
280 | <event keycode="73" unicode="105" modifiers="0" pressed="true" autorepeat="true"/> | ||
281 | </map> | ||
282 | <map keycode="74" pressed="true"> | ||
283 | <event keycode="74" unicode="106" modifiers="0" pressed="true" autorepeat="true"/> | ||
284 | </map> | ||
285 | <map keycode="75" pressed="true"> | ||
286 | <event keycode="75" unicode="107" modifiers="0" pressed="true" autorepeat="true"/> | ||
287 | </map> | ||
288 | <map keycode="76" pressed="true"> | ||
289 | <event keycode="76" unicode="108" modifiers="0" pressed="true" autorepeat="true"/> | ||
290 | </map> | ||
291 | <map keycode="77" pressed="true"> | ||
292 | <event keycode="77" unicode="109" modifiers="0" pressed="true" autorepeat="true"/> | ||
293 | </map> | ||
294 | <map keycode="78" pressed="true"> | ||
295 | <event keycode="78" unicode="110" modifiers="0" pressed="true" autorepeat="true"/> | ||
296 | </map> | ||
297 | <map keycode="79" pressed="true"> | ||
298 | <event keycode="79" unicode="111" modifiers="0" pressed="true" autorepeat="true"/> | ||
299 | </map> | ||
300 | <map keycode="80" pressed="true"> | ||
301 | <event keycode="80" unicode="112" modifiers="0" pressed="true" autorepeat="true"/> | ||
302 | </map> | ||
303 | <map keycode="81" pressed="true"> | ||
304 | <event keycode="81" unicode="113" modifiers="0" pressed="true" autorepeat="true"/> | ||
305 | </map> | ||
306 | <map keycode="82" pressed="true"> | ||
307 | <event keycode="82" unicode="114" modifiers="0" pressed="true" autorepeat="true"/> | ||
308 | </map> | ||
309 | <map keycode="83" pressed="true"> | ||
310 | <event keycode="83" unicode="115" modifiers="0" pressed="true" autorepeat="true"/> | ||
311 | </map> | ||
312 | <map keycode="84" pressed="true"> | ||
313 | <event keycode="84" unicode="116" modifiers="0" pressed="true" autorepeat="true"/> | ||
314 | </map> | ||
315 | <map keycode="85" pressed="true"> | ||
316 | <event keycode="85" unicode="117" modifiers="0" pressed="true" autorepeat="true"/> | ||
317 | </map> | ||
318 | <map keycode="86" pressed="true"> | ||
319 | <event keycode="86" unicode="118" modifiers="0" pressed="true" autorepeat="true"/> | ||
320 | </map> | ||
321 | <map keycode="87" pressed="true"> | ||
322 | <event keycode="87" unicode="119" modifiers="0" pressed="true" autorepeat="true"/> | ||
323 | </map> | ||
324 | <map keycode="88" pressed="true"> | ||
325 | <event keycode="88" unicode="120" modifiers="0" pressed="true" autorepeat="true"/> | ||
326 | </map> | ||
327 | <map keycode="89" pressed="true"> | ||
328 | <event keycode="89" unicode="121" modifiers="0" pressed="true" autorepeat="true"/> | ||
329 | </map> | ||
330 | <map keycode="90" pressed="true"> | ||
331 | <event keycode="90" unicode="122" modifiers="0" pressed="true" autorepeat="true"/> | ||
332 | </map> | ||
333 | <map keycode="32" pressed="false"> | ||
334 | <event keycode="32" unicode="32" modifiers="0" pressed="false" autorepeat="false"/> | ||
335 | </map> | ||
336 | <map keycode="39" pressed="false"> | ||
337 | <event keycode="39" unicode="39" modifiers="0" pressed="false" autorepeat="false"/> | ||
338 | </map> | ||
339 | <map keycode="44" pressed="false"> | ||
340 | <event keycode="44" unicode="44" modifiers="0" pressed="false" autorepeat="false"/> | ||
341 | </map> | ||
342 | <map keycode="46" pressed="false"> | ||
343 | <event keycode="46" unicode="46" modifiers="0" pressed="false" autorepeat="false"/> | ||
344 | </map> | ||
345 | <map keycode="47" pressed="false"> | ||
346 | <event keycode="47" unicode="47" modifiers="0" pressed="false" autorepeat="false"/> | ||
347 | </map> | ||
348 | <map keycode="65" pressed="false"> | ||
349 | <event keycode="65" unicode="97" modifiers="0" pressed="false" autorepeat="false"/> | ||
350 | </map> | ||
351 | <map keycode="66" pressed="false"> | ||
352 | <event keycode="66" unicode="98" modifiers="0" pressed="false" autorepeat="false"/> | ||
353 | </map> | ||
354 | <map keycode="67" pressed="false"> | ||
355 | <event keycode="67" unicode="99" modifiers="0" pressed="false" autorepeat="false"/> | ||
356 | </map> | ||
357 | <map keycode="68" pressed="false"> | ||
358 | <event keycode="68" unicode="100" modifiers="0" pressed="false" autorepeat="false"/> | ||
359 | </map> | ||
360 | <map keycode="69" pressed="false"> | ||
361 | <event keycode="69" unicode="101" modifiers="0" pressed="false" autorepeat="false"/> | ||
362 | </map> | ||
363 | <map keycode="70" pressed="false"> | ||
364 | <event keycode="70" unicode="102" modifiers="0" pressed="false" autorepeat="false"/> | ||
365 | </map> | ||
366 | <map keycode="71" pressed="false"> | ||
367 | <event keycode="71" unicode="103" modifiers="0" pressed="false" autorepeat="false"/> | ||
368 | </map> | ||
369 | <map keycode="72" pressed="false"> | ||
370 | <event keycode="72" unicode="104" modifiers="0" pressed="false" autorepeat="false"/> | ||
371 | </map> | ||
372 | <map keycode="73" pressed="false"> | ||
373 | <event keycode="73" unicode="105" modifiers="0" pressed="false" autorepeat="false"/> | ||
374 | </map> | ||
375 | <map keycode="74" pressed="false"> | ||
376 | <event keycode="74" unicode="106" modifiers="0" pressed="false" autorepeat="false"/> | ||
377 | </map> | ||
378 | <map keycode="75" pressed="false"> | ||
379 | <event keycode="75" unicode="107" modifiers="0" pressed="false" autorepeat="false"/> | ||
380 | </map> | ||
381 | <map keycode="76" pressed="false"> | ||
382 | <event keycode="76" unicode="108" modifiers="0" pressed="false" autorepeat="false"/> | ||
383 | </map> | ||
384 | <map keycode="77" pressed="false"> | ||
385 | <event keycode="77" unicode="109" modifiers="0" pressed="false" autorepeat="false"/> | ||
386 | </map> | ||
387 | <map keycode="78" pressed="false"> | ||
388 | <event keycode="78" unicode="110" modifiers="0" pressed="false" autorepeat="false"/> | ||
389 | </map> | ||
390 | <map keycode="79" pressed="false"> | ||
391 | <event keycode="79" unicode="111" modifiers="0" pressed="false" autorepeat="false"/> | ||
392 | </map> | ||
393 | <map keycode="80" pressed="false"> | ||
394 | <event keycode="80" unicode="112" modifiers="0" pressed="false" autorepeat="false"/> | ||
395 | </map> | ||
396 | <map keycode="81" pressed="false"> | ||
397 | <event keycode="81" unicode="113" modifiers="0" pressed="false" autorepeat="false"/> | ||
398 | </map> | ||
399 | <map keycode="82" pressed="false"> | ||
400 | <event keycode="82" unicode="114" modifiers="0" pressed="false" autorepeat="false"/> | ||
401 | </map> | ||
402 | <map keycode="83" pressed="false"> | ||
403 | <event keycode="83" unicode="115" modifiers="0" pressed="false" autorepeat="false"/> | ||
404 | </map> | ||
405 | <map keycode="84" pressed="false"> | ||
406 | <event keycode="84" unicode="116" modifiers="0" pressed="false" autorepeat="false"/> | ||
407 | </map> | ||
408 | <map keycode="85" pressed="false"> | ||
409 | <event keycode="85" unicode="117" modifiers="0" pressed="false" autorepeat="false"/> | ||
410 | </map> | ||
411 | <map keycode="86" pressed="false"> | ||
412 | <event keycode="86" unicode="118" modifiers="0" pressed="false" autorepeat="false"/> | ||
413 | </map> | ||
414 | <map keycode="87" pressed="false"> | ||
415 | <event keycode="87" unicode="119" modifiers="0" pressed="false" autorepeat="false"/> | ||
416 | </map> | ||
417 | <map keycode="88" pressed="false"> | ||
418 | <event keycode="88" unicode="120" modifiers="0" pressed="false" autorepeat="false"/> | ||
419 | </map> | ||
420 | <map keycode="89" pressed="false"> | ||
421 | <event keycode="89" unicode="121" modifiers="0" pressed="false" autorepeat="false"/> | ||
422 | </map> | ||
423 | <map keycode="90" pressed="false"> | ||
424 | <event keycode="90" unicode="122" modifiers="0" pressed="false" autorepeat="false"/> | ||
425 | </map> | ||
426 | </state> | ||
427 | |||
428 | <state name="upper-case"> | ||
429 | <map keycode="32" pressed="true"> | ||
430 | <event keycode="32" unicode="32" modifiers="8" pressed="true" autorepeat="true"/> | ||
431 | </map> | ||
432 | <map keycode="39" pressed="true"> | ||
433 | <event keycode="34" unicode="34" modifiers="8" pressed="true" autorepeat="true"/> | ||
434 | </map> | ||
435 | <map keycode="44" pressed="true"> | ||
436 | <event keycode="59" unicode="59" modifiers="8" pressed="true" autorepeat="true"/> | ||
437 | </map> | ||
438 | <map keycode="46" pressed="true"> | ||
439 | <event keycode="58" unicode="58" modifiers="8" pressed="true" autorepeat="true"/> | ||
440 | </map> | ||
441 | <map keycode="47" pressed="true"> | ||
442 | <event keycode="63" unicode="63" modifiers="8" pressed="true" autorepeat="true"/> | ||
443 | </map> | ||
444 | <map keycode="65" pressed="true"> | ||
445 | <event keycode="65" unicode="65" modifiers="8" pressed="true" autorepeat="true"/> | ||
446 | </map> | ||
447 | <map keycode="66" pressed="true"> | ||
448 | <event keycode="66" unicode="66" modifiers="8" pressed="true" autorepeat="true"/> | ||
449 | </map> | ||
450 | <map keycode="67" pressed="true"> | ||
451 | <event keycode="67" unicode="67" modifiers="8" pressed="true" autorepeat="true"/> | ||
452 | </map> | ||
453 | <map keycode="68" pressed="true"> | ||
454 | <event keycode="68" unicode="68" modifiers="8" pressed="true" autorepeat="true"/> | ||
455 | </map> | ||
456 | <map keycode="69" pressed="true"> | ||
457 | <event keycode="69" unicode="69" modifiers="8" pressed="true" autorepeat="true"/> | ||
458 | </map> | ||
459 | <map keycode="70" pressed="true"> | ||
460 | <event keycode="70" unicode="70" modifiers="8" pressed="true" autorepeat="true"/> | ||
461 | </map> | ||
462 | <map keycode="71" pressed="true"> | ||
463 | <event keycode="71" unicode="71" modifiers="8" pressed="true" autorepeat="true"/> | ||
464 | </map> | ||
465 | <map keycode="72" pressed="true"> | ||
466 | <event keycode="72" unicode="72" modifiers="8" pressed="true" autorepeat="true"/> | ||
467 | </map> | ||
468 | <map keycode="73" pressed="true"> | ||
469 | <event keycode="73" unicode="73" modifiers="8" pressed="true" autorepeat="true"/> | ||
470 | </map> | ||
471 | <map keycode="74" pressed="true"> | ||
472 | <event keycode="74" unicode="74" modifiers="8" pressed="true" autorepeat="true"/> | ||
473 | </map> | ||
474 | <map keycode="75" pressed="true"> | ||
475 | <event keycode="75" unicode="75" modifiers="8" pressed="true" autorepeat="true"/> | ||
476 | </map> | ||
477 | <map keycode="76" pressed="true"> | ||
478 | <event keycode="76" unicode="76" modifiers="8" pressed="true" autorepeat="true"/> | ||
479 | </map> | ||
480 | <map keycode="77" pressed="true"> | ||
481 | <event keycode="77" unicode="77" modifiers="8" pressed="true" autorepeat="true"/> | ||
482 | </map> | ||
483 | <map keycode="78" pressed="true"> | ||
484 | <event keycode="78" unicode="78" modifiers="8" pressed="true" autorepeat="true"/> | ||
485 | </map> | ||
486 | <map keycode="79" pressed="true"> | ||
487 | <event keycode="79" unicode="79" modifiers="8" pressed="true" autorepeat="true"/> | ||
488 | </map> | ||
489 | <map keycode="80" pressed="true"> | ||
490 | <event keycode="80" unicode="80" modifiers="8" pressed="true" autorepeat="true"/> | ||
491 | </map> | ||
492 | <map keycode="81" pressed="true"> | ||
493 | <event keycode="81" unicode="81" modifiers="8" pressed="true" autorepeat="true"/> | ||
494 | </map> | ||
495 | <map keycode="82" pressed="true"> | ||
496 | <event keycode="82" unicode="82" modifiers="8" pressed="true" autorepeat="true"/> | ||
497 | </map> | ||
498 | <map keycode="83" pressed="true"> | ||
499 | <event keycode="83" unicode="83" modifiers="8" pressed="true" autorepeat="true"/> | ||
500 | </map> | ||
501 | <map keycode="84" pressed="true"> | ||
502 | <event keycode="84" unicode="84" modifiers="8" pressed="true" autorepeat="true"/> | ||
503 | </map> | ||
504 | <map keycode="85" pressed="true"> | ||
505 | <event keycode="85" unicode="85" modifiers="8" pressed="true" autorepeat="true"/> | ||
506 | </map> | ||
507 | <map keycode="86" pressed="true"> | ||
508 | <event keycode="86" unicode="86" modifiers="8" pressed="true" autorepeat="true"/> | ||
509 | </map> | ||
510 | <map keycode="87" pressed="true"> | ||
511 | <event keycode="87" unicode="87" modifiers="8" pressed="true" autorepeat="true"/> | ||
512 | </map> | ||
513 | <map keycode="88" pressed="true"> | ||
514 | <event keycode="88" unicode="88" modifiers="8" pressed="true" autorepeat="true"/> | ||
515 | </map> | ||
516 | <map keycode="89" pressed="true"> | ||
517 | <event keycode="89" unicode="89" modifiers="8" pressed="true" autorepeat="true"/> | ||
518 | </map> | ||
519 | <map keycode="90" pressed="true"> | ||
520 | <event keycode="90" unicode="90" modifiers="8" pressed="true" autorepeat="true"/> | ||
521 | </map> | ||
522 | <map keycode="32" pressed="false"> | ||
523 | <event keycode="32" unicode="32" modifiers="8" pressed="false" autorepeat="false"/> | ||
524 | </map> | ||
525 | <map keycode="39" pressed="false"> | ||
526 | <event keycode="34" unicode="34" modifiers="8" pressed="false" autorepeat="false"/> | ||
527 | </map> | ||
528 | <map keycode="44" pressed="false"> | ||
529 | <event keycode="58" unicode="58" modifiers="8" pressed="false" autorepeat="false"/> | ||
530 | </map> | ||
531 | <map keycode="46" pressed="false"> | ||
532 | <event keycode="59" unicode="59" modifiers="8" pressed="false" autorepeat="false"/> | ||
533 | </map> | ||
534 | <map keycode="47" pressed="false"> | ||
535 | <event keycode="63" unicode="63" modifiers="8" pressed="false" autorepeat="false"/> | ||
536 | </map> | ||
537 | <map keycode="65" pressed="false"> | ||
538 | <event keycode="65" unicode="65" modifiers="8" pressed="false" autorepeat="false"/> | ||
539 | </map> | ||
540 | <map keycode="66" pressed="false"> | ||
541 | <event keycode="66" unicode="66" modifiers="8" pressed="false" autorepeat="false"/> | ||
542 | </map> | ||
543 | <map keycode="67" pressed="false"> | ||
544 | <event keycode="67" unicode="67" modifiers="8" pressed="false" autorepeat="false"/> | ||
545 | </map> | ||
546 | <map keycode="68" pressed="false"> | ||
547 | <event keycode="68" unicode="68" modifiers="8" pressed="false" autorepeat="false"/> | ||
548 | </map> | ||
549 | <map keycode="69" pressed="false"> | ||
550 | <event keycode="69" unicode="69" modifiers="8" pressed="false" autorepeat="false"/> | ||
551 | </map> | ||
552 | <map keycode="70" pressed="false"> | ||
553 | <event keycode="70" unicode="70" modifiers="8" pressed="false" autorepeat="false"/> | ||
554 | </map> | ||
555 | <map keycode="71" pressed="false"> | ||
556 | <event keycode="71" unicode="71" modifiers="8" pressed="false" autorepeat="false"/> | ||
557 | </map> | ||
558 | <map keycode="72" pressed="false"> | ||
559 | <event keycode="72" unicode="72" modifiers="8" pressed="false" autorepeat="false"/> | ||
560 | </map> | ||
561 | <map keycode="73" pressed="false"> | ||
562 | <event keycode="73" unicode="73" modifiers="8" pressed="false" autorepeat="false"/> | ||
563 | </map> | ||
564 | <map keycode="74" pressed="false"> | ||
565 | <event keycode="74" unicode="74" modifiers="8" pressed="false" autorepeat="false"/> | ||
566 | </map> | ||
567 | <map keycode="75" pressed="false"> | ||
568 | <event keycode="75" unicode="75" modifiers="8" pressed="false" autorepeat="false"/> | ||
569 | </map> | ||
570 | <map keycode="76" pressed="false"> | ||
571 | <event keycode="76" unicode="76" modifiers="8" pressed="false" autorepeat="false"/> | ||
572 | </map> | ||
573 | <map keycode="77" pressed="false"> | ||
574 | <event keycode="77" unicode="77" modifiers="8" pressed="false" autorepeat="false"/> | ||
575 | </map> | ||
576 | <map keycode="78" pressed="false"> | ||
577 | <event keycode="78" unicode="78" modifiers="8" pressed="false" autorepeat="false"/> | ||
578 | </map> | ||
579 | <map keycode="79" pressed="false"> | ||
580 | <event keycode="79" unicode="79" modifiers="8" pressed="false" autorepeat="false"/> | ||
581 | </map> | ||
582 | <map keycode="80" pressed="false"> | ||
583 | <event keycode="80" unicode="80" modifiers="8" pressed="false" autorepeat="false"/> | ||
584 | </map> | ||
585 | <map keycode="81" pressed="false"> | ||
586 | <event keycode="81" unicode="81" modifiers="8" pressed="false" autorepeat="false"/> | ||
587 | </map> | ||
588 | <map keycode="82" pressed="false"> | ||
589 | <event keycode="82" unicode="82" modifiers="8" pressed="false" autorepeat="false"/> | ||
590 | </map> | ||
591 | <map keycode="83" pressed="false"> | ||
592 | <event keycode="83" unicode="83" modifiers="8" pressed="false" autorepeat="false"/> | ||
593 | </map> | ||
594 | <map keycode="84" pressed="false"> | ||
595 | <event keycode="84" unicode="84" modifiers="8" pressed="false" autorepeat="false"/> | ||
596 | </map> | ||
597 | <map keycode="85" pressed="false"> | ||
598 | <event keycode="85" unicode="85" modifiers="8" pressed="false" autorepeat="false"/> | ||
599 | </map> | ||
600 | <map keycode="86" pressed="false"> | ||
601 | <event keycode="86" unicode="86" modifiers="8" pressed="false" autorepeat="false"/> | ||
602 | </map> | ||
603 | <map keycode="87" pressed="false"> | ||
604 | <event keycode="87" unicode="87" modifiers="8" pressed="false" autorepeat="false"/> | ||
605 | </map> | ||
606 | <map keycode="88" pressed="false"> | ||
607 | <event keycode="88" unicode="88" modifiers="8" pressed="false" autorepeat="false"/> | ||
608 | </map> | ||
609 | <map keycode="89" pressed="false"> | ||
610 | <event keycode="89" unicode="89" modifiers="8" pressed="false" autorepeat="false"/> | ||
611 | </map> | ||
612 | <map keycode="90" pressed="false"> | ||
613 | <event keycode="90" unicode="90" modifiers="8" pressed="false" autorepeat="false"/> | ||
614 | </map> | ||
615 | </state> | ||
616 | |||
617 | |||
618 | </keymap> | ||
diff --git a/share/zkb/en.xml b/share/zkb/en.xml new file mode 100644 index 0000000..0b1c345 --- a/dev/null +++ b/share/zkb/en.xml | |||
@@ -0,0 +1,383 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <include file="common.xml"/> | ||
4 | |||
5 | <state name="lower-case"> | ||
6 | <map keycode="Space" pressed="true"> | ||
7 | <event keycode="Space" unicode="32" pressed="true" autorepeat="true"/> | ||
8 | </map> | ||
9 | <map keycode="Apostrophe" pressed="true"> | ||
10 | <event keycode="Apostrophe" unicode="39" pressed="true" autorepeat="true"/> | ||
11 | </map> | ||
12 | <map keycode="Comma" pressed="true"> | ||
13 | <event keycode="Comma" unicode="44" pressed="true" autorepeat="true"/> | ||
14 | </map> | ||
15 | <map keycode="Period" pressed="true"> | ||
16 | <event keycode="Period" unicode="46" pressed="true" autorepeat="true"/> | ||
17 | </map> | ||
18 | <map keycode="Slash" pressed="true"> | ||
19 | <event keycode="Slash" unicode="47" pressed="true" autorepeat="true"/> | ||
20 | </map> | ||
21 | <map keycode="A" pressed="true"> | ||
22 | <event keycode="A" unicode="97" pressed="true" autorepeat="true"/> | ||
23 | </map> | ||
24 | <map keycode="B" pressed="true"> | ||
25 | <event keycode="B" unicode="98" pressed="true" autorepeat="true"/> | ||
26 | </map> | ||
27 | <map keycode="C" pressed="true"> | ||
28 | <event keycode="C" unicode="99" pressed="true" autorepeat="true"/> | ||
29 | </map> | ||
30 | <map keycode="D" pressed="true"> | ||
31 | <event keycode="D" unicode="100" pressed="true" autorepeat="true"/> | ||
32 | </map> | ||
33 | <map keycode="E" pressed="true"> | ||
34 | <event keycode="E" unicode="101" pressed="true" autorepeat="true"/> | ||
35 | </map> | ||
36 | <map keycode="F" pressed="true"> | ||
37 | <event keycode="F" unicode="102" pressed="true" autorepeat="true"/> | ||
38 | </map> | ||
39 | <map keycode="G" pressed="true"> | ||
40 | <event keycode="G" unicode="103" pressed="true" autorepeat="true"/> | ||
41 | </map> | ||
42 | <map keycode="H" pressed="true"> | ||
43 | <event keycode="H" unicode="104" pressed="true" autorepeat="true"/> | ||
44 | </map> | ||
45 | <map keycode="I" pressed="true"> | ||
46 | <event keycode="I" unicode="105" pressed="true" autorepeat="true"/> | ||
47 | </map> | ||
48 | <map keycode="J" pressed="true"> | ||
49 | <event keycode="J" unicode="106" pressed="true" autorepeat="true"/> | ||
50 | </map> | ||
51 | <map keycode="K" pressed="true"> | ||
52 | <event keycode="K" unicode="107" pressed="true" autorepeat="true"/> | ||
53 | </map> | ||
54 | <map keycode="L" pressed="true"> | ||
55 | <event keycode="L" unicode="108" pressed="true" autorepeat="true"/> | ||
56 | </map> | ||
57 | <map keycode="M" pressed="true"> | ||
58 | <event keycode="M" unicode="109" pressed="true" autorepeat="true"/> | ||
59 | </map> | ||
60 | <map keycode="N" pressed="true"> | ||
61 | <event keycode="N" unicode="110" pressed="true" autorepeat="true"/> | ||
62 | </map> | ||
63 | <map keycode="O" pressed="true"> | ||
64 | <event keycode="O" unicode="111" pressed="true" autorepeat="true"/> | ||
65 | </map> | ||
66 | <map keycode="P" pressed="true"> | ||
67 | <event keycode="P" unicode="112" pressed="true" autorepeat="true"/> | ||
68 | </map> | ||
69 | <map keycode="Q" pressed="true"> | ||
70 | <event keycode="Q" unicode="113" pressed="true" autorepeat="true"/> | ||
71 | </map> | ||
72 | <map keycode="R" pressed="true"> | ||
73 | <event keycode="R" unicode="114" pressed="true" autorepeat="true"/> | ||
74 | </map> | ||
75 | <map keycode="S" pressed="true"> | ||
76 | <event keycode="S" unicode="115" pressed="true" autorepeat="true"/> | ||
77 | </map> | ||
78 | <map keycode="T" pressed="true"> | ||
79 | <event keycode="T" unicode="116" pressed="true" autorepeat="true"/> | ||
80 | </map> | ||
81 | <map keycode="U" pressed="true"> | ||
82 | <event keycode="U" unicode="117" pressed="true" autorepeat="true"/> | ||
83 | </map> | ||
84 | <map keycode="V" pressed="true"> | ||
85 | <event keycode="V" unicode="118" pressed="true" autorepeat="true"/> | ||
86 | </map> | ||
87 | <map keycode="W" pressed="true"> | ||
88 | <event keycode="W" unicode="119" pressed="true" autorepeat="true"/> | ||
89 | </map> | ||
90 | <map keycode="X" pressed="true"> | ||
91 | <event keycode="X" unicode="120" pressed="true" autorepeat="true"/> | ||
92 | </map> | ||
93 | <map keycode="Y" pressed="true"> | ||
94 | <event keycode="Y" unicode="121" pressed="true" autorepeat="true"/> | ||
95 | </map> | ||
96 | <map keycode="Z" pressed="true"> | ||
97 | <event keycode="Z" unicode="122" pressed="true" autorepeat="true"/> | ||
98 | </map> | ||
99 | <map keycode="Space" pressed="false"> | ||
100 | <event keycode="Space" unicode="32" pressed="false"/> | ||
101 | </map> | ||
102 | <map keycode="Apostrophe" pressed="false"> | ||
103 | <event keycode="Apostrophe" unicode="39" pressed="false"/> | ||
104 | </map> | ||
105 | <map keycode="Comma" pressed="false"> | ||
106 | <event keycode="Comma" unicode="44" pressed="false"/> | ||
107 | </map> | ||
108 | <map keycode="Period" pressed="false"> | ||
109 | <event keycode="Period" unicode="46" pressed="false"/> | ||
110 | </map> | ||
111 | <map keycode="Slash" pressed="false"> | ||
112 | <event keycode="Slash" unicode="47" pressed="false"/> | ||
113 | </map> | ||
114 | <map keycode="A" pressed="false"> | ||
115 | <event keycode="A" unicode="97" pressed="false"/> | ||
116 | </map> | ||
117 | <map keycode="B" pressed="false"> | ||
118 | <event keycode="B" unicode="98" pressed="false"/> | ||
119 | </map> | ||
120 | <map keycode="C" pressed="false"> | ||
121 | <event keycode="C" unicode="99" pressed="false"/> | ||
122 | </map> | ||
123 | <map keycode="D" pressed="false"> | ||
124 | <event keycode="D" unicode="100" pressed="false"/> | ||
125 | </map> | ||
126 | <map keycode="E" pressed="false"> | ||
127 | <event keycode="E" unicode="101" pressed="false"/> | ||
128 | </map> | ||
129 | <map keycode="F" pressed="false"> | ||
130 | <event keycode="F" unicode="102" pressed="false"/> | ||
131 | </map> | ||
132 | <map keycode="G" pressed="false"> | ||
133 | <event keycode="G" unicode="103" pressed="false"/> | ||
134 | </map> | ||
135 | <map keycode="H" pressed="false"> | ||
136 | <event keycode="H" unicode="104" pressed="false"/> | ||
137 | </map> | ||
138 | <map keycode="I" pressed="false"> | ||
139 | <event keycode="I" unicode="105" pressed="false"/> | ||
140 | </map> | ||
141 | <map keycode="J" pressed="false"> | ||
142 | <event keycode="J" unicode="106" pressed="false"/> | ||
143 | </map> | ||
144 | <map keycode="K" pressed="false"> | ||
145 | <event keycode="K" unicode="107" pressed="false"/> | ||
146 | </map> | ||
147 | <map keycode="L" pressed="false"> | ||
148 | <event keycode="L" unicode="108" pressed="false"/> | ||
149 | </map> | ||
150 | <map keycode="M" pressed="false"> | ||
151 | <event keycode="M" unicode="109" pressed="false"/> | ||
152 | </map> | ||
153 | <map keycode="N" pressed="false"> | ||
154 | <event keycode="N" unicode="110" pressed="false"/> | ||
155 | </map> | ||
156 | <map keycode="O" pressed="false"> | ||
157 | <event keycode="O" unicode="111" pressed="false"/> | ||
158 | </map> | ||
159 | <map keycode="P" pressed="false"> | ||
160 | <event keycode="P" unicode="112" pressed="false"/> | ||
161 | </map> | ||
162 | <map keycode="Q" pressed="false"> | ||
163 | <event keycode="Q" unicode="113" pressed="false"/> | ||
164 | </map> | ||
165 | <map keycode="R" pressed="false"> | ||
166 | <event keycode="R" unicode="114" pressed="false"/> | ||
167 | </map> | ||
168 | <map keycode="S" pressed="false"> | ||
169 | <event keycode="S" unicode="115" pressed="false"/> | ||
170 | </map> | ||
171 | <map keycode="T" pressed="false"> | ||
172 | <event keycode="T" unicode="116" pressed="false"/> | ||
173 | </map> | ||
174 | <map keycode="U" pressed="false"> | ||
175 | <event keycode="U" unicode="117" pressed="false"/> | ||
176 | </map> | ||
177 | <map keycode="V" pressed="false"> | ||
178 | <event keycode="V" unicode="118" pressed="false"/> | ||
179 | </map> | ||
180 | <map keycode="W" pressed="false"> | ||
181 | <event keycode="W" unicode="119" pressed="false"/> | ||
182 | </map> | ||
183 | <map keycode="X" pressed="false"> | ||
184 | <event keycode="X" unicode="120" pressed="false"/> | ||
185 | </map> | ||
186 | <map keycode="Y" pressed="false"> | ||
187 | <event keycode="Y" unicode="121" pressed="false"/> | ||
188 | </map> | ||
189 | <map keycode="Z" pressed="false"> | ||
190 | <event keycode="Z" unicode="122" pressed="false"/> | ||
191 | </map> | ||
192 | </state> | ||
193 | |||
194 | <state name="upper-case"> | ||
195 | <map keycode="Space" pressed="true"> | ||
196 | <event keycode="Space" unicode="32" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
197 | </map> | ||
198 | <map keycode="Apostrophe" pressed="true"> | ||
199 | <event keycode="QuoteDbl" unicode="34" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
200 | </map> | ||
201 | <map keycode="Comma" pressed="true"> | ||
202 | <event keycode="Semicolon" unicode="59" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
203 | </map> | ||
204 | <map keycode="Period" pressed="true"> | ||
205 | <event keycode="Colon" unicode="58" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
206 | </map> | ||
207 | <map keycode="Slash" pressed="true"> | ||
208 | <event keycode="Question" unicode="63" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
209 | </map> | ||
210 | <map keycode="A" pressed="true"> | ||
211 | <event keycode="A" unicode="65" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
212 | </map> | ||
213 | <map keycode="B" pressed="true"> | ||
214 | <event keycode="B" unicode="66" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
215 | </map> | ||
216 | <map keycode="C" pressed="true"> | ||
217 | <event keycode="C" unicode="67" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
218 | </map> | ||
219 | <map keycode="D" pressed="true"> | ||
220 | <event keycode="D" unicode="68" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
221 | </map> | ||
222 | <map keycode="E" pressed="true"> | ||
223 | <event keycode="E" unicode="69" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
224 | </map> | ||
225 | <map keycode="F" pressed="true"> | ||
226 | <event keycode="F" unicode="70" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
227 | </map> | ||
228 | <map keycode="G" pressed="true"> | ||
229 | <event keycode="G" unicode="71" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
230 | </map> | ||
231 | <map keycode="H" pressed="true"> | ||
232 | <event keycode="H" unicode="72" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
233 | </map> | ||
234 | <map keycode="I" pressed="true"> | ||
235 | <event keycode="I" unicode="73" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
236 | </map> | ||
237 | <map keycode="J" pressed="true"> | ||
238 | <event keycode="J" unicode="74" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
239 | </map> | ||
240 | <map keycode="K" pressed="true"> | ||
241 | <event keycode="K" unicode="75" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
242 | </map> | ||
243 | <map keycode="L" pressed="true"> | ||
244 | <event keycode="L" unicode="76" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
245 | </map> | ||
246 | <map keycode="M" pressed="true"> | ||
247 | <event keycode="M" unicode="77" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
248 | </map> | ||
249 | <map keycode="N" pressed="true"> | ||
250 | <event keycode="N" unicode="78" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
251 | </map> | ||
252 | <map keycode="O" pressed="true"> | ||
253 | <event keycode="O" unicode="79" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
254 | </map> | ||
255 | <map keycode="P" pressed="true"> | ||
256 | <event keycode="P" unicode="80" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
257 | </map> | ||
258 | <map keycode="Q" pressed="true"> | ||
259 | <event keycode="Q" unicode="81" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
260 | </map> | ||
261 | <map keycode="R" pressed="true"> | ||
262 | <event keycode="R" unicode="82" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
263 | </map> | ||
264 | <map keycode="S" pressed="true"> | ||
265 | <event keycode="S" unicode="83" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
266 | </map> | ||
267 | <map keycode="T" pressed="true"> | ||
268 | <event keycode="T" unicode="84" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
269 | </map> | ||
270 | <map keycode="U" pressed="true"> | ||
271 | <event keycode="U" unicode="85" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
272 | </map> | ||
273 | <map keycode="V" pressed="true"> | ||
274 | <event keycode="V" unicode="86" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
275 | </map> | ||
276 | <map keycode="W" pressed="true"> | ||
277 | <event keycode="W" unicode="87" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
278 | </map> | ||
279 | <map keycode="X" pressed="true"> | ||
280 | <event keycode="X" unicode="88" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
281 | </map> | ||
282 | <map keycode="Y" pressed="true"> | ||
283 | <event keycode="Y" unicode="89" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
284 | </map> | ||
285 | <map keycode="Z" pressed="true"> | ||
286 | <event keycode="Z" unicode="90" modifiers="Shift" pressed="true" autorepeat="true"/> | ||
287 | </map> | ||
288 | <map keycode="Space" pressed="false"> | ||
289 | <event keycode="Space" unicode="32" modifiers="Shift" pressed="false"/> | ||
290 | </map> | ||
291 | <map keycode="Apostrophe" pressed="false"> | ||
292 | <event keycode="QuoteDbl" unicode="34" modifiers="Shift" pressed="false"/> | ||
293 | </map> | ||
294 | <map keycode="Comma" pressed="false"> | ||
295 | <event keycode="Semicolon" unicode="59" modifiers="Shift" pressed="false"/> | ||
296 | </map> | ||
297 | <map keycode="Period" pressed="false"> | ||
298 | <event keycode="Colon" unicode="58" modifiers="Shift" pressed="false"/> | ||
299 | </map> | ||
300 | <map keycode="Slash" pressed="false"> | ||
301 | <event keycode="Question" unicode="63" modifiers="Shift" pressed="false"/> | ||
302 | </map> | ||
303 | <map keycode="A" pressed="false"> | ||
304 | <event keycode="A" unicode="65" modifiers="Shift" pressed="false"/> | ||
305 | </map> | ||
306 | <map keycode="B" pressed="false"> | ||
307 | <event keycode="B" unicode="66" modifiers="Shift" pressed="false"/> | ||
308 | </map> | ||
309 | <map keycode="C" pressed="false"> | ||
310 | <event keycode="C" unicode="67" modifiers="Shift" pressed="false"/> | ||
311 | </map> | ||
312 | <map keycode="D" pressed="false"> | ||
313 | <event keycode="D" unicode="68" modifiers="Shift" pressed="false"/> | ||
314 | </map> | ||
315 | <map keycode="E" pressed="false"> | ||
316 | <event keycode="E" unicode="69" modifiers="Shift" pressed="false"/> | ||
317 | </map> | ||
318 | <map keycode="F" pressed="false"> | ||
319 | <event keycode="F" unicode="70" modifiers="Shift" pressed="false"/> | ||
320 | </map> | ||
321 | <map keycode="G" pressed="false"> | ||
322 | <event keycode="G" unicode="71" modifiers="Shift" pressed="false"/> | ||
323 | </map> | ||
324 | <map keycode="H" pressed="false"> | ||
325 | <event keycode="H" unicode="72" modifiers="Shift" pressed="false"/> | ||
326 | </map> | ||
327 | <map keycode="I" pressed="false"> | ||
328 | <event keycode="I" unicode="73" modifiers="Shift" pressed="false"/> | ||
329 | </map> | ||
330 | <map keycode="J" pressed="false"> | ||
331 | <event keycode="J" unicode="74" modifiers="Shift" pressed="false"/> | ||
332 | </map> | ||
333 | <map keycode="K" pressed="false"> | ||
334 | <event keycode="K" unicode="75" modifiers="Shift" pressed="false"/> | ||
335 | </map> | ||
336 | <map keycode="L" pressed="false"> | ||
337 | <event keycode="L" unicode="76" modifiers="Shift" pressed="false"/> | ||
338 | </map> | ||
339 | <map keycode="M" pressed="false"> | ||
340 | <event keycode="M" unicode="77" modifiers="Shift" pressed="false"/> | ||
341 | </map> | ||
342 | <map keycode="N" pressed="false"> | ||
343 | <event keycode="N" unicode="78" modifiers="Shift" pressed="false"/> | ||
344 | </map> | ||
345 | <map keycode="O" pressed="false"> | ||
346 | <event keycode="O" unicode="79" modifiers="Shift" pressed="false"/> | ||
347 | </map> | ||
348 | <map keycode="P" pressed="false"> | ||
349 | <event keycode="P" unicode="80" modifiers="Shift" pressed="false"/> | ||
350 | </map> | ||
351 | <map keycode="Q" pressed="false"> | ||
352 | <event keycode="Q" unicode="81" modifiers="Shift" pressed="false"/> | ||
353 | </map> | ||
354 | <map keycode="R" pressed="false"> | ||
355 | <event keycode="R" unicode="82" modifiers="Shift" pressed="false"/> | ||
356 | </map> | ||
357 | <map keycode="S" pressed="false"> | ||
358 | <event keycode="S" unicode="83" modifiers="Shift" pressed="false"/> | ||
359 | </map> | ||
360 | <map keycode="T" pressed="false"> | ||
361 | <event keycode="T" unicode="84" modifiers="Shift" pressed="false"/> | ||
362 | </map> | ||
363 | <map keycode="U" pressed="false"> | ||
364 | <event keycode="U" unicode="85" modifiers="Shift" pressed="false"/> | ||
365 | </map> | ||
366 | <map keycode="V" pressed="false"> | ||
367 | <event keycode="V" unicode="86" modifiers="Shift" pressed="false"/> | ||
368 | </map> | ||
369 | <map keycode="W" pressed="false"> | ||
370 | <event keycode="W" unicode="87" modifiers="Shift" pressed="false"/> | ||
371 | </map> | ||
372 | <map keycode="X" pressed="false"> | ||
373 | <event keycode="X" unicode="88" modifiers="Shift" pressed="false"/> | ||
374 | </map> | ||
375 | <map keycode="Y" pressed="false"> | ||
376 | <event keycode="Y" unicode="89" modifiers="Shift" pressed="false"/> | ||
377 | </map> | ||
378 | <map keycode="Z" pressed="false"> | ||
379 | <event keycode="Z" unicode="90" modifiers="Shift" pressed="false"/> | ||
380 | </map> | ||
381 | </state> | ||
382 | |||
383 | </keymap> | ||
diff --git a/share/zkb/en.xml.num b/share/zkb/en.xml.num new file mode 100644 index 0000000..0ffd57b --- a/dev/null +++ b/share/zkb/en.xml.num | |||
@@ -0,0 +1,383 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <include file="common.xml"/> | ||
4 | |||
5 | <state name="lower-case"> | ||
6 | <map keycode="32" pressed="true"> | ||
7 | <event keycode="32" unicode="32" modifiers="0" pressed="true" autorepeat="true"/> | ||
8 | </map> | ||
9 | <map keycode="39" pressed="true"> | ||
10 | <event keycode="39" unicode="39" modifiers="0" pressed="true" autorepeat="true"/> | ||
11 | </map> | ||
12 | <map keycode="44" pressed="true"> | ||
13 | <event keycode="44" unicode="44" modifiers="0" pressed="true" autorepeat="true"/> | ||
14 | </map> | ||
15 | <map keycode="46" pressed="true"> | ||
16 | <event keycode="46" unicode="46" modifiers="0" pressed="true" autorepeat="true"/> | ||
17 | </map> | ||
18 | <map keycode="47" pressed="true"> | ||
19 | <event keycode="47" unicode="47" modifiers="0" pressed="true" autorepeat="true"/> | ||
20 | </map> | ||
21 | <map keycode="65" pressed="true"> | ||
22 | <event keycode="65" unicode="97" modifiers="0" pressed="true" autorepeat="true"/> | ||
23 | </map> | ||
24 | <map keycode="66" pressed="true"> | ||
25 | <event keycode="66" unicode="98" modifiers="0" pressed="true" autorepeat="true"/> | ||
26 | </map> | ||
27 | <map keycode="67" pressed="true"> | ||
28 | <event keycode="67" unicode="99" modifiers="0" pressed="true" autorepeat="true"/> | ||
29 | </map> | ||
30 | <map keycode="68" pressed="true"> | ||
31 | <event keycode="68" unicode="100" modifiers="0" pressed="true" autorepeat="true"/> | ||
32 | </map> | ||
33 | <map keycode="69" pressed="true"> | ||
34 | <event keycode="69" unicode="101" modifiers="0" pressed="true" autorepeat="true"/> | ||
35 | </map> | ||
36 | <map keycode="70" pressed="true"> | ||
37 | <event keycode="70" unicode="102" modifiers="0" pressed="true" autorepeat="true"/> | ||
38 | </map> | ||
39 | <map keycode="71" pressed="true"> | ||
40 | <event keycode="71" unicode="103" modifiers="0" pressed="true" autorepeat="true"/> | ||
41 | </map> | ||
42 | <map keycode="72" pressed="true"> | ||
43 | <event keycode="72" unicode="104" modifiers="0" pressed="true" autorepeat="true"/> | ||
44 | </map> | ||
45 | <map keycode="73" pressed="true"> | ||
46 | <event keycode="73" unicode="105" modifiers="0" pressed="true" autorepeat="true"/> | ||
47 | </map> | ||
48 | <map keycode="74" pressed="true"> | ||
49 | <event keycode="74" unicode="106" modifiers="0" pressed="true" autorepeat="true"/> | ||
50 | </map> | ||
51 | <map keycode="75" pressed="true"> | ||
52 | <event keycode="75" unicode="107" modifiers="0" pressed="true" autorepeat="true"/> | ||
53 | </map> | ||
54 | <map keycode="76" pressed="true"> | ||
55 | <event keycode="76" unicode="108" modifiers="0" pressed="true" autorepeat="true"/> | ||
56 | </map> | ||
57 | <map keycode="77" pressed="true"> | ||
58 | <event keycode="77" unicode="109" modifiers="0" pressed="true" autorepeat="true"/> | ||
59 | </map> | ||
60 | <map keycode="78" pressed="true"> | ||
61 | <event keycode="78" unicode="110" modifiers="0" pressed="true" autorepeat="true"/> | ||
62 | </map> | ||
63 | <map keycode="79" pressed="true"> | ||
64 | <event keycode="79" unicode="111" modifiers="0" pressed="true" autorepeat="true"/> | ||
65 | </map> | ||
66 | <map keycode="80" pressed="true"> | ||
67 | <event keycode="80" unicode="112" modifiers="0" pressed="true" autorepeat="true"/> | ||
68 | </map> | ||
69 | <map keycode="81" pressed="true"> | ||
70 | <event keycode="81" unicode="113" modifiers="0" pressed="true" autorepeat="true"/> | ||
71 | </map> | ||
72 | <map keycode="82" pressed="true"> | ||
73 | <event keycode="82" unicode="114" modifiers="0" pressed="true" autorepeat="true"/> | ||
74 | </map> | ||
75 | <map keycode="83" pressed="true"> | ||
76 | <event keycode="83" unicode="115" modifiers="0" pressed="true" autorepeat="true"/> | ||
77 | </map> | ||
78 | <map keycode="84" pressed="true"> | ||
79 | <event keycode="84" unicode="116" modifiers="0" pressed="true" autorepeat="true"/> | ||
80 | </map> | ||
81 | <map keycode="85" pressed="true"> | ||
82 | <event keycode="85" unicode="117" modifiers="0" pressed="true" autorepeat="true"/> | ||
83 | </map> | ||
84 | <map keycode="86" pressed="true"> | ||
85 | <event keycode="86" unicode="118" modifiers="0" pressed="true" autorepeat="true"/> | ||
86 | </map> | ||
87 | <map keycode="87" pressed="true"> | ||
88 | <event keycode="87" unicode="119" modifiers="0" pressed="true" autorepeat="true"/> | ||
89 | </map> | ||
90 | <map keycode="88" pressed="true"> | ||
91 | <event keycode="88" unicode="120" modifiers="0" pressed="true" autorepeat="true"/> | ||
92 | </map> | ||
93 | <map keycode="89" pressed="true"> | ||
94 | <event keycode="89" unicode="121" modifiers="0" pressed="true" autorepeat="true"/> | ||
95 | </map> | ||
96 | <map keycode="90" pressed="true"> | ||
97 | <event keycode="90" unicode="122" modifiers="0" pressed="true" autorepeat="true"/> | ||
98 | </map> | ||
99 | <map keycode="32" pressed="false"> | ||
100 | <event keycode="32" unicode="32" modifiers="0" pressed="false" autorepeat="false"/> | ||
101 | </map> | ||
102 | <map keycode="39" pressed="false"> | ||
103 | <event keycode="39" unicode="39" modifiers="0" pressed="false" autorepeat="false"/> | ||
104 | </map> | ||
105 | <map keycode="44" pressed="false"> | ||
106 | <event keycode="44" unicode="44" modifiers="0" pressed="false" autorepeat="false"/> | ||
107 | </map> | ||
108 | <map keycode="46" pressed="false"> | ||
109 | <event keycode="46" unicode="46" modifiers="0" pressed="false" autorepeat="false"/> | ||
110 | </map> | ||
111 | <map keycode="47" pressed="false"> | ||
112 | <event keycode="47" unicode="47" modifiers="0" pressed="false" autorepeat="false"/> | ||
113 | </map> | ||
114 | <map keycode="65" pressed="false"> | ||
115 | <event keycode="65" unicode="97" modifiers="0" pressed="false" autorepeat="false"/> | ||
116 | </map> | ||
117 | <map keycode="66" pressed="false"> | ||
118 | <event keycode="66" unicode="98" modifiers="0" pressed="false" autorepeat="false"/> | ||
119 | </map> | ||
120 | <map keycode="67" pressed="false"> | ||
121 | <event keycode="67" unicode="99" modifiers="0" pressed="false" autorepeat="false"/> | ||
122 | </map> | ||
123 | <map keycode="68" pressed="false"> | ||
124 | <event keycode="68" unicode="100" modifiers="0" pressed="false" autorepeat="false"/> | ||
125 | </map> | ||
126 | <map keycode="69" pressed="false"> | ||
127 | <event keycode="69" unicode="101" modifiers="0" pressed="false" autorepeat="false"/> | ||
128 | </map> | ||
129 | <map keycode="70" pressed="false"> | ||
130 | <event keycode="70" unicode="102" modifiers="0" pressed="false" autorepeat="false"/> | ||
131 | </map> | ||
132 | <map keycode="71" pressed="false"> | ||
133 | <event keycode="71" unicode="103" modifiers="0" pressed="false" autorepeat="false"/> | ||
134 | </map> | ||
135 | <map keycode="72" pressed="false"> | ||
136 | <event keycode="72" unicode="104" modifiers="0" pressed="false" autorepeat="false"/> | ||
137 | </map> | ||
138 | <map keycode="73" pressed="false"> | ||
139 | <event keycode="73" unicode="105" modifiers="0" pressed="false" autorepeat="false"/> | ||
140 | </map> | ||
141 | <map keycode="74" pressed="false"> | ||
142 | <event keycode="74" unicode="106" modifiers="0" pressed="false" autorepeat="false"/> | ||
143 | </map> | ||
144 | <map keycode="75" pressed="false"> | ||
145 | <event keycode="75" unicode="107" modifiers="0" pressed="false" autorepeat="false"/> | ||
146 | </map> | ||
147 | <map keycode="76" pressed="false"> | ||
148 | <event keycode="76" unicode="108" modifiers="0" pressed="false" autorepeat="false"/> | ||
149 | </map> | ||
150 | <map keycode="77" pressed="false"> | ||
151 | <event keycode="77" unicode="109" modifiers="0" pressed="false" autorepeat="false"/> | ||
152 | </map> | ||
153 | <map keycode="78" pressed="false"> | ||
154 | <event keycode="78" unicode="110" modifiers="0" pressed="false" autorepeat="false"/> | ||
155 | </map> | ||
156 | <map keycode="79" pressed="false"> | ||
157 | <event keycode="79" unicode="111" modifiers="0" pressed="false" autorepeat="false"/> | ||
158 | </map> | ||
159 | <map keycode="80" pressed="false"> | ||
160 | <event keycode="80" unicode="112" modifiers="0" pressed="false" autorepeat="false"/> | ||
161 | </map> | ||
162 | <map keycode="81" pressed="false"> | ||
163 | <event keycode="81" unicode="113" modifiers="0" pressed="false" autorepeat="false"/> | ||
164 | </map> | ||
165 | <map keycode="82" pressed="false"> | ||
166 | <event keycode="82" unicode="114" modifiers="0" pressed="false" autorepeat="false"/> | ||
167 | </map> | ||
168 | <map keycode="83" pressed="false"> | ||
169 | <event keycode="83" unicode="115" modifiers="0" pressed="false" autorepeat="false"/> | ||
170 | </map> | ||
171 | <map keycode="84" pressed="false"> | ||
172 | <event keycode="84" unicode="116" modifiers="0" pressed="false" autorepeat="false"/> | ||
173 | </map> | ||
174 | <map keycode="85" pressed="false"> | ||
175 | <event keycode="85" unicode="117" modifiers="0" pressed="false" autorepeat="false"/> | ||
176 | </map> | ||
177 | <map keycode="86" pressed="false"> | ||
178 | <event keycode="86" unicode="118" modifiers="0" pressed="false" autorepeat="false"/> | ||
179 | </map> | ||
180 | <map keycode="87" pressed="false"> | ||
181 | <event keycode="87" unicode="119" modifiers="0" pressed="false" autorepeat="false"/> | ||
182 | </map> | ||
183 | <map keycode="88" pressed="false"> | ||
184 | <event keycode="88" unicode="120" modifiers="0" pressed="false" autorepeat="false"/> | ||
185 | </map> | ||
186 | <map keycode="89" pressed="false"> | ||
187 | <event keycode="89" unicode="121" modifiers="0" pressed="false" autorepeat="false"/> | ||
188 | </map> | ||
189 | <map keycode="90" pressed="false"> | ||
190 | <event keycode="90" unicode="122" modifiers="0" pressed="false" autorepeat="false"/> | ||
191 | </map> | ||
192 | </state> | ||
193 | |||
194 | <state name="upper-case"> | ||
195 | <map keycode="32" pressed="true"> | ||
196 | <event keycode="32" unicode="32" modifiers="8" pressed="true" autorepeat="true"/> | ||
197 | </map> | ||
198 | <map keycode="39" pressed="true"> | ||
199 | <event keycode="34" unicode="34" modifiers="8" pressed="true" autorepeat="true"/> | ||
200 | </map> | ||
201 | <map keycode="44" pressed="true"> | ||
202 | <event keycode="59" unicode="59" modifiers="8" pressed="true" autorepeat="true"/> | ||
203 | </map> | ||
204 | <map keycode="46" pressed="true"> | ||
205 | <event keycode="58" unicode="58" modifiers="8" pressed="true" autorepeat="true"/> | ||
206 | </map> | ||
207 | <map keycode="47" pressed="true"> | ||
208 | <event keycode="63" unicode="63" modifiers="8" pressed="true" autorepeat="true"/> | ||
209 | </map> | ||
210 | <map keycode="65" pressed="true"> | ||
211 | <event keycode="65" unicode="65" modifiers="8" pressed="true" autorepeat="true"/> | ||
212 | </map> | ||
213 | <map keycode="66" pressed="true"> | ||
214 | <event keycode="66" unicode="66" modifiers="8" pressed="true" autorepeat="true"/> | ||
215 | </map> | ||
216 | <map keycode="67" pressed="true"> | ||
217 | <event keycode="67" unicode="67" modifiers="8" pressed="true" autorepeat="true"/> | ||
218 | </map> | ||
219 | <map keycode="68" pressed="true"> | ||
220 | <event keycode="68" unicode="68" modifiers="8" pressed="true" autorepeat="true"/> | ||
221 | </map> | ||
222 | <map keycode="69" pressed="true"> | ||
223 | <event keycode="69" unicode="69" modifiers="8" pressed="true" autorepeat="true"/> | ||
224 | </map> | ||
225 | <map keycode="70" pressed="true"> | ||
226 | <event keycode="70" unicode="70" modifiers="8" pressed="true" autorepeat="true"/> | ||
227 | </map> | ||
228 | <map keycode="71" pressed="true"> | ||
229 | <event keycode="71" unicode="71" modifiers="8" pressed="true" autorepeat="true"/> | ||
230 | </map> | ||
231 | <map keycode="72" pressed="true"> | ||
232 | <event keycode="72" unicode="72" modifiers="8" pressed="true" autorepeat="true"/> | ||
233 | </map> | ||
234 | <map keycode="73" pressed="true"> | ||
235 | <event keycode="73" unicode="73" modifiers="8" pressed="true" autorepeat="true"/> | ||
236 | </map> | ||
237 | <map keycode="74" pressed="true"> | ||
238 | <event keycode="74" unicode="74" modifiers="8" pressed="true" autorepeat="true"/> | ||
239 | </map> | ||
240 | <map keycode="75" pressed="true"> | ||
241 | <event keycode="75" unicode="75" modifiers="8" pressed="true" autorepeat="true"/> | ||
242 | </map> | ||
243 | <map keycode="76" pressed="true"> | ||
244 | <event keycode="76" unicode="76" modifiers="8" pressed="true" autorepeat="true"/> | ||
245 | </map> | ||
246 | <map keycode="77" pressed="true"> | ||
247 | <event keycode="77" unicode="77" modifiers="8" pressed="true" autorepeat="true"/> | ||
248 | </map> | ||
249 | <map keycode="78" pressed="true"> | ||
250 | <event keycode="78" unicode="78" modifiers="8" pressed="true" autorepeat="true"/> | ||
251 | </map> | ||
252 | <map keycode="79" pressed="true"> | ||
253 | <event keycode="79" unicode="79" modifiers="8" pressed="true" autorepeat="true"/> | ||
254 | </map> | ||
255 | <map keycode="80" pressed="true"> | ||
256 | <event keycode="80" unicode="80" modifiers="8" pressed="true" autorepeat="true"/> | ||
257 | </map> | ||
258 | <map keycode="81" pressed="true"> | ||
259 | <event keycode="81" unicode="81" modifiers="8" pressed="true" autorepeat="true"/> | ||
260 | </map> | ||
261 | <map keycode="82" pressed="true"> | ||
262 | <event keycode="82" unicode="82" modifiers="8" pressed="true" autorepeat="true"/> | ||
263 | </map> | ||
264 | <map keycode="83" pressed="true"> | ||
265 | <event keycode="83" unicode="83" modifiers="8" pressed="true" autorepeat="true"/> | ||
266 | </map> | ||
267 | <map keycode="84" pressed="true"> | ||
268 | <event keycode="84" unicode="84" modifiers="8" pressed="true" autorepeat="true"/> | ||
269 | </map> | ||
270 | <map keycode="85" pressed="true"> | ||
271 | <event keycode="85" unicode="85" modifiers="8" pressed="true" autorepeat="true"/> | ||
272 | </map> | ||
273 | <map keycode="86" pressed="true"> | ||
274 | <event keycode="86" unicode="86" modifiers="8" pressed="true" autorepeat="true"/> | ||
275 | </map> | ||
276 | <map keycode="87" pressed="true"> | ||
277 | <event keycode="87" unicode="87" modifiers="8" pressed="true" autorepeat="true"/> | ||
278 | </map> | ||
279 | <map keycode="88" pressed="true"> | ||
280 | <event keycode="88" unicode="88" modifiers="8" pressed="true" autorepeat="true"/> | ||
281 | </map> | ||
282 | <map keycode="89" pressed="true"> | ||
283 | <event keycode="89" unicode="89" modifiers="8" pressed="true" autorepeat="true"/> | ||
284 | </map> | ||
285 | <map keycode="90" pressed="true"> | ||
286 | <event keycode="90" unicode="90" modifiers="8" pressed="true" autorepeat="true"/> | ||
287 | </map> | ||
288 | <map keycode="32" pressed="false"> | ||
289 | <event keycode="32" unicode="32" modifiers="8" pressed="false" autorepeat="false"/> | ||
290 | </map> | ||
291 | <map keycode="39" pressed="false"> | ||
292 | <event keycode="34" unicode="34" modifiers="8" pressed="false" autorepeat="false"/> | ||
293 | </map> | ||
294 | <map keycode="44" pressed="false"> | ||
295 | <event keycode="58" unicode="58" modifiers="8" pressed="false" autorepeat="false"/> | ||
296 | </map> | ||
297 | <map keycode="46" pressed="false"> | ||
298 | <event keycode="59" unicode="59" modifiers="8" pressed="false" autorepeat="false"/> | ||
299 | </map> | ||
300 | <map keycode="47" pressed="false"> | ||
301 | <event keycode="63" unicode="63" modifiers="8" pressed="false" autorepeat="false"/> | ||
302 | </map> | ||
303 | <map keycode="65" pressed="false"> | ||
304 | <event keycode="65" unicode="65" modifiers="8" pressed="false" autorepeat="false"/> | ||
305 | </map> | ||
306 | <map keycode="66" pressed="false"> | ||
307 | <event keycode="66" unicode="66" modifiers="8" pressed="false" autorepeat="false"/> | ||
308 | </map> | ||
309 | <map keycode="67" pressed="false"> | ||
310 | <event keycode="67" unicode="67" modifiers="8" pressed="false" autorepeat="false"/> | ||
311 | </map> | ||
312 | <map keycode="68" pressed="false"> | ||
313 | <event keycode="68" unicode="68" modifiers="8" pressed="false" autorepeat="false"/> | ||
314 | </map> | ||
315 | <map keycode="69" pressed="false"> | ||
316 | <event keycode="69" unicode="69" modifiers="8" pressed="false" autorepeat="false"/> | ||
317 | </map> | ||
318 | <map keycode="70" pressed="false"> | ||
319 | <event keycode="70" unicode="70" modifiers="8" pressed="false" autorepeat="false"/> | ||
320 | </map> | ||
321 | <map keycode="71" pressed="false"> | ||
322 | <event keycode="71" unicode="71" modifiers="8" pressed="false" autorepeat="false"/> | ||
323 | </map> | ||
324 | <map keycode="72" pressed="false"> | ||
325 | <event keycode="72" unicode="72" modifiers="8" pressed="false" autorepeat="false"/> | ||
326 | </map> | ||
327 | <map keycode="73" pressed="false"> | ||
328 | <event keycode="73" unicode="73" modifiers="8" pressed="false" autorepeat="false"/> | ||
329 | </map> | ||
330 | <map keycode="74" pressed="false"> | ||
331 | <event keycode="74" unicode="74" modifiers="8" pressed="false" autorepeat="false"/> | ||
332 | </map> | ||
333 | <map keycode="75" pressed="false"> | ||
334 | <event keycode="75" unicode="75" modifiers="8" pressed="false" autorepeat="false"/> | ||
335 | </map> | ||
336 | <map keycode="76" pressed="false"> | ||
337 | <event keycode="76" unicode="76" modifiers="8" pressed="false" autorepeat="false"/> | ||
338 | </map> | ||
339 | <map keycode="77" pressed="false"> | ||
340 | <event keycode="77" unicode="77" modifiers="8" pressed="false" autorepeat="false"/> | ||
341 | </map> | ||
342 | <map keycode="78" pressed="false"> | ||
343 | <event keycode="78" unicode="78" modifiers="8" pressed="false" autorepeat="false"/> | ||
344 | </map> | ||
345 | <map keycode="79" pressed="false"> | ||
346 | <event keycode="79" unicode="79" modifiers="8" pressed="false" autorepeat="false"/> | ||
347 | </map> | ||
348 | <map keycode="80" pressed="false"> | ||
349 | <event keycode="80" unicode="80" modifiers="8" pressed="false" autorepeat="false"/> | ||
350 | </map> | ||
351 | <map keycode="81" pressed="false"> | ||
352 | <event keycode="81" unicode="81" modifiers="8" pressed="false" autorepeat="false"/> | ||
353 | </map> | ||
354 | <map keycode="82" pressed="false"> | ||
355 | <event keycode="82" unicode="82" modifiers="8" pressed="false" autorepeat="false"/> | ||
356 | </map> | ||
357 | <map keycode="83" pressed="false"> | ||
358 | <event keycode="83" unicode="83" modifiers="8" pressed="false" autorepeat="false"/> | ||
359 | </map> | ||
360 | <map keycode="84" pressed="false"> | ||
361 | <event keycode="84" unicode="84" modifiers="8" pressed="false" autorepeat="false"/> | ||
362 | </map> | ||
363 | <map keycode="85" pressed="false"> | ||
364 | <event keycode="85" unicode="85" modifiers="8" pressed="false" autorepeat="false"/> | ||
365 | </map> | ||
366 | <map keycode="86" pressed="false"> | ||
367 | <event keycode="86" unicode="86" modifiers="8" pressed="false" autorepeat="false"/> | ||
368 | </map> | ||
369 | <map keycode="87" pressed="false"> | ||
370 | <event keycode="87" unicode="87" modifiers="8" pressed="false" autorepeat="false"/> | ||
371 | </map> | ||
372 | <map keycode="88" pressed="false"> | ||
373 | <event keycode="88" unicode="88" modifiers="8" pressed="false" autorepeat="false"/> | ||
374 | </map> | ||
375 | <map keycode="89" pressed="false"> | ||
376 | <event keycode="89" unicode="89" modifiers="8" pressed="false" autorepeat="false"/> | ||
377 | </map> | ||
378 | <map keycode="90" pressed="false"> | ||
379 | <event keycode="90" unicode="90" modifiers="8" pressed="false" autorepeat="false"/> | ||
380 | </map> | ||
381 | </state> | ||
382 | |||
383 | </keymap> | ||
diff --git a/share/zkb/latin1.xml b/share/zkb/latin1.xml new file mode 100644 index 0000000..ec57746 --- a/dev/null +++ b/share/zkb/latin1.xml | |||
@@ -0,0 +1,1927 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <!-- | ||
4 | Zaurus Keyboard definition for Latin1 characters. | ||
5 | ================================================ | ||
6 | This keyboard should allow the entry of all characters used in latin | ||
7 | languages like French or Spanish. | ||
8 | |||
9 | The following rules are implemented: | ||
10 | - Right Shift activate dead keys that allows to compose accentuated characters. | ||
11 | - Keep Right Shift or press Left Shift to change case of letter | ||
12 | - Space can be used to abort a key composition and return to Normal state, printing | ||
13 | the accent. | ||
14 | |||
15 | - Keys not defined are inherited from parent mapping. | ||
16 | |||
17 | Key composition | ||
18 | =============== | ||
19 | Use the Right Shift with one of the following keys to compose accentuated | ||
20 | characters. | ||
21 | Key Action (Mnemonic) | ||
22 | / Accute accent (same slant) | ||
23 | ' Grave accent (no backslash!) | ||
24 | , Cedilla (a comma under the C) | ||
25 | V Circumflex accent (reversed circumflex) | ||
26 | J Ligature (Join letters) | ||
27 | B Trema (Near circumflex) | ||
28 | N Tilde (Same shape on N) ******* Bound to M due to a bug in the definition! | ||
29 | I Inversed (Inversed !) | ||
30 | |||
31 | All accents are in the same area, around Space bar. | ||
32 | |||
33 | |||
34 | Keyboard navigation (not implemented yet) | ||
35 | =================== | ||
36 | To be put into common.xml. Use either Right of Left Shift: | ||
37 | <-Home | ||
38 | ->End | ||
39 | ^PageUp | ||
40 | vPageDown | ||
41 | |||
42 | |||
43 | Report bugs or comments to Pierre Métras <admin@alterna.tv> | ||
44 | Version 0.1 - 20020901 | ||
45 | --> | ||
46 | |||
47 | <!-- The base is English mapping --> | ||
48 | <include file="en.xml"/> | ||
49 | |||
50 | |||
51 | <state name="RShift-Accute" parent="RShift"/> | ||
52 | <state name="RShift-Accute-Lower" parent="Normal"/> | ||
53 | <state name="RShift-Caps-Accute" parent="Caps"/> | ||
54 | <state name="RShift-Caps-Accute-Upper" parent="RShift-Caps"/> | ||
55 | |||
56 | <state name="RShift-Grave" parent="RShift"/> | ||
57 | <state name="RShift-Grave-Lower" parent="Normal"/> | ||
58 | <state name="RShift-Caps-Grave" parent="Caps"/> | ||
59 | <state name="RShift-Caps-Grave-Upper" parent="RShift-Caps"/> | ||
60 | |||
61 | <state name="RShift-Circumflex" parent="RShift"/> | ||
62 | <state name="RShift-Circumflex-Lower" parent="Normal"/> | ||
63 | <state name="RShift-Caps-Circumflex" parent="Caps"/> | ||
64 | <state name="RShift-Caps-Circumflex-Upper" parent="RShift-Caps"/> | ||
65 | |||
66 | <state name="RShift-Cedilla" parent="RShift"/> | ||
67 | <state name="RShift-Cedilla-Lower" parent="Normal"/> | ||
68 | <state name="RShift-Caps-Cedilla" parent="Caps"/> | ||
69 | <state name="RShift-Caps-Cedilla-Upper" parent="RShift-Caps"/> | ||
70 | |||
71 | <state name="RShift-Ligature" parent="RShift"/> | ||
72 | <state name="RShift-Ligature-Lower" parent="Normal"/> | ||
73 | <state name="RShift-Caps-Ligature" parent="Caps"/> | ||
74 | <state name="RShift-Caps-Ligature-Upper" parent="RShift-Caps"/> | ||
75 | |||
76 | <state name="RShift-Trema" parent="RShift"/> | ||
77 | <state name="RShift-Trema-Lower" parent="Normal"/> | ||
78 | <state name="RShift-Caps-Trema" parent="Caps"/> | ||
79 | <state name="RShift-Caps-Trema-Upper" parent="RShift-Caps"/> | ||
80 | |||
81 | <state name="RShift-Tilde" parent="RShift"/> | ||
82 | <state name="RShift-Tilde-Lower" parent="Normal"/> | ||
83 | <state name="RShift-Caps-Tilde" parent="Caps"/> | ||
84 | <state name="RShift-Caps-Tilde-Upper" parent="RShift-Caps"/> | ||
85 | |||
86 | <state name="RShift-Inversed" parent="RShift"/> | ||
87 | <state name="RShift-Caps-Inversed" parent="Caps"/> | ||
88 | |||
89 | |||
90 | |||
91 | <!-- TO BE PLACED INTO COMMON --> | ||
92 | <!-- START: EXTENDED KEY NAVIGATION --> | ||
93 | <state name="LShift"> | ||
94 | <map keycode="Left" pressed="true"> | ||
95 | <event keycode="Home" unicode="-1" pressed="true" autorepeat="true"/> | ||
96 | </map> | ||
97 | <map keycode="Left" pressed="false"> | ||
98 | <event keycode="Home" unicode="-1" pressed="false"/> | ||
99 | </map> | ||
100 | |||
101 | <map keycode="Up" pressed="true"> | ||
102 | <event keycode="PageUp" unicode="-1" pressed="true" autorepeat="true"/> | ||
103 | </map> | ||
104 | <map keycode="Up" pressed="false"> | ||
105 | <event keycode="PageUp" unicode="-1" pressed="false"/> | ||
106 | </map> | ||
107 | |||
108 | <map keycode="Right" pressed="true"> | ||
109 | <event keycode="End" unicode="-1" pressed="true" autorepeat="true"/> | ||
110 | </map> | ||
111 | <map keycode="Right" pressed="false"> | ||
112 | <event keycode="End" unicode="-1" pressed="false"/> | ||
113 | </map> | ||
114 | |||
115 | <map keycode="Down" pressed="true"> | ||
116 | <event keycode="PageDown" unicode="-1" pressed="true" autorepeat="true"/> | ||
117 | </map> | ||
118 | <map keycode="Down" pressed="false"> | ||
119 | <event keycode="PageDown" unicode="-1" pressed="false"/> | ||
120 | </map> | ||
121 | </state> | ||
122 | <state name="RShift"> | ||
123 | <map keycode="Left" pressed="true"> | ||
124 | <event keycode="Home" unicode="-1" pressed="true" autorepeat="true"/> | ||
125 | </map> | ||
126 | <map keycode="Left" pressed="false"> | ||
127 | <event keycode="Home" unicode="-1" pressed="false"/> | ||
128 | </map> | ||
129 | |||
130 | <map keycode="Up" pressed="true"> | ||
131 | <event keycode="PageUp" unicode="-1" pressed="true" autorepeat="true"/> | ||
132 | </map> | ||
133 | <map keycode="Up" pressed="false"> | ||
134 | <event keycode="PageUp" unicode="-1" pressed="false"/> | ||
135 | </map> | ||
136 | |||
137 | <map keycode="Right" pressed="true"> | ||
138 | <event keycode="End" unicode="-1" pressed="true" autorepeat="true"/> | ||
139 | </map> | ||
140 | <map keycode="Right" pressed="false"> | ||
141 | <event keycode="End" unicode="-1" pressed="false"/> | ||
142 | </map> | ||
143 | |||
144 | <map keycode="Down" pressed="true"> | ||
145 | <event keycode="PageDown" unicode="-1" pressed="true" autorepeat="true"/> | ||
146 | </map> | ||
147 | <map keycode="Down" pressed="false"> | ||
148 | <event keycode="PageDown" unicode="-1" pressed="false"/> | ||
149 | </map> | ||
150 | </state> | ||
151 | <!-- END: EXTENDED KEY NAVIGATION --> | ||
152 | |||
153 | |||
154 | |||
155 | <!-- RShift activate dead keys --> | ||
156 | <state name="RShift"> | ||
157 | <map keycode="Slash" pressed="true"> | ||
158 | <next-state name="RShift-Accute"/> | ||
159 | </map> | ||
160 | <map keycode="Apostrophe" pressed="true"> | ||
161 | <next-state name="RShift-Grave"/> | ||
162 | </map> | ||
163 | <map keycode="Comma" pressed="true"> | ||
164 | <next-state name="RShift-Cedilla"/> | ||
165 | </map> | ||
166 | <map keycode="J" pressed="true"> | ||
167 | <next-state name="RShift-Ligature"/> | ||
168 | </map> | ||
169 | <map keycode="V" pressed="true"> | ||
170 | <next-state name="RShift-Circumflex"/> | ||
171 | </map> | ||
172 | <map keycode="B" pressed="true"> | ||
173 | <next-state name="RShift-Trema"/> | ||
174 | </map> | ||
175 | <map keycode="M" pressed="true"> | ||
176 | <next-state name="RShift-Tilde"/> | ||
177 | </map> | ||
178 | <map keycode="I" pressed="true"> | ||
179 | <next-state name="RShift-Inversed"/> | ||
180 | </map> | ||
181 | </state> | ||
182 | |||
183 | |||
184 | <!-- RShift activate dead keys in CAPS mode --> | ||
185 | <state name="RShift-Caps"> | ||
186 | <map keycode="Slash" pressed="true"> | ||
187 | <next-state name="RShift-Caps-Accute"/> | ||
188 | </map> | ||
189 | <map keycode="Apostrophe" pressed="true"> | ||
190 | <next-state name="RShift-Caps-Grave"/> | ||
191 | </map> | ||
192 | <map keycode="Comma" pressed="true"> | ||
193 | <next-state name="RShift-Caps-Cedilla"/> | ||
194 | </map> | ||
195 | <map keycode="J" pressed="true"> | ||
196 | <next-state name="RShift-Caps-Ligature"/> | ||
197 | </map> | ||
198 | <map keycode="V" pressed="true"> | ||
199 | <next-state name="RShift-Caps-Circumflex"/> | ||
200 | </map> | ||
201 | <map keycode="B" pressed="true"> | ||
202 | <next-state name="RShift-Caps-Trema"/> | ||
203 | </map> | ||
204 | <map keycode="M" pressed="true"> | ||
205 | <next-state name="RShift-Caps-Tilde"/> | ||
206 | </map> | ||
207 | <map keycode="I" pressed="true"> | ||
208 | <next-state name="RShift-Caps-Inversed"/> | ||
209 | </map> | ||
210 | </state> | ||
211 | |||
212 | |||
213 | <!-- Accute Accentuated Upper-Case Characters: Á, É... because we still press Shift --> | ||
214 | <state name="RShift-Accute"> | ||
215 | <!-- RS + (/) + A = Á --> | ||
216 | <map keycode="A" pressed="true"> | ||
217 | <event keycode="A" unicode="0xC1" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
218 | </map> | ||
219 | <map keycode="A" pressed="false"> | ||
220 | <event keycode="A" unicode="0xC1" pressed="false" modifiers="Shift"/> | ||
221 | <next-state name="Normal"/> | ||
222 | </map> | ||
223 | |||
224 | <!-- RS + (/) + E = É --> | ||
225 | <map keycode="E" pressed="true"> | ||
226 | <event keycode="E" unicode="0xC9" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
227 | </map> | ||
228 | <map keycode="E" pressed="false"> | ||
229 | <event keycode="E" unicode="0xC9" pressed="false" modifiers="Shift"/> | ||
230 | <next-state name="Normal"/> | ||
231 | </map> | ||
232 | |||
233 | <!-- RS + (/) + I = Í --> | ||
234 | <map keycode="I" pressed="true"> | ||
235 | <event keycode="I" unicode="0xCD" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
236 | </map> | ||
237 | <map keycode="I" pressed="false"> | ||
238 | <event keycode="I" unicode="0xCD" pressed="false" modifiers="Shift"/> | ||
239 | <next-state name="Normal"/> | ||
240 | </map> | ||
241 | |||
242 | <!-- RS + (/) + O = Ó --> | ||
243 | <map keycode="O" pressed="true"> | ||
244 | <event keycode="O" unicode="0xD3" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
245 | </map> | ||
246 | <map keycode="O" pressed="false"> | ||
247 | <event keycode="O" unicode="0xD3" pressed="false" modifiers="Shift"/> | ||
248 | <next-state name="Normal"/> | ||
249 | </map> | ||
250 | |||
251 | <!-- RS + (/) + U = Ú --> | ||
252 | <map keycode="U" pressed="true"> | ||
253 | <event keycode="U" unicode="0xDA" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
254 | </map> | ||
255 | <map keycode="U" pressed="false"> | ||
256 | <event keycode="U" unicode="0xDA" pressed="false" modifiers="Shift"/> | ||
257 | <next-state name="Normal"/> | ||
258 | </map> | ||
259 | |||
260 | <!-- RS + (/) + Y = Ý --> | ||
261 | <map keycode="Y" pressed="true"> | ||
262 | <event keycode="Y" unicode="0xDD" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
263 | </map> | ||
264 | <map keycode="Y" pressed="false"> | ||
265 | <event keycode="Y" unicode="0xDD" pressed="false" modifiers="Shift"/> | ||
266 | <next-state name="Normal"/> | ||
267 | </map> | ||
268 | |||
269 | <!-- Release shift to do lower-case --> | ||
270 | <map keycode="Right Shift" pressed="false"> | ||
271 | <next-state name="RShift-Accute-Lower"/> | ||
272 | </map> | ||
273 | <map keycode="Left Shift" pressed="false"> | ||
274 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
275 | <next-state name="RShift-Accute-Lower"/> | ||
276 | </map> | ||
277 | |||
278 | <!-- Abort operation: print ´ --> | ||
279 | <map keycode="Space" pressed="true"> | ||
280 | <event keycode="Slash" unicode="0xB4" pressed="true" autorepeat="false"/> | ||
281 | </map> | ||
282 | <map keycode="Space" pressed="false"> | ||
283 | <event keycode="Slash" unicode="0xB4" pressed="false"/> | ||
284 | <next-state name="Normal"/> | ||
285 | </map> | ||
286 | </state> | ||
287 | |||
288 | |||
289 | <!-- Accute Accentuated Lower-Case Characters: á, é... because we have released RShift --> | ||
290 | <state name="RShift-Accute-Lower"> | ||
291 | <!-- RS + (/) + A = á --> | ||
292 | <map keycode="A" pressed="true"> | ||
293 | <event keycode="A" unicode="0xE1" pressed="true" autorepeat="true"/> | ||
294 | </map> | ||
295 | <map keycode="A" pressed="false"> | ||
296 | <event keycode="A" unicode="0xE1" pressed="false"/> | ||
297 | <next-state name="Normal"/> | ||
298 | </map> | ||
299 | |||
300 | <!-- RS + (/) + E = é --> | ||
301 | <map keycode="E" pressed="true"> | ||
302 | <event keycode="E" unicode="0xE9" pressed="true" autorepeat="true"/> | ||
303 | </map> | ||
304 | <map keycode="E" pressed="false"> | ||
305 | <event keycode="E" unicode="0xE9" pressed="false"/> | ||
306 | <next-state name="Normal"/> | ||
307 | </map> | ||
308 | |||
309 | <!-- RS + (/) + I = í --> | ||
310 | <map keycode="I" pressed="true"> | ||
311 | <event keycode="I" unicode="0xED" pressed="true" autorepeat="true"/> | ||
312 | </map> | ||
313 | <map keycode="I" pressed="false"> | ||
314 | <event keycode="I" unicode="0xED" pressed="false"/> | ||
315 | <next-state name="Normal"/> | ||
316 | </map> | ||
317 | |||
318 | <!-- RS + (/) + O = ó --> | ||
319 | <map keycode="O" pressed="true"> | ||
320 | <event keycode="O" unicode="0xF3" pressed="true" autorepeat="true"/> | ||
321 | </map> | ||
322 | <map keycode="O" pressed="false"> | ||
323 | <event keycode="O" unicode="0xF3" pressed="false"/> | ||
324 | <next-state name="Normal"/> | ||
325 | </map> | ||
326 | |||
327 | <!-- RS + (/) + U = ú --> | ||
328 | <map keycode="U" pressed="true"> | ||
329 | <event keycode="U" unicode="0xFA" pressed="true" autorepeat="true"/> | ||
330 | </map> | ||
331 | <map keycode="U" pressed="false"> | ||
332 | <event keycode="U" unicode="0xFA" pressed="false"/> | ||
333 | <next-state name="Normal"/> | ||
334 | </map> | ||
335 | |||
336 | <!-- RS + (/) + Y = ý --> | ||
337 | <map keycode="Y" pressed="true"> | ||
338 | <event keycode="Y" unicode="0xFD" pressed="true" autorepeat="true"/> | ||
339 | </map> | ||
340 | <map keycode="Y" pressed="false"> | ||
341 | <event keycode="Y" unicode="0xFD" pressed="false"/> | ||
342 | <next-state name="Normal"/> | ||
343 | </map> | ||
344 | |||
345 | <!-- Simple shift second time goes Upper-Case --> | ||
346 | <map keycode="Right Shift" pressed="true"> | ||
347 | <next-state name="RShift-Accute"/> | ||
348 | </map> | ||
349 | <map keycode="Left Shift" pressed="true"> | ||
350 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
351 | <next-state name="RShift-Accute"/> | ||
352 | </map> | ||
353 | |||
354 | <!-- Abort operation: print ´ --> | ||
355 | <map keycode="Space" pressed="true"> | ||
356 | <event keycode="Slash" unicode="0xB4" pressed="true" autorepeat="false"/> | ||
357 | </map> | ||
358 | <map keycode="Space" pressed="false"> | ||
359 | <event keycode="Slash" unicode="0xB4" pressed="false"/> | ||
360 | <next-state name="Normal"/> | ||
361 | </map> | ||
362 | </state> | ||
363 | |||
364 | |||
365 | <!-- Accute Accentuated Lower-Case Characters: á, é... because we still press Shift and we are in Caps --> | ||
366 | <state name="RShift-Caps-Accute"> | ||
367 | <!-- Caps + RS + (/) + A = á --> | ||
368 | <map keycode="A" pressed="true"> | ||
369 | <event keycode="A" unicode="0xE1" pressed="true" autorepeat="true"/> | ||
370 | </map> | ||
371 | <map keycode="A" pressed="false"> | ||
372 | <event keycode="A" unicode="0xE1" pressed="false"/> | ||
373 | <next-state name="Caps"/> | ||
374 | </map> | ||
375 | |||
376 | <!-- Caps + RS + (/) + E = é --> | ||
377 | <map keycode="E" pressed="true"> | ||
378 | <event keycode="E" unicode="0xE9" pressed="true" autorepeat="true"/> | ||
379 | </map> | ||
380 | <map keycode="E" pressed="false"> | ||
381 | <event keycode="E" unicode="0xE9" pressed="false"/> | ||
382 | <next-state name="Caps"/> | ||
383 | </map> | ||
384 | |||
385 | <!-- Caps + RS + (/) + I = í --> | ||
386 | <map keycode="I" pressed="true"> | ||
387 | <event keycode="I" unicode="0xED" pressed="true" autorepeat="true"/> | ||
388 | </map> | ||
389 | <map keycode="I" pressed="false"> | ||
390 | <event keycode="I" unicode="0xED" pressed="false"/> | ||
391 | <next-state name="Caps"/> | ||
392 | </map> | ||
393 | |||
394 | <!-- Caps + RS + (/) + O = ó --> | ||
395 | <map keycode="O" pressed="true"> | ||
396 | <event keycode="O" unicode="0xF3" pressed="true" autorepeat="true"/> | ||
397 | </map> | ||
398 | <map keycode="O" pressed="false"> | ||
399 | <event keycode="O" unicode="0xF3" pressed="false"/> | ||
400 | <next-state name="Caps"/> | ||
401 | </map> | ||
402 | |||
403 | <!-- Caps + RS + (/) + U = ú --> | ||
404 | <map keycode="U" pressed="true"> | ||
405 | <event keycode="U" unicode="0xFA" pressed="true" autorepeat="true"/> | ||
406 | </map> | ||
407 | <map keycode="U" pressed="false"> | ||
408 | <event keycode="U" unicode="0xFA" pressed="false"/> | ||
409 | <next-state name="Caps"/> | ||
410 | </map> | ||
411 | |||
412 | <!-- Caps + RS + (/) + Y = ý --> | ||
413 | <map keycode="Y" pressed="true"> | ||
414 | <event keycode="Y" unicode="0xFD" pressed="true" autorepeat="true"/> | ||
415 | </map> | ||
416 | <map keycode="Y" pressed="false"> | ||
417 | <event keycode="Y" unicode="0xFD" pressed="false"/> | ||
418 | <next-state name="Caps"/> | ||
419 | </map> | ||
420 | |||
421 | <!-- Release shift to go upper-case --> | ||
422 | <map keycode="Right Shift" pressed="false"> | ||
423 | <next-state name="RShift-Caps-Accute-Upper"/> | ||
424 | </map> | ||
425 | <map keycode="Left Shift" pressed="false"> | ||
426 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
427 | <next-state name="RShift-Caps-Accute-Upper"/> | ||
428 | </map> | ||
429 | |||
430 | <!-- Abort operation: print ´ --> | ||
431 | <map keycode="Space" pressed="true"> | ||
432 | <event keycode="Slash" unicode="0xB4" pressed="true" autorepeat="false"/> | ||
433 | </map> | ||
434 | <map keycode="Space" pressed="false"> | ||
435 | <event keycode="Slash" unicode="0xB4" pressed="false"/> | ||
436 | <next-state name="Caps"/> | ||
437 | </map> | ||
438 | </state> | ||
439 | |||
440 | |||
441 | <!-- Accute Accentuated Upper-Case Characters: Á, É... because we have released RShift but we are in Caps --> | ||
442 | <state name="RShift-Caps-Accute-Upper"> | ||
443 | <!-- Caps + RS + (/) + A = Á --> | ||
444 | <map keycode="A" pressed="true"> | ||
445 | <event keycode="A" unicode="0xC1" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
446 | </map> | ||
447 | <map keycode="A" pressed="false"> | ||
448 | <event keycode="A" unicode="0xC1" pressed="false" modifiers="Shift"/> | ||
449 | <next-state name="Caps"/> | ||
450 | </map> | ||
451 | |||
452 | <!-- Caps + RS + (/) + E = É --> | ||
453 | <map keycode="E" pressed="true"> | ||
454 | <event keycode="E" unicode="0xC9" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
455 | </map> | ||
456 | <map keycode="E" pressed="false"> | ||
457 | <event keycode="E" unicode="0xC9" pressed="false" modifiers="Shift"/> | ||
458 | <next-state name="Caps"/> | ||
459 | </map> | ||
460 | |||
461 | <!-- Caps + RS + (/) + I = Í --> | ||
462 | <map keycode="I" pressed="true"> | ||
463 | <event keycode="I" unicode="0xCD" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
464 | </map> | ||
465 | <map keycode="I" pressed="false"> | ||
466 | <event keycode="I" unicode="0xCD" pressed="false" modifiers="Shift"/> | ||
467 | <next-state name="Caps"/> | ||
468 | </map> | ||
469 | |||
470 | <!-- Caps + RS + (/) + O = Ó --> | ||
471 | <map keycode="O" pressed="true"> | ||
472 | <event keycode="O" unicode="0xD3" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
473 | </map> | ||
474 | <map keycode="O" pressed="false"> | ||
475 | <event keycode="O" unicode="0xD3" pressed="false" modifiers="Shift"/> | ||
476 | <next-state name="Caps"/> | ||
477 | </map> | ||
478 | |||
479 | <!-- Caps + RS + (/) + U = Ú --> | ||
480 | <map keycode="U" pressed="true"> | ||
481 | <event keycode="U" unicode="0xDA" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
482 | </map> | ||
483 | <map keycode="U" pressed="false"> | ||
484 | <event keycode="U" unicode="0xDA" pressed="false" modifiers="Shift"/> | ||
485 | <next-state name="Caps"/> | ||
486 | </map> | ||
487 | |||
488 | <!-- Caps + RS + (/) + Y = Ý --> | ||
489 | <map keycode="Y" pressed="true"> | ||
490 | <event keycode="Y" unicode="0xDD" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
491 | </map> | ||
492 | <map keycode="Y" pressed="false"> | ||
493 | <event keycode="Y" unicode="0xDD" pressed="false" modifiers="Shift"/> | ||
494 | <next-state name="Caps"/> | ||
495 | </map> | ||
496 | |||
497 | <!-- Simple shift second time goes Lower-Case --> | ||
498 | <map keycode="Right Shift" pressed="true"> | ||
499 | <next-state name="RShift-Caps-Accute"/> | ||
500 | </map> | ||
501 | <map keycode="Left Shift" pressed="true"> | ||
502 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
503 | <next-state name="RShift-Caps-Accute"/> | ||
504 | </map> | ||
505 | |||
506 | <!-- Abort operation: print ´ --> | ||
507 | <map keycode="Space" pressed="true"> | ||
508 | <event keycode="Slash" unicode="0xB4" pressed="true" autorepeat="false"/> | ||
509 | </map> | ||
510 | <map keycode="Space" pressed="false"> | ||
511 | <event keycode="Slash" unicode="0xB4" pressed="false"/> | ||
512 | <next-state name="Caps"/> | ||
513 | </map> | ||
514 | </state> | ||
515 | |||
516 | |||
517 | |||
518 | |||
519 | <!-- Grave Accentuated Upper-Case Characters: À, È, Ì... because we still press Shift --> | ||
520 | <state name="RShift-Grave"> | ||
521 | <!-- RS + (') + A = À --> | ||
522 | <map keycode="A" pressed="true"> | ||
523 | <event keycode="A" unicode="0xC0" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
524 | </map> | ||
525 | <map keycode="A" pressed="false"> | ||
526 | <event keycode="A" unicode="0xC0" pressed="false" modifiers="Shift"/> | ||
527 | <next-state name="Normal"/> | ||
528 | </map> | ||
529 | |||
530 | <!-- RS + (') + E = È --> | ||
531 | <map keycode="E" pressed="true"> | ||
532 | <event keycode="E" unicode="0xC8" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
533 | </map> | ||
534 | <map keycode="E" pressed="false"> | ||
535 | <event keycode="E" unicode="0xC8" pressed="false" modifiers="Shift"/> | ||
536 | <next-state name="Normal"/> | ||
537 | </map> | ||
538 | |||
539 | <!-- RS + (') + I = Ì --> | ||
540 | <map keycode="I" pressed="true"> | ||
541 | <event keycode="I" unicode="0xCC" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
542 | </map> | ||
543 | <map keycode="I" pressed="false"> | ||
544 | <event keycode="I" unicode="0xCC" pressed="false" modifiers="Shift"/> | ||
545 | <next-state name="Normal"/> | ||
546 | </map> | ||
547 | |||
548 | <!-- RS + (') + O = Ò --> | ||
549 | <map keycode="O" pressed="true"> | ||
550 | <event keycode="O" unicode="0xD2" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
551 | </map> | ||
552 | <map keycode="O" pressed="false"> | ||
553 | <event keycode="O" unicode="0xD2" pressed="false" modifiers="Shift"/> | ||
554 | <next-state name="Normal"/> | ||
555 | </map> | ||
556 | |||
557 | <!-- RS + (') + U = Ù --> | ||
558 | <map keycode="U" pressed="true"> | ||
559 | <event keycode="U" unicode="0xD9" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
560 | </map> | ||
561 | <map keycode="U" pressed="false"> | ||
562 | <event keycode="U" unicode="0xD9" pressed="false" modifiers="Shift"/> | ||
563 | <next-state name="Normal"/> | ||
564 | </map> | ||
565 | |||
566 | <!-- Release shift to do lower-case --> | ||
567 | <map keycode="Right Shift" pressed="false"> | ||
568 | <next-state name="RShift-Grave-Lower"/> | ||
569 | </map> | ||
570 | <map keycode="Left Shift" pressed="false"> | ||
571 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
572 | <next-state name="RShift-Grave-Lower"/> | ||
573 | </map> | ||
574 | |||
575 | <!-- Abort operation: print ` --> | ||
576 | <map keycode="Space" pressed="true"> | ||
577 | <event keycode="Apostrophe" unicode="0x60" pressed="true" autorepeat="false"/> | ||
578 | </map> | ||
579 | <map keycode="Space" pressed="false"> | ||
580 | <event keycode="Apostrophe" unicode="0x60" pressed="false"/> | ||
581 | <next-state name="Normal"/> | ||
582 | </map> | ||
583 | </state> | ||
584 | |||
585 | |||
586 | <!-- Grave Accentuated Lower-Case Characters: à, è, ì... because we have released RShift --> | ||
587 | <state name="RShift-Grave-Lower"> | ||
588 | <!-- RS + (') + A = à --> | ||
589 | <map keycode="A" pressed="true"> | ||
590 | <event keycode="A" unicode="0xE0" pressed="true" autorepeat="true"/> | ||
591 | </map> | ||
592 | <map keycode="A" pressed="false"> | ||
593 | <event keycode="A" unicode="0xE0" pressed="false"/> | ||
594 | <next-state name="Normal"/> | ||
595 | </map> | ||
596 | |||
597 | <!-- RS + (') + E = è --> | ||
598 | <map keycode="E" pressed="true"> | ||
599 | <event keycode="E" unicode="0xE8" pressed="true" autorepeat="true"/> | ||
600 | </map> | ||
601 | <map keycode="E" pressed="false"> | ||
602 | <event keycode="E" unicode="0xE8" pressed="false"/> | ||
603 | <next-state name="Normal"/> | ||
604 | </map> | ||
605 | |||
606 | <!-- RS + (') + I = ì --> | ||
607 | <map keycode="I" pressed="true"> | ||
608 | <event keycode="I" unicode="0xEC" pressed="true" autorepeat="true"/> | ||
609 | </map> | ||
610 | <map keycode="I" pressed="false"> | ||
611 | <event keycode="I" unicode="0xEC" pressed="false"/> | ||
612 | <next-state name="Normal"/> | ||
613 | </map> | ||
614 | |||
615 | <!-- RS + (') + O = ò --> | ||
616 | <map keycode="O" pressed="true"> | ||
617 | <event keycode="O" unicode="0xF2" pressed="true" autorepeat="true"/> | ||
618 | </map> | ||
619 | <map keycode="O" pressed="false"> | ||
620 | <event keycode="O" unicode="0xF2" pressed="false"/> | ||
621 | <next-state name="Normal"/> | ||
622 | </map> | ||
623 | |||
624 | <!-- RS + (') + U = ù --> | ||
625 | <map keycode="U" pressed="true"> | ||
626 | <event keycode="U" unicode="0xF9" pressed="true" autorepeat="true"/> | ||
627 | </map> | ||
628 | <map keycode="U" pressed="false"> | ||
629 | <event keycode="U" unicode="0xF9" pressed="false"/> | ||
630 | <next-state name="Normal"/> | ||
631 | </map> | ||
632 | |||
633 | <!-- Simple shift second time goes Upper-Case --> | ||
634 | <map keycode="Right Shift" pressed="true"> | ||
635 | <next-state name="RShift-Grave"/> | ||
636 | </map> | ||
637 | <map keycode="Left Shift" pressed="true"> | ||
638 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
639 | <next-state name="RShift-Grave"/> | ||
640 | </map> | ||
641 | |||
642 | <!-- Abort operation: print ` --> | ||
643 | <map keycode="Space" pressed="true"> | ||
644 | <event keycode="Apostrophe" unicode="0x60" pressed="true" autorepeat="false"/> | ||
645 | </map> | ||
646 | <map keycode="Space" pressed="false"> | ||
647 | <event keycode="Apostrophe" unicode="0x60" pressed="false"/> | ||
648 | <next-state name="Normal"/> | ||
649 | </map> | ||
650 | </state> | ||
651 | |||
652 | |||
653 | <!-- Grave Accentuated Lower-Case Characters: à, è... because we still press Shift and we are in Caps --> | ||
654 | <state name="RShift-Caps-Grave"> | ||
655 | <!-- Caps + RS + (') + A = à --> | ||
656 | <map keycode="A" pressed="true"> | ||
657 | <event keycode="A" unicode="0xE0" pressed="true" autorepeat="true"/> | ||
658 | </map> | ||
659 | <map keycode="A" pressed="false"> | ||
660 | <event keycode="A" unicode="0xE0" pressed="false"/> | ||
661 | <next-state name="Caps"/> | ||
662 | </map> | ||
663 | |||
664 | <!-- Caps + RS + (') + E = è --> | ||
665 | <map keycode="E" pressed="true"> | ||
666 | <event keycode="E" unicode="0xE8" pressed="true" autorepeat="true"/> | ||
667 | </map> | ||
668 | <map keycode="E" pressed="false"> | ||
669 | <event keycode="E" unicode="0xE8" pressed="false"/> | ||
670 | <next-state name="Caps"/> | ||
671 | </map> | ||
672 | |||
673 | <!-- Caps + RS + (') + I = ì --> | ||
674 | <map keycode="I" pressed="true"> | ||
675 | <event keycode="I" unicode="0xEC" pressed="true" autorepeat="true"/> | ||
676 | </map> | ||
677 | <map keycode="I" pressed="false"> | ||
678 | <event keycode="I" unicode="0xEC" pressed="false"/> | ||
679 | <next-state name="Caps"/> | ||
680 | </map> | ||
681 | |||
682 | <!-- Caps + RS + (') + O = ò --> | ||
683 | <map keycode="O" pressed="true"> | ||
684 | <event keycode="O" unicode="0xF2" pressed="true" autorepeat="true"/> | ||
685 | </map> | ||
686 | <map keycode="O" pressed="false"> | ||
687 | <event keycode="O" unicode="0xF2" pressed="false"/> | ||
688 | <next-state name="Caps"/> | ||
689 | </map> | ||
690 | |||
691 | <!-- Caps + RS + (') + U = ú --> | ||
692 | <map keycode="U" pressed="true"> | ||
693 | <event keycode="U" unicode="0xF9" pressed="true" autorepeat="true"/> | ||
694 | </map> | ||
695 | <map keycode="U" pressed="false"> | ||
696 | <event keycode="U" unicode="0xF9" pressed="false"/> | ||
697 | <next-state name="Caps"/> | ||
698 | </map> | ||
699 | |||
700 | <!-- Release shift to go upper-case --> | ||
701 | <map keycode="Right Shift" pressed="false"> | ||
702 | <next-state name="RShift-Caps-Grave-Upper"/> | ||
703 | </map> | ||
704 | <map keycode="Left Shift" pressed="false"> | ||
705 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
706 | <next-state name="RShift-Caps-Grave-Upper"/> | ||
707 | </map> | ||
708 | |||
709 | <!-- Abort operation: print ` --> | ||
710 | <map keycode="Space" pressed="true"> | ||
711 | <event keycode="Apostrophe" unicode="0x60" pressed="true" autorepeat="false"/> | ||
712 | </map> | ||
713 | <map keycode="Space" pressed="false"> | ||
714 | <event keycode="Apostrophe" unicode="0x60" pressed="false"/> | ||
715 | <next-state name="Caps"/> | ||
716 | </map> | ||
717 | </state> | ||
718 | |||
719 | |||
720 | <!-- Grave Accentuated Upper-Case Characters: À, È, Ì... because we have released RShift and we are in Caps --> | ||
721 | <state name="RShift-Caps-Grave-Upper"> | ||
722 | <!-- Caps + RS + (') + A = À --> | ||
723 | <map keycode="A" pressed="true"> | ||
724 | <event keycode="A" unicode="0xC0" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
725 | </map> | ||
726 | <map keycode="A" pressed="false"> | ||
727 | <event keycode="A" unicode="0xC0" pressed="false" modifiers="Shift"/> | ||
728 | <next-state name="Caps"/> | ||
729 | </map> | ||
730 | |||
731 | <!-- Caps + RS + (') + E = È --> | ||
732 | <map keycode="E" pressed="true"> | ||
733 | <event keycode="E" unicode="0xC8" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
734 | </map> | ||
735 | <map keycode="E" pressed="false"> | ||
736 | <event keycode="E" unicode="0xC8" pressed="false" modifiers="Shift"/> | ||
737 | <next-state name="Caps"/> | ||
738 | </map> | ||
739 | |||
740 | <!-- Caps + RS + (') + I = Ì --> | ||
741 | <map keycode="I" pressed="true"> | ||
742 | <event keycode="I" unicode="0xCC" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
743 | </map> | ||
744 | <map keycode="I" pressed="false"> | ||
745 | <event keycode="I" unicode="0xCC" pressed="false" modifiers="Shift"/> | ||
746 | <next-state name="Caps"/> | ||
747 | </map> | ||
748 | |||
749 | <!-- Caps + RS + (') + O = Ò --> | ||
750 | <map keycode="O" pressed="true"> | ||
751 | <event keycode="O" unicode="0xD2" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
752 | </map> | ||
753 | <map keycode="O" pressed="false"> | ||
754 | <event keycode="O" unicode="0xD2" pressed="false" modifiers="Shift"/> | ||
755 | <next-state name="Caps"/> | ||
756 | </map> | ||
757 | |||
758 | <!-- Caps + RS + (') + U = Ù --> | ||
759 | <map keycode="U" pressed="true"> | ||
760 | <event keycode="U" unicode="0xD9" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
761 | </map> | ||
762 | <map keycode="U" pressed="false"> | ||
763 | <event keycode="U" unicode="0xD9" pressed="false" modifiers="Shift"/> | ||
764 | <next-state name="Caps"/> | ||
765 | </map> | ||
766 | |||
767 | <!-- Simple shift second time goes Lower-Case --> | ||
768 | <map keycode="Right Shift" pressed="true"> | ||
769 | <next-state name="RShift-Caps-Grave"/> | ||
770 | </map> | ||
771 | <map keycode="Left Shift" pressed="true"> | ||
772 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
773 | <next-state name="RShift-Caps-Grave"/> | ||
774 | </map> | ||
775 | |||
776 | <!-- Abort operation: print ` --> | ||
777 | <map keycode="Space" pressed="true"> | ||
778 | <event keycode="Apostrophe" unicode="0x60" pressed="true" autorepeat="false"/> | ||
779 | </map> | ||
780 | <map keycode="Space" pressed="false"> | ||
781 | <event keycode="Apostrophe" unicode="0x60" pressed="false"/> | ||
782 | <next-state name="Caps"/> | ||
783 | </map> | ||
784 | </state> | ||
785 | |||
786 | |||
787 | |||
788 | |||
789 | <!-- Circumflex Accentuated Upper-Case Characters: Â, Ê, Î... because we still press Shift --> | ||
790 | <state name="RShift-Circumflex"> | ||
791 | <!-- RS + (V) + A = Â --> | ||
792 | <map keycode="A" pressed="true"> | ||
793 | <event keycode="A" unicode="0xC2" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
794 | </map> | ||
795 | <map keycode="A" pressed="false"> | ||
796 | <event keycode="A" unicode="0xC2" pressed="false" modifiers="Shift"/> | ||
797 | <next-state name="Normal"/> | ||
798 | </map> | ||
799 | |||
800 | <!-- RS + (V) + E = Ê --> | ||
801 | <map keycode="E" pressed="true"> | ||
802 | <event keycode="E" unicode="0xCA" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
803 | </map> | ||
804 | <map keycode="E" pressed="false"> | ||
805 | <event keycode="E" unicode="0xCA" pressed="false" modifiers="Shift"/> | ||
806 | <next-state name="Normal"/> | ||
807 | </map> | ||
808 | |||
809 | <!-- RS + (V) + I = Î --> | ||
810 | <map keycode="I" pressed="true"> | ||
811 | <event keycode="I" unicode="0xCE" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
812 | </map> | ||
813 | <map keycode="I" pressed="false"> | ||
814 | <event keycode="I" unicode="0xCE" pressed="false" modifiers="Shift"/> | ||
815 | <next-state name="Normal"/> | ||
816 | </map> | ||
817 | |||
818 | <!-- RS + (V) + O = Ô --> | ||
819 | <map keycode="O" pressed="true"> | ||
820 | <event keycode="O" unicode="0xD4" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
821 | </map> | ||
822 | <map keycode="O" pressed="false"> | ||
823 | <event keycode="O" unicode="0xD4" pressed="false" modifiers="Shift"/> | ||
824 | <next-state name="Normal"/> | ||
825 | </map> | ||
826 | |||
827 | <!-- RS + (V) + U = Û --> | ||
828 | <map keycode="U" pressed="true"> | ||
829 | <event keycode="U" unicode="0xDB" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
830 | </map> | ||
831 | <map keycode="U" pressed="false"> | ||
832 | <event keycode="U" unicode="0xDB" pressed="false" modifiers="Shift"/> | ||
833 | <next-state name="Normal"/> | ||
834 | </map> | ||
835 | |||
836 | <!-- Release shift to do lower-case --> | ||
837 | <map keycode="Right Shift" pressed="false"> | ||
838 | <next-state name="RShift-Circumflex-Lower"/> | ||
839 | </map> | ||
840 | <map keycode="Left Shift" pressed="false"> | ||
841 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
842 | <next-state name="RShift-Circumflex-Lower"/> | ||
843 | </map> | ||
844 | |||
845 | <!-- Abort operation: print ^ --> | ||
846 | <map keycode="Space" pressed="true"> | ||
847 | <event keycode="V" unicode="0x5E" pressed="true" autorepeat="false"/> | ||
848 | </map> | ||
849 | <map keycode="Space" pressed="false"> | ||
850 | <event keycode="V" unicode="0x5E" pressed="false"/> | ||
851 | <next-state name="Normal"/> | ||
852 | </map> | ||
853 | </state> | ||
854 | |||
855 | |||
856 | <!-- Circumflex Accentuated Lower-Case Characters: â, ê, î... because we have released RShift --> | ||
857 | <state name="RShift-Circumflex-Lower"> | ||
858 | <!-- RS + (V) + A = â --> | ||
859 | <map keycode="A" pressed="true"> | ||
860 | <event keycode="A" unicode="0xE2" pressed="true" autorepeat="true"/> | ||
861 | </map> | ||
862 | <map keycode="A" pressed="false"> | ||
863 | <event keycode="A" unicode="0xE2" pressed="false"/> | ||
864 | <next-state name="Normal"/> | ||
865 | </map> | ||
866 | |||
867 | <!-- RS + (V) + E = ê --> | ||
868 | <map keycode="E" pressed="true"> | ||
869 | <event keycode="E" unicode="0xEA" pressed="true" autorepeat="true"/> | ||
870 | </map> | ||
871 | <map keycode="E" pressed="false"> | ||
872 | <event keycode="E" unicode="0xEA" pressed="false"/> | ||
873 | <next-state name="Normal"/> | ||
874 | </map> | ||
875 | |||
876 | <!-- RS + (V) + I = î --> | ||
877 | <map keycode="I" pressed="true"> | ||
878 | <event keycode="I" unicode="0xEE" pressed="true" autorepeat="true"/> | ||
879 | </map> | ||
880 | <map keycode="I" pressed="false"> | ||
881 | <event keycode="I" unicode="0xEE" pressed="false"/> | ||
882 | <next-state name="Normal"/> | ||
883 | </map> | ||
884 | |||
885 | <!-- RS + (V) + O = ô --> | ||
886 | <map keycode="O" pressed="true"> | ||
887 | <event keycode="O" unicode="0xF4" pressed="true" autorepeat="true"/> | ||
888 | </map> | ||
889 | <map keycode="O" pressed="false"> | ||
890 | <event keycode="O" unicode="0xF4" pressed="false"/> | ||
891 | <next-state name="Normal"/> | ||
892 | </map> | ||
893 | |||
894 | <!-- RS + (V) + U = û --> | ||
895 | <map keycode="U" pressed="true"> | ||
896 | <event keycode="U" unicode="0xFB" pressed="true" autorepeat="true"/> | ||
897 | </map> | ||
898 | <map keycode="U" pressed="false"> | ||
899 | <event keycode="U" unicode="0xFB" pressed="false"/> | ||
900 | <next-state name="Normal"/> | ||
901 | </map> | ||
902 | |||
903 | <!-- Simple shift second time goes Upper-Case --> | ||
904 | <map keycode="Right Shift" pressed="true"> | ||
905 | <next-state name="RShift-Circumflex"/> | ||
906 | </map> | ||
907 | <map keycode="Left Shift" pressed="true"> | ||
908 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
909 | <next-state name="RShift-Circumflex"/> | ||
910 | </map> | ||
911 | |||
912 | <!-- Abort operation: print ^ --> | ||
913 | <map keycode="Space" pressed="true"> | ||
914 | <event keycode="V" unicode="0x5E" pressed="true" autorepeat="false"/> | ||
915 | </map> | ||
916 | <map keycode="Space" pressed="false"> | ||
917 | <event keycode="V" unicode="0x5E" pressed="false"/> | ||
918 | <next-state name="Normal"/> | ||
919 | </map> | ||
920 | </state> | ||
921 | |||
922 | |||
923 | <!-- Circumflex Accentuated Lower-Case Characters: â, ê... because we still press Shift and we are in Caps --> | ||
924 | <state name="RShift-Caps-Circumflex"> | ||
925 | <!-- Caps + RS + (V) + A = â --> | ||
926 | <map keycode="A" pressed="true"> | ||
927 | <event keycode="A" unicode="0xE2" pressed="true" autorepeat="true"/> | ||
928 | </map> | ||
929 | <map keycode="A" pressed="false"> | ||
930 | <event keycode="A" unicode="0xE2" pressed="false"/> | ||
931 | <next-state name="Caps"/> | ||
932 | </map> | ||
933 | |||
934 | <!-- Caps + RS + (V) + E = ê --> | ||
935 | <map keycode="E" pressed="true"> | ||
936 | <event keycode="E" unicode="0xEA" pressed="true" autorepeat="true"/> | ||
937 | </map> | ||
938 | <map keycode="E" pressed="false"> | ||
939 | <event keycode="E" unicode="0xEA" pressed="false"/> | ||
940 | <next-state name="Caps"/> | ||
941 | </map> | ||
942 | |||
943 | <!-- Caps + RS + (V) + I = î --> | ||
944 | <map keycode="I" pressed="true"> | ||
945 | <event keycode="I" unicode="0xEE" pressed="true" autorepeat="true"/> | ||
946 | </map> | ||
947 | <map keycode="I" pressed="false"> | ||
948 | <event keycode="I" unicode="0xEE" pressed="false"/> | ||
949 | <next-state name="Caps"/> | ||
950 | </map> | ||
951 | |||
952 | <!-- Caps + RS + (V) + O = ô --> | ||
953 | <map keycode="O" pressed="true"> | ||
954 | <event keycode="O" unicode="0xF4" pressed="true" autorepeat="true"/> | ||
955 | </map> | ||
956 | <map keycode="O" pressed="false"> | ||
957 | <event keycode="O" unicode="0xF4" pressed="false"/> | ||
958 | <next-state name="Caps"/> | ||
959 | </map> | ||
960 | |||
961 | <!-- Caps + RS + (V) + U = û --> | ||
962 | <map keycode="U" pressed="true"> | ||
963 | <event keycode="U" unicode="0xFB" pressed="true" autorepeat="true"/> | ||
964 | </map> | ||
965 | <map keycode="U" pressed="false"> | ||
966 | <event keycode="U" unicode="0xFB" pressed="false"/> | ||
967 | <next-state name="Caps"/> | ||
968 | </map> | ||
969 | |||
970 | <!-- Release shift to go upper-case --> | ||
971 | <map keycode="Right Shift" pressed="false"> | ||
972 | <next-state name="RShift-Caps-Circumflex-Upper"/> | ||
973 | </map> | ||
974 | <map keycode="Left Shift" pressed="false"> | ||
975 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
976 | <next-state name="RShift-Caps-Circumflex-Upper"/> | ||
977 | </map> | ||
978 | |||
979 | <!-- Abort operation: print ^ --> | ||
980 | <map keycode="Space" pressed="true"> | ||
981 | <event keycode="V" unicode="0x5E" pressed="true" autorepeat="false"/> | ||
982 | </map> | ||
983 | <map keycode="Space" pressed="false"> | ||
984 | <event keycode="V" unicode="0x5E" pressed="false"/> | ||
985 | <next-state name="Caps"/> | ||
986 | </map> | ||
987 | </state> | ||
988 | |||
989 | |||
990 | <!-- Circumflex Accentuated Upper-Case Characters: Â, Ê, Î... because we have released RShift and we are in Caps --> | ||
991 | <state name="RShift-Caps-Circumflex-Upper"> | ||
992 | <!-- Caps + RS + (V) + A = Â --> | ||
993 | <map keycode="A" pressed="true"> | ||
994 | <event keycode="A" unicode="0xC2" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
995 | </map> | ||
996 | <map keycode="A" pressed="false"> | ||
997 | <event keycode="A" unicode="0xC2" pressed="false" modifiers="Shift"/> | ||
998 | <next-state name="Caps"/> | ||
999 | </map> | ||
1000 | |||
1001 | <!-- Caps + RS + (V) + E = Ê --> | ||
1002 | <map keycode="E" pressed="true"> | ||
1003 | <event keycode="E" unicode="0xCA" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1004 | </map> | ||
1005 | <map keycode="E" pressed="false"> | ||
1006 | <event keycode="E" unicode="0xCA" pressed="false" modifiers="Shift"/> | ||
1007 | <next-state name="Caps"/> | ||
1008 | </map> | ||
1009 | |||
1010 | <!-- Caps + RS + (V) + I = Î --> | ||
1011 | <map keycode="I" pressed="true"> | ||
1012 | <event keycode="I" unicode="0xCE" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1013 | </map> | ||
1014 | <map keycode="I" pressed="false"> | ||
1015 | <event keycode="I" unicode="0xCE" pressed="false" modifiers="Shift"/> | ||
1016 | <next-state name="Caps"/> | ||
1017 | </map> | ||
1018 | |||
1019 | <!-- Caps + RS + (V) + O = Ô --> | ||
1020 | <map keycode="O" pressed="true"> | ||
1021 | <event keycode="O" unicode="0xD4" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1022 | </map> | ||
1023 | <map keycode="O" pressed="false"> | ||
1024 | <event keycode="O" unicode="0xD4" pressed="false" modifiers="Shift"/> | ||
1025 | <next-state name="Caps"/> | ||
1026 | </map> | ||
1027 | |||
1028 | <!-- Caps + RS + (V) + U = Û --> | ||
1029 | <map keycode="U" pressed="true"> | ||
1030 | <event keycode="U" unicode="0xDB" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1031 | </map> | ||
1032 | <map keycode="U" pressed="false"> | ||
1033 | <event keycode="U" unicode="0xDB" pressed="false" modifiers="Shift"/> | ||
1034 | <next-state name="Caps"/> | ||
1035 | </map> | ||
1036 | |||
1037 | <!-- Simple shift second time goes Lower-Case --> | ||
1038 | <map keycode="Right Shift" pressed="true"> | ||
1039 | <next-state name="RShift-Caps-Circumflex"/> | ||
1040 | </map> | ||
1041 | <map keycode="Left Shift" pressed="true"> | ||
1042 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1043 | <next-state name="RShift-Caps-Circumflex"/> | ||
1044 | </map> | ||
1045 | |||
1046 | <!-- Abort operation: print ^ --> | ||
1047 | <map keycode="Space" pressed="true"> | ||
1048 | <event keycode="V" unicode="0x5E" pressed="true" autorepeat="false"/> | ||
1049 | </map> | ||
1050 | <map keycode="Space" pressed="false"> | ||
1051 | <event keycode="V" unicode="0x5E" pressed="false"/> | ||
1052 | <next-state name="Caps"/> | ||
1053 | </map> | ||
1054 | </state> | ||
1055 | |||
1056 | |||
1057 | |||
1058 | |||
1059 | <!-- Cedilla Upper-Case Characters: Ç... because we still press Shift --> | ||
1060 | <state name="RShift-Cedilla"> | ||
1061 | <!-- RS + (,) + C = Ç --> | ||
1062 | <map keycode="C" pressed="true"> | ||
1063 | <event keycode="C" unicode="0xC7" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1064 | </map> | ||
1065 | <map keycode="C" pressed="false"> | ||
1066 | <event keycode="C" unicode="0xC7" pressed="false" modifiers="Shift"/> | ||
1067 | <next-state name="Normal"/> | ||
1068 | </map> | ||
1069 | |||
1070 | <!-- Release shift to do lower-case --> | ||
1071 | <map keycode="Right Shift" pressed="false"> | ||
1072 | <next-state name="RShift-Cedilla-Lower"/> | ||
1073 | </map> | ||
1074 | <map keycode="Left Shift" pressed="false"> | ||
1075 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1076 | <next-state name="RShift-Cedilla-Lower"/> | ||
1077 | </map> | ||
1078 | |||
1079 | <!-- Abort operation: print ¸ --> | ||
1080 | <map keycode="Space" pressed="true"> | ||
1081 | <event keycode="Comma" unicode="0xB8" pressed="true" autorepeat="false"/> | ||
1082 | </map> | ||
1083 | <map keycode="Space" pressed="false"> | ||
1084 | <event keycode="Comma" unicode="0xB8" pressed="false"/> | ||
1085 | <next-state name="Normal"/> | ||
1086 | </map> | ||
1087 | </state> | ||
1088 | |||
1089 | |||
1090 | <!-- Cedilla Lower-Case Characters: ç... because we have released RShift --> | ||
1091 | <state name="RShift-Cedilla-Lower"> | ||
1092 | <!-- RS + (,) + C = ç --> | ||
1093 | <map keycode="C" pressed="true"> | ||
1094 | <event keycode="C" unicode="0xE7" pressed="true" autorepeat="true"/> | ||
1095 | </map> | ||
1096 | <map keycode="C" pressed="false"> | ||
1097 | <event keycode="C" unicode="0xE7" pressed="false"/> | ||
1098 | <next-state name="Normal"/> | ||
1099 | </map> | ||
1100 | |||
1101 | <!-- Simple shift second time goes Upper-Case --> | ||
1102 | <map keycode="Right Shift" pressed="true"> | ||
1103 | <next-state name="RShift-Cedilla"/> | ||
1104 | </map> | ||
1105 | <map keycode="Left Shift" pressed="true"> | ||
1106 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1107 | <next-state name="RShift-Cedilla"/> | ||
1108 | </map> | ||
1109 | |||
1110 | <!-- Abort operation: print ¸ --> | ||
1111 | <map keycode="Space" pressed="true"> | ||
1112 | <event keycode="Comma" unicode="0xB8" pressed="true" autorepeat="false"/> | ||
1113 | </map> | ||
1114 | <map keycode="Space" pressed="false"> | ||
1115 | <event keycode="Comma" unicode="0xB8" pressed="false"/> | ||
1116 | <next-state name="Normal"/> | ||
1117 | </map> | ||
1118 | </state> | ||
1119 | |||
1120 | |||
1121 | <!-- Cedilla Lower-Case Characters: ç... because we still press Shift and we are in Caps --> | ||
1122 | <state name="RShift-Caps-Cedilla"> | ||
1123 | <!-- Caps + RS + (,) + C = ç --> | ||
1124 | <map keycode="C" pressed="true"> | ||
1125 | <event keycode="C" unicode="0xE7" pressed="true" autorepeat="true"/> | ||
1126 | </map> | ||
1127 | <map keycode="C" pressed="false"> | ||
1128 | <event keycode="C" unicode="0xE7" pressed="false"/> | ||
1129 | <next-state name="Caps"/> | ||
1130 | </map> | ||
1131 | |||
1132 | <!-- Release shift to go upper-case --> | ||
1133 | <map keycode="Right Shift" pressed="false"> | ||
1134 | <next-state name="RShift-Caps-Cedilla-Upper"/> | ||
1135 | </map> | ||
1136 | <map keycode="Left Shift" pressed="false"> | ||
1137 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1138 | <next-state name="RShift-Caps-Cedilla-Upper"/> | ||
1139 | </map> | ||
1140 | |||
1141 | <!-- Abort operation: print ¸ --> | ||
1142 | <map keycode="Space" pressed="true"> | ||
1143 | <event keycode="Comma" unicode="0xB8" pressed="true" autorepeat="false"/> | ||
1144 | </map> | ||
1145 | <map keycode="Space" pressed="false"> | ||
1146 | <event keycode="Comma" unicode="0xB8" pressed="false"/> | ||
1147 | <next-state name="Caps"/> | ||
1148 | </map> | ||
1149 | </state> | ||
1150 | |||
1151 | |||
1152 | <!-- Cedilla Upper-Case Characters: Ç... because we have released RShift but we are in Caps --> | ||
1153 | <state name="RShift-Caps-Cedilla-Upper"> | ||
1154 | <!-- Caps + RS + (,) + C = Ç --> | ||
1155 | <map keycode="C" pressed="true"> | ||
1156 | <event keycode="C" unicode="0xC7" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1157 | </map> | ||
1158 | <map keycode="C" pressed="false"> | ||
1159 | <event keycode="C" unicode="0xC7" pressed="false" modifiers="Shift"/> | ||
1160 | <next-state name="Caps"/> | ||
1161 | </map> | ||
1162 | |||
1163 | <!-- Simple shift second time goes Lower-Case --> | ||
1164 | <map keycode="Right Shift" pressed="true"> | ||
1165 | <next-state name="RShift-Caps-Cedilla"/> | ||
1166 | </map> | ||
1167 | <map keycode="Left Shift" pressed="true"> | ||
1168 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1169 | <next-state name="RShift-Caps-Cedilla"/> | ||
1170 | </map> | ||
1171 | |||
1172 | <!-- Abort operation: print ¸ --> | ||
1173 | <map keycode="Space" pressed="true"> | ||
1174 | <event keycode="Comma" unicode="0xB8" pressed="true" autorepeat="false"/> | ||
1175 | </map> | ||
1176 | <map keycode="Space" pressed="false"> | ||
1177 | <event keycode="Comma" unicode="0xB8" pressed="false"/> | ||
1178 | <next-state name="Caps"/> | ||
1179 | </map> | ||
1180 | </state> | ||
1181 | |||
1182 | |||
1183 | |||
1184 | |||
1185 | <!-- Ligatured Upper-Case Characters: Æ, Œ ... because we still press Shift --> | ||
1186 | <state name="RShift-Ligature"> | ||
1187 | <!-- RS + (J) + A = Æ --> | ||
1188 | <map keycode="A" pressed="true"> | ||
1189 | <event keycode="A" unicode="0xC6" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1190 | </map> | ||
1191 | <map keycode="A" pressed="false"> | ||
1192 | <event keycode="A" unicode="0xC6" pressed="false" modifiers="Shift"/> | ||
1193 | <next-state name="Normal"/> | ||
1194 | </map> | ||
1195 | |||
1196 | <!-- RS + (J) + O = Œ --> | ||
1197 | <map keycode="O" pressed="true"> | ||
1198 | <event keycode="O" unicode="0x152" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1199 | </map> | ||
1200 | <map keycode="O" pressed="false"> | ||
1201 | <event keycode="O" unicode="0x152" pressed="false" modifiers="Shift"/> | ||
1202 | <next-state name="Normal"/> | ||
1203 | </map> | ||
1204 | |||
1205 | <!-- Release shift to do lower-case --> | ||
1206 | <map keycode="Right Shift" pressed="false"> | ||
1207 | <next-state name="RShift-Ligature-Lower"/> | ||
1208 | </map> | ||
1209 | <map keycode="Left Shift" pressed="false"> | ||
1210 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1211 | <next-state name="RShift-Ligature-Lower"/> | ||
1212 | </map> | ||
1213 | |||
1214 | <!-- Abort operation: print J --> | ||
1215 | <map keycode="Space" pressed="true"> | ||
1216 | <event keycode="J" unicode="0x4A" pressed="true" autorepeat="false"/> | ||
1217 | </map> | ||
1218 | <map keycode="Space" pressed="false"> | ||
1219 | <event keycode="J" unicode="0x4A" pressed="false"/> | ||
1220 | <next-state name="Normal"/> | ||
1221 | </map> | ||
1222 | </state> | ||
1223 | |||
1224 | |||
1225 | <!-- Ligatured Lower-Case Characters: æ, œ... because we have released RShift --> | ||
1226 | <state name="RShift-Ligature-Lower"> | ||
1227 | <!-- RS + (J) + A = æ --> | ||
1228 | <map keycode="A" pressed="true"> | ||
1229 | <event keycode="A" unicode="0xE6" pressed="true" autorepeat="true"/> | ||
1230 | </map> | ||
1231 | <map keycode="A" pressed="false"> | ||
1232 | <event keycode="A" unicode="0xE6" pressed="false"/> | ||
1233 | <next-state name="Normal"/> | ||
1234 | </map> | ||
1235 | |||
1236 | <!-- RS + (J) + O = œ --> | ||
1237 | <map keycode="O" pressed="true"> | ||
1238 | <event keycode="O" unicode="0x153" pressed="true" autorepeat="true"/> | ||
1239 | </map> | ||
1240 | <map keycode="O" pressed="false"> | ||
1241 | <event keycode="O" unicode="0x153" pressed="false"/> | ||
1242 | <next-state name="Normal"/> | ||
1243 | </map> | ||
1244 | |||
1245 | <!-- Simple shift second time goes Upper-Case --> | ||
1246 | <map keycode="Right Shift" pressed="true"> | ||
1247 | <next-state name="RShift-Ligature"/> | ||
1248 | </map> | ||
1249 | <map keycode="Left Shift" pressed="true"> | ||
1250 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1251 | <next-state name="RShift-Ligature"/> | ||
1252 | </map> | ||
1253 | |||
1254 | <!-- Abort operation: print j --> | ||
1255 | <map keycode="Space" pressed="true"> | ||
1256 | <event keycode="J" unicode="0x6A" pressed="true" autorepeat="false"/> | ||
1257 | </map> | ||
1258 | <map keycode="Space" pressed="false"> | ||
1259 | <event keycode="J" unicode="0x6A" pressed="false"/> | ||
1260 | <next-state name="Normal"/> | ||
1261 | </map> | ||
1262 | </state> | ||
1263 | |||
1264 | |||
1265 | <!-- Ligatured Lower-Case Characters: æ, œ... because we still press Shift and we are in Caps --> | ||
1266 | <state name="RShift-Caps-Ligature"> | ||
1267 | <!-- Caps + RS + (J) + A = æ --> | ||
1268 | <map keycode="A" pressed="true"> | ||
1269 | <event keycode="A" unicode="0xE6" pressed="true" autorepeat="true"/> | ||
1270 | </map> | ||
1271 | <map keycode="A" pressed="false"> | ||
1272 | <event keycode="A" unicode="0xE6" pressed="false"/> | ||
1273 | <next-state name="Caps"/> | ||
1274 | </map> | ||
1275 | |||
1276 | <!-- Caps + RS + (J) + O = œ --> | ||
1277 | <map keycode="O" pressed="true"> | ||
1278 | <event keycode="O" unicode="0x153" pressed="true" autorepeat="true"/> | ||
1279 | </map> | ||
1280 | <map keycode="O" pressed="false"> | ||
1281 | <event keycode="O" unicode="0x153" pressed="false"/> | ||
1282 | <next-state name="Caps"/> | ||
1283 | </map> | ||
1284 | |||
1285 | <!-- Release shift to go upper-case --> | ||
1286 | <map keycode="Right Shift" pressed="false"> | ||
1287 | <next-state name="RShift-Caps-Ligature-Upper"/> | ||
1288 | </map> | ||
1289 | <map keycode="Left Shift" pressed="false"> | ||
1290 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1291 | <next-state name="RShift-Caps-Ligature-Upper"/> | ||
1292 | </map> | ||
1293 | |||
1294 | <!-- Abort operation: print j --> | ||
1295 | <map keycode="Space" pressed="true"> | ||
1296 | <event keycode="J" unicode="0x6A" pressed="true" autorepeat="false"/> | ||
1297 | </map> | ||
1298 | <map keycode="Space" pressed="false"> | ||
1299 | <event keycode="J" unicode="0x6A" pressed="false"/> | ||
1300 | <next-state name="Caps"/> | ||
1301 | </map> | ||
1302 | </state> | ||
1303 | |||
1304 | |||
1305 | <!-- Ligatured Upper-Case Characters: Æ, Œ... because we have released RShift but we are in Caps --> | ||
1306 | <state name="RShift-Caps-Ligature-Upper"> | ||
1307 | <!-- Caps + RS + (J) + A = Æ --> | ||
1308 | <map keycode="A" pressed="true"> | ||
1309 | <event keycode="A" unicode="0xC6" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1310 | </map> | ||
1311 | <map keycode="A" pressed="false"> | ||
1312 | <event keycode="A" unicode="0xC6" pressed="false" modifiers="Shift"/> | ||
1313 | <next-state name="Caps"/> | ||
1314 | </map> | ||
1315 | |||
1316 | <!-- Caps + RS + (J) + O = Œ --> | ||
1317 | <map keycode="O" pressed="true"> | ||
1318 | <event keycode="O" unicode="0x152" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1319 | </map> | ||
1320 | <map keycode="O" pressed="false"> | ||
1321 | <event keycode="O" unicode="0x152" pressed="false" modifiers="Shift"/> | ||
1322 | <next-state name="Caps"/> | ||
1323 | </map> | ||
1324 | |||
1325 | <!-- Simple shift second time goes Lower-Case --> | ||
1326 | <map keycode="Right Shift" pressed="true"> | ||
1327 | <next-state name="RShift-Caps-Ligature"/> | ||
1328 | </map> | ||
1329 | <map keycode="Left Shift" pressed="true"> | ||
1330 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1331 | <next-state name="RShift-Caps-Ligature"/> | ||
1332 | </map> | ||
1333 | |||
1334 | <!-- Abort operation: print J --> | ||
1335 | <map keycode="Space" pressed="true"> | ||
1336 | <event keycode="J" unicode="0x4A" pressed="true" autorepeat="false"/> | ||
1337 | </map> | ||
1338 | <map keycode="Space" pressed="false"> | ||
1339 | <event keycode="J" unicode="0x4A" pressed="false"/> | ||
1340 | <next-state name="Caps"/> | ||
1341 | </map> | ||
1342 | </state> | ||
1343 | |||
1344 | |||
1345 | |||
1346 | |||
1347 | <!-- Trema Accentuated Upper-Case Characters: Ä, Ë... because we still press Shift --> | ||
1348 | <state name="RShift-Trema"> | ||
1349 | <!-- RS + (B) + A = Ä --> | ||
1350 | <map keycode="A" pressed="true"> | ||
1351 | <event keycode="A" unicode="0xC4" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1352 | </map> | ||
1353 | <map keycode="A" pressed="false"> | ||
1354 | <event keycode="A" unicode="0xC4" pressed="false" modifiers="Shift"/> | ||
1355 | <next-state name="Normal"/> | ||
1356 | </map> | ||
1357 | |||
1358 | <!-- RS + (B) + E = Ë --> | ||
1359 | <map keycode="E" pressed="true"> | ||
1360 | <event keycode="E" unicode="0xCB" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1361 | </map> | ||
1362 | <map keycode="E" pressed="false"> | ||
1363 | <event keycode="E" unicode="0xCB" pressed="false" modifiers="Shift"/> | ||
1364 | <next-state name="Normal"/> | ||
1365 | </map> | ||
1366 | |||
1367 | <!-- RS + (B) + I = Ï --> | ||
1368 | <map keycode="I" pressed="true"> | ||
1369 | <event keycode="I" unicode="0xCF" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1370 | </map> | ||
1371 | <map keycode="I" pressed="false"> | ||
1372 | <event keycode="I" unicode="0xCF" pressed="false" modifiers="Shift"/> | ||
1373 | <next-state name="Normal"/> | ||
1374 | </map> | ||
1375 | |||
1376 | <!-- RS + (B) + O = Ö --> | ||
1377 | <map keycode="O" pressed="true"> | ||
1378 | <event keycode="O" unicode="0xD6" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1379 | </map> | ||
1380 | <map keycode="O" pressed="false"> | ||
1381 | <event keycode="O" unicode="0xD6" pressed="false" modifiers="Shift"/> | ||
1382 | <next-state name="Normal"/> | ||
1383 | </map> | ||
1384 | |||
1385 | <!-- RS + (B) + U = Ü --> | ||
1386 | <map keycode="U" pressed="true"> | ||
1387 | <event keycode="U" unicode="0xDC" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1388 | </map> | ||
1389 | <map keycode="U" pressed="false"> | ||
1390 | <event keycode="U" unicode="0xDC" pressed="false" modifiers="Shift"/> | ||
1391 | <next-state name="Normal"/> | ||
1392 | </map> | ||
1393 | |||
1394 | <!-- Release shift to do lower-case --> | ||
1395 | <map keycode="Right Shift" pressed="false"> | ||
1396 | <next-state name="RShift-Trema-Lower"/> | ||
1397 | </map> | ||
1398 | <map keycode="Left Shift" pressed="false"> | ||
1399 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1400 | <next-state name="RShift-Trema-Lower"/> | ||
1401 | </map> | ||
1402 | |||
1403 | <!-- Abort operation: print ¨ --> | ||
1404 | <map keycode="Space" pressed="true"> | ||
1405 | <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/> | ||
1406 | </map> | ||
1407 | <map keycode="Space" pressed="false"> | ||
1408 | <event keycode="B" unicode="0xA8" pressed="false"/> | ||
1409 | <next-state name="Normal"/> | ||
1410 | </map> | ||
1411 | </state> | ||
1412 | |||
1413 | |||
1414 | <!-- Trema Accentuated Lower-Case Characters: ä, ë... because we have released RShift --> | ||
1415 | <state name="RShift-Trema-Lower"> | ||
1416 | <!-- RS + (B) + A = ä --> | ||
1417 | <map keycode="A" pressed="true"> | ||
1418 | <event keycode="A" unicode="0xE4" pressed="true" autorepeat="true"/> | ||
1419 | </map> | ||
1420 | <map keycode="A" pressed="false"> | ||
1421 | <event keycode="A" unicode="0xE4" pressed="false"/> | ||
1422 | <next-state name="Normal"/> | ||
1423 | </map> | ||
1424 | |||
1425 | <!-- RS + (B) + E = ë --> | ||
1426 | <map keycode="E" pressed="true"> | ||
1427 | <event keycode="E" unicode="0xEB" pressed="true" autorepeat="true"/> | ||
1428 | </map> | ||
1429 | <map keycode="E" pressed="false"> | ||
1430 | <event keycode="E" unicode="0xEB" pressed="false"/> | ||
1431 | <next-state name="Normal"/> | ||
1432 | </map> | ||
1433 | |||
1434 | <!-- RS + (B) + I = ï --> | ||
1435 | <map keycode="I" pressed="true"> | ||
1436 | <event keycode="I" unicode="0xEF" pressed="true" autorepeat="true"/> | ||
1437 | </map> | ||
1438 | <map keycode="I" pressed="false"> | ||
1439 | <event keycode="I" unicode="0xEF" pressed="false"/> | ||
1440 | <next-state name="Normal"/> | ||
1441 | </map> | ||
1442 | |||
1443 | <!-- RS + (B) + O = ö --> | ||
1444 | <map keycode="O" pressed="true"> | ||
1445 | <event keycode="O" unicode="0xF6" pressed="true" autorepeat="true"/> | ||
1446 | </map> | ||
1447 | <map keycode="O" pressed="false"> | ||
1448 | <event keycode="O" unicode="0xF6" pressed="false"/> | ||
1449 | <next-state name="Normal"/> | ||
1450 | </map> | ||
1451 | |||
1452 | <!-- RS + (B) + U = ü --> | ||
1453 | <map keycode="U" pressed="true"> | ||
1454 | <event keycode="U" unicode="0xFC" pressed="true" autorepeat="true"/> | ||
1455 | </map> | ||
1456 | <map keycode="U" pressed="false"> | ||
1457 | <event keycode="U" unicode="0xFC" pressed="false"/> | ||
1458 | <next-state name="Normal"/> | ||
1459 | </map> | ||
1460 | |||
1461 | <!-- RS + (B) + Y = ÿ --> | ||
1462 | <map keycode="Y" pressed="true"> | ||
1463 | <event keycode="Y" unicode="0xFF" pressed="true" autorepeat="true"/> | ||
1464 | </map> | ||
1465 | <map keycode="Y" pressed="false"> | ||
1466 | <event keycode="Y" unicode="0xFF" pressed="false"/> | ||
1467 | <next-state name="Normal"/> | ||
1468 | </map> | ||
1469 | |||
1470 | <!-- Simple shift second time goes Upper-Case --> | ||
1471 | <map keycode="Right Shift" pressed="true"> | ||
1472 | <next-state name="RShift-Trema"/> | ||
1473 | </map> | ||
1474 | <map keycode="Left Shift" pressed="true"> | ||
1475 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1476 | <next-state name="RShift-Trema"/> | ||
1477 | </map> | ||
1478 | |||
1479 | <!-- Abort operation: print ¨ --> | ||
1480 | <map keycode="Space" pressed="true"> | ||
1481 | <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/> | ||
1482 | </map> | ||
1483 | <map keycode="Space" pressed="false"> | ||
1484 | <event keycode="B" unicode="0xA8" pressed="false"/> | ||
1485 | <next-state name="Normal"/> | ||
1486 | </map> | ||
1487 | </state> | ||
1488 | |||
1489 | |||
1490 | <!-- Trema Accentuated Lower-Case Characters: ä, ë... because we still press Shift and we are in Caps --> | ||
1491 | <state name="RShift-Caps-Trema"> | ||
1492 | <!-- Caps + RS + (B) + A = ä --> | ||
1493 | <map keycode="A" pressed="true"> | ||
1494 | <event keycode="A" unicode="0xE4" pressed="true" autorepeat="true"/> | ||
1495 | </map> | ||
1496 | <map keycode="A" pressed="false"> | ||
1497 | <event keycode="A" unicode="0xE4" pressed="false"/> | ||
1498 | <next-state name="Caps"/> | ||
1499 | </map> | ||
1500 | |||
1501 | <!-- Caps + RS + (B) + E = ë --> | ||
1502 | <map keycode="E" pressed="true"> | ||
1503 | <event keycode="E" unicode="0xEB" pressed="true" autorepeat="true"/> | ||
1504 | </map> | ||
1505 | <map keycode="E" pressed="false"> | ||
1506 | <event keycode="E" unicode="0xEB" pressed="false"/> | ||
1507 | <next-state name="Caps"/> | ||
1508 | </map> | ||
1509 | |||
1510 | <!-- Caps + RS + (B) + I = ï --> | ||
1511 | <map keycode="I" pressed="true"> | ||
1512 | <event keycode="I" unicode="0xEF" pressed="true" autorepeat="true"/> | ||
1513 | </map> | ||
1514 | <map keycode="I" pressed="false"> | ||
1515 | <event keycode="I" unicode="0xEF" pressed="false"/> | ||
1516 | <next-state name="Caps"/> | ||
1517 | </map> | ||
1518 | |||
1519 | <!-- Caps + RS + (B) + O = ö --> | ||
1520 | <map keycode="O" pressed="true"> | ||
1521 | <event keycode="O" unicode="0xF6" pressed="true" autorepeat="true"/> | ||
1522 | </map> | ||
1523 | <map keycode="O" pressed="false"> | ||
1524 | <event keycode="O" unicode="0xF6" pressed="false"/> | ||
1525 | <next-state name="Caps"/> | ||
1526 | </map> | ||
1527 | |||
1528 | <!-- Caps + RS + (B) + U = ü --> | ||
1529 | <map keycode="U" pressed="true"> | ||
1530 | <event keycode="U" unicode="0xFC" pressed="true" autorepeat="true"/> | ||
1531 | </map> | ||
1532 | <map keycode="U" pressed="false"> | ||
1533 | <event keycode="U" unicode="0xFC" pressed="false"/> | ||
1534 | <next-state name="Caps"/> | ||
1535 | </map> | ||
1536 | |||
1537 | <!-- Caps + RS + (B) + Y = ÿ --> | ||
1538 | <map keycode="Y" pressed="true"> | ||
1539 | <event keycode="Y" unicode="0xFF" pressed="true" autorepeat="true"/> | ||
1540 | </map> | ||
1541 | <map keycode="Y" pressed="false"> | ||
1542 | <event keycode="Y" unicode="0xFF" pressed="false"/> | ||
1543 | <next-state name="Caps"/> | ||
1544 | </map> | ||
1545 | |||
1546 | <!-- Release shift to go upper-case --> | ||
1547 | <map keycode="Right Shift" pressed="false"> | ||
1548 | <next-state name="RShift-Caps-Trema-Upper"/> | ||
1549 | </map> | ||
1550 | <map keycode="Left Shift" pressed="false"> | ||
1551 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1552 | <next-state name="RShift-Caps-Trema-Upper"/> | ||
1553 | </map> | ||
1554 | |||
1555 | <!-- Abort operation: print ¨ --> | ||
1556 | <map keycode="Space" pressed="true"> | ||
1557 | <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/> | ||
1558 | </map> | ||
1559 | <map keycode="Space" pressed="false"> | ||
1560 | <event keycode="B" unicode="0xA8" pressed="false"/> | ||
1561 | <next-state name="Caps"/> | ||
1562 | </map> | ||
1563 | </state> | ||
1564 | |||
1565 | |||
1566 | <!-- Trema Accentuated Upper-Case Characters: Ä, Ë... because we have released RShift but we are in Caps --> | ||
1567 | <state name="RShift-Caps-Trema-Upper"> | ||
1568 | <!-- Caps + RS + (B) + A = Ä --> | ||
1569 | <map keycode="A" pressed="true"> | ||
1570 | <event keycode="A" unicode="0xC4" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1571 | </map> | ||
1572 | <map keycode="A" pressed="false"> | ||
1573 | <event keycode="A" unicode="0xC4" pressed="false" modifiers="Shift"/> | ||
1574 | <next-state name="Caps"/> | ||
1575 | </map> | ||
1576 | |||
1577 | <!-- Caps + RS + (B) + E = Ë --> | ||
1578 | <map keycode="E" pressed="true"> | ||
1579 | <event keycode="E" unicode="0xCB" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1580 | </map> | ||
1581 | <map keycode="E" pressed="false"> | ||
1582 | <event keycode="E" unicode="0xCB" pressed="false" modifiers="Shift"/> | ||
1583 | <next-state name="Caps"/> | ||
1584 | </map> | ||
1585 | |||
1586 | <!-- Caps + RS + (B) + I = Ï --> | ||
1587 | <map keycode="I" pressed="true"> | ||
1588 | <event keycode="I" unicode="0xCF" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1589 | </map> | ||
1590 | <map keycode="I" pressed="false"> | ||
1591 | <event keycode="I" unicode="0xCF" pressed="false" modifiers="Shift"/> | ||
1592 | <next-state name="Caps"/> | ||
1593 | </map> | ||
1594 | |||
1595 | <!-- Caps + RS + (B) + O = Ö --> | ||
1596 | <map keycode="O" pressed="true"> | ||
1597 | <event keycode="O" unicode="0xD6" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1598 | </map> | ||
1599 | <map keycode="O" pressed="false"> | ||
1600 | <event keycode="O" unicode="0xD6" pressed="false" modifiers="Shift"/> | ||
1601 | <next-state name="Caps"/> | ||
1602 | </map> | ||
1603 | |||
1604 | <!-- Caps + RS + (B) + U = Ü --> | ||
1605 | <map keycode="U" pressed="true"> | ||
1606 | <event keycode="U" unicode="0xDC" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1607 | </map> | ||
1608 | <map keycode="U" pressed="false"> | ||
1609 | <event keycode="U" unicode="0xDC" pressed="false" modifiers="Shift"/> | ||
1610 | <next-state name="Caps"/> | ||
1611 | </map> | ||
1612 | |||
1613 | <!-- Simple shift second time goes Lower-Case --> | ||
1614 | <map keycode="Right Shift" pressed="true"> | ||
1615 | <next-state name="RShift-Caps-Trema"/> | ||
1616 | </map> | ||
1617 | <map keycode="Left Shift" pressed="true"> | ||
1618 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1619 | <next-state name="RShift-Caps-Trema"/> | ||
1620 | </map> | ||
1621 | |||
1622 | <!-- Abort operation: print ¨ --> | ||
1623 | <map keycode="Space" pressed="true"> | ||
1624 | <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/> | ||
1625 | </map> | ||
1626 | <map keycode="Space" pressed="false"> | ||
1627 | <event keycode="B" unicode="0xA8" pressed="false"/> | ||
1628 | <next-state name="Caps"/> | ||
1629 | </map> | ||
1630 | </state> | ||
1631 | |||
1632 | |||
1633 | |||
1634 | |||
1635 | <!-- Tilde Upper-Case Characters: Ã, Ñ... because we still press Shift --> | ||
1636 | <state name="RShift-Tilde"> | ||
1637 | <!-- RS + (N) + A = Ã --> | ||
1638 | <map keycode="A" pressed="true"> | ||
1639 | <event keycode="A" unicode="0xC3" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1640 | </map> | ||
1641 | <map keycode="A" pressed="false"> | ||
1642 | <event keycode="A" unicode="0xC3" pressed="false" modifiers="Shift"/> | ||
1643 | <next-state name="Normal"/> | ||
1644 | </map> | ||
1645 | |||
1646 | <!-- RS + (N) + N = Ñ --> | ||
1647 | <map keycode="N" pressed="true"> | ||
1648 | <event keycode="N" unicode="0xD1" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1649 | </map> | ||
1650 | <map keycode="N" pressed="false"> | ||
1651 | <event keycode="N" unicode="0xD1" pressed="false" modifiers="Shift"/> | ||
1652 | <next-state name="Normal"/> | ||
1653 | </map> | ||
1654 | |||
1655 | <!-- RS + (N) + O = Õ --> | ||
1656 | <map keycode="O" pressed="true"> | ||
1657 | <event keycode="O" unicode="0xD5" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1658 | </map> | ||
1659 | <map keycode="O" pressed="false"> | ||
1660 | <event keycode="O" unicode="0xD5" pressed="false" modifiers="Shift"/> | ||
1661 | <next-state name="Normal"/> | ||
1662 | </map> | ||
1663 | |||
1664 | <!-- Release shift to do lower-case --> | ||
1665 | <map keycode="Right Shift" pressed="false"> | ||
1666 | <next-state name="RShift-Tilde-Lower"/> | ||
1667 | </map> | ||
1668 | <map keycode="Left Shift" pressed="false"> | ||
1669 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1670 | <next-state name="RShift-Tilde-Lower"/> | ||
1671 | </map> | ||
1672 | |||
1673 | <!-- Abort operation: print ~ --> | ||
1674 | <map keycode="Space" pressed="true"> | ||
1675 | <event keycode="N" unicode="0x7E" pressed="true" autorepeat="false"/> | ||
1676 | </map> | ||
1677 | <map keycode="Space" pressed="false"> | ||
1678 | <event keycode="N" unicode="0x7E" pressed="false"/> | ||
1679 | <next-state name="Normal"/> | ||
1680 | </map> | ||
1681 | </state> | ||
1682 | |||
1683 | |||
1684 | <!-- Tilde Lower-Case Characters: ã, ñ, õ... because we have released RShift --> | ||
1685 | <state name="RShift-Tilde-Lower"> | ||
1686 | <!-- RS + (N) + A = ã --> | ||
1687 | <map keycode="A" pressed="true"> | ||
1688 | <event keycode="A" unicode="0xE3" pressed="true" autorepeat="true"/> | ||
1689 | </map> | ||
1690 | <map keycode="A" pressed="false"> | ||
1691 | <event keycode="A" unicode="0xE3" pressed="false"/> | ||
1692 | <next-state name="Normal"/> | ||
1693 | </map> | ||
1694 | |||
1695 | <!-- RS + (N) + N = ñ --> | ||
1696 | <map keycode="N" pressed="true"> | ||
1697 | <event keycode="N" unicode="0xF1" pressed="true" autorepeat="true"/> | ||
1698 | </map> | ||
1699 | <map keycode="N" pressed="false"> | ||
1700 | <event keycode="N" unicode="0xF1" pressed="false"/> | ||
1701 | <next-state name="Normal"/> | ||
1702 | </map> | ||
1703 | |||
1704 | <!-- RS + (N) + O = õ --> | ||
1705 | <map keycode="O" pressed="true"> | ||
1706 | <event keycode="O" unicode="0xF5" pressed="true" autorepeat="true"/> | ||
1707 | </map> | ||
1708 | <map keycode="O" pressed="false"> | ||
1709 | <event keycode="O" unicode="0xF5" pressed="false"/> | ||
1710 | <next-state name="Normal"/> | ||
1711 | </map> | ||
1712 | |||
1713 | <!-- Simple shift second time goes Upper-Case --> | ||
1714 | <map keycode="Right Shift" pressed="true"> | ||
1715 | <next-state name="RShift-Tilde"/> | ||
1716 | </map> | ||
1717 | <map keycode="Left Shift" pressed="true"> | ||
1718 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1719 | <next-state name="RShift-Tilde"/> | ||
1720 | </map> | ||
1721 | |||
1722 | <!-- Abort operation: print ¨ --> | ||
1723 | <map keycode="Space" pressed="true"> | ||
1724 | <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/> | ||
1725 | </map> | ||
1726 | <map keycode="Space" pressed="false"> | ||
1727 | <event keycode="B" unicode="0xA8" pressed="false"/> | ||
1728 | <next-state name="Normal"/> | ||
1729 | </map> | ||
1730 | </state> | ||
1731 | |||
1732 | |||
1733 | <!-- Tilde Lower-Case Characters: ã, ñ, õ... because we still press Shift and we are in Caps --> | ||
1734 | <state name="RShift-Caps-Tilde"> | ||
1735 | <!-- Caps + RS + (N) + A = ã --> | ||
1736 | <map keycode="A" pressed="true"> | ||
1737 | <event keycode="A" unicode="0xE3" pressed="true" autorepeat="true"/> | ||
1738 | </map> | ||
1739 | <map keycode="A" pressed="false"> | ||
1740 | <event keycode="A" unicode="0xE3" pressed="false"/> | ||
1741 | <next-state name="Caps"/> | ||
1742 | </map> | ||
1743 | |||
1744 | <!-- Caps + RS + (N) + N = ñ --> | ||
1745 | <map keycode="N" pressed="true"> | ||
1746 | <event keycode="N" unicode="0xF1" pressed="true" autorepeat="true"/> | ||
1747 | </map> | ||
1748 | <map keycode="N" pressed="false"> | ||
1749 | <event keycode="N" unicode="0xF1" pressed="false"/> | ||
1750 | <next-state name="Caps"/> | ||
1751 | </map> | ||
1752 | |||
1753 | <!-- Caps + RS + (N) + O = õ --> | ||
1754 | <map keycode="O" pressed="true"> | ||
1755 | <event keycode="O" unicode="0xF5" pressed="true" autorepeat="true"/> | ||
1756 | </map> | ||
1757 | <map keycode="O" pressed="false"> | ||
1758 | <event keycode="O" unicode="0xF5" pressed="false"/> | ||
1759 | <next-state name="Caps"/> | ||
1760 | </map> | ||
1761 | |||
1762 | <!-- Release shift to go upper-case --> | ||
1763 | <map keycode="Right Shift" pressed="false"> | ||
1764 | <next-state name="RShift-Caps-Tilde-Upper"/> | ||
1765 | </map> | ||
1766 | <map keycode="Left Shift" pressed="false"> | ||
1767 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1768 | <next-state name="RShift-Caps-Tilde-Upper"/> | ||
1769 | </map> | ||
1770 | |||
1771 | <!-- Abort operation: print ~ --> | ||
1772 | <map keycode="Space" pressed="true"> | ||
1773 | <event keycode="N" unicode="0x7E" pressed="true" autorepeat="false"/> | ||
1774 | </map> | ||
1775 | <map keycode="Space" pressed="false"> | ||
1776 | <event keycode="N" unicode="0x7E" pressed="false"/> | ||
1777 | <next-state name="Caps"/> | ||
1778 | </map> | ||
1779 | </state> | ||
1780 | |||
1781 | |||
1782 | <!-- Tilde Upper-Case Characters: Ã, Ñ, Õ... because we have released RShift but we are in Caps --> | ||
1783 | <state name="RShift-Caps-Tilde-Upper"> | ||
1784 | <!-- Caps + RS + (N) + A = Ã --> | ||
1785 | <map keycode="A" pressed="true"> | ||
1786 | <event keycode="A" unicode="0xC3" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1787 | </map> | ||
1788 | <map keycode="A" pressed="false"> | ||
1789 | <event keycode="A" unicode="0xC3" pressed="false" modifiers="Shift"/> | ||
1790 | <next-state name="Caps"/> | ||
1791 | </map> | ||
1792 | |||
1793 | <!-- Caps + RS + (N) + N = Ñ --> | ||
1794 | <map keycode="N" pressed="true"> | ||
1795 | <event keycode="N" unicode="0xD1" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1796 | </map> | ||
1797 | <map keycode="N" pressed="false"> | ||
1798 | <event keycode="N" unicode="0xD1" pressed="false" modifiers="Shift"/> | ||
1799 | <next-state name="Caps"/> | ||
1800 | </map> | ||
1801 | |||
1802 | <!-- Caps + RS + (N) + O = Õ --> | ||
1803 | <map keycode="O" pressed="true"> | ||
1804 | <event keycode="O" unicode="0xD5" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1805 | </map> | ||
1806 | <map keycode="O" pressed="false"> | ||
1807 | <event keycode="O" unicode="0xD5" pressed="false" modifiers="Shift"/> | ||
1808 | <next-state name="Caps"/> | ||
1809 | </map> | ||
1810 | |||
1811 | <!-- Simple shift second time goes Lower-Case --> | ||
1812 | <map keycode="Right Shift" pressed="true"> | ||
1813 | <next-state name="RShift-Caps-Tilde"/> | ||
1814 | </map> | ||
1815 | <map keycode="Left Shift" pressed="true"> | ||
1816 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1817 | <next-state name="RShift-Caps-Tilde"/> | ||
1818 | </map> | ||
1819 | |||
1820 | <!-- Abort operation: print ~ --> | ||
1821 | <map keycode="Space" pressed="true"> | ||
1822 | <event keycode="N" unicode="0x7E" pressed="true" autorepeat="false"/> | ||
1823 | </map> | ||
1824 | <map keycode="Space" pressed="false"> | ||
1825 | <event keycode="N" unicode="0x7E" pressed="false"/> | ||
1826 | <next-state name="Caps"/> | ||
1827 | </map> | ||
1828 | </state> | ||
1829 | |||
1830 | |||
1831 | |||
1832 | |||
1833 | <!-- Inversed Characters: ¡, ¿... --> | ||
1834 | <state name="RShift-Inversed"> | ||
1835 | <!-- RS + (I) + A = ¡ --> | ||
1836 | <map keycode="A" pressed="true"> | ||
1837 | <event keycode="A" unicode="0xA1" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1838 | </map> | ||
1839 | <map keycode="A" pressed="false"> | ||
1840 | <event keycode="A" unicode="0xA1" pressed="false" modifiers="Shift"/> | ||
1841 | <next-state name="Normal"/> | ||
1842 | </map> | ||
1843 | |||
1844 | <!-- RS + (I) + / = ¿ --> | ||
1845 | <map keycode="Slash" pressed="true"> | ||
1846 | <event keycode="Slash" unicode="0xBF" pressed="true" modifiers="Shift" autorepeat="true"/> | ||
1847 | </map> | ||
1848 | <map keycode="N" pressed="false"> | ||
1849 | <event keycode="N" unicode="0xBF" pressed="false" modifiers="Shift"/> | ||
1850 | <next-state name="Normal"/> | ||
1851 | </map> | ||
1852 | |||
1853 | <!-- Shift has no action --> | ||
1854 | <map keycode="Right Shift" pressed="true"> | ||
1855 | <next-state name="RShift-Inversed"/> | ||
1856 | </map> | ||
1857 | <map keycode="Right Shift" pressed="false"> | ||
1858 | <next-state name="RShift-Inversed"/> | ||
1859 | </map> | ||
1860 | <map keycode="Left Shift" pressed="true"> | ||
1861 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1862 | <next-state name="RShift-Inversed"/> | ||
1863 | </map> | ||
1864 | <map keycode="Left Shift" pressed="false"> | ||
1865 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1866 | <next-state name="RShift-Inversed"/> | ||
1867 | </map> | ||
1868 | |||
1869 | <!-- Abort operation: print ¬ --> | ||
1870 | <map keycode="Space" pressed="true"> | ||
1871 | <event keycode="I" unicode="0xAC" pressed="true" autorepeat="false"/> | ||
1872 | </map> | ||
1873 | <map keycode="Space" pressed="false"> | ||
1874 | <event keycode="I" unicode="0xAC" pressed="false"/> | ||
1875 | <next-state name="Normal"/> | ||
1876 | </map> | ||
1877 | </state> | ||
1878 | |||
1879 | |||
1880 | <!-- Inversed Characters: ¡, ¿... --> | ||
1881 | <state name="RShift-Caps-Inversed"> | ||
1882 | <!-- Caps + RS + (I) + A = ¡ --> | ||
1883 | <map keycode="A" pressed="true"> | ||
1884 | <event keycode="A" unicode="0xA1" pressed="true" autorepeat="true"/> | ||
1885 | </map> | ||
1886 | <map keycode="A" pressed="false"> | ||
1887 | <event keycode="A" unicode="0xA1" pressed="false"/> | ||
1888 | <next-state name="Caps"/> | ||
1889 | </map> | ||
1890 | |||
1891 | <!-- Caps + RS + (I) + / = ¿ --> | ||
1892 | <map keycode="Slash" pressed="true"> | ||
1893 | <event keycode="Slash" unicode="0xBF" pressed="true" autorepeat="true"/> | ||
1894 | </map> | ||
1895 | <map keycode="Slash" pressed="false"> | ||
1896 | <event keycode="Slash" unicode="0xBF" pressed="false"/> | ||
1897 | <next-state name="Caps"/> | ||
1898 | </map> | ||
1899 | |||
1900 | <!-- Shift has no effect --> | ||
1901 | <map keycode="Right Shift" pressed="true"> | ||
1902 | <next-state name="RShift-Caps-Inversed"/> | ||
1903 | </map> | ||
1904 | <map keycode="Right Shift" pressed="false"> | ||
1905 | <next-state name="RShift-Caps-Inversed"/> | ||
1906 | </map> | ||
1907 | <map keycode="Left Shift" pressed="true"> | ||
1908 | <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/> | ||
1909 | <next-state name="RShift-Caps-Inversed"/> | ||
1910 | </map> | ||
1911 | <map keycode="Left Shift" pressed="false"> | ||
1912 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
1913 | <next-state name="RShift-Caps-Inversed"/> | ||
1914 | </map> | ||
1915 | |||
1916 | <!-- Abort operation: print ¬ --> | ||
1917 | <map keycode="Space" pressed="true"> | ||
1918 | <event keycode="I" unicode="0xAC" pressed="true" autorepeat="false"/> | ||
1919 | </map> | ||
1920 | <map keycode="Space" pressed="false"> | ||
1921 | <event keycode="I" unicode="0xAC" pressed="false"/> | ||
1922 | <next-state name="Caps"/> | ||
1923 | </map> | ||
1924 | </state> | ||
1925 | |||
1926 | |||
1927 | </keymap> | ||
diff --git a/share/zkb/ru.xml b/share/zkb/ru.xml new file mode 100644 index 0000000..f0cc214 --- a/dev/null +++ b/share/zkb/ru.xml | |||
@@ -0,0 +1,542 @@ | |||
1 | <keymap> | ||
2 | |||
3 | <include file="common.xml"/> | ||
4 | |||
5 | <state name="LShift-RShift" parent="common"/> | ||
6 | <state name="LShift-RShift-Caps" parent="common"/> | ||
7 | |||
8 | <state name="LShift"> | ||
9 | <map keycode="Right Shift" pressed="true"> | ||
10 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
11 | <next-state name="LShift-RShift"/> | ||
12 | </map> | ||
13 | </state> | ||
14 | |||
15 | <state name="RShift"> | ||
16 | <map keycode="E" pressed="true"> | ||
17 | <event keycode="E" unicode="0x44D" pressed="true" autorepeat="true"/> | ||
18 | </map> | ||
19 | <map keycode="G" pressed="true"> | ||
20 | <event keycode="G" unicode="0x436" pressed="true" autorepeat="true"/> | ||
21 | </map> | ||
22 | <map keycode="I" pressed="true"> | ||
23 | <event keycode="I" unicode="0x44E" pressed="true" autorepeat="true"/> | ||
24 | </map> | ||
25 | <map keycode="Y" pressed="true"> | ||
26 | <event keycode="Y" unicode="0x44C" pressed="true" autorepeat="true"/> | ||
27 | </map> | ||
28 | |||
29 | <map keycode="E" pressed="false"> | ||
30 | <event keycode="E" unicode="0x44D" pressed="false"/> | ||
31 | </map> | ||
32 | <map keycode="G" pressed="false"> | ||
33 | <event keycode="G" unicode="0x436" pressed="false"/> | ||
34 | </map> | ||
35 | <map keycode="I" pressed="false"> | ||
36 | <event keycode="I" unicode="0x44E" pressed="false"/> | ||
37 | </map> | ||
38 | <map keycode="Y" pressed="false"> | ||
39 | <event keycode="Y" unicode="0x44C" pressed="false"/> | ||
40 | </map> | ||
41 | |||
42 | <map keycode="Left Shift" pressed="false"> | ||
43 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
44 | <next-state name="LShift-RShift"/> | ||
45 | </map> | ||
46 | </state> | ||
47 | |||
48 | <state name="LShift-Caps"> | ||
49 | <map keycode="Right Shift" pressed="true"> | ||
50 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
51 | <next-state name="LShift-RShift-Caps"/> | ||
52 | </map> | ||
53 | </state> | ||
54 | |||
55 | <state name="LShift-Num"> | ||
56 | <map keycode="Left Shift" pressed="false"> | ||
57 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
58 | <next-state name="Num"/> | ||
59 | </map> | ||
60 | |||
61 | <map keycode="Fn" pressed="true"> | ||
62 | <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/> | ||
63 | <next-state name="LShift-Fn-Num"/> | ||
64 | </map> | ||
65 | </state> | ||
66 | |||
67 | <state name="RShift-Caps"> | ||
68 | <map keycode="E" pressed="true"> | ||
69 | <event keycode="E" unicode="0x42D" pressed="true" autorepeat="true"/> | ||
70 | </map> | ||
71 | <map keycode="G" pressed="true"> | ||
72 | <event keycode="G" unicode="0x416" pressed="true" autorepeat="true"/> | ||
73 | </map> | ||
74 | <map keycode="I" pressed="true"> | ||
75 | <event keycode="I" unicode="0x42E" pressed="true" autorepeat="true"/> | ||
76 | </map> | ||
77 | <map keycode="Y" pressed="true"> | ||
78 | <event keycode="Y" unicode="0x42C" pressed="true" autorepeat="true"/> | ||
79 | </map> | ||
80 | |||
81 | <map keycode="E" pressed="false"> | ||
82 | <event keycode="E" unicode="0x42D" pressed="false"/> | ||
83 | </map> | ||
84 | <map keycode="G" pressed="false"> | ||
85 | <event keycode="G" unicode="0x416" pressed="false"/> | ||
86 | </map> | ||
87 | <map keycode="I" pressed="false"> | ||
88 | <event keycode="I" unicode="0x42E" pressed="false"/> | ||
89 | </map> | ||
90 | <map keycode="Y" pressed="false"> | ||
91 | <event keycode="Y" unicode="0x42C" pressed="false"/> | ||
92 | </map> | ||
93 | |||
94 | <map keycode="Left Shift" pressed="true"> | ||
95 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
96 | <next-state name="LShift-RShift-Caps"/> | ||
97 | </map> | ||
98 | </state> | ||
99 | |||
100 | <state name="LShift-RShift"> | ||
101 | <map keycode="E" pressed="true"> | ||
102 | <event keycode="E" unicode="0x42D" pressed="true" autorepeat="true"/> | ||
103 | </map> | ||
104 | <map keycode="G" pressed="true"> | ||
105 | <event keycode="G" unicode="0x416" pressed="true" autorepeat="true"/> | ||
106 | </map> | ||
107 | <map keycode="I" pressed="true"> | ||
108 | <event keycode="I" unicode="0x42E" pressed="true" autorepeat="true"/> | ||
109 | </map> | ||
110 | <map keycode="Y" pressed="true"> | ||
111 | <event keycode="Y" unicode="0x42C" pressed="true" autorepeat="true"/> | ||
112 | </map> | ||
113 | |||
114 | <map keycode="E" pressed="false"> | ||
115 | <event keycode="E" unicode="0x42D" pressed="false"/> | ||
116 | </map> | ||
117 | <map keycode="G" pressed="false"> | ||
118 | <event keycode="G" unicode="0x416" pressed="false"/> | ||
119 | </map> | ||
120 | <map keycode="I" pressed="false"> | ||
121 | <event keycode="I" unicode="0x42E" pressed="false"/> | ||
122 | </map> | ||
123 | <map keycode="Y" pressed="false"> | ||
124 | <event keycode="Y" unicode="0x42C" pressed="false"/> | ||
125 | </map> | ||
126 | |||
127 | <map keycode="Left Shift" pressed="false"> | ||
128 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
129 | <next-state name="RShift"/> | ||
130 | </map> | ||
131 | |||
132 | <map keycode="Right Shift" pressed="false"> | ||
133 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
134 | <next-state name="LShift"/> | ||
135 | </map> | ||
136 | </state> | ||
137 | |||
138 | <state name="LShift-RShift-Caps"> | ||
139 | <map keycode="E" pressed="true"> | ||
140 | <event keycode="E" unicode="0x44D" pressed="true" autorepeat="true"/> | ||
141 | </map> | ||
142 | <map keycode="G" pressed="true"> | ||
143 | <event keycode="G" unicode="0x436" pressed="true" autorepeat="true"/> | ||
144 | </map> | ||
145 | <map keycode="I" pressed="true"> | ||
146 | <event keycode="I" unicode="0x44E" pressed="true" autorepeat="true"/> | ||
147 | </map> | ||
148 | <map keycode="Y" pressed="true"> | ||
149 | <event keycode="Y" unicode="0x44C" pressed="true" autorepeat="true"/> | ||
150 | </map> | ||
151 | |||
152 | <map keycode="E" pressed="false"> | ||
153 | <event keycode="E" unicode="0x44D" pressed="false"/> | ||
154 | </map> | ||
155 | <map keycode="G" pressed="false"> | ||
156 | <event keycode="G" unicode="0x436" pressed="false"/> | ||
157 | </map> | ||
158 | <map keycode="I" pressed="false"> | ||
159 | <event keycode="I" unicode="0x44E" pressed="false"/> | ||
160 | </map> | ||
161 | <map keycode="Y" pressed="false"> | ||
162 | <event keycode="Y" unicode="0x44C" pressed="false"/> | ||
163 | </map> | ||
164 | |||
165 | <map keycode="Left Shift" pressed="false"> | ||
166 | <event keycode="Shift" unicode="-1" pressed="false"/> | ||
167 | <next-state name="RShift-Caps"/> | ||
168 | </map> | ||
169 | |||
170 | <map keycode="Right Shift" pressed="false"> | ||
171 | <event keycode="Meta" unicode="-1" pressed="false"/> | ||
172 | <next-state name="LShift-Caps"/> | ||
173 | </map> | ||
174 | </state> | ||
175 | |||
176 | <state name="upper-case"> | ||
177 | <map keycode="Apostrophe" pressed="true"> | ||
178 | <event keycode="QuoteDbl" unicode="34" pressed="true" autorepeat="true"/> | ||
179 | </map> | ||
180 | <map keycode="Comma" pressed="true"> | ||
181 | <event keycode="Semicolon" unicode="59" pressed="true" autorepeat="true"/> | ||
182 | </map> | ||
183 | <map keycode="Period" pressed="true"> | ||
184 | <event keycode="Colon" unicode="58" pressed="true" autorepeat="true"/> | ||
185 | </map> | ||
186 | <map keycode="Slash" pressed="true"> | ||
187 | <event keycode="Question" unicode="63" pressed="true" autorepeat="true"/> | ||
188 | </map> | ||
189 | <map keycode="A" pressed="true"> | ||
190 | <event keycode="A" unicode="0x410" pressed="true" autorepeat="true"/> | ||
191 | </map> | ||
192 | <map keycode="B" pressed="true"> | ||
193 | <event keycode="B" unicode="0x411" pressed="true" autorepeat="true"/> | ||
194 | </map> | ||
195 | <map keycode="C" pressed="true"> | ||
196 | <event keycode="C" unicode="0x426" pressed="true" autorepeat="true"/> | ||
197 | </map> | ||
198 | <map keycode="D" pressed="true"> | ||
199 | <event keycode="D" unicode="0x414" pressed="true" autorepeat="true"/> | ||
200 | </map> | ||
201 | <map keycode="E" pressed="true"> | ||
202 | <event keycode="E" unicode="0x415" pressed="true" autorepeat="true"/> | ||
203 | </map> | ||
204 | <map keycode="F" pressed="true"> | ||
205 | <event keycode="F" unicode="0x424" pressed="true" autorepeat="true"/> | ||
206 | </map> | ||
207 | <map keycode="G" pressed="true"> | ||
208 | <event keycode="G" unicode="0x413" pressed="true" autorepeat="true"/> | ||
209 | </map> | ||
210 | <map keycode="H" pressed="true"> | ||
211 | <event keycode="H" unicode="0x425" pressed="true" autorepeat="true"/> | ||
212 | </map> | ||
213 | <map keycode="I" pressed="true"> | ||
214 | <event keycode="I" unicode="0x418" pressed="true" autorepeat="true"/> | ||
215 | </map> | ||
216 | <map keycode="J" pressed="true"> | ||
217 | <event keycode="J" unicode="0x419" pressed="true" autorepeat="true"/> | ||
218 | </map> | ||
219 | <map keycode="K" pressed="true"> | ||
220 | <event keycode="K" unicode="0x41A" pressed="true" autorepeat="true"/> | ||
221 | </map> | ||
222 | <map keycode="L" pressed="true"> | ||
223 | <event keycode="L" unicode="0x41B" pressed="true" autorepeat="true"/> | ||
224 | </map> | ||
225 | <map keycode="M" pressed="true"> | ||
226 | <event keycode="M" unicode="0x41C" pressed="true" autorepeat="true"/> | ||
227 | </map> | ||
228 | <map keycode="N" pressed="true"> | ||
229 | <event keycode="N" unicode="0x41D" pressed="true" autorepeat="true"/> | ||
230 | </map> | ||
231 | <map keycode="O" pressed="true"> | ||
232 | <event keycode="O" unicode="0x41E" pressed="true" autorepeat="true"/> | ||
233 | </map> | ||
234 | <map keycode="P" pressed="true"> | ||
235 | <event keycode="P" unicode="0x41F" pressed="true" autorepeat="true"/> | ||
236 | </map> | ||
237 | <map keycode="Q" pressed="true"> | ||
238 | <event keycode="Q" unicode="0x42F" pressed="true" autorepeat="true"/> | ||
239 | </map> | ||
240 | <map keycode="R" pressed="true"> | ||
241 | <event keycode="R" unicode="0x420" pressed="true" autorepeat="true"/> | ||
242 | </map> | ||
243 | <map keycode="S" pressed="true"> | ||
244 | <event keycode="S" unicode="0x421" pressed="true" autorepeat="true"/> | ||
245 | </map> | ||
246 | <map keycode="T" pressed="true"> | ||
247 | <event keycode="T" unicode="0x422" pressed="true" autorepeat="true"/> | ||
248 | </map> | ||
249 | <map keycode="U" pressed="true"> | ||
250 | <event keycode="U" unicode="0x423" pressed="true" autorepeat="true"/> | ||
251 | </map> | ||
252 | <map keycode="V" pressed="true"> | ||
253 | <event keycode="V" unicode="0x412" pressed="true" autorepeat="true"/> | ||
254 | </map> | ||
255 | <map keycode="W" pressed="true"> | ||
256 | <event keycode="W" unicode="0x428" pressed="true" autorepeat="true"/> | ||
257 | </map> | ||
258 | <map keycode="X" pressed="true"> | ||
259 | <event keycode="X" unicode="0x427" pressed="true" autorepeat="true"/> | ||
260 | </map> | ||
261 | <map keycode="Y" pressed="true"> | ||
262 | <event keycode="Y" unicode="0x42B" pressed="true" autorepeat="true"/> | ||
263 | </map> | ||
264 | <map keycode="Z" pressed="true"> | ||
265 | <event keycode="Z" unicode="0x417" pressed="true" autorepeat="true"/> | ||
266 | </map> | ||
267 | <map keycode="Apostrophe" pressed="false"> | ||
268 | <event keycode="QuoteDbl" unicode="34" pressed="false"/> | ||
269 | </map> | ||
270 | <map keycode="Comma" pressed="false"> | ||
271 | <event keycode="Semicolon" unicode="59" pressed="false"/> | ||
272 | </map> | ||
273 | <map keycode="Period" pressed="false"> | ||
274 | <event keycode="Colon" unicode="58" pressed="false"/> | ||
275 | </map> | ||
276 | <map keycode="Slash" pressed="false"> | ||
277 | <event keycode="Question" unicode="63" pressed="false"/> | ||
278 | </map> | ||
279 | <map keycode="A" pressed="false"> | ||
280 | <event keycode="A" unicode="0x410" pressed="false"/> | ||
281 | </map> | ||
282 | <map keycode="B" pressed="false"> | ||
283 | <event keycode="B" unicode="0x411" pressed="false"/> | ||
284 | </map> | ||
285 | <map keycode="C" pressed="false"> | ||
286 | <event keycode="C" unicode="0x426" pressed="false"/> | ||
287 | </map> | ||
288 | <map keycode="D" pressed="false"> | ||
289 | <event keycode="D" unicode="0x414" pressed="false"/> | ||
290 | </map> | ||
291 | <map keycode="E" pressed="false"> | ||
292 | <event keycode="E" unicode="0x415" pressed="false"/> | ||
293 | </map> | ||
294 | <map keycode="F" pressed="false"> | ||
295 | <event keycode="F" unicode="0x424" pressed="false"/> | ||
296 | </map> | ||
297 | <map keycode="G" pressed="false"> | ||
298 | <event keycode="G" unicode="0x413" pressed="false"/> | ||
299 | </map> | ||
300 | <map keycode="H" pressed="false"> | ||
301 | <event keycode="H" unicode="0x425" pressed="false"/> | ||
302 | </map> | ||
303 | <map keycode="I" pressed="false"> | ||
304 | <event keycode="I" unicode="0x418" pressed="false"/> | ||
305 | </map> | ||
306 | <map keycode="J" pressed="false"> | ||
307 | <event keycode="J" unicode="0x419" pressed="false"/> | ||
308 | </map> | ||
309 | <map keycode="K" pressed="false"> | ||
310 | <event keycode="K" unicode="0x41A" pressed="false"/> | ||
311 | </map> | ||
312 | <map keycode="L" pressed="false"> | ||
313 | <event keycode="L" unicode="0x41B" pressed="false"/> | ||
314 | </map> | ||
315 | <map keycode="M" pressed="false"> | ||
316 | <event keycode="M" unicode="0x41C" pressed="false"/> | ||
317 | </map> | ||
318 | <map keycode="N" pressed="false"> | ||
319 | <event keycode="N" unicode="0x41D" pressed="false"/> | ||
320 | </map> | ||
321 | <map keycode="O" pressed="false"> | ||
322 | <event keycode="O" unicode="0x41E" pressed="false"/> | ||
323 | </map> | ||
324 | <map keycode="P" pressed="false"> | ||
325 | <event keycode="P" unicode="0x41F" pressed="false"/> | ||
326 | </map> | ||
327 | <map keycode="Q" pressed="false"> | ||
328 | <event keycode="Q" unicode="0x42F" pressed="false"/> | ||
329 | </map> | ||
330 | <map keycode="R" pressed="false"> | ||
331 | <event keycode="R" unicode="0x420" pressed="false"/> | ||
332 | </map> | ||
333 | <map keycode="S" pressed="false"> | ||
334 | <event keycode="S" unicode="0x421" pressed="false"/> | ||
335 | </map> | ||
336 | <map keycode="T" pressed="false"> | ||
337 | <event keycode="T" unicode="0x422" pressed="false"/> | ||
338 | </map> | ||
339 | <map keycode="U" pressed="false"> | ||
340 | <event keycode="U" unicode="0x423" pressed="false"/> | ||
341 | </map> | ||
342 | <map keycode="V" pressed="false"> | ||
343 | <event keycode="V" unicode="0x412" pressed="false"/> | ||
344 | </map> | ||
345 | <map keycode="W" pressed="false"> | ||
346 | <event keycode="W" unicode="0x428" pressed="false"/> | ||
347 | </map> | ||
348 | <map keycode="X" pressed="false"> | ||
349 | <event keycode="X" unicode="0x427" pressed="false"/> | ||
350 | </map> | ||
351 | <map keycode="Y" pressed="false"> | ||
352 | <event keycode="Y" unicode="0x42B" pressed="false"/> | ||
353 | </map> | ||
354 | <map keycode="Z" pressed="false"> | ||
355 | <event keycode="Z" unicode="0x417" pressed="false"/> | ||
356 | </map> | ||
357 | </state> | ||
358 | |||
359 | <state name="lower-case"> | ||
360 | <map keycode="Apostrophe" pressed="true"> | ||
361 | <event keycode="QuoteDbl" unicode="34" pressed="true" autorepeat="true"/> | ||
362 | </map> | ||
363 | <map keycode="Comma" pressed="true"> | ||
364 | <event keycode="Semicolon" unicode="59" pressed="true" autorepeat="true"/> | ||
365 | </map> | ||
366 | <map keycode="Period" pressed="true"> | ||
367 | <event keycode="Colon" unicode="58" pressed="true" autorepeat="true"/> | ||
368 | </map> | ||
369 | <map keycode="Slash" pressed="true"> | ||
370 | <event keycode="Question" unicode="63" pressed="true" autorepeat="true"/> | ||
371 | </map> | ||
372 | <map keycode="A" pressed="true"> | ||
373 | <event keycode="A" unicode="0x430" pressed="true" autorepeat="true"/> | ||
374 | </map> | ||
375 | <map keycode="B" pressed="true"> | ||
376 | <event keycode="B" unicode="0x431" pressed="true" autorepeat="true"/> | ||
377 | </map> | ||
378 | <map keycode="C" pressed="true"> | ||
379 | <event keycode="C" unicode="0x446" pressed="true" autorepeat="true"/> | ||
380 | </map> | ||
381 | <map keycode="D" pressed="true"> | ||
382 | <event keycode="D" unicode="0x434" pressed="true" autorepeat="true"/> | ||
383 | </map> | ||
384 | <map keycode="E" pressed="true"> | ||
385 | <event keycode="E" unicode="0x435" pressed="true" autorepeat="true"/> | ||
386 | </map> | ||
387 | <map keycode="F" pressed="true"> | ||
388 | <event keycode="F" unicode="0x444" pressed="true" autorepeat="true"/> | ||
389 | </map> | ||
390 | <map keycode="G" pressed="true"> | ||
391 | <event keycode="G" unicode="0x433" pressed="true" autorepeat="true"/> | ||
392 | </map> | ||
393 | <map keycode="H" pressed="true"> | ||
394 | <event keycode="H" unicode="0x445" pressed="true" autorepeat="true"/> | ||
395 | </map> | ||
396 | <map keycode="I" pressed="true"> | ||
397 | <event keycode="I" unicode="0x438" pressed="true" autorepeat="true"/> | ||
398 | </map> | ||
399 | <map keycode="J" pressed="true"> | ||
400 | <event keycode="J" unicode="0x439" pressed="true" autorepeat="true"/> | ||
401 | </map> | ||
402 | <map keycode="K" pressed="true"> | ||
403 | <event keycode="K" unicode="0x43A" pressed="true" autorepeat="true"/> | ||
404 | </map> | ||
405 | <map keycode="L" pressed="true"> | ||
406 | <event keycode="L" unicode="0x43B" pressed="true" autorepeat="true"/> | ||
407 | </map> | ||
408 | <map keycode="M" pressed="true"> | ||
409 | <event keycode="M" unicode="0x43C" pressed="true" autorepeat="true"/> | ||
410 | </map> | ||
411 | <map keycode="N" pressed="true"> | ||
412 | <event keycode="N" unicode="0x43D" pressed="true" autorepeat="true"/> | ||
413 | </map> | ||
414 | <map keycode="O" pressed="true"> | ||
415 | <event keycode="O" unicode="0x43E" pressed="true" autorepeat="true"/> | ||
416 | </map> | ||
417 | <map keycode="P" pressed="true"> | ||
418 | <event keycode="P" unicode="0x43F" pressed="true" autorepeat="true"/> | ||
419 | </map> | ||
420 | <map keycode="Q" pressed="true"> | ||
421 | <event keycode="Q" unicode="0x44F" pressed="true" autorepeat="true"/> | ||
422 | </map> | ||
423 | <map keycode="R" pressed="true"> | ||
424 | <event keycode="R" unicode="0x440" pressed="true" autorepeat="true"/> | ||
425 | </map> | ||
426 | <map keycode="S" pressed="true"> | ||
427 | <event keycode="S" unicode="0x441" pressed="true" autorepeat="true"/> | ||
428 | </map> | ||
429 | <map keycode="T" pressed="true"> | ||
430 | <event keycode="T" unicode="0x442" pressed="true" autorepeat="true"/> | ||
431 | </map> | ||
432 | <map keycode="U" pressed="true"> | ||
433 | <event keycode="U" unicode="0x443" pressed="true" autorepeat="true"/> | ||
434 | </map> | ||
435 | <map keycode="V" pressed="true"> | ||
436 | <event keycode="V" unicode="0x432" pressed="true" autorepeat="true"/> | ||
437 | </map> | ||
438 | <map keycode="W" pressed="true"> | ||
439 | <event keycode="W" unicode="0x448" pressed="true" autorepeat="true"/> | ||
440 | </map> | ||
441 | <map keycode="X" pressed="true"> | ||
442 | <event keycode="X" unicode="0x447" pressed="true" autorepeat="true"/> | ||
443 | </map> | ||
444 | <map keycode="Y" pressed="true"> | ||
445 | <event keycode="Y" unicode="0x44B" pressed="true" autorepeat="true"/> | ||
446 | </map> | ||
447 | <map keycode="Z" pressed="true"> | ||
448 | <event keycode="Z" unicode="0x437" pressed="true" autorepeat="true"/> | ||
449 | </map> | ||
450 | <map keycode="Apostrophe" pressed="false"> | ||
451 | <event keycode="QuoteDbl" unicode="34" pressed="false"/> | ||
452 | </map> | ||
453 | <map keycode="Comma" pressed="false"> | ||
454 | <event keycode="Semicolon" unicode="59" pressed="false"/> | ||
455 | </map> | ||
456 | <map keycode="Period" pressed="false"> | ||
457 | <event keycode="Colon" unicode="58" pressed="false"/> | ||
458 | </map> | ||
459 | <map keycode="Slash" pressed="false"> | ||
460 | <event keycode="Question" unicode="63" pressed="false"/> | ||
461 | </map> | ||
462 | <map keycode="A" pressed="false"> | ||
463 | <event keycode="A" unicode="0x430" pressed="false"/> | ||
464 | </map> | ||
465 | <map keycode="B" pressed="false"> | ||
466 | <event keycode="B" unicode="0x431" pressed="false"/> | ||
467 | </map> | ||
468 | <map keycode="C" pressed="false"> | ||
469 | <event keycode="C" unicode="0x446" pressed="false"/> | ||
470 | </map> | ||
471 | <map keycode="D" pressed="false"> | ||
472 | <event keycode="D" unicode="0x434" pressed="false"/> | ||
473 | </map> | ||
474 | <map keycode="E" pressed="false"> | ||
475 | <event keycode="E" unicode="0x435" pressed="false"/> | ||
476 | </map> | ||
477 | <map keycode="F" pressed="false"> | ||
478 | <event keycode="F" unicode="0x444" pressed="false"/> | ||
479 | </map> | ||
480 | <map keycode="G" pressed="false"> | ||
481 | <event keycode="G" unicode="0x433" pressed="false"/> | ||
482 | </map> | ||
483 | <map keycode="H" pressed="false"> | ||
484 | <event keycode="H" unicode="0x445" pressed="false"/> | ||
485 | </map> | ||
486 | <map keycode="I" pressed="false"> | ||
487 | <event keycode="I" unicode="0x438" pressed="false"/> | ||
488 | </map> | ||
489 | <map keycode="J" pressed="false"> | ||
490 | <event keycode="J" unicode="0x439" pressed="false"/> | ||
491 | </map> | ||
492 | <map keycode="K" pressed="false"> | ||
493 | <event keycode="K" unicode="0x43A" pressed="false"/> | ||
494 | </map> | ||
495 | <map keycode="L" pressed="false"> | ||
496 | <event keycode="L" unicode="0x43B" pressed="false"/> | ||
497 | </map> | ||
498 | <map keycode="M" pressed="false"> | ||
499 | <event keycode="M" unicode="0x43C" pressed="false"/> | ||
500 | </map> | ||
501 | <map keycode="N" pressed="false"> | ||
502 | <event keycode="N" unicode="0x43D" pressed="false"/> | ||
503 | </map> | ||
504 | <map keycode="O" pressed="false"> | ||
505 | <event keycode="O" unicode="0x43E" pressed="false"/> | ||
506 | </map> | ||
507 | <map keycode="P" pressed="false"> | ||
508 | <event keycode="P" unicode="0x43F" pressed="false"/> | ||
509 | </map> | ||
510 | <map keycode="Q" pressed="false"> | ||
511 | <event keycode="Q" unicode="0x44F" pressed="false"/> | ||
512 | </map> | ||
513 | <map keycode="R" pressed="false"> | ||
514 | <event keycode="R" unicode="0x440" pressed="false"/> | ||
515 | </map> | ||
516 | <map keycode="S" pressed="false"> | ||
517 | <event keycode="S" unicode="0x441" pressed="false"/> | ||
518 | </map> | ||
519 | <map keycode="T" pressed="false"> | ||
520 | <event keycode="T" unicode="0x442" pressed="false"/> | ||
521 | </map> | ||
522 | <map keycode="U" pressed="false"> | ||
523 | <event keycode="U" unicode="0x443" pressed="false"/> | ||
524 | </map> | ||
525 | <map keycode="V" pressed="false"> | ||
526 | <event keycode="V" unicode="0x432" pressed="false"/> | ||
527 | </map> | ||
528 | <map keycode="W" pressed="false"> | ||
529 | <event keycode="W" unicode="0x448" pressed="false"/> | ||
530 | </map> | ||
531 | <map keycode="X" pressed="false"> | ||
532 | <event keycode="X" unicode="0x447" pressed="false"/> | ||
533 | </map> | ||
534 | <map keycode="Y" pressed="false"> | ||
535 | <event keycode="Y" unicode="0x44B" pressed="false"/> | ||
536 | </map> | ||
537 | <map keycode="Z" pressed="false"> | ||
538 | <event keycode="Z" unicode="0x437" pressed="false"/> | ||
539 | </map> | ||
540 | </state> | ||
541 | |||
542 | </keymap> | ||
diff --git a/share/zkb/zkb.xml.sample b/share/zkb/zkb.xml.sample new file mode 100644 index 0000000..7fc07a9 --- a/dev/null +++ b/share/zkb/zkb.xml.sample | |||
@@ -0,0 +1,55 @@ | |||
1 | <keymap autorepeat-delay="400" autorepeat-period="80" author="keyzcfg"> | ||
2 | <label name="EN" state="km0:*"/> | ||
3 | <label name="BG" state="km1:*"/> | ||
4 | <include file="en.xml" prefix="km0"/> | ||
5 | <include file="bg.xml" prefix="km1"/> | ||
6 | <state name="km0:LShift"> | ||
7 | <map keycode="Middle" pressed="true"> | ||
8 | <next-state name="km1:LShift"/> | ||
9 | </map> | ||
10 | </state> | ||
11 | |||
12 | <state name="km0:LShift-Caps"> | ||
13 | <map keycode="Middle" pressed="true"> | ||
14 | <next-state name="km1:LShift-Caps"/> | ||
15 | </map> | ||
16 | </state> | ||
17 | |||
18 | <state name="km0:LShift-Num"> | ||
19 | <map keycode="Middle" pressed="true"> | ||
20 | <next-state name="km1:LShift-Num"/> | ||
21 | </map> | ||
22 | </state> | ||
23 | |||
24 | <state name="km0:LShift-Num-Caps"> | ||
25 | <map keycode="Middle" pressed="true"> | ||
26 | <next-state name="km1:LShift-Num-Caps"/> | ||
27 | </map> | ||
28 | </state> | ||
29 | |||
30 | <state name="km1:LShift"> | ||
31 | <map keycode="Middle" pressed="true"> | ||
32 | <next-state name="km0:LShift"/> | ||
33 | </map> | ||
34 | </state> | ||
35 | |||
36 | <state name="km1:LShift-Caps"> | ||
37 | <map keycode="Middle" pressed="true"> | ||
38 | <next-state name="km0:LShift-Caps"/> | ||
39 | </map> | ||
40 | </state> | ||
41 | |||
42 | <state name="km1:LShift-Num"> | ||
43 | <map keycode="Middle" pressed="true"> | ||
44 | <next-state name="km0:LShift-Num"/> | ||
45 | </map> | ||
46 | </state> | ||
47 | |||
48 | <state name="km1:LShift-Num-Caps"> | ||
49 | <map keycode="Middle" pressed="true"> | ||
50 | <next-state name="km0:LShift-Num-Caps"/> | ||
51 | </map> | ||
52 | </state> | ||
53 | |||
54 | <state name="km0:Normal" default="true"/> | ||
55 | </keymap> | ||
diff --git a/share/zkb/zkb.xml.sample.num b/share/zkb/zkb.xml.sample.num new file mode 100644 index 0000000..667e6a5 --- a/dev/null +++ b/share/zkb/zkb.xml.sample.num | |||
@@ -0,0 +1,55 @@ | |||
1 | <keymap autorepeat-delay="400" autorepeat-period="80" author="keyzcfg"> | ||
2 | <label name="EN" state="km0:*"/> | ||
3 | <label name="BG" state="km1:*"/> | ||
4 | <include file="en.xml" prefix="km0"/> | ||
5 | <include file="bg.xml" prefix="km1"/> | ||
6 | <state name="km0:LShift"> | ||
7 | <map keycode="4173" pressed="true"> | ||
8 | <next-state name="km1:LShift"/> | ||
9 | </map> | ||
10 | </state> | ||
11 | |||
12 | <state name="km0:LShift-Caps"> | ||
13 | <map keycode="4173" pressed="true"> | ||
14 | <next-state name="km1:LShift-Caps"/> | ||
15 | </map> | ||
16 | </state> | ||
17 | |||
18 | <state name="km0:LShift-Num"> | ||
19 | <map keycode="4173" pressed="true"> | ||
20 | <next-state name="km1:LShift-Num"/> | ||
21 | </map> | ||
22 | </state> | ||
23 | |||
24 | <state name="km0:LShift-Num-Caps"> | ||
25 | <map keycode="4173" pressed="true"> | ||
26 | <next-state name="km1:LShift-Num-Caps"/> | ||
27 | </map> | ||
28 | </state> | ||
29 | |||
30 | <state name="km1:LShift"> | ||
31 | <map keycode="4173" pressed="true"> | ||
32 | <next-state name="km0:LShift"/> | ||
33 | </map> | ||
34 | </state> | ||
35 | |||
36 | <state name="km1:LShift-Caps"> | ||
37 | <map keycode="4173" pressed="true"> | ||
38 | <next-state name="km0:LShift-Caps"/> | ||
39 | </map> | ||
40 | </state> | ||
41 | |||
42 | <state name="km1:LShift-Num"> | ||
43 | <map keycode="4173" pressed="true"> | ||
44 | <next-state name="km0:LShift-Num"/> | ||
45 | </map> | ||
46 | </state> | ||
47 | |||
48 | <state name="km1:LShift-Num-Caps"> | ||
49 | <map keycode="4173" pressed="true"> | ||
50 | <next-state name="km0:LShift-Num-Caps"/> | ||
51 | </map> | ||
52 | </state> | ||
53 | |||
54 | <state name="km0:Normal" default="true"/> | ||
55 | </keymap> \ No newline at end of file | ||