Compare commits

..

827 Commits

Author SHA1 Message Date
Mark Müller
3af10285b7 squeekboard-test-layout: correct dependencies and version for clap argument parsing 2019-12-13 21:37:50 +01:00
Mark Müller
53997abc46 added librust-clap-dev to debian/control 2019-12-08 21:14:56 +01:00
Mark Müller
34765be22e squeekboard-test-layout: add argument parsing and some more output 2019-12-08 18:29:54 +01:00
Dorota Czaplejewicz
8b4c643d3e Merge branch 'german-wide-keyboard-layout' into 'master'
layout: add German wide layout

See merge request Librem5/squeekboard!271
2019-12-07 14:39:43 +00:00
Mark Müller
358b25c431 layout: add German wide layout 2019-12-07 14:39:43 +00:00
David Boddie
2749fdb686 Merge branch 'click' into 'master'
Switch layout on click

Closes #157

See merge request Librem5/squeekboard!266
2019-12-05 23:49:37 +00:00
David Boddie
8e7909e877 Merge branch 'stable' into 'master'
keycodes: Sort to eliminate runtime indeterminism

See merge request Librem5/squeekboard!268
2019-12-05 22:20:43 +00:00
Dorota Czaplejewicz
afaacd3f68 Merge branch '1.4' into 'master'
Release 1.4.0 "Nacelle"

See merge request Librem5/squeekboard!273
2019-12-02 19:53:20 +00:00
Dorota Czaplejewicz
6a164d8119 Release 1.4.0 "Nacelle"
Major changes:

- "text" property for layouts
- adjusting to user's color scheme
2019-12-02 19:40:14 +00:00
Dorota Czaplejewicz
3c45e3e53c switcher: Switch layout on menu item click 2019-11-30 15:14:45 +00:00
Dorota Czaplejewicz
cdf263d984 Merge branch 'translation-and-minor-layout-fixes' into 'master'
translation: Japanese and minor layout fixes

See merge request Librem5/squeekboard!264
2019-11-30 12:22:45 +00:00
Mark Müller
2ddfcfaff0 translation: Japanese and minor layout fixes 2019-11-30 12:22:45 +00:00
Dorota Czaplejewicz
a901c85bcb Merge branch 'themes' into 'master'
Use appropriate styling for layouts

See merge request Librem5/squeekboard!253
2019-11-30 11:08:08 +00:00
David Boddie
fdbbe8f126 Merge branch 'settings' into 'master'
Implement the word-of-mouth layout selection

See merge request Librem5/squeekboard!260
2019-11-29 18:19:17 +00:00
David Boddie
f284627beb Merge branch 'release' into 'master'
Use Cargo release flag

See merge request Librem5/squeekboard!256
2019-11-29 15:33:00 +00:00
Dorota Czaplejewicz
d45724c462 Merge branch 'leave' into 'master'
pointer: Release button when window is left

Closes #46

See merge request Librem5/squeekboard!262
2019-11-29 13:47:48 +00:00
Dorota Czaplejewicz
93d0dcdc99 Merge branch 'text' into 'master'
Text property

Closes #153

See merge request Librem5/squeekboard!257
2019-11-28 09:19:30 +00:00
Dorota Czaplejewicz
b252f7659b rust: Be compatible with older Rust 2019-11-27 16:52:50 +00:00
Dorota Czaplejewicz
af6ad1fce6 buttons: Accept "text" and drop xkb keysym derivation 2019-11-27 16:52:50 +00:00
Dorota Czaplejewicz
4ee8a91dfe build: Bring back squeekboard as a first class executable
With styles no longer being inconsistent, there's no need to override styles by default. The override script remains for PureOS packaging purposes.
2019-11-27 16:37:44 +00:00
Dorota Czaplejewicz
6d5f793718 util: Include Result logger 2019-11-27 16:31:24 +00:00
Dorota Czaplejewicz
59f6173282 theme: Use a matching layout theme for any widget theme
Dedicated styling is now possible for themes which have a corresponding style-theme.css file. Adwaita:dark gets one, whereas other themes use the new generic fallback theme.
2019-11-27 16:30:32 +00:00
Dorota Czaplejewicz
3aec821f92 Merge branch 'errors' into 'master'
Better layout checking

Closes #131

See merge request Librem5/squeekboard!255
2019-11-27 16:22:08 +00:00
Dorota Czaplejewicz
3ac4caa3b9 keycodes: Sort to eliminate runtime indeterminism 2019-11-27 16:18:36 +00:00
Dorota Czaplejewicz
80ac591535 Merge branch 'deadkey' into 'master'
Bugfix release 1.3.2: work around sending keycode 0

See merge request Librem5/squeekboard!267
2019-11-26 15:55:10 +00:00
Dorota Czaplejewicz
579ba8ab87 Release 1.3.2 2019-11-26 15:38:32 +00:00
Dorota Czaplejewicz
5a262242a3 keymap: Work around sending keycode 0
If keycode 0 resolves to a letter, the the press is ignored by the compositor. This works around the bug.
2019-11-26 15:35:22 +00:00
Dorota Czaplejewicz
034570bfa0 readme: Update language selection 2019-11-21 18:57:34 +00:00
Dorota Czaplejewicz
1abca0a44e settings: Fetch current layout as the first item 2019-11-21 18:57:34 +00:00
Dorota Czaplejewicz
23693521b7 popover: Don't change "current" field on language settings, change order
Also stops crashes when sources list is empty.
2019-11-21 18:57:09 +00:00
Dorota Czaplejewicz
bb18e60754 Merge branch 'release1' into 'master'
Release 1.3.1

See merge request Librem5/squeekboard!265
2019-11-20 22:24:02 +00:00
Dorota Czaplejewicz
35bc163107 Release 1.3.1
Fixing layout issues and building failures due to tests taking a long time.
2019-11-20 22:13:31 +00:00
Dorota Czaplejewicz
0179507254 readme: Update cargo.sh usage 2019-11-20 14:32:42 +00:00
Dorota Czaplejewicz
0c7e77a05f pointer: Release button when window is left 2019-11-20 13:17:47 +00:00
Dorota Czaplejewicz
317d8a58dc Merge branch 'translations' into 'master'
translations: Updated pl and en with new layouts

See merge request Librem5/squeekboard!261
2019-11-20 12:26:39 +00:00
Dorota Czaplejewicz
89b3ab9a81 translations: Updated pl and en with new layouts 2019-11-20 12:12:07 +00:00
Mark Müller
8690808a29 layouts: Correct xkb symbols usage 2019-11-20 11:18:02 +00:00
Dorota Czaplejewicz
be4ac32477 Merge branch '153-fix-German-layout-xkb-buttons-without-keycode-property' into 'master'
German layout: Correct xkb symbols usage

See merge request Librem5/squeekboard!251
2019-11-20 11:15:18 +00:00
Mark Müller
5068f36d9d German layout: Correct xkb symbols usage 2019-11-20 11:15:18 +00:00
Dorota Czaplejewicz
8c48e96f50 Merge branch 'codes' into 'master'
Language code fixes

See merge request Librem5/squeekboard!258
2019-11-20 11:12:47 +00:00
Dorota Czaplejewicz
f15619287a Merge branch 'de' into 'master'
DE fixes

See merge request Librem5/squeekboard!259
2019-11-20 10:47:34 +00:00
Dorota Czaplejewicz
eb5c28e77f translation: Use right codes in German 2019-11-20 10:25:56 +00:00
Dorota Czaplejewicz
7fb34feaf8 translations: Use the correct code for Norwegian 2019-11-20 10:24:31 +00:00
Dorota Czaplejewicz
20a6cf52ac layouts: Rename ja+kana to jp+kana 2019-11-20 10:23:05 +00:00
Dorota Czaplejewicz
c566d8853e translations: Register Spanish 2019-11-20 10:21:41 +00:00
Dorota Czaplejewicz
0beddc6856 Merge branch 'patch-8' into 'master'
translations: Spanish

See merge request Librem5/squeekboard!246
2019-11-20 10:11:48 +00:00
Dorota Czaplejewicz
0adde1004f cargo: Use release mode for release builds 2019-11-19 13:50:36 +00:00
Dorota Czaplejewicz
9b271a6919 devel: Package squeekboard-test-layout 2019-11-19 12:22:24 +00:00
Dorota Czaplejewicz
1db561d33a build: Handle output files better 2019-11-19 12:15:08 +00:00
Dorota Czaplejewicz
3170a0b615 Merge branch 'renderer' into 'master'
Renderer reworks

See merge request Librem5/squeekboard!238
2019-11-19 10:34:47 +00:00
Dorota Czaplejewicz
9571adb107 tests: Executable for testing layouts 2019-11-19 09:47:32 +00:00
Dorota Czaplejewicz
f834f174d8 cargo: Copy target with properties, find filename automatically 2019-11-19 09:35:32 +00:00
Dorota Czaplejewicz
3c0b142c4f warnings: Print at runtime, crash at test time 2019-11-19 08:29:57 +00:00
Mark Müller
4f28e3413a langs: add de-DE for switcher 2019-11-19 00:10:35 +01:00
Mark Müller
291be9fa79 Update de-DE.txt 2019-11-18 22:58:27 +00:00
Mark Müller
fd5d060eee langs: add de-DE for switcher 2019-11-18 22:56:47 +01:00
Dorota Czaplejewicz
cffe07521e Merge branch 'prebuild_tests' into 'master'
Prebuild tests

See merge request Librem5/squeekboard!250
2019-11-17 15:14:50 +00:00
Dorota Czaplejewicz
36af546362 tests: Bump timeout for the execution of all unit tests 2019-11-17 15:06:07 +00:00
Dorota Czaplejewicz
0da848a5a0 tests: Use correct test compilation command 2019-11-17 14:56:25 +00:00
Dorota Czaplejewicz
8c9ae98bda Merge branch 'release' into 'master'
Release 1.3.0

See merge request Librem5/squeekboard!247
2019-11-16 15:49:58 +00:00
Dorota Czaplejewicz
7cc8eecd26 Release 1.3.0 2019-11-16 15:40:56 +00:00
uzanto
ef025509ba translations: Spanish 2019-11-15 20:57:24 +00:00
Dorota Czaplejewicz
3f6bb7f60b Merge branch 'fi' into 'master'
layouts: Correct most unneeded xkb symbols usage

See merge request Librem5/squeekboard!245
2019-11-15 16:50:35 +00:00
Dorota Czaplejewicz
d7ee2f4c3c layouts: Correct most unneeded xkb symbols usage 2019-11-15 15:11:12 +00:00
Dorota Czaplejewicz
98f14d3e81 Merge branch 'fix_swedish_layout' into 'master'
Fix åäö in Swedish layout

See merge request Librem5/squeekboard!244
2019-11-15 15:00:19 +00:00
Dorota Czaplejewicz
02ec745856 Merge branch 'update-copyright' into 'master'
Update copyright information

See merge request Librem5/squeekboard!241
2019-11-15 14:33:23 +00:00
Andreas Rönnquist
6ac17bfde5 Fix åäö in Swedish layout 2019-11-15 15:28:36 +01:00
Dorota Czaplejewicz
d8cb6ab383 Merge branch 'remove-old-files' into 'master'
Remove unused files

See merge request Librem5/squeekboard!242
2019-11-15 13:52:56 +00:00
Dorota Czaplejewicz
db52a842b2 Merge branch 'caches' into 'master'
Fix leaks

See merge request Librem5/squeekboard!237
2019-11-15 13:50:29 +00:00
Dorota Czaplejewicz
ad8c918e1a Merge branch 'style' into 'master'
Use dark style by default

See merge request Librem5/squeekboard!239
2019-11-15 13:49:28 +00:00
David Boddie
8191324e46 Remove unused files 2019-11-15 01:25:52 +01:00
David Boddie
6777f1b4b7 Update copyright information 2019-11-15 00:53:41 +01:00
Dorota Czaplejewicz
0bfaa8cd7a debian: Wrap squeekboard in theme selector
This works around https://source.puri.sm/Librem5/squeekboard/issues/151 by providing a dark style to match the dark style of the layouts.
2019-11-13 14:07:23 +00:00
Dorota Czaplejewicz
238900f01a Merge branch 'readme' into 'master'
hacking: Clarify dev env and testing

See merge request Librem5/squeekboard!231
2019-11-13 13:44:03 +00:00
Dorota Czaplejewicz
e47ec16293 Merge branch 'fi' into 'master'
Finnish layout

See merge request Librem5/squeekboard!240
2019-11-12 14:51:44 +00:00
Dorota Czaplejewicz
6fe08967f6 fi: add tests 2019-11-12 14:44:37 +00:00
Dorota Czaplejewicz
71d2df8b2a Merge branch 'rename-nb-layout-to-no' into 'master'
Rename the nb layout to no, fixing input source selection

See merge request Librem5/squeekboard!233
2019-11-11 19:36:58 +00:00
David Boddie
8024998a4b Rename the nb layout to no, fixing input source selection 2019-11-11 19:36:58 +00:00
Dorota Czaplejewicz
ea4bf3de29 tools: A theme override wrapper useful for the Librem5 2019-11-11 16:49:21 +00:00
David Boddie
87d368878b Merge branch 'rusty_popup' into 'master'
language selection popup

See merge request Librem5/squeekboard!190
2019-11-08 15:00:04 +00:00
Dorota Czaplejewicz
55584e27fa translations: Filled out Polish 2019-11-08 10:21:35 +00:00
Dorota Czaplejewicz
9f88660d99 locale: Add translations for layout names
Pulled in some Unix-specific code from https://github.com/rust-locale/locale_config to reduce dependencies.

First reason to reduce dependencies: gettext-rs is not in Debian. Copying gettext-sys might have made sense, but the interface is somewhat confusing.

For translating a couple identifiers, detection and some hand-rolled hash map is all that is needed, and the option to move to gettext later remains.

locale_config has been stripped of the lazy_static dependency, which, messing with the strtup sequence, might be a source of debugging woes. Plus setting language once in the beginning is somewhat inflexible regarding runtime changes.
2019-11-08 10:21:27 +00:00
Dorota Czaplejewicz
c096698ec1 renderer: Remove unused ascii_font 2019-11-07 14:13:27 +00:00
Dorota Czaplejewicz
3aaaed3bae renderer: Clean up EekColor & label 2019-11-07 14:10:20 +00:00
Dorota Czaplejewicz
f1c76a0ca4 Don't leak CSS 2019-11-06 15:46:53 +00:00
Dorota Czaplejewicz
b78c3ad131 Try to free keymaps 2019-11-06 14:51:54 +00:00
Dorota Czaplejewicz
b6dfb20fec cache: Remove keyboard cache 2019-11-06 14:45:33 +00:00
Dorota Czaplejewicz
7d18f81a30 Remove unused surface caches 2019-11-06 14:32:23 +00:00
Dorota Czaplejewicz
959f5fbfc9 Merge branch 'drop-desktop-icon' into 'master'
Drop the desktop entry icon

See merge request Librem5/squeekboard!236
2019-11-05 17:14:16 +00:00
Adrien Plazas
c2ad03af97 Drop the desktop entry icon
The icon doesn't exist, and having one set up prevents GNOME Usage from
displaying the desfault system component one, so we better drop it.
2019-11-05 18:07:22 +01:00
Dorota Czaplejewicz
47c4119ab7 Add a popover menu to switch languages 2019-11-05 13:10:55 +00:00
Dorota Czaplejewicz
e71e843eff hacking: Define big no-nos in code style 2019-11-05 11:11:56 +00:00
Dorota Czaplejewicz
6e90c9a833 hacking: Clarify dev env and testing 2019-11-05 11:11:52 +00:00
uzanto
1134d92357 Finnish keyboard layout same as Swedish 2019-11-02 21:28:23 +00:00
David Boddie
62009762f9 Merge branch 'add_swedish_layout' into 'master'
Add Swedish keyboard layout

See merge request Librem5/squeekboard!232
2019-11-01 17:36:23 +00:00
Andreas Rönnquist
a58a18b63b Merge branch 'gusnan/squeekboard-add_swedish_layout' into 'add_swedish_layout'
Rename file, add it to resources and tests

See merge request gusnan/squeekboard!1
2019-11-01 17:08:11 +00:00
David Boddie
95022c1ac7 Rename file, add it to resources and tests 2019-11-01 16:50:13 +01:00
Andreas Rönnquist
7760b50963 Add sv keyboard layout to resources.rs 2019-11-01 16:38:36 +01:00
Andreas Rönnquist
85b79a5f8f Add Swedish keyboard layout 2019-10-31 16:31:36 +01:00
Dorota Czaplejewicz
e080d4351e Release 1.2.2 "Dark matter"
Major changes:

- wide layout mode
2019-10-30 12:41:07 +00:00
Dorota Czaplejewicz
dcd4dbf931 Merge branch 'landscape' into 'master'
Landscape

See merge request Librem5/squeekboard!216
2019-10-29 14:11:44 +00:00
Dorota Czaplejewicz
ea0926147f us: Improve height a little 2019-10-29 13:32:53 +00:00
Dorota Czaplejewicz
ce223e04e6 icons: Fix scaling to 16 units of scale 2019-10-29 13:32:53 +00:00
Dorota Czaplejewicz
ddd1c1b16b wide: Fix shift widths 2019-10-29 13:28:14 +00:00
Dorota Czaplejewicz
0f1f6531da wide: Reduce button spaces 2019-10-29 13:28:14 +00:00
Dorota Czaplejewicz
c917a1f818 layout: Keep kind metadata in loaded layouts
It will come useful for applying per-kind styling later without having to give each layout a new stylesheet
2019-10-29 13:27:54 +00:00
Dorota Czaplejewicz
afe8fd64f4 output: Take transform into account
Without handling transform, the surface was created with the wrong size on rotated displays, causing flicker before the .configure event arrived. With, it will attempt to set the right size from the start.
2019-10-29 13:21:46 +00:00
Dorota Czaplejewicz
bd3b27eceb build: Make borrowing compliant with older Rust 2019-10-29 13:21:46 +00:00
Dorota Czaplejewicz
35ad61890e layouts: Add us_wide 2019-10-29 13:21:46 +00:00
Dorota Czaplejewicz
1b1fbed7de layouts: Change type based on shape 2019-10-29 13:21:46 +00:00
Dorota Czaplejewicz
264d30d884 build: Disallow implicit int conversions 2019-10-29 13:21:46 +00:00
Dorota Czaplejewicz
38d8290b59 height: Adjust based on layer surface width 2019-10-29 13:21:46 +00:00
Dorota Czaplejewicz
254b65681a layersurface: Update from phosh 2019-10-29 13:21:46 +00:00
Dorota Czaplejewicz
fbb3824a3d height: Derive from display width 2019-10-29 13:21:46 +00:00
Dorota Czaplejewicz
24126ad4f3 wayland: Listen to output changes 2019-10-29 13:21:46 +00:00
Dorota Czaplejewicz
869a0af67f cleanup: eek-gtk.h 2019-10-29 13:21:46 +00:00
David Boddie
5281d96460 Merge branch 'renderer' into 'master'
Renderer improvements

See merge request Librem5/squeekboard!229
2019-10-28 21:49:38 +00:00
Dorota Czaplejewicz
8f7f6c05c0 renderer: Remove dependencies on renderer in button rendering functions
The rendering functions become more pure, which, once reached, will allow for better tracking of what they do and easier modularization.
2019-10-28 21:13:58 +00:00
Dorota Czaplejewicz
01fe433612 icons: Remove caching 2019-10-25 15:43:29 +00:00
Dorota Czaplejewicz
63e55ff5c4 renderer: Free temporary surfaces 2019-10-25 15:18:37 +00:00
Dorota Czaplejewicz
8d4d50cfca Merge branch 'ci_deps' into 'master'
Ci deps

See merge request Librem5/squeekboard!228
2019-10-25 09:54:38 +00:00
Dorota Czaplejewicz
dde659dbd3 ci: Delete large debug build directory early
There's no need to keep it for a long time, as its only purpose is to feed the test stage
2019-10-24 20:29:19 +00:00
Dorota Czaplejewicz
788a39f144 ci: Start test stage immediately after build_meson 2019-10-24 20:28:13 +00:00
Dorota Czaplejewicz
43e2b7b803 Merge branch 'master' into 'master'
i think in italian "," is better then "?"

See merge request Librem5/squeekboard!224
2019-10-24 18:17:58 +00:00
Antonio Pandolfo
3fb0a3a959 i think in italian "," is better then "?" 2019-10-24 18:17:58 +00:00
Dorota Czaplejewicz
bdef7b3516 Merge remote-tracking branch 'kareema/japanese-kana-keyboard-layout' into HEAD 2019-10-24 18:09:16 +00:00
Dorota Czaplejewicz
57d36e476b Merge branch 'german-keyboard-layout' into 'master'
layouts: Add German keyboard layout

See merge request Librem5/squeekboard!227
2019-10-24 18:03:23 +00:00
Mark Müller
0b5aa1ba7c layouts: Add German keyboard layout 2019-10-24 18:03:23 +00:00
David Boddie
55410a005c Merge branch 'vecset' into 'master'
Move event handling to Rust

See merge request Librem5/squeekboard!223
2019-10-24 14:03:21 +00:00
Dorota Czaplejewicz
1290fd4a1e rust: Fix old compiler compat 2019-10-23 15:11:19 +00:00
Dorota Czaplejewicz
c99efc430c presses: Move press handling to Rust
This fixes some rendering things which would happen with multiple state-sharing buttons. It also removes some interfaces exposing rows, views, layouts, and buttons, bringing the code closer to removing them from the FFI entirely.
2019-10-23 15:11:16 +00:00
Dorota Czaplejewicz
ce6c9cbea3 Merge branch 'cleanup' into 'master'
cleanup: Unused types

See merge request Librem5/squeekboard!222
2019-10-22 13:38:41 +00:00
Dorota Czaplejewicz
4cdfc30c29 Merge branch 'fallbacks' into 'master'
layouts: Simplify fallbackss handling

See merge request Librem5/squeekboard!221
2019-10-22 13:25:15 +00:00
Dorota Czaplejewicz
3b6c19401c util: Added pointer comparison struct
util::Pointer should be suitable for storing key states in bags like pressed_keys
2019-10-20 09:47:10 +00:00
Dorota Czaplejewicz
29231f7e31 cleanup: Unused types 2019-10-20 09:47:10 +00:00
Mark Müller
76b8a61d0a layout: change switch button label 2019-10-19 23:36:03 +02:00
Mark Müller
d62abc2f12 layouts: Add Japanese Kana keyboard layout 2019-10-19 21:30:23 +02:00
Dorota Czaplejewicz
8f61a26fb4 Merge branch 'fix' into 'master'
tests: Fix automatic merge

See merge request Librem5/squeekboard!225
2019-10-19 16:53:09 +00:00
Dorota Czaplejewicz
8fd63cea80 tests: Fix automatic merge
The merge tool didn't realize that new files from one branch should have a format adhering to that of another branch.
2019-10-19 16:47:26 +00:00
Tobias Bernard
162b828c4c Merge branch 'targets' into 'master'
buttons: Buttons are next to each other, padding is visual only

Closes #110

See merge request Librem5/squeekboard!209
2019-10-18 19:14:04 +00:00
Dorota Czaplejewicz
ac58b675ef layouts: Simplify fallbackss handling 2019-10-16 09:43:41 +00:00
David Boddie
a048722a94 Merge branch 'cleanups' into 'master'
Cleanups

See merge request Librem5/squeekboard!214
2019-10-10 20:26:51 +00:00
David Boddie
a74be1b299 Merge branch 'unclone' into 'master'
util: C-wrapped data don't need to be cloneable

See merge request Librem5/squeekboard!213
2019-10-10 17:34:03 +00:00
Dorota Czaplejewicz
89b56ddccf util: C-wrapped data don't need to be cloneable 2019-10-10 16:54:02 +00:00
David Boddie
8ab3a2b8d3 Merge branch 'multicodepoint' into 'master'
Support submitting multi-codepoint sequences

Closes #96

See merge request Librem5/squeekboard!207
2019-10-10 16:30:54 +00:00
Dorota Czaplejewicz
f56c5e3879 examples: Remove stale eekboard example 2019-10-10 16:16:53 +00:00
Dorota Czaplejewicz
8eda2cd04d docs: Remove stale eekboard docs 2019-10-10 16:15:41 +00:00
Dorota Czaplejewicz
cfd2bff1aa data: Remove eekboard desktop files 2019-10-10 16:15:05 +00:00
Dorota Czaplejewicz
02501aee9e authors: Update 2019-10-10 16:13:30 +00:00
Dorota Czaplejewicz
70056b68a7 Merge branch 'undefined' into 'master'
Replace it.yaml

See merge request Librem5/squeekboard!212
2019-10-10 14:50:09 +00:00
Antonio Pandolfo
b36c48daa3 Replace it.yaml 2019-10-10 14:50:09 +00:00
Dorota Czaplejewicz
9e078be603 buttons: Buttons are next to each other, padding is visual only 2019-10-09 20:34:46 +00:00
Dorota Czaplejewicz
ac68d5d0a8 tests: Check keymap generation results 2019-10-09 16:08:50 +00:00
Dorota Czaplejewicz
b45edcd4fe tests: Emulate clicking all submitting buttons 2019-10-09 15:54:06 +00:00
Dorota Czaplejewicz
dc2bc46167 keymap: Simplified key state passing
There's no need to treat states as a shared resource before they are placed inside buttons.
2019-10-09 15:38:21 +00:00
Dorota Czaplejewicz
9cd439767e virtual_keyboard: Submit multi-codepoint strings 2019-10-09 15:13:46 +00:00
Dorota Czaplejewicz
212e55d7cf caches: Stop using due to bugginness
The button cache is storing only button outlines (not useful to us), and it only cares about active/inactive states (there are more).

This will have to be rewritten sanely, so for the time being, disabling it is not going to deal a big performance penalty.
2019-10-09 09:24:42 +00:00
Dorota Czaplejewicz
31fdde4da9 keycodes: Moved submission to Rust 2019-10-09 09:23:06 +00:00
Dorota Czaplejewicz
10bad4ebe3 warnings: Fix and silence 2019-10-09 08:15:03 +00:00
Dorota Czaplejewicz
da5a83f367 action: Rename file to action.rs 2019-10-09 08:11:28 +00:00
Dorota Czaplejewicz
ef38fd3e64 symbol: Eliminate in favor of Action 2019-10-09 08:06:17 +00:00
Dorota Czaplejewicz
46d3312c86 cleanup: Unused symbol functions 2019-10-09 08:03:39 +00:00
David Boddie
cb8d2b01af Merge branch 'highlight' into 'master'
style: Set active button color

See merge request Librem5/squeekboard!206
2019-10-08 23:50:22 +00:00
Dorota Czaplejewicz
3f3e33c853 style: Set active button color 2019-10-08 18:29:03 +00:00
David Boddie
aa3dc96986 Merge branch 'bump' into 'master'
debian: Bump distribution

See merge request Librem5/squeekboard!205
2019-10-08 11:16:05 +00:00
Dorota Czaplejewicz
aee981d9c0 debian: Bump distribution 2019-10-08 10:59:00 +00:00
David Boddie
3bede84a2d Merge branch 'silence' into 'master'
logs: Silence missing file warnings

See merge request Librem5/squeekboard!199
2019-10-04 12:15:11 +00:00
Dorota Czaplejewicz
e14d411150 logs: Silence missing file warnings 2019-10-03 12:59:26 +00:00
David Boddie
f91f000df1 Merge branch 'locklight' into 'master'
style: Add styling for locked buttons

See merge request Librem5/squeekboard!197
2019-10-03 12:52:28 +00:00
David Boddie
18f8443a9f Merge branch 'it' into 'master'
Italian keyboard

See merge request Librem5/squeekboard!196
2019-10-03 12:51:26 +00:00
Dorota Czaplejewicz
746d842dd4 Merge branch 'patch-3' into 'master'
Update es.yaml

See merge request Librem5/squeekboard!195
2019-10-03 11:37:57 +00:00
uzanto
185efb1c2a show_symbols replaced by show_eschars in eschars view and improved Catalan support 2019-10-02 20:36:54 +00:00
Dorota Czaplejewicz
a31f9b5e04 layout: Register it 2019-10-02 18:39:44 +00:00
Dorota Czaplejewicz
94aec87b5d Merge branch 'el_layout' into 'master'
layouts: Add Greek

See merge request Librem5/squeekboard!198
2019-10-02 18:02:12 +00:00
Dorota Czaplejewicz
854a9bb22e layouts: Add Greek
Greek layout created by Antonis Tsolomitis
University of the Aegean, Department of Mathematics, atsol@aegean.gr
2019-10-02 17:56:16 +00:00
Dorota Czaplejewicz
477a883885 style: Add styling for locked buttons 2019-10-02 16:32:13 +00:00
Dorota Czaplejewicz
b3a63042cb Merge branch 'undefined' into 'master'
italian keyboard

See merge request Librem5/squeekboard!193
2019-10-02 13:49:08 +00:00
uzanto
d53a683285 Update es.yaml 2019-10-01 20:50:57 +00:00
Antonio Pandolfo
27a99e2973 italian keyboard 2019-10-01 17:51:58 +00:00
David Boddie
53c64010e8 Merge branch 'style' into 'master'
style: Rename button selectors

See merge request Librem5/squeekboard!192
2019-10-01 17:23:59 +00:00
Dorota Czaplejewicz
7f704bcd61 style: Rename button selectors 2019-10-01 08:11:44 +00:00
David Boddie
1e08adb26b Merge branch 'fallbacks' into 'master'
layout: Fallback to builtin before switching layouts

See merge request Librem5/squeekboard!186
2019-09-29 16:29:47 +00:00
David Boddie
75bbb17881 Merge branch 'test_build' into 'master'
tests: Compile in advance

See merge request Librem5/squeekboard!189
2019-09-29 16:17:23 +00:00
David Boddie
58c8556058 Merge branch 'es' into 'master'
es layout: Add to resources and testing

See merge request Librem5/squeekboard!188
2019-09-29 15:56:30 +00:00
David Boddie
1c56de8698 Merge branch 'style' into 'master'
style: Avoid conflict with GTK widget names

Closes #119

See merge request Librem5/squeekboard!184
2019-09-29 15:01:32 +00:00
David Boddie
0eb0a6e8fd Merge branch 'drops' into 'master'
Drop more dead code

See merge request Librem5/squeekboard!185
2019-09-29 15:00:30 +00:00
David Boddie
9b5e0109a7 Merge branch 'style_better' into 'master'
Style better

See merge request Librem5/squeekboard!180
2019-09-29 14:28:42 +00:00
Dorota Czaplejewicz
a1b811aada tests: Compile in advance
Cargo is always trying to compile things if they are not ready yet. It caused the first test to take a lot of time, and potentially time out.
2019-09-29 09:01:09 +00:00
Dorota Czaplejewicz
1b424bd663 layout: Attempt to build xdg keymap at every load 2019-09-29 07:54:32 +00:00
Dorota Czaplejewicz
938ba53a38 es layout: Add to resources and testing 2019-09-28 21:53:24 +00:00
Dorota Czaplejewicz
1e609f4550 Merge branch 'patch-1' into 'master'
Spanish keyboard layout

See merge request Librem5/squeekboard!187
2019-09-28 21:51:50 +00:00
Dorota Czaplejewicz
e33f591a1f layouts: Test fallback order 2019-09-28 21:37:51 +00:00
uzanto
456af0f1ef Spanish keyboard layout 2019-09-28 21:27:04 +00:00
Dorota Czaplejewicz
b6d25da7c2 layout: Fallback to builtin before switching layouts
When the user-provided layout was broken or missing, the loading would proceed with the fallback layout. It tries to load the builtin one first now.
2019-09-28 21:17:32 +00:00
Dorota Czaplejewicz
288d2247da cleanup: Remove dead fullscreen mode 2019-09-28 18:29:58 +00:00
Dorota Czaplejewicz
e5eb9f0fd3 cleanup: Drop unused header 2019-09-28 18:18:44 +00:00
Dorota Czaplejewicz
908aa20036 cleanup: Drop unused EekboardContext 2019-09-28 18:17:26 +00:00
Dorota Czaplejewicz
60f1ca1408 style: Avoid conflict with GTK widget names
GTK style provider loads the theme on top of the selected CSS file. To ignore the theme, element names must be different than the predefined ones.
2019-09-28 12:11:32 +00:00
David Boddie
5ef687a722 Merge branch 'deb' into 'master'
debian: Fix build-arch

Closes #120

See merge request Librem5/squeekboard!183
2019-09-27 19:13:17 +00:00
David Boddie
86ed9a7a01 Merge branch 'spacing' into 'master'
Unhardcode spacing

See merge request Librem5/squeekboard!176
2019-09-27 17:03:48 +00:00
Dorota Czaplejewicz
4fee2fad01 debian: Fix build-arch
Some builds call the `build-arch` target instead of `build`. That causes the old `Cargo.lock` to be used.
2019-09-27 16:58:27 +00:00
David Boddie
35ba8ad81c Merge branch 'shel' into 'master'
cargo.sh fixes

Closes #118

See merge request Librem5/squeekboard!182
2019-09-27 15:18:10 +00:00
Dorota Czaplejewicz
0985724b19 shellcheck: Pass cargo.sh 2019-09-27 13:47:49 +00:00
Dorota Czaplejewicz
7aff7977fc build: Remove empty variable from cargo.sh 2019-09-27 13:47:04 +00:00
Dorota Czaplejewicz
55bb263a12 build: Fix script path detection 2019-09-27 13:27:30 +00:00
Dorota Czaplejewicz
32b85e75db Merge branch 'cargo.sh' into 'master'
Stop requiring Bash for cargo.sh

See merge request Librem5/squeekboard!181
2019-09-27 13:24:23 +00:00
Bart Ribbers
3935375d1b Stop requiring Bash for cargo.sh
There aren't actually any Bashism's used and it works fine with Busybox
compatible shells
2019-09-27 10:21:07 +02:00
David Boddie
97dd2b1096 Merge branch 'corners' into 'master'
display: Remove unused corner_radius

See merge request Librem5/squeekboard!174
2019-09-26 21:16:43 +00:00
David Boddie
de7211d1a5 Merge branch 'drop_color' into 'master'
cleanup: Unused default backgrounds

See merge request Librem5/squeekboard!179
2019-09-26 20:58:49 +00:00
David Boddie
26380ab987 Merge branch 'style' into 'master'
Style: Change classes to paths

See merge request Librem5/squeekboard!178
2019-09-26 19:57:42 +00:00
David Boddie
f898b75b9d Merge branch 'drops' into 'master'
Drop dead drawing procedures

See merge request Librem5/squeekboard!177
2019-09-26 17:28:29 +00:00
Dorota Czaplejewicz
e513cb9b54 style: Use outline name as CSS class 2019-09-26 13:28:31 +00:00
Dorota Czaplejewicz
6fd7ab7405 rendering: Generalize outline rendering 2019-09-26 12:51:45 +00:00
Dorota Czaplejewicz
15833323ae styling: Use same context for the entire rendering of a button 2019-09-26 12:51:39 +00:00
Dorota Czaplejewicz
653462721b cleanup: Unused default backgrounds 2019-09-26 12:48:22 +00:00
Dorota Czaplejewicz
2889e50507 style: Simplified layout styling
Layout background is styled in the same place as button background, and obtains the path "layout".
2019-09-26 11:10:25 +00:00
Dorota Czaplejewicz
6b15f69e00 style: Use path instead of class for key 2019-09-26 11:08:38 +00:00
Dorota Czaplejewicz
231982d7f7 Drop dead drawing procedures 2019-09-26 07:27:16 +00:00
Dorota Czaplejewicz
3bea256ca5 Appease Debian's Rust version's borrow checker 2019-09-26 07:02:06 +00:00
Dorota Czaplejewicz
4c0f23c5c1 layout: Unhardcode button and row spacing values
They are specified by each layout now
2019-09-25 19:01:38 +00:00
Dorota Czaplejewicz
27d54fb38a Merge branch 'reduce-flickr' into 'master'
Don't hide keyboard right away

See merge request Librem5/squeekboard!175
2019-09-25 18:45:22 +00:00
Your Name
3b6999f6ef Don't hide keyboard right away
instead keep it around for 200ms. This reduces flicker a lot since
the keyboard will not hide when switching through input fields in
e.g. contacts or chatty.
2019-09-25 20:38:27 +02:00
Dorota Czaplejewicz
de43d67638 display: Remove unused corner_radius 2019-09-25 18:10:58 +00:00
David Boddie
2fca71aa53 Merge branch 'cargo' into 'master'
build: Simplified the calling of cargo.sh

See merge request Librem5/squeekboard!173
2019-09-25 15:44:55 +00:00
David Boddie
7870791fef Merge branch 'deps' into 'master'
deps: Accept only bugfix version changes

See merge request Librem5/squeekboard!172
2019-09-25 15:15:34 +00:00
Tobias Bernard
83f9b580ef Merge branch 'sizes' into 'master'
layout: Improved UI layout looks

See merge request Librem5/squeekboard!167
2019-09-24 14:41:10 +00:00
Dorota Czaplejewicz
54f9e61b6a style: Make pressed button 20% lighter 2019-09-24 11:28:29 +00:00
Dorota Czaplejewicz
94b7ba1ccc layout: Improved UI layout looks 2019-09-24 11:28:29 +00:00
Dorota Czaplejewicz
e7d30d933f build: Simplified the calling of cargo.sh 2019-09-24 11:27:01 +00:00
Dorota Czaplejewicz
150fb3cf6a deps: Accept only bugfix version changes 2019-09-24 11:18:35 +00:00
Dorota Czaplejewicz
169f33c67a Merge branch 'pre-release' into 'master'
Pre release

See merge request Librem5/squeekboard!171
2019-09-24 10:52:52 +00:00
Dorota Czaplejewicz
0f5c5ef10f Bump version number 2019-09-24 10:46:41 +00:00
Dorota Czaplejewicz
6e183ccb13 cargo: Update lock 2019-09-24 10:46:21 +00:00
Guido Gunther
af0137a4fc Merge branch 'test_deb' into 'master'
ci: Build .deb

Closes #108

See merge request Librem5/squeekboard!169
2019-09-23 13:35:53 +00:00
Dorota Czaplejewicz
bb3c26b0d8 ci: Build .deb 2019-09-23 13:06:45 +00:00
Guido Gunther
6dcea4599f Merge branch 'lintian' into 'master'
debian: Silence false positive in Lintian

Closes #107

See merge request Librem5/squeekboard!170
2019-09-23 12:52:22 +00:00
Dorota Czaplejewicz
d32749d533 debian: Silence false positive in Lintian
Needed to have working repository builds
2019-09-23 10:48:40 +00:00
Dorota Czaplejewicz
36306f2eea Merge branch 'backslash' into 'master'
us: Escape backslash character

See merge request Librem5/squeekboard!168
2019-09-22 21:32:05 +00:00
Sebastian Krzyszkowiak
34a4c6ffb5 us: Escape backslash character
This fixes backslash being missing from the symbols view.
2019-09-22 00:30:35 +02:00
David Boddie
74e75d2dae Merge branch 'fixbuild' into 'master'
Fix Cargo interaction with Debian build system

See merge request Librem5/squeekboard!162
2019-09-20 19:29:13 +00:00
Dorota Czaplejewicz
a3e421db3d build: Fix Debian Cargo.toml mismatch
Debian uses a separate registry for the packages it distributes. Checksums for some Debian packages don't match anything that's available on crates.io, which is the default source of dependencies. *linked-hash-map* in particular doesn't provide any hash.

As a result, Debian's `Cargo.lock` and crates.io's `Cargo.lock` are not matching, and building is only possible with one or the other, depending on what's checked in.

As a separate issue, Debian packages are usually not checked in in multiple versions, so checking in Debian's `Cargo.lock` would result in the package not building whenever a bugfix is distributed (due to checksum changes).

This change removes the crates.io `Cargo.lock` so that a new one will be created whenever a .deb is built, solving the above. What keeps falsely passing builds from happening is `Cargo.toml` specifying no interface changes, as well as Build-Depends, which seem enough for any other Debian package.
2019-09-20 09:52:36 +00:00
Dorota Czaplejewicz
241e5c0fc6 debian: Use Debian versions of dependencies 2019-09-20 09:40:18 +00:00
Dorota Czaplejewicz
28e0c26671 build: Change dependencies to match Debian packages 2019-09-20 09:40:18 +00:00
Dorota Czaplejewicz
7d0070a155 debian: Use CARGO_HOME more like librsvg does 2019-09-20 09:37:46 +00:00
Tobias Bernard
9093226abe Merge branch 'update-symbols-button' into 'master'
Update symbols button to reflect the symbols view

See merge request Librem5/squeekboard!166
2019-09-19 14:48:58 +00:00
David Boddie
45dc51f08f Update symbols button to reflect the symbols view 2019-09-16 17:07:41 +02:00
David Boddie
b486dc8afd Merge branch 'testing' into 'master'
tests: Describe how to test

See merge request Librem5/squeekboard!165
2019-09-13 19:55:25 +00:00
David Boddie
e70a64a47e Merge branch 'cleanups' into 'master'
Cleanups

See merge request Librem5/squeekboard!164
2019-09-13 19:52:19 +00:00
Dorota Czaplejewicz
225b243446 tests: Describe how to test 2019-09-13 15:55:26 +00:00
Dorota Czaplejewicz
db994da531 keysyms: Remove dead code 2019-09-13 15:25:48 +00:00
Dorota Czaplejewicz
d47aff357b layout: Remove dead code 2019-09-13 15:21:29 +00:00
David Boddie
96c2c2dd1f Merge branch 'test_layouts' into 'master'
Test layouts

See merge request Librem5/squeekboard!163
2019-09-13 15:12:46 +00:00
Dorota Czaplejewicz
c8cc5b1997 layout: Bundle number layout 2019-09-13 09:11:20 +00:00
Dorota Czaplejewicz
edb28cb859 tests: Verify all bundled layouts 2019-09-13 09:09:17 +00:00
Dorota Czaplejewicz
b07689939b Merge branch 'fixbuild' into 'master'
build: Fix cargo behaviour

See merge request Librem5/squeekboard!161
2019-09-12 11:32:16 +00:00
Dorota Czaplejewicz
6072e5768a build: Fix cargo behaviour
Cargo caused .deb builds to crash by storing its data in $HOME.

https://www.debian.org/doc/debian-policy/ch-source.html#main-building-script-debian-rules says TMP_DIR may be used freely, so that's where Cargo will keep its stuff now.
2019-09-12 11:26:03 +00:00
David Boddie
fe8d66a635 Merge branch 'autokeysym' into 'master'
Unicode key name -> keysym conversion

See merge request Librem5/squeekboard!160
2019-09-11 15:20:44 +00:00
David Boddie
c8658b00e3 Merge branch 'warnings' into 'master'
warnings: Fix some C stuff

See merge request Librem5/squeekboard!159
2019-09-11 14:58:19 +00:00
David Boddie
0989771a3b Merge branch 'simple_cargo' into 'master'
cargo: Allow for manual cargo invokations

See merge request Librem5/squeekboard!158
2019-09-11 13:34:42 +00:00
David Boddie
9c2acde826 Merge branch 'reparse' into 'master'
rewrite of the parsing

See merge request Librem5/squeekboard!152
2019-09-11 12:33:25 +00:00
Dorota Czaplejewicz
2352e31f01 us: Simplify by using Unicode directly 2019-09-11 12:03:57 +00:00
Dorota Czaplejewicz
8e654346a2 keysyms: Derive from Unicode labels 2019-09-11 12:03:57 +00:00
Dorota Czaplejewicz
015ba79f65 Merge branch 'fix_tests' into reparse 2019-09-11 12:03:24 +00:00
David Boddie
d6aa54f30c Merge branch 'fix_tests' into 'master'
Fix doctests

See merge request Librem5/squeekboard!157
2019-09-11 11:55:26 +00:00
Dorota Czaplejewicz
fd0d8d4244 warnings: Fix some C stuff 2019-09-10 11:06:18 +00:00
Dorota Czaplejewicz
c725cd7f14 cargo: Allow for manual cargo invokations 2019-09-10 10:17:28 +00:00
Dorota Czaplejewicz
0922d4a87a tests: Allow the building of doctests
Also allows for standalone tests and examples to be built and run with Cargo.
2019-09-10 09:34:25 +00:00
Dorota Czaplejewicz
51562d5185 Fix imservice docstring 2019-09-10 09:27:21 +00:00
Dorota Czaplejewicz
ed8b6eec28 More float_ord docs 2019-09-10 09:27:21 +00:00
Dorota Czaplejewicz
e9c236a682 float_ord: Fix test 2019-09-10 09:27:19 +00:00
Dorota Czaplejewicz
04a47ad0af Merge branch '33-multi-touch-typing-not-yet-working' into 'master'
Resolve "Multi-touch typing not-yet working"

Closes #33

See merge request Librem5/squeekboard!135
2019-09-10 09:15:50 +00:00
Dorota Czaplejewicz
99c577be60 Merge remote-tracking branch 'upstream/master' into reparse 2019-09-10 09:11:57 +00:00
Dorota Czaplejewicz
db8340181f Merge branch '88-visual-improvements' into 'master'
Resolve colors used in "Visual Improvements"

See merge request Librem5/squeekboard!155
2019-09-10 08:16:57 +00:00
David Boddie
4f18ffd34e Resolve colors used in "Visual Improvements" 2019-09-10 08:16:56 +00:00
David Boddie
4306ec9c1e Merge branch 'drop_bitflags' into 'master'
deps: Remove bitflags

See merge request Librem5/squeekboard!156
2019-09-09 20:16:44 +00:00
Dorota Czaplejewicz
31c12e5182 layout: Convert numbers to yaml 2019-09-09 19:10:42 +00:00
Dorota Czaplejewicz
521796a46d deps: Remove bitflags
This removes the need to use a modified copy and makes running tests easier.
2019-09-09 19:00:40 +00:00
Dorota Czaplejewicz
a187221d3f Convert nb layout to yaml 2019-09-09 16:35:21 +00:00
Dorota Czaplejewicz
583b546e81 Fix CI error 2019-09-09 15:49:25 +00:00
Dorota Czaplejewicz
aa9523338f Merge branch 'buttonlists' into reparse 2019-09-09 15:11:59 +00:00
Dorota Czaplejewicz
0ed66e0eab locked: Use keys instead of buttons 2019-09-09 13:54:55 +00:00
Dorota Czaplejewicz
6523275b6a views: Change based on layout file 2019-09-09 13:25:03 +00:00
David Boddie
b9e9ca368a Merge branch 'cargo' into 'master'
rust: Use Cargo to build the Rust portion

See merge request Librem5/squeekboard!147
2019-09-07 17:52:24 +00:00
Dorota Czaplejewicz
c4886e362a Merge branch 'dorota.czaplejewicz/squeekboard-cargo' into 'cargo'
Add new meson and current ninja to the build dependencies

See merge request dorota.czaplejewicz/squeekboard!8
2019-09-07 11:37:42 +00:00
David Boddie
fc5f671e57 Add new meson and current ninja to the dependencies 2019-09-06 22:15:02 +02:00
David Boddie
035ecd6df1 Merge branch 'clean' into 'master'
cleanup: Vala bindings

See merge request Librem5/squeekboard!154
2019-09-04 12:46:42 +00:00
Dorota Czaplejewicz
26d1a6047c Merge branch 'fixes' into reparse 2019-09-04 10:18:53 +00:00
Dorota Czaplejewicz
60a89b6c3f Merge branch 'wrapping' into reparse 2019-09-04 10:01:22 +00:00
Dorota Czaplejewicz
b84c402c4a WIP
WIP

WIP: keymap generation test passes

meta: Update features and version

WiP: cargo.lock

WIP: don't crash

WIP: no outlines

parsing: New tests

WIP: base level works

WIP: remove old keyboard

symbols correctly input

WIP: lodaing files

WIP: fallback works

Valid fallback
2019-09-04 09:44:31 +00:00
Dorota Czaplejewicz
2579d2fea9 cleanup: Vala bindings 2019-09-04 09:21:55 +00:00
David Boddie
c75ed9b230 Merge branch 'kill_tooltip' into 'master'
tooltips: Remove

See merge request Librem5/squeekboard!150
2019-09-02 14:58:02 +00:00
David Boddie
789e8b6bff Merge branch 'buttonlists' into 'master'
Buttonlists

See merge request Librem5/squeekboard!145
2019-09-02 14:42:19 +00:00
David Boddie
633d15c438 Merge branch 'fixes' into 'master'
layout: Remove unused C functions

See merge request Librem5/squeekboard!151
2019-09-02 11:24:54 +00:00
Dorota Czaplejewicz
baabcb1400 layout: Remove unused C functions 2019-09-01 11:42:02 +00:00
Dorota Czaplejewicz
c16bbb9e7f Merge branch 'fix-number-layout' into 'master'
Adjust width and height of keypad geometry

See merge request Librem5/squeekboard!149
2019-08-31 12:31:45 +00:00
Dorota Czaplejewicz
623181cc34 tooltips: Remove 2019-08-31 12:18:55 +00:00
Dorota Czaplejewicz
76b5104fb7 Merge branch 'improve-styling' into 'master'
Apply symbol names to widget paths, add styles

See merge request Librem5/squeekboard!148
2019-08-31 12:16:03 +00:00
Dorota Czaplejewicz
6c0a642abf Store key instead of button in pressed lists 2019-08-31 11:30:51 +00:00
Dorota Czaplejewicz
132435a9c8 Drop callback iteration for button finding 2019-08-31 11:30:51 +00:00
David Boddie
521bcfc484 Adjust width and height of keypad geometry 2019-08-30 15:16:46 +00:00
Dorota Czaplejewicz
3413021d30 rust: Use Cargo to build the Rust portion
Pros: Ability to use Rust libraries from crates.io
Problems: Need to lock library versions and document their reproducible building, either via Cargo.lock or vendoring.
2019-08-30 09:00:34 +00:00
David Boddie
ffc64c6d56 Apply symbol names to widget paths, add styles 2019-08-29 21:02:35 +00:00
David Boddie
79672f3a2d Merge branch 'nodisplay' into 'master'
desktop file: Use NoDisplay=true

See merge request Librem5/squeekboard!143
2019-08-29 16:18:55 +00:00
David Boddie
e1d5731466 Merge branch 'wrapping' into 'master'
ffi: Use a generic wrapper for opaque Rust structs

See merge request Librem5/squeekboard!144
2019-08-29 15:37:57 +00:00
Dorota Czaplejewicz
09deef2d6c Merge branch 'fix-formatting' into 'master'
Fix code formatting

See merge request Librem5/squeekboard!146
2019-08-29 15:03:14 +00:00
David Boddie
83907af456 Fix code formatting 2019-08-29 14:52:10 +00:00
Dorota Czaplejewicz
878b7ed18e ffi: Use a generic wrapper for opaque Rust structs 2019-08-29 13:33:04 +00:00
David Boddie
e6f3b9e5be Merge branch 'layouts' into 'master'
Layouts

See merge request Librem5/squeekboard!141
2019-08-29 12:19:42 +00:00
Dorota Czaplejewicz
75992ff13f Check for button position more in Rust
The check against fitting inside the Layout was removed: as an optimization it is unneeded, as the actual search must be optimized to be quick. In addition, the view bounds don't correspond to anything physical as long as negative offsets are allowed.
2019-08-29 12:19:42 +00:00
Dorota Czaplejewicz
2d7dddd505 Merge branch '56-key-stays-pressed-when-the-keyboard-hides-during-a-keypress' into 'master'
Resolve "Key stays pressed when the keyboard hides during a keypress"

Closes #56

See merge request Librem5/squeekboard!138
2019-08-29 11:50:16 +00:00
Dorota Czaplejewicz
afe0ed1674 Merge branch 'adjust-extended-layout-height' into 'master'
Adjust height of the extended keyboard layout

See merge request Librem5/squeekboard!142
2019-08-29 10:20:26 +00:00
David Boddie
b9ab4288d7 Try releasing old touches and only letting new ones be dragged 2019-08-28 15:53:57 +00:00
Guido Günther
d816cc261a desktop file: Use NoDisplay=true
There's no point in having the keyboard in the list of installed
applications and it has no icon either.
2019-08-28 15:41:38 +02:00
David Boddie
2e2ae96114 Adjust height of the extended keyboard layout 2019-08-28 14:34:20 +02:00
David Boddie
ec7e7c3f8b Merge branch 'iters' into 'master'
layout: Place items using simple loops

See merge request Librem5/squeekboard!140
2019-08-28 12:31:59 +00:00
Dorota Czaplejewicz
4a61ab269b layout: Place items using simple loops
The C version of looping over buttons and other items was weakly typed, causing runtime errors, and also C doesn't know how to iterate in abstract, so it was full of callbacks with user-defined data. Moving this to Rust, iteration is made of simple loops, and compile-time type-checked, at the cost of some more verbose code.
2019-08-28 09:41:33 +00:00
Dorota Czaplejewicz
5551ed2bd2 Merge branch 'remove-debugging-code' into 'master'
Remove debugging code

See merge request Librem5/squeekboard!139
2019-08-28 06:31:50 +00:00
David Boddie
0da02aab21 Remove debugging code 2019-08-27 20:24:49 +00:00
David Boddie
1ae8d072a6 Release buttons directly when unmapping the keyboard 2019-08-27 20:04:11 +00:00
Dorota Czaplejewicz
531a87825c Merge branch 'improve-run-time-error-reporting' into 'master'
Improve error reporting for keys and keymaps

See merge request Librem5/squeekboard!136
2019-08-27 15:00:40 +00:00
Dorota Czaplejewicz
4b5bb2a507 Merge branch 'fix-nb-keyboard' into 'master'
Fix the nb symbols file and extended layout

See merge request Librem5/squeekboard!137
2019-08-27 14:58:12 +00:00
David Boddie
e61a3a6fe8 Remove unnecessary assignment 2019-08-26 21:13:04 +00:00
David Boddie
087da5cd9e Enable and respond to all touch events 2019-08-26 20:57:31 +00:00
David Boddie
1a5f7dd907 Improve error reporting for keys and keymaps 2019-08-26 22:47:23 +02:00
David Boddie
d38c030ee6 Update keyboards to new XML format 2019-08-26 20:38:36 +00:00
David Boddie
2042ddf08e Fix the nb symbols file and extended layout 2019-08-26 19:55:35 +00:00
David Boddie
1cf242a9df Merge branch 'eekkey' into 'master'
EekKey improvements/cleanups

See merge request Librem5/squeekboard!132
2019-08-26 19:30:44 +00:00
Dorota Czaplejewicz
9aa0f14494 Merge branch 'dorota.czaplejewicz/squeekboard-eekkey' into 'eekkey'
Fix null pointer dereference

See merge request dorota.czaplejewicz/squeekboard!6
2019-08-26 16:47:33 +00:00
David Boddie
a9c7d688fd Fix null pointer dereference 2019-08-26 16:53:57 +02:00
David Boddie
d2e5cdef4e Merge branch 'layout_fixes' into 'master'
Layout fixes

See merge request Librem5/squeekboard!131
2019-08-26 12:21:09 +00:00
David Boddie
607f5ed877 Merge branch '81-debian-copyright-has-bad-upstream-name-and-source-fields' into 'master'
Resolve "debian/copyright has bad Upstream-Name and Source fields"

Closes #81

See merge request Librem5/squeekboard!134
2019-08-23 20:49:55 +00:00
David Boddie
bd63ae5615 Fix Upstream-Name and Source fields 2019-08-20 15:37:35 +02:00
Dorota Czaplejewicz
79b66f81ec view: Move button finding to Rust 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
e1c57fa9f0 row: Add const 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
a64bff6aab button: Add const qualifiers where needed 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
4e9a8e4afe Move button finding to view 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
c9a580dc07 Drop keyboard 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
f479a36dbe keyboard: Remove references 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
a7e7e8fb74 element: Removed unused stuff 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
e56f1c6392 row: Move button find iteration into row 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
7caf2ef86d row: Less dense placing of buttons 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
86b72d2723 row: Move generic functions out of the C ghetto 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
c4b3a0aaaa row: Moved button sizing closer to row 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
de9c93610b keyboard: Improve docstring 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
7a06ac1ee7 keyboard: Remove scale 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
f50f8e95b1 Remove unused outline rendering function 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
2e201b67a7 Remove obsoleted and unused pieces 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
524040cf00 Remove eek-container 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
77d4f45d13 section: Elininate references 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
0d33179727 section: Moved bounds to row 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
4f8de42598 section: Move properties into Row 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
3689727fc1 serializable: Remove completely 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
fffd82b9be eektext: Remove unused file 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
6fc351d2e8 eekkey: Dropped in favor of Button
Each Button has a KeyState, which may be shared with other buttons. The list of pressed and locked buttons is used as a list of keys, causing a search for the button in the current view.
2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
5630cf31f1 section: Remove row 2019-08-18 13:22:18 +00:00
Dorota Czaplejewicz
0c83101b3f container: Drop parent reference 2019-08-18 13:22:17 +00:00
Dorota Czaplejewicz
fc683de434 keyboard: Pass the current view instead of level 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
b70afbe9eb keystate: Wrap in refconuter 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
996f681e5c keystate: Removed multiple symbols 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
eb118d67fc section: Remove row 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
725b36ba79 locking: Move to squeek_key 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
1471a61993 locking: Set lock directly on the button 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
94a76eedfd Remove marshalers 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
8566257a01 keysyms: Remove unused generated files 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
f60917e466 symbols: Removed redundant info 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
407ec97672 layout: Use correct outlines 2019-08-18 13:20:43 +00:00
Dorota Czaplejewicz
636ed0267d Merge branch 'fixes' into 'master'
Fixes

See merge request Librem5/squeekboard!129
2019-08-18 12:58:23 +00:00
David Boddie
3154125ce0 Merge branch 'strict_build' into 'master'
build: Stricter type checks

See merge request Librem5/squeekboard!130
2019-08-17 18:05:36 +00:00
Dorota Czaplejewicz
62496aa18e Merge branch 'compile_fix' into 'master'
fix compilation

See merge request Librem5/squeekboard!133
2019-08-15 08:57:34 +00:00
David Heidelberg
0b98c2cbe6 fix compilation
References: https://github.com/facebook/hhvm/issues/168 .
Same issue occurs in Gentoo with gcc 9.1

Signed-off-by: David Heidelberg <david@ixit.cz>
2019-08-15 10:53:07 +02:00
Dorota Czaplejewicz
bc82b59e47 symbols: Removed redundant info 2019-08-13 13:33:31 +00:00
Dorota Czaplejewicz
277393387c layout: Use correct outlines 2019-08-13 13:04:38 +00:00
Dorota Czaplejewicz
007ff5c366 US: Fix label on tau 2019-08-13 12:59:04 +00:00
Dorota Czaplejewicz
699e785340 Remove unused variables 2019-08-13 12:36:52 +00:00
Dorota Czaplejewicz
6081dc240a modifiers: Remove empty argument 2019-08-13 12:36:14 +00:00
Dorota Czaplejewicz
b2e9216920 build: Stricter type checks 2019-08-13 12:32:55 +00:00
Dorota Czaplejewicz
7972cb17cd Merge branch 'do-not-pass-symbol-to-key-presses' into 'master'
Do not pass the symbol to the key emitter

See merge request Librem5/squeekboard!128
2019-08-13 12:28:15 +00:00
David Boddie
73d2505c89 Do not pass the symbol to the key emitter 2019-08-13 12:24:11 +00:00
Dorota Czaplejewicz
bdde8a127e Merge branch 'update-create-key-virtual-function' into 'master'
Update create_key to match the function assigned to it

See merge request Librem5/squeekboard!127
2019-08-13 12:10:29 +00:00
David Boddie
8cf39394c5 Update create_key to match the function assigned to it 2019-08-13 12:07:24 +00:00
Dorota Czaplejewicz
ecf6957a6e Merge branch 'fix_num_layouts' into 'master'
views: Don't lay out views that are missing

See merge request Librem5/squeekboard!126
2019-08-13 12:02:07 +00:00
Dorota Czaplejewicz
d858005a68 Merge branch 'improve-drag-handling' into 'master'
Release each pressed key instead of the current pressed key

See merge request Librem5/squeekboard!125
2019-08-13 12:01:57 +00:00
Dorota Czaplejewicz
6309fa8a48 views: Don't lay out views that are missing 2019-08-13 11:59:28 +00:00
Dorota Czaplejewicz
fb8e2ec4e7 Merge branch 'eekkey' into 'master'
Redesign how keys are handled

See merge request Librem5/squeekboard!117
2019-08-12 12:10:59 +00:00
David Boddie
91d7cc1118 Release each pressed key instead of the current pressed key 2019-08-10 16:11:53 +00:00
Dorota Czaplejewicz
a072755cee layout: Use show_symbols instead of shift 2019-08-08 20:04:44 +00:00
Dorota Czaplejewicz
1cfec4de50 key: Share state between multiple keys 2019-08-08 20:04:38 +00:00
Dorota Czaplejewicz
cc3f2315a7 Use keyboards as views
Got rid of modifiers in the process. Still buggy: dragging over keys.
2019-08-08 19:56:36 +00:00
Dorota Czaplejewicz
f745223796 symbols: Stop parsing key groups 2019-08-08 19:26:25 +00:00
Dorota Czaplejewicz
25a2e95890 keyboard: Remove unused numlock and altgr masks 2019-08-08 19:26:24 +00:00
Dorota Czaplejewicz
f371b14e89 levelkeyboard: Use a layer for managing keyboard views 2019-08-08 19:26:21 +00:00
Dorota Czaplejewicz
0b6935e50c keystate: Use keycode 2019-08-08 19:18:29 +00:00
Dorota Czaplejewicz
fb93e25833 eekkey: Moved state to KeyState 2019-08-08 19:18:29 +00:00
Dorota Czaplejewicz
ad86cb531a symbol: Store symbols instead of pointers 2019-08-08 19:18:29 +00:00
Dorota Czaplejewicz
53b89aae45 symbol: Remove remains 2019-08-08 19:18:29 +00:00
Dorota Czaplejewicz
b76e43679e level: Remove level from elements 2019-08-08 19:18:29 +00:00
Dorota Czaplejewicz
077ca8fad2 level: Make keyboard the only source of level data 2019-08-08 19:18:29 +00:00
Dorota Czaplejewicz
377521c108 section: Remove unused press signals 2019-08-08 19:18:29 +00:00
Dorota Czaplejewicz
23d5f18d4a symbols matrix: Remove in favor of a levels vector 2019-08-08 19:18:28 +00:00
Dorota Czaplejewicz
c8adb45ab5 keyboard: Expose creating sections directly 2019-08-08 19:18:28 +00:00
Dorota Czaplejewicz
18163e3ecc geometry: Simplify keyboard declarations 2019-08-08 19:18:23 +00:00
Dorota Czaplejewicz
a18beca50c geometry: Move keycode to costomizations 2019-08-08 19:11:53 +00:00
Dorota Czaplejewicz
04b721aed9 geometry: Move customizations to the button table 2019-08-08 19:11:53 +00:00
Dorota Czaplejewicz
45f9353164 geometry: Use default outline by default 2019-08-08 19:11:53 +00:00
Dorota Czaplejewicz
5abe6ed6be geometry: Remove unused row element 2019-08-08 19:11:43 +00:00
Dorota Czaplejewicz
38f81e45f4 Break out symbol handling into Rust 2019-08-08 12:51:15 +00:00
Dorota Czaplejewicz
c1482c2377 Merge branch 'add-frame-rendering' into 'master'
Add frame rendering, fix style sheet to show key borders

See merge request Librem5/squeekboard!123
2019-08-05 21:20:36 +00:00
David Boddie
6bbd8f6006 Use correct style for the design 2019-08-05 21:09:27 +00:00
David Boddie
cbdd72a4b6 Merge branch 'nolayout' into 'master'
Drop layout field on the keyboard

See merge request Librem5/squeekboard!122
2019-08-05 21:02:35 +00:00
Dorota Czaplejewicz
f7d30b0df3 Clarify some arithmetic warnings 2019-08-05 17:01:22 +00:00
Dorota Czaplejewicz
3e35b7441e Drop unused variables 2019-08-05 17:01:22 +00:00
Dorota Czaplejewicz
754e79103a keyboard: Drop layout reference 2019-08-05 17:01:22 +00:00
David Boddie
d6b59d16fd Merge branch 'keyboard-signal' into 'master'
gtk-keyboard: Remove unused signal connections

See merge request Librem5/squeekboard!120
2019-08-05 14:27:09 +00:00
Dorota Czaplejewicz
a6e220a2ae Merge branch 'adjust-icon-scaling' into 'master'
Correct icon size for scaling

See merge request Librem5/squeekboard!121
2019-08-05 12:06:13 +00:00
David Boddie
0b59262e95 Add frame rendering, fix style sheet to show key borders 2019-08-05 13:39:22 +02:00
David Boddie
593946779e Correct icon size for scaling 2019-08-05 13:21:01 +02:00
Dorota Czaplejewicz
537ded4b58 Merge branch 'release-keys-when-focus-is-lost' into 'master'
Release pressed keys when dragging outside the keyboard

See merge request Librem5/squeekboard!119
2019-08-04 11:00:20 +00:00
Dorota Czaplejewicz
25a6a00f0f Merge branch 'fix-key-press-checks' into 'master'
Use keyboard's coordinate system to check for presses

See merge request Librem5/squeekboard!118
2019-08-04 10:52:58 +00:00
Dorota Czaplejewicz
8298a1412b gtk-keyboard: Remove unused signal connections 2019-08-04 10:23:57 +00:00
Dorota Czaplejewicz
47eb25d07f Merge branch 'use-css-provider' into 'master'
Use CSS provider instead of custom classes

See merge request Librem5/squeekboard!108
2019-08-04 10:21:22 +00:00
David Boddie
0057c80b2e Release pressed keys when dragging outside the keyboard
If no keys are under the touch position when dragging then release all
existing pressed keys. This fixes the problem where the last pressed key
causes events to be sent while the touch position moves outside the
keyboard extent.
2019-08-02 15:31:18 +00:00
David Boddie
da88831689 Fix key rendering to only scale once 2019-08-02 17:04:16 +02:00
David Boddie
7b6c6e51b3 Fix background rendering 2019-08-02 17:04:16 +02:00
David Boddie
42b2b3b8f6 Replace the Eek theme support with GTK classes
This brings the appearance of the keyboard basically in line with what
was there before. The background and key borders still need to be fixed
and the text and icons should probably be drawn using the style context.
2019-08-02 17:04:16 +02:00
David Boddie
64680664e3 Use a CSS provider and style context instead of the old theme support 2019-08-02 17:04:16 +02:00
David Boddie
87dd9b4374 Remove references to the removed theme classes 2019-08-02 17:04:16 +02:00
David Boddie
c7d5e8d152 Remove theme classes for future replacement 2019-08-02 17:04:16 +02:00
David Boddie
4cd15c074e Merge branch 'fixes' into 'master'
Fixes

See merge request Librem5/squeekboard!115
2019-08-02 15:03:33 +00:00
David Boddie
9bfdabdf57 Merge branch 'textproperty' into 'master'
Removed text categories

See merge request Librem5/squeekboard!114
2019-08-02 14:36:41 +00:00
David Boddie
9375bc212b Use keyboard's coordinate system to check for presses 2019-08-02 14:05:36 +00:00
Dorota Czaplejewicz
3829b52127 Merge branch 'center-keyboard' into 'master'
Center the keyboard horizontally

Closes #68

See merge request Librem5/squeekboard!104
2019-08-02 13:45:34 +00:00
David Boddie
f852cab0f9 Fix warnings, add gtk-doc strings 2019-08-02 12:49:15 +02:00
David Boddie
f53babcd68 Add gtk-doc style comment 2019-08-02 12:48:35 +02:00
David Boddie
016c1086e6 Center the keyboard horizontally
Also simplify individual key rendering to make the rendering model more
coherent.
2019-08-02 12:48:35 +02:00
Dorota Czaplejewicz
f7dd4c84b1 renderer: Render label directly 2019-08-02 09:21:38 +00:00
Dorota Czaplejewicz
c1c0cb6b31 Fix unused function 2019-08-01 20:30:57 +00:00
Dorota Czaplejewicz
e5858bf698 context: Remove vestigial key-activated 2019-08-01 20:25:07 +00:00
Dorota Czaplejewicz
b8389f6736 symbol: Simplify symbol storage 2019-08-01 20:25:01 +00:00
Dorota Czaplejewicz
6c1c979414 section: Removed multiple rows in section, row/column in key 2019-08-01 20:10:59 +00:00
Dorota Czaplejewicz
43df82355a EekKey: Remove column and row fields 2019-08-01 20:10:59 +00:00
Dorota Czaplejewicz
d8b26040f9 symbolclass: Remove with surroundings
Collaterals: Enabled strict checking of initializers, fixed scripts generating keycode mappings.
2019-08-01 20:08:37 +00:00
Dorota Czaplejewicz
bdf29bf57b symbol: forget serializing 2019-08-01 19:59:34 +00:00
Dorota Czaplejewicz
24358c39a6 Merge branch 'font_size' into 'master'
fonts: Reset font size to a constant

See merge request Librem5/squeekboard!112
2019-08-01 17:25:38 +00:00
Dorota Czaplejewicz
504285c08f fonts: Reset font size to a constant
The font size will only be affected by the scaling factor, and not by an attempt to fit the labels into buttons.

Left to do: adjust it based on CSS.
2019-08-01 17:25:38 +00:00
Dorota Czaplejewicz
b7eb4026f6 Merge branch 'fix-tests' into 'master'
Use headless init functions to prevent test breakage

See merge request Librem5/squeekboard!109
2019-08-01 17:08:24 +00:00
David Boddie
ad5e4f58bb Remove use of xvfb to check that the tests run headless 2019-08-01 18:15:42 +02:00
David Boddie
3085a10507 Merge branch 'cleanup' into 'master'
xml: Remove unused file

See merge request Librem5/squeekboard!110
2019-08-01 15:06:43 +00:00
Dorota Czaplejewicz
b5f0aa423b xml: Remove unused file 2019-08-01 14:16:01 +00:00
David Boddie
9344a13bed Use headless init functions to prevent test breakage 2019-08-01 16:00:59 +02:00
David Boddie
c8bc2c424f Merge branch 'errors' into 'master'
Errors

See merge request Librem5/squeekboard!107
2019-07-31 18:54:15 +00:00
David Boddie
46fa6d4500 Merge branch 'rust_tests' into 'master'
Rust tests

See merge request Librem5/squeekboard!106
2019-07-31 17:11:33 +00:00
David Boddie
6002774f95 Merge branch 'imservice_cleanups' into 'master'
Imservice cleanups

See merge request Librem5/squeekboard!105
2019-07-31 14:27:13 +00:00
Dorota Czaplejewicz
f7f208883c errors: Make compilation stricter 2019-07-31 14:11:49 +00:00
Dorota Czaplejewicz
5523b00442 test: Add missing gtk include 2019-07-31 14:11:35 +00:00
Dorota Czaplejewicz
c81fdb18de eekelement: Fix case falling through 2019-07-31 14:11:03 +00:00
Dorota Czaplejewicz
778543c719 rust: Add a call to Rust test framework 2019-07-31 11:20:57 +00:00
Dorota Czaplejewicz
18b8972029 bitflags: Use absolute imports
With relative import of the bitflags crate, the macros would try to fetch nonexistent paths, preventing tests form compiling.
2019-07-31 11:13:24 +00:00
Dorota Czaplejewicz
fa31f8eee1 imservice: Check pointer validity 2019-07-31 10:43:39 +00:00
Dorota Czaplejewicz
98a2e33d78 imservice: Use TryFrom for u32->enum conversions 2019-07-31 10:05:35 +00:00
Dorota Czaplejewicz
58d01bf502 imservice: Use discriminants in enums 2019-07-31 10:05:35 +00:00
Dorota Czaplejewicz
8326bd7016 rust: Create a root file for modules
The new `lib.rs` file is created to refer to all modules written in Rust. This way, only one `rustc` call is needed to compile an arbitrary amount of modules. It also converges with the way crates are structured.
2019-07-31 10:05:27 +00:00
Dorota Czaplejewicz
d5f8b0d83b Merge branch 'simplify-rendering' into 'master'
Simplify layout and rendering

See merge request Librem5/squeekboard!102
2019-07-31 09:10:57 +00:00
Dorota Czaplejewicz
e70a898af5 Merge branch 'adjust-keyboard-geometry' into 'master'
Adjust keyboard geometry

See merge request Librem5/squeekboard!103
2019-07-31 06:39:45 +00:00
Dorota Czaplejewicz
df249646bc Merge branch 'update-numeric-keypad' into 'master'
Rename keypad-related files

See merge request Librem5/squeekboard!101
2019-07-31 06:37:09 +00:00
David Boddie
35ff93258e Adjust geometry to match the compact keyboard in places 2019-07-31 00:43:39 +02:00
David Boddie
c58d034494 Adjust bounds of the keyboard to better fit it in the available space 2019-07-31 00:43:36 +02:00
David Boddie
8f1de46381 Simplify layout and rendering
Remove pre-scaling of the bounds for the keyboard and its contents.
Calculate the scale factor based on the allocation and the desired width
and height of each keyboard, using the lower value of the horizontal and
vertical scale factors.
Apply scaling in the renderer and prepare to perform centering there.
2019-07-30 21:48:36 +00:00
David Boddie
1846a67e83 Merge branch 'readme' into 'master'
readme: Change the clone URL

Closes #30

See merge request Librem5/squeekboard!100
2019-07-30 20:39:09 +00:00
David Boddie
35ac14806c Rename keypad-related files 2019-07-30 20:47:29 +02:00
Dorota Czaplejewicz
4aee4915d9 Merge branch 'generate-xkb-files' into 'master'
Generate XKB keymaps from XML instead of using pre-made ones

See merge request Librem5/squeekboard!90
2019-07-30 17:38:06 +00:00
David Boddie
5eeaa1c693 Remove unused geometry file 2019-07-30 19:28:16 +02:00
David Boddie
9b2fcf89e8 Use a test-oriented init call 2019-07-30 17:20:15 +02:00
David Boddie
e801a68f0d Add comments to explain what empty labels do 2019-07-30 16:50:23 +02:00
Dorota Czaplejewicz
ffc5628637 readme: Change the clone URL 2019-07-30 13:08:12 +00:00
Dorota Czaplejewicz
306aa89d06 Merge branch 'content_type' into 'master'
Finish up imservice state

See merge request Librem5/squeekboard!93
2019-07-30 11:44:19 +00:00
Dorota Czaplejewicz
236415cde4 Merge branch 'add-landscape-orientation' into 'master'
Add landscape orientation

See merge request Librem5/squeekboard!99
2019-07-30 11:19:41 +00:00
David Boddie
d49e0eaa1b Center the keyboard in landscape orientation 2019-07-26 22:27:56 +00:00
David Boddie
107399a531 Don't set the geometry of the window in normal use
Setting the geometry prevents the widget from getting the correct
allocation and prevents us from positioning it correctly in
landscape mode.
2019-07-26 22:26:02 +00:00
David Boddie
99a7786dc3 Remove declaration of unused variable 2019-07-26 12:01:04 +02:00
Guido Gunther
d8f48cc48b Merge branch 'use-button-size-for-icons' into 'master'
Use the standard button size for icons

See merge request Librem5/squeekboard!98
2019-07-26 08:04:53 +00:00
David Boddie
2f0beb6d3a Add a simple test of keymap generation 2019-07-25 22:25:30 +02:00
David Boddie
3ab3627ffe Remove unused keymaps 2019-07-25 22:25:30 +02:00
David Boddie
70895999c2 Generate XKB keymaps from XML instead of using pre-made ones 2019-07-25 22:25:29 +02:00
David Boddie
ce311e1bf1 Use the standard button size for icons 2019-07-25 20:14:32 +00:00
David Boddie
e9cf572a3c Only recreate the widget when the keyboard layout changes
Avoid creating a widget before there is a window to put it in.
2019-07-25 18:07:29 +00:00
David Boddie
943b2ad9f3 Merge branch 'xkb_resource_oob_read' into 'master'
Fix out of bounds memory read in get_keymap_from_resource.

See merge request Librem5/squeekboard!97
2019-07-25 13:20:35 +00:00
Piotr Tworek
f86bbb09f8 Fix out of bounds memory read in get_keymap_from_resource.
The function reads resource content into a buffer whose size matches the
size of the file contents. This buffer does not have an extra byte that
would 0 terminate this string. This is by itself is not a problem.
Unfortunately the buffer is passed to g_utf8_make_valid function with
size argument specified as -1 which means the buffer is supposed to be
NULL terminated. The end result is g_utf8_make_valid will read at least
1 byte past "contents" buffer size.

Fix this by specifying buffer size when calling g_utf8_make_valid.
2019-07-24 17:08:19 +02:00
David Boddie
1246776328 Create the keyboard surface every time it is needed
Icons are still blurry the first time the keyboard is shown after
rotation.
2019-07-24 14:04:28 +00:00
David Boddie
ea15f69e73 Render the keyboard to a subsurface of the widget 2019-07-24 13:12:57 +00:00
David Boddie
2e22bb5431 Merge branch 'fix-squeekboard-resources' into 'master'
Ensure that resources are built with the application

See merge request Librem5/squeekboard!95
2019-07-23 23:25:33 +00:00
David Boddie
a9a6e1d2b5 Ensure that resources are built with the application 2019-07-24 01:22:58 +02:00
Dorota Czaplejewicz
7e939c36cc imservice: Call show/hide directly 2019-07-23 20:26:42 +00:00
Dorota Czaplejewicz
c5d2d76ab1 imservice: Handle unavailable message 2019-07-23 20:26:42 +00:00
Dorota Czaplejewicz
622ba6e38a imservice: Handle text change cause
Nothing is being done with this information yet
2019-07-23 20:26:42 +00:00
Dorota Czaplejewicz
fad06348a7 imservice: Make imservice opaque
The structure is defined in Rust, with the intention of evaluating using Rust in this area. It's specifically not defined as repr(C), in order to encourage that. Without the repr, it was unsafe to have its members exposed in C.
2019-07-23 20:26:42 +00:00
Dorota Czaplejewicz
a6ee303123 imservice: Handle content type in Rust
This adds `bitflags.rs` from the bitflags crate.
Due to not wanting to introduce Cargo as the dependency manager yet, it's slightly modified to compile as a naked module.
2019-07-23 20:25:13 +00:00
David Boddie
4b66add65f Merge branch 'ci' into 'master'
Run tests in ci

See merge request Librem5/squeekboard!94
2019-07-23 11:29:34 +00:00
Guido Günther
79dce7c4c3 gitlab-ci: Run tests under xvfb
We create widgets so need a display.
2019-07-23 10:20:07 +02:00
Guido Günther
aff71e0e33 debian: Add test run dependencies
We need xvfb to run the tests since this involves creating GTK
widgets.
2019-07-23 10:20:02 +02:00
David Boddie
9b10f56ba6 Keep the build directory as an artifact 2019-07-23 10:18:44 +02:00
David Boddie
2391947b34 Update CI configuration to enable tests 2019-07-23 10:18:44 +02:00
David Boddie
e903150971 Enable tests, fixing the existing ones to use the current API
This also involved building a static library for the application for
tests to link to. The main application executable also links to it.
2019-07-23 10:18:44 +02:00
David Boddie
7495ec9bbb Merge branch 'remove-includes' into 'master'
Remove unnecessary X11 includes

See merge request Librem5/squeekboard!91
2019-07-20 22:00:58 +00:00
David Boddie
e25d5a84b2 Remove unnecessary X11 includes 2019-07-20 23:57:38 +02:00
David Boddie
88ade4df1b Merge branch 'add-keyboards-for-purposes' into 'master'
Add keyboards for purposes

See merge request Librem5/squeekboard!89
2019-07-20 21:44:30 +00:00
David Boddie
00c3903672 Respond to the input purpose, showing a numeric keypad if requested 2019-07-20 17:33:55 +02:00
David Boddie
c801b17ba0 Add initial files to test specialized keyboard support 2019-07-20 17:33:50 +02:00
David Boddie
9ec8d62f3f Merge branch 'respond-to-input-source-changes' into 'master'
Respond to input source changes

See merge request Librem5/squeekboard!88
2019-07-20 15:31:40 +00:00
David Boddie
b1edcfcb1b Tidy up a merge 2019-07-20 17:26:00 +02:00
David Boddie
54b0f59935 Always create a new widget for a keyboard and update it if already visible 2019-07-20 17:25:55 +02:00
David Boddie
531b09f296 Merge branch 'adapt-keyboard-for-different-levels' into 'master'
Omit keys without labels on the current level, update key definitions

See merge request Librem5/squeekboard!87
2019-07-20 15:24:09 +00:00
David Boddie
e5b6d66d60 Omit keys without labels on the current level, update key definitions 2019-07-20 17:17:37 +02:00
David Boddie
a045810af6 Merge branch 'add-built-in-keymaps' into 'master'
Add built in keymaps

See merge request Librem5/squeekboard!78
2019-07-20 14:42:51 +00:00
David Boddie
d68a8fef9a Merge branch 'resize-icons' into 'master'
Declare the correct size for icons

See merge request Librem5/squeekboard!86
2019-07-20 14:41:29 +00:00
David Boddie
9162d4291f Declare the correct size for icons 2019-07-20 14:39:47 +00:00
David Boddie
93d7699aa7 Merge branch 'make-layout-more-flexible' into 'master'
Make layout handling more flexible

See merge request Librem5/squeekboard!85
2019-07-20 14:31:26 +00:00
David Boddie
6eb63f6a4c Refactor layout code, rescale and reformat when changing level 2019-07-19 17:35:49 +02:00
David Boddie
f6d4ca0387 Place keys after symbols have been read, skipping blank keys 2019-07-19 17:35:49 +02:00
David Boddie
7b41466a77 Start to refactor keyboard section layout 2019-07-19 17:35:49 +02:00
David Boddie
18c25084db Merge branch 'merge-renderers' into 'master'
Move EekGtkRenderer features into EekRenderer

Closes #61

See merge request Librem5/squeekboard!84
2019-07-19 14:56:54 +00:00
David Boddie
a5875402ef Move EekGtkRenderer features into EekRenderer 2019-07-18 15:42:27 +02:00
David Boddie
f3ed1ba247 Merge branch 'config' into 'master'
Clean up config.h (and some other stuff)

See merge request Librem5/squeekboard!83
2019-07-18 11:11:57 +00:00
Guido Günther
633d69baca Drop HAVE_CLUTTER_GTK
We don't use it.
2019-07-17 19:50:53 +02:00
Guido Günther
dbc8cc14bc Generate config.h
This allows us to remove a lot of #ifdef's. Either we want to use
a config.h or we don't. Since we'll want it for e.g. optional gsound
support later on let's have it.
2019-07-17 19:50:53 +02:00
Guido Günther
c65583b911 Add a gitignore file
Based on the phosh one to ignore (upcoming) translations, editor
backup files and so forth.
2019-07-17 19:39:33 +02:00
Guido Günther
3d518b5757 build: Bump meson dep since we use '/' 2019-07-17 19:37:05 +02:00
David Boddie
bfa72d7f61 Merge branch 'less-flicker' into 'master'
Make redisplaying the keyboard faster

Closes #60

See merge request Librem5/squeekboard!82
2019-07-17 16:32:29 +00:00
Guido Günther
373713ba54 ServerContextService: Don't destroy widget all the time
This avoids icon theme lookups and lots of other stuff down the road.

Closes: #60
2019-07-17 17:16:35 +02:00
Guido Günther
068c325ee2 EekGtkRenderer: Use a hash table for icon theme lookups 2019-07-17 17:14:42 +02:00
Guido Günther
3b076e5e64 EekGtkRenderer: Simplify type declaration
It's 2019.
2019-07-17 17:14:42 +02:00
Guido Günther
07d6e3a0f2 ServerContextService: Don't use gtk_widget_show_all
This gives children more flexibility without using `no_show_all`.
2019-07-17 17:14:42 +02:00
David Boddie
7690ef9a1a Merge branch 'layer-shell' into 'master'
Hide/show window instead of destroying it

Closes #42

See merge request Librem5/squeekboard!76
2019-07-17 11:34:10 +00:00
Guido Günther
9974c385e5 EekboardContextService: Don't comment out property setters
This lets us keep the visible property up to date.
2019-07-17 00:44:09 +02:00
Guido Günther
8dafad80b1 ServerContextService: Check for mapped/unmapped
Visible does not tell us if the widget is actually visible on the
screen.
2019-07-17 00:44:00 +02:00
Guido Günther
93e9b2dde9 ServerContextService: Hide the widget instead of destroying it
This is quicker and makes sure we don't stack up surfaces.
2019-07-16 18:52:53 +02:00
Guido Günther
c3a54595ea layersurface: Refresh layersurface on map
If the surface gets unmapped and mapped again we have another GDK window
so we have to reconfigure the layers surface on map and destroy it on
unmap.

This will be merged back into phosh if it works out.
2019-07-16 18:52:36 +02:00
Guido Günther
95ef52fe42 ServerContextService: Remove more unused code
The whole visible/enable logic was disfunctional all the time.
What works is show_keyboard and hide_keyboard.
2019-07-16 18:47:55 +02:00
Guido Günther
c638c40a09 ServerContextService: Drop everything depending on self->was_visible
This was never used so everything depending on it was dead code.
2019-07-16 18:47:55 +02:00
Guido Günther
83d48d24ce ServerContextService: Really destroy the main window
Otherwise layer surfaces keep piling up
2019-07-16 18:47:55 +02:00
Guido Günther
d807e43929 ServerContextService: Drop unneeded code
The layer shell code handles parts of this and others are just
not needed on wayland.
2019-07-16 18:47:55 +02:00
Guido Günther
0a112be956 ServerContextService: Show keyboard when everything else is set up
This avoids some flickering.
2019-07-16 18:47:55 +02:00
Guido Günther
078efa2a6e LayerShell: Set a proper namespace 2019-07-16 18:47:55 +02:00
Guido Günther
5827827008 Update layer surface code from phosh
As of commit 77bba4fcb2d836a58ccf8913d9a514aac6cc49a2. This allows
us to split the widget creation from making it visible.
2019-07-16 18:47:55 +02:00
David Boddie
9c61d8de72 Merge branch 'dbus-prop' into 'master'
EekboardService: Properly toggle keyboard visibility on DBus

Closes #55

See merge request Librem5/squeekboard!80
2019-07-16 13:22:53 +00:00
David Boddie
f72ddc8129 Undo formatting changes 2019-07-16 14:06:49 +02:00
David Boddie
7e9c3b40bb Remove debugging code 2019-07-16 14:00:41 +02:00
David Boddie
a8371af9c0 Fall back to US layout and keymap if needed 2019-07-16 14:00:41 +02:00
David Boddie
4e11d071d9 Add a keymap for the US layout, update the US symbols 2019-07-16 14:00:41 +02:00
David Boddie
a7140705c4 Search for an xkb keymap in the resources 2019-07-16 14:00:41 +02:00
David Boddie
69986132b4 Use keysyms for the Shift modifier 2019-07-16 14:00:41 +02:00
David Boddie
3c97a3a592 Convert symbols file and update test keymap 2019-07-16 14:00:41 +02:00
David Boddie
268dda4da0 Improve symbol mapping 2019-07-16 14:00:41 +02:00
David Boddie
45f58a97b9 Update the test keymap 2019-07-16 14:00:41 +02:00
David Boddie
bdbbaf6099 Use groups to reference keysyms in the keymap 2019-07-16 14:00:41 +02:00
David Boddie
839968dc84 Try using a custom keymap 2019-07-16 14:00:41 +02:00
David Boddie
fbdc5f4a93 Stash for sharing 2019-07-16 14:00:41 +02:00
David Boddie
e5648a82a3 Remove explicit keycodes in XML, auto-generate them instead
This makes it easier to keep the geometry and symbols files in sync.
2019-07-16 14:00:41 +02:00
David Boddie
38133d326b Merge branch 'autogen.sh' into 'master'
Remove more files

See merge request Librem5/squeekboard!81
2019-07-16 11:06:55 +00:00
Guido Günther
cc00fcb5c9 Remove more files
autogen.sh is for automake and the TODO refers to eekboard.
2019-07-16 11:00:59 +02:00
Guido Günther
53f7a14717 EekboardService: Properly toggle keyboard visibility on DBus
Closes: #55
2019-07-16 10:21:59 +02:00
Guido Gunther
922495ca06 Merge branch 'remove-unused-files' into 'master'
Remove unused files and functions

See merge request Librem5/squeekboard!79
2019-07-16 07:16:29 +00:00
David Boddie
e5e2e08ff4 Merge branch 'fewer-redraws' into 'master'
keyboard: Schedule widget redraw instead of gdk_window_invalidate_rect

See merge request Librem5/squeekboard!75
2019-07-15 22:57:12 +00:00
David Boddie
c7c410210b Merge branch 'scale' into 'master'
Honor widget scale  factor

See merge request Librem5/squeekboard!56
2019-07-15 22:27:34 +00:00
David Boddie
cb7c214aa0 Merge branch 'fixes' into 'master'
Fixes

See merge request Librem5/squeekboard!74
2019-07-15 22:20:40 +00:00
David Boddie
6f5f49729c Remove unused files and functions 2019-07-15 23:45:17 +02:00
Guido Günther
94c9442de1 keyboard: Drop now unused clip_bounds_to_dirty_rectangle() 2019-07-15 17:42:32 +02:00
Guido Günther
8c044d0852 keyboard: Schedule widget redraw instead of gdk_window_invalidate_rect
The later would invaliate the drawn area again and again in a ::draw()
handler. This caused infinite redraws when e.g. a key was locked.  To
reproduce break e.g. on `eek_gtk_keyboard_real_draw()` and see how it is
invoked again and again.
2019-07-15 17:42:32 +02:00
Guido Günther
1f0cc0a5f3 keyboard: Don't leak on set_keyboard()
Unref and disconnect signals before setting a new keyboard.
2019-07-15 14:12:10 +02:00
Guido Günther
5693ce3df7 keyboard: Simplify signal disconnect
We're only keeping the signal ids around for disconnect but that only
happens in dispose so it's o.k.to just disconnect all keyboard signals
we listen to.
2019-07-15 14:12:10 +02:00
David Boddie
bcf04ab11e Merge branch 'exclusive-zone' into 'master'
LayerSurface: Make exclusive zone identical to height

Closes #53

See merge request Librem5/squeekboard!72
2019-07-15 11:55:41 +00:00
Guido Günther
086f6bd772 renderer: Only scale by output scale
The original eekboard code scaled icons by a factor. That was simplified
in c529e9ed9c but we can do away with it
completely and fetch the icons at the right size making them not blurry.
2019-07-15 13:23:16 +02:00
Guido Günther
d0fa444a0e Honor the outputs scale factor 2019-07-15 13:13:34 +02:00
Guido Günther
cd81aeb286 get_icon_surface: Add a scale argument
This will allow us to pass the output scale around
2019-07-15 13:13:34 +02:00
Guido Günther
7db33bc92e renderer: Add icons in resource bundle to the icon theme 2019-07-15 13:13:34 +02:00
Guido Günther
fb6c501e44 renderer: Use gtk_icon_theme_load_surface
This will allow us to feed in the output scale.
2019-07-15 13:12:26 +02:00
Guido Günther
ce7b398f7b LayerSurface: Make exclusive zone identical to height
Othewise we hide content beneath the keyboard.

Closes: #53
2019-07-15 12:49:11 +02:00
David Boddie
4d8d3a8109 Merge branch 'suppress-warnings' into 'master'
Suppress warning message

See merge request Librem5/squeekboard!70
2019-07-13 22:14:54 +00:00
David Boddie
a183cf8b63 Suppress warning message 2019-07-14 00:13:41 +02:00
David Boddie
f834edcf94 Merge branch 'fix-compiler-warnings' into 'master'
Fix use of inappropriate type

See merge request Librem5/squeekboard!69
2019-07-13 19:47:40 +00:00
David Boddie
17802a9408 Fix use of inappropriate type 2019-07-13 18:36:59 +02:00
David Boddie
ac1aad881c Merge branch '49-inconsistent-behaviour-of-shift-key-s-pressed-state' into 'master'
Resolve "Inconsistent behaviour of shift key's pressed state"

Closes #49

See merge request Librem5/squeekboard!66
2019-07-13 16:35:07 +00:00
David Boddie
928110a92d Merge branch 'add-missing-icon' into 'master'
Add keyboard preferences icon

See merge request Librem5/squeekboard!68
2019-07-12 21:09:49 +00:00
David Boddie
f6479fafe2 Add keyboard preferences icon 2019-07-12 23:07:01 +02:00
David Boddie
62b1c2ba84 Revert to latch behavior for letters 2019-07-12 19:54:21 +00:00
David Boddie
c0ac5e540f Merge branch 'add-key-icons' into 'master'
Add key icons

Closes #44

See merge request Librem5/squeekboard!65
2019-07-12 19:17:29 +00:00
David Boddie
fb5ec5557b Make icons smaller 2019-07-12 20:12:09 +02:00
David Boddie
74d94e6792 Merge branch 'remove-unused-xml' into 'master'
Remove unused XML from the US definitions

See merge request Librem5/squeekboard!64
2019-07-12 18:08:55 +00:00
David Boddie
63f4c6b4da Use icons for Shift and Return in the US layout 2019-07-12 20:04:50 +02:00
David Boddie
2774c1c988 Try to load icons from app resources first 2019-07-12 20:04:22 +02:00
David Boddie
469b0c0a9a Add icons to the resource manifest 2019-07-12 20:04:02 +02:00
David Boddie
2ddd217737 Add Enter and Shift icons 2019-07-12 19:16:21 +02:00
David Boddie
c4e8e34ad6 Remove unused XML from the US definitions 2019-07-12 17:15:38 +00:00
David Boddie
4dc18c0af4 Merge branch '27-period-should-not-change-when-caps-lock-is-active' into 'master'
Resolve "Period should not change when caps lock is active"

Closes #27

See merge request Librem5/squeekboard!63
2019-07-12 17:11:10 +00:00
David Boddie
55c6911b87 Remove level with > character from . key 2019-07-12 17:17:11 +02:00
David Boddie
9bf0da5409 Merge branch 'adjust-scaling' into 'master'
Reduce icon size to match platform guidelines

See merge request Librem5/squeekboard!62
2019-07-12 15:15:43 +00:00
David Boddie
7d5b2dd1de Reduce icon size to match platform guidelines 2019-07-12 16:10:31 +02:00
David Boddie
6091632e40 Merge branch 'simplify-geometry-xml' into 'master'
Simplify geometry XML

See merge request Librem5/squeekboard!61
2019-07-12 14:09:57 +00:00
David Boddie
44110fd4d9 Remove bounds for everything except the geometry element 2019-07-12 14:00:20 +00:00
David Boddie
74d76ebfeb Remove unused XML elements 2019-07-12 14:00:20 +00:00
David Boddie
760bc138b0 Test effect of setting attributes to zero 2019-07-12 14:00:20 +00:00
David Boddie
2a4763d4f3 Merge branch 'fix-bottom-margin' into 'master'
Include extra space in the window object

Closes #47

See merge request Librem5/squeekboard!60
2019-07-12 13:42:20 +00:00
David Boddie
4b92f205ef Include extra space in the window object 2019-07-12 10:30:44 +00:00
David Boddie
a5668fa1db Merge branch 'remove-pressed-key-popups' into 'master'
Remove pop-ups for pressed keys

See merge request Librem5/squeekboard!59
2019-07-11 23:42:34 +00:00
David Boddie
de39256377 Remove pop-ups for pressed keys 2019-07-11 23:39:33 +00:00
David Boddie
f53709c83d Merge branch 'fix-bottom-margin' into 'master'
Fix clipping issue at bottom of keyboard

Closes #47

See merge request Librem5/squeekboard!58
2019-07-11 23:07:01 +00:00
David Boddie
8ad0192e55 Fix clipping issue at bottom of keyboard
Closes #47.
2019-07-11 23:04:29 +00:00
David Boddie
791e454cb6 Merge branch 'functioning-views' into 'master'
Basic functioning views

See merge request Librem5/squeekboard!57
2019-07-11 22:58:50 +00:00
David Boddie
c85638be4d Use a dummy, non-emitting key to switch views 2019-07-11 19:38:02 +00:00
Guido Gunther
a61b1fdf06 Merge branch 'implement-more-view-behavior' into 'master'
Improve view behavior to more closely reflect #38

See merge request Librem5/squeekboard!55
2019-07-11 16:29:26 +00:00
David Boddie
07c25d1d91 Improve view behavior to more closely reflect #38 2019-07-11 16:29:26 +00:00
Guido Gunther
83dafd87a4 Merge branch 'copyright' into 'master'
Copyright

See merge request Librem5/squeekboard!6
2019-07-11 13:49:00 +00:00
David Boddie
25a8733957 Merge branch 'scale' into 'master'
Simplify icon rendering a bit

See merge request Librem5/squeekboard!52
2019-07-11 13:42:50 +00:00
Guido Günther
c529e9ed9c render: Simplify drawing
Instead of doing scale guessing we know that we get a properly
sized image from GTK+ so just scale it down a bit so it gets
some border within the drawing area.
2019-07-11 15:40:18 +02:00
Guido Günther
d6a8a85b5e render: Get foreground color only once 2019-07-11 15:40:18 +02:00
Guido Günther
3a945535f7 render: Remove trailing white space 2019-07-11 15:40:18 +02:00
Guido Günther
0fc4374193 gtk-renderer: Simplify 2019-07-11 15:40:18 +02:00
David Boddie
e350b4ab92 Merge branch 'some-bugfixes' into 'master'
MERGE these: Some bugfixes - the buildsystem is acting up again

See merge request Librem5/squeekboard!53
2019-07-11 13:39:56 +00:00
David Boddie
626527ee09 Merge branch 'feature-xml-resources' into 'master'
FINAL: bundle xml resources, allows running uninstalled from git repo

Closes #29 and #21

See merge request Librem5/squeekboard!49
2019-07-11 13:33:45 +00:00
David Boddie
c4a462c385 Merge branch 'ci' into 'master'
gitlab-ci: No need for our ci repository

See merge request Librem5/squeekboard!54
2019-07-11 13:16:32 +00:00
Guido Günther
706a04dbfc gitlab-ci: No need for our ci repository
Just using debian buster makes things more stable.
2019-07-11 14:31:25 +02:00
Guido Günther
7fd51af4de debian: Drop virtboard build-dependency 2019-07-11 14:31:25 +02:00
Guido Günther
c1af9b2ba4 Add dbus protocol definition
This let's us drop the virtboard build dependency.
2019-07-11 14:31:25 +02:00
Hysterical Raisins
5efb4cc58d Bundle keyboard definitions
This allows running uninstalled from a git repo

Closes: #21, #29
2019-07-11 13:40:03 +02:00
Hysterical Raisins
4b2977d601 Plug 3 leaks 2019-07-11 13:26:04 +02:00
Hysterical Raisins
2f1c1c2fb1 Remove unused variable and remove damage from botched rebase
- remove bounds it is not used.

- remove the g_clear_pointer, it does the same thing as the if-block
  above, the were both there as the result of the merge, and it is
  apparently easily overlooked

- cleanup after myself (FIXMEs)
2019-07-11 13:24:48 +02:00
David Boddie
f47ef09a1f Merge branch 'implement-basic-views' into 'master'
Implement basic keyboard views

See merge request Librem5/squeekboard!51
2019-07-11 10:24:29 +00:00
David Boddie
47041b0fac Implement basic keyboard views
Use existing concepts of levels and modifier latches and locks to
implement the three view design of issue #38.

The use of a lock to switch from letter to numbers and a latch to
handle upper and lower case has side effects, but these can be
addressed in a future commit.
2019-07-10 23:33:45 +00:00
Sebastian Krzyszkowiak
b6111b5e00 Merge branch 'fix-backspace-key' into 'master'
Specify a keyval to make the backspace key work again

Closes #45

See merge request Librem5/squeekboard!50
2019-07-10 23:12:59 +00:00
David Boddie
b8a2b2d7c8 Specify a keyval to make the backspace key work again 2019-07-11 01:09:04 +02:00
David Boddie
0765ea1b86 Merge branch 'update-symbols' into 'master'
Update symbols to more closely resemble #38

See merge request Librem5/squeekboard!48
2019-07-10 22:20:30 +00:00
David Boddie
64223704e0 Update symbols to more closely resemble #38 2019-07-10 23:50:34 +02:00
Guido Gunther
8c14763ea4 Merge branch 'theme-path' into 'master'
Drop now unused theme_path

See merge request Librem5/squeekboard!46
2019-07-10 17:09:58 +00:00
Guido Gunther
10cd93022a Merge branch 'update-icons' into 'master'
Use an icon for backspace

See merge request Librem5/squeekboard!47
2019-07-10 16:57:09 +00:00
David Boddie
d006aede6a Merge branch 'top-margin' into 'master'
Add some border at the top

Closes #28

See merge request Librem5/squeekboard!43
2019-07-10 15:46:16 +00:00
Guido Günther
b57e1ce660 Drop now unused theme_path 2019-07-10 15:39:16 +02:00
David Boddie
1b59c4dad3 Use an icon for backspace 2019-07-10 14:36:19 +02:00
David Boddie
189c721d7e Merge branch 'use_gresource' into 'master'
Use a gresource to store the css

See merge request Librem5/squeekboard!28
2019-07-10 11:36:53 +00:00
David Boddie
1ff1592f24 Merge branch 'master' into 'use_gresource'
# Conflicts:
#   src/server-context-service.c
2019-07-10 11:35:40 +00:00
Guido Günther
7f5f310bf0 Add some border at the top
Closes: #28
2019-07-10 11:31:24 +02:00
David Boddie
f999861228 Merge branch 'remove-more-unused-code-and-data' into 'master'
Remove unused color definitions

See merge request Librem5/squeekboard!42
2019-07-09 21:40:36 +00:00
David Boddie
a571bd7dca Remove unused color definitions 2019-07-09 17:55:40 +02:00
David Boddie
3d0d28fa01 Merge branch 'remove-unused-eekboard-context-service-code' into 'master'
Remove currently unused eekboard code

See merge request Librem5/squeekboard!41
2019-07-09 15:48:59 +00:00
David Boddie
4c54b49ef5 Merge branch 'remove-unused-sources' into 'master'
Remove unlisted files

See merge request Librem5/squeekboard!38
2019-07-09 14:44:00 +00:00
David Boddie
eb940bcf52 Remove currently unused eekboard code 2019-07-09 16:34:16 +02:00
David Boddie
be0e773879 Merge branch 'quick-review-fast-lane-very-speedy' into 'master'
Some cleanups, and some FIXME hints for future work (no functional changes)

See merge request Librem5/squeekboard!39
2019-07-09 14:25:45 +00:00
David Boddie
056e07e80e Merge branch 'prevent-warnings' into 'master'
Prevent compiler warnings by commenting out unused code

See merge request Librem5/squeekboard!37
2019-07-09 13:44:54 +00:00
David Boddie
83b36d07d0 Add note about unused code 2019-07-09 15:28:02 +02:00
Hysterical Raisins
89aaf05aff Some minor cleanups 2019-07-09 13:52:23 +02:00
Hysterical Raisins
2f87fd46fb Improve codeflow 2019-07-09 13:50:14 +02:00
Hysterical Raisins
e04276ee38 Use properly typed and named variables for user_data 2019-07-09 13:46:44 +02:00
Hysterical Raisins
05c3061f08 Add some FIXME hints for future work 2019-07-09 13:41:20 +02:00
Hysterical Raisins
c33006bcbc use g_clear_pointer with gtk_widget_destroy
brief, clear, idiomatic and grep friendly
2019-07-09 13:33:49 +02:00
David Boddie
4bf4500ae1 Remove unlisted files 2019-07-09 01:07:19 +02:00
David Boddie
e2944ff4a7 Use a macro to declare a type with private data 2019-07-09 00:46:03 +02:00
David Boddie
f79b5dadbb Use a macro to declare a type with private data 2019-07-09 00:41:25 +02:00
David Boddie
4d44129b04 Prevent compiler warnings by commenting out unused code 2019-07-09 00:24:57 +02:00
David Boddie
b3e1d84e6c Merge branch 'mem' into 'master'
Fix visibility-related bugs

See merge request Librem5/squeekboard!25
2019-07-08 21:25:27 +00:00
David Boddie
6702edaa9d Merge branch 'fix-deprecated-warnings' into 'master'
Fix deprecated warnings

See merge request Librem5/squeekboard!34
2019-07-08 21:19:57 +00:00
David Boddie
a3a6e5933a Merge branch 'quick-review-fast-lane-very-speedy' into 'master'
Quick review fast lane very speedy

See merge request Librem5/squeekboard!36
2019-07-08 21:01:40 +00:00
Hysterical Raisins
66ec95ebb0 fix-up prototypes (-Wincompatible-pointer-types) 2019-07-08 09:21:26 +02:00
Hysterical Raisins
a944bf85b8 remove stray const (-Wdiscarded-qualifiers) 2019-07-08 09:20:17 +02:00
Hysterical Raisins
1d1829f664 fix accidentally committed line (-Wincompatible-pointer-types) 2019-07-08 09:18:41 +02:00
Hysterical Raisins
094aa872ce Cleanups: fix deprecated g_type_class_add_private()
- use G_DECLARE_ and G_DEFINE_ macros
- move all data into ClassNamePrivate
- use _get_instance_private()

This should not introduce any functional changes or breakage.

Skipped two classes (EekKeyboard and EekboardContextService) for now in
order not to break the build.

These two classes are used in some very funky WIP code that tries to
circumvent encapsulation.

(Funky code is in eekboard/key-emitter.c and eekboard/eekboard-context-service.c)
2019-07-08 08:44:05 +02:00
Hysterical Raisins
eaf925e30b Cleanups: fix g_type_init() deprecation warning
None of this seems necessary anymore. This file could be axed, but leave
it for now.
2019-07-08 08:39:43 +02:00
Hysterical Raisins
722d3d1ad4 Cleanups: fix deprecations
gtk_widget_get_root_window()
	gdk_screen_get_monitor_at_window()
	gdk_screen_get_monitor_geometry()
2019-07-08 08:39:16 +02:00
Dorota Czaplejewicz
b69b3e9409 Merge branch 'fix-uninitialized-var' into 'master'
Fix an uninitialized-variable warning, and fixes gradients (quickie)

See merge request Librem5/squeekboard!35
2019-07-07 17:37:11 +00:00
Hysterical Raisins
ae5eaeec93 Fix an uninitialized-variable warning, and fixes gradients 2019-07-07 18:45:56 +02:00
Dorota Czaplejewicz
c393eb20be Merge branch 'improve-key-rendering' into 'master'
Improve key rendering and eliminate two deprecation warnings

See merge request Librem5/squeekboard!33
2019-07-07 11:39:12 +00:00
Hysterical Raisins
0e8715b4ff Improve key rendering and eliminate two deprecation warnings
- Replace two calls to deprecated gdk_cairo_create()

- Alleviate asymmetry between rendering pressed and released keys
  by consistenly clipping the same area up front to avoid
  artefacts

- make sure pressed and released keys are shown immediately by
  calling gdk_window_invalidate_rect()

- improve consistency between render_(pressed|locked|released)_key

- improve code flow
2019-07-07 11:34:24 +02:00
Dorota Czaplejewicz
b09c812579 Merge branch 'drop-icons' into 'master'
Drop icons

See merge request Librem5/squeekboard!29
2019-07-04 18:34:15 +00:00
Dorota Czaplejewicz
d6f7c271e2 Merge branch 'kill-automake' into 'master'
Remove automake leftovers

See merge request Librem5/squeekboard!27
2019-07-04 18:26:24 +00:00
Guido Günther
f1d97e396b Drop icons
They're not being installed and we want ones matching current
GNOME design anyway.
2019-07-04 16:25:05 +02:00
Guido Günther
abf8f4daa8 eek-theme: Remove code for old croko versions
These versions aren't even in Debian's oldstable release.
2019-07-04 16:21:18 +02:00
Guido Günther
aba242301d Use a gresource to store the css
This makes build / test faster since one can skip install. It's
also more obvious which file is being used.
2019-07-04 16:16:04 +02:00
Guido Günther
7a52080940 Remove automake leftovers 2019-07-04 14:51:00 +02:00
Dorota Czaplejewicz
c3ffe6ab8b visibility: Handle visibility change no-ops 2019-07-04 08:48:43 +00:00
Tobias Bernard
851a9185c0 Merge branch 'margins' into 'master'
style: Fix right margin

See merge request Librem5/squeekboard!26
2019-07-04 08:44:52 +00:00
Dorota Czaplejewicz
c1e1ddb73f style: Fix right margin
For some reason, adjusting the width of the keyboard layout affects the margin when used at 360 width.
2019-07-04 08:27:37 +00:00
Guido Gunther
d530c1d6d6 Merge branch 'session' into 'master'
session: Register to the session manager

See merge request Librem5/squeekboard!24
2019-07-04 08:27:00 +00:00
Dorota Czaplejewicz
43579b51f0 session: Register to the session manager
Registering as "sm.puri.OSK0", because that's as much as the session knows about the virtual keyboard.
2019-07-04 07:58:34 +00:00
Dorota Czaplejewicz
3d1133cdb5 Fix memory corruption due to a wrong assumption 2019-07-04 07:48:46 +00:00
Dorota Czaplejewicz
e27af9fd24 Merge branch 'be-explicit-about-meson' into 'master'
Specify the build system when building a package

See merge request Librem5/squeekboard!23
2019-07-03 22:28:20 +00:00
David Boddie
a7c6597246 Specify the build system when building a package 2019-07-04 00:18:42 +02:00
David Boddie
fd6d873c01 Merge branch 'add-debian-source-format' into 'squeekboard'
Add missing packaging file

See merge request Librem5/squeekboard!22
2019-07-03 19:40:43 +00:00
David Boddie
89dee04cdf Add missing packaging file 2019-07-03 21:35:24 +02:00
Guido Gunther
3b0a073964 Merge branch 'conflict' into 'squeekboard'
build: Apply fixes/suggestions

See merge request Librem5/squeekboard!21
2019-07-03 08:48:40 +00:00
Dorota Czaplejewicz
a129863a4d build: Apply fixes/suggestions
Following comments on https://source.puri.sm/Librem5/squeekboard/merge_requests/20
2019-07-02 20:14:12 +00:00
Dorota Czaplejewicz
5b700f7dfc Merge branch 'modifiers' into 'squeekboard'
Modifiers

See merge request Librem5/squeekboard!19
2019-07-02 18:44:33 +00:00
Dorota Czaplejewicz
d982bcb5e4 Merge branch 'conflict' into 'squeekboard'
Fix virtboard conflict

See merge request Librem5/squeekboard!20
2019-07-02 18:18:19 +00:00
Dorota Czaplejewicz
61a5e8d4fd install: Don't distribute dbus definition
Instead, require virtboard to provide it.
2019-07-02 18:13:34 +00:00
Dorota Czaplejewicz
cb641bd221 ci: Prevent caching of build directory 2019-07-02 18:11:49 +00:00
Dorota Czaplejewicz
2f6e9a1756 Merge branch 'remove-trigger-in-packaging' into 'squeekboard'
Remove unnecessary trigger

See merge request Librem5/squeekboard!18
2019-07-02 13:23:47 +00:00
David Boddie
51b183a0f3 Remove unnecessary trigger 2019-07-02 13:23:47 +00:00
David Boddie
d071bb04af Merge branch 'linking' into 'squeekboard'
build: Link Rust library statically

See merge request Librem5/squeekboard!16
2019-07-02 13:19:14 +00:00
Dorota Czaplejewicz
14887f9c99 layout: Change label for Level 3 modifier 2019-07-02 13:09:33 +00:00
Dorota Czaplejewicz
654909261e modifiers: Level 3 works 2019-07-02 13:03:35 +00:00
Dorota Czaplejewicz
ab2a27345d Merge branch 'modifiers' into 'squeekboard'
modifiers: Seem to be emitted correctly

See merge request Librem5/squeekboard!17
2019-07-02 11:54:34 +00:00
Dorota Czaplejewicz
484eb3303c modifiers: Seem to be emitted correctly 2019-07-02 11:52:45 +00:00
Dorota Czaplejewicz
319d64e1e5 build: Link Rust library statically 2019-07-02 10:11:32 +00:00
Dorota Czaplejewicz
60250ca5e5 Merge branch 'font-size' into 'squeekboard'
hack: Adjust font size

See merge request Librem5/squeekboard!15
2019-07-01 15:41:10 +00:00
Dorota Czaplejewicz
d729bb3a89 hack: Adjust font size 2019-07-01 15:27:06 +00:00
Dorota Czaplejewicz
4dc55635d7 Merge branch 'new_layout' into 'squeekboard'
New layout

See merge request Librem5/squeekboard!13
2019-07-01 15:04:32 +00:00
Dorota Czaplejewicz
4af49ef7b6 layout: Make keys higher 2019-07-01 13:31:53 +00:00
Dorota Czaplejewicz
3a42e66504 layout: Position keys closer to the left edge 2019-07-01 12:57:52 +00:00
Dorota Czaplejewicz
250b196b81 theme: Use mockup colors 2019-07-01 12:57:52 +00:00
Dorota Czaplejewicz
9ba1987cab layout: Moved keys a bit to the left 2019-07-01 12:57:52 +00:00
Dorota Czaplejewicz
909b1e2a28 theme: Adjust colors to match the mockup closer 2019-07-01 12:57:52 +00:00
Dorota Czaplejewicz
e46af41abf layouts: Fixed spacing 2019-07-01 12:57:52 +00:00
Dorota Czaplejewicz
17671a3b08 layout: Use outlines for key bounds 2019-07-01 12:57:52 +00:00
Dorota Czaplejewicz
b8eb7752e7 layout: Using bigger keys 2019-07-01 12:57:52 +00:00
Dorota Czaplejewicz
5e92f45111 layout: Arrange keys similar to mockup 2019-07-01 12:57:52 +00:00
Dorota Czaplejewicz
baf848c791 layout: Ignore keycodes without corresponding keys 2019-07-01 12:57:52 +00:00
Dorota Czaplejewicz
737d57c1f4 Merge branch 'install-rslib' into 'squeekboard'
Install rslib

See merge request Librem5/squeekboard!12
2019-07-01 12:57:22 +00:00
David Boddie
9985ad7ee1 Fix lintian package-must-activate-ldconfig-trigger error 2019-07-01 01:46:16 +02:00
David Boddie
025b55e1a2 Install rslib 2019-07-01 00:05:42 +02:00
Dorota Czaplejewicz
14fbabe8d7 Merge branch 'popup' into 'squeekboard'
Pop up when input requested

See merge request Librem5/squeekboard!10
2019-06-30 19:04:42 +00:00
Dorota Czaplejewicz
b746f7a70e input method: Pop up the keyboard 2019-06-30 19:03:24 +00:00
Dorota Czaplejewicz
0d3b003aac input method: Initialize the protocol and pretend to handle a few things 2019-06-30 19:03:24 +00:00
Dorota Czaplejewicz
9428927879 Merge branch 'build-dep' into 'squeekboard'
ci: Use build-dep instead of a dependency list

See merge request Librem5/squeekboard!11
2019-06-30 19:03:08 +00:00
Dorota Czaplejewicz
511b2f7186 ci: Use build-dep instead of a dependency list 2019-06-30 19:01:36 +00:00
Dorota Czaplejewicz
d8c83e3c65 Merge branch 'touch' into 'squeekboard'
Touch support

See merge request Librem5/squeekboard!9
2019-06-30 06:11:16 +00:00
Dorota Czaplejewicz
050fd6f3ba Touch support
Single stream of touch events.
2019-06-29 12:56:04 +00:00
Dorota Czaplejewicz
72d6a8d4e1 Merge branch 'wayland-gen' into 'squeekboard'
build: Use 'client-code' instead of 'code' for protocols

See merge request Librem5/squeekboard!8
2019-06-29 12:47:27 +00:00
Dorota Czaplejewicz
30d35216f6 build: Use 'client-code' instead of 'code' for protocols 2019-06-29 12:46:08 +00:00
Dorota Czaplejewicz
bcd0d40912 Merge branch 'fixes' into 'squeekboard'
fix: Remove leftover debug print

See merge request Librem5/squeekboard!7
2019-06-29 12:18:59 +00:00
Dorota Czaplejewicz
4b8a6bbbe0 fix: Remove leftover debug print 2019-06-29 12:16:34 +00:00
Dorota Czaplejewicz
47026b669b Make copyright more granular 2019-06-29 10:50:30 +00:00
Dorota Czaplejewicz
752dc467a8 Merge branch 'desktop-file' into 'squeekboard'
Add a desktop file

See merge request Librem5/squeekboard!5
2019-06-29 10:13:20 +00:00
Dorota Czaplejewicz
bde45b262a Merge branch 'debian-files' into 'squeekboard'
Add Debian packaging files

See merge request Librem5/squeekboard!4
2019-06-29 10:10:15 +00:00
David Boddie
fc338f5723 Add Debian packaging files 2019-06-29 10:10:15 +00:00
David Boddie
346ed453ef Start working on a desktop file 2019-06-26 18:17:54 +02:00
David Boddie
664f05edba Remove unnecessary build dependency 2019-06-26 17:45:23 +02:00
David Boddie
edcff44f4b Add another build dependency, add an empty rule to override autoreconf 2019-06-26 17:35:13 +02:00
David Boddie
42ee5d2ddb Update packaging files 2019-06-26 17:35:05 +02:00
David Boddie
54e421d7e6 Add initial Debian packaging 2019-06-26 17:35:00 +02:00
Dorota Czaplejewicz
9e5629d1e0 Enable Wayland's virtual-keyboard protocol
This commit includes a little restructuring necessary for keeping wayland objects properly.
It doesn't fix broken modifier functionality yet.
2019-06-25 18:12:15 +00:00
Dorota Czaplejewicz
c0fdffac28 Separate keyboards from the dbus handler 2019-06-23 10:59:45 +00:00
Dorota Czaplejewicz
e94e64d204 Move dbus setup closer together 2019-06-23 10:42:20 +00:00
Dorota Czaplejewicz
e503e35b84 Rename squeak_ to squeek_ for consitency 2019-06-23 10:30:25 +00:00
Dorota Czaplejewicz
752592a3d8 Fixed build 2019-06-23 10:29:18 +00:00
Dorota Czaplejewicz
2e6d194a6f Remove server-service 2019-06-23 10:26:24 +00:00
Dorota Czaplejewicz
63dfb07b51 Simplify the storage of context 2019-06-23 09:54:09 +00:00
Dorota Czaplejewicz
02525056d6 Removed X11 header, added some clarifications 2019-06-22 16:20:03 +00:00
Dorota Czaplejewicz
8292429648 Context: removing more unused things 2019-06-22 16:04:33 +00:00
Dorota Czaplejewicz
765c496068 Removed more unused stuff in context 2019-06-22 15:57:48 +00:00
Dorota Czaplejewicz
d6feec8010 Removed d-bus paths from service class 2019-06-22 15:40:20 +00:00
Dorota Czaplejewicz
f1fbb37547 Kill connection in context service 2019-06-22 15:31:08 +00:00
Dorota Czaplejewicz
5a6386dd24 Fixed rendering deprecation warnings 2019-06-22 13:13:55 +00:00
Dorota Czaplejewicz
0809db9e32 Remove some rendering code with no effect and warnings 2019-06-22 12:56:33 +00:00
Dorota Czaplejewicz
15a3315854 Fix dragging across the keyboard 2019-06-22 12:34:10 +00:00
Dorota Czaplejewicz
82d1f256b2 Remove released and cancelled key events 2019-06-22 12:23:04 +00:00
Dorota Czaplejewicz
e7ba2a0eb0 Got rid of signals in the pressed path 2019-06-19 17:00:30 +00:00
Dorota Czaplejewicz
eff0449b3a Redrawing key after press is happening directly 2019-06-19 16:51:57 +00:00
Dorota Czaplejewicz
3b9e066ec8 Simplify key press handling 2019-06-19 16:05:37 +00:00
Dorota Czaplejewicz
260ab42b9e Forward press timestamps 2019-06-19 15:56:19 +00:00
Dorota Czaplejewicz
a3d745edd0 Moved key pressing from context to keyboard 2019-06-19 15:27:29 +00:00
Dorota Czaplejewicz
40a92fe730 Ignoring section.key-pressed 2019-06-19 14:11:23 +00:00
Dorota Czaplejewicz
e30bb23711 build: Add debug/release options 2019-06-18 13:37:10 +00:00
Dorota Czaplejewicz
292c1d08d8 fixes: Minor type and include mismatches 2019-06-16 12:55:50 +00:00
Dorota Czaplejewicz
be56447614 readme: Update development installation info 2019-06-16 12:13:43 +00:00
Dorota Czaplejewicz
70fda8ba64 Fix releasing buttons when dragged 2019-04-06 18:46:33 +00:00
Dorota Czaplejewicz
5cc407986b Ignore multi-clicks and non-left-buttons 2019-04-06 18:35:06 +00:00
Dorota Czaplejewicz
53af829f46 Send both press and release events 2019-04-06 17:45:06 +00:00
Dorota Czaplejewicz
53065a6d95 Fix crash on double click 2019-04-05 18:42:11 +00:00
Dorota Czaplejewicz
862cfdb55d Showing and hiding 2019-04-05 18:36:25 +00:00
Dorota Czaplejewicz
b065b16bf1 Use layer shell 2019-04-05 15:39:57 +00:00
Dorota Czaplejewicz
6ff33b48d1 dbus: Add missing schema 2019-03-27 13:48:53 +00:00
Dorota Czaplejewicz
d04020f79c readme: Use language with non-US layout 2019-03-27 13:33:40 +00:00
Dorota Czaplejewicz
6b15072764 dbus: Use generated code 2019-03-23 09:36:53 +00:00
Dorota Czaplejewicz
f261115ac4 ci: Change job name to meson 2019-03-22 19:06:29 +00:00
Dorota Czaplejewicz
116f130c4c readme: Remove settings schema variable 2019-03-22 19:00:03 +00:00
Dorota Czaplejewicz
cad1b02482 settings: Switching layouts according to input settings 2019-03-22 17:18:12 +00:00
Dorota Czaplejewicz
09fe69f63a cleanup: Remove Context dbus interface remains 2019-03-22 16:35:02 +00:00
Dorota Czaplejewicz
8ecd81d51c settings: Fall back to "us" layout when no file found 2019-03-22 16:20:39 +00:00
Dorota Czaplejewicz
8f71b010cc settings: Removed custom settings schema 2019-03-22 15:52:35 +00:00
Dorota Czaplejewicz
b817c6189d build: Update keysym generator to Python3 2019-03-22 13:09:21 +00:00
Dorota Czaplejewicz
a00d41930d readme: Update features 2019-03-22 07:23:17 +00:00
Dorota Czaplejewicz
caee942796 build, readme: Update build and run instructions 2019-03-22 07:23:17 +00:00
Dorota Czaplejewicz
d3410fdc61 Keyboard shows up on a single ShowKeyboard 2019-03-22 07:23:12 +00:00
Dorota Czaplejewicz
8087c3e5d4 build: Use only meson for squeekboard
This breaks autoconf. The only resulting binary is the squeekboard GUI. It still needs the autotools-built eekboard client in order to do anything useful. That one needs to be built using a different branch, making this a WIP.
2019-03-15 20:59:29 +00:00
Dorota Czaplejewicz
10bd0ea09e build: Remove eekboard-server 2019-03-14 20:40:27 +00:00
Dorota Czaplejewicz
5803222e68 build: Remove libeekboard dependency 2019-03-14 18:03:10 +00:00
Dorota Czaplejewicz
a243fce1ae build: Squeekboard build in meson 2019-03-14 17:29:13 +00:00
Dorota Czaplejewicz
c8059ebf50 stubbing: Key generation events
Only enabled when Xtest is in use. It's probably always meant to be in use though, as this piece of code also opens the preferences dialog
2019-03-14 11:09:35 +00:00
Dorota Czaplejewicz
ce2d270e7c ci: Add config flags relevant for Wayland builds 2019-03-13 18:08:56 +00:00
Dorota Czaplejewicz
0c945bdc7e readme: Update build and run instructions 2019-03-13 17:59:59 +00:00
Dorota Czaplejewicz
60ec684853 readme: Moved to Markdown 2019-03-13 17:59:54 +00:00
Dorota Czaplejewicz
b159625e62 Add gitlab CI 2019-02-14 16:57:39 +00:00
Daiki Ueno
e212262f29 Stop key-repeat when the server receives a new D-Bus event.
Key-repeat timer should be cleared when the server receives a new D-Bus.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=857977
2012-10-01 11:55:04 +09:00
Daiki Ueno
c71167d893 Fix out-of-tree build. 2012-10-01 11:55:00 +09:00
Daiki Ueno
2d4e4c7a13 Fix compiler warnings. 2012-10-01 11:37:47 +09:00
Daiki Ueno
695f8df5b8 Bump version to 1.0.8. 2012-08-15 17:28:23 +09:00
Daiki Ueno
2e822cb6a6 Don't crash when all the keyboards are removed. 2012-08-15 17:27:20 +09:00
Daiki Ueno
f2a90935a3 Make "visible" property per client instead of per context. 2012-04-24 18:38:32 +09:00
Daiki Ueno
cee741eca0 Fix initial window size. 2012-04-24 12:48:35 +09:00
Daiki Ueno
b5b59e77d6 Check errors when retrieving XKB layout information. 2012-04-24 11:58:41 +09:00
Daiki Ueno
cce883808e Simplify eek-xkb-layout.c. 2012-04-24 11:01:42 +09:00
Daiki Ueno
8faae7ef08 Use git.mk. 2012-04-24 10:38:36 +09:00
Daiki Ueno
4538ef38a1 Revert "Remove eek-xkb*."
This reverts commit ee12d02402.
2012-04-24 10:06:09 +09:00
Daiki Ueno
ee12d02402 Remove eek-xkb*. 2012-04-23 18:35:15 +09:00
Daiki Ueno
7050fa41a0 G_CONST_RETURN -> const. 2012-04-23 17:09:48 +09:00
Daiki Ueno
4a346211b8 Show tooltips. 2012-04-23 16:43:06 +09:00
Daiki Ueno
4df2ecc8ae Don't abort when failed to load keyboard. 2012-04-16 14:37:18 +09:00
Daiki Ueno
03995ec6b2 Bump version to 1.0.7777777. 2012-04-13 16:48:50 +09:00
Daiki Ueno
6059146b42 Fix gobject-introspection annotation. 2012-04-13 16:44:41 +09:00
Daiki Ueno
30811ae656 Fix jp-kana keyboard. 2012-04-13 16:44:01 +09:00
Daiki Ueno
b8015bbef5 Simplify geometry XML format by folding row element. 2012-04-06 15:57:30 +09:00
Daiki Ueno
157d7c57fd Don't check if dbus-glib-1 is installed. 2012-04-02 16:31:53 +09:00
Daiki Ueno
03963036d1 Fix EekXklLayout initialization. 2012-04-02 10:38:14 +09:00
Daiki Ueno
5099f7db88 Bump version to 1.0.6. 2012-03-30 17:41:46 +09:00
Daiki Ueno
ab8cd246bf Fix make distcheck. 2012-03-30 17:40:16 +09:00
Daiki Ueno
528981f913 Drop IBus dependency when compiling. 2012-03-30 17:23:47 +09:00
Daiki Ueno
3fd5eb789c Fix EekboardContext::key_activated signature. 2012-03-30 16:27:48 +09:00
Daiki Ueno
9c09777c09 Place preferences key on the right bottom corner. 2012-03-29 19:08:54 +09:00
Daiki Ueno
7298d320e0 Refine keysym handling. 2012-03-29 16:27:56 +09:00
Daiki Ueno
39154fa5ad Fix keysym replace logic. 2012-03-28 19:03:34 +09:00
Daiki Ueno
6db99bee25 Don't enumerate over keys when find_by_keycode. 2012-03-28 14:43:49 +09:00
Daiki Ueno
ee0505c100 Add keyboard selection dialog to preferences. 2012-03-28 12:54:22 +09:00
Daiki Ueno
1943749cb6 Drop GTK2 support. 2012-03-23 18:07:05 +09:00
Daiki Ueno
5763ed20bf Remove eekxml. 2012-03-23 18:07:05 +09:00
Daiki Ueno
7eead1c1ff Fix some mistakes. 2012-03-23 18:07:05 +09:00
Daiki Ueno
048e08b59a Factor out symbols from keyboard file. 2012-03-23 18:07:01 +09:00
Daiki Ueno
523bd9b788 Remove unused code. 2012-03-19 10:53:27 +09:00
Daiki Ueno
f442733b33 Fix some mistakes.
* remove useless g_obect_{set,get}_property call.
* free GError on error.
2012-03-16 18:15:50 +09:00
Daiki Ueno
a6fe5bd859 Use GInitable to define EekXklLayout. 2012-03-16 17:36:20 +09:00
Daiki Ueno
32a1d23c2a Simplify codebase.
* Drop clutter support.
* Unify eek-xkb into eek-xkl.
* Generate vapi from gir instead of gi.
2012-03-16 16:32:33 +09:00
Daiki Ueno
06644945cf Remove python binding. 2012-03-16 15:47:36 +09:00
318 changed files with 12147 additions and 51696 deletions

91
.gitignore vendored
View File

@@ -1,84 +1,9 @@
*.la
*.lo
*.loT
*.o
*.so
.zanata-cache/
_build
TAGS
tags
vgdump
*.swp
*~
*.pyc
Makefile
Makefile.in
.deps
.libs
INSTALL
aclocal.m4
autom4te.cache
compile
config.guess
config.h
config.h.in
config.log
config.rpath
config.status
config.sub
configure
depcomp
install-sh
libtool
ltmain.sh
missing
stamp-h1
libkeyactor*.tar.*
mkinstalldirs
m4/*.m4
gtk-doc.make
eek/eek-special-keysym-entries.h
eek/eek-unicode-keysym-entries.h
eek/eek-xkeysym-keysym-entries.h
eek/eek-enumtypes.[ch]
eek/eek-marshalers.[ch]
eek/*.pc
eek/*.gir
eek/*.typelib
eekboard/*.pc
eekboard/*.gir
eekboard/*.typelib
eekboard/eekboard-marshalers.[ch]
tests/eek-simple-test
tests/eek-xkb-test
tests/eek-xml-test
src/eekboard
src/eekboard-server
docs/reference/eek/*.stamp
docs/reference/eek/*.txt
docs/reference/eek/eek.types
!/docs/reference/eek/eek-sections.txt
docs/reference/eek/xml
docs/reference/eek/html
docs/reference/eek/eek.signals
docs/reference/eek/eek.args
docs/reference/eek/eek.hierarchy
docs/reference/eek/eek.interfaces
docs/reference/eek/eek.prerequisites
docs/reference/eekboard/*.stamp
docs/reference/eekboard/*.txt
!/docs/reference/eekboard/eekboard-sections.txt
docs/reference/eekboard/xml
docs/reference/eekboard/html
docs/reference/eekboard/eekboard.signals
docs/reference/eekboard/eekboard.args
docs/reference/eekboard/eekboard.hierarchy
docs/reference/eekboard/eekboard.interfaces
docs/reference/eekboard/eekboard.prerequisites
po/*.gmo
po/Makefile.in.in
po/POTFILES
po/stamp-it
po/.intltool-merge-cache
bindings/vala/*.vapi
py-compile
data/org.fedorahosted.eekboard.gschema.xml
data/org.fedorahosted.eekboard.gschema.valid
data/eekboard-server.service
data/*.desktop
examples/eekxml/eekxml
\#*#
.\#*

56
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,56 @@
image: debian:buster
stages:
- build
- test
.tags: &tags
tags:
- librem5
before_script:
- apt-get -y update
- apt-get -y install wget ca-certificates gnupg
- echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list
- wget -O- https://ci.puri.sm/ci-repo.key | apt-key add -
- apt-get -y update
- apt-get -y build-dep .
build_meson:
<<: *tags
stage: build
artifacts:
paths:
- _build
expire_in: 3h
script:
- meson . _build/ -Ddepdatadir=/usr/share
- ninja -C _build install
build_deb:
<<: *tags
stage: build
artifacts:
paths:
- "*.deb"
script:
- apt-get -y install devscripts
- debuild -i -us -uc -b
- cp ../*.deb .
test_lintian:
<<: *tags
stage: test
dependencies:
- build_deb
script:
- apt-get -y install lintian
- lintian *.deb
test:
<<: *tags
stage: test
needs:
- build_meson
script:
- ninja -C _build test

37
AUTHORS
View File

@@ -1,36 +1,5 @@
eekboard is written by Daiki Ueno <ueno@unixuser.org>. The following
files contain code derived from other free software packages:
squeekboard is written by Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> on behlf of Purism, SPC.
eekboard was written by Daiki Ueno <ueno@unixuser.org>
eek/eek-keyboard-drawing.h
eek/eek-keyboard-drawing.c
For more details, see the debian/copyright file.
These files contain code derived from the libgnomekbd library.
Copyright (C) 2006 Sergey V. Udaltsov <svu@gnome.org>
eek/eek-theme.h
eek/eek-theme.c
eek/eek-theme-context.h
eek/eek-theme-context.c
eek/eek-theme-node.h
eek/eek-theme-node.c
These files contain code derived from gnome-shell.
Copyright 2008-2010 Red Hat, Inc.
Copyright 2009 Steve Frécinaux
Copyright 2009, 2010 Florian Müllner
Copyright 2010 Adel Gadllah
Copyright 2010 Giovanni Campagna
Copyright 2003-2004 Dodji Seketeli
data/icons/8x8/Makefile.am
data/icons/16x16/Makefile.am
data/icons/22x22/Makefile.am
data/icons/24x24/Makefile.am
data/icons/32x32/Makefile.am
data/icons/48x48/Makefile.am
data/icons/scalable/Makefile.am
These files contain code derived from im-chooser.
Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved.

476
Cargo.lock generated Normal file
View File

@@ -0,0 +1,476 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "aho-corasick"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "atk-sys"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "bitflags"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "cairo-rs"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "cairo-sys-rs"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "cc"
version = "1.0.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "dtoa"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "fragile"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "gdk"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gdk-pixbuf"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gdk-pixbuf-sys"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gdk-sys"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gio"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gio-sys"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "glib"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "glib-sys"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gobject-sys"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gtk"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gtk-sys"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"atk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "libc"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "linked-hash-map"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "maplit"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "memchr"
version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "memmap"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "pango"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "pango-sys"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "pkg-config"
version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "proc-macro2"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "quote"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "regex"
version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
"memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
"thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "regex-syntax"
version = "0.6.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "rs"
version = "0.1.0"
dependencies = [
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
"xkbcommon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "serde"
version = "1.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "serde_derive"
version = "1.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "serde_yaml"
version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
"linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)",
"yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "syn"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "thread_local"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "unicode-xid"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "utf8-ranges"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "winapi"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "xkbcommon"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
"memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "yaml-rust"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[metadata]
"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
"checksum atk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7017e53393e713212aed7aea336b6553be4927f58c37070a56c2fe3d107e489"
"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
"checksum cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dd940f0d609699e343ef71c4af5f66423afbf30d666f796dabd8fd15229cf5b6"
"checksum cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d25596627380be4381247dba06c69ad05ca21b3b065bd9827e416882ac41dcd2"
"checksum cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)" = "4fc9a35e1f4290eb9e5fc54ba6cf40671ed2a2514c3eeb2b2a908dda2ea5a1be"
"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
"checksum gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc52c7244046df9d959df87289f1fc5cca23f9f850bab0c967963e2ecb83a96"
"checksum gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc3aa730cb4df3de5d9fed59f43afdf9e5fb2d3d10bfcbd04cec031435ce87f5"
"checksum gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08284f16ce4d909b10d785a763ba190e222d2c1557b29908bf0a661e27a8ac3b"
"checksum gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "108548ebf5329b551f2b97ab356908d14627905abb74b936c3372de1535aee81"
"checksum gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "29a44b051990573448edc80b1995237f8b97b5734d2aec05105b9242aa10af11"
"checksum gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6975ada29f7924dc1c90b30ed3b32d777805a275556c05e420da4fbdc22eb250"
"checksum glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a333edf5b9f1411c246ef14e7881b087255f04c56dbef48c64a0cb039b4b340"
"checksum glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3573351e846caed9f11207b275cd67bc07f0c2c94fb628e5d7c92ca056c7882d"
"checksum gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08475e4a08f27e6e2287005950114735ed61cec2cb8c1187682a5aec8c69b715"
"checksum gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "56a6b30f194f09a17bb7ffa95c3ecdb405abd3b75ff981f831b1f6d18fe115ff"
"checksum gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d487d333a4b87072e6bf9f2e55befa0ebef01b9496c2e263c0f4a1ff3d6c04b1"
"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
"checksum libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
"checksum maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
"checksum pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4c2cb169402a3eb1ba034a7cc7d95b8b1c106e9be5ba4be79a5a93dc1a2795f4"
"checksum pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d6eb49268e69dd0c1da5d3001a61aac08e2e9d2bfbe4ae4b19b9963c998f6453"
"checksum pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "72d5370d90f49f70bd033c3d75e87fc529fbfff9d6f7cccef07d6170079d91ea"
"checksum proc-macro2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afdc77cc74ec70ed262262942ebb7dac3d479e9e5cfa2da1841c0806f6cdabcc"
"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad"
"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
"checksum serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)" = "9796c9b7ba2ffe7a9ce53c2287dfc48080f4b2b362fcc245a259b3a7201119dd"
"checksum serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)" = "4b133a43a1ecd55d4086bd5b4dc6c1751c68b1bfbeba7a5040442022c7e7c02e"
"checksum serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "38b08a9a90e5260fe01c6480ec7c811606df6d3a660415808c3c3fa8ed95b582"
"checksum syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
"checksum utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba"
"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
"checksum xkbcommon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fda0ea5f7ddabd51deeeda7799bee06274112f577da7dd3d954b8eda731b2fce"
"checksum yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d"

39
Cargo.toml Normal file
View File

@@ -0,0 +1,39 @@
[package]
name = "rs"
version = "0.1.0"
[dependencies]
bitflags = "1.0.*"
clap = "2.32.*"
maplit = "1.0.*"
regex = "1.1.*"
serde = { version = "1.0.*", features = ["derive"] }
serde_yaml = "0.8.*"
xkbcommon = { version = "0.4.*", features = ["wayland"] }
[dependencies.gio]
version = ""
features = ["v2_44"]
[dependencies.glib]
version = ""
features = ["v2_44"]
[dependencies.glib-sys]
version = ""
features = ["v2_44"]
[dependencies.gtk]
version = "0.5.*"
features = ["v3_22"]
[dependencies.gtk-sys]
version = ""
features = ["v3_22"]
[lib]
name = "rs"
path = "src/lib.rs"
crate-type = ["staticlib", "rlib"]

View File

128
HACKING.md Normal file
View File

@@ -0,0 +1,128 @@
Hacking
=======
This document describes the standards for modifying and maintaining the *squeekboard* project.
Development environment
-----------------------
*Squeekboard* is regularly built and tested on [the develpment environment](https://developer.puri.sm/Librem5/Development_Environment.html).
Recent Fedora releases are likely to be tested as well.
### Dependencies
On a Debian based system run
```sh
sudo apt-get -y install build-essential
sudo apt-get -y build-dep .
```
For an explicit list of dependencies check the `Build-Depends` entry in the
[debian/control][] file.
Testing
-------
Most common testing is done in CI. Occasionally, and for each release, do perform manual tests to make sure that
- the application draws correctly
- it shows when relevant
- it changes layouts
- it changes views
Testing with an application:
```
python3 tests/entry.py
```
Testing visibility:
```
$ busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true
$ busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b false
```
Testing layouts:
Layouts can be selected using the GNOME Settings application.
```
# define all available layouts. First one is currently selected.
$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'de')]"
```
Coding
------
Code submitted should roughly match the style of surrounding code. Things that will *not* be accepted are ones that often lead to errors:
- skipping brackets `{}` after every `if()`, `else`, and similar
Bad example:
```
if (foo)
bar();
```
Good example:
```
if (foo) {
bar();
}
```
- mixing tabs and spaces in the same block of code (or config)
Strongly encouraged:
- don't make lines too long. If it's longer than ~80 characters, it's probably unreadable already, and the code needs to be clarified;
- put operators in the beginning of a continuation line
Bad example:
```
foobar = verylongexpression +
anotherverylongexpression +
yetanotherexpression;
```
Good example:
```
foobar = verylongexpression
+ anotherverylongexpression
+ yetanotherexpression;
```
- use `///` for documentation comments in front of definitions and `/*! ... */` for documentation comments in the beginning of modules (see [Rust doc-comments](https://doc.rust-lang.org/reference/comments.html#doc-comments))
If in doubt, check [PEP8](https://github.com/rust-dev-tools/fmt-rfcs/blob/master/guide/guide.md), the [kernel coding style](https://www.kernel.org/doc/html/v4.10/process/coding-style.html), or the [Rust style guide](https://github.com/rust-dev-tools/fmt-rfcs/blob/master/guide/guide.md).
Maintenance
-----------
Squeekboard uses Rust & Cargo for some of its dependencies.
Use the `cargo.sh` script for maintaining the Cargo part of the build. The script takes the usual Cargo commands, after the first 2 positionsl arguments: source directory, and output artifact. So, `cargo test` becomes:
```
cd build_dir
sh /source_path/cargo.sh test
```
### Cargo dependencies
Dependencies must be specified in `Cargo.toml` with 2 numbers: "major.minor". Since bugfix version number is meant to not affect the interface, this allows for safe updates.
`Cargo.lock` is used for remembering the revisions of all Rust dependencies. It should be updated often, preferably with each bugfix revision, and in a commit on its own:
```
cd build_dir
sh /source_path/cargo.sh update
ninja test
```

View File

@@ -1,21 +0,0 @@
# Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2010-2011 Red Hat, Inc.
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = eek eekboard src tests bindings docs po data examples
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-introspection

0
NEWS
View File

35
README
View File

@@ -1,35 +0,0 @@
eekboard - an easy to use virtual keyboard toolkit -*- outline -*-
eekboard is a virtual keyboard software package, including a set of
tools to implement desktop virtual keyboards.
* Building
** Dependencies
REQUIRED: GLib2, GTK, PangoCairo, libxklavier, libcroco
OPTIONAL: libXtst, at-spi2-core, IBus, Clutter, Clutter-Gtk, Python, Vala, gobject-introspection, libcanberra
** Build from git repo
$ git clone git://github.com/ueno/eekboard.git
$ cd eekboard
$ ./autogen.sh --prefix=/usr --enable-gtk-doc
$ make
$ sudo make install
** Build from tarball
$ ./configure --prefix=/usr
$ make
$ sudo make install
* Running
$ eekboard
$ eekboard -f # show/hide automatically based on focus-in/focus-out events
Even though eekboard -f watches a11y events by default, it currently
works better with IBus. To use IBus, do:
$ gsettings set org.fedorahosted.eekboard focus-listener 'ibus'

59
README.md Normal file
View File

@@ -0,0 +1,59 @@
*squeekboard* - a Wayland virtual keyboard
========================================
*Squeekboard* is a virtual keyboard supporting Wayland, built primarily for the *Librem 5* phone.
It squeaks because some Rust got inside.
Features
--------
### Present
- GTK3
- Custom yaml-defined keyboards
- DBus interface to show and hide
- Use Wayland input method protocol to show and hide
- Use Wayland virtual keyboard protocol
### Temporarily dropped
- A settings interface
### TODO
- Use Wayland input method protocol
- Pick up DBus interface files from /usr/share
Building
--------
### Dependencies
See `.gitlab-ci.yml`.
### Build from git repo
```
$ git clone https://source.puri.sm/Librem5/squeekboard.git
$ cd squeekboard
$ mkdir ../build
$ meson ../build/
$ cd ../build
$ ninja test
$ ninja install
```
Running
-------
```
$ phoc # if no compatible Wayland compositor is running yet
$ cd ../build/
$ src/squeekboard
```
Developing
----------
See `HACKING.md`

1
TODO
View File

@@ -1 +0,0 @@
See https://github.com/ueno/eekboard/wiki/TODO

View File

@@ -1,25 +0,0 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
PKG_NAME="eekboard"
(test -f $srcdir/configure.ac \
&& test -f $srcdir/README ) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level $PKG_NAME directory"
exit 1
}
which gnome-autogen.sh || {
echo "You need to install gnome-common from the GNOME CVS"
exit 1
}
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I m4"
REQUIRED_AUTOMAKE_VERSION=1.10
REQUIRED_AUTOCONF_VERSION=2.60
. gnome-autogen.sh

View File

@@ -1,19 +0,0 @@
# Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2010-2011 Red Hat, Inc.
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA
SUBDIRS = python vala

View File

@@ -1,18 +0,0 @@
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2011 Red Hat, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
SUBDIRS = eekboard

View File

@@ -1,27 +0,0 @@
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2011 Red Hat, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
if ENABLE_PYTHON
pkgpython_PYTHON = \
__init__.py \
serializable.py \
symbol.py \
keysym.py \
text.py \
client.py \
context.py
endif

View File

@@ -1,23 +0,0 @@
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2011 Red Hat, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
from symbol import *
from keysym import *
from text import *
from serializable import *
from client import *
from context import *

View File

@@ -1,56 +0,0 @@
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2011 Red Hat, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
import dbus
import dbus.mainloop.glib
import gobject
from context import Context
dbus.mainloop.glib.DBusGMainLoop(set_as_default = True)
class Client(gobject.GObject):
__gtype_name__ = "PYEekboardClient"
__gsignals__ = {
'destroyed': (
gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
())
}
def __init__(self):
super(Client, self).__init__()
self.__bus = dbus.SessionBus()
_service = self.__bus.get_object("org.fedorahosted.Eekboard",
"/org/fedorahosted/Eekboard")
self.__service = dbus.Interface(_service, dbus_interface="org.fedorahosted.Eekboard")
self.__service.connect_to_signal("Destroyed", self.__destroyed_cb)
def __destroyed_cb(self):
self.emit("destroyed")
def create_context(self, client_name):
object_path = self.__service.CreateContext(client_name)
return Context(self.__bus, object_path)
def push_context(self, context):
self.__service.PushContext(context.object_path)
def pop_context(self):
self.__service.PopContext()
def destroy_context(self, context):
self.__service.DestroyContext(context.object_path)

View File

@@ -1,126 +0,0 @@
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2011 Red Hat, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
import dbus
import gobject
import serializable
class Context(gobject.GObject):
__gtype_name__ = "PYEekboardContext"
__gsignals__ = {
'enabled': (
gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
'disabled': (
gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
'key-pressed': (
gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_STRING, gobject.TYPE_PYOBJECT, gobject.TYPE_UINT)),
'destroyed': (
gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
}
__gproperties__ = {
'visible': (gobject.TYPE_BOOLEAN, 'Visible', 'Visible',
False, gobject.PARAM_READWRITE),
'keyboard': (gobject.TYPE_UINT, 'Keyboard', 'Keyboard',
0, gobject.G_MAXUINT, 0, gobject.PARAM_READWRITE),
'group': (gobject.TYPE_UINT, 'Group', 'Group',
0, gobject.G_MAXUINT, 0, gobject.PARAM_READWRITE),
}
def __init__(self, bus, object_path):
super(Context, self).__init__()
self.__bus = bus
self.__object_path = object_path
self.__properties = {}
_context = self.__bus.get_object("org.fedorahosted.Eekboard",
object_path)
self.__context = dbus.Interface(_context, dbus_interface="org.fedorahosted.Eekboard.Context")
self.__context.connect_to_signal('Enabled', self.__enabled_cb)
self.__context.connect_to_signal('Disabled', self.__disabled_cb)
self.__context.connect_to_signal('KeyActivated', self.__key_pressed_cb)
self.__context.connect_to_signal('Destroyed', self.__destroyed_cb)
self.__context.connect_to_signal('VisibilityChanged', self.__visibility_changed_cb)
self.__context.connect_to_signal('KeyboardChanged', self.__keyboard_changed_cb)
self.__context.connect_to_signal('GroupChanged', self.__group_changed_cb)
object_path = property(lambda self: self.__object_path)
def __enabled_cb(self):
self.emit('enabled')
def __disabled_cb(self):
self.emit('disabled')
def __key_pressed_cb(self, *args):
keyname = args[0]
symbol = serializable.deserialize_object(args[1])
modifiers = args[2]
self.emit('key-pressed', keyname, symbol, modifiers)
def __visibility_changed_cb(self, *args):
self.set_property('visible', args[0])
self.notify('visible')
def __keyboard_changed_cb(self, *args):
self.set_property('keyboard', args[0])
self.notify('keyboard')
def __group_changed_cb(self, *args):
self.set_property('group', args[0])
self.notify('group')
def __destroyed_cb(self):
self.emit("destroyed")
def do_set_property(self, pspec, value):
self.__properties[pspec.name] = value
def do_get_property(self, pspec):
return self.__properties.get(pspec.name, pspec.default_value)
def add_keyboard(self, keyboard_type):
return self.__context.AddKeyboard(keyboard_type)
def remove_keyboard(self, keyboard_id):
return self.__context.RemoveKeyboard(keyboard_id)
def set_keyboard(self, keyboard_id):
self.__context.SetKeyboard(keyboard_id)
def show_keyboard(self):
self.__context.ShowKeyboard()
def hide_keyboard(self):
self.__context.HideKeyboard()
def set_group(self, group):
self.__context.SetGroup(group)
def press_keycode(self, keycode):
self.__context.PressKeycode(keycode)
def release_keycode(self, keycode):
self.__context.ReleaseKeycode(keycode)

View File

@@ -1,35 +0,0 @@
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2011 Red Hat, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
import symbol
class Keysym(symbol.Symbol):
__gtype_name__ = "PYEekKeysym"
__NAME__ = "EekKeysym"
def __init__(self):
super(Keysym, self).__init__()
xkeysym = property(lambda self: self.__xkeysym)
def serialize(self, struct):
super(Keysym, self).serialize(struct)
struct.append(dbus.UInt32(self.__xkeysym))
def deserialize(self, struct):
super(Keysym, self).deserialize(struct)
self.__xkeysym = struct.pop(0)

View File

@@ -1,76 +0,0 @@
# vim:set et sts=4 sw=4:
#
# ibus - The Input Bus
#
# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
# Copyright (c) 2007-2010 Red Hat, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
__all__ = (
"Serializable",
"serialize_object",
"deserialize_object",
)
import dbus
import gobject
__serializable_name_dict = dict()
def serializable_register(classobj):
# if not issubclass(classobj, Serializable):
# raise "%s is not a sub-class of Serializable" % str(classobj)
__serializable_name_dict[classobj.__NAME__] = classobj
def serialize_object(o):
if isinstance(o, Serializable):
l = [o.__NAME__]
o.serialize(l)
return dbus.Struct(l)
else:
return o
def deserialize_object(v):
if isinstance(v, tuple):
struct = list(v)
type_name = struct.pop(0)
type_class = __serializable_name_dict[type_name]
o = type_class()
o.deserialize (struct)
return o
return v
class SerializableMeta(gobject.GObjectMeta):
def __init__(cls, name, bases, dict_):
super(SerializableMeta, cls).__init__(name, bases, dict_)
if "__NAME__" in cls.__dict__:
serializable_register(cls)
class Serializable(gobject.GObject):
__metaclass__ = SerializableMeta
__gtype_name__ = "PYEekSerializable"
__NAME__ = "EekSerializable"
def __init__(self):
super(Serializable, self).__init__()
def serialize(self, struct):
pass
def deserialize(self, struct):
pass
__serializable_name_dict["EekSerializable"] = Serializable

View File

@@ -1,47 +0,0 @@
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2011 Red Hat, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
import serializable
class Symbol(serializable.Serializable):
__gtype_name__ = "PYEekSymbol"
__NAME__ = "EekSymbol"
def __init__(self):
super(Symbol, self).__init__()
name = property(lambda self: self.__name)
label = property(lambda self: self.__label)
category = property(lambda self: self.__category)
modifier_mask = property(lambda self: self.__modifier_mask)
icon_name = property(lambda self: self.__icon_name)
def serialize(self, struct):
super(Symbol, self).serialize(struct)
struct.append(dbus.String(self.__name))
struct.append(dbus.String(self.__label))
struct.append(dbus.UInt32(self.__category))
struct.append(dbus.UInt32(self.__modifier_mask))
struct.append(dbus.String(self.__icon_name))
def deserialize(self, struct):
super(Symbol, self).deserialize(struct)
self.__name = struct.pop(0)
self.__label = struct.pop(0)
self.__category = struct.pop(0)
self.__modifier_mask = struct.pop(0)
self.__icon_name = struct.pop(0)

View File

@@ -1,35 +0,0 @@
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2011 Red Hat, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
import symbol
class Text(symbol.Symbol):
__gtype_name__ = "PYEekText"
__NAME__ = "EekText"
def __init__(self):
super(Text, self).__init__()
text = property(lambda self: self.__text)
def serialize(self, struct):
super(Text, self).serialize(struct)
struct.append(dbus.String(self.__text))
def deserialize(self, struct):
super(Text, self).deserialize(struct)
self.__text = struct.pop(0)

View File

@@ -1,77 +0,0 @@
# Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2010-2011 Red Hat, Inc.
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA
if ENABLE_VALA
vapidir = $(datadir)/vala/vapi
dist_vapi_DATA = \
eek-$(EEK_API_VERSION).vapi \
eek-clutter-$(EEK_API_VERSION).vapi \
eek-gtk-$(EEK_API_VERSION).vapi \
eek-xkb-$(EEK_API_VERSION).vapi \
eek-xkl-$(EEK_API_VERSION).vapi
MAINTAINERCLEANFILES = $(dist_vapi_DATA)
eek-$(EEK_API_VERSION).vapi:
$(VAPIGEN_V)$(VAPIGEN) \
--library eek-$(EEK_API_VERSION) \
--pkg gio-2.0 \
eek-$(EEK_API_VERSION)/eek-$(EEK_API_VERSION).gi
eek-clutter-$(EEK_API_VERSION).vapi: eek-$(EEK_API_VERSION).vapi
$(VAPIGEN_V)$(VAPIGEN) --vapidir=$(builddir) \
--library eek-clutter-$(EEK_API_VERSION) \
--pkg eek-$(EEK_API_VERSION) \
--pkg clutter-1.0 \
--pkg gio-2.0 \
--pkg atk \
eek-clutter-$(EEK_API_VERSION)/eek-clutter-$(EEK_API_VERSION).gi
eek-gtk-$(EEK_API_VERSION).vapi: eek-$(EEK_API_VERSION).vapi
$(VAPIGEN_V)$(VAPIGEN) --vapidir=$(builddir) \
--library eek-gtk-$(EEK_API_VERSION) \
--pkg eek-$(EEK_API_VERSION) \
--pkg gtk+-2.0 \
eek-gtk-$(EEK_API_VERSION)/eek-gtk-$(EEK_API_VERSION).gi
eek-xkb-$(EEK_API_VERSION).vapi: eek-$(EEK_API_VERSION).vapi
$(VAPIGEN_V)$(VAPIGEN) --vapidir=$(builddir) \
--library eek-xkb-$(EEK_API_VERSION) \
--pkg eek-$(EEK_API_VERSION) \
--pkg gio-2.0 \
eek-xkb-$(EEK_API_VERSION)/eek-xkb-$(EEK_API_VERSION).gi
eek-xkl-$(EEK_API_VERSION).vapi: eek-xkb-$(EEK_API_VERSION).vapi
$(VAPIGEN_V)$(VAPIGEN) --vapidir=$(builddir) \
--library eek-xkl-$(EEK_API_VERSION) \
--pkg eek-$(EEK_API_VERSION) \
--pkg eek-xkb-$(EEK_API_VERSION) --pkg gio-2.0 \
eek-xkl-$(EEK_API_VERSION)/eek-xkl-$(EEK_API_VERSION).gi
eekboard-$(EEK_API_VERSION).vapi:
$(VAPIGEN_V)$(VAPIGEN) \
--library eekboard-$(EEK_API_VERSION) \
--pkg eek-$(EEK_API_VERSION) \
--pkg gio-2.0 \
eek-$(EEK_API_VERSION)/eek-$(EEK_API_VERSION).gi
# set up the verbosity rules to avoid some build noise
VAPIGEN_V = $(VAPIGEN_V_$(V))
VAPIGEN_V_ = $(VAPIGEN_V_$(AM_DEFAULT_VERBOSITY))
VAPIGEN_V_0 = @echo " VAPIG " $@;
endif

View File

@@ -1,2 +0,0 @@
-DEEK_COMPILATION=1

View File

@@ -1,17 +0,0 @@
include/eek-0.90/eek/eek-container.h
include/eek-0.90/eek/eek-element.h
include/eek-0.90/eek/eek-enumtypes.h
include/eek-0.90/eek/eek-keyboard.h
include/eek-0.90/eek/eek-key.h
include/eek-0.90/eek/eek-keysym.h
include/eek-0.90/eek/eek-layout.h
include/eek-0.90/eek/eek-section.h
include/eek-0.90/eek/eek-serializable.h
include/eek-0.90/eek/eek-symbol.h
include/eek-0.90/eek/eek-symbol-matrix.h
include/eek-0.90/eek/eek-text.h
include/eek-0.90/eek/eek-theme.h
include/eek-0.90/eek/eek-types.h
include/eek-0.90/eek/eek-xml.h
include/eek-0.90/eek/eek-xml-layout.h
lib/libeek.so

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +0,0 @@
Eek cheader_filename="eek/eek.h"
EekBounds is_value_type="1"
eek_bounds_copy hidden="1"
eek_bounds_free hidden="1"
EekPoint is_value_type="1"
eek_point_copy hidden="1"
eek_point_free hidden="1"
EekOutline is_value_type="1"
eek_outline_copy hidden="1"
eek_outline_free hidden="1"
EekColor is_value_type="1"
eek_color_copy hidden="1"
eek_color_free hidden="1"
eek_color_new hidden="1"
eek_element_get_bounds.bounds is_out="1"
eek_element_get_absolute_position.x is_out="1"
eek_element_get_absolute_position.y is_out="1"
eek_element_get_symbol_index.group is_out="1"
eek_element_get_symbol_index.level is_out="1"

View File

@@ -1 +0,0 @@
Eek

View File

@@ -1,2 +0,0 @@
-DEEK_COMPILATION=1

View File

@@ -1,2 +0,0 @@
include/eek-0.90/eek/eek-clutter-keyboard.h
lib/libeek-clutter.so

View File

@@ -1,28 +0,0 @@
<?xml version="1.0"?>
<api version="1.0">
<namespace name="EekClutter">
<object name="EekClutterKeyboard" parent="ClutterGroup" type-name="EekClutterKeyboard" get-type="eek_clutter_keyboard_get_type">
<implements>
<interface name="ClutterScriptable"/>
<interface name="ClutterAnimatable"/>
<interface name="AtkImplementor"/>
<interface name="ClutterContainer"/>
</implements>
<constructor name="new" symbol="eek_clutter_keyboard_new">
<return-type type="ClutterActor*"/>
<parameters>
<parameter name="keyboard" type="EekKeyboard*"/>
</parameters>
</constructor>
<method name="set_theme" symbol="eek_clutter_keyboard_set_theme">
<return-type type="void"/>
<parameters>
<parameter name="keyboard" type="EekClutterKeyboard*"/>
<parameter name="theme" type="EekTheme*"/>
</parameters>
</method>
<property name="keyboard" type="EekKeyboard*" readable="0" writable="1" construct="0" construct-only="1"/>
</object>
<constant name="EEK_CLUTTER_KEYBOARD_H" type="int" value="1"/>
</namespace>
</api>

View File

@@ -1 +0,0 @@
EekClutter cheader_filename="eek/eek-clutter.h"

View File

@@ -1 +0,0 @@
EekClutter

View File

@@ -1,2 +0,0 @@
-DEEK_COMPILATION=1

View File

@@ -1,2 +0,0 @@
include/eek-0.90/eek/eek-gtk-keyboard.h
lib/libeek-gtk.so

View File

@@ -1,26 +0,0 @@
<?xml version="1.0"?>
<api version="1.0">
<namespace name="EekGtk">
<object name="EekGtkKeyboard" parent="GtkDrawingArea" type-name="EekGtkKeyboard" get-type="eek_gtk_keyboard_get_type">
<implements>
<interface name="AtkImplementor"/>
<interface name="GtkBuildable"/>
</implements>
<constructor name="new" symbol="eek_gtk_keyboard_new">
<return-type type="GtkWidget*"/>
<parameters>
<parameter name="keyboard" type="EekKeyboard*"/>
</parameters>
</constructor>
<method name="set_theme" symbol="eek_gtk_keyboard_set_theme">
<return-type type="void"/>
<parameters>
<parameter name="keyboard" type="EekGtkKeyboard*"/>
<parameter name="theme" type="EekTheme*"/>
</parameters>
</method>
<property name="keyboard" type="EekKeyboard*" readable="0" writable="1" construct="0" construct-only="1"/>
</object>
<constant name="EEK_GTK_KEYBOARD_H" type="int" value="1"/>
</namespace>
</api>

View File

@@ -1 +0,0 @@
EekGtk cheader_filename="eek/eek-gtk.h"

View File

@@ -1 +0,0 @@
EekGtk

View File

@@ -1,2 +0,0 @@
-DEEK_COMPILATION=1

View File

@@ -1,2 +0,0 @@
include/eek-0.90/eek/eek-xkb-layout.h
lib/libeek-xkb.so

View File

@@ -1,73 +0,0 @@
<?xml version="1.0"?>
<api version="1.0">
<namespace name="EekXkb">
<object name="EekXkbLayout" parent="EekLayout" type-name="EekXkbLayout" get-type="eek_xkb_layout_get_type">
<method name="get_geometry" symbol="eek_xkb_layout_get_geometry">
<return-type type="gchar*"/>
<parameters>
<parameter name="layout" type="EekXkbLayout*"/>
</parameters>
</method>
<method name="get_keycodes" symbol="eek_xkb_layout_get_keycodes">
<return-type type="gchar*"/>
<parameters>
<parameter name="layout" type="EekXkbLayout*"/>
</parameters>
</method>
<method name="get_symbols" symbol="eek_xkb_layout_get_symbols">
<return-type type="gchar*"/>
<parameters>
<parameter name="layout" type="EekXkbLayout*"/>
</parameters>
</method>
<constructor name="new" symbol="eek_xkb_layout_new">
<return-type type="EekLayout*"/>
</constructor>
<method name="set_geometry" symbol="eek_xkb_layout_set_geometry">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXkbLayout*"/>
<parameter name="geometry" type="gchar*"/>
</parameters>
</method>
<method name="set_keycodes" symbol="eek_xkb_layout_set_keycodes">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXkbLayout*"/>
<parameter name="keycodes" type="gchar*"/>
</parameters>
</method>
<method name="set_names" symbol="eek_xkb_layout_set_names">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXkbLayout*"/>
<parameter name="names" type="XkbComponentNamesRec*"/>
</parameters>
</method>
<method name="set_names_full" symbol="eek_xkb_layout_set_names_full">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXkbLayout*"/>
</parameters>
</method>
<method name="set_names_full_valist" symbol="eek_xkb_layout_set_names_full_valist">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXkbLayout*"/>
<parameter name="var_args" type="va_list"/>
</parameters>
</method>
<method name="set_symbols" symbol="eek_xkb_layout_set_symbols">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXkbLayout*"/>
<parameter name="symbols" type="gchar*"/>
</parameters>
</method>
<property name="geometry" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="keycodes" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="symbols" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
</object>
<constant name="EEK_XKB_LAYOUT_H" type="int" value="1"/>
</namespace>
</api>

View File

@@ -1,2 +0,0 @@
EekXkb cheader_filename="eek/eek-xkb.h"
eek_xkb_layout_set_names hidden="1"

View File

@@ -1 +0,0 @@
EekXkb

View File

@@ -1,2 +0,0 @@
-DEEK_COMPILATION=1

View File

@@ -1,2 +0,0 @@
include/eek-0.90/eek/eek-xkl-layout.h
lib/libeek-xkl.so

View File

@@ -1,105 +0,0 @@
<?xml version="1.0"?>
<api version="1.0">
<namespace name="EekXkl">
<object name="EekXklLayout" parent="EekXkbLayout" type-name="EekXklLayout" get-type="eek_xkl_layout_get_type">
<method name="disable_option" symbol="eek_xkl_layout_disable_option">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
<parameter name="option" type="gchar*"/>
</parameters>
</method>
<method name="enable_option" symbol="eek_xkl_layout_enable_option">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
<parameter name="option" type="gchar*"/>
</parameters>
</method>
<method name="get_layouts" symbol="eek_xkl_layout_get_layouts">
<return-type type="gchar**"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
</parameters>
</method>
<method name="get_model" symbol="eek_xkl_layout_get_model">
<return-type type="gchar*"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
</parameters>
</method>
<method name="get_option" symbol="eek_xkl_layout_get_option">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
<parameter name="option" type="gchar*"/>
</parameters>
</method>
<method name="get_options" symbol="eek_xkl_layout_get_options">
<return-type type="gchar**"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
</parameters>
</method>
<method name="get_variants" symbol="eek_xkl_layout_get_variants">
<return-type type="gchar**"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
</parameters>
</method>
<constructor name="new" symbol="eek_xkl_layout_new">
<return-type type="EekLayout*"/>
</constructor>
<method name="set_config" symbol="eek_xkl_layout_set_config">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
<parameter name="config" type="XklConfigRec*"/>
</parameters>
</method>
<method name="set_config_full" symbol="eek_xkl_layout_set_config_full">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
<parameter name="model" type="gchar*"/>
<parameter name="layouts" type="gchar**"/>
<parameter name="variants" type="gchar**"/>
<parameter name="options" type="gchar**"/>
</parameters>
</method>
<method name="set_layouts" symbol="eek_xkl_layout_set_layouts">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
<parameter name="layouts" type="gchar**"/>
</parameters>
</method>
<method name="set_model" symbol="eek_xkl_layout_set_model">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
<parameter name="model" type="gchar*"/>
</parameters>
</method>
<method name="set_options" symbol="eek_xkl_layout_set_options">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
<parameter name="options" type="gchar**"/>
</parameters>
</method>
<method name="set_variants" symbol="eek_xkl_layout_set_variants">
<return-type type="gboolean"/>
<parameters>
<parameter name="layout" type="EekXklLayout*"/>
<parameter name="variants" type="gchar**"/>
</parameters>
</method>
<property name="layouts" type="GStrv*" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="model" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="options" type="GStrv*" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="variants" type="GStrv*" readable="1" writable="1" construct="0" construct-only="0"/>
</object>
<constant name="EEK_XKL_LAYOUT_H" type="int" value="1"/>
</namespace>
</api>

View File

@@ -1,2 +0,0 @@
EekXkl cheader_filename="eek/eek-xkl.h"
eek_xkl_layout_set_config hidden="1"

View File

@@ -1 +0,0 @@
EekXkl

View File

@@ -1,2 +0,0 @@
-DEEKBOARD_COMPILATION

View File

@@ -1,2 +0,0 @@
include/eekboard-0.90/eekboard
lib/libeekboard.so

View File

@@ -1,340 +0,0 @@
<?xml version="1.0"?>
<api version="1.0">
<namespace name="Eekboard">
<function name="xkl_config_rec_from_string" symbol="eekboard_xkl_config_rec_from_string">
<return-type type="XklConfigRec*"/>
<parameters>
<parameter name="layouts" type="gchar*"/>
</parameters>
</function>
<function name="xkl_config_rec_to_string" symbol="eekboard_xkl_config_rec_to_string">
<return-type type="gchar*"/>
<parameters>
<parameter name="rec" type="XklConfigRec*"/>
</parameters>
</function>
<function name="xkl_list_layout_variants" symbol="eekboard_xkl_list_layout_variants">
<return-type type="GSList*"/>
<parameters>
<parameter name="registry" type="XklConfigRegistry*"/>
<parameter name="layout" type="gchar*"/>
</parameters>
</function>
<function name="xkl_list_layouts" symbol="eekboard_xkl_list_layouts">
<return-type type="GSList*"/>
<parameters>
<parameter name="registry" type="XklConfigRegistry*"/>
</parameters>
</function>
<function name="xkl_list_models" symbol="eekboard_xkl_list_models">
<return-type type="GSList*"/>
<parameters>
<parameter name="registry" type="XklConfigRegistry*"/>
</parameters>
</function>
<function name="xkl_list_option_groups" symbol="eekboard_xkl_list_option_groups">
<return-type type="GSList*"/>
<parameters>
<parameter name="registry" type="XklConfigRegistry*"/>
</parameters>
</function>
<function name="xkl_list_options" symbol="eekboard_xkl_list_options">
<return-type type="GSList*"/>
<parameters>
<parameter name="registry" type="XklConfigRegistry*"/>
<parameter name="group" type="gchar*"/>
</parameters>
</function>
<object name="EekboardClient" parent="GDBusProxy" type-name="EekboardClient" get-type="eekboard_client_get_type">
<implements>
<interface name="GInitable"/>
<interface name="GAsyncInitable"/>
</implements>
<method name="create_context" symbol="eekboard_client_create_context">
<return-type type="EekboardContext*"/>
<parameters>
<parameter name="eekboard" type="EekboardClient*"/>
<parameter name="client_name" type="gchar*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="destroy_context" symbol="eekboard_client_destroy_context">
<return-type type="void"/>
<parameters>
<parameter name="eekboard" type="EekboardClient*"/>
<parameter name="context" type="EekboardContext*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<constructor name="new" symbol="eekboard_client_new">
<return-type type="EekboardClient*"/>
<parameters>
<parameter name="connection" type="GDBusConnection*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</constructor>
<method name="pop_context" symbol="eekboard_client_pop_context">
<return-type type="void"/>
<parameters>
<parameter name="eekboard" type="EekboardClient*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="push_context" symbol="eekboard_client_push_context">
<return-type type="void"/>
<parameters>
<parameter name="eekboard" type="EekboardClient*"/>
<parameter name="context" type="EekboardContext*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<signal name="destroyed" when="LAST">
<return-type type="void"/>
<parameters>
<parameter name="self" type="EekboardClient*"/>
</parameters>
</signal>
</object>
<object name="EekboardContext" parent="GDBusProxy" type-name="EekboardContext" get-type="eekboard_context_get_type">
<implements>
<interface name="GInitable"/>
<interface name="GAsyncInitable"/>
</implements>
<method name="add_keyboard" symbol="eekboard_context_add_keyboard">
<return-type type="guint"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="keyboard" type="gchar*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="get_group" symbol="eekboard_context_get_group">
<return-type type="gint"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="hide_keyboard" symbol="eekboard_context_hide_keyboard">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="is_enabled" symbol="eekboard_context_is_enabled">
<return-type type="gboolean"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
</parameters>
</method>
<method name="is_keyboard_visible" symbol="eekboard_context_is_keyboard_visible">
<return-type type="gboolean"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
</parameters>
</method>
<constructor name="new" symbol="eekboard_context_new">
<return-type type="EekboardContext*"/>
<parameters>
<parameter name="connection" type="GDBusConnection*"/>
<parameter name="object_path" type="gchar*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</constructor>
<method name="press_keycode" symbol="eekboard_context_press_keycode">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="keycode" type="guint"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="release_keycode" symbol="eekboard_context_release_keycode">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="keycode" type="guint"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="remove_keyboard" symbol="eekboard_context_remove_keyboard">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="keyboard_id" type="guint"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="set_enabled" symbol="eekboard_context_set_enabled">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="enabled" type="gboolean"/>
</parameters>
</method>
<method name="set_fullscreen" symbol="eekboard_context_set_fullscreen">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="fullscreen" type="gboolean"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="set_group" symbol="eekboard_context_set_group">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="group" type="gint"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="set_keyboard" symbol="eekboard_context_set_keyboard">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="keyboard_id" type="guint"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<method name="show_keyboard" symbol="eekboard_context_show_keyboard">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContext*"/>
<parameter name="cancellable" type="GCancellable*"/>
</parameters>
</method>
<property name="visible" type="gboolean" readable="1" writable="0" construct="0" construct-only="0"/>
<signal name="destroyed" when="LAST">
<return-type type="void"/>
<parameters>
<parameter name="self" type="EekboardContext*"/>
</parameters>
</signal>
<signal name="disabled" when="LAST">
<return-type type="void"/>
<parameters>
<parameter name="self" type="EekboardContext*"/>
</parameters>
</signal>
<signal name="enabled" when="LAST">
<return-type type="void"/>
<parameters>
<parameter name="self" type="EekboardContext*"/>
</parameters>
</signal>
<signal name="key-pressed" when="LAST">
<return-type type="void"/>
<parameters>
<parameter name="self" type="EekboardContext*"/>
<parameter name="keyname" type="char*"/>
<parameter name="symbol" type="GObject*"/>
<parameter name="modifiers" type="guint"/>
</parameters>
</signal>
</object>
<object name="EekboardContextService" parent="GObject" type-name="EekboardContextService" get-type="eekboard_context_service_get_type">
<method name="disable" symbol="eekboard_context_service_disable">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContextService*"/>
</parameters>
</method>
<method name="enable" symbol="eekboard_context_service_enable">
<return-type type="void"/>
<parameters>
<parameter name="context" type="EekboardContextService*"/>
</parameters>
</method>
<method name="get_client_name" symbol="eekboard_context_service_get_client_name">
<return-type type="gchar*"/>
<parameters>
<parameter name="context" type="EekboardContextService*"/>
</parameters>
</method>
<method name="get_fullscreen" symbol="eekboard_context_service_get_fullscreen">
<return-type type="gboolean"/>
<parameters>
<parameter name="context" type="EekboardContextService*"/>
</parameters>
</method>
<method name="get_keyboard" symbol="eekboard_context_service_get_keyboard">
<return-type type="EekKeyboard*"/>
<parameters>
<parameter name="context" type="EekboardContextService*"/>
</parameters>
</method>
<property name="client-name" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="connection" type="GDBusConnection*" readable="1" writable="1" construct="1" construct-only="0"/>
<property name="fullscreen" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="keyboard" type="EekKeyboard*" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="object-path" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
<property name="visible" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
<signal name="disabled" when="LAST">
<return-type type="void"/>
<parameters>
<parameter name="self" type="EekboardContextService*"/>
</parameters>
</signal>
<signal name="enabled" when="LAST">
<return-type type="void"/>
<parameters>
<parameter name="self" type="EekboardContextService*"/>
</parameters>
</signal>
<vfunc name="create_keyboard">
<return-type type="EekKeyboard*"/>
<parameters>
<parameter name="self" type="EekboardContextService*"/>
<parameter name="keyboard_type" type="gchar*"/>
</parameters>
</vfunc>
<vfunc name="hide_keyboard">
<return-type type="void"/>
<parameters>
<parameter name="self" type="EekboardContextService*"/>
</parameters>
</vfunc>
<vfunc name="show_keyboard">
<return-type type="void"/>
<parameters>
<parameter name="self" type="EekboardContextService*"/>
</parameters>
</vfunc>
</object>
<object name="EekboardService" parent="GObject" type-name="EekboardService" get-type="eekboard_service_get_type">
<constructor name="new" symbol="eekboard_service_new">
<return-type type="EekboardService*"/>
<parameters>
<parameter name="object_path" type="gchar*"/>
<parameter name="connection" type="GDBusConnection*"/>
</parameters>
</constructor>
<property name="connection" type="GDBusConnection*" readable="1" writable="1" construct="1" construct-only="0"/>
<property name="object-path" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
<signal name="destroyed" when="LAST">
<return-type type="void"/>
<parameters>
<parameter name="object" type="EekboardService*"/>
</parameters>
</signal>
<vfunc name="create_context">
<return-type type="EekboardContextService*"/>
<parameters>
<parameter name="self" type="EekboardService*"/>
<parameter name="client_name" type="gchar*"/>
<parameter name="object_path" type="gchar*"/>
</parameters>
</vfunc>
</object>
<constant name="EEKBOARD_CLIENT_H" type="int" value="1"/>
<constant name="EEKBOARD_CONTEXT_H" type="int" value="1"/>
<constant name="EEKBOARD_CONTEXT_SERVICE_H" type="int" value="1"/>
<constant name="EEKBOARD_CONTEXT_SERVICE_INTERFACE" type="char*" value="org.fedorahosted.Eekboard.Context"/>
<constant name="EEKBOARD_CONTEXT_SERVICE_PATH" type="char*" value="/org/fedorahosted/Eekboard/Context_%d"/>
<constant name="EEKBOARD_SERVICE_H" type="int" value="1"/>
<constant name="EEKBOARD_SERVICE_INTERFACE" type="char*" value="org.fedorahosted.Eekboard"/>
<constant name="EEKBOARD_SERVICE_PATH" type="char*" value="/org/fedorahosted/Eekboard"/>
<constant name="EEKBOARD_XKLUTIL_H" type="int" value="1"/>
</namespace>
</api>

View File

@@ -1 +0,0 @@
Eekboard cheader_filename="eekboard/eekboard.h"

View File

@@ -1 +0,0 @@
Eekboard

17
cargo.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/sh
# This script manages Cargo operations
# while keeping the artifact directory within the build tree
# instead of the source tree
set -e
SCRIPT_PATH="$(realpath "$0")"
SOURCE_DIR="$(dirname "$SCRIPT_PATH")"
CARGO_TARGET_DIR="$(pwd)"
export CARGO_TARGET_DIR
cd "$SOURCE_DIR"
cargo "$@"

34
cargo_build.sh Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/sh
# This script manages Cargo builds
# while keeping the artifact directory within the build tree
# instead of the source tree
set -e
SCRIPT_PATH="$(realpath "$0")"
SOURCE_DIR="$(dirname "$SCRIPT_PATH")"
RELEASE=""
BINARY_DIR="debug"
if [ "${1}" = "--release" ]; then
shift
BINARY_DIR="release"
RELEASE="--release"
fi
if [ "${1}" = "--rename" ]; then
shift
FILENAME="${1}"
shift
fi
OUT_PATH="$(realpath "${1}")"
shift
OUT_BASENAME="$(basename "${OUT_PATH}")"
FILENAME="${FILENAME:-"${OUT_BASENAME}"}"
sh "$SOURCE_DIR"/cargo.sh build $RELEASE "$@"
if [ -n "${OUT_PATH}" ]; then
cp -a ./"${BINARY_DIR}"/"${FILENAME}" "${OUT_PATH}"
fi

View File

@@ -1,369 +0,0 @@
# Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2010-2011 Red Hat, Inc.
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA
AC_PREREQ(2.63)
dnl AC_CONFIG_SRCDIR([configure.ac])
AC_CONFIG_MACRO_DIR([m4])
AC_INIT([eekboard], [1.0.5], [ueno@unixuser.org])
dnl Init automake
AM_INIT_AUTOMAKE
AM_MAINTAINER_MODE([enable])
AC_GNU_SOURCE
dnl Support silent build
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
dnl Check for programs
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_CXX
# define PACKAGE_VERSION_* variables
AM_DISABLE_STATIC
AC_ISC_POSIX
AC_HEADER_STDC
LT_INIT
IT_PROG_INTLTOOL([0.35.0])
AC_MSG_CHECKING([which gtk+ version to compile against])
AC_ARG_WITH([gtk],
[AS_HELP_STRING([--with-gtk=2.0|3.0],[which gtk+ version to compile against (default: 3.0)])],
[case "$with_gtk" in
2.0|3.0) ;;
*) AC_MSG_ERROR([invalid gtk version specified]) ;;
esac],
[with_gtk=3.0])
AC_MSG_RESULT([$with_gtk])
case "$with_gtk" in
2.0) GTK_API_VERSION=2.0
GTK_REQUIRED=2.14.0
EEK_API_VERSION=0.90
EEK_API_MAJOR_VERSION=0
EEK_API_MINOR_VERSION=90
EEK_API_PC_VERSION=0.90
EEK_LIBRARY_SUFFIX="-$EEK_API_VERSION"
;;
3.0) GTK_API_VERSION=3.0
GTK_REQUIRED=2.91.0
EEK_API_VERSION=0.90
EEK_API_MAJOR_VERSION=0
EEK_API_MINOR_VERSION=90
EEK_API_PC_VERSION=0.90
EEK_LIBRARY_SUFFIX="-$EEK_API_VERSION"
;;
esac
AC_SUBST([GTK_API_VERSION])
AC_SUBST([EEK_API_VERSION])
AC_SUBST([EEK_API_MAJOR_VERSION])
AC_SUBST([EEK_API_MINOR_VERSION])
AC_SUBST([EEK_API_PC_VERSION])
AC_SUBST([EEK_LIBRARY_SUFFIX])
AC_SUBST([EEK_LIBRARY_SUFFIX_U],[AS_TR_SH([$EEK_LIBRARY_SUFFIX])])
AM_CONDITIONAL([HAVE_GTK_2],[test "$with_gtk" = "2.0"])
AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk" = "3.0"])
AM_PATH_GLIB_2_0
PKG_CHECK_MODULES([GLIB2], [glib-2.0 >= 2.26.0], ,
[AC_MSG_ERROR([GLib2 not found])])
PKG_CHECK_MODULES([GIO2], [gio-2.0], ,
[AC_MSG_ERROR([Gio2 not found])])
GLIB_GSETTINGS
PKG_CHECK_MODULES([PANGOCAIRO], [pangocairo], ,
[AC_MSG_ERROR([PangoCairo not found])])
PKG_CHECK_MODULES([GTK], [
gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
gdk-$GTK_API_VERSION >= $GTK_REQUIRED], ,
[AC_MSG_ERROR([GTK not found])])
PKG_CHECK_MODULES([XKB], [x11], ,
[AC_MSG_ERROR([XKB support not found])])
PKG_CHECK_MODULES([LIBXKLAVIER], [libxklavier x11], ,
[AC_MSG_ERROR([Libxklavier not found])])
PKG_CHECK_MODULES([LIBCROCO], [libcroco-0.6], ,
[AC_MSG_ERROR([libcroco not found])])
dnl use XTest to generate key events
AC_MSG_CHECKING([whether you enable XTest])
AC_ARG_ENABLE(xtest,
AS_HELP_STRING([--enable-xtest=no/yes],
[Enable XTest default=yes]),
enable_xtest=$enableval,
enable_xtest=yes)
if test x$enable_xtest = xyes; then
PKG_CHECK_MODULES([XTEST], [xtst], , enable_xtest=no)
if test x$enable_xtest = xyes; then
AC_DEFINE([HAVE_XTEST], [1], [Define if XTest is found])
fi
fi
AM_CONDITIONAL(ENABLE_XTEST, [test x$enable_xtest = xyes])
AC_MSG_RESULT($enable_xtest)
dnl use X to mark the fullscreen window as dock
AC_MSG_CHECKING([whether you enable X dock])
AC_ARG_ENABLE(x-dock,
AS_HELP_STRING([--enable-x-dock=no/yes],
[Enable X dock default=yes]),
enable_x_dock=$enableval,
enable_x_dock=yes)
if test x$enable_x_dock = xyes; then
PKG_CHECK_MODULES([XDOCK], [x11], , enable_x_dock=no)
if test x$enable_x_dock = xyes; then
AC_DEFINE([HAVE_XDOCK], [1], [Define if X dock is found])
fi
fi
AM_CONDITIONAL(ENABLE_XDOCK, [test x$enable_x_dock = xyes])
AC_MSG_RESULT($enable_x_dock)
focus_listeners=""
keystroke_listeners=""
focus_listeners=""
keystroke_listeners=""
dnl use AT-SPI 2 to capture focus/keystroke events
AC_MSG_CHECKING([whether you enable AT-SPI 2 event handling])
AC_ARG_ENABLE(atspi,
AS_HELP_STRING([--enable-atspi=no/yes],
[Enable AT-SPI 2 event handling default=yes]),
enable_atspi=$enableval,
enable_atspi=yes)
if test x$enable_atspi = xyes; then
PKG_CHECK_MODULES([ATSPI2], [atspi-2 dbus-glib-1], , enable_atspi=no)
if test x$enable_atspi = xyes; then
AC_DEFINE([HAVE_ATSPI], [1], [Define if AT-SPI 2 is found])
focus_listeners="atspi $focus_listeners"
keystroke_listeners="atspi $keystroke_listeners"
fi
fi
AC_MSG_RESULT($enable_atspi)
AM_CONDITIONAL(ENABLE_ATSPI, [test x$enable_atspi = xyes])
dnl use IBus to capture focus events
AC_MSG_CHECKING([whether you enable IBus focus tracking])
AC_ARG_ENABLE(ibus,
AS_HELP_STRING([--enable-ibus=no/yes],
[Enable IBus focus tracking default=yes]),
enable_ibus=$enableval,
enable_ibus=yes)
if test x$enable_ibus = xyes; then
PKG_CHECK_MODULES([IBUS], [ibus-1.0 >= 1.3.99], , enable_ibus=no)
if test x$enable_ibus = xyes; then
AC_DEFINE([HAVE_IBUS], [1], [Define if IBus is found])
focus_listeners="ibus $focus_listeners"
fi
fi
AC_MSG_RESULT($enable_ibus)
AM_CONDITIONAL(ENABLE_IBUS, [test x$enable_ibus = xyes])
if test -n "$focus_listeners"; then
AC_DEFINE(ENABLE_FOCUS_LISTENER, [1], [Define if eekboard can follow focus changes])
fi
dnl Python language binding
AC_MSG_CHECKING([whether you enable Python language support])
AC_ARG_ENABLE(python,
AS_HELP_STRING([--enable-python=no/yes],
[Enable Python language binding default=yes]),
enable_python=$enableval,
enable_python=yes)
dnl check python unconditionally to re-generate
dnl eek/*-keysym-labels.txt when maintainer-mode enabled
AM_PATH_PYTHON([2.5], , enable_python=no)
if test x"$enable_python" = x"yes"; then
if test x$enable_python = xyes; then
AC_PATH_PROGS(PYTHON_CONFIG, [python$PYTHON_VERSION-config python-config])
if test x"$PYTHON_CONFIG" != x""; then
PYTHON_CFLAGS=`$PYTHON_CONFIG --includes`
PYTHON_LIBS=`$PYTHON_CONFIG --libs`
else
PYTHON_CFLAGS=`$PYTHON $srcdir/python-config.py --includes`
PYTHON_LIBS=`$PYTHON $srcdir/python-config.py --libs`
fi
PYTHON_INCLUDES="$PYTHON_CFLAGS"
AC_SUBST(PYTHON_CFLAGS)
AC_SUBST(PYTHON_INCLUDES)
AC_SUBST(PYTHON_LIBS)
fi
fi
AC_MSG_RESULT($enable_python)
AM_CONDITIONAL(ENABLE_PYTHON, [test x$enable_python = xyes])
GOBJECT_INTROSPECTION_CHECK([0.9.0])
dnl Vala langauge binding
AC_MSG_CHECKING([whether you enable Vala language support])
AC_ARG_ENABLE(vala,
AS_HELP_STRING([--enable-vala=no/yes],
[Enable Vala language binding default=yes]),
enable_vala=$enableval,
enable_vala=yes)
if test x$enable_vala = xyes; then
if test "x$INTROSPECTION_SCANNER" = x; then
enable_vala=no
AC_MSG_WARN([GObject-Introspection must be enabled for Vala bindings])
fi
AM_PROG_VALAC([0.10.0])
have_vala=yes
AC_PATH_PROG(VALAC, valac, valac)
AC_SUBST(VALAC)
AC_SUBST(VALAFLAGS)
AC_PATH_PROG([VAPIGEN], [vapigen], [false])
if test "x$VAPIGEN" = "xfalse"; then
enable_vala=no
AC_MSG_WARN([vapigen not found. Was vala compiled with --enable-vapigen?])
fi
AC_SUBST(VAPIGEN)
fi
AC_MSG_RESULT($enable_vala)
AM_CONDITIONAL(ENABLE_VALA, [test x$enable_vala = xyes])
dnl clutter
AC_MSG_CHECKING([whether you enable clutter])
AC_ARG_ENABLE(clutter,
AS_HELP_STRING([--enable-clutter=no/yes],
[Enable clutter user interface default=no]),
enable_clutter=$enableval,
enable_clutter=no)
if test x$enable_clutter = xyes; then
PKG_CHECK_MODULES([CLUTTER], [clutter-1.0], , enable_clutter=no)
if test x$enable_clutter = xyes; then
AC_DEFINE([HAVE_CLUTTER], [1], [Define if clutter is found])
fi
fi
AM_CONDITIONAL(ENABLE_CLUTTER, [test x$enable_clutter = xyes])
AC_MSG_RESULT($enable_clutter)
dnl clutter-gtk
if test x$enable_clutter = xyes; then
AC_MSG_CHECKING([whether you enable clutter-gtk])
AC_ARG_ENABLE(clutter-gtk,
AS_HELP_STRING([--enable-clutter-gtk=no/yes],
[Enable clutter user interface default=yes]),
enable_clutter_gtk=$enableval,
enable_clutter_gtk=yes)
if test x$enable_clutter_gtk = xyes; then
PKG_CHECK_MODULES([CLUTTER_GTK], [clutter-gtk-1.0], ,
enable_clutter_gtk=no)
if test x$enable_clutter_gtk = xyes; then
AC_DEFINE([HAVE_CLUTTER_GTK], [1], [Define if Clutter-Gtk is found])
fi
fi
AC_MSG_RESULT($enable_clutter_gtk)
fi
AM_CONDITIONAL(ENABLE_CLUTTER_GTK, [test x$enable_clutter_gtk = xyes])
dnl libcanberra
AC_MSG_CHECKING([whether you enable libcanberra])
AC_ARG_ENABLE(libcanberra,
AS_HELP_STRING([--enable-libcanberra=no/yes],
[Enable clutter user interface default=no]),
enable_libcanberra=$enableval,
enable_libcanberra=yes)
if test x$enable_libcanberra = xyes; then
PKG_CHECK_MODULES([LIBCANBERRA], [libcanberra-gtk3], , enable_libcanberra=no)
if test x$enable_libcanberra = xyes; then
AC_DEFINE([HAVE_LIBCANBERRA], [1], [Define if libcanberra is found])
fi
fi
AM_CONDITIONAL(ENABLE_LIBCANBERRA, [test x$enable_libcanberra = xyes])
AC_MSG_RESULT($enable_libcanberra)
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
dnl define GETTEXT_* variables
GETTEXT_PACKAGE=$PACKAGE
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the read-only architecture-independent data directory.])
AM_GLIB_GNU_GETTEXT
AM_GLIB_DEFINE_LOCALEDIR(EEKBOARD_LOCALEDIR)
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile
eek/Makefile
eekboard/Makefile
src/Makefile
tests/Makefile
bindings/Makefile
bindings/python/Makefile
bindings/python/eekboard/Makefile
bindings/vala/Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/eek/Makefile
docs/reference/eekboard/Makefile
po/Makefile.in
data/Makefile
data/icons/Makefile
data/icons/16x16/Makefile
data/icons/22x22/Makefile
data/icons/24x24/Makefile
data/icons/32x32/Makefile
data/icons/48x48/Makefile
data/icons/scalable/Makefile
data/themes/Makefile
data/keyboards/Makefile
examples/Makefile
examples/eekxml/Makefile
examples/simple-client/Makefile
eek/eek-${EEK_API_VERSION}.pc
eek/eek-clutter-${EEK_API_VERSION}.pc
eek/eek-gtk-${EEK_API_VERSION}.pc
eek/eek-xkb-${EEK_API_VERSION}.pc
eek/eek-xkl-${EEK_API_VERSION}.pc
eekboard/eekboard-${EEK_API_VERSION}.pc])
AC_OUTPUT
AC_MSG_RESULT([
Build options:
Version $VERSION
Install prefix $prefix
Build shared libs $enable_shared
Build static libs $enable_static
CFLAGS $CFLAGS
GTK version $with_gtk
Build Clutter UI $enable_clutter
Build Vala binding $enable_vala
Build Python binding $enable_python
Sound support $enable_libcanberra
Build document $enable_gtk_doc
Focus listeners $focus_listeners
Keystroke listeners $keystroke_listeners
])

View File

@@ -1,34 +0,0 @@
SUBDIRS = icons themes keyboards
@GSETTINGS_RULES@
@INTLTOOL_XML_NOMERGE_RULE@
gsettings_schemas_in_files = org.fedorahosted.eekboard.gschema.xml.in
gsettings_SCHEMAS = $(gsettings_schemas_in_files:.gschema.xml.in=.gschema.xml)
servicedir = $(datadir)/dbus-1/services
service_in_files = eekboard-server.service.in
service_DATA = $(service_in_files:.service.in=.service)
$(service_DATA): $(service_in_files) Makefile
$(AM_V_GEN) sed -e "s|\@bindir\@|$(bindir)|" $< > $@
desktopdir = $(datadir)/applications
desktop_in_files = eekboard.desktop.in
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
if ENABLE_ATSPI
autostartdir = $(sysconfdir)/xdg/autostart
autostart_in_files = eekboard-autostart.desktop.in
autostart_DATA = $(autostart_in_files:.desktop.in=.desktop)
endif
@INTLTOOL_DESKTOP_RULE@
CLEANFILES = $(service_DATA) $(desktop_DATA) $(gsettings_SCHEMAS)
EXTRA_DIST = $(service_in_files) $(desktop_in_files) $(gsettings_schemas_in_files)
if ENABLE_ATSPI
CLEANFILES += $(autostart_DATA)
EXTRA_DIST += $(autostart_in_files)
endif

View File

@@ -0,0 +1,20 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<interface name="sm.puri.OSK0">
<method name="SetVisible">
<arg name="visible" type="b" direction="in"/>
<doc:doc><doc:description>
Switch keyboard visibility
</doc:description></doc:doc>
</method>
<method name="GetVisible">
<arg name="visible" type="b" direction="out"/>
<doc:doc><doc:description>
Get keyboard visibility
</doc:description></doc:doc>
</method>
<property name="Visible" type="b" access="read">
</property>
</interface>
</node>

View File

@@ -1,6 +0,0 @@
[Desktop Entry]
Name=Eekboard
Exec=eekboard -f
Type=Application
#AutostartCondition=GSettings org.gnome.desktop.a11y.applications screen-keyboard-enabled
X-GNOME-AutoRestart=true

View File

@@ -1,3 +0,0 @@
[D-BUS Service]
Name=org.fedorahosted.Eekboard
Exec=@bindir@/eekboard-server

View File

@@ -1,16 +0,0 @@
size = 16x16
icondir = $(datadir)/icons/hicolor/$(size)/apps
dist_icon_DATA = eekboard.png
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
install-data-hook:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 606 B

View File

@@ -1,16 +0,0 @@
size = 22x22
icondir = $(datadir)/icons/hicolor/$(size)/apps
dist_icon_DATA = eekboard.png
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
install-data-hook:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 892 B

View File

@@ -1,16 +0,0 @@
size = 24x24
icondir = $(datadir)/icons/hicolor/$(size)/apps
dist_icon_DATA = eekboard.png
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
install-data-hook:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 957 B

View File

@@ -1,16 +0,0 @@
size = 32x32
icondir = $(datadir)/icons/hicolor/$(size)/apps
dist_icon_DATA = eekboard.png
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
install-data-hook:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,16 +0,0 @@
size = 48x48
icondir = $(datadir)/icons/hicolor/$(size)/apps
dist_icon_DATA = eekboard.png
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
install-data-hook:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1 +0,0 @@
SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable

10
data/icons/key-enter.svg Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16"
version="1.1" viewBox="0 0 24 24">
<path d="M 24,1 L 24,10 C 24,15 20,17 17,17 L 7,17 L 10,20 L 10,23
L 7,23 L 0,15 L 7,7 L 10,7 L 10,10 L 7,13 L 17,13
C 19,13 20,12 20,10 L 20,1 Z"
stroke="none" fill="black" />
</svg>

After

Width:  |  Height:  |  Size: 388 B

8
data/icons/key-shift.svg Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16"
version="1.1" viewBox="0 0 24 24">
<path d="M 12,2 L 22,14 L 16,14 L 16,22 L 8,22 L 8,14 L 2,14 Z"
stroke="none" fill="black" />
</svg>

After

Width:  |  Height:  |  Size: 279 B

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg4043"
version="1.1"
viewBox="0 0 4.2333331 4.2333093"
height="4.2333093mm"
width="4.2333331mm">
<defs
id="defs4037" />
<metadata
id="metadata4040">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-86.329776,-68.097636)"
id="layer1">
<g
style="stroke-width:1.00004983;fill:#2e3436;fill-opacity:1"
transform="matrix(0.99990029,0,0,1,-7.1823833,-1.8799927)"
id="g842">
<g
style="stroke-width:1.00004983;fill:#2e3436;fill-opacity:1"
id="g836">
<path
id="path5166"
d="m 95.636719,69.978516 c -1.165869,0 -2.115235,0.949365 -2.115235,2.115234 0,1.165869 0.949366,2.117188 2.115235,2.117188 1.165869,0 2.117187,-0.951319 2.117187,-2.117188 0,-1.165869 -0.951318,-2.115234 -2.117187,-2.115234 z m 0,0.529296 c 0.879886,0 1.58789,0.706052 1.58789,1.585938 0,0.879886 -0.708004,1.587891 -1.58789,1.587891 -0.879886,0 -1.585938,-0.708005 -1.585938,-1.587891 0,-0.879886 0.706052,-1.585937 1.585938,-1.585938 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2e3436;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52919304;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
</g>
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2e3436;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26459652;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 95.636719,70.109375 c -0.144398,0 -0.27248,0.07793 -0.373047,0.189453 -0.100567,0.111521 -0.18209,0.261405 -0.25,0.439453 -0.135821,0.356096 -0.214844,0.830395 -0.214844,1.355469 0,0.525074 0.07902,1.001326 0.214844,1.357422 0.06791,0.178048 0.149433,0.327932 0.25,0.439453 0.100567,0.111521 0.228649,0.1875 0.373047,0.1875 0.144397,0 0.27248,-0.07598 0.373047,-0.1875 0.100566,-0.111521 0.182089,-0.261405 0.25,-0.439453 0.135821,-0.356096 0.216797,-0.832348 0.216796,-1.357422 0,-0.525074 -0.08097,-0.999373 -0.216796,-1.355469 -0.06791,-0.178048 -0.149434,-0.327932 -0.25,-0.439453 -0.100567,-0.111521 -0.22865,-0.189453 -0.373047,-0.189453 z m 0,0.265625 c 0.05067,0 0.109272,0.02564 0.177734,0.101562 0.06846,0.07592 0.139293,0.198356 0.199219,0.355469 0.119851,0.314227 0.197266,0.763915 0.197266,1.261719 0,0.497804 -0.07742,0.949446 -0.197266,1.263672 -0.05993,0.157113 -0.130756,0.279549 -0.199219,0.355469 -0.06846,0.07592 -0.12706,0.101562 -0.177734,0.101562 -0.05067,0 -0.107319,-0.02564 -0.175781,-0.101562 -0.06846,-0.07592 -0.139294,-0.198356 -0.199219,-0.355469 C 95.141867,73.043196 95.0625,72.591554 95.0625,72.09375 c 0,-0.497804 0.07937,-0.947492 0.199219,-1.261719 0.05993,-0.157113 0.130756,-0.279549 0.199219,-0.355469 C 95.5294,70.400643 95.586045,70.375 95.636719,70.375 Z"
id="circle5168" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2e3436;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26459652;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 93.697266,71.962891 v 0.263671 h 3.96875 v -0.263671 z"
id="path5170" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -1,14 +0,0 @@
icondir = $(datadir)/icons/hicolor/scalable/apps
dist_icon_DATA = eekboard.svg
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
install-data-hook:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 472 KiB

View File

@@ -1,32 +0,0 @@
keyboarddir = $(pkgdatadir)/keyboards
dist_keyboard_DATA = \
ar.xml \
be.xml \
fa.xml \
he.xml \
jp-kana.xml \
kk.xml \
ks.xml \
my.xml \
ru.xml \
th.xml \
ua.xml \
ug.xml \
us.xml \
zh-bopomofo.xml \
$(inscript_keyboards)
inscript_keyboards = \
as-inscript.xml \
bn-inscript.xml \
gu-inscript.xml \
hi-inscript.xml \
kn-inscript.xml \
ks-inscript.xml \
mai-inscript.xml \
ml-inscript.xml \
mr-inscript.xml \
or-inscript.xml \
pa-inscript.xml \
sd-inscript.xml \
ta-inscript.xml \
te-inscript.xml

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="ّ" category="letter">ّ</text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="١" category="letter">١</text>
<keysym name="exclam" label="!" category="letter" keyval="33">exclam</keysym>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="٢" category="letter">٢</text>
<keysym name="at" label="@" category="letter" keyval="64">at</keysym>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="٣" category="letter">٣</text>
<keysym name="numbersign" label="#" category="letter" keyval="35">numbersign</keysym>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="٤" category="letter">٤</text>
<keysym name="dollar" label="$" category="letter" keyval="36">dollar</keysym>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="٥" category="letter">٥</text>
<keysym name="percent" label="%" category="letter" keyval="37">percent</keysym>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="٦" category="letter">٦</text>
<keysym name="asciicircum" label="^" category="letter" keyval="94">asciicircum</keysym>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="٧" category="letter">٧</text>
<keysym name="ampersand" label="&amp;" category="letter" keyval="38">ampersand</keysym>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="٨" category="letter">٨</text>
<keysym name="asterisk" label="*" category="letter" keyval="42">asterisk</keysym>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="٩" category="letter">٩</text>
<text name="parenleft" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="٠" category="letter">٠</text>
<text name="parenright" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="minus" label="-" category="letter" keyval="45">minus</keysym>
<keysym name="underscore" label="_" category="letter" keyval="95">underscore</keysym>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="equal" label="=" category="letter" keyval="61">equal</keysym>
<keysym name="plus" label="+" category="letter" keyval="43">plus</keysym>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ض" category="letter">ض</text>
<text name="Q" label="َ" category="letter">َ</text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ص" category="letter">ص</text>
<text name="W" label="ً" category="letter">ً</text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ث" category="letter">ث</text>
<text name="E" label="ُ" category="letter">ُ</text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ق" category="letter">ق</text>
<text name="R" label="ٌ" category="letter">ٌ</text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ف" category="letter">ف</text>
<text name="T" label="لإ" category="letter">لإ</text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="غ" category="letter">غ</text>
<text name="Y" label="إ" category="letter">إ</text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="ع" category="letter">ع</text>
<text name="U" label="`" category="letter">`</text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ه" category="letter">ه</text>
<text name="I" label="÷" category="letter">÷</text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="خ" category="letter">خ</text>
<text name="O" label="×" category="letter">×</text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="ح" category="letter">ح</text>
<text name="P" label="؛" category="letter">؛</text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ج" category="letter">ج</text>
<text name="braceleft" label="&gt;" category="letter">&gt;</text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="د" category="letter">د</text>
<text name="braceright" label="&lt;" category="letter">&lt;</text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<keysym name="backslash" label="\" category="letter" keyval="92">backslash</keysym>
<keysym name="bar" label="|" category="letter" keyval="124">bar</keysym>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ش" category="letter">ش</text>
<text name="A" label="ِ" category="letter">ِ</text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="س" category="letter">س</text>
<text name="S" label="ٍ" category="letter">ٍ</text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="ي" category="letter">ي</text>
<text name="D" label="]" category="letter">]</text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ب" category="letter">ب</text>
<text name="F" label="[" category="letter">[</text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ل" category="letter">ل</text>
<text name="G" label="لأ" category="letter">لأ</text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="ا" category="letter">ا</text>
<text name="H" label="أ" category="letter">أ</text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="ت" category="letter">ت</text>
<text name="J" label="ـ" category="letter">ـ</text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="ن" category="letter">ن</text>
<text name="K" label="،" category="letter">،</text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="م" category="letter">م</text>
<text name="L" label="/" category="letter">/</text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="ك" category="letter">ك</text>
<keysym name="colon" label=":" category="letter" keyval="58">colon</keysym>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<keysym name="quotedbl" label="&quot;" category="letter" keyval="34">quotedbl</keysym>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="ئ" category="letter">ئ</text>
<text name="Z" label="~" category="letter">~</text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ء" category="letter">ء</text>
<text name="X" label="ْ" category="letter">ْ</text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="ؤ" category="letter">ؤ</text>
<text name="C" label="}" category="letter">}</text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="ر" category="letter">ر</text>
<text name="V" label="{" category="letter">{</text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="لا" category="letter">لا</text>
<text name="B" label="لآ" category="letter">لآ</text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="ى" category="letter">ى</text>
<text name="N" label="آ" category="letter">آ</text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="ة" category="letter">ة</text>
<text name="M" label="&apos;" category="letter">&apos;</text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="و" category="letter">و</text>
<text name="less" label="," category="letter">,</text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="ز" category="letter">ز</text>
<text name="greater" label="." category="letter">.</text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="ظ" category="letter">ظ</text>
<text name="question" label="؟" category="letter">؟</text>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="~" category="letter">~</text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="১" category="letter"></text>
<text name="exclam" label="!" category="letter">!</text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="২" category="letter"></text>
<text name="at" label="@" category="letter">@</text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="৩" category="letter"></text>
<text name="numbersign" label="্ৰ" category="letter">্ৰ</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="" category="letter"></text>
<text name="dollar" label="ৰ্" category="letter">ৰ্</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="৫" category="letter"></text>
<text name="percent" label="জ্ঞ" category="letter">জ্ঞ</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="৬" category="letter"></text>
<text name="asciicircum" label="ত্ৰ" category="letter">ত্ৰ</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="" category="letter"></text>
<text name="ampersand" label="ক্ষ" category="letter">ক্ষ</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="৮" category="letter"></text>
<text name="asterisk" label="শ্ৰ" category="letter">শ্ৰ</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="৯" category="letter"></text>
<text name="parenleft" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="" category="letter"></text>
<text name="parenright" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="-" category="letter">-</text>
<text name="underscore" label="ঃ" category="letter"></text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="ৃ" category="letter"></text>
<text name="plus" label="ঋ" category="letter"></text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ৌ" category="letter"></text>
<text name="Q" label="ঔ" category="letter"></text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ৈ" category="letter"></text>
<text name="W" label="ঐ" category="letter"></text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="া" category="letter"></text>
<text name="E" label="আ" category="letter"></text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ী" category="letter"></text>
<text name="R" label="ঈ" category="letter"></text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ূ" category="letter"></text>
<text name="T" label="ঊ" category="letter"></text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="ব" category="letter"></text>
<text name="Y" label="ভ" category="letter"></text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="হ" category="letter"></text>
<text name="U" label="ঙ" category="letter"></text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="গ" category="letter"></text>
<text name="I" label="ঘ" category="letter"></text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="দ" category="letter"></text>
<text name="O" label="ধ" category="letter"></text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="জ" category="letter"></text>
<text name="P" label="ঝ" category="letter"></text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ড" category="letter"></text>
<text name="braceleft" label="ঢ" category="letter"></text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="়" category="letter"></text>
<text name="braceright" label="ঞ" category="letter"></text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="য" category="letter"></text>
<text name="bar" label="|" category="letter">|</text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ো" category="letter"></text>
<text name="A" label="ও" category="letter"></text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="ে" category="letter"></text>
<text name="S" label="এ" category="letter"></text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="্" category="letter"></text>
<text name="D" label="অ" category="letter"></text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ি" category="letter">ি</text>
<text name="F" label="ই" category="letter"></text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ু" category="letter"></text>
<text name="G" label="উ" category="letter"></text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="প" category="letter"></text>
<text name="H" label="ফ" category="letter"></text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="ৰ" category="letter"></text>
<text name="J" label="J" category="letter">J</text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="ক" category="letter"></text>
<text name="K" label="খ" category="letter"></text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="ত" category="letter"></text>
<text name="L" label="থ" category="letter"></text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="চ" category="letter"></text>
<text name="colon" label="ছ" category="letter"></text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="ঠ" category="letter"></text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="ৎ" category="letter"></text>
<text name="Z" label="৺" category="letter"></text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ং" category="letter"></text>
<text name="X" label="ঁ" category="letter"></text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="ম" category="letter"></text>
<text name="C" label="ণ" category="letter"></text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="ন" category="letter"></text>
<text name="V" label="V" category="letter">V</text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="ৱ" category="letter"></text>
<text name="B" label="B" category="letter">B</text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="ল" category="letter"></text>
<text name="N" label="N" category="letter">N</text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="স" category="letter"></text>
<text name="M" label="শ" category="letter"></text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="," category="letter">,</text>
<text name="less" label="ষ" category="letter"></text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="." category="letter">.</text>
<text name="greater" label="।" category="letter"></text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="য়" category="letter"></text>
<keysym name="question" label="?" category="letter" keyval="63">question</keysym>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="Ё" category="letter">Ё</text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="1" label="1" category="letter" keyval="49">1</keysym>
<text name="exclam" label="!" category="letter">!</text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="2" label="2" category="letter" keyval="50">2</keysym>
<text name="at" label="&quot;" category="letter">&quot;</text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="3" label="3" category="letter" keyval="51">3</keysym>
<text name="numbersign" label="№" category="letter"></text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="4" label="4" category="letter" keyval="52">4</keysym>
<text name="dollar" label=";" category="letter">;</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<keysym name="5" label="5" category="letter" keyval="53">5</keysym>
<text name="percent" label="%" category="letter">%</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="6" label="6" category="letter" keyval="54">6</keysym>
<text name="asciicircum" label=":" category="letter">:</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="7" label="7" category="letter" keyval="55">7</keysym>
<text name="ampersand" label="?" category="letter">?</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="8" label="8" category="letter" keyval="56">8</keysym>
<text name="asterisk" label="*" category="letter">*</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="9" label="9" category="letter" keyval="57">9</keysym>
<text name="parenleft" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="0" label="0" category="letter" keyval="48">0</keysym>
<text name="parenright" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="minus" label="-" category="letter" keyval="45">minus</keysym>
<text name="underscore" label="_" category="letter">_</text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="equal" label="=" category="letter" keyval="61">equal</keysym>
<text name="plus" label="+" category="letter">+</text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="й" category="letter">й</text>
<text name="Q" label="Й" category="letter">Й</text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ц" category="letter">ц</text>
<text name="W" label="Ц" category="letter">Ц</text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="у" category="letter">у</text>
<text name="E" label="У" category="letter">У</text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="к" category="letter">к</text>
<text name="R" label="К" category="letter">К</text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="е" category="letter">е</text>
<text name="T" label="Е" category="letter">Е</text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="н" category="letter">н</text>
<text name="Y" label="Н" category="letter">Н</text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="г" category="letter">г</text>
<text name="U" label="Г" category="letter">Г</text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ш" category="letter">ш</text>
<text name="I" label="Ш" category="letter">Ш</text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="ў" category="letter">ў</text>
<text name="O" label="Ў" category="letter">Ў</text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="з" category="letter">з</text>
<text name="P" label="З" category="letter">З</text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="х" category="letter">х</text>
<text name="braceleft" label="Х" category="letter">Х</text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="&apos;" category="letter">&apos;</text>
<text name="braceright" label="&apos;" category="letter">&apos;</text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="\" category="letter">\</text>
<text name="bar" label="|" category="letter">|</text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ф" category="letter">ф</text>
<text name="A" label="Ф" category="letter">Ф</text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="ы" category="letter">ы</text>
<text name="S" label="Ы" category="letter">Ы</text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="в" category="letter">в</text>
<text name="D" label="В" category="letter">В</text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="а" category="letter">а</text>
<text name="F" label="А" category="letter">А</text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="п" category="letter">п</text>
<text name="G" label="П" category="letter">П</text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="р" category="letter">р</text>
<text name="H" label="Р" category="letter">Р</text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="о" category="letter">о</text>
<text name="J" label="О" category="letter">О</text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="л" category="letter">л</text>
<text name="K" label="Л" category="letter">Л</text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="д" category="letter">д</text>
<text name="L" label="Д" category="letter">Д</text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="ж" category="letter">ж</text>
<text name="colon" label="Ж" category="letter">Ж</text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="Э" category="letter">Э</text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="я" category="letter">я</text>
<text name="Z" label="Я" category="letter">Я</text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ч" category="letter">ч</text>
<text name="X" label="Ч" category="letter">Ч</text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="с" category="letter">с</text>
<text name="C" label="С" category="letter">С</text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="м" category="letter">м</text>
<text name="V" label="М" category="letter">М</text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="і" category="letter">і</text>
<text name="B" label="І" category="letter">І</text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="т" category="letter">т</text>
<text name="N" label="Т" category="letter">Т</text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="ь" category="letter">ь</text>
<text name="M" label="Ь" category="letter">Ь</text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="б" category="letter">б</text>
<text name="less" label="Б" category="letter">Б</text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="ю" category="letter">ю</text>
<text name="greater" label="Ю" category="letter">Ю</text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="." category="letter">.</text>
<text name="question" label="," category="letter">,</text>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="~" category="letter">~</text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="১" category="letter"></text>
<text name="exclam" label="!" category="letter">!</text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="২" category="letter"></text>
<text name="at" label="@" category="letter">@</text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="৩" category="letter"></text>
<text name="numbersign" label="#" category="letter">#</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="" category="letter"></text>
<text name="dollar" label="$" category="letter">$</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="৫" category="letter"></text>
<text name="percent" label="%" category="letter">%</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="৬" category="letter"></text>
<text name="asciicircum" label="^" category="letter">^</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="" category="letter"></text>
<text name="ampersand" label="&amp;" category="letter">&amp;</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="৮" category="letter"></text>
<text name="asterisk" label="*" category="letter">*</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="৯" category="letter"></text>
<text name="parenleft" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="" category="letter"></text>
<text name="parenright" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="-" category="letter">-</text>
<text name="underscore" label="ঃ" category="letter"></text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="ৃ" category="letter"></text>
<text name="plus" label="ঋ" category="letter"></text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ৌ" category="letter"></text>
<text name="Q" label="ঔ" category="letter"></text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ৈ" category="letter"></text>
<text name="W" label="ঐ" category="letter"></text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="া" category="letter"></text>
<text name="E" label="আ" category="letter"></text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ী" category="letter"></text>
<text name="R" label="ঈ" category="letter"></text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ূ" category="letter"></text>
<text name="T" label="ঊ" category="letter"></text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="ব" category="letter"></text>
<text name="Y" label="ভ" category="letter"></text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="হ" category="letter"></text>
<text name="U" label="ঙ" category="letter"></text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="গ" category="letter"></text>
<text name="I" label="ঘ" category="letter"></text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="দ" category="letter"></text>
<text name="O" label="ধ" category="letter"></text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="জ" category="letter"></text>
<text name="P" label="ঝ" category="letter"></text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ড" category="letter"></text>
<text name="braceleft" label="ঢ" category="letter"></text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="়" category="letter"></text>
<text name="braceright" label="ঞ" category="letter"></text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="\" category="letter">\</text>
<text name="bar" label="|" category="letter">|</text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ো" category="letter"></text>
<text name="A" label="ও" category="letter"></text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="ে" category="letter"></text>
<text name="S" label="এ" category="letter"></text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="্" category="letter"></text>
<text name="D" label="অ" category="letter"></text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ি" category="letter">ি</text>
<text name="F" label="ই" category="letter"></text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ু" category="letter"></text>
<text name="G" label="উ" category="letter"></text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="প" category="letter"></text>
<text name="H" label="ফ" category="letter"></text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="র" category="letter"></text>
<text name="J" label="J" category="letter">J</text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="ক" category="letter"></text>
<text name="K" label="খ" category="letter"></text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="ত" category="letter"></text>
<text name="L" label="থ" category="letter"></text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="চ" category="letter"></text>
<text name="colon" label="ছ" category="letter"></text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="ঠ" category="letter"></text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="z" category="letter">z</text>
<text name="Z" label="Z" category="letter">Z</text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ং" category="letter"></text>
<text name="X" label="ঁ" category="letter"></text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="ম" category="letter"></text>
<text name="C" label="ণ" category="letter"></text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="ন" category="letter"></text>
<text name="V" label="V" category="letter">V</text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="ব" category="letter"></text>
<text name="B" label="B" category="letter">B</text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="ল" category="letter"></text>
<text name="N" label="N" category="letter">N</text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="স" category="letter"></text>
<text name="M" label="শ" category="letter"></text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="," category="letter">,</text>
<text name="less" label="ষ" category="letter"></text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="." category="letter">.</text>
<text name="greater" label="।" category="letter"></text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="য়" category="letter"></text>
<text name="question" label="য" category="letter"></text>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

89
data/keyboards/de.yaml Normal file
View File

@@ -0,0 +1,89 @@
# Maintained by: Mark Müller <markmueller86@gmail.com>
---
bounds: { x: 0, y: 1, width: 360, height: 208 }
outlines:
default:
bounds: { x: 0, y: 0, width: 35.33, height: 52 }
altline:
bounds: { x: 0, y: 0, width: 52.67, height: 52 }
wide:
bounds: { x: 0, y: 0, width: 62, height: 52 }
spaceline:
bounds: { x: 0, y: 0, width: 99.67, height: 52 }
special:
bounds: { x: 0, y: 0, width: 35.33, height: 52 }
views:
base:
- "q w e r t z u i o p"
- "a s d f g h j k l"
- "Shift_L y x c v b n m BackSpace"
- "show_numbers show_eschars preferences space , . Return"
upper:
- "Q W E R T Z U I O P"
- "A S D F G H J K L"
- "Shift_L Y X C V B N M BackSpace"
- "show_numbers show_eschars preferences space ! ? Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # € % & - _ + ( )"
- "show_symbols , \" ' : = < > BackSpace"
- "show_letters show_eschars preferences space , . Return"
symbols:
- "~ ` ´ | · √ µ ÷ × ¶"
- "© ® £ $ ¥ ^ ° * { }"
- "show_numbers \\ / § π τ [ ] BackSpace"
- "show_letters show_eschars preferences space , . Return"
eschars:
- "ä è é ö ü Ä È É Ö Ü"
- "à â ê î ô À Â È Î Ô"
- "show_numbers « » ç Ç æ œ ß BackSpace"
- "show_letters show_eschars preferences space „ “ Return"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
keysym: "BackSpace"
preferences:
action: "show_prefs"
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "abc"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
show_eschars:
action:
locking:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "äÄ"
space:
outline: "spaceline"
label: " "
text: " "
Return:
outline: "altline"
icon: "key-enter"
keysym: "Return"

View File

@@ -0,0 +1,88 @@
# Maintained by: Mark Müller <markmueller86@gmail.com>
---
bounds: { x: 0, y: 1, width: 540, height: 168 }
outlines:
default:
bounds: { x: 0, y: 0, width: 48, height: 42 }
altline:
bounds: { x: 0, y: 0, width: 81, height: 42 }
wide:
bounds: { x: 0, y: 0, width: 108, height: 42 }
spaceline:
bounds: { x: 0, y: 0, width: 216, height: 42 }
special:
bounds: { x: 0, y: 0, width: 48, height: 42 }
views:
base:
- "q w e r t z u i o p ü"
- "a s d f g h j k l ö ä"
- "Shift_L y x c v b n m BackSpace"
- "show_numbers preferences space , . Return"
upper:
- "Q W E R T Z U I O P Ü"
- "A S D F G H J K L Ö Ä"
- "Shift_L Y X C V B N M BackSpace"
- "show_numbers preferences space ! ? Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # % & - _ + ( ) ß"
- "show_symbols , \" ' : = < > BackSpace"
- "show_letters preferences space , . Return"
symbols:
- "~ ` ´ · © ® ÷ × ¶"
- "€ £ $ ¥ ^ ° * { } |"
- "show_numbers \\ / § π τ [ ] BackSpace"
- "show_letters preferences space , . Return"
eschars:
- "ä è é ö ü Ä È É Ö Ü"
- "à â ê î ô À Â È Î Ô"
- "show_numbers « » ç Ç æ œ ß BackSpace"
- "show_letters preferences space „ “ Return"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
keysym: "BackSpace"
preferences:
action: "show_prefs"
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "abc"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
show_eschars:
action:
locking:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "äÄ"
space:
outline: "spaceline"
text: " "
Return:
outline: "altline"
icon: "key-enter"
keysym: "Return"

198
data/keyboards/el.yaml Normal file
View File

@@ -0,0 +1,198 @@
# Greek layout created by Antonis Tsolomitis
# University of the Aegean, Department of Mathematics, atsol@aegean.gr
# Sep 2019
---
bounds: { x: 0, y: 0.33, width: 360, height: 210 }
outlines:
default:
bounds: { x: 0, y: 0, width: 32, height: 52 }
altline:
bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
wide:
bounds: { x: 0, y: 0, width: 62, height: 52 }
outline7:
bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
spaceline:
bounds: { x: 0, y: 0, width: 150.5853, height: 52 }
views:
base:
- "; ς ε ρ τ υ θ ι ο π !"
- "α σ δ φ γ η ξ κ λ show_accented"
- "Shift_L ζ χ ψ ω β ν μ , BackSpace"
- "show_numbers preferences space period Return"
upper:
- ": EuroSign Ε Ρ Τ Υ Θ Ι Ο Π"
- "Α Σ Δ Φ Γ Η Ξ Κ Λ show_accented"
- "Shift_L Ζ Χ Ψ Ω Β Ν Μ · BackSpace"
- "show_numbers preferences space « » Return"
accented:
- "ά έ ή ί ό ύ ώ ϊ ϋ ΐ"
- "ΰ Ά Έ Ή Ί Ό Ύ Ώ Ϊ show_base"
- "Ϋ Ϗ ϐ ϑ ϕ ϖ ϗ — BackSpace"
- "show_numbers preferences space quoteleft quoteright Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
- "show_symbols comma quotedbl quoteright colon semicolon exclam question BackSpace"
- "show_letters preferences space period Return"
symbols:
- "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
- "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
- "show_numbers backslash slash less greater equal bracketleft bracketright BackSpace"
- "show_letters preferences space period Return"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
keysym: "BackSpace"
preferences:
action: "show_prefs"
outline: "altline"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "ΑΒΓ"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
show_accented:
action:
locking:
lock_view: "accented"
unlock_view: "base"
outline: "altline"
label: "άΐ"
show_base:
action:
set_view: "base"
outline: "altline"
label: "αι"
period:
outline: "altline"
text: "."
space:
outline: spaceline
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
aring:
text: "å"
Aring:
text: "Å"
oslash:
text: "ø"
Oslash:
text: "Ø"
ae:
text: "æ"
AE:
text: "Æ"
asterisk:
text: "*"
asciitilde:
text: "~"
quoteleft:
text: "`"
bar:
text: "|"
U00B7:
text: "·"
squareroot:
text: "√"
Greek_pi:
text: "π"
division:
text: "÷"
multiply:
text: "×"
paragraph:
text: "¶"
Greek_tau:
text: "τ"
copyright:
text: "©"
numbersign:
text: "#"
U00AE:
text: "®"
at:
text: "@"
dollar:
text: "$"
U00A3:
text: "£"
percent:
text: "%"
EuroSign:
text: "€"
ampersand:
text: "&"
U00A5:
text: "¥"
minus:
text: "-"
asciicircum:
text: "^"
underscore:
text: "_"
degree:
text: "°"
plus:
text: "+"
equal:
text: "="
parenleft:
text: "("
parenright:
text: ")"
braceleft:
text: "{"
braceright:
text: "}"
comma:
text: ","
backslash:
text: "\\"
slash:
text: "/"
quotedbl:
text: "\""
quoteright:
text: "'"
less:
text: "<"
greater:
text: ">"
colon:
text: ":"
semicolon:
text: ";"
exclam:
text: "!"
question:
text: "?"
bracketleft:
text: "["
bracketright:
text: "]"

94
data/keyboards/es.yaml Normal file
View File

@@ -0,0 +1,94 @@
---
bounds: { x: 0, y: 1, width: 360, height: 210 }
outlines:
default:
bounds: { x: 0, y: 0, width: 35.33, height: 52 }
altline:
bounds: { x: 0, y: 0, width: 52.67, height: 52 }
wide:
bounds: { x: 0, y: 0, width: 62, height: 52 }
spaceline:
bounds: { x: 0, y: 0, width: 99.67, height: 52 }
special:
bounds: { x: 0, y: 0, width: 44, height: 52 }
views:
base:
- "q w e r t y u i o p"
- "a s d f g h j k l ñ"
- "Shift_L z x c v b n m BackSpace"
- "show_numbers show_eschars preferences space ? period Return"
upper:
- "Q W E R T Y U I O P"
- "A S D F G H J K L Ñ"
- "Shift_L Z X C V B N M BackSpace"
- "show_numbers show_eschars preferences space ¿ period Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # € % & - _ + ( )"
- "show_symbols , \" ' colon ; ! = BackSpace"
- "show_letters show_eschars preferences space ? period Return"
symbols:
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ $ ¥ ^ ° * { }"
- "show_numbers \\ / < > = [ ] BackSpace"
- "show_letters show_eschars preferences space ? period Return"
eschars:
- "á é í ó ú Á É Í Ó Ú"
- "à è ì ò ù À È Ì Ò Ù"
- "show_numbers ü ç ï Ü Ç Ï ¡ BackSpace"
- "show_letters show_eschars preferences space « » Return"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
keysym: "BackSpace"
preferences:
action: "show_prefs"
outline: "default"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "abc"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
show_eschars:
action:
locking:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "áÁ"
period:
outline: "default"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "altline"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<keysym name="asciitilde" label="~" category="letter" keyval="126">asciitilde</keysym>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="۱" category="letter">۱</text>
<keysym name="exclam" label="!" category="letter" keyval="33">exclam</keysym>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="۲" category="letter">۲</text>
<text name="at" label="٬" category="letter">٬</text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="۳" category="letter">۳</text>
<text name="numbersign" label="٫" category="letter">٫</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="۴" category="letter">۴</text>
<keysym name="dollar" label="$" category="letter" keyval="36">dollar</keysym>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="۵" category="letter">۵</text>
<text name="percent" label="٪" category="letter">٪</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="۶" category="letter">۶</text>
<text name="asciicircum" label="×" category="letter">×</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="۷" category="letter">۷</text>
<text name="ampersand" label="،" category="letter">،</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="۸" category="letter">۸</text>
<keysym name="asterisk" label="*" category="letter" keyval="42">asterisk</keysym>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="۹" category="letter">۹</text>
<text name="parenleft" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="۰" category="letter">۰</text>
<text name="parenright" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="minus" label="-" category="letter" keyval="45">minus</keysym>
<keysym name="underscore" label="_" category="letter" keyval="95">underscore</keysym>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="equal" label="=" category="letter" keyval="61">equal</keysym>
<keysym name="plus" label="+" category="letter" keyval="43">plus</keysym>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ض" category="letter">ض</text>
<text name="Q" label="ْ" category="letter">ْ</text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ص" category="letter">ص</text>
<text name="W" label="ٌ" category="letter">ٌ</text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ث" category="letter">ث</text>
<text name="E" label="ٍ" category="letter">ٍ</text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ق" category="letter">ق</text>
<text name="R" label="ً" category="letter">ً</text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ف" category="letter">ف</text>
<text name="T" label="ُ" category="letter">ُ</text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="غ" category="letter">غ</text>
<text name="Y" label="ِ" category="letter">ِ</text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="ع" category="letter">ع</text>
<text name="U" label="َ" category="letter">َ</text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ه" category="letter">ه</text>
<text name="I" label="ّ" category="letter">ّ</text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="خ" category="letter">خ</text>
<text name="O" label="]" category="letter">]</text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="ح" category="letter">ح</text>
<text name="P" label="[" category="letter">[</text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ج" category="letter">ج</text>
<text name="braceleft" label="}" category="letter">}</text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="چ" category="letter">چ</text>
<text name="braceright" label="{" category="letter">{</text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<keysym name="backslash" label="\" category="letter" keyval="92">backslash</keysym>
<keysym name="bar" label="|" category="letter" keyval="124">bar</keysym>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ش" category="letter">ش</text>
<text name="A" label="ؤ" category="letter">ؤ</text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="س" category="letter">س</text>
<text name="S" label="ئ" category="letter">ئ</text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="ی" category="letter">ی</text>
<text name="D" label="ي" category="letter">ي</text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ب" category="letter">ب</text>
<text name="F" label="إ" category="letter">إ</text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ل" category="letter">ل</text>
<text name="G" label="أ" category="letter">أ</text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="ا" category="letter">ا</text>
<text name="H" label="آ" category="letter">آ</text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="ت" category="letter">ت</text>
<text name="J" label="ة" category="letter">ة</text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="ن" category="letter">ن</text>
<text name="K" label="»" category="letter">»</text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="م" category="letter">م</text>
<text name="L" label="«" category="letter">«</text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="ک" category="letter">ک</text>
<keysym name="colon" label=":" category="letter" keyval="58">colon</keysym>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="؛" category="letter">؛</text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="ظ" category="letter">ظ</text>
<text name="Z" label="ك" category="letter">ك</text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ط" category="letter">ط</text>
<keysym name="X" label="X" category="letter" keyval="88">X</keysym>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="ز" category="letter">ز</text>
<text name="C" label="ژ" category="letter">ژ</text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="ر" category="letter">ر</text>
<keysym name="V" label="V" category="letter" keyval="86">V</keysym>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="ذ" category="letter">ذ</text>
<text name="B" label="" category="letter"></text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="د" category="letter">د</text>
<text name="N" category="letter"></text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="پ" category="letter">پ</text>
<text name="M" label="ء" category="letter">ء</text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="و" category="letter">و</text>
<text name="less" label="&gt;" category="letter">&gt;</text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="period" label="." category="letter" keyval="46">period</keysym>
<text name="greater" label="&lt;" category="letter">&lt;</text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="slash" label="/" category="letter" keyval="47">slash</keysym>
<text name="question" label="؟" category="letter">؟</text>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

178
data/keyboards/fi.yaml Normal file
View File

@@ -0,0 +1,178 @@
---
bounds: { x: 0, y: 0.33, width: 360, height: 210 }
outlines:
default:
bounds: { x: 0, y: 0, width: 32, height: 52 }
altline:
bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
wide:
bounds: { x: 0, y: 0, width: 62, height: 52 }
outline7:
bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
spaceline:
bounds: { x: 0, y: 0, width: 150.5853, height: 52 }
views:
base:
- "q w e r t y u i o p å"
- "a s d f g h j k l ö ä"
- "Shift_L z x c v b n m BackSpace"
- "show_numbers preferences space . Return"
upper:
- "Q W E R T Y U I O P Å"
- "A S D F G H J K L Ö Ä"
- "Shift_L Z X C V B N M BackSpace"
- "show_numbers preferences space . Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
- "show_symbols comma quotedbl quoteright colon semicolon exclam question BackSpace"
- "show_letters preferences space . Return"
symbols:
- "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
- "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
- "show_numbers backslash slash less greater equal bracketleft bracketright BackSpace"
- "show_letters preferences space . Return"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
keysym: "BackSpace"
preferences:
action: "show_prefs"
outline: "altline"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
".":
outline: altline
space:
outline: spaceline
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
aring:
text: "å"
Aring:
text: "Å"
ouml:
text: "ö"
Ouml:
text: "Ö"
auml:
text: "ä"
Auml:
text: "Ä"
asterisk:
text: "*"
asciitilde:
text: "~"
quoteleft:
text: "`"
bar:
text: "|"
U00B7:
text: "·"
squareroot:
text: "√"
Greek_pi:
text: "π"
division:
text: "÷"
multiply:
text: "×"
paragraph:
text: "¶"
Greek_tau:
text: "τ"
copyright:
text: "©"
numbersign:
text: "#"
U00AE:
text: "®"
at:
text: "@"
dollar:
text: "$"
U00A3:
text: "£"
percent:
text: "%"
EuroSign:
text: "€"
ampersand:
text: "&"
U00A5:
text: "¥"
minus:
text: "-"
asciicircum:
text: "^"
underscore:
text: "_"
degree:
text: "°"
plus:
text: "+"
equal:
text: "="
parenleft:
text: "("
parenright:
text: ")"
braceleft:
text: "{"
braceright:
text: "}"
comma:
text: ","
backslash:
text: "\\"
slash:
text: "/"
quotedbl:
text: "\""
quoteright:
text: "'"
less:
text: "<"
greater:
text: ">"
colon:
text: ":"
semicolon:
text: ";"
exclam:
text: "!"
question:
text: "?"
bracketleft:
text: "["
bracketright:
text: "]"

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="~" category="letter">~</text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="૧" category="letter"></text>
<text name="exclam" label="ઍ" category="letter"></text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="૨" category="letter"></text>
<text name="at" label="ૅ" category="letter"></text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="૩" category="letter"></text>
<text name="numbersign" label="ૠ" category="letter"></text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="૪" category="letter"></text>
<text name="dollar" label="ૄ" category="letter"></text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="૫" category="letter"></text>
<text name="percent" label="જ્ઞ" category="letter">જ્ઞ</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="૬" category="letter"></text>
<text name="asciicircum" label="ત્ર" category="letter">ત્ર</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="૭" category="letter"></text>
<text name="ampersand" label="ક્ષ" category="letter">ક્ષ</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="૮" category="letter"></text>
<text name="asterisk" label="શ્ર" category="letter">શ્ર</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="૯" category="letter"></text>
<text name="parenleft" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="" category="letter"></text>
<text name="parenright" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="-" category="letter">-</text>
<text name="underscore" label="" category="letter"></text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="ૃ" category="letter"></text>
<text name="plus" label="ઋ" category="letter"></text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ૌ" category="letter"></text>
<text name="Q" label="ઔ" category="letter"></text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ૈ" category="letter"></text>
<text name="W" label="ઐ" category="letter"></text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ા" category="letter"></text>
<text name="E" label="આ" category="letter"></text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ી" category="letter"></text>
<text name="R" label="ઈ" category="letter"></text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ૂ" category="letter"></text>
<text name="T" label="ઊ" category="letter"></text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="બ" category="letter"></text>
<text name="Y" label="ભ" category="letter"></text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="હ" category="letter"></text>
<text name="U" label="ઙ" category="letter"></text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ગ" category="letter"></text>
<text name="I" label="ઘ" category="letter"></text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="દ" category="letter"></text>
<text name="O" label="ધ" category="letter"></text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="જ" category="letter"></text>
<text name="P" label="ઝ" category="letter"></text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ડ" category="letter"></text>
<text name="braceleft" label="ઢ" category="letter"></text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="઼" category="letter"></text>
<text name="braceright" label="ઞ" category="letter"></text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="ૉ" category="letter"></text>
<text name="bar" label="ઑ" category="letter"></text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ો" category="letter"></text>
<text name="A" label="ઓ" category="letter"></text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="ે" category="letter"></text>
<text name="S" label="એ" category="letter"></text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="્" category="letter"></text>
<text name="D" label="અ" category="letter"></text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="િ" category="letter">િ</text>
<text name="F" label="ઇ" category="letter"></text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ુ" category="letter"></text>
<text name="G" label="ઉ" category="letter"></text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="પ" category="letter"></text>
<text name="H" label="ફ" category="letter"></text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="ર" category="letter"></text>
<text name="J" label="ઽ" category="letter"></text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="ક" category="letter"></text>
<text name="K" label="ખ" category="letter"></text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="ત" category="letter"></text>
<text name="L" label="થ" category="letter"></text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="ચ" category="letter"></text>
<text name="colon" label="છ" category="letter"></text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="ઠ" category="letter"></text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="૱" category="letter"></text>
<text name="Z" label="ૐ" category="letter"></text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ં" category="letter"></text>
<text name="X" label="ઁ" category="letter"></text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="મ" category="letter"></text>
<text name="C" label="ણ" category="letter"></text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="ન" category="letter"></text>
<text name="V" label="&quot;" category="letter">&quot;</text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="વ" category="letter"></text>
<text name="B" label="&apos;" category="letter">&apos;</text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="લ" category="letter"></text>
<text name="N" label="ળ" category="letter"></text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="સ" category="letter"></text>
<text name="M" label="શ" category="letter"></text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="," category="letter">,</text>
<text name="less" label="ષ" category="letter"></text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="." category="letter">.</text>
<text name="greater" label="।" category="letter"></text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="ય" category="letter"></text>
<text name="question" label="?" category="letter">?</text>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<keysym name="asciitilde" label="~" category="letter" keyval="126">asciitilde</keysym>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="1" label="1" category="letter" keyval="49">1</keysym>
<keysym name="exclam" label="!" category="letter" keyval="33">exclam</keysym>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="2" label="2" category="letter" keyval="50">2</keysym>
<keysym name="at" label="@" category="letter" keyval="64">at</keysym>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="3" label="3" category="letter" keyval="51">3</keysym>
<keysym name="numbersign" label="#" category="letter" keyval="35">numbersign</keysym>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="4" label="4" category="letter" keyval="52">4</keysym>
<keysym name="dollar" label="$" category="letter" keyval="36">dollar</keysym>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<keysym name="5" label="5" category="letter" keyval="53">5</keysym>
<keysym name="percent" label="%" category="letter" keyval="37">percent</keysym>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="6" label="6" category="letter" keyval="54">6</keysym>
<keysym name="asciicircum" label="^" category="letter" keyval="94">asciicircum</keysym>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="7" label="7" category="letter" keyval="55">7</keysym>
<keysym name="ampersand" label="&amp;" category="letter" keyval="38">ampersand</keysym>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="8" label="8" category="letter" keyval="56">8</keysym>
<keysym name="asterisk" label="*" category="letter" keyval="42">asterisk</keysym>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="9" label="9" category="letter" keyval="57">9</keysym>
<text name="parenleft" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="0" label="0" category="letter" keyval="48">0</keysym>
<text name="parenright" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="minus" label="-" category="letter" keyval="45">minus</keysym>
<keysym name="underscore" label="_" category="letter" keyval="95">underscore</keysym>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="equal" label="=" category="letter" keyval="61">equal</keysym>
<keysym name="plus" label="+" category="letter" keyval="43">plus</keysym>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="/" category="letter">/</text>
<keysym name="Q" label="Q" category="letter" keyval="81">Q</keysym>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="&apos;" category="letter">&apos;</text>
<keysym name="W" label="W" category="letter" keyval="87">W</keysym>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ק" category="letter">ק</text>
<keysym name="E" label="E" category="letter" keyval="69">E</keysym>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ר" category="letter">ר</text>
<keysym name="R" label="R" category="letter" keyval="82">R</keysym>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="א" category="letter">א</text>
<keysym name="T" label="T" category="letter" keyval="84">T</keysym>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="ט" category="letter">ט</text>
<keysym name="Y" label="Y" category="letter" keyval="89">Y</keysym>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="ו" category="letter">ו</text>
<keysym name="U" label="U" category="letter" keyval="85">U</keysym>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ן" category="letter">ן</text>
<keysym name="I" label="I" category="letter" keyval="73">I</keysym>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="ם" category="letter">ם</text>
<keysym name="O" label="O" category="letter" keyval="79">O</keysym>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="פ" category="letter">פ</text>
<keysym name="P" label="P" category="letter" keyval="80">P</keysym>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="]" category="letter">]</text>
<text name="braceleft" label="}" category="letter">}</text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="[" category="letter">[</text>
<text name="braceright" label="{" category="letter">{</text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<keysym name="backslash" label="\" category="letter" keyval="92">backslash</keysym>
<keysym name="bar" label="|" category="letter" keyval="124">bar</keysym>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ש" category="letter">ש</text>
<keysym name="A" label="A" category="letter" keyval="65">A</keysym>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="ד" category="letter">ד</text>
<keysym name="S" label="S" category="letter" keyval="83">S</keysym>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="ג" category="letter">ג</text>
<keysym name="D" label="D" category="letter" keyval="68">D</keysym>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="כ" category="letter">כ</text>
<keysym name="F" label="F" category="letter" keyval="70">F</keysym>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ע" category="letter">ע</text>
<keysym name="G" label="G" category="letter" keyval="71">G</keysym>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="י" category="letter">י</text>
<keysym name="H" label="H" category="letter" keyval="72">H</keysym>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="ח" category="letter">ח</text>
<keysym name="J" label="J" category="letter" keyval="74">J</keysym>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="ל" category="letter">ל</text>
<keysym name="K" label="K" category="letter" keyval="75">K</keysym>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="ך" category="letter">ך</text>
<keysym name="L" label="L" category="letter" keyval="76">L</keysym>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="ף" category="letter">ף</text>
<keysym name="colon" label=":" category="letter" keyval="58">colon</keysym>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<keysym name="quotedbl" label="&quot;" category="letter" keyval="34">quotedbl</keysym>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="ז" category="letter">ז</text>
<keysym name="Z" label="Z" category="letter" keyval="90">Z</keysym>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ס" category="letter">ס</text>
<keysym name="X" label="X" category="letter" keyval="88">X</keysym>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="ב" category="letter">ב</text>
<keysym name="C" label="C" category="letter" keyval="67">C</keysym>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="ה" category="letter">ה</text>
<keysym name="V" label="V" category="letter" keyval="86">V</keysym>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="נ" category="letter">נ</text>
<keysym name="B" label="B" category="letter" keyval="66">B</keysym>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="מ" category="letter">מ</text>
<keysym name="N" label="N" category="letter" keyval="78">N</keysym>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="צ" category="letter">צ</text>
<keysym name="M" label="M" category="letter" keyval="77">M</keysym>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="ת" category="letter">ת</text>
<text name="less" label="&gt;" category="letter">&gt;</text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="ץ" category="letter">ץ</text>
<text name="greater" label="&lt;" category="letter">&lt;</text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="." category="letter">.</text>
<keysym name="question" label="?" category="letter" keyval="63">question</keysym>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="ऒ" category="letter"></text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="१" category="letter"></text>
<text name="exclam" label="ऍ" category="letter"></text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="२" category="letter"></text>
<text name="at" label="ॅ" category="letter"></text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="३" category="letter"></text>
<text name="numbersign" label="#" category="letter">#</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="४" category="letter"></text>
<text name="dollar" label="$" category="letter">$</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="५" category="letter"></text>
<text name="percent" label="ज्ञ" category="letter">ज्ञ</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="६" category="letter"></text>
<text name="asciicircum" label="त्र" category="letter">त्र</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="७" category="letter"></text>
<text name="ampersand" label="क्ष" category="letter">क्ष</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="८" category="letter"></text>
<text name="asterisk" label="श्र" category="letter">श्र</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="९" category="letter"></text>
<text name="parenleft" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="" category="letter"></text>
<text name="parenright" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="-" category="letter">-</text>
<text name="underscore" label="" category="letter"></text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="ृ" category="letter"></text>
<text name="plus" label="ऋ" category="letter"></text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ौ" category="letter"></text>
<text name="Q" label="औ" category="letter"></text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ै" category="letter"></text>
<text name="W" label="ऐ" category="letter"></text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ा" category="letter"></text>
<text name="E" label="आ" category="letter"></text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ी" category="letter"></text>
<text name="R" label="ई" category="letter"></text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ू" category="letter"></text>
<text name="T" label="ऊ" category="letter"></text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="ब" category="letter"></text>
<text name="Y" label="भ" category="letter"></text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="ह" category="letter"></text>
<text name="U" label="ङ" category="letter"></text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ग" category="letter"></text>
<text name="I" label="घ" category="letter"></text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="द" category="letter"></text>
<text name="O" label="ध" category="letter"></text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="ज" category="letter"></text>
<text name="P" label="झ" category="letter"></text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ड" category="letter"></text>
<text name="braceleft" label="ढ" category="letter"></text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="़" category="letter"></text>
<text name="braceright" label="ञ" category="letter"></text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="ॉ" category="letter"></text>
<text name="bar" label="ऑ" category="letter"></text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ो" category="letter"></text>
<text name="A" label="ओ" category="letter"></text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="े" category="letter"></text>
<text name="S" label="ए" category="letter"></text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="्‌" category="letter">्‌</text>
<text name="D" label="अ" category="letter"></text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ि" category="letter">ि</text>
<text name="F" label="इ" category="letter"></text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ु" category="letter"></text>
<text name="G" label="उ" category="letter"></text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="प" category="letter"></text>
<text name="H" label="फ" category="letter"></text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="र" category="letter"></text>
<text name="J" label="ऱ" category="letter"></text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="क" category="letter"></text>
<text name="K" label="ख" category="letter"></text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="त" category="letter"></text>
<text name="L" label="थ" category="letter"></text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="च" category="letter"></text>
<text name="colon" label="छ" category="letter"></text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="ठ" category="letter"></text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="ॆ" category="letter"></text>
<text name="Z" label="ऎ" category="letter"></text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ं" category="letter"></text>
<text name="X" label="ँ" category="letter"></text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="म" category="letter"></text>
<text name="C" label="ण" category="letter"></text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="न" category="letter"></text>
<text name="V" label="ऩ" category="letter"></text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="व" category="letter"></text>
<text name="B" label="ऴ" category="letter"></text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="ल" category="letter"></text>
<text name="N" label="ळ" category="letter"></text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="स" category="letter"></text>
<text name="M" label="श" category="letter"></text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="," category="letter">,</text>
<text name="less" label="ष" category="letter"></text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="." category="letter">.</text>
<text name="greater" label="।" category="letter"></text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="य" category="letter"></text>
<text name="question" label="य़" category="letter"></text>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

99
data/keyboards/it.yaml Normal file
View File

@@ -0,0 +1,99 @@
# Italian layout created by Antonio Pandolfo
# 03 october 2019
---
bounds: { x: 0, y: 1, width: 360, height: 210 }
outlines:
default:
bounds: { x: 0, y: 0, width: 35.33, height: 52 }
altline:
bounds: { x: 0, y: 0, width: 52.67, height: 52 }
wide:
bounds: { x: 0, y: 0, width: 62, height: 52 }
spaceline:
bounds: { x: 0, y: 0, width: 99.67, height: 52 }
special:
bounds: { x: 0, y: 0, width: 44, height: 52 }
views:
base:
- "q w e r t y u i o p"
- "a s d f g h j k l"
- "Shift_L z x c v b n m BackSpace"
- "show_numbers show_eschars preferences space , period Return"
upper:
- "Q W E R T Y U I O P"
- "A S D F G H J K L"
- "Shift_L Z X C V B N M BackSpace"
- "show_numbers show_eschars preferences space ? period Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # € % & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters show_eschars preferences space ? period Return"
symbols:
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ $ ¥ ^ ° * { }"
- "show_numbers \\ / < > = [ ] BackSpace"
- "show_letters show_eschars preferences space ? period Return"
eschars:
- "á é í ó ú Á É Í Ó Ú"
- "à è ì ò « » ù ! { }"
- "show_numbers \\ / < > = [ ] BackSpace"
- "show_letters show_eschars preferences space « » Return"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
keysym: "BackSpace"
preferences:
action: "show_prefs"
outline: "default"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "abc"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
show_eschars:
action:
set_view: "eschars"
outline: "altline"
label: "àè"
period:
outline: "default"
label: "."
space:
outline: "spaceline"
label: " "
Return:
outline: "altline"
icon: "key-enter"
keysym: "Return"
colon:
label: ":"
"\"":
keysym: "quotedbl"

532
data/keyboards/jp+kana.yaml Normal file
View File

@@ -0,0 +1,532 @@
# Maintained by: Mark Müller <markmueller86@gmail.com>
---
bounds: { x: 0, y: 1, width: 360, height: 208 }
outlines:
default:
bounds: { x: 0, y: 0, width: 62, height: 52 }
default-wide:
bounds: { x: 0, y: 0, width: 62, height: 52 }
altline:
bounds: { x: 0, y: 0, width: 62, height: 52 }
wide:
bounds: { x: 0, y: 0, width: 62, height: 52 }
special:
bounds: { x: 0, y: 0, width: 62, height: 52 }
views:
base: # hiragana
- "preferences _a ka sa BackSpace"
- "Left ta na ha Right"
- "カタカナ ma ya ra space"
- "switch2roman symbols wa punct Return"
_a:
- "preferences dummykey _a dummykey BackSpace"
- "あ い う え お"
- "ぁ ぃ ぅ ぇ ぉ" # 2 code points each
- "dummykey dummykey ゔ dummykey dummykey"
ka:
- "preferences dummykey ka dummykey BackSpace"
- "か き く け こ"
- "が ぎ ぐ げ ご"
- "ゕ dummykey dummykey ゖ dummykey"
sa:
- "preferences dummykey sa dummykey BackSpace"
- "さ し す せ そ"
- "ざ じ ず ぜ ぞ"
ta:
- "preferences dummykey ta dummykey BackSpace"
- "た ち つ て と"
- "だ ぢ づ で ど"
- "dummykey dummykey っ dummykey dummykey"
na:
- "preferences dummykey na dummykey BackSpace"
- "な に ぬ ね の"
ha:
- "preferences dummykey ha dummykey BackSpace"
- "は ひ ふ へ ほ"
- "ば び ぶ べ ぼ"
- "ぱ ぴ ぷ ぺ ぽ"
ma:
- "preferences dummykey ma dummykey BackSpace"
- "ま み む め も"
ya:
- "preferences dummykey ya dummykey BackSpace"
- "や dummykey ゆ dummykey よ"
- "ゃ dummykey ゅ dummykey ょ"
ra:
- "preferences dummykey ra dummykey BackSpace"
- "ら り る れ ろ"
wa:
- "preferences dummykey wa dummykey BackSpace"
- "わ ゐ dummykey ゑ を"
- "ゎ dummykey ん dummykey dummykey"
symbols:
- "preferences dummykey symbols dummykey BackSpace"
- "「 」 §"
- "【 】 "
- " "
punct:
- "preferences dummykey punct dummykey BackSpace"
- "。 、 ー"
- " ・ 〜 …"
- "♪ ” ゙ ゚"
#a あア かカ さサ たタ なナ はハ まマ やヤ らラ わワ
#i いイ きキ しシ ちチ にニ ひヒ みミ ※ りリ ゐヰ
#u うウ くク すス つツ ぬヌ ふフ むム ゆユ るル ※
#e えエ けケ せセ てテ ねネ へヘ めメ ※ れレ ゑヱ
#o おオ こコ そソ とト のノ ほホ もモ よヨ ろロ をヲ
# g z d b p n
#a が ガ ざ ザ だ ダ ば バ ぱ パ ん ン
#i ぎ ギ じ ジ ぢ ヂ び ビ ぴ ピ
#u ぐ グ ず ズ づ ヅ ぶ ブ ぷ プ
#e げ ゲ ぜ ゼ で デ べ ベ ぺ ペ
#o ご ゴ ぞ ゾ ど ド ぼ ボ ぽ ポ
カタカナ: # katakana
- "preferences _A KA SA BackSpace"
- "Left TA NA HA Right"
- "ひらがな MA YA RA space"
- "switch2roman SYMBOLS WA PUNCT Return"
_A:
- "preferences DUMMYKEY _A DUMMYKEY BackSpace"
- "ア イ ウ エ オ"
- "ァ ィ ゥ ェ ォ"
- "DUMMYKEY DUMMYKEY ヴ DUMMYKEY DUMMYKEY"
KA:
- "preferences DUMMYKEY KA DUMMYKEY BackSpace"
- "カ キ ク ケ コ"
- "ガ ギ グ ゲ ゴ"
- "ヵ DUMMYKEY ㇰ ヶ DUMMYKEY"
SA:
- "preferences DUMMYKEY SA DUMMYKEY BackSpace"
- "サ シ ス セ ソ"
- "ザ ジ ズ ゼ ゾ"
- "DUMMYKEY ㇱ ㇲ DUMMYKEY DUMMYKEY"
TA:
- "preferences DUMMYKEY TA DUMMYKEY BackSpace"
- "タ チ ツ テ ト"
- "ダ ヂ ヅ デ ド"
- "DUMMYKEY DUMMYKEY ッ DUMMYKEY ㇳ"
NA:
- "preferences DUMMYKEY NA DUMMYKEY BackSpace"
- "ナ ニ ヌ ネ "
- "DUMMYKEY DUMMYKEY ㇴ DUMMYKEY DUMMYKEY"
HA:
- "preferences DUMMYKEY HA DUMMYKEY BackSpace"
- "ハ ヒ フ ヘ ホ"
- "バ ビ ブ ベ ボ"
- "パ ピ プ ペ ポ"
MA:
- "preferences DUMMYKEY MA DUMMYKEY BackSpace"
- "マ ミ ム メ モ"
- "DUMMYKEY DUMMYKEY ㇺ DUMMYKEY DUMMYKEY"
YA:
- "preferences DUMMYKEY YA DUMMYKEY BackSpace"
- "ヤ DUMMYKEY ユ DUMMYKEY ヨ"
- "ャ DUMMYKEY ュ DUMMYKEY ョ"
RA:
- "preferences DUMMYKEY RA DUMMYKEY BackSpace"
- "ラ リ ル レ ロ"
- "ㇻ ㇼ ㇽ ㇾ ㇿ"
WA:
- "preferences DUMMYKEY WA DUMMYKEY BackSpace"
- "ワ ヰ DUMMYKEY ヱ ヲ"
- "ヮ ヸ ン ヹ ヺ"
# numbers view
numbers:
- "preferences 1 2 3 BackSpace"
- "Left 4 5 6 Right"
- "roman 7 8 9 space"
- "switch2kana * 0 # Return"
# Roman alphabet view
roman:
- "preferences RSYM1 ABC DEF BackSpace"
- "Left GHI JKL MNO Right"
- "ひらがな PQRS TUV WXYZ space"
- "switch2num RSYM2 RSYM3 RSYM4 Return"
RSYM1:
- "preferences dummykey RSYM1 dummykey BackSpace"
- "@ # $ § :"
- "| € ¥ £ 1"
ABC:
- "preferences dummykey ABC dummykey BackSpace"
- "A B C Ä ç"
- "a b c ä 2"
DEF:
- "preferences dummykey DEF dummykey BackSpace"
- "D E F dummykey"
- "d e f 3"
GHI:
- "preferences dummykey GHI dummykey BackSpace"
- "G H I dummykey"
- "g h i 4"
JKL:
- "preferences dummykey JKL dummykey BackSpace"
- "J K L dummykey"
- "j k l 5"
MNO:
- "preferences dummykey MNO dummykey BackSpace"
- "M N O Ö dummykey"
- "m n o ö 6"
PQRS:
- "preferences dummykey PQRS dummykey BackSpace"
- "P Q R S ß"
- "p q r s 7"
TUV:
- "preferences dummykey TUV dummykey BackSpace"
- "T U V Ü dummykey"
- "t u v ü 8"
WXYZ:
- "preferences dummykey WXYZ dummykey BackSpace"
- "W X Y Z dummykey"
- "w x y z 9"
RSYM2:
- "preferences dummykey RSYM2 dummykey BackSpace"
- "( ) ' \" ~"
- "[ ] { } _"
RSYM3:
- "preferences dummykey RSYM3 dummykey BackSpace"
- "+ - * / ="
- "< > ^ ° 0"
RSYM4:
- "preferences dummykey RSYM4 dummykey BackSpace"
- ", . ? ! ;"
- "\\ ´ ` · ¶"
buttons:
# following 4 buttons use the corresponding xkb name as keysym
BackSpace:
outline: "wide"
icon: "edit-clear-symbolic"
keysym: "BackSpace"
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
Left:
outline: "wide"
label: "←"
keysym: "Left"
Right:
outline: "wide"
label: "→"
keysym: "Right"
# special button "preferences" is handled in the code
preferences:
action: "show_prefs"
outline: "special"
icon: "keyboard-mode-symbolic"
# space button using text tag for ideographic space
space:
outline: "default-wide"
label: "␣"
text: " "
# switch to number view
numbers:
action:
set_view: "numbers"
outline: "wide"
label: "123"
# switch to latin characters
roman:
action:
set_view: "roman"
outline: "wide"
label: "ᴀʙᴄ"
# toggle button with 3 different states
switch2roman: # switch from kana to latin characters view
action:
set_view: "roman"
outline: "wide"
label: "あᴀ₁"
switch2num: # switch from latin characters to numbers view
action:
set_view: "numbers"
outline: "wide"
label: "ぁA₁"
switch2kana: # switch from numbers to hiragana view
action:
set_view: "base"
outline: "wide"
label: "ぁᴀ1"
# Buttons for katakana and symbols
ひらがな:
action:
set_view: "base"
outline: "wide"
label: "あさ"
_a:
action:
locking:
lock_view: "_a"
unlock_view: "base"
outline: "altline"
label: "あ"
ka:
action:
locking:
lock_view: "ka"
unlock_view: "base"
outline: "altline"
label: "か"
sa:
action:
locking:
lock_view: "sa"
unlock_view: "base"
outline: "altline"
label: "さ"
ta:
action:
locking:
lock_view: "ta"
unlock_view: "base"
outline: "altline"
label: "た"
na:
action:
locking:
lock_view: "na"
unlock_view: "base"
outline: "altline"
label: "な"
ha:
action:
locking:
lock_view: "ha"
unlock_view: "base"
outline: "altline"
label: "は"
ma:
action:
locking:
lock_view: "ma"
unlock_view: "base"
outline: "altline"
label: "ま"
ya:
action:
locking:
lock_view: "ya"
unlock_view: "base"
outline: "altline"
label: "や"
ra:
action:
locking:
lock_view: "ra"
unlock_view: "base"
outline: "altline"
label: "ら"
wa:
action:
locking:
lock_view: "wa"
unlock_view: "base"
outline: "altline"
label: "わ"
dummykey:
action:
set_view: "base"
outline: "altline"
label: ""
# buttons available on different views like symbols and punct should go
# back to their corresponding view
symbols:
action:
locking:
lock_view: "symbols"
unlock_view: "base"
outline: "altline"
label: ""
punct:
action:
locking:
lock_view: "punct"
unlock_view: "base"
outline: "altline"
label: "。"
# Buttons for katakana and symbols
カタカナ:
action:
set_view: "カタカナ"
outline: "wide"
label: "アサ"
_A:
action:
locking:
lock_view: "_A"
unlock_view: "カタカナ"
outline: "altline"
label: "ア"
KA:
action:
locking:
lock_view: "KA"
unlock_view: "カタカナ"
outline: "altline"
label: "カ"
SA:
action:
locking:
lock_view: "SA"
unlock_view: "カタカナ"
outline: "altline"
label: "サ"
TA:
action:
locking:
lock_view: "TA"
unlock_view: "カタカナ"
outline: "altline"
label: "タ"
NA:
action:
locking:
lock_view: "NA"
unlock_view: "カタカナ"
outline: "altline"
label: "ナ"
HA:
action:
locking:
lock_view: "HA"
unlock_view: "カタカナ"
outline: "altline"
label: "ハ"
MA:
action:
locking:
lock_view: "MA"
unlock_view: "カタカナ"
outline: "altline"
label: "マ"
YA:
action:
locking:
lock_view: "YA"
unlock_view: "カタカナ"
outline: "altline"
label: "ヤ"
RA:
action:
locking:
lock_view: "RA"
unlock_view: "カタカナ"
outline: "altline"
label: "ラ"
WA:
action:
locking:
lock_view: "WA"
unlock_view: "カタカナ"
outline: "altline"
label: "ワ"
DUMMYKEY:
action:
set_view: "カタカナ"
outline: "altline"
label: ""
SYMBOLS:
action:
locking:
lock_view: "symbols"
unlock_view: "カタカナ"
outline: "altline"
label: ""
PUNCT:
action:
locking:
lock_view: "punct"
unlock_view: "カタカナ"
outline: "altline"
label: "。"
# Buttons for Latin charachters
RSYM1:
action:
locking:
lock_view: "RSYM1"
unlock_view: "roman"
outline: "altline"
label: "@#"
ABC:
action:
locking:
lock_view: "ABC"
unlock_view: "roman"
outline: "altline"
label: "ᴀʙᴄ"
DEF:
action:
locking:
lock_view: "DEF"
unlock_view: "roman"
outline: "altline"
label: "ᴅᴇꜰ"
GHI:
action:
locking:
lock_view: "GHI"
unlock_view: "roman"
outline: "altline"
label: "ɢʜɪ"
JKL:
action:
locking:
lock_view: "JKL"
unlock_view: "roman"
outline: "altline"
label: "ᴊᴋʟ"
MNO:
action:
locking:
lock_view: "MNO"
unlock_view: "roman"
outline: "altline"
label: "ᴍɴᴏ"
PQRS:
action:
locking:
lock_view: "PQRS"
unlock_view: "roman"
outline: "altline"
label: "ᴘǫʀs"
TUV:
action:
locking:
lock_view: "TUV"
unlock_view: "roman"
outline: "altline"
label: "ᴛᴜᴠ"
WXYZ:
action:
locking:
lock_view: "WXYZ"
unlock_view: "roman"
outline: "altline"
label: "xʏ"
RSYM2:
action:
locking:
lock_view: "RSYM2"
unlock_view: "roman"
outline: "altline"
label: "()"
RSYM3:
action:
locking:
lock_view: "RSYM3"
unlock_view: "roman"
outline: "altline"
label: "+-"
RSYM4:
action:
locking:
lock_view: "RSYM4"
unlock_view: "roman"
outline: "altline"
label: ",.?"

View File

@@ -1,697 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section name="LeftModifiers">
<bounds>16.000000,78.048780,94.000000,202.000000</bounds>
<angle>0</angle>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<key id="keycode61" name="TAB" column="1" row="0">
<bounds>4.000000,43.000000,80.000000,38.000000</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym keyval="65289">Tab</keysym>
<keysym keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode56" name="CAPS" column="2" row="0">
<bounds>4.000000,83.000000,80.000000,38.000000</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode57" name="LFSH" column="3" row="0">
<bounds>4.000000,122.000000,80.000000,38.000000</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode58" name="LCTL" column="4" row="0">
<bounds>4.000000,162.341463,57.000000,38.000000</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="2">
<symbol label="⌨" icon="input-keyboard-symbolic">cycle-keyboard</symbol>
<symbol label="☺" icon="preferences-system-symbolic">preferences</symbol>
</symbols>
</key>
<key id="keycode60" name="BKSP" column="1" row="1">
<bounds>517.000000,44.000000,80.000000,38.000000</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode62" name="RTRN" column="1" row="1">
<bounds>517.000000,83.000000,80.000000,38.000000</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode63" name="RTSH" column="2" row="1">
<bounds>517.000000,122.000000,80.000000,38.000000</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="0" row="2">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline14</oref>
<symbols groups="1" levels="1">
<keysym keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="1" row="2">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="2" row="2">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="3" row="2">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="4" row="2">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<section name="Alpha">
<bounds>99.000000,16.000000,469.000000,202.000000</bounds>
<angle>0</angle>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<row>
<columns>5</columns>
<orientation>0</orientation>
</row>
<key id="keycode1" name="AE03" column="0" row="0">
<bounds>4.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="51" label="あ">3</keysym>
<keysym keyval="35" label="ぁ">numbersign</keysym>
<keysym keyval="51" label="ア">3</keysym>
<keysym keyval="35" label="ァ">numbersign</keysym>
</symbols>
</key>
<key id="keycode2" name="AD03" column="1" row="0">
<bounds>4.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="101" label="い">e</keysym>
<keysym keyval="69" label="ぃ">E</keysym>
<keysym keyval="101" label="イ">e</keysym>
<keysym keyval="69" label="ィ">E</keysym>
</symbols>
</key>
<key id="keycode3" name="AE04" column="2" row="0">
<bounds>4.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="52" label="う">4</keysym>
<keysym keyval="36" label="ぅ">dollar</keysym>
<keysym keyval="52" label="ウ">4</keysym>
<keysym keyval="36" label="ゥ">dollar</keysym>
</symbols>
</key>
<key id="keycode4" name="AE05" column="3" row="0">
<bounds>4.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="53" label="え">5</keysym>
<keysym keyval="37" label="ぇ">percent</keysym>
<keysym keyval="53" label="エ">5</keysym>
<keysym keyval="37" label="ェ">percent</keysym>
</symbols>
</key>
<key id="keycode5" name="AE06" column="4" row="0">
<bounds>4.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="54" label="お">6</keysym>
<keysym keyval="38" label="ぉ">ampersand</keysym>
<keysym keyval="54" label="オ">6</keysym>
<keysym keyval="38" label="ォ">ampersand</keysym>
</symbols>
</key>
<key id="keycode6" name="AE03" column="0" row="1">
<bounds>43.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="116" label="か">t</keysym>
<keysym keyval="116" label="カ">t</keysym>
</symbols>
</key>
<key id="keycode7" name="AD03" column="1" row="1">
<bounds>43.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="103" label="き">g</keysym>
<keysym keyval="103" label="キ">g</keysym>
</symbols>
</key>
<key id="keycode8" name="AE04" column="2" row="1">
<bounds>43.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="104" label="く">h</keysym>
<keysym keyval="104" label="ク">h</keysym>
</symbols>
</key>
<key id="keycode9" name="AE05" column="3" row="1">
<bounds>43.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="58" label="け">colon</keysym>
<keysym keyval="58" label="ケ">colon</keysym>
</symbols>
</key>
<key id="keycode10" name="AE06" column="4" row="1">
<bounds>43.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="98" label="こ">b</keysym>
<keysym keyval="98" label="コ">b</keysym>
</symbols>
</key>
<key id="keycode11" name="AE03" column="0" row="2">
<bounds>82.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="120" label="さ">x</keysym>
<keysym keyval="120" label="サ">x</keysym>
</symbols>
</key>
<key id="keycode12" name="AD03" column="1" row="2">
<bounds>82.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="100" label="し">d</keysym>
<keysym keyval="100" label="シ">d</keysym>
</symbols>
</key>
<key id="keycode13" name="AE04" column="2" row="0">
<bounds>82.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="114" label="す">r</keysym>
<keysym keyval="114" label="ス">r</keysym>
</symbols>
</key>
<key id="keycode14" name="AE05" column="3" row="2">
<bounds>82.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="112" label="せ">p</keysym>
<keysym keyval="112" label="セ">p</keysym>
</symbols>
</key>
<key id="keycode15" name="AE06" column="4" row="2">
<bounds>82.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="99" label="そ">c</keysym>
<keysym keyval="99" label="ソ">c</keysym>
</symbols>
</key>
<key id="keycode16" name="AE03" column="0" row="3">
<bounds>121.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="113" label="た">q</keysym>
<keysym keyval="113" label="タ">q</keysym>
</symbols>
</key>
<key id="keycode17" name="AD03" column="1" row="3">
<bounds>121.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="97" label="ち">a</keysym>
<keysym keyval="97" label="チ">a</keysym>
</symbols>
</key>
<key id="keycode18" name="AE04" column="2" row="3">
<bounds>121.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="122" label="つ">z</keysym>
<keysym keyval="90" label="っ">Z</keysym>
<keysym keyval="122" label="ツ">z</keysym>
<keysym keyval="90" label="ッ">Z</keysym>
</symbols>
</key>
<key id="keycode19" name="AE05" column="3" row="3">
<bounds>121.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="119" label="て">w</keysym>
<keysym keyval="119" label="テ">w</keysym>
</symbols>
</key>
<key id="keycode20" name="AE06" column="4" row="3">
<bounds>121.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="115" label="と">s</keysym>
<keysym keyval="115" label="ト">s</keysym>
</symbols>
</key>
<key id="keycode21" name="AE03" column="0" row="4">
<bounds>160.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="117" label="な">u</keysym>
<keysym keyval="117" label="ナ">u</keysym>
</symbols>
</key>
<key id="keycode22" name="AD03" column="1" row="4">
<bounds>160.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="105" label="に">i</keysym>
<keysym keyval="105" label="ニ">i</keysym>
</symbols>
</key>
<key id="keycode23" name="AE04" column="2" row="4">
<bounds>160.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="33" label="ぬ">exclam</keysym>
<keysym keyval="33" label="ヌ">exclam</keysym>
</symbols>
</key>
<key id="keycode24" name="AE05" column="3" row="4">
<bounds>160.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="44" label="ね">comma</keysym>
<keysym keyval="44" label="ネ">comma</keysym>
</symbols>
</key>
<key id="keycode25" name="AE06" column="4" row="4">
<bounds>160.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="107" label="の">k</keysym>
<keysym keyval="107" label="">k</keysym>
</symbols>
</key>
<key id="keycode26" name="AE03" column="0" row="5">
<bounds>199.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="102" label="は">f</keysym>
<keysym keyval="102" label="ハ">f</keysym>
</symbols>
</key>
<key id="keycode27" name="AD03" column="1" row="5">
<bounds>199.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="118" label="ひ">v</keysym>
<keysym keyval="118" label="ヒ">v</keysym>
</symbols>
</key>
<key id="keycode28" name="AE04" column="2" row="5">
<bounds>199.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="34" label="ふ">quotedbl</keysym>
<keysym keyval="34" label="フ">quotedbl</keysym>
</symbols>
</key>
<key id="keycode29" name="AE05" column="3" row="5">
<bounds>199.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="94" label="へ">asciicircum</keysym>
<keysym keyval="94" label="ヘ">asciicircum</keysym>
</symbols>
</key>
<key id="keycode30" name="AE06" column="4" row="5">
<bounds>199.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="61" label="ほ">equal</keysym>
<keysym keyval="61" label="ホ">equal</keysym>
</symbols>
</key>
<key id="keycode31" name="AE03" column="0" row="6">
<bounds>238.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="106" label="ま">j</keysym>
<keysym keyval="106" label="マ">j</keysym>
</symbols>
</key>
<key id="keycode32" name="AD03" column="1" row="6">
<bounds>238.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="110" label="み">n</keysym>
<keysym keyval="110" label="ミ">n</keysym>
</symbols>
</key>
<key id="keycode33" name="AE04" column="2" row="6">
<bounds>238.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="93" label="む">bracketright</keysym>
<keysym keyval="93" label="ム">bracketright</keysym>
</symbols>
</key>
<key id="keycode34" name="AE05" column="3" row="6">
<bounds>238.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="47" label="め">slash</keysym>
<keysym keyval="47" label="メ">slash</keysym>
</symbols>
</key>
<key id="keycode35" name="AE06" column="4" row="6">
<bounds>238.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="109" label="も">m</keysym>
<keysym keyval="109" label="モ">m</keysym>
</symbols>
</key>
<key id="keycode36" name="AE03" column="0" row="7">
<bounds>277.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="55" label="や">7</keysym>
<keysym keyval="39" label="ゃ">quoteright</keysym>
<keysym keyval="55" label="ヤ">7</keysym>
<keysym keyval="39" label="ャ">quoteright</keysym>
</symbols>
</key>
<key id="keycode37" name="AD03" column="1" row="7">
<bounds>277.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="56" label="ゆ">8</keysym>
<keysym keyval="40" label="ゅ">parenleft</keysym>
<keysym keyval="56" label="ユ">8</keysym>
<keysym keyval="40" label="ュ">parenleft</keysym>
</symbols>
</key>
<key id="keycode38" name="AE04" column="2" row="7">
<bounds>277.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="57" label="よ">9</keysym>
<keysym keyval="41" label="ょ">parenright</keysym>
<keysym keyval="57" label="ヨ">9</keysym>
<keysym keyval="41" label="ョ">parenright</keysym>
</symbols>
</key>
<key id="keycode41" name="AE03" column="0" row="8">
<bounds>316.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="111" label="ら">o</keysym>
<keysym keyval="111" label="ラ">o</keysym>
</symbols>
</key>
<key id="keycode42" name="AD03" column="1" row="8">
<bounds>316.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="108" label="り">l</keysym>
<keysym keyval="108" label="リ">l</keysym>
</symbols>
</key>
<key id="keycode43" name="AE04" column="2" row="8">
<bounds>316.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="46" label="る">period</keysym>
<keysym keyval="46" label="ル">period</keysym>
</symbols>
</key>
<key id="keycode44" name="AE05" column="3" row="8">
<bounds>316.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="59" label="れ">semicolon</keysym>
<keysym keyval="59" label="レ">semicolon</keysym>
</symbols>
</key>
<key id="keycode45" name="AE06" column="4" row="8">
<bounds>316.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="92" label="ろ">backslash</keysym>
<keysym keyval="92" label="ロ">backslash</keysym>
</symbols>
</key>
<key id="keycode46" name="AE03" column="0" row="9">
<bounds>355.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="48" label="わ">0</keysym>
<keysym keyval="48" label="ワ">0</keysym>
</symbols>
</key>
<key id="keycode47" name="AD03" column="1" row="9">
<bounds>355.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="126" label="を">asciitilde</keysym>
<keysym keyval="126" label="ヲ">asciitilde</keysym>
</symbols>
</key>
<key id="keycode48" name="AE04" column="2" row="9">
<bounds>355.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="121" label="ん">y</keysym>
<keysym keyval="121" label="ン">y</keysym>
</symbols>
</key>
<key id="keycode49" name="AE05" column="3" row="9">
<bounds>355.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="123" label="「">braceleft</keysym>
<keysym keyval="48" label="ゐ">0</keysym>
<keysym keyval="123" label="「">braceleft</keysym>
<keysym keyval="48" label="ヰ">0</keysym>
</symbols>
</key>
<key id="keycode50" name="AE06" column="4" row="9">
<bounds>355.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="125" label="」">braceright</keysym>
<keysym keyval="48" label="ゑ">0</keysym>
<keysym keyval="125" label="」">braceright</keysym>
<keysym keyval="48" label="ヱ">0</keysym>
</symbols>
</key>
<key id="keycode51" name="AE03" column="0" row="10">
<bounds>394.000000,4.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="64" label="゛">at</keysym>
<keysym keyval="64" label="゛">at</keysym>
</symbols>
</key>
<key id="keycode52" name="AD03" column="1" row="10">
<bounds>394.000000,43.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="91" label="゜">bracketleft</keysym>
<keysym keyval="91" label="゜">bracketleft</keysym>
</symbols>
</key>
<key id="keycode53" name="AE04" column="2" row="10">
<bounds>394.000000,82.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="124" label="ー">bar</keysym>
<keysym keyval="124" label="ー">bar</keysym>
</symbols>
</key>
<key id="keycode54" name="AE05" column="3" row="10">
<bounds>394.000000,121.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="1">
<keysym keyval="60" label="、">less</keysym>
<keysym keyval="60" label="、">less</keysym>
</symbols>
</key>
<key id="keycode55" name="AE06" column="4" row="10">
<bounds>394.000000,160.000000,38.000000,38.000000</bounds>
<oref>outline1</oref>
<symbols groups="2" levels="2">
<keysym keyval="62" label="。">greater</keysym>
<keysym keyval="63" label="・">question</keysym>
<keysym keyval="62" label="。">greater</keysym>
<keysym keyval="63" label="・">question</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<point>0.000000,0.000000</point>
<point>38.000000,0.000000</point>
<point>38.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline3">
<point>0.000000,0.000000</point>
<point>60.000000,0.000000</point>
<point>60.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline4">
<point>0.000000,0.000000</point>
<point>60.000000,0.000000</point>
<point>60.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline5">
<point>0.000000,0.000000</point>
<point>69.000000,0.000000</point>
<point>69.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline6">
<point>0.000000,0.000000</point>
<point>89.000000,0.000000</point>
<point>89.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline7">
<point>0.000000,0.000000</point>
<point>89.000000,0.000000</point>
<point>89.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline8">
<point>0.000000,0.000000</point>
<point>110.000000,0.000000</point>
<point>110.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline9">
<point>0.000000,0.000000</point>
<point>57.000000,0.000000</point>
<point>57.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline10">
<point>0.000000,0.000000</point>
<point>49.000000,0.000000</point>
<point>49.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline11">
<point>0.000000,0.000000</point>
<point>239.000000,0.000000</point>
<point>239.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline12">
<point>0.000000,0.000000</point>
<point>38.000000,0.000000</point>
<point>38.000000,79.000000</point>
<point>0.000000,79.000000</point>
</outline>
<outline id="outline13">
<point>0.000000,0.000000</point>
<point>79.000000,0.000000</point>
<point>79.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline2">
<point>0.000000,0.000000</point>
<point>80.000000,0.000000</point>
<point>80.000000,38.000000</point>
<point>0.000000,38.000000</point>
</outline>
<outline id="outline14">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="&quot;" category="letter">&quot;</text>
<keysym name="exclam" label="!" category="letter" keyval="33">exclam</keysym>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="ә" category="letter">ә</text>
<text name="at" label="Ә" category="letter">Ә</text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="і" category="letter">і</text>
<text name="numbersign" label="І" category="letter">І</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="ӊ" category="letter">ӊ</text>
<text name="dollar" label="Ӊ" category="letter">Ӊ</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="ғ" category="letter">ғ</text>
<text name="percent" label="Ғ" category="letter">Ғ</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="," category="letter">,</text>
<text name="asciicircum" label=";" category="letter">;</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="." category="letter">.</text>
<text name="ampersand" label=":" category="letter">:</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="ү" category="letter">ү</text>
<text name="asterisk" label="Ү" category="letter">Ү</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="ұ" category="letter">ұ</text>
<text name="parenleft" label="Ұ" category="letter">Ұ</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="қ" category="letter">қ</text>
<text name="parenright" label="Қ" category="letter">Қ</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="ө" category="letter">ө</text>
<text name="underscore" label="Ө" category="letter">Ө</text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="һ" category="letter">һ</text>
<text name="plus" label="Һ" category="letter">Һ</text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="й" category="letter">й</text>
<text name="Q" label="Й" category="letter">Й</text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ц" category="letter">ц</text>
<text name="W" label="Ц" category="letter">Ц</text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="у" category="letter">у</text>
<text name="E" label="У" category="letter">У</text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="к" category="letter">к</text>
<text name="R" label="К" category="letter">К</text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="е" category="letter">е</text>
<text name="T" label="Е" category="letter">Е</text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="н" category="letter">н</text>
<text name="Y" label="Н" category="letter">Н</text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="г" category="letter">г</text>
<text name="U" label="Г" category="letter">Г</text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ш" category="letter">ш</text>
<text name="I" label="Ш" category="letter">Ш</text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="щ" category="letter">щ</text>
<text name="O" label="Щ" category="letter">Щ</text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="з" category="letter">з</text>
<text name="P" label="З" category="letter">З</text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="х" category="letter">х</text>
<text name="braceleft" label="Х" category="letter">Х</text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="ъ" category="letter">ъ</text>
<text name="braceright" label="Ъ" category="letter">Ъ</text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<keysym name="backslash" label="\" category="letter" keyval="92">backslash</keysym>
<keysym name="bar" label="|" category="letter" keyval="124">bar</keysym>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ф" category="letter">ф</text>
<text name="A" label="Ф" category="letter">Ф</text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="ы" category="letter">ы</text>
<text name="S" label="Ы" category="letter">Ы</text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="в" category="letter">в</text>
<text name="D" label="В" category="letter">В</text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="а" category="letter">а</text>
<text name="F" label="А" category="letter">А</text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="п" category="letter">п</text>
<text name="G" label="П" category="letter">П</text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="р" category="letter">р</text>
<text name="H" label="Р" category="letter">Р</text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="о" category="letter">о</text>
<text name="J" label="О" category="letter">О</text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="л" category="letter">л</text>
<text name="K" label="Л" category="letter">Л</text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="д" category="letter">д</text>
<text name="L" label="Д" category="letter">Д</text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="ж" category="letter">ж</text>
<text name="colon" label="Ж" category="letter">Ж</text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="Э" category="letter">Э</text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="я" category="letter">я</text>
<text name="Z" label="Я" category="letter">Я</text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ч" category="letter">ч</text>
<text name="X" label="Ч" category="letter">Ч</text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="с" category="letter">с</text>
<text name="C" label="С" category="letter">С</text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="м" category="letter">м</text>
<text name="V" label="М" category="letter">М</text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="и" category="letter">и</text>
<text name="B" label="И" category="letter">И</text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="т" category="letter">т</text>
<text name="N" label="Т" category="letter">Т</text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="ь" category="letter">ь</text>
<text name="M" label="Ь" category="letter">Ь</text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="б" category="letter">б</text>
<text name="less" label="Б" category="letter">Б</text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="ю" category="letter">ю</text>
<text name="greater" label="Ю" category="letter">Ю</text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="№" category="letter"></text>
<keysym name="question" label="?" category="letter" keyval="63">question</keysym>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="ಒ" category="letter"></text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="೧" category="letter"></text>
<text name="exclam" label="!" category="letter">!</text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="೨" category="letter"></text>
<text name="at" label="@" category="letter">@</text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="೩" category="letter"></text>
<text name="numbersign" label="#" category="letter">#</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="೪" category="letter"></text>
<text name="dollar" label="$" category="letter">$</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="೫" category="letter"></text>
<text name="percent" label="ಜ್ಞ" category="letter">ಜ್ಞ</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="೬" category="letter"></text>
<text name="asciicircum" label="ತ್ರ" category="letter">ತ್ರ</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="೭" category="letter"></text>
<text name="ampersand" label="ಕ್ಷ" category="letter">ಕ್ಷ</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="೮" category="letter"></text>
<text name="asterisk" label="ಶ್ರ" category="letter">ಶ್ರ</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="೯" category="letter"></text>
<text name="parenleft" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="" category="letter"></text>
<text name="parenright" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="-" category="letter">-</text>
<text name="underscore" label="ಃ" category="letter"></text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="ೃ" category="letter"></text>
<text name="plus" label="ಋ" category="letter"></text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ೌ" category="letter"></text>
<text name="Q" label="ಔ" category="letter"></text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ೈ" category="letter"></text>
<text name="W" label="ಐ" category="letter"></text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ಾ" category="letter"></text>
<text name="E" label="ಆ" category="letter"></text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ೀ" category="letter"></text>
<text name="R" label="ಈ" category="letter"></text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ೂ" category="letter"></text>
<text name="T" label="ಊ" category="letter"></text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="ಬ" category="letter"></text>
<text name="Y" label="ಭ" category="letter"></text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="ಹ" category="letter"></text>
<text name="U" label="ಙ" category="letter"></text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ಗ" category="letter"></text>
<text name="I" label="ಘ" category="letter"></text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="ದ" category="letter"></text>
<text name="O" label="ಧ" category="letter"></text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="ಜ" category="letter"></text>
<text name="P" label="ಝ" category="letter"></text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ಡ" category="letter"></text>
<text name="braceleft" label="ಢ" category="letter"></text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="]" category="letter">]</text>
<text name="braceright" label="ಞ" category="letter"></text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="" category="letter"></text>
<text name="bar" label="|" category="letter">|</text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ೋ" category="letter"></text>
<text name="A" label="ಓ" category="letter"></text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="ೇ" category="letter"></text>
<text name="S" label="ಏ" category="letter"></text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="್" category="letter"></text>
<text name="D" label="ಅ" category="letter"></text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ಿ" category="letter">ಿ</text>
<text name="F" label="ಇ" category="letter"></text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ು" category="letter"></text>
<text name="G" label="ಉ" category="letter"></text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="ಪ" category="letter"></text>
<text name="H" label="ಫ" category="letter"></text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="ರ" category="letter"></text>
<text name="J" label="ಱ" category="letter"></text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="ಕ" category="letter"></text>
<text name="K" label="ಖ" category="letter"></text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="ತ" category="letter"></text>
<text name="L" label="ಥ" category="letter"></text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="ಚ" category="letter"></text>
<text name="colon" label="ಛ" category="letter"></text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="ಠ" category="letter"></text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="ೆ" category="letter"></text>
<text name="Z" label="ಎ" category="letter"></text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="" category="letter"></text>
<text name="X" category="letter"></text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="ಮ" category="letter"></text>
<text name="C" label="ಣ" category="letter"></text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="ನ" category="letter"></text>
<text name="V" label="" category="letter"></text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="ವ" category="letter"></text>
<keysym name="B" label="B" category="letter" keyval="66">B</keysym>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="ಲ" category="letter"></text>
<text name="N" label="ಳ" category="letter"></text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="ಸ" category="letter"></text>
<text name="M" label="ಶ" category="letter"></text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="," category="letter">,</text>
<text name="less" label="ಷ" category="letter"></text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="." category="letter">.</text>
<text name="greater" label="ಾ" category="letter"></text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="ಯ" category="letter"></text>
<keysym name="question" label="?" category="letter" keyval="63">question</keysym>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="ऒ" category="letter"></text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="१" category="letter"></text>
<text name="exclam" label="ऍ" category="letter"></text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="२" category="letter"></text>
<text name="at" label="ॅ" category="letter"></text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="३" category="letter"></text>
<text name="numbersign" label="#" category="letter">#</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="४" category="letter"></text>
<text name="dollar" label="$" category="letter">$</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="५" category="letter"></text>
<text name="percent" label="ज्ञ" category="letter">ज्ञ</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="६" category="letter"></text>
<text name="asciicircum" label="त्र" category="letter">त्र</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="७" category="letter"></text>
<text name="ampersand" label="क्ष" category="letter">क्ष</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="८" category="letter"></text>
<text name="asterisk" label="श्र" category="letter">श्र</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="९" category="letter"></text>
<text name="parenleft" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="" category="letter"></text>
<text name="parenright" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="-" category="letter">-</text>
<text name="underscore" label="" category="letter"></text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="ृ" category="letter"></text>
<text name="plus" label="ऋ" category="letter"></text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ौ" category="letter"></text>
<text name="Q" label="औ" category="letter"></text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ै" category="letter"></text>
<text name="W" label="ऐ" category="letter"></text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ा" category="letter"></text>
<text name="E" label="आ" category="letter"></text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ी" category="letter"></text>
<text name="R" label="ई" category="letter"></text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ू" category="letter"></text>
<text name="T" label="ऊ" category="letter"></text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="ॿ" category="letter">ॿ</text>
<text name="Y" label="भ" category="letter"></text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="ह" category="letter"></text>
<text name="U" label="ङ" category="letter"></text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ॻ" category="letter"></text>
<text name="I" label="घ" category="letter"></text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="द" category="letter"></text>
<text name="O" label="ध" category="letter"></text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="ॼ" category="letter"></text>
<text name="P" label="झ" category="letter"></text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ॾ" category="letter"></text>
<text name="braceleft" label="ढ" category="letter"></text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="़" category="letter"></text>
<text name="braceright" label="ञ" category="letter"></text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="ॉ" category="letter"></text>
<text name="bar" label="ऑ" category="letter"></text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ो" category="letter"></text>
<text name="A" label="ओ" category="letter"></text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="े" category="letter"></text>
<text name="S" label="ए" category="letter"></text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="्‌" category="letter">्‌</text>
<text name="D" label="अ" category="letter"></text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ि" category="letter">ि</text>
<text name="F" label="इ" category="letter"></text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="g" label="g" category="letter" keyval="103">g</keysym>
<keysym name="G" label="G" category="letter" keyval="71">G</keysym>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="प" category="letter"></text>
<text name="H" label="फ" category="letter"></text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="र" category="letter"></text>
<text name="J" label="ऱ" category="letter"></text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="क" category="letter"></text>
<text name="K" label="ख" category="letter"></text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="त" category="letter"></text>
<text name="L" label="थ" category="letter"></text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="च" category="letter"></text>
<text name="colon" label="छ" category="letter"></text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="ठ" category="letter"></text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="ॆ" category="letter"></text>
<text name="Z" label="ऎ" category="letter"></text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ं" category="letter"></text>
<text name="X" label="ँ" category="letter"></text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="म" category="letter"></text>
<text name="C" label="ण" category="letter"></text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="न" category="letter"></text>
<text name="V" label="ऩ" category="letter"></text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="व" category="letter"></text>
<text name="B" label="ऴ" category="letter"></text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="ल" category="letter"></text>
<text name="N" label="ळ" category="letter"></text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="स" category="letter"></text>
<text name="M" label="श" category="letter"></text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="," category="letter">,</text>
<text name="less" label="ष" category="letter"></text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="." category="letter">.</text>
<text name="greater" label="।" category="letter"></text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="य" category="letter"></text>
<text name="question" label="य़" category="letter"></text>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="ً" category="letter">ً</text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="۱" category="letter">۱</text>
<text name="exclam" label="!" category="letter">!</text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="۲" category="letter">۲</text>
<text name="at" label="@" category="letter">@</text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="۳" category="letter">۳</text>
<text name="numbersign" label="#" category="letter">#</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="۴" category="letter">۴</text>
<text name="dollar" label="$" category="letter">$</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="۵" category="letter">۵</text>
<text name="percent" label="%" category="letter">%</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="۶" category="letter">۶</text>
<text name="asciicircum" label="^" category="letter">^</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="۷" category="letter">۷</text>
<text name="ampersand" label="&amp;" category="letter">&amp;</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="۸" category="letter">۸</text>
<text name="asterisk" label="*" category="letter">*</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="۹" category="letter">۹</text>
<text name="parenleft" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="۰" category="letter">۰</text>
<text name="parenright" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="-" category="letter">-</text>
<text name="underscore" label="ّ" category="letter">ّ</text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="=" category="letter">=</text>
<text name="plus" label="+" category="letter">+</text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ق" category="letter">ق</text>
<text name="Q" label="ﷺ" category="letter"></text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="و" category="letter">و</text>
<text name="W" label="ؤ" category="letter">ؤ</text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ع" category="letter">ع</text>
<text name="E" label="ئ" category="letter">ئ</text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ر" category="letter">ر</text>
<text name="R" label="ڑ" category="letter">ڑ</text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ت" category="letter">ت</text>
<text name="T" label="ٹ" category="letter">ٹ</text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="ے" category="letter">ے</text>
<text name="Y" label="؁" category="letter">؁</text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="ء" category="letter">ء</text>
<text name="U" label="،" category="letter">،</text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ی" category="letter">ی</text>
<text name="I" label="ۆ" category="letter">ۆ</text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="ہ" category="letter">ہ</text>
<text name="O" label="ۃ" category="letter">ۃ</text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="پ" category="letter">پ</text>
<text name="P" label="إ" category="letter">إ</text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="]" category="letter">]</text>
<text name="braceleft" label="ٰ" category="letter">ٰ</text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="[" category="letter">[</text>
<text name="braceright" label="ٰ" category="letter">ٰ</text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="؎" category="letter">؎</text>
<text name="bar" label="أ" category="letter">أ</text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ا" category="letter">ا</text>
<text name="A" label="آ" category="letter">آ</text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="س" category="letter">س</text>
<text name="S" label="ش" category="letter">ش</text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="د" category="letter">د</text>
<text name="D" label="ڈ" category="letter">ڈ</text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ف" category="letter">ف</text>
<text name="F" label="ُ" category="letter">ُ</text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="گ" category="letter">گ</text>
<text name="G" label="غ" category="letter">غ</text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="ھ" category="letter">ھ</text>
<text name="H" label="ح" category="letter">ح</text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="ج" category="letter">ج</text>
<text name="J" label="ژ" category="letter">ژ</text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="ک" category="letter">ک</text>
<text name="K" label="خ" category="letter">خ</text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="ل" category="letter">ل</text>
<text name="L" label="ؓ" category="letter">ؓ</text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="؛" category="letter">؛</text>
<text name="colon" label=":" category="letter">:</text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="&quot;" category="letter">&quot;</text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="ز" category="letter">ز</text>
<text name="Z" label="ذ" category="letter">ذ</text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ص" category="letter">ص</text>
<text name="X" label="ض" category="letter">ض</text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="چ" category="letter">چ</text>
<text name="C" label="ث" category="letter">ث</text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="ط" category="letter">ط</text>
<text name="V" label="ظ" category="letter">ظ</text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="ب" category="letter">ب</text>
<text name="B" label="أ" category="letter">أ</text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="ن" category="letter">ن</text>
<text name="N" label="ں" category="letter">ں</text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="م" category="letter">م</text>
<text name="M" label="ٔ" category="letter">ٔ</text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="،" category="letter">،</text>
<text name="less" label="ِ" category="letter">ِ</text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="۔" category="letter">۔</text>
<text name="greater" label="َ" category="letter">َ</text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="/" category="letter">/</text>
<text name="question" label="؟" category="letter">؟</text>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="ऒ" category="letter"></text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="१" category="letter"></text>
<text name="exclam" label="ऍ" category="letter"></text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="२" category="letter"></text>
<text name="at" label="ॅ" category="letter"></text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="३" category="letter"></text>
<text name="numbersign" label="#" category="letter">#</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="४" category="letter"></text>
<text name="dollar" label="$" category="letter">$</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="५" category="letter"></text>
<text name="percent" label="ज्ञ" category="letter">ज्ञ</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="६" category="letter"></text>
<text name="asciicircum" label="त्र" category="letter">त्र</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="७" category="letter"></text>
<text name="ampersand" label="क्ष" category="letter">क्ष</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="८" category="letter"></text>
<text name="asterisk" label="श्र" category="letter">श्र</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="९" category="letter"></text>
<text name="parenleft" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="" category="letter"></text>
<text name="parenright" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="-" category="letter">-</text>
<text name="underscore" label="" category="letter"></text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="ृ" category="letter"></text>
<text name="plus" label="ऋ" category="letter"></text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ौ" category="letter"></text>
<text name="Q" label="औ" category="letter"></text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ै" category="letter"></text>
<text name="W" label="ऐ" category="letter"></text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ा" category="letter"></text>
<text name="E" label="आ" category="letter"></text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ी" category="letter"></text>
<text name="R" label="ई" category="letter"></text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ू" category="letter"></text>
<text name="T" label="ऊ" category="letter"></text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="ब" category="letter"></text>
<text name="Y" label="भ" category="letter"></text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="ह" category="letter"></text>
<text name="U" label="ङ" category="letter"></text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ग" category="letter"></text>
<text name="I" label="घ" category="letter"></text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="द" category="letter"></text>
<text name="O" label="ध" category="letter"></text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="ज" category="letter"></text>
<text name="P" label="झ" category="letter"></text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ड" category="letter"></text>
<text name="braceleft" label="ढ" category="letter"></text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="़" category="letter"></text>
<text name="braceright" label="ञ" category="letter"></text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="ॉ" category="letter"></text>
<text name="bar" label="ऑ" category="letter"></text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ो" category="letter"></text>
<text name="A" label="ओ" category="letter"></text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="े" category="letter"></text>
<text name="S" label="ए" category="letter"></text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="्‌" category="letter">्‌</text>
<text name="D" label="अ" category="letter"></text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ि" category="letter">ि</text>
<text name="F" label="इ" category="letter"></text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ु" category="letter"></text>
<text name="G" label="उ" category="letter"></text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="प" category="letter"></text>
<text name="H" label="फ" category="letter"></text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="र" category="letter"></text>
<text name="J" label="ऱ" category="letter"></text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="क" category="letter"></text>
<text name="K" label="ख" category="letter"></text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="त" category="letter"></text>
<text name="L" label="थ" category="letter"></text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="च" category="letter"></text>
<text name="colon" label="छ" category="letter"></text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="ठ" category="letter"></text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="ॆ" category="letter"></text>
<text name="Z" label="ऎ" category="letter"></text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="ं" category="letter"></text>
<text name="X" label="ँ" category="letter"></text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="म" category="letter"></text>
<text name="C" label="ण" category="letter"></text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="न" category="letter"></text>
<text name="V" label="ऩ" category="letter"></text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="व" category="letter"></text>
<text name="B" label="ऴ" category="letter"></text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="ल" category="letter"></text>
<text name="N" label="ळ" category="letter"></text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="स" category="letter"></text>
<text name="M" label="श" category="letter"></text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="," category="letter">,</text>
<text name="less" label="ष" category="letter"></text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="." category="letter">.</text>
<text name="greater" label="।" category="letter"></text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="य" category="letter"></text>
<text name="question" label="य़" category="letter"></text>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

View File

@@ -1,683 +0,0 @@
<?xml version="1.0"?>
<keyboard version="0.90">
<bounds>0.000000,0.000000,640.000000,296.585366</bounds>
<section>
<bounds>15.609756,15.609756,640.000000,39.024390</bounds>
<angle>0</angle>
<row>
<columns>16</columns>
<orientation>1</orientation>
</row>
<key id="keycode9" name="keycode9" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="Escape" label="Esc" category="keyname" keyval="65307">Escape</keysym>
</symbols>
</key>
<key id="keycode67" name="keycode67" column="1" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F1" label="F1" category="function" keyval="65470">F1</keysym>
</symbols>
</key>
<key id="keycode68" name="keycode68" column="2" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F2" label="F2" category="function" keyval="65471">F2</keysym>
</symbols>
</key>
<key id="keycode69" name="keycode69" column="3" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F3" label="F3" category="function" keyval="65472">F3</keysym>
</symbols>
</key>
<key id="keycode70" name="keycode70" column="4" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F4" label="F4" category="function" keyval="65473">F4</keysym>
</symbols>
</key>
<key id="keycode71" name="keycode71" column="5" row="0">
<bounds>266.926829,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F5" label="F5" category="function" keyval="65474">F5</keysym>
</symbols>
</key>
<key id="keycode72" name="keycode72" column="6" row="0">
<bounds>307.512195,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F6" label="F6" category="function" keyval="65475">F6</keysym>
</symbols>
</key>
<key id="keycode73" name="keycode73" column="7" row="0">
<bounds>348.097561,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F7" label="F7" category="function" keyval="65476">F7</keysym>
</symbols>
</key>
<key id="keycode74" name="keycode74" column="8" row="0">
<bounds>388.682927,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F8" label="F8" category="function" keyval="65477">F8</keysym>
</symbols>
</key>
<key id="keycode75" name="keycode75" column="9" row="0">
<bounds>449.560976,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F9" label="F9" category="function" keyval="65478">F9</keysym>
</symbols>
</key>
<key id="keycode76" name="keycode76" column="10" row="0">
<bounds>490.146341,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F10" label="F10" category="function" keyval="65479">F10</keysym>
</symbols>
</key>
<key id="keycode95" name="keycode95" column="11" row="0">
<bounds>530.731707,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F11" label="F11" category="function" keyval="65480">F11</keysym>
</symbols>
</key>
<key id="keycode96" name="keycode96" column="12" row="0">
<bounds>571.317073,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="1">
<keysym name="F12" label="F12" category="function" keyval="65481">F12</keysym>
</symbols>
</key>
</section>
<section>
<bounds>15.609756,78.048780,608.780488,201.365854</bounds>
<angle>0</angle>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>14</columns>
<orientation>1</orientation>
</row>
<row>
<columns>13</columns>
<orientation>1</orientation>
</row>
<row>
<columns>12</columns>
<orientation>1</orientation>
</row>
<row>
<columns>8</columns>
<orientation>1</orientation>
</row>
<key id="keycode49" name="keycode49" column="0" row="0">
<bounds>3.121951,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteleft" label="`" category="letter" keyval="96">quoteleft</keysym>
<text name="asciitilde" label="ഒ" category="letter"></text>
</symbols>
</key>
<key id="keycode10" name="keycode10" column="1" row="0">
<bounds>43.707317,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="1" label="൧" category="letter"></text>
<text name="exclam" label="!" category="letter">!</text>
</symbols>
</key>
<key id="keycode11" name="keycode11" column="2" row="0">
<bounds>84.292683,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="2" label="൨" category="letter"></text>
<text name="at" label="@" category="letter">@</text>
</symbols>
</key>
<key id="keycode12" name="keycode12" column="3" row="0">
<bounds>124.878049,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="3" label="൩" category="letter"></text>
<text name="numbersign" label="്ര" category="letter">്ര</text>
</symbols>
</key>
<key id="keycode13" name="keycode13" column="4" row="0">
<bounds>165.463415,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="4" label="൪" category="letter"></text>
<text name="dollar" label="$" category="letter">$</text>
</symbols>
</key>
<key id="keycode14" name="keycode14" column="5" row="0">
<bounds>206.048780,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="3">
<text name="5" label="൫" category="letter"></text>
<text name="percent" label="%" category="letter">%</text>
<keysym name="EuroSign" label="€" category="letter" keyval="8364">EuroSign</keysym>
</symbols>
</key>
<key id="keycode15" name="keycode15" column="6" row="0">
<bounds>245.073171,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="6" label="൬" category="letter"></text>
<text name="asciicircum" label="^" category="letter">^</text>
</symbols>
</key>
<key id="keycode16" name="keycode16" column="7" row="0">
<bounds>285.658537,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="7" label="" category="letter"></text>
<text name="ampersand" label="ക്ഷ" category="letter">ക്ഷ</text>
</symbols>
</key>
<key id="keycode17" name="keycode17" column="8" row="0">
<bounds>326.243902,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="8" label="൮" category="letter"></text>
<text name="asterisk" label="*" category="letter">*</text>
</symbols>
</key>
<key id="keycode18" name="keycode18" column="9" row="0">
<bounds>366.829268,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="9" label="൯" category="letter"></text>
<text name="parenleft" label="(" category="letter">(</text>
</symbols>
</key>
<key id="keycode19" name="keycode19" column="10" row="0">
<bounds>407.414634,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="0" label="" category="letter"></text>
<text name="parenright" label=")" category="letter">)</text>
</symbols>
</key>
<key id="keycode20" name="keycode20" column="11" row="0">
<bounds>448.000000,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="minus" label="-" category="letter">-</text>
<text name="underscore" label="ഃ" category="letter"></text>
</symbols>
</key>
<key id="keycode21" name="keycode21" column="12" row="0">
<bounds>488.585366,1.560976,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="equal" label="ൃ" category="letter"></text>
<text name="plus" label="ഋ" category="letter"></text>
</symbols>
</key>
<key id="keycode22" name="keycode22" column="13" row="0">
<bounds>529.170732,1.560976,79.609756,37.463415</bounds>
<oref>outline4</oref>
<symbols groups="1" levels="1">
<keysym name="BackSpace" label="←" category="keyname" keyval="65288">BackSpace</keysym>
</symbols>
</key>
<key id="keycode23" name="keycode23" column="0" row="1">
<bounds>3.121951,42.146341,59.317073,37.463415</bounds>
<oref>outline5</oref>
<symbols groups="1" levels="2">
<keysym name="Tab" label="⇥" category="keyname" keyval="65289">Tab</keysym>
<keysym name="ISO_Left_Tab" label="⇤" category="keyname" keyval="65056">ISO_Left_Tab</keysym>
</symbols>
</key>
<key id="keycode24" name="keycode24" column="1" row="1">
<bounds>65.560976,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="q" label="ൌ" category="letter"></text>
<text name="Q" label="ഔ" category="letter"></text>
</symbols>
</key>
<key id="keycode25" name="keycode25" column="2" row="1">
<bounds>106.146341,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="w" label="ൈ" category="letter"></text>
<text name="W" label="ഐ" category="letter"></text>
</symbols>
</key>
<key id="keycode26" name="keycode26" column="3" row="1">
<bounds>145.170732,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="e" label="ാ" category="letter"></text>
<text name="E" label="ആ" category="letter"></text>
</symbols>
</key>
<key id="keycode27" name="keycode27" column="4" row="1">
<bounds>185.756098,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="r" label="ീ" category="letter"></text>
<text name="R" label="ഈ" category="letter"></text>
</symbols>
</key>
<key id="keycode28" name="keycode28" column="5" row="1">
<bounds>226.341463,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="t" label="ൂ" category="letter"></text>
<text name="T" label="ഊ" category="letter"></text>
</symbols>
</key>
<key id="keycode29" name="keycode29" column="6" row="1">
<bounds>266.926829,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="y" label="ബ" category="letter"></text>
<text name="Y" label="ഭ" category="letter"></text>
</symbols>
</key>
<key id="keycode30" name="keycode30" column="7" row="1">
<bounds>307.512195,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="u" label="ഹ" category="letter"></text>
<text name="U" label="ങ" category="letter"></text>
</symbols>
</key>
<key id="keycode31" name="keycode31" column="8" row="1">
<bounds>348.097561,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="i" label="ഗ" category="letter"></text>
<text name="I" label="ഘ" category="letter"></text>
</symbols>
</key>
<key id="keycode32" name="keycode32" column="9" row="1">
<bounds>388.682927,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="o" label="ദ" category="letter"></text>
<text name="O" label="ധ" category="letter"></text>
</symbols>
</key>
<key id="keycode33" name="keycode33" column="10" row="1">
<bounds>429.268293,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="p" label="ജ" category="letter"></text>
<text name="P" label="ഝ" category="letter"></text>
</symbols>
</key>
<key id="keycode34" name="keycode34" column="11" row="1">
<bounds>468.292683,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketleft" label="ഡ" category="letter"></text>
<text name="braceleft" label="ഢ" category="letter"></text>
</symbols>
</key>
<key id="keycode35" name="keycode35" column="12" row="1">
<bounds>508.878049,42.146341,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="bracketright" label="" category="letter"></text>
<text name="braceright" label="ഞ" category="letter"></text>
</symbols>
</key>
<key id="keycode51" name="keycode51" column="13" row="1">
<bounds>549.463415,42.146341,59.317073,37.463415</bounds>
<oref>outline6</oref>
<symbols groups="1" levels="2">
<text name="backslash" label="" category="letter"></text>
<text name="bar" label="|" category="letter">|</text>
</symbols>
</key>
<key id="keycode66" name="keycode66" column="0" row="2">
<bounds>3.121951,82.731707,68.682927,37.463415</bounds>
<oref>outline7</oref>
<symbols groups="1" levels="1">
<keysym name="ISO_Level3_Shift" label="⇮" category="keyname" keyval="65027">ISO_Level3_Shift</keysym>
</symbols>
</key>
<key id="keycode38" name="keycode38" column="1" row="2">
<bounds>76.487805,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="a" label="ോ" category="letter"></text>
<text name="A" label="ഓ" category="letter"></text>
</symbols>
</key>
<key id="keycode39" name="keycode39" column="2" row="2">
<bounds>115.512195,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="s" label="േ" category="letter"></text>
<text name="S" label="ഏ" category="letter"></text>
</symbols>
</key>
<key id="keycode40" name="keycode40" column="3" row="2">
<bounds>156.097561,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="d" label="്" category="letter"></text>
<text name="D" label="അ" category="letter"></text>
</symbols>
</key>
<key id="keycode41" name="keycode41" column="4" row="2">
<bounds>196.682927,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="f" label="ി" category="letter">ി</text>
<text name="F" label="ഇ" category="letter"></text>
</symbols>
</key>
<key id="keycode42" name="keycode42" column="5" row="2">
<bounds>237.268293,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="g" label="ു" category="letter"></text>
<text name="G" label="ഉ" category="letter"></text>
</symbols>
</key>
<key id="keycode43" name="keycode43" column="6" row="2">
<bounds>277.853659,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="h" label="പ" category="letter"></text>
<text name="H" label="ഫ" category="letter"></text>
</symbols>
</key>
<key id="keycode44" name="keycode44" column="7" row="2">
<bounds>318.439024,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="j" label="ര" category="letter"></text>
<text name="J" label="റ" category="letter"></text>
</symbols>
</key>
<key id="keycode45" name="keycode45" column="8" row="2">
<bounds>359.024390,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="k" label="ക" category="letter"></text>
<text name="K" label="ഖ" category="letter"></text>
</symbols>
</key>
<key id="keycode46" name="keycode46" column="9" row="2">
<bounds>399.609756,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="l" label="ത" category="letter"></text>
<text name="L" label="ഥ" category="letter"></text>
</symbols>
</key>
<key id="keycode47" name="keycode47" column="10" row="2">
<bounds>438.634146,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="semicolon" label="ച" category="letter"></text>
<text name="colon" label="ഛ" category="letter"></text>
</symbols>
</key>
<key id="keycode48" name="keycode48" column="11" row="2">
<bounds>479.219512,82.731707,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<keysym name="quoteright" label="&apos;" category="letter" keyval="39">quoteright</keysym>
<text name="quotedbl" label="" category="letter"></text>
</symbols>
</key>
<key id="keycode36" name="keycode36" column="12" row="2">
<bounds>519.804878,82.731707,88.975610,37.463415</bounds>
<oref>outline8</oref>
<symbols groups="1" levels="1">
<keysym name="Return" label="↵" category="keyname" keyval="65293">Return</keysym>
</symbols>
</key>
<key id="keycode50" name="keycode50" column="0" row="3">
<bounds>3.121951,121.756098,88.975610,37.463415</bounds>
<oref>outline9</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_L" label="⇧" category="keyname" keyval="65505">Shift_L</keysym>
</symbols>
</key>
<key id="keycode52" name="keycode52" column="1" row="3">
<bounds>95.219512,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="z" label="െ" category="letter"></text>
<text name="Z" label="എ" category="letter"></text>
</symbols>
</key>
<key id="keycode53" name="keycode53" column="2" row="3">
<bounds>135.804878,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="x" label="" category="letter"></text>
<text name="X" label="X" category="letter">X</text>
</symbols>
</key>
<key id="keycode54" name="keycode54" column="3" row="3">
<bounds>176.390244,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="c" label="മ" category="letter"></text>
<text name="C" label="ണ" category="letter"></text>
</symbols>
</key>
<key id="keycode55" name="keycode55" column="4" row="3">
<bounds>215.414634,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="v" label="ന" category="letter"></text>
<text name="V" label="V" category="letter">V</text>
</symbols>
</key>
<key id="keycode56" name="keycode56" column="5" row="3">
<bounds>256.000000,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="b" label="വ" category="letter"></text>
<text name="B" label="ഴ" category="letter"></text>
</symbols>
</key>
<key id="keycode57" name="keycode57" column="6" row="3">
<bounds>296.585366,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="n" label="ല" category="letter"></text>
<text name="N" label="ള" category="letter"></text>
</symbols>
</key>
<key id="keycode58" name="keycode58" column="7" row="3">
<bounds>337.170732,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="m" label="സ" category="letter"></text>
<text name="M" label="ശ" category="letter"></text>
</symbols>
</key>
<key id="keycode59" name="keycode59" column="8" row="3">
<bounds>377.756098,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="comma" label="," category="letter">,</text>
<text name="less" label="ഷ" category="letter"></text>
</symbols>
</key>
<key id="keycode60" name="keycode60" column="9" row="3">
<bounds>418.341463,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="period" label="." category="letter">.</text>
<text name="greater" label="&gt;" category="letter">&gt;</text>
</symbols>
</key>
<key id="keycode61" name="keycode61" column="10" row="3">
<bounds>458.926829,121.756098,37.463415,37.463415</bounds>
<oref>outline3</oref>
<symbols groups="1" levels="2">
<text name="slash" label="യ" category="letter"></text>
<keysym name="question" label="?" category="letter" keyval="63">question</keysym>
</symbols>
</key>
<key id="keycode62" name="keycode62" column="11" row="3">
<bounds>499.512195,121.756098,109.268293,37.463415</bounds>
<oref>outline10</oref>
<symbols groups="1" levels="1">
<keysym name="Shift_R" label="⇧" category="keyname" keyval="65506">Shift_R</keysym>
</symbols>
</key>
<key id="keycode37" name="keycode37" column="0" row="4">
<bounds>3.121951,162.341463,56.195122,37.463415</bounds>
<oref>outline1</oref>
<symbols groups="1" levels="2">
<symbol name="cycle-keyboard" icon="input-keyboard-symbolic" label="⌨" category="keyname">cycle-keyboard</symbol>
<symbol name="preferences" icon="preferences-system-symbolic" label="☺" category="keyname">preferences</symbol>
</symbols>
</key>
<key id="keycode133" name="keycode133" column="1" row="4">
<bounds>62.439024,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Control_L" label="Ctrl" category="keyname" keyval="65507">Control_L</keysym>
</symbols>
</key>
<key id="keycode64" name="keycode64" column="2" row="4">
<bounds>113.951220,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="2">
<keysym name="Alt_L" label="Alt" category="keyname" keyval="65513">Alt_L</keysym>
<keysym name="Meta_L" label="Meta" category="keyname" keyval="65511">Meta_L</keysym>
</symbols>
</key>
<key id="keycode65" name="keycode65" column="3" row="4">
<bounds>165.463415,162.341463,238.829268,37.463415</bounds>
<oref>outline11</oref>
<symbols groups="1" levels="1">
<keysym name="space" category="letter" keyval="32">space</keysym>
</symbols>
</key>
<key id="keycode108" name="keycode108" column="4" row="4">
<bounds>407.414634,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Left" label="⇠" category="keyname" keyval="65361">Left</keysym>
</symbols>
</key>
<key id="keycode134" name="keycode134" column="5" row="4">
<bounds>458.926829,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Up" label="⇡" category="keyname" keyval="65362">Up</keysym>
</symbols>
</key>
<key id="keycode135" name="keycode135" column="6" row="4">
<bounds>508.878049,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Down" label="⇣" category="keyname" keyval="65364">Down</keysym>
</symbols>
</key>
<key id="keycode105" name="keycode105" column="7" row="4">
<bounds>560.390244,162.341463,48.390244,37.463415</bounds>
<oref>outline2</oref>
<symbols groups="1" levels="1">
<keysym name="Right" label="⇢" category="keyname" keyval="65363">Right</keysym>
</symbols>
</key>
</section>
<outline id="outline1">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>56.195122,0.000000</point>
<point>56.195122,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline3">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>37.463415,0.000000</point>
<point>37.463415,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline4">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>79.609756,0.000000</point>
<point>79.609756,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline5">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline6">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>59.317073,0.000000</point>
<point>59.317073,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline7">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>68.682927,0.000000</point>
<point>68.682927,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline8">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline9">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>88.975610,0.000000</point>
<point>88.975610,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline10">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>109.268293,0.000000</point>
<point>109.268293,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline11">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>238.829268,0.000000</point>
<point>238.829268,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
<outline id="outline2">
<corner-radius>1.000000</corner-radius>
<point>0.000000,0.000000</point>
<point>48.390244,0.000000</point>
<point>48.390244,37.463415</point>
<point>0.000000,37.463415</point>
</outline>
</keyboard>

Some files were not shown because too many files have changed in this diff Show More