Compare commits

...

649 Commits

Author SHA1 Message Date
523caa99c5 build: Avoid MaybeUninit on older Debian 2020-10-03 13:11:17 +00:00
20c44476a3 Merge branch 'master' into x11kb 2020-10-03 12:34:50 +00:00
e6c136918c keymaps: Use multiple key maps, each within the limit of what Xorg can accept.
Key maps are switched on key press whenever needed.
2020-10-03 12:22:01 +00:00
24adba44be Merge branch 'leak-fixes' into 'master'
Fix 2 leaks

Closes #148

See merge request Librem5/squeekboard!386
2020-10-03 07:38:52 +00:00
5e43a31051 Fix leak endlessly adding a resource path to the default theme 2020-10-03 16:23:13 +10:00
40850267d4 Fix leak in level_keyboard_new
xkb_keymap_get_as_string requires that the string it returns is freed by
the caller.
2020-10-03 16:07:36 +10:00
c686cf7e81 syntax: Let older rustc understand symbolmap's lifetime 2020-10-01 14:12:15 +00:00
ec5570a547 Merge branch 'keyboard-layout-belgian' into 'master'
proposal for belgian layout (copy of fr)

See merge request Librem5/squeekboard!382
2020-10-01 13:21:49 +00:00
Al
72bd265065 alphabetical order for src/resources.rs tests/meson.build 2020-10-01 14:54:22 +02:00
Al
4357052fe7 proposal for belgian layout (copy of fr) 2020-09-30 15:42:31 +02:00
2959d27ea3 tests: Check for missing return in builtin layouts except emoji 2020-09-28 20:37:34 +00:00
88d3a45083 keymap: Concentrate special handling of BackSpace, which is implicit in Erase action 2020-09-28 20:37:34 +00:00
edc330d683 data: Restore testability of action->keysym conversion 2020-09-28 20:37:31 +00:00
44e06bc0dc keymap: Generate from symbol map, not layout 2020-09-28 17:52:00 +00:00
8e2e8b0f5f vkeyboard: Use a generic slice instead of a vector 2020-09-28 17:36:59 +00:00
4b825c26a6 Merge branch 'docs-fixes' into 'master'
Expand the development documentation in the readme

Closes #227

See merge request Librem5/squeekboard!377
2020-09-26 09:00:51 +00:00
94bfa92c12 Expand the development documentation in the readme
Fixes #227
2020-09-26 00:34:09 +10:00
50fb124b26 Merge branch 'hacking-spelling-fixes' into 'master'
Fix spelling mistakes in doc/hacking.md

Closes #217

See merge request Librem5/squeekboard!378
2020-09-25 12:47:17 +00:00
7aa004ceff Fix spelling mistakes in doc/hacking.md
Fixes #217
2020-09-25 21:44:27 +10:00
fea4ea7392 keymap: Make acceptable by Xwayland
Xwayland is more strict about accepting key maps than Wayland, and it also fails silently. Instead of fixing the other parts of the stack to reshape accepted Wayland key maps into acceptable Xorg key maps, this patch makes Squeekboard serve the maximum compatibility version in the first place.

Compatibility not actually guaranteed, that's purely observational.

Layouts with many characters (above 240) may lose some characters. This is again due to Xwayland accepting stricter layouts than Wayland.
2020-09-25 09:12:01 +00:00
60056dcf26 Merge branch 'honor-a11y-setting' into 'master'
Honor org.gnome.desktop.a11y.applications screen-keyboard-enabled

Closes #222

See merge request Librem5/squeekboard!370
2020-09-24 06:49:13 +00:00
5580853f31 Merge branch 'depr' into 'master'
rust: Fix deprecation warnings

See merge request Librem5/squeekboard!374
2020-09-21 17:01:51 +00:00
d93e9c2b11 rust: Fix deprecation warnings 2020-09-21 10:57:01 +00:00
4ccf11f4fd server-context-service: Don't show keyboard when disabled
If the corresponding a11y settings is disbaled don't unfold
the keyboad at all.

This helps e.g. running the same session on laptops or when
an external keyboard is attached.

Closes: #222
2020-09-14 11:34:17 +02:00
6c5df02921 Merge branch 'cleanup' into 'master'
A bunch of cleanups

See merge request Librem5/squeekboard!371
2020-09-14 09:26:20 +00:00
b137e2e3a0 Merge branch 'ukrainian-keyboard-layout' into 'master'
Add Ukrainian keyboard layout

Closes #223

See merge request Librem5/squeekboard!372
2020-09-14 07:48:03 +00:00
820a8b6ca1 Add Ukrainian keyboard layout.
Fixes https://source.puri.sm/Librem5/squeekboard/-/issues/223

Signed-off-by: Nazarii Kretovych <nazarii.kretovych@gmail.com>
2020-09-14 08:34:09 +03:00
8bdfb69dc1 server-context-service: swap signal arguments
This makes sure 'self' comes first. While at that fix the
function signatures and use ServerContextService directly
and add type checks so it's easy to notice when we messed up.
2020-09-11 20:44:36 +02:00
1e6bcef055 server-context-service: Consistenty name self argument 'self'
It's confusing when the object a method acts on is sometimes called
context and sometimes called state. So name it 'self' as we do
in other projects.
2020-09-11 20:05:49 +02:00
07faf906d8 eekboard-context-service: Drop private struct
There's no point having it for a final type and it only
makes the code harder to read.
2020-09-11 18:55:35 +02:00
53f30324f0 eekboard-context-service: Drop the GObject boilerplate
The previous commits show it's not really a derivable type
so make it a finale one.
2020-09-11 18:55:35 +02:00
3e212ddab4 eekboard-context-service: Drop docstrings for inexistent functions 2020-09-11 18:46:22 +02:00
966990ad65 eekboad-context-service: Drop signal class handler
It's unused
2020-09-11 18:45:33 +02:00
a8b81172fc build: Enable '-Wformat-nonliteral' 2020-09-11 18:40:56 +02:00
97f51591b3 ServerContextService: Drop GObject boilerplate
G_DECLARE_FINAL_TYPE does this for us
2020-09-11 18:16:30 +02:00
6756fb423a build: Enable -Wredundant-declarations 2020-09-11 18:16:30 +02:00
eb7673d2c2 treewide: Drop redundant declarations 2020-09-11 18:16:30 +02:00
24b6a04903 build: Enable -Wmaybe-uninitialized
No changes needed.
2020-09-11 18:16:30 +02:00
b197cd839e build: Enable -Wformat-security
No changes needed.
2020-09-11 18:16:30 +02:00
857a916402 build: Enable -Winit-self
No changes needed
2020-09-11 18:16:30 +02:00
ca68fc2040 eek-keyboard: Don't ignore return value
This fixes

../eek/eek-keyboard.c:71:5: warning: ignoring return value of ‘getrandom’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   71 |     getrandom(r, 6, GRND_NONBLOCK);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17/32] Compiling C object 'src/25a6634@@libsqueekboard@sta/.._eek_eek-renderer.c.o'
2020-09-11 18:16:30 +02:00
bd661bd4f4 gitlab-ci: Enable --Werror
This makes sure we don't have more warnings creeping in
2020-09-11 18:16:30 +02:00
4228192bda layout: Fix warning
This fixes

warning: unnecessary parentheses around block return value
   --> /var/scratch/librem5/squeekboard/src/layout.rs:110:13
    |
110 | /             (point.x > self.x && point.x < self.x + self.width
111 | |                 && point.y > self.y && point.y < self.y + self.height)
    | |______________________________________________________________________^
    |
    = note: `#[warn(unused_parens)]` on by default
2020-09-11 18:16:30 +02:00
0f7ab99da3 keyboard: Fix warning
warning: unused variable: `name`
   --> /var/scratch/librem5/squeekboard/src/keyboard.rs:195:10
    |
195 |     for (name, state) in keystates.iter() {
    |          ^^^^ help: consider prefixing with an underscore: `_name`
2020-09-11 18:16:30 +02:00
e15d317488 eekboard-context-service: Drop EEKBOARD_CONTEXT_SERVICE_GET_PRIVATE
This fixes the

../eekboard/eekboard-context-service.c:244:13: warning: Deprecated pre-processor symbol, replace with
  244 |     self->priv = EEKBOARD_CONTEXT_SERVICE_GET_PRIVATE(self);

warning and makes us use more modern GObject style
2020-09-11 18:16:30 +02:00
93e9ce0dd7 build: Enable '-Wunused-function' 2020-09-11 18:16:13 +02:00
9d63b505ec build: Enable '-Wold-style-definition' '-Wstrict-prototypes' 2020-09-11 18:15:44 +02:00
306c11f1fd treewide: Use new style function definitions 2020-09-11 18:15:02 +02:00
c26feed8b2 eekboard-context-service: Return early if schema is unavailable
This also fixes a leak of GSettingsSchema.
2020-09-11 18:14:19 +02:00
2f4a652f53 Merge branch 'fixmods' into 'master'
virtual_keyboard: Fix desynced modifiers state

See merge request Librem5/squeekboard!362
2020-08-28 11:02:50 +00:00
e5796d0d7b Merge branch 'rel-1.9.3' into 'master'
Document changes and release 1.9.3

Closes #212

See merge request Librem5/squeekboard!369
2020-08-06 15:50:00 +00:00
1ee58ce7a0 Document changes and release 1.9.3 2020-08-05 16:17:44 +02:00
88821e2e82 Merge branch 'terminal' into 'master'
Terminal layout: another approach

See merge request Librem5/squeekboard!368
2020-07-20 09:48:36 +00:00
81344bb9c2 Merge branch 'patch-1' into 'master'
Brazilian Portuguese Keyboard Layout.

See merge request Librem5/squeekboard!365
2020-07-20 09:47:19 +00:00
c87b61d065 Brazilian Portuguese Keyboard Layout. 2020-07-20 09:47:19 +00:00
97da44f059 Terminal layout: another approach 2020-07-18 05:43:15 +02:00
f5a5282219 Revert "Merge branch 'btantau-master-patch-76686' into 'master'"
This reverts commit 0c8feb7687, reversing
changes made to 762e12431d.
2020-07-18 03:26:03 +02:00
123faecb7d Merge branch 'italian' into 'master'
italian: Fix space and period

See merge request Librem5/squeekboard!364
2020-07-16 15:57:38 +00:00
7ec3053aa4 Merge branch 'fixsize' into 'master'
size: Hardcode size to work around screen rotation

See merge request Librem5/squeekboard!361
2020-07-16 15:56:57 +00:00
9512fd8436 virtual_keyboard: Fix desynced modifiers state
This ensures that keymap switches leave modifiers and virtual keys in a known state.
2020-07-15 18:08:59 +00:00
0c8feb7687 Merge branch 'btantau-master-patch-76686' into 'master'
New terminal layout, showing more useful keys at the same time

See merge request Librem5/squeekboard!345
2020-07-15 15:06:36 +00:00
f3f1d58fe1 Add Menu key. 2020-07-15 14:42:55 +00:00
c0c666f1b3 Make f-keys slightly wider. 2020-07-15 14:41:17 +00:00
ea22afba79 Add missing Ê key. 2020-07-15 14:41:01 +00:00
d7c7528d3d italian: Fix space and period 2020-07-10 15:04:43 +00:00
93ff086e3a ci: Re-add x64 Buster build 2020-06-28 17:38:10 +00:00
4f72779681 size: Hardcode size to work around screen rotation
Phoc sends output information *after* changing keyboard surface size. Squeekboard adjusts size on surface events, but not on output in this revision, making it unaware of display size at the time of adjustment, resulting in bad adjustment.

This change hardcodes the proportions again to make it work at least on the Librem5.
2020-06-28 17:14:49 +00:00
762e12431d Merge branch 'fix_gio_unix' into 'master'
build: Add missing gio-unix dependency

See merge request Librem5/squeekboard!356
2020-06-26 07:13:23 +00:00
767bb1745c Merge branch 'fix' into 'master'
debian: Require lsb-release

See merge request Librem5/squeekboard!359
2020-06-26 06:50:44 +00:00
26e0473fc1 debian: Require lsb-release 2020-06-25 17:45:08 +00:00
0735d1c6c6 Merge branch 'bullseye' into 'master'
build: Debian Bullseye-compatible deps

See merge request Librem5/squeekboard!357
2020-06-25 17:03:28 +00:00
67d8926913 ci: Add amber job 2020-06-25 16:17:16 +00:00
0299527700 debian: Add amber to legacy distro list 2020-06-25 11:29:47 +00:00
ecfc45c2de build: Make compatible with Debian Bullseye
This commit is a bit bigger than it could have: Meson changes could have gone in separately from CI and Debian.

This commit looks more complicated than it should reasonably be. Alas, Cargo is a piece of work, and it doesn't let honest people just choose different versions of dependencies, leading to a cascade of misery. Several things were tried to curb the disaster:

- Cargo [feature] supports choosing dependencies, but doesn't support specifying dependency versions
- Cargo has a cfg() syntax in sections for choosing dependencies by build options, but it explicitly doesn't support selecting on features…
- Cargo allows choosing different dependencies based on features, so perhaps dependencies with different versions could live in stub crates pulled in as needed? Nope! If a dependency doesn't exist in the repo (and that's the point here), Cargo throws up its hands.

This means Cargo.toml needs to be generated based on the build type. More misery:

- we lose the simplicity of just doing `cargo.sh` for simple housekeeping like deps updates. HACKING.md was updated to reflect that. Perhaps that's inevitable - build options need to be like this.
- Some flaky adjustments needed in `cargo.sh` because of an additional argument that can be mistaken for an argument to the exec in `cargo run`.
- Specifying a custom `Cargo.toml` means Cargo can no longer find any tests, examples, benchmarks, or binaries, because it searches relative to the directory of `Cargo.toml`, which is now the build dir. Extra care needed to not forget about them now.

As soon as Cargo allows anything better for managing deps versions, the above should be undone in its favor.

Good side is that a couple bugs went away:

- build flags not always making it to Cargo
- arm64 builds were optional while they shouldn't
- test layouts in unit tests are loaded from an explicit directory now

The Bullseye versions of dependencies are canonical now, Buster considered legacy.
2020-06-24 15:51:21 +00:00
3ba6aca99d build: Add missing gio-unix dependency 2020-06-13 08:27:33 +00:00
40b3172de8 Merge branch '1.9.2' into 'master'
Release 1.9.2

See merge request Librem5/squeekboard!354
2020-06-07 15:23:02 +00:00
1a2df96c02 Release v1.9.2 "Aristotelian physics"
- Swedish
- Russian
- Danish
- French
- minor fixes
2020-06-07 14:38:23 +00:00
d2989e8ecd Merge branch 'lfb' into 'master'
Provide haptic feedback via libfeedback

Closes #166

See merge request Librem5/squeekboard!350
2020-06-04 13:31:24 +00:00
ec58442724 eek-gtk-keyboard: Trigger event feedback on button press
Use libfeedback to trigger feedback for the button press event.

Closes: #166
2020-06-04 12:13:58 +02:00
e89c9b02a0 debian: Build-depend on libfeedback
Will be needed in the following commits.
2020-06-02 10:10:43 +02:00
1b2725250b eek: Drop libcanberra usage 2020-06-02 10:10:43 +02:00
e285ecce93 d/rules: Only remove Cargo.lock if it exists
This allows to invoke the build target twice in a row
2020-06-02 10:10:43 +02:00
75ecf9059a Update rust deps for release 2020-06-01 09:36:36 +00:00
5715458d33 Merge branch 'master' into 'master'
Add danish keylayout

See merge request Librem5/squeekboard!353
2020-05-27 07:14:35 +00:00
8196117269 Merge branch 'desktopfile-absolute' into 'master'
sm.puri.Squeekboard.desktop: make path to Exec= absolute

See merge request Librem5/squeekboard!352
2020-05-26 18:20:49 +00:00
7fed1339ed add test for danish layout 2020-05-26 16:37:14 +02:00
0339d13ce4 Danish keyboard layout 2020-05-26 16:22:38 +02:00
9f1e49da5d Danish keyboard layout 2020-05-26 16:21:17 +02:00
c1737c763f sm.puri.Squeekboard.desktop: make path to Exec= absolute
This uses the same logic from Phosh to render absolute paths in .desktop
files.
2020-05-26 12:02:55 +02:00
fe22fc2271 Merge branch 'remove-dep-libcroco' into 'master'
Removed unused dependency 'libcroco'

See merge request Librem5/squeekboard!351
2020-05-24 18:19:15 +00:00
f473a47eb8 Removed unused dependency 'libcroco' 2020-05-24 16:31:43 +02:00
76bd87686a Merge branch 'ru-layout' into 'master'
Fresh Russian layout

See merge request Librem5/squeekboard!347
2020-05-20 17:59:22 +00:00
ef85823528 Fresh Russian layout 2020-05-20 17:59:22 +00:00
54ac7511cd Merge branch 'scaling' into 'master'
Stop scaling

See merge request Librem5/squeekboard!339
2020-05-13 11:01:21 +00:00
080bbb4d4e Merge branch 'fix_doc_reference' into 'master'
Folder is doc, not docs

See merge request Librem5/squeekboard!349
2020-05-08 16:44:44 +00:00
7c35307011 Folder is doc, not docs 2020-05-07 16:06:44 +02:00
cd3255b301 Merge branch 'swedish_wide_button' into 'master'
Swedish keyboard, use wide button switching between numbers, symbols and base

See merge request Librem5/squeekboard!344
2020-05-06 11:22:13 +00:00
f8b6b98633 Merge branch '1.9.1' into 'master'
Release 1.9.1

See merge request Librem5/squeekboard!348
2020-04-29 13:04:04 +00:00
6414b57e57 Merge branch 'french-layout' into 'master'
French layout

See merge request Librem5/squeekboard!346
2020-04-28 12:31:44 +00:00
46de67a4db Add Ctrl and Alt modifier keys. 2020-04-28 08:29:41 +00:00
2a20bbbf2a tests: add french layout 2020-04-27 09:51:40 +02:00
13ebf9449f keyboards: fr: improve diacritics layout
This commit changes the layout of the `eschars` view, in an attempt at 
making it more logical and optimized to reach more frequent symbols more 
easily.
2020-04-23 14:49:34 +02:00
fa8449eb1e keyboards: fr: improve consistency with other layouts
In order to stay consistent with other layouts, the bottom line has been 
re-arranged and keys dimensions have been optimized (based on the 
`terminal` layout, which has similar features).

Furthermore, the ç/Ç keys in the 'normal' views have been replaced with 
./, so that all diacritics are on the same view.

This commit also fixes the Backspace key behavior.
2020-04-23 14:48:58 +02:00
0bdb5f1f33 resources: include French keyboard layout 2020-04-23 13:07:33 +02:00
b631817896 keyboards: fr: make sure the layout fits the screen
Due to an excessive amount of keys in the `eschars` view, one of the
rows would overflow the screen. This commit removes the `Ç` key, which
is already present in the `upper` view.
2020-04-21 19:39:17 +02:00
09c78da7a7 keyboards: fr: fix keyboard layout
A number of keys would not give the expected result, due to the lack of
a `text` of `action` property. Additionally, the layout wouldn't load
because of an old file format (it seems `bounds` are not supported
anymore).

This patch makes sure this layout can be loaded and used by squeekboard
v0.1.9.
2020-04-21 19:39:07 +02:00
7de7dc1b33 Replace duplicated show_symbols by show_eschars and removed "Delete" button that it's doing nothing 2020-04-21 19:17:27 +02:00
323d89e4cb Add new file 2020-04-21 19:17:27 +02:00
a5ce25055f Show more useful keys at the same time. 2020-04-10 16:43:36 +00:00
184bdaa0b6 More fixes of button sizes 2020-03-26 18:02:32 +01:00
0459d33c4c Swedish keyboard, wide button switching between numbers, symbols and base 2020-03-26 15:12:01 +01:00
3d1a641ca3 Merge remote-tracking branch 'upstream/master' into scaling 2020-03-12 10:51:30 +00:00
0466a520f2 Merge branch 'predictoin_ui' into 'master'
Cleanups to make EekGtkKeyboard more standalone

See merge request Librem5/squeekboard!336
2020-03-12 10:46:14 +00:00
9e8aca1cbf Merge branch 'unavailable' into 'master'
Crash less when outside resources are unavailable

See merge request Librem5/squeekboard!341
2020-03-11 10:55:05 +00:00
334898c5a5 Release version 1.9.1 "Expected value"
- Preview support for "Control" and "Alt" modifiers in buttons, use field "modifiers: Control" inside a button
- Don't crash when gsettings has an empty list of settings
- Documentation rearrangement
2020-03-08 10:06:53 +00:00
67a5f1bb0b cargo: Bump package versions before release 2020-03-08 10:02:54 +00:00
eb84e52897 Merge branch 'release_check' into 'master'
CI: Fix typo

See merge request Librem5/squeekboard!343
2020-03-07 11:38:34 +00:00
0f7ff1636d CI: Fix typo 2020-03-07 11:17:25 +00:00
8ff8e8ac48 Merge remote-tracking branch 'upstream/master' into scaling 2020-03-07 10:46:09 +00:00
d4bb9038c5 Merge branch 'release_check' into 'master'
CI: Test that any bump to changelog has a corresponding tag

See merge request Librem5/squeekboard!337
2020-03-07 10:33:53 +00:00
f3caeb8fc6 Merge branch 'docs' into 'master'
Docs: describe project priorities

See merge request Librem5/squeekboard!338
2020-03-07 10:33:03 +00:00
abaaf04b87 Merge branch 'modifiers' into 'master'
Add simple modifiers support

See merge request Librem5/squeekboard!306
2020-03-07 10:32:33 +00:00
2770e1769c sizing: Ignore scaling factor for layout selection 2020-03-07 10:31:39 +00:00
3cd170acc3 sizing: Create a standalone UI shape manager
The manager is used for sizing the layer surface. It promises never to exceed half the output height.

The selection of the current layout is not being done here, leading to worse behaviour in 1:1 scaling.

In the future, it could be used for sizing the keyboard itself and the suggestion box, as well as decide which layout to use, because layouts should have some sizing hints.
2020-03-07 10:31:39 +00:00
24f709ab13 Remove unused code 2020-03-07 10:31:39 +00:00
784f9127fa layout: Minor generalizations 2020-03-07 10:31:39 +00:00
22daefba3a levelkeyboard: Rearrange to make future conversion easier 2020-03-07 10:31:39 +00:00
4ff9cf087b renderer: Simplify by dropping gobjectness 2020-03-07 10:31:39 +00:00
61e1ab5c5a layout: Split out choice to a struct on its own 2020-03-07 10:26:52 +00:00
7fbc9ed56e Merge branch 'master' into 'master'
Fix minor comment typos

See merge request Librem5/squeekboard!342
2020-03-04 07:18:02 +00:00
&t
67cc4f11cf Fix minor comment typos 2020-03-04 04:53:53 +00:00
8ac2b5a713 gsettings: Don't crash on switching when unavailable 2020-03-03 19:46:53 +00:00
8bae8fe5bb dbus: Don't crash if can't make a connection 2020-03-03 19:25:49 +00:00
b3cfc8a0f3 gsettings: Don't crash when unavailable 2020-03-03 19:10:50 +00:00
5a591127a1 Merge branch 'doap' into 'master'
meta: Add doap file

See merge request Librem5/squeekboard!335
2020-03-01 14:21:45 +00:00
8f3d010349 hacking: Move into docs/ 2020-02-28 14:10:44 +00:00
7eb5c6d466 docs: Add the guiding principle 2020-02-28 13:26:09 +00:00
9f6fe8318c CI: Test that any bump to changelog has a corresponding tag
Prevents forgetting to sign the tag, which is currently done out of band and independently of review.
2020-02-28 12:14:18 +00:00
92e9d994fe modifiers: Support Control and Alt
Control and Alt are special in that they aren't expected to switch levels, and so don't need to change what characters are output.

Use in layouts by adding `modifier: Control` or `modifier: Alt` in place of `text: "foo"`.

The latching of the modifier will force the keyboard to emit raw key presses and prevent it from outputting text.
2020-02-28 11:21:07 +00:00
c28f07fcfd Merge branch 'fix_variant' into 'master'
settings: Handle empty settings

See merge request Librem5/squeekboard!333
2020-02-28 11:09:11 +00:00
80919dbc42 Merge branch 'fix_ref' into 'master'
Variant: Use proper pointer conversion between C and Rust

See merge request Librem5/squeekboard!334
2020-02-28 11:08:46 +00:00
cc369f6f81 Merge branch 'press' into 'master'
layout: Improve press handling

See merge request Librem5/squeekboard!330
2020-02-26 18:43:21 +00:00
99f2f286e3 Merge branch '1.9.0' into 'master'
Release 1.9.0

See merge request Librem5/squeekboard!328
2020-02-24 12:55:52 +00:00
46cbaf8e87 keyboard: Remove unused code 2020-02-23 12:15:19 +00:00
53b4466899 meta: Add doap file 2020-02-23 10:42:07 +00:00
c0aee5de26 Variant: Use proper pointer conversion between C and Rust 2020-02-20 12:17:50 +00:00
404f94638f settings: Handle empty settings 2020-02-20 12:06:47 +00:00
cb802cfb50 layout: Improve press handling
Makes it more similar to release handling, removes some redundant checks.

This makes it easier to integrate modifiers in the future.
2020-02-19 15:40:39 +00:00
930f5be0c8 Release 1.9.0 "Fractal dimension"
Highlights:

- Fixed glib critical when switching layouts
- Fixed minor memory leaks when switching layouts
- Whenever the client supports it, text is sent as text instread of key presses
- New Polish language layout
- Fixed greek layout
- Better key locking
- Less leaks
- Tweaks in terminal layout
- Better emoji layout
2020-02-19 14:47:04 +00:00
7266f539d4 cargo: Update deps 2020-02-19 14:44:35 +00:00
da1f480f7a Merge branch 'emoji' into 'master'
Emoji: More choices

See merge request Librem5/squeekboard!324
2020-02-19 14:43:58 +00:00
3c3f00ede8 Merge branch 'bad_delete' into 'master'
text input: Disable erasing

See merge request Librem5/squeekboard!332
2020-02-18 20:38:33 +00:00
85be855032 text input: Disable erasing
Erasing with zwp_text_input_v3 version 1 requires bytes, and bytes require get_surrounding_text. That, however, is optional. That's a mistake in protocol design.

Easiest to drop this until the mess is solved on the protocol side.
2020-02-12 10:56:07 +00:00
3e642fdac7 Merge branch 'termi' into 'master'
layouts: terminal: Use altline outline for dot key

See merge request Librem5/squeekboard!331
2020-02-12 10:44:28 +00:00
ea288ca62e layouts: terminal: Use altline outline for dot key
This prevents the buttons from jumping around when switching between views.
2020-02-11 23:16:09 +01:00
a57a78aa2e Merge branch 'center' into 'master'
Center views relative to layout space

See merge request Librem5/squeekboard!326
2020-02-09 20:34:31 +00:00
b441103674 Merge branch 'slash' into 'master'
terminal: Make */ easier to reach

See merge request Librem5/squeekboard!325
2020-02-06 09:31:58 +00:00
1c3516d6bf terminal: Make */ easier to reach
They exchanged positions with @%
2020-02-05 19:46:59 +00:00
41be2747d5 Merge branch 'fix' into 'master'
layout: Improve scoping of locked variable

See merge request Librem5/squeekboard!329
2020-02-05 13:19:19 +00:00
c766fae686 layout: Improve scoping of locked variable 2020-02-05 12:55:31 +00:00
a0a2e40fa0 Merge branch 'pl' into 'master'
Better accents in PL

See merge request Librem5/squeekboard!323
2020-02-05 11:13:20 +00:00
aadcdbf276 Merge branch 'langs' into 'master'
Update translations & greek

See merge request Librem5/squeekboard!315
2020-02-05 11:05:42 +00:00
10178d204b Merge remote-tracking branch 'upstream/master' into center 2020-02-05 10:32:07 +00:00
0ac8c620fd Merge branch 'lock' into 'master'
Turn locking stateless

See merge request Librem5/squeekboard!322
2020-02-05 09:25:49 +00:00
80e83781bb Merge branch 'leaks' into 'master'
Allocation problems

See merge request Librem5/squeekboard!327
2020-02-05 09:24:46 +00:00
37e1ed93a6 Merge branch 'text_input_enable' into 'master'
Submit and delete strings via text_input

See merge request Librem5/squeekboard!304
2020-02-03 15:06:25 +00:00
b770511422 keyboard_layout: Fix leak 2020-02-03 14:59:14 +00:00
2e9b8581e7 variant: Fix leak 2020-02-03 14:53:27 +00:00
1cbc21ad11 variant: Fix double-free
gio::Settings::set_value takes over ownership of the Variant sometimes, but in other cases it doesn't. To prevent this being a problem, the custom Variant is made of the type that will never have its ownership taken.

This is not necessarily consistent with what gtk-rs authors intended.

In practice, the ownership is shared by refcounting, and after the Rust reference is dropped, one taken by Settings survives.
2020-02-03 14:53:24 +00:00
416bc6163e drawing: Generalized foreach_visible_button 2020-02-02 18:29:29 +00:00
40b79f6209 layout: Center views relative to each other and the layout bounds 2020-02-02 18:07:28 +00:00
782d80a007 row: Eliminate angle 2020-02-02 17:11:25 +00:00
a51d91eb53 emoji: Add more choices 2020-02-02 16:32:45 +00:00
687a512e5e layouts: Better accented uppercase in PL 2020-02-02 15:54:59 +00:00
500c23beec locking: Lock keys statelessly
Locking is not determined by button state any more, but rather based on the view active at the moment. If pressing/locking a key results in the current view being active, the key is active. If locking a key results in the current view, the unlock view is activated.
2020-02-02 15:41:47 +00:00
97d8dfe4cb locks: Draw based on current view 2020-02-02 14:45:33 +00:00
11213ba13a Merge branch '1.8.1' into 'master'
Release 1.8.1

See merge request Librem5/squeekboard!321
2020-01-31 14:23:03 +00:00
3d6c656c78 Merge branch 'pl' into 'master'
layouts: Add Polish layouts

See merge request Librem5/squeekboard!318
2020-01-31 10:40:06 +00:00
258dd9b926 Release 1.8.1 "Corona"
- Landscape layout doesn't crash
- CSS font is actually taken into account
- Failed start due to dbus is now communicated
- Better log messages
- Fixed Enter in numbers layout
- More consistent terminal layout
- Proper font sizes in terminal layout
2020-01-31 10:16:32 +00:00
4eaa8e316e cargo: Update deps 2020-01-31 10:08:48 +00:00
cbee649939 Merge branch 'update-docs' into 'master'
Update docs and CI builds

See merge request Librem5/squeekboard!320
2020-01-30 22:57:07 +00:00
b9db00c00c layouts: Add Polish layouts 2020-01-30 21:19:13 +01:00
99b1439d08 Use pip to install recommonmark 2020-01-30 16:51:35 +01:00
83fe2757ef Tidy build file and docs 2020-01-30 16:51:20 +01:00
d21d278710 Merge branch 'faster' into 'master'
build: Strip clap of optional features

See merge request Librem5/squeekboard!311
2020-01-29 09:27:42 +00:00
e6ca914d65 Merge branch 'return' into 'master'
number: Fix keysym for Return

See merge request Librem5/squeekboard!310
2020-01-29 09:26:05 +00:00
0d96a647f9 Merge branch 'packaging' into 'master'
debian: Add missing commas

See merge request Librem5/squeekboard!316
2020-01-29 09:05:07 +00:00
852289b5e3 Merge branch 'switch' into 'master'
setup: Connect ui to the state manager

See merge request Librem5/squeekboard!319
2020-01-28 22:04:47 +00:00
1f5e9566e4 debian: Add missing commas 2020-01-28 21:38:58 +00:00
7a588460bf setup: Connect ui to the state manager
This ensures that the layout type information is accessible to the state manager when new layout information arrive.

The should be thought of as a stopgap measure. A proper solution would be to separate the state properly, and probably turn layout information coming from random places into messages that some object (thread?) collects and displays.
2020-01-28 21:32:47 +00:00
d654b9cc73 Merge branch 'ux' into 'master'
layout: terminal: Replace actions button with period on symbols view

See merge request Librem5/squeekboard!317
2020-01-28 20:55:25 +00:00
3ed601a7e8 layout: terminal: Replace actions button with period on symbols view
Commit ab67bd2c5c took things a bit too
far and completely removed the period button.
2020-01-28 20:51:15 +01:00
63d68c004a Merge branch 'fix_wide' into 'master'
layouts: Fix segfault on switching to wide

See merge request Librem5/squeekboard!312
2020-01-28 19:43:46 +00:00
34c6d2ff28 Merge branch 'fintsize' into 'master'
font: Use font from style context

See merge request Librem5/squeekboard!313
2020-01-28 19:22:22 +00:00
7f32c5cf23 greek: Rename to gr which is used by gnome settings 2020-01-28 19:17:47 +00:00
9368a188b3 Merge branch 'ux' into 'master'
Terminal layout UX tweaks

Closes #175

See merge request Librem5/squeekboard!314
2020-01-28 19:16:07 +00:00
a61019c4b7 translations: Translate builtin layouts 2020-01-28 19:15:39 +00:00
f4f11e5051 translations: Remove redundant ones
Language translations are all handled by gnome-desktop
2020-01-28 19:15:05 +00:00
ab67bd2c5c layout: terminal: Show actions button on all views 2020-01-28 19:34:03 +01:00
f834fafd67 layout: terminal: Swap positions of preferences and actions button
This makes it consistent with regular layouts.

Helps with #175
2020-01-28 19:33:58 +01:00
4b34f18d34 font: Only pass relevant data to label renderer
This will help factoring the function out
2020-01-28 18:13:19 +00:00
d5682de47c font: Use font from style context
As a consequence, some dependency on renderer is gone.
2020-01-28 18:13:15 +00:00
2ffbdde758 layouts: Fix segfault on switching to wide 2020-01-28 16:42:58 +00:00
cd252634bd logging: Use in merged functions 2020-01-28 12:45:45 +00:00
de8aaa1a47 Merge remote-tracking branch 'upstream/master' into text_input_enable 2020-01-28 12:39:42 +00:00
ac360b610f Merge branch 'log' into 'master'
Unify logging

See merge request Librem5/squeekboard!308
2020-01-28 11:42:02 +00:00
acfa48886d build: Strip clap of optional features
This makes the build marginally faster at the cost of losing non-essential command line parsing in test_layout.
2020-01-25 17:25:02 +00:00
f326929634 Merge branch 'text_input' into 'master'
Text input integration

See merge request Librem5/squeekboard!302
2020-01-24 09:41:14 +00:00
dbb8331294 number: Fix keysym for Return 2020-01-23 15:43:36 +00:00
585ed5e97d input_method: Use for erasing 2020-01-23 15:39:40 +00:00
09075e57c8 Merge branch 'fix_ci' into 'master'
ci: Clean up `..` before it's searched for artifacts

See merge request Librem5/squeekboard!305
2020-01-21 19:52:18 +00:00
2b65beba44 press_key: Use proper logging 2020-01-20 15:40:30 +00:00
5129d42577 Merge remote-tracking branch 'upstream/master' into log 2020-01-20 15:40:01 +00:00
2ed4862db8 Merge branch '1.8' into 'master'
Release 1.8.0

See merge request Librem5/squeekboard!303
2020-01-20 14:21:04 +00:00
8d06815279 Merge branch 'cleanups' into 'master'
C-side Cleanups

See merge request Librem5/squeekboard!300
2020-01-19 12:57:40 +00:00
c75e085dc8 logging: Unified to remove random eprint calls 2020-01-17 12:25:39 +00:00
cc418c3609 imservice: Return something more resembling an Error on failure
The error type is expected to be printable by logging utilities.
2020-01-17 11:59:47 +00:00
ea84f4f031 logging: Try to improve common operations
This adds sugar for logging `Result`s with a handler, makes names evoke something closer to "logging" than "warning", tries to remove any redundant `Logging` where the module name will do, and introduces a type strictly for bad things happening.
2020-01-16 15:57:46 +00:00
38398395bc Merge branch 'dbus_error' into 'master'
dbus: Log error on dbus exit

See merge request Librem5/squeekboard!307
2020-01-15 17:48:05 +00:00
81e0c15db9 dbus: Log error on dbus exit 2020-01-15 17:06:00 +00:00
60c68dbf5a ci: Clean up .. before it's searched for artifacts
GitLab doesn't always clean up the `..` directory, leaving things that are lated picked up as artifacts. The new rule cleans up anything that looks like an artifact before fresh ones are generated.
2020-01-14 18:47:04 +00:00
f3d852f552 Merge branch 'handling' into 'master'
Centralize handling release events

See merge request Librem5/squeekboard!289
2020-01-14 18:38:43 +00:00
42cb73cd8c submission: Handle submitting strings 2020-01-14 18:33:47 +00:00
d1bc23e9d8 imservice: Add commit_string method 2020-01-14 18:17:12 +00:00
e3f31cc17f imservice: Rename commit_state to done to match protocol 2020-01-14 18:16:36 +00:00
dca0e55557 Release 1.8.0 "Conflict-free replicated data type"
- The terminal layout is always available from the layout selection popup.
- XKB Layout names in the popup are translated using GNOME's database.
2020-01-14 13:56:21 +00:00
a78f8e246b pre-release: Update deps 2020-01-14 13:54:10 +00:00
9d027426b7 Merge branch 'termina' into 'master'
overlay: Add terminal

See merge request Librem5/squeekboard!299
2020-01-14 12:58:26 +00:00
02c24a50d2 submission: Remove wildcard reexport 2020-01-14 11:38:44 +00:00
26dbcdeb62 keyboard: Gather up keymap handling, drop layout 2020-01-13 13:53:54 +00:00
0ef02ebfa3 levelkeyboard: Drop unused manager references 2020-01-13 13:53:54 +00:00
0ce19b4269 keyboard: Cleanups of unused code 2020-01-13 13:53:54 +00:00
326bb9319f submission: Take over virtual_keyboard handling 2020-01-13 13:53:54 +00:00
aafecfac02 EekGtkKeyboard: Use a direct reference to EekboardContext 2020-01-13 13:53:54 +00:00
e5d416fd4f imservice: Limited scope of unsafe 2020-01-13 13:53:54 +00:00
785717d477 submission: Create a new wrapper over imservice 2020-01-13 13:53:48 +00:00
fdcc4f5aab Merge branch 'random_cleanups' into 'master'
eek-layout: Remove unused

See merge request Librem5/squeekboard!301
2020-01-13 09:59:13 +00:00
4e4f8e1932 eek-layout: Remove unused 2020-01-12 19:25:41 +00:00
51f55fbff8 submission: Move away from virtual-keyboard 2020-01-11 16:20:09 +00:00
92c9572ac2 services: Split out layout management from EekboardContextService
Layout management was pointlessly bound with the EekboardContextService with inheritance. Splitting it out will make it easier to further break apart layout state management, settings, and input method in the future.
2020-01-11 15:33:26 +00:00
357a46ced3 Merge branch 'translation' into 'master'
Use xkb layout names from gnome

See merge request Librem5/squeekboard!280
2020-01-11 11:58:53 +00:00
58b087e35a eekboard_context_service: Drop unused enable property 2020-01-09 20:13:22 +00:00
14d5881f1e key-emitter: Remove unused 2020-01-09 19:57:14 +00:00
7dd8bd54c2 context: Moved keymap setting together with its generation 2020-01-09 16:42:17 +00:00
4c2cef30f2 dbus: Rename handler from eekboard_service 2020-01-09 16:25:53 +00:00
3ecfd701d9 dbus: Remove unneeded gobjectness
Also removed the code linking dbus interface stop to application quit. DBus going missing was not handled, and isn't a fatal error anyway.
2020-01-09 16:13:09 +00:00
033a1cf200 dbus_service: Remove unused function 2020-01-09 15:53:49 +00:00
9f59279307 managers: Move visible flag to UI manager 2020-01-09 14:14:48 +00:00
7e72722a47 UI: Drop indirection for show/hide functions 2020-01-09 13:30:02 +00:00
375daa68c8 layout: Make handling presses uniform 2020-01-09 12:09:28 +00:00
ed31e40991 Merge branch '1.7' into 'master'
Release 1.7.0, fix 1.6.0 suite

See merge request Librem5/squeekboard!298
2020-01-09 06:13:00 +00:00
34db364a62 layout: Centralize handling key releases 2020-01-08 18:52:09 +00:00
950310c8a5 keyboard: Introduce a KeyCode type wrapping u32 2020-01-08 18:52:09 +00:00
e77eccf7db action: Rename Level to View 2020-01-08 18:52:09 +00:00
273423f626 Release 1.7.0 "Mycelium"
Enables a terminal layout, which will activate whenever the terminal input hint is received.

Arm64 .debs are produced by the CI again.
2020-01-08 12:19:59 +00:00
d80cbf880f cargo: Refresh deps for release 2020-01-08 12:19:53 +00:00
e06e23dd4c overlay: Add terminal
Enables Terminal to be selected as an overlay over the selected language.
2020-01-08 12:06:15 +00:00
1924a8e634 v1.6.0: Fix suite 2020-01-08 11:52:46 +00:00
0bfd846139 translations: Make the code cleaner 2020-01-07 16:18:52 +00:00
a93f3c55e7 translations: Use gnome-desktop's xkb info database for layout names 2020-01-07 16:18:52 +00:00
647fde26f5 Merge branch 'arm64' into 'master'
CI: Use Librem5 arm64 runner

See merge request Librem5/squeekboard!297
2020-01-07 16:10:25 +00:00
23f8f9b091 Merge branch '1.6' into 'master'
Release 1.6.0 "Specific impulse"

See merge request Librem5/squeekboard!295
2020-01-07 16:08:43 +00:00
c3c1e1c76d CI: Use Librem5 arm64 runner 2020-01-07 14:39:30 +00:00
7a21b992dc Merge branch 'terminal_layout' into 'master'
Terminal layout

See merge request Librem5/squeekboard!279
2020-01-07 12:55:08 +00:00
5485153599 Merge branch 'fix_build' into 'master'
CI: Fix build-dep removed by merge

See merge request Librem5/squeekboard!296
2020-01-04 13:56:23 +00:00
4a92489de8 CI: Fix build-dep removed by merge 2020-01-04 13:34:30 +00:00
825409c97f Merge branch 'osk_entry' into 'master'
tools: Add GTK's INHIBIT_OSK flag to the entry tester

See merge request Librem5/squeekboard!290
2020-01-04 10:49:35 +00:00
6ad85d79e4 Merge branch 'doc' into 'master'
docs: Create with tutorial

See merge request Librem5/squeekboard!285
2020-01-04 10:49:03 +00:00
7e57df3434 Release 1.6.0 "Specific impulse"
New emoji layout, `entry.py` becomes part of the -devel package under the name `squeekboard-entry`.
2020-01-02 12:06:19 +00:00
24cacf988b Merge branch 'type_fixes' into 'master'
Fix g_ and stdlib allocation/free mismatches

See merge request Librem5/squeekboard!294
2019-12-24 22:09:16 +00:00
2657b5ef1f terminal: A more fleshed out layout 2019-12-24 14:33:58 +00:00
674bef2b00 terminal: Use a rudimentary layout on input hint 2019-12-24 14:33:58 +00:00
8e55e9ee56 Fix g_ and stdlib allocation/free mismatches 2019-12-24 14:28:50 +00:00
e1a012cf50 Merge branch 'enoji' into 'master'
Enoji: implemented mechanism

See merge request Librem5/squeekboard!276
2019-12-24 14:21:51 +00:00
50dab14754 emoji: Add a passable layout 2019-12-24 10:41:02 +00:00
733cbe94ee Fix old Rust woes 2019-12-24 10:41:02 +00:00
01a8afad0d popover: Show overlays as selected 2019-12-24 10:41:02 +00:00
bafd1e6eb3 popover: Install emoji layout
In order to do that, an additional piece of state (layout switcher) was exposed to the event handlers, a separation between squeekboard-only and system layouts was introduced, along with a Translation structure to prevent mixing up strings.
2019-12-24 10:41:02 +00:00
a799178b6a Merge branch 'logging' into 'master'
Logging

See merge request Librem5/squeekboard!288
2019-12-24 10:10:30 +00:00
12be3e980f Merge branch 'cleanup' into 'master'
Build cleanups

See merge request Librem5/squeekboard!287
2019-12-23 21:34:18 +00:00
ca8a2baefa Merge branch 'devel' into 'master'
Entry test added to -devel package

See merge request Librem5/squeekboard!286
2019-12-23 21:33:41 +00:00
6b72d09fb8 Merge branch '1.5' into 'master'
Release 1.5.0 "The bends"

See merge request Librem5/squeekboard!293
2019-12-23 15:09:28 +00:00
d76deb0655 Release 1.5.0 "The bends"
This release introduces some renderer improvements, including relating to speed.

Mire importantly, layout files have an incompatible change in format: bounds on the layout are replaced by margins. This removes the possibility that buttons don't fit in the layout and frees layout makers from having to calculate the size of the layout manually.
2019-12-23 12:08:45 +00:00
3b0456b5cd Merge branch 'margins' into 'master'
Use margins, remove bounds

See merge request Librem5/squeekboard!283
2019-12-23 11:56:30 +00:00
77a6ca1900 Merge branch 'arm64' into 'master'
CI: Build arm64 .deb

See merge request Librem5/squeekboard!292
2019-12-20 08:32:54 +00:00
c0331434d7 CI: Build arm64 .deb 2019-12-19 19:38:34 +00:00
e9d6631159 tools: Add GTK's INHIBIT_OSK flag to the entry tester 2019-12-18 19:56:02 +00:00
f335ea92d4 Merge branch 'readme' into 'master'
Readme updates

See merge request Librem5/squeekboard!281
2019-12-18 19:49:59 +00:00
c8dd34c829 logging: Add described log levels
Not used yet due to conflicts with other MRs.
2019-12-16 19:56:16 +00:00
4d656ff54d logging: Described the design 2019-12-16 19:36:02 +00:00
e2b89e85f7 logging: Move all facilities to one file 2019-12-16 19:15:40 +00:00
b6f3d9c1ea Remove unused header generator 2019-12-16 18:52:50 +00:00
9ff11dc511 Remove unused build dependencies 2019-12-16 18:22:23 +00:00
1cffdda09d packaging: Install entty.py as squeekboard-entry 2019-12-16 18:13:24 +00:00
d9f284b19a build: Move building of squeekboard-test-layout to tools 2019-12-16 17:47:00 +00:00
ed602faeaf tools: Move entry.py 2019-12-16 17:46:42 +00:00
0e1bf19737 docs: Create with tutorial
Create docs, based on Sphinx with Commonmark, seeding it with https://forums.puri.sm/t/translations-and-virtual-touch-keyboards-tracking-localization/7669/48?u=dcz
2019-12-15 21:53:18 +00:00
1237537005 Merge branch 'lockfile' into 'master'
Use clap in the lockfile

See merge request Librem5/squeekboard!284
2019-12-15 19:07:23 +00:00
257b97e9ca layout: Respect margins 2019-12-15 18:43:56 +00:00
5e700219f9 parsing: Remove bounds which weren't used anyway 2019-12-15 18:43:56 +00:00
927f088027 Use clap in the lockfile 2019-12-15 18:42:33 +00:00
8b3f7e0b11 Merge branch 'positioning' into 'master'
Positioning

See merge request Librem5/squeekboard!274
2019-12-15 16:51:35 +00:00
ae43d7ca47 Merge branch 'terminal_purpose' into 'master'
Entry test: Add Terminal input purpose

See merge request Librem5/squeekboard!278
2019-12-15 16:41:59 +00:00
432e4fe1e5 Merge branch 'drop_key' into 'master'
Simplify renderer

See merge request Librem5/squeekboard!272
2019-12-15 16:38:31 +00:00
6afa2133d0 Merge branch 'squeekboard-test-layout-args-check' into 'master'
squeekboard-test-layout: add argument parsing and some more output

See merge request Librem5/squeekboard!277
2019-12-14 10:55:37 +00:00
cfa66d8182 squeekboard-test-layout: add argument parsing and some more output 2019-12-14 10:55:37 +00:00
b6e67256c3 Merge branch 'dco' into 'master'
hacking: Add DCO and licensing requirement

See merge request Librem5/squeekboard!282
2019-12-11 17:37:55 +00:00
d5c8f32088 Fix internal .md link 2019-12-11 15:50:28 +00:00
6f990f4528 hacking: Add DCO and licensing requirement 2019-12-11 15:44:26 +00:00
7641b4da6f Create a library/UI module separation 2019-12-11 15:33:29 +00:00
a84730198d readme: Add note about Cargo dependencies 2019-12-11 15:26:27 +00:00
0b136468c8 Entry test: Add Terminal input purpose 2019-12-09 13:38:19 +00:00
fe4642e71e Merge branch 'japanese-kana-wide-keyboard-layout' into 'master'
layout: add Japanese Kana wide layout

See merge request Librem5/squeekboard!275
2019-12-09 11:12:48 +00:00
16289c6f82 layout: add Japanese Kana wide layout 2019-12-09 11:12:48 +00:00
b639c7f3f0 Fix old Rust woes 2019-12-08 07:04:22 +00:00
d80758fcd1 positioning: Clean up unused code 2019-12-07 21:33:38 +00:00
dd21bfed8d positioning: Calculate sizes instead of storing, move position out of widgets
Sizes of widgets can be derived, so storing them was only for C compatibility. Similar with storing position inside of widgets.

Some layout margin and scaling changes could be introduced, meaning a possibility of visual differences.
2019-12-07 21:20:21 +00:00
1f69787fac cleanup: Remove unused single frame draw 2019-12-07 17:19:49 +00:00
36362291ef cleanup: Unbox View and Row
They are no longer referenced anywhere in C, so it's safe to let Rust memory management deal with them.
2019-12-07 17:19:39 +00:00
1c4d027af5 cleanup: Remove references to squeek_view 2019-12-07 15:42:54 +00:00
51a77c41c3 renderer: Remove unused functions 2019-12-07 15:19:53 +00:00
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
358b25c431 layout: add German wide layout 2019-12-07 14:39:43 +00:00
f77db1bb73 renderer: Render whole keyboard the same way as pressed buttons
Removed window size dependent surface.
2019-12-07 14:33:49 +00:00
581c86809a renderer: Simply cut off when painting outside bounds 2019-12-07 14:03:51 +00:00
804aa53351 renderer: Remove unused locked key render function 2019-12-07 14:01:03 +00:00
e6da2a3b5b rendering: Remove unneeded redraw after button release 2019-12-07 13:58:50 +00:00
f9fbd3fb2d rendering: Simplify Cairo context usage, remove unneeded calls.
Moved Cairo context usage to Rust, and rearranged ctx setup (position) to happen in one place.

Removed render calls that were overwritten on each draw call anyway.
2019-12-07 12:47:47 +00:00
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
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
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
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
6e32a2ef41 renderer: Simplify surface rendering 2019-12-01 16:00:40 +00:00
34fce7395d renderer: Drop unused params 2019-12-01 15:36:01 +00:00
d415ecf5d0 renderer: Drop row from button rendering 2019-12-01 15:31:16 +00:00
5266c621fd renderer: Simplified outline rendering 2019-12-01 15:27:14 +00:00
4ee832c594 renderer: Remove some unneeded vars 2019-12-01 15:22:00 +00:00
83fea8cd31 Drop squeek_key 2019-12-01 15:01:08 +00:00
3c45e3e53c switcher: Switch layout on menu item click 2019-11-30 15:14:45 +00:00
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
2ddfcfaff0 translation: Japanese and minor layout fixes 2019-11-30 12:22:45 +00:00
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
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
f284627beb Merge branch 'release' into 'master'
Use Cargo release flag

See merge request Librem5/squeekboard!256
2019-11-29 15:33:00 +00:00
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
93d0dcdc99 Merge branch 'text' into 'master'
Text property

Closes #153

See merge request Librem5/squeekboard!257
2019-11-28 09:19:30 +00:00
b252f7659b rust: Be compatible with older Rust 2019-11-27 16:52:50 +00:00
af6ad1fce6 buttons: Accept "text" and drop xkb keysym derivation 2019-11-27 16:52:50 +00:00
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
6d5f793718 util: Include Result logger 2019-11-27 16:31:24 +00:00
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
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
3ac4caa3b9 keycodes: Sort to eliminate runtime indeterminism 2019-11-27 16:18:36 +00:00
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
579ba8ab87 Release 1.3.2 2019-11-26 15:38:32 +00:00
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
034570bfa0 readme: Update language selection 2019-11-21 18:57:34 +00:00
1abca0a44e settings: Fetch current layout as the first item 2019-11-21 18:57:34 +00:00
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
bb18e60754 Merge branch 'release1' into 'master'
Release 1.3.1

See merge request Librem5/squeekboard!265
2019-11-20 22:24:02 +00:00
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
0179507254 readme: Update cargo.sh usage 2019-11-20 14:32:42 +00:00
0c7e77a05f pointer: Release button when window is left 2019-11-20 13:17:47 +00:00
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
89b3ab9a81 translations: Updated pl and en with new layouts 2019-11-20 12:12:07 +00:00
8690808a29 layouts: Correct xkb symbols usage 2019-11-20 11:18:02 +00:00
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
5068f36d9d German layout: Correct xkb symbols usage 2019-11-20 11:15:18 +00:00
8c48e96f50 Merge branch 'codes' into 'master'
Language code fixes

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

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

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

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

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

See merge request Librem5/squeekboard!247
2019-11-16 15:49:58 +00:00
7cc8eecd26 Release 1.3.0 2019-11-16 15:40:56 +00:00
ef025509ba translations: Spanish 2019-11-15 20:57:24 +00:00
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
d7ee2f4c3c layouts: Correct most unneeded xkb symbols usage 2019-11-15 15:11:12 +00:00
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
02ec745856 Merge branch 'update-copyright' into 'master'
Update copyright information

See merge request Librem5/squeekboard!241
2019-11-15 14:33:23 +00:00
6ac17bfde5 Fix åäö in Swedish layout 2019-11-15 15:28:36 +01:00
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
db52a842b2 Merge branch 'caches' into 'master'
Fix leaks

See merge request Librem5/squeekboard!237
2019-11-15 13:50:29 +00:00
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
8191324e46 Remove unused files 2019-11-15 01:25:52 +01:00
6777f1b4b7 Update copyright information 2019-11-15 00:53:41 +01:00
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
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
e47ec16293 Merge branch 'fi' into 'master'
Finnish layout

See merge request Librem5/squeekboard!240
2019-11-12 14:51:44 +00:00
6fe08967f6 fi: add tests 2019-11-12 14:44:37 +00:00
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
8024998a4b Rename the nb layout to no, fixing input source selection 2019-11-11 19:36:58 +00:00
ea4bf3de29 tools: A theme override wrapper useful for the Librem5 2019-11-11 16:49:21 +00:00
87d368878b Merge branch 'rusty_popup' into 'master'
language selection popup

See merge request Librem5/squeekboard!190
2019-11-08 15:00:04 +00:00
55584e27fa translations: Filled out Polish 2019-11-08 10:21:35 +00:00
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
c096698ec1 renderer: Remove unused ascii_font 2019-11-07 14:13:27 +00:00
3aaaed3bae renderer: Clean up EekColor & label 2019-11-07 14:10:20 +00:00
f1c76a0ca4 Don't leak CSS 2019-11-06 15:46:53 +00:00
b78c3ad131 Try to free keymaps 2019-11-06 14:51:54 +00:00
b6dfb20fec cache: Remove keyboard cache 2019-11-06 14:45:33 +00:00
7d18f81a30 Remove unused surface caches 2019-11-06 14:32:23 +00:00
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
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
47c4119ab7 Add a popover menu to switch languages 2019-11-05 13:10:55 +00:00
e71e843eff hacking: Define big no-nos in code style 2019-11-05 11:11:56 +00:00
6e90c9a833 hacking: Clarify dev env and testing 2019-11-05 11:11:52 +00:00
1134d92357 Finnish keyboard layout same as Swedish 2019-11-02 21:28:23 +00:00
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
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
95022c1ac7 Rename file, add it to resources and tests 2019-11-01 16:50:13 +01:00
7760b50963 Add sv keyboard layout to resources.rs 2019-11-01 16:38:36 +01:00
85b79a5f8f Add Swedish keyboard layout 2019-10-31 16:31:36 +01:00
e080d4351e Release 1.2.2 "Dark matter"
Major changes:

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

See merge request Librem5/squeekboard!216
2019-10-29 14:11:44 +00:00
ea0926147f us: Improve height a little 2019-10-29 13:32:53 +00:00
ce223e04e6 icons: Fix scaling to 16 units of scale 2019-10-29 13:32:53 +00:00
ddd1c1b16b wide: Fix shift widths 2019-10-29 13:28:14 +00:00
0f1f6531da wide: Reduce button spaces 2019-10-29 13:28:14 +00:00
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
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
bd3b27eceb build: Make borrowing compliant with older Rust 2019-10-29 13:21:46 +00:00
35ad61890e layouts: Add us_wide 2019-10-29 13:21:46 +00:00
1b1fbed7de layouts: Change type based on shape 2019-10-29 13:21:46 +00:00
264d30d884 build: Disallow implicit int conversions 2019-10-29 13:21:46 +00:00
38d8290b59 height: Adjust based on layer surface width 2019-10-29 13:21:46 +00:00
254b65681a layersurface: Update from phosh 2019-10-29 13:21:46 +00:00
fbb3824a3d height: Derive from display width 2019-10-29 13:21:46 +00:00
24126ad4f3 wayland: Listen to output changes 2019-10-29 13:21:46 +00:00
869a0af67f cleanup: eek-gtk.h 2019-10-29 13:21:46 +00:00
5281d96460 Merge branch 'renderer' into 'master'
Renderer improvements

See merge request Librem5/squeekboard!229
2019-10-28 21:49:38 +00:00
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
01fe433612 icons: Remove caching 2019-10-25 15:43:29 +00:00
63e55ff5c4 renderer: Free temporary surfaces 2019-10-25 15:18:37 +00:00
8d4d50cfca Merge branch 'ci_deps' into 'master'
Ci deps

See merge request Librem5/squeekboard!228
2019-10-25 09:54:38 +00:00
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
788a39f144 ci: Start test stage immediately after build_meson 2019-10-24 20:28:13 +00:00
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
3fb0a3a959 i think in italian "," is better then "?" 2019-10-24 18:17:58 +00:00
bdef7b3516 Merge remote-tracking branch 'kareema/japanese-kana-keyboard-layout' into HEAD 2019-10-24 18:09:16 +00:00
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
0b5aa1ba7c layouts: Add German keyboard layout 2019-10-24 18:03:23 +00:00
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
1290fd4a1e rust: Fix old compiler compat 2019-10-23 15:11:19 +00:00
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
ce6c9cbea3 Merge branch 'cleanup' into 'master'
cleanup: Unused types

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

See merge request Librem5/squeekboard!221
2019-10-22 13:25:15 +00:00
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
29231f7e31 cleanup: Unused types 2019-10-20 09:47:10 +00:00
76b8a61d0a layout: change switch button label 2019-10-19 23:36:03 +02:00
d62abc2f12 layouts: Add Japanese Kana keyboard layout 2019-10-19 21:30:23 +02:00
8f61a26fb4 Merge branch 'fix' into 'master'
tests: Fix automatic merge

See merge request Librem5/squeekboard!225
2019-10-19 16:53:09 +00:00
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
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
ac58b675ef layouts: Simplify fallbackss handling 2019-10-16 09:43:41 +00:00
a048722a94 Merge branch 'cleanups' into 'master'
Cleanups

See merge request Librem5/squeekboard!214
2019-10-10 20:26:51 +00:00
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
89b56ddccf util: C-wrapped data don't need to be cloneable 2019-10-10 16:54:02 +00:00
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
f56c5e3879 examples: Remove stale eekboard example 2019-10-10 16:16:53 +00:00
8eda2cd04d docs: Remove stale eekboard docs 2019-10-10 16:15:41 +00:00
cfd2bff1aa data: Remove eekboard desktop files 2019-10-10 16:15:05 +00:00
02501aee9e authors: Update 2019-10-10 16:13:30 +00:00
70056b68a7 Merge branch 'undefined' into 'master'
Replace it.yaml

See merge request Librem5/squeekboard!212
2019-10-10 14:50:09 +00:00
b36c48daa3 Replace it.yaml 2019-10-10 14:50:09 +00:00
9e078be603 buttons: Buttons are next to each other, padding is visual only 2019-10-09 20:34:46 +00:00
ac68d5d0a8 tests: Check keymap generation results 2019-10-09 16:08:50 +00:00
b45edcd4fe tests: Emulate clicking all submitting buttons 2019-10-09 15:54:06 +00:00
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
9cd439767e virtual_keyboard: Submit multi-codepoint strings 2019-10-09 15:13:46 +00:00
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
31fdde4da9 keycodes: Moved submission to Rust 2019-10-09 09:23:06 +00:00
10bad4ebe3 warnings: Fix and silence 2019-10-09 08:15:03 +00:00
da5a83f367 action: Rename file to action.rs 2019-10-09 08:11:28 +00:00
ef38fd3e64 symbol: Eliminate in favor of Action 2019-10-09 08:06:17 +00:00
46d3312c86 cleanup: Unused symbol functions 2019-10-09 08:03:39 +00:00
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
3f3e33c853 style: Set active button color 2019-10-08 18:29:03 +00:00
aa3dc96986 Merge branch 'bump' into 'master'
debian: Bump distribution

See merge request Librem5/squeekboard!205
2019-10-08 11:16:05 +00:00
aee981d9c0 debian: Bump distribution 2019-10-08 10:59:00 +00:00
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
e14d411150 logs: Silence missing file warnings 2019-10-03 12:59:26 +00:00
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
18f8443a9f Merge branch 'it' into 'master'
Italian keyboard

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

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

See merge request Librem5/squeekboard!198
2019-10-02 18:02:12 +00:00
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
477a883885 style: Add styling for locked buttons 2019-10-02 16:32:13 +00:00
b3a63042cb Merge branch 'undefined' into 'master'
italian keyboard

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

See merge request Librem5/squeekboard!192
2019-10-01 17:23:59 +00:00
7f704bcd61 style: Rename button selectors 2019-10-01 08:11:44 +00:00
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
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
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
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
0eb0a6e8fd Merge branch 'drops' into 'master'
Drop more dead code

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

See merge request Librem5/squeekboard!180
2019-09-29 14:28:42 +00:00
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
1b424bd663 layout: Attempt to build xdg keymap at every load 2019-09-29 07:54:32 +00:00
938ba53a38 es layout: Add to resources and testing 2019-09-28 21:53:24 +00:00
1e609f4550 Merge branch 'patch-1' into 'master'
Spanish keyboard layout

See merge request Librem5/squeekboard!187
2019-09-28 21:51:50 +00:00
e33f591a1f layouts: Test fallback order 2019-09-28 21:37:51 +00:00
456af0f1ef Spanish keyboard layout 2019-09-28 21:27:04 +00:00
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
288d2247da cleanup: Remove dead fullscreen mode 2019-09-28 18:29:58 +00:00
e5eb9f0fd3 cleanup: Drop unused header 2019-09-28 18:18:44 +00:00
908aa20036 cleanup: Drop unused EekboardContext 2019-09-28 18:17:26 +00:00
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
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
86ed9a7a01 Merge branch 'spacing' into 'master'
Unhardcode spacing

See merge request Librem5/squeekboard!176
2019-09-27 17:03:48 +00:00
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
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
0985724b19 shellcheck: Pass cargo.sh 2019-09-27 13:47:49 +00:00
7aff7977fc build: Remove empty variable from cargo.sh 2019-09-27 13:47:04 +00:00
55bb263a12 build: Fix script path detection 2019-09-27 13:27:30 +00:00
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
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
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
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
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
f898b75b9d Merge branch 'drops' into 'master'
Drop dead drawing procedures

See merge request Librem5/squeekboard!177
2019-09-26 17:28:29 +00:00
e513cb9b54 style: Use outline name as CSS class 2019-09-26 13:28:31 +00:00
6fd7ab7405 rendering: Generalize outline rendering 2019-09-26 12:51:45 +00:00
15833323ae styling: Use same context for the entire rendering of a button 2019-09-26 12:51:39 +00:00
653462721b cleanup: Unused default backgrounds 2019-09-26 12:48:22 +00:00
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
6b15f69e00 style: Use path instead of class for key 2019-09-26 11:08:38 +00:00
231982d7f7 Drop dead drawing procedures 2019-09-26 07:27:16 +00:00
3bea256ca5 Appease Debian's Rust version's borrow checker 2019-09-26 07:02:06 +00:00
4c0f23c5c1 layout: Unhardcode button and row spacing values
They are specified by each layout now
2019-09-25 19:01:38 +00:00
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
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
de43d67638 display: Remove unused corner_radius 2019-09-25 18:10:58 +00:00
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
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
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
54f9e61b6a style: Make pressed button 20% lighter 2019-09-24 11:28:29 +00:00
94b7ba1ccc layout: Improved UI layout looks 2019-09-24 11:28:29 +00:00
e7d30d933f build: Simplified the calling of cargo.sh 2019-09-24 11:27:01 +00:00
150fb3cf6a deps: Accept only bugfix version changes 2019-09-24 11:18:35 +00:00
169f33c67a Merge branch 'pre-release' into 'master'
Pre release

See merge request Librem5/squeekboard!171
2019-09-24 10:52:52 +00:00
0f5c5ef10f Bump version number 2019-09-24 10:46:41 +00:00
6e183ccb13 cargo: Update lock 2019-09-24 10:46:21 +00:00
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
bb3c26b0d8 ci: Build .deb 2019-09-23 13:06:45 +00:00
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
d32749d533 debian: Silence false positive in Lintian
Needed to have working repository builds
2019-09-23 10:48:40 +00:00
36306f2eea Merge branch 'backslash' into 'master'
us: Escape backslash character

See merge request Librem5/squeekboard!168
2019-09-22 21:32:05 +00:00
34a4c6ffb5 us: Escape backslash character
This fixes backslash being missing from the symbols view.
2019-09-22 00:30:35 +02:00
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
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
241e5c0fc6 debian: Use Debian versions of dependencies 2019-09-20 09:40:18 +00:00
28e0c26671 build: Change dependencies to match Debian packages 2019-09-20 09:40:18 +00:00
7d0070a155 debian: Use CARGO_HOME more like librsvg does 2019-09-20 09:37:46 +00:00
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
45dc51f08f Update symbols button to reflect the symbols view 2019-09-16 17:07:41 +02:00
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
e70a64a47e Merge branch 'cleanups' into 'master'
Cleanups

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

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

See merge request Librem5/squeekboard!161
2019-09-12 11:32:16 +00:00
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
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
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
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
9c2acde826 Merge branch 'reparse' into 'master'
rewrite of the parsing

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

See merge request Librem5/squeekboard!157
2019-09-11 11:55:26 +00:00
fd0d8d4244 warnings: Fix some C stuff 2019-09-10 11:06:18 +00:00
c725cd7f14 cargo: Allow for manual cargo invokations 2019-09-10 10:17:28 +00:00
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
51562d5185 Fix imservice docstring 2019-09-10 09:27:21 +00:00
ed8b6eec28 More float_ord docs 2019-09-10 09:27:21 +00:00
e9c236a682 float_ord: Fix test 2019-09-10 09:27:19 +00:00
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
99c577be60 Merge remote-tracking branch 'upstream/master' into reparse 2019-09-10 09:11:57 +00:00
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
4f18ffd34e Resolve colors used in "Visual Improvements" 2019-09-10 08:16:56 +00:00
4306ec9c1e Merge branch 'drop_bitflags' into 'master'
deps: Remove bitflags

See merge request Librem5/squeekboard!156
2019-09-09 20:16:44 +00:00
31c12e5182 layout: Convert numbers to yaml 2019-09-09 19:10:42 +00:00
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
a187221d3f Convert nb layout to yaml 2019-09-09 16:35:21 +00:00
583b546e81 Fix CI error 2019-09-09 15:49:25 +00:00
aa9523338f Merge branch 'buttonlists' into reparse 2019-09-09 15:11:59 +00:00
0ed66e0eab locked: Use keys instead of buttons 2019-09-09 13:54:55 +00:00
6523275b6a views: Change based on layout file 2019-09-09 13:25:03 +00:00
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
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
fc5f671e57 Add new meson and current ninja to the dependencies 2019-09-06 22:15:02 +02:00
035ecd6df1 Merge branch 'clean' into 'master'
cleanup: Vala bindings

See merge request Librem5/squeekboard!154
2019-09-04 12:46:42 +00:00
26d1a6047c Merge branch 'fixes' into reparse 2019-09-04 10:18:53 +00:00
60a89b6c3f Merge branch 'wrapping' into reparse 2019-09-04 10:01:22 +00:00
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
2579d2fea9 cleanup: Vala bindings 2019-09-04 09:21:55 +00:00
c75ed9b230 Merge branch 'kill_tooltip' into 'master'
tooltips: Remove

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

See merge request Librem5/squeekboard!145
2019-09-02 14:42:19 +00:00
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
baabcb1400 layout: Remove unused C functions 2019-09-01 11:42:02 +00:00
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
623181cc34 tooltips: Remove 2019-08-31 12:18:55 +00:00
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
6c0a642abf Store key instead of button in pressed lists 2019-08-31 11:30:51 +00:00
132435a9c8 Drop callback iteration for button finding 2019-08-31 11:30:51 +00:00
521bcfc484 Adjust width and height of keypad geometry 2019-08-30 15:16:46 +00:00
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
ffc64c6d56 Apply symbol names to widget paths, add styles 2019-08-29 21:02:35 +00:00
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
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
09deef2d6c Merge branch 'fix-formatting' into 'master'
Fix code formatting

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

See merge request Librem5/squeekboard!141
2019-08-29 12:19:42 +00:00
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
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
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
b9ab4288d7 Try releasing old touches and only letting new ones be dragged 2019-08-28 15:53:57 +00:00
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
2e2ae96114 Adjust height of the extended keyboard layout 2019-08-28 14:34:20 +02:00
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
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
0da02aab21 Remove debugging code 2019-08-27 20:24:49 +00:00
1ae8d072a6 Release buttons directly when unmapping the keyboard 2019-08-27 20:04:11 +00:00
e61a3a6fe8 Remove unnecessary assignment 2019-08-26 21:13:04 +00:00
087da5cd9e Enable and respond to all touch events 2019-08-26 20:57:31 +00:00
218 changed files with 12999 additions and 17427 deletions

View File

@ -1,4 +1,4 @@
image: debian:buster
image: debian:bullseye
stages:
- build
@ -10,22 +10,140 @@ stages:
before_script:
- apt-get -y update
- apt-get -y build-dep .
- apt-get -y install wget ca-certificates gnupg
- echo "deb [trusted=yes] http://ci.puri.sm/ bullseyeci main" > /etc/apt/sources.list.d/ci.list
- wget -O- https://ci.puri.sm/ci-repo.key | apt-key add -
- apt-get -y update
build_meson:
build_docs:
<<: *tags
stage: build
artifacts:
paths:
- _build
script:
- meson . _build/ -Ddepdatadir=/usr/share
- apt-get -y install python3-pip python3-sphinx
- pip3 install recommonmark
- ./doc/build.sh _build
build_meson:
tags:
- librem5
stage: build
artifacts:
paths:
- _build
expire_in: 3h
script:
- apt-get -y build-dep .
- meson . _build/ -Ddepdatadir=/usr/share --werror
- ninja -C _build install
build_deb:
tags:
- librem5
stage: build
artifacts:
paths:
- "*.deb"
script:
- rm -f ../*.deb
- apt-get -y build-dep .
- apt-get -y install devscripts
- debuild -i -us -uc -b
- cp ../*.deb .
build_deb:amber:
image: pureos/amber
tags:
- librem5
stage: build
artifacts:
paths:
- "*.deb"
script:
- echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list
- apt-get -y update
- rm -f ../*.deb
- apt-get -y build-dep .
- apt-get -y install devscripts
- debuild -i -us -uc -b
- cp ../*.deb .
build_deb:buster:
image: "debian:buster"
tags:
- librem5
stage: build
artifacts:
paths:
- "*.deb"
script:
- echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list
- apt-get -y update
- rm -f ../*.deb
- apt-get -y build-dep .
- apt-get -y install devscripts
- debuild -i -us -uc -b
- cp ../*.deb .
build_deb:arm64:
tags:
- librem5:arm64
stage: build
artifacts:
paths:
- "*.deb"
script:
- rm -f ../*.deb
- apt-get -y build-dep .
- apt-get -y install devscripts
- debuild -i -us -uc -b
- cp ../*.deb .
build_deb:arm64_buster:
image: "debian:buster"
tags:
- librem5:arm64
stage: build
artifacts:
paths:
- "*.deb"
script:
- echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list
- apt-get -y update
- rm -f ../*.deb
- apt-get -y build-dep .
- 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
tags:
- librem5
stage: test
dependencies:
needs:
- build_meson
script:
- apt-get -y build-dep .
- ninja -C _build test
check_release:
<<: *tags
stage: test
only:
refs:
- master
script:
- apt-get -y install git python3
- (head -n 1 ./debian/changelog && git tag) | ./debian/check_release.py

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.

22
Cargo.deps Normal file
View File

@ -0,0 +1,22 @@
# Dependencies which change based on build flags
bitflags = "1.2.*"
clap = { version = "2.33.*", default-features = false }
regex = { version = "1.3.*", default-features = false, features = ["std", "unicode-case"] }
[dependencies.cairo-rs]
version = "0.7.*"
[dependencies.gdk]
version = "0.11.*"
[dependencies.gio]
version = "0.7.*"
features = ["v2_44"]
[dependencies.glib]
version = "0.8.*"
features = ["v2_44"]
[dependencies.gtk]
version = "0.7.*"
features = ["v3_22"]

22
Cargo.deps.legacy Normal file
View File

@ -0,0 +1,22 @@
# Dependencies which change based on build flags
bitflags = "1.0.*"
clap = { version = "2.32.*", default-features = false }
regex = { version = "1.1.*", default-features = false, features = ['use_std'] }
[dependencies.cairo-rs]
version = "0.5.*"
[dependencies.gdk]
version = "0.9.*"
[dependencies.gio]
version = "0.5.*"
features = ["v2_44"]
[dependencies.glib]
version = "0.6.*"
features = ["v2_44"]
[dependencies.gtk]
version = "0.5.*"
features = ["v3_22"]

486
Cargo.lock generated Normal file
View File

@ -0,0 +1,486 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "atk"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "atk-sys"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "bitflags"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "cairo-rs"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "cairo-sys-rs"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "cc"
version = "1.0.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "clap"
version = "2.33.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "dtoa"
version = "0.4.5"
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.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gdk-pixbuf"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gdk-pixbuf-sys"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gdk-sys"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gio"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.2.1 (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.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (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.71 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gio-sys"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "glib"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (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.71 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "glib-sys"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gobject-sys"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gtk"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk-sys 0.9.2 (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.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gtk-sys"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (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.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "linked-hash-map"
version = "0.5.3"
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 = "memmap"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.2.71 (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.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (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.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "pango-sys"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "pkg-config"
version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "proc-macro2"
version = "1.0.18"
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.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "regex"
version = "1.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "regex-syntax"
version = "0.6.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "rs"
version = "0.1.0"
dependencies = [
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_yaml 0.8.13 (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.111"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"serde_derive 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "serde_derive"
version = "1.0.111"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
"syn 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "serde_yaml"
version = "0.8.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
"linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)",
"yaml-rust 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "syn"
version = "1.0.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 1.0.7 (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 = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "unicode-width"
version = "0.1.7"
source = "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 = "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.71 (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.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[metadata]
"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a"
"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c"
"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
"checksum cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)" = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311"
"checksum clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
"checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3"
"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
"checksum gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5"
"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc"
"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3"
"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b"
"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60"
"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
"checksum libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)" = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
"checksum linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
"checksum maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786"
"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
"checksum proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
"checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
"checksum serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)" = "c9124df5b40cbd380080b2cc6ab894c040a3070d995f5c9dc77e18c34a8ae37d"
"checksum serde_derive 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)" = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250"
"checksum serde_yaml 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5"
"checksum syn 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "b5304cfdf27365b7585c25d4af91b35016ed21ef88f17ced89c7093b43dba8b6"
"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
"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.4 (registry+https://github.com/rust-lang/crates.io-index)" = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"

41
Cargo.toml.in Normal file
View File

@ -0,0 +1,41 @@
[package]
name = "rs"
version = "0.1.0"
[lib]
name = "rs"
path = "@path@/src/lib.rs"
crate-type = ["staticlib", "rlib"]
# Cargo can't do autodiscovery if Cargo.toml is not in the root.
[[bin]]
name = "test_layout"
path = "@path@/src/bin/test_layout.rs"
[[example]]
name = "test_layout"
path = "@path@/examples/test_layout.rs"
[features]
gio_v0_5 = []
gtk_v0_5 = []
rustc_less_1_36 = []
# Dependencies which don't change based on build flags
[dependencies.cairo-sys-rs]
version = ""
[dependencies.glib-sys]
version = ""
features = ["v2_44"]
[dependencies.gtk-sys]
version = ""
features = ["v3_22"]
[dependencies]
maplit = "1.0.*"
serde = { version = "1.0.*", features = ["derive"] }
serde_yaml = "0.8.*"
xkbcommon = { version = "0.4.*", features = ["wayland"] }
# Here is inserted the Cargo.deps file

View File

@ -3,14 +3,18 @@
*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 xml-defined keyboards
- 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
@ -18,8 +22,6 @@ Features
### TODO
- Use Wayland virtual keyboard protocol
- Use Wayland text input protocol
- Use Wayland input method protocol
- Pick up DBus interface files from /usr/share
@ -28,41 +30,43 @@ Building
### Dependencies
See `.gitlab-ci.yml`.
See `.gitlab-ci.yml` or run `apt-get build-dep .`
### Build from git repo
```
```bash
$ git clone https://source.puri.sm/Librem5/squeekboard.git
$ cd squeekboard
$ mkdir ../build
$ meson ../build/
$ cd ../build
$ ninja install
$ mkdir _build
$ meson _build/
$ cd _build
$ ninja
```
For development, alter the `meson` call:
```
$ meson ../build/ --prefix=../install
```
and don't skip `ninja install` before running. The last step is necessary in order to find the keyboard definition files.
To run tests use `ninja test`. To install squeekboard run `ninja install`.
Running
-------
```
$ rootston
```bash
$ phoc # if no compatible Wayland compositor is running yet
$ cd ../build/
$ src/squeekboard
```
### Testing
Squeekboard honors the gnome "screen-keyboard-enabled" setting. Either enable this through gnome-settings under accessibility or run:
```bash
$ gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
```
$ 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
$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ua')]"
$ gsettings set org.gnome.desktop.input-sources current 1
To make the keyboard show you can use either an application that does so automatically, like a text editor or `python3 ./tests/entry.py`, or you can manually trigger it with:
```bash
busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true
```
Developing
----------
See [`doc/hacking.md`](doc/hacking.md) for this copy, or the [official documentation](https://developer.puri.sm/projects/squeekboard/) for the current release.

View File

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

View File

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

View File

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

View File

@ -1 +0,0 @@
gio-2.0

View File

@ -1 +0,0 @@
eek-0.90

View File

@ -1,2 +0,0 @@
eek-0.90
x11

22
cargo.sh Executable file
View File

@ -0,0 +1,22 @@
#!/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"
# the 'run" command takes arguments at the end,
# so --manifest-path must not be last
CMD="$1"
shift
cargo "$CMD" --manifest-path "$CARGO_TARGET_DIR"/Cargo.toml "$@"

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,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,9 +0,0 @@
[Desktop Entry]
Name=Eekboard
GenericName=Eekboard Virtual Keyboard
Comment=Virtual Keyboard
Exec=eekboard
Icon=eekboard
Terminal=false
Type=Application
Categories=GTK;Utility;

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

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

78
data/keyboards/br.yaml Normal file
View File

@ -0,0 +1,78 @@
---
outlines:
default: { width: 35.33, height: 52 }
altline: { width: 52.67, height: 52 }
wide: { width: 62, height: 52 }
spaceline: { width: 142, height: 52 }
special: { 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 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 period Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "à À á Á ã Ã â Â é É"
- "show_symbols ê Ê í Í ó Ó ô Ô"
- "show_letters õ Õ ú Ú ü Ü period BackSpace"
symbols:
- "@ # $ % - + ÷ × = ≠"
- "( ) § & < > / * { }"
- "show_numbers_from_symbols º \" ' colon ; ! ? 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"
action: erase
preferences:
action: show_prefs
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "wide"
label: "1ã"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "1ã"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
period:
outline: "special"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"

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

@ -0,0 +1,82 @@
# Maintained by: Mark Müller <markmueller86@gmail.com>
---
outlines:
default: { width: 35.33, height: 52 }
altline: { width: 52.67, height: 52 }
wide: { width: 62, height: 52 }
spaceline: { width: 99.67, height: 52 }
special: { 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"
action: "erase"
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,81 @@
# Maintained by: Mark Müller <markmueller86@gmail.com>
---
outlines:
default: { width: 48, height: 42 }
altline: { width: 81, height: 42 }
wide: { width: 108, height: 42 }
spaceline: { width: 216, height: 42 }
special: { 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"
action: "erase"
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"

98
data/keyboards/dk.yaml Normal file
View File

@ -0,0 +1,98 @@
---
outlines:
default: { width: 32, height: 52 }
altline: { width: 48.39024, height: 52 }
wide: { width: 62, height: 52 }
outline7: { width: 88.97561, height: 52 }
spaceline: { 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"
- "@ # $ % & - _ + ( )"
- "show_symbols , \" ' : ; ! ? BackSpace"
- "show_letters preferences space . Return"
symbols:
- "~ ` | U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
- "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree * { }"
- "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"
action: erase
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"
U00B7:
text: "·"
squareroot:
text: "√"
Greek_pi:
text: "π"
division:
text: "÷"
multiply:
text: "×"
paragraph:
text: "¶"
Greek_tau:
text: "τ"
copyright:
text: "©"
U00AE:
text: "®"
U00A3:
text: "£"
EuroSign:
text: "€"
U00A5:
text: "¥"
asciicircum:
text: "^"
degree:
text: "°"

80
data/keyboards/emoji.yaml Normal file
View File

@ -0,0 +1,80 @@
---
outlines:
default: { width: 52, height: 52 }
altline: { width: 40, height: 52 }
narrow: { width: 22, height: 52 }
views:
base:
- "😀 😁 😅 😂 😊 😇 🙃"
- "😍 😘 😋 😜 😎 🥳 😔"
- "😢 😭 😡 😱 🤔 😬 🙄"
- "preferences blank 1 2 3 4 5 6 blank BackSpace"
two:
- "🤩 🤨 🤓 😴 🤢 🤮 😈"
- "💩 🙌 👏 👍 👎 👌 👋"
- "💪 🖕 🙏 💋 🤦‍♀️ 🤷‍♀️ 💃"
- "preferences blank 1 2 3 4 5 6 blank BackSpace"
three:
- "🐶 🐱 🐯 🙈 🐴 🦄 🌳"
- "🍀 🌹 💫 ⭐️ ✨ 💥 🔥"
- "🌈 ☀️ 🌤 🌧 ⛄️ ☂️ 🌊"
- "preferences blank 1 2 3 4 5 6 blank BackSpace"
four:
- "🍎 🍓 🍑 🍍 🍆 🥑 🥦"
- "🍕 🎂 🍫 🍿 🍻 🍾 🍽"
- "⚽️ 🏀 🏓 🏆 🎹 🎸 🎯"
- "preferences blank 1 2 3 4 5 6 blank BackSpace"
five:
- "🚗 🚌 🚲 🚄 🚂 ✈️ 🛰"
- "🚀 🛸 🚁 🚦 🏝 🏔 ⛺️"
- "🏠 🏢 🏥 🏛 🛤 🌅 🎇"
- "preferences blank 1 2 3 4 5 6 blank BackSpace"
six:
- "⌚️ 📱 💻 🖥 🖨 🕹 ✉️"
- "📞 ☎️ ⏰ ⏳ 📈 📉 📌"
- "🎁 ❤️ 💕 💯 ✅ ❎ 📢"
- "preferences blank 1 2 3 4 5 6 blank BackSpace"
buttons:
1:
action:
set_view: "base"
outline: "altline"
label: "1"
2:
action:
set_view: "two"
outline: "altline"
label: "2"
3:
action:
set_view: "three"
outline: "altline"
label: "3"
4:
action:
set_view: "four"
outline: "altline"
label: "4"
5:
action:
set_view: "five"
outline: "altline"
label: "5"
6:
action:
set_view: "six"
outline: "altline"
label: "6"
preferences:
action: "show_prefs"
outline: "altline"
icon: "keyboard-mode-symbolic"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
keysym: BackSpace
blank:
outline: "narrow"
text: ""

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

@ -0,0 +1,87 @@
---
outlines:
default: { width: 35.33, height: 52 }
altline: { width: 52.67, height: 52 }
wide: { width: 62, height: 52 }
spaceline: { width: 99.67, height: 52 }
special: { 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"
action: "erase"
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: ":"

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

@ -0,0 +1,171 @@
---
outlines:
default: { width: 32, height: 52 }
altline: { width: 48.39024, height: 52 }
wide: { width: 62, height: 52 }
outline7: { width: 88.97561, height: 52 }
spaceline: { 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"
action: "erase"
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: "]"

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

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

View File

@ -1,64 +0,0 @@
<?xml version="1.0"?>
<geometry version="0.90">
<bounds x="10" y="10" width="410.0000" height="229"/>
<outline id="default" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="37.46341" y="0.000000"/>
<point x="37.46341" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="altline" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="48.39024" y="0.000000"/>
<point x="48.39024" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="outline7" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="88.97561" y="0.000000"/>
<point x="88.97561" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="spaceline" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="150.5853" y="0.000000"/>
<point x="150.5853" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<button name="Shift_L" oref="altline" />
<button name="BackSpace" oref="altline" />
<button name="preferences" oref="altline" />
<button name="show_numbers" oref="altline" keycode="0" />
<button name="show_letters" oref="altline" keycode="0" />
<button name="show_symbols" oref="altline" keycode="0" />
<button name="period" oref="altline" />
<button name="space" oref="spaceline" />
<button name="Return" oref="outline7" />
<view>
<section angle="0">q w e r t y u i o p</section>
<section angle="0">a s d f g h j k l</section>
<section angle="0"> Shift_L z x c v b n m BackSpace </section>
<section angle="0"> show_numbers preferences space period Return </section>
</view>
<view>
<section angle="0">Q W E R T Y U I O P</section>
<section angle="0">A S D F G H J K L</section>
<section angle="0"> Shift_L Z X C V B N M BackSpace </section>
<section angle="0"> show_numbers preferences space period Return </section>
</view>
<view>
<section angle="0">1 2 3 4 5 6 7 8 9 0</section>
<section angle="0">at numbersign dollar percent ampersand minus underscore plus parenleft parenright</section>
<section angle="0"> show_symbols comma quotedbl quoteright colon semicolon exclam question BackSpace </section>
<section angle="0"> show_letters preferences space period Return </section>
</view>
<view>
<section angle="0">asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph</section>
<section angle="0">copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright</section>
<section angle="0"> show_numbers backslash slash less greater equal bracketleft bracketright BackSpace </section>
<section angle="0"> show_letters preferences space period Return </section>
</view>
</geometry>

View File

@ -1,105 +0,0 @@
<?xml version="1.0"?>
<geometry version="0.90">
<bounds x="0" y="10.000000" width="426.0000" height="296.5853"/>
<outline id="outline2" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="32" y="0.000000"/>
<point x="32" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="altline" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="48.39024" y="0.000000"/>
<point x="48.39024" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="outline4" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="59.31707" y="0.000000"/>
<point x="59.31707" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="outline5" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="59.31707" y="0.000000"/>
<point x="59.31707" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="outline6" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="68.68292" y="0.000000"/>
<point x="68.68292" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="outline7" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="88.97561" y="0.000000"/>
<point x="88.97561" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="outline8" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="88.97561" y="0.000000"/>
<point x="88.97561" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="outline9" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="109.2682" y="0.000000"/>
<point x="109.2682" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="outline10" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="37.46341" y="0.000000"/>
<point x="37.46341" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="outline13" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="79.60975" y="0.000000"/>
<point x="79.60975" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<outline id="spaceline" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="150.5853" y="0.000000"/>
<point x="150.5853" y="52"/>
<point x="0.000000" y="52"/>
</outline>
<button name="Shift_L" oref="altline" />
<button name="BackSpace" oref="altline" />
<button name="preferences" oref="altline" />
<button name="show_numbers" oref="altline" keycode="0" />
<button name="show_letters" oref="altline" keycode="0" />
<button name="show_symbols" oref="altline" keycode="0" />
<button name="space" oref="spaceline" />
<button name="return" oref="outline7" />
<view>
<section angle="0">q w e r t y u i o p aring</section>
<section angle="0">a s d f g h j k l oslash ae</section>
<section angle="0"> Shift_L z x c v b n m BackSpace </section>
<section angle="0"> show_numbers preferences space period Return </section>
</view>
<view>
<section angle="0">Q W E R T Y U I O P Aring</section>
<section angle="0">A S D F G H J K L Oslash AE</section>
<section angle="0"> Shift_L Z X C V B N M BackSpace </section>
<section angle="0"> show_numbers preferences space period Return </section>
</view>
<view>
<section angle="0">1 2 3 4 5 6 7 8 9 0</section>
<section angle="0">at numbersign dollar percent ampersand minus underscore plus parenleft parenright</section>
<section angle="0"> show_symbols comma quotedbl quoteright colon semicolon exclam question BackSpace </section>
<section angle="0"> show_letters preferences space period Return </section>
</view>
<view>
<section angle="0">asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph</section>
<section angle="0">copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright</section>
<section angle="0"> show_numbers backslash slash less greater equal bracketleft bracketright BackSpace </section>
<section angle="0"> show_letters preferences space period Return </section>
</view>
</geometry>

View File

@ -1,40 +0,0 @@
<?xml version="1.0"?>
<geometry version="0.90">
<bounds x="0" y="10.000000" width="426.0000" height="296.5853"/>
<outline id="default" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="37.46341" y="0.000000"/>
<point x="37.46341" y="52.44877"/>
<point x="0.000000" y="52.44877"/>
</outline>
<outline id="altline" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="48.39024" y="0.000000"/>
<point x="48.39024" y="52.44877"/>
<point x="0.000000" y="52.44877"/>
</outline>
<outline id="outline7" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="88.97561" y="0.000000"/>
<point x="88.97561" y="52.44877"/>
<point x="0.000000" y="52.44877"/>
</outline>
<outline id="spaceline" corner-radius="1.000000">
<point x="0.000000" y="0.000000"/>
<point x="120.5853" y="0.000000"/>
<point x="120.5853" y="52.44877"/>
<point x="0.000000" y="52.44877"/>
</outline>
<button name="BackSpace" oref="altline" />
<button name="space" oref="spaceline" />
<button name="Return" oref="outline7" />
<view>
<section angle="0">1 2 3 parenleft parenright</section>
<section angle="0">4 5 6 numbersign asterisk</section>
<section angle="0">7 8 9 plus minus</section>
<section angle="0">BackSpace 0 space Return</section>
</view>
</geometry>

191
data/keyboards/gr.yaml Normal file
View File

@ -0,0 +1,191 @@
# Greek layout created by Antonis Tsolomitis
# University of the Aegean, Department of Mathematics, atsol@aegean.gr
# Sep 2019
---
outlines:
default: { width: 32, height: 52 }
altline: { width: 48.39024, height: 52 }
wide: { width: 62, height: 52 }
outline7: { width: 88.97561, height: 52 }
spaceline: { 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"
action: "erase"
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: "]"

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

@ -0,0 +1,90 @@
# Italian layout created by Antonio Pandolfo
# 03 october 2019
---
outlines:
default: { width: 35.33, height: 52 }
altline: { width: 52.67, height: 52 }
wide: { width: 62, height: 52 }
spaceline: { width: 99.67, height: 52 }
special: { 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 , . 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 ? . Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # € % & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? 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"
action: "erase"
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: "àè"
space:
outline: "spaceline"
label: " "
text: " "
Return:
outline: "altline"
icon: "key-enter"
keysym: "Return"
colon:
label: ":"
"\"":
keysym: "quotedbl"

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

@ -0,0 +1,525 @@
# Maintained by: Mark Müller <markmueller86@gmail.com>
---
outlines:
default: { width: 62, height: 52 }
default-wide: { width: 62, height: 52 }
altline: { width: 62, height: 52 }
wide: { width: 62, height: 52 }
special: { 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"
action: erase
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

@ -0,0 +1,525 @@
# Maintained by: Mark Müller <markmueller86@gmail.com>
---
outlines:
default: { width: 62, height: 42 }
default-wide: { width: 62, height: 42 }
altline: { width: 62, height: 42 }
wide: { width: 62, height: 42 }
special: { width: 62, height: 42 }
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"
action: erase
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,100 +0,0 @@
<?xml version="1.0"?>
<keyboards version="0.90">
<keyboard id="ar" name="ar"
geometry="compact" symbols="ar"
longname="Arabic" language="ar"/>
<keyboard id="be" name="be"
geometry="compact" symbols="be"
longname="Belarusian" language="be"/>
<keyboard id="fa" name="fa"
geometry="compact" symbols="fa"
longname="Farsi (ISIRI 2901-1994)" language="fa"/>
<keyboard id="he" name="he"
geometry="compact" symbols="he"
longname="Hebrew" language="he"/>
<keyboard id="ja" name="ja"
geometry="compact" symbols="ja-kana"
longname="Japanese (Kana)" language="ja"/>
<keyboard id="kk" name="kk"
geometry="compact" symbols="kk"
longname="Kazakh" language="kk"/>
<keyboard id="ks" name="ks"
geometry="compact" symbols="ks"
longname="Kashmiri" language="ks"/>
<keyboard id="my" name="my"
geometry="compact" symbols="my"
longname="Myanmar" language="my"/>
<keyboard id="nb" name="nb"
geometry="extended" symbols="nb"
longname="Norwegian" language="nb"/>
<keyboard id="ru" name="ru"
geometry="compact" symbols="us"
longname="Russian" language="ru"/>
<keyboard id="th" name="th"
geometry="compact" symbols="th"
longname="Thai" language="th"/>
<keyboard id="ua" name="ua"
geometry="compact" symbols="ua"
longname="Ukrainian" language="ua"/>
<keyboard id="ug" name="ug"
geometry="compact" symbols="ug"
longname="Uyghur" language="ug"/>
<keyboard id="us" name="us"
geometry="compact" symbols="us"
longname="US" language="en"/>
<keyboard id="zh-bopomofo" name="zh-bopomofo"
geometry="compact" symbols="zh-bopomofo"
longname="Chinese (Bopomofo)" language="zh"/>
<!-- Indic Inscript keyboards converted from m17n-lib -->
<keyboard id="as-inscript" name="as-inscript"
geometry="compact" symbols="as-inscript"
longname="Assamese (Inscript)" language="as"/>
<keyboard id="bn-inscript" name="bn-inscript"
geometry="compact" symbols="bn-inscript"
longname="Bengali (Inscript)" language="bn"/>
<keyboard id="gu-inscript" name="gu-inscript"
geometry="compact" symbols="gu-inscript"
longname="Gujarati (Inscript)" language="gu"/>
<keyboard id="hi-inscript" name="hi-inscript"
geometry="compact" symbols="hi-inscript"
longname="Hindi (Inscript)" language="hi"/>
<keyboard id="kn-inscript" name="kn-inscript"
geometry="compact" symbols="kn-inscript"
longname="Kannada (Inscript)" language="kn"/>
<keyboard id="ks-inscript" name="ks-inscript"
geometry="compact" symbols="ks-inscript"
longname="Kashmiri Devanagari (Inscript)" language="ks"/>
<keyboard id="mai-inscript" name="mai-inscript"
geometry="compact" symbols="mai-inscript"
longname="Maithili (Inscript)" language="mai"/>
<keyboard id="ml-inscript" name="ml-inscript"
geometry="compact" symbols="ml-inscript"
longname="Malayalam (Inscript)" language="ml-inscript"/>
<keyboard id="mr-inscript" name="mr-inscript"
geometry="compact" symbols="mr-inscript"
longname="Marathi (Inscript)" language="mr"/>
<keyboard id="or-inscript" name="or-inscript"
geometry="compact" symbols="or-inscript"
longname="Oriya (Inscript)" language="or"/>
<keyboard id="pa-inscript" name="pa-inscript"
geometry="compact" symbols="pa-inscript"
longname="Punjabi (Inscript)" language="pa"/>
<keyboard id="sd-inscript" name="sd-inscript"
geometry="compact" symbols="sd-inscript"
longname="Sindhi (Inscript)" language="sd"/>
<keyboard id="ta-inscript" name="ta-inscript"
geometry="compact" symbols="ta-inscript"
longname="Tamil (Inscript)" language="ta"/>
<keyboard id="te-inscript" name="te-inscript"
geometry="compact" symbols="te-inscript"
longname="Telugu (Inscript)" language="te"/>
<!-- Common keyboards -->
<keyboard id="number" name="number"
geometry="number-keypad" symbols="special/number"
longname="Numeric keypad" language="all"/>
<keyboard id="phone" name="phone"
geometry="number-keypad" symbols="special/number"
longname="Phone keypad" language="all"/>
</keyboards>

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

@ -0,0 +1,99 @@
---
outlines:
default: { width: 32, height: 52 }
altline: { width: 48.39024, height: 52 }
wide: { width: 62, height: 52 }
outline7: { width: 88.97561, height: 52 }
spaceline: { 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"
- "@ # $ % & - _ + ( )"
- "show_symbols , \" ' : ; ! ? BackSpace"
- "show_letters preferences space . Return"
symbols:
- "~ ` | U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
- "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree * { }"
- "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"
action: erase
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"
U00B7:
text: "·"
squareroot:
text: "√"
Greek_pi:
text: "π"
division:
text: "÷"
multiply:
text: "×"
paragraph:
text: "¶"
Greek_tau:
text: "τ"
copyright:
text: "©"
U00AE:
text: "®"
U00A3:
text: "£"
EuroSign:
text: "€"
U00A5:
text: "¥"
asciicircum:
text: "^"
degree:
text: "°"

View File

@ -0,0 +1,39 @@
---
outlines:
default: { width: 37.46341, height: 52 }
altline: { width: 48.39024, height: 52 }
outline7: { width: 88.97561, height: 52 }
spaceline: { width: 120.5853, height: 52 }
views:
base:
- "1 2 3 parenleft parenright"
- "4 5 6 numbersign asterisk"
- "7 8 9 plus minus"
- "BackSpace 0 space Return"
buttons:
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
action: erase
space:
outline: spaceline
text: " "
Return:
outline: outline7
icon: "key-enter"
keysym: "Return"
asterisk:
text: "*"
numbersign:
text: "#"
minus:
text: "-"
plus:
text: "+"
parenleft:
text: "("
parenright:
text: ")"

110
data/keyboards/pl.yaml Normal file
View File

@ -0,0 +1,110 @@
---
outlines:
default: { width: 35.33, height: 52 }
altline: { width: 52.67, height: 52 }
wide: { width: 59, height: 52 }
spaceline: { width: 140, height: 52 }
special: { 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 preferences space show_accents 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 show_upper_accents Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # $ % & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space period Return"
symbols:
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° * { }"
- "show_numbers_from_symbols \\ / < > = [ ] BackSpace"
- "show_letters preferences space period Return"
accents:
- "q w ę r t y u i ó p"
- "ą ś d f g h j k ł"
- "accents_show_upper ż ź ć v b ń m BackSpace"
- "show_numbers preferences space show_accents Return"
upper_accents:
- "Q W Ę R T Y U I Ó P"
- "Ą Ś D F G H J K Ł"
- "accents_show_upper Ż Ź Ć V B Ń M BackSpace"
- "show_numbers preferences space show_upper_accents Return"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
accents_show_upper:
action:
locking:
lock_view: "upper_accents"
unlock_view: "accents"
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: "wide"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
show_accents:
action:
locking:
lock_view: "accents"
unlock_view: "base"
outline: "altline"
label: "ąę"
show_upper_accents:
action:
locking:
lock_view: "upper_accents"
unlock_view: "upper"
outline: "altline"
label: "ĄĘ"
period:
outline: "altline"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"

102
data/keyboards/pl_wide.yaml Normal file
View File

@ -0,0 +1,102 @@
---
outlines:
default: { width: 54, height: 42 }
altline: { width: 81, height: 42 }
wide: { width: 100, height: 42 }
spaceline: { width: 206, height: 42 }
special: { width: 54, height: 42 }
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 show_accents 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 show_upper_accents Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # $ % & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space period Return"
symbols:
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° * { }"
- "show_numbers_from_symbols \\ / < > = [ ] BackSpace"
- "show_letters preferences space period Return"
accents:
- "q w ę r t y u i ó p"
- "ą ś d f g h j k ł"
- "Shift_L ż ź ć v b ń m BackSpace"
- "show_numbers preferences space show_accents Return"
upper_accents:
- "Q W Ę R T Y U I Ó P"
- "Ą Ś D F G H J K Ł"
- "Shift_L Ż Ź Ć V B Ń M BackSpace"
- "show_numbers preferences space show_upper_accents 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: "wide"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
show_accents:
action:
locking:
lock_view: "accents"
unlock_view: "base"
outline: "altline"
label: "ąę"
show_upper_accents:
action:
locking:
lock_view: "upper_accents"
unlock_view: "upper"
outline: "altline"
label: "ĄĘ"
period:
outline: "altline"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"

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

@ -0,0 +1,94 @@
---
outlines:
default: { width: 32, height: 52 }
altline: { width: 32, height: 52 }
wide: { width: 57, height: 52 }
narrow: { width: 26, height: 52 }
spaceline: { width: 107, height: 52 }
fill: { width: 159, height: 52 }
special: { width: 42, height: 52 }
views:
base:
- "й ц у к е н г ш щ з х"
- "ф ы в а п р о л д ж э"
- "Shift_L я ч с м и т ь б ю BackSpace"
- "show_numbers preferences ё space ъ period Return"
upper:
- "Й Ц У К Е Н Г Ш Щ З Х"
- "Ф Ы В А П Р О Л Д Ж Э"
- "Shift_L Я Ч С М И Т Ь Б Ю BackSpace"
- "show_numbers preferences Ё space Ъ comma Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # $ % & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space_fill period Return"
symbols:
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° * { }"
- "show_numbers_from_symbols \\ / < > = [ ] BackSpace"
- "show_letters preferences space_fill 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"
action: erase
preferences:
action: show_prefs
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "wide"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "wide"
label: "123"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "АБВ"
show_symbols:
action:
set_view: "symbols"
outline: "wide"
label: "*/="
period:
outline: "special"
text: "."
comma:
outline: "special"
text: ","
space:
outline: "spaceline"
text: " "
space_fill:
outline: "fill"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"
ё:
outline: "narrow"
Ё:
outline: "narrow"
ъ:
outline: "narrow"
Ъ:
outline: "narrow"

164
data/keyboards/se.yaml Normal file
View File

@ -0,0 +1,164 @@
---
outlines:
default: { width: 32, height: 52 }
altline: { width: 48.39024, height: 52 }
wide: { width: 64, height: 52 }
spaceline: { width: 142, height: 52 }
special: { 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 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_from_symbols 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"
action: erase
preferences:
action: "show_prefs"
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
outline: "wide"
action:
set_view: "numbers"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: altline
label: "123"
show_letters:
outline: "wide"
action:
set_view: "base"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
".":
outline: "special"
space:
outline: spaceline
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
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,181 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter">ّ</text>
</key>
<key keycode="10" name="AE01">
<text category="letter">١</text>
<keysym keyval="33">exclam</keysym>
</key>
<key keycode="11" name="AE02">
<text category="letter">٢</text>
<keysym keyval="64">at</keysym>
</key>
<key keycode="12" name="AE03">
<text category="letter">٣</text>
<keysym keyval="35">numbersign</keysym>
</key>
<key keycode="13" name="AE04">
<text category="letter">٤</text>
<keysym keyval="36">dollar</keysym>
</key>
<key keycode="14" name="AE05">
<text category="letter">٥</text>
<keysym keyval="37">percent</keysym>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter">٦</text>
<keysym keyval="94">asciicircum</keysym>
</key>
<key keycode="16" name="AE07">
<text category="letter">٧</text>
<keysym keyval="38">ampersand</keysym>
</key>
<key keycode="17" name="AE08">
<text category="letter">٨</text>
<keysym keyval="42">asterisk</keysym>
</key>
<key keycode="18" name="AE09">
<text category="letter">٩</text>
<text category="letter">)</text>
</key>
<key keycode="19" name="AE10">
<text category="letter">٠</text>
<text category="letter">(</text>
</key>
<key keycode="24" name="AD01">
<text category="letter">ض</text>
<text category="letter">َ</text>
</key>
<key keycode="25" name="AD02">
<text category="letter">ص</text>
<text category="letter">ً</text>
</key>
<key keycode="26" name="AD03">
<text category="letter">ث</text>
<text category="letter">ُ</text>
</key>
<key keycode="27" name="AD04">
<text category="letter">ق</text>
<text category="letter">ٌ</text>
</key>
<key keycode="28" name="AD05">
<text category="letter">ف</text>
<text category="letter">لإ</text>
</key>
<key keycode="29" name="AD06">
<text category="letter">غ</text>
<text category="letter">إ</text>
</key>
<key keycode="30" name="AD07">
<text category="letter">ع</text>
<text category="letter">`</text>
</key>
<key keycode="31" name="AD08">
<text category="letter">ه</text>
<text category="letter">÷</text>
</key>
<key keycode="32" name="AD09">
<text category="letter">خ</text>
<text category="letter">×</text>
</key>
<key keycode="33" name="AD10">
<text category="letter">ح</text>
<text category="letter">؛</text>
</key>
<key keycode="34" name="AD11">
<text category="letter">ج</text>
<text category="letter">&gt;</text>
</key>
<key keycode="35" name="AD12">
<text category="letter">د</text>
<text category="letter">&lt;</text>
</key>
<key keycode="38" name="AC01">
<text category="letter">ش</text>
<text category="letter">ِ</text>
</key>
<key keycode="39" name="AC02">
<text category="letter">س</text>
<text category="letter">ٍ</text>
</key>
<key keycode="40" name="AC03">
<text category="letter">ي</text>
<text category="letter">]</text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ب</text>
<text category="letter">[</text>
</key>
<key keycode="42" name="AC05">
<text category="letter">ل</text>
<text category="letter">لأ</text>
</key>
<key keycode="43" name="AC06">
<text category="letter">ا</text>
<text category="letter">أ</text>
</key>
<key keycode="44" name="AC07">
<text category="letter">ت</text>
<text category="letter">ـ</text>
</key>
<key keycode="45" name="AC08">
<text category="letter">ن</text>
<text category="letter">،</text>
</key>
<key keycode="46" name="AC09">
<text category="letter">م</text>
<text category="letter">/</text>
</key>
<key keycode="47" name="AC10">
<text category="letter">ك</text>
<keysym keyval="58">colon</keysym>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<keysym keyval="34">quotedbl</keysym>
</key>
<key keycode="52" name="AB01">
<text category="letter">ئ</text>
<text category="letter">~</text>
</key>
<key keycode="53" name="AB02">
<text category="letter">ء</text>
<text category="letter">ْ</text>
</key>
<key keycode="54" name="AB03">
<text category="letter">ؤ</text>
<text category="letter">}</text>
</key>
<key keycode="55" name="AB04">
<text category="letter">ر</text>
<text category="letter">{</text>
</key>
<key keycode="56" name="AB05">
<text category="letter">لا</text>
<text category="letter">لآ</text>
</key>
<key keycode="57" name="AB06">
<text category="letter">ى</text>
<text category="letter">آ</text>
</key>
<key keycode="58" name="AB07">
<text category="letter">ة</text>
<text category="letter">&apos;</text>
</key>
<key keycode="59" name="AB08">
<text category="letter">و</text>
<text category="letter">,</text>
</key>
<key keycode="60" name="AB09">
<text category="letter">ز</text>
<text category="letter">.</text>
</key>
<key keycode="61" name="AB10">
<text category="letter">ظ</text>
<text category="letter">؟</text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter">~</text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter">@</text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">্ৰ</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">ৰ্</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">জ্ঞ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">ত্ৰ</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">ক্ষ</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">শ্ৰ</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter">|</text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ি</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter">J</text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter">V</text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter">B</text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter">N</text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<keysym keyval="63">question</keysym>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter">Ё</text>
</key>
<key keycode="10" name="AE01">
<keysym keyval="49">1</keysym>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<keysym keyval="50">2</keysym>
<text category="letter">&quot;</text>
</key>
<key keycode="12" name="AE03">
<keysym keyval="51">3</keysym>
<text category="letter"></text>
</key>
<key keycode="13" name="AE04">
<keysym keyval="52">4</keysym>
<text category="letter">;</text>
</key>
<key keycode="14" name="AE05">
<keysym keyval="53">5</keysym>
<text category="letter">%</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<keysym keyval="54">6</keysym>
<text category="letter">:</text>
</key>
<key keycode="16" name="AE07">
<keysym keyval="55">7</keysym>
<text category="letter">?</text>
</key>
<key keycode="17" name="AE08">
<keysym keyval="56">8</keysym>
<text category="letter">*</text>
</key>
<key keycode="18" name="AE09">
<keysym keyval="57">9</keysym>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<keysym keyval="48">0</keysym>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<keysym keyval="45">minus</keysym>
<text category="letter">_</text>
</key>
<key keycode="21" name="AE12">
<keysym keyval="61">equal</keysym>
<text category="letter">+</text>
</key>
<key keycode="24" name="AD01">
<text category="letter">й</text>
<text category="letter">Й</text>
</key>
<key keycode="25" name="AD02">
<text category="letter">ц</text>
<text category="letter">Ц</text>
</key>
<key keycode="26" name="AD03">
<text category="letter">у</text>
<text category="letter">У</text>
</key>
<key keycode="27" name="AD04">
<text category="letter">к</text>
<text category="letter">К</text>
</key>
<key keycode="28" name="AD05">
<text category="letter">е</text>
<text category="letter">Е</text>
</key>
<key keycode="29" name="AD06">
<text category="letter">н</text>
<text category="letter">Н</text>
</key>
<key keycode="30" name="AD07">
<text category="letter">г</text>
<text category="letter">Г</text>
</key>
<key keycode="31" name="AD08">
<text category="letter">ш</text>
<text category="letter">Ш</text>
</key>
<key keycode="32" name="AD09">
<text category="letter">ў</text>
<text category="letter">Ў</text>
</key>
<key keycode="33" name="AD10">
<text category="letter">з</text>
<text category="letter">З</text>
</key>
<key keycode="34" name="AD11">
<text category="letter">х</text>
<text category="letter">Х</text>
</key>
<key keycode="35" name="AD12">
<text category="letter">&apos;</text>
<text category="letter">&apos;</text>
</key>
<key keycode="51" name="BKSL">
<text category="letter">\</text>
<text category="letter">|</text>
</key>
<key keycode="38" name="AC01">
<text category="letter">ф</text>
<text category="letter">Ф</text>
</key>
<key keycode="39" name="AC02">
<text category="letter">ы</text>
<text category="letter">Ы</text>
</key>
<key keycode="40" name="AC03">
<text category="letter">в</text>
<text category="letter">В</text>
</key>
<key keycode="41" name="AC04">
<text category="letter">а</text>
<text category="letter">А</text>
</key>
<key keycode="42" name="AC05">
<text category="letter">п</text>
<text category="letter">П</text>
</key>
<key keycode="43" name="AC06">
<text category="letter">р</text>
<text category="letter">Р</text>
</key>
<key keycode="44" name="AC07">
<text category="letter">о</text>
<text category="letter">О</text>
</key>
<key keycode="45" name="AC08">
<text category="letter">л</text>
<text category="letter">Л</text>
</key>
<key keycode="46" name="AC09">
<text category="letter">д</text>
<text category="letter">Д</text>
</key>
<key keycode="47" name="AC10">
<text category="letter">ж</text>
<text category="letter">Ж</text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter">Э</text>
</key>
<key keycode="52" name="AB01">
<text category="letter">я</text>
<text category="letter">Я</text>
</key>
<key keycode="53" name="AB02">
<text category="letter">ч</text>
<text category="letter">Ч</text>
</key>
<key keycode="54" name="AB03">
<text category="letter">с</text>
<text category="letter">С</text>
</key>
<key keycode="55" name="AB04">
<text category="letter">м</text>
<text category="letter">М</text>
</key>
<key keycode="56" name="AB05">
<text category="letter">і</text>
<text category="letter">І</text>
</key>
<key keycode="57" name="AB06">
<text category="letter">т</text>
<text category="letter">Т</text>
</key>
<key keycode="58" name="AB07">
<text category="letter">ь</text>
<text category="letter">Ь</text>
</key>
<key keycode="59" name="AB08">
<text category="letter">б</text>
<text category="letter">Б</text>
</key>
<key keycode="60" name="AB09">
<text category="letter">ю</text>
<text category="letter">Ю</text>
</key>
<key keycode="61" name="AB10">
<text category="letter">.</text>
<text category="letter">,</text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter">~</text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter">@</text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">%</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">^</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">&amp;</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">*</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter">\</text>
<text category="letter">|</text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ি</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter">J</text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter">z</text>
<text category="letter">Z</text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter">V</text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter">B</text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter">N</text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter"></text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<keysym keyval="126">asciitilde</keysym>
</key>
<key keycode="10" name="AE01">
<text category="letter">۱</text>
<keysym keyval="33">exclam</keysym>
</key>
<key keycode="11" name="AE02">
<text category="letter">۲</text>
<text category="letter">٬</text>
</key>
<key keycode="12" name="AE03">
<text category="letter">۳</text>
<text category="letter">٫</text>
</key>
<key keycode="13" name="AE04">
<text category="letter">۴</text>
<keysym keyval="36">dollar</keysym>
</key>
<key keycode="14" name="AE05">
<text category="letter">۵</text>
<text category="letter">٪</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter">۶</text>
<text category="letter">×</text>
</key>
<key keycode="16" name="AE07">
<text category="letter">۷</text>
<text category="letter">،</text>
</key>
<key keycode="17" name="AE08">
<text category="letter">۸</text>
<keysym keyval="42">asterisk</keysym>
</key>
<key keycode="18" name="AE09">
<text category="letter">۹</text>
<text category="letter">)</text>
</key>
<key keycode="19" name="AE10">
<text category="letter">۰</text>
<text category="letter">(</text>
</key>
<key keycode="20" name="AE11">
<keysym keyval="45">minus</keysym>
<keysym keyval="95">underscore</keysym>
</key>
<key keycode="21" name="AE12">
<keysym keyval="61">equal</keysym>
<keysym keyval="43">plus</keysym>
</key>
<key keycode="24" name="AD01">
<text category="letter">ض</text>
<text category="letter">ْ</text>
</key>
<key keycode="25" name="AD02">
<text category="letter">ص</text>
<text category="letter">ٌ</text>
</key>
<key keycode="26" name="AD03">
<text category="letter">ث</text>
<text category="letter">ٍ</text>
</key>
<key keycode="27" name="AD04">
<text category="letter">ق</text>
<text category="letter">ً</text>
</key>
<key keycode="28" name="AD05">
<text category="letter">ف</text>
<text category="letter">ُ</text>
</key>
<key keycode="29" name="AD06">
<text category="letter">غ</text>
<text category="letter">ِ</text>
</key>
<key keycode="30" name="AD07">
<text category="letter">ع</text>
<text category="letter">َ</text>
</key>
<key keycode="31" name="AD08">
<text category="letter">ه</text>
<text category="letter">ّ</text>
</key>
<key keycode="32" name="AD09">
<text category="letter">خ</text>
<text category="letter">]</text>
</key>
<key keycode="33" name="AD10">
<text category="letter">ح</text>
<text category="letter">[</text>
</key>
<key keycode="34" name="AD11">
<text category="letter">ج</text>
<text category="letter">}</text>
</key>
<key keycode="35" name="AD12">
<text category="letter">چ</text>
<text category="letter">{</text>
</key>
<key keycode="51" name="BKSL">
<keysym keyval="92">backslash</keysym>
<keysym keyval="124">bar</keysym>
</key>
<key keycode="38" name="AC01">
<text category="letter">ش</text>
<text category="letter">ؤ</text>
</key>
<key keycode="39" name="AC02">
<text category="letter">س</text>
<text category="letter">ئ</text>
</key>
<key keycode="40" name="AC03">
<text category="letter">ی</text>
<text category="letter">ي</text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ب</text>
<text category="letter">إ</text>
</key>
<key keycode="42" name="AC05">
<text category="letter">ل</text>
<text category="letter">أ</text>
</key>
<key keycode="43" name="AC06">
<text category="letter">ا</text>
<text category="letter">آ</text>
</key>
<key keycode="44" name="AC07">
<text category="letter">ت</text>
<text category="letter">ة</text>
</key>
<key keycode="45" name="AC08">
<text category="letter">ن</text>
<text category="letter">»</text>
</key>
<key keycode="46" name="AC09">
<text category="letter">م</text>
<text category="letter">«</text>
</key>
<key keycode="47" name="AC10">
<text category="letter">ک</text>
<keysym keyval="58">colon</keysym>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter">؛</text>
</key>
<key keycode="52" name="AB01">
<text category="letter">ظ</text>
<text category="letter">ك</text>
</key>
<key keycode="53" name="AB02">
<text category="letter">ط</text>
<keysym keyval="88">X</keysym>
</key>
<key keycode="54" name="AB03">
<text category="letter">ز</text>
<text category="letter">ژ</text>
</key>
<key keycode="55" name="AB04">
<text category="letter">ر</text>
<keysym keyval="86">V</keysym>
</key>
<key keycode="56" name="AB05">
<text category="letter">ذ</text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter">د</text>
<text name="N" category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter">پ</text>
<text category="letter">ء</text>
</key>
<key keycode="59" name="AB08">
<text category="letter">و</text>
<text category="letter">&gt;</text>
</key>
<key keycode="60" name="AB09">
<keysym keyval="46">period</keysym>
<text category="letter">&lt;</text>
</key>
<key keycode="61" name="AB10">
<keysym keyval="47">slash</keysym>
<text category="letter">؟</text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter">~</text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">જ્ઞ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">ત્ર</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">ક્ષ</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">શ્ર</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">િ</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter">&quot;</text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter">&apos;</text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter">?</text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<keysym keyval="126">asciitilde</keysym>
</key>
<key keycode="10" name="AE01">
<keysym keyval="49">1</keysym>
<keysym keyval="33">exclam</keysym>
</key>
<key keycode="11" name="AE02">
<keysym keyval="50">2</keysym>
<keysym keyval="64">at</keysym>
</key>
<key keycode="12" name="AE03">
<keysym keyval="51">3</keysym>
<keysym keyval="35">numbersign</keysym>
</key>
<key keycode="13" name="AE04">
<keysym keyval="52">4</keysym>
<keysym keyval="36">dollar</keysym>
</key>
<key keycode="14" name="AE05">
<keysym keyval="53">5</keysym>
<keysym keyval="37">percent</keysym>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<keysym keyval="54">6</keysym>
<keysym keyval="94">asciicircum</keysym>
</key>
<key keycode="16" name="AE07">
<keysym keyval="55">7</keysym>
<keysym keyval="38">ampersand</keysym>
</key>
<key keycode="17" name="AE08">
<keysym keyval="56">8</keysym>
<keysym keyval="42">asterisk</keysym>
</key>
<key keycode="18" name="AE09">
<keysym keyval="57">9</keysym>
<text category="letter">)</text>
</key>
<key keycode="19" name="AE10">
<keysym keyval="48">0</keysym>
<text category="letter">(</text>
</key>
<key keycode="20" name="AE11">
<keysym keyval="45">minus</keysym>
<keysym keyval="95">underscore</keysym>
</key>
<key keycode="21" name="AE12">
<keysym keyval="61">equal</keysym>
<keysym keyval="43">plus</keysym>
</key>
<key keycode="24" name="AD01">
<text category="letter">/</text>
<keysym keyval="81">Q</keysym>
</key>
<key keycode="25" name="AD02">
<text category="letter">&apos;</text>
<keysym keyval="87">W</keysym>
</key>
<key keycode="26" name="AD03">
<text category="letter">ק</text>
<keysym keyval="69">E</keysym>
</key>
<key keycode="27" name="AD04">
<text category="letter">ר</text>
<keysym keyval="82">R</keysym>
</key>
<key keycode="28" name="AD05">
<text category="letter">א</text>
<keysym keyval="84">T</keysym>
</key>
<key keycode="29" name="AD06">
<text category="letter">ט</text>
<keysym keyval="89">Y</keysym>
</key>
<key keycode="30" name="AD07">
<text category="letter">ו</text>
<keysym keyval="85">U</keysym>
</key>
<key keycode="31" name="AD08">
<text category="letter">ן</text>
<keysym keyval="73">I</keysym>
</key>
<key keycode="32" name="AD09">
<text category="letter">ם</text>
<keysym keyval="79">O</keysym>
</key>
<key keycode="33" name="AD10">
<text category="letter">פ</text>
<keysym keyval="80">P</keysym>
</key>
<key keycode="34" name="AD11">
<text category="letter">]</text>
<text category="letter">}</text>
</key>
<key keycode="35" name="AD12">
<text category="letter">[</text>
<text category="letter">{</text>
</key>
<key keycode="51" name="BKSL">
<keysym keyval="92">backslash</keysym>
<keysym keyval="124">bar</keysym>
</key>
<key keycode="38" name="AC01">
<text category="letter">ש</text>
<keysym keyval="65">A</keysym>
</key>
<key keycode="39" name="AC02">
<text category="letter">ד</text>
<keysym keyval="83">S</keysym>
</key>
<key keycode="40" name="AC03">
<text category="letter">ג</text>
<keysym keyval="68">D</keysym>
</key>
<key keycode="41" name="AC04">
<text category="letter">כ</text>
<keysym keyval="70">F</keysym>
</key>
<key keycode="42" name="AC05">
<text category="letter">ע</text>
<keysym keyval="71">G</keysym>
</key>
<key keycode="43" name="AC06">
<text category="letter">י</text>
<keysym keyval="72">H</keysym>
</key>
<key keycode="44" name="AC07">
<text category="letter">ח</text>
<keysym keyval="74">J</keysym>
</key>
<key keycode="45" name="AC08">
<text category="letter">ל</text>
<keysym keyval="75">K</keysym>
</key>
<key keycode="46" name="AC09">
<text category="letter">ך</text>
<keysym keyval="76">L</keysym>
</key>
<key keycode="47" name="AC10">
<text category="letter">ף</text>
<keysym keyval="58">colon</keysym>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<keysym keyval="34">quotedbl</keysym>
</key>
<key keycode="52" name="AB01">
<text category="letter">ז</text>
<keysym keyval="90">Z</keysym>
</key>
<key keycode="53" name="AB02">
<text category="letter">ס</text>
<keysym keyval="88">X</keysym>
</key>
<key keycode="54" name="AB03">
<text category="letter">ב</text>
<keysym keyval="67">C</keysym>
</key>
<key keycode="55" name="AB04">
<text category="letter">ה</text>
<keysym keyval="86">V</keysym>
</key>
<key keycode="56" name="AB05">
<text category="letter">נ</text>
<keysym keyval="66">B</keysym>
</key>
<key keycode="57" name="AB06">
<text category="letter">מ</text>
<keysym keyval="78">N</keysym>
</key>
<key keycode="58" name="AB07">
<text category="letter">צ</text>
<keysym keyval="77">M</keysym>
</key>
<key keycode="59" name="AB08">
<text category="letter">ת</text>
<text category="letter">&gt;</text>
</key>
<key keycode="60" name="AB09">
<text category="letter">ץ</text>
<text category="letter">&lt;</text>
</key>
<key keycode="61" name="AB10">
<text category="letter">.</text>
<keysym keyval="63">question</keysym>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">ज्ञ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">त्र</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">क्ष</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">श्र</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter">्‌</text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ि</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter"></text>
</key>
</symbols>

View File

@ -1,154 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="1246"></keysym>
<keysym keyval="1247"></keysym>
</key>
<key keycode="10" name="AE01">
<keysym keyval="1223"></keysym>
</key>
<key keycode="11" name="AE02">
<keysym keyval="1228"></keysym>
</key>
<key keycode="12" name="AE03">
<keysym keyval="1201"></keysym>
<keysym keyval="1191"></keysym>
</key>
<key keycode="13" name="AE04">
<keysym keyval="1203"></keysym>
<keysym keyval="1193"></keysym>
</key>
<key keycode="14" name="AE05">
<keysym keyval="1204"></keysym>
<keysym keyval="1194"></keysym>
</key>
<key keycode="15" name="AE06">
<keysym keyval="1205"></keysym>
<keysym keyval="1195"></keysym>
</key>
<key keycode="16" name="AE07">
<keysym keyval="1236"></keysym>
<keysym keyval="1196"></keysym>
</key>
<key keycode="17" name="AE08">
<keysym keyval="1237"></keysym>
<keysym keyval="1197"></keysym>
</key>
<key keycode="18" name="AE09">
<keysym keyval="1238"></keysym>
<keysym keyval="1198"></keysym>
</key>
<key keycode="19" name="AE10">
<keysym keyval="1244"></keysym>
<keysym keyval="1190"></keysym>
</key>
<key keycode="20" name="AE11">
<keysym keyval="1230"></keysym>
</key>
<key keycode="21" name="AE12">
<keysym keyval="1229"></keysym>
</key>
<key keycode="24" name="AD01">
<keysym keyval="1216"></keysym>
</key>
<key keycode="25" name="AD02">
<keysym keyval="1219"></keysym>
</key>
<key keycode="26" name="AD03">
<keysym keyval="1202"></keysym>
<keysym keyval="1192"></keysym>
</key>
<key keycode="27" name="AD04">
<keysym keyval="1213"></keysym>
</key>
<key keycode="28" name="AD05">
<keysym keyval="1206"></keysym>
</key>
<key keycode="29" name="AD06">
<keysym keyval="1245"></keysym>
</key>
<key keycode="30" name="AD07">
<keysym keyval="1221"></keysym>
</key>
<key keycode="31" name="AD08">
<keysym keyval="1222"></keysym>
</key>
<key keycode="32" name="AD09">
<keysym keyval="1239"></keysym>
</key>
<key keycode="33" name="AD10">
<keysym keyval="1214"></keysym>
</key>
<key keycode="34" name="AD11">
<keysym keyval="1233"></keysym>
</key>
<key keycode="35" name="AD12">
<keysym keyval="1243"></keysym>
</key>
<key keycode="38" name="AC01">
<keysym keyval="1217"></keysym>
</key>
<key keycode="39" name="AC02">
<keysym keyval="1220"></keysym>
</key>
<key keycode="40" name="AC03">
<keysym keyval="1212"></keysym>
</key>
<key keycode="41" name="AC04">
<keysym keyval="1226"></keysym>
</key>
<key keycode="42" name="AC05">
<keysym keyval="1207"></keysym>
</key>
<key keycode="43" name="AC06">
<keysym keyval="1208"></keysym>
</key>
<key keycode="44" name="AC07">
<keysym keyval="1231"></keysym>
</key>
<key keycode="45" name="AC08">
<keysym keyval="1225"></keysym>
</key>
<key keycode="46" name="AC09">
<keysym keyval="1240"></keysym>
</key>
<key keycode="47" name="AC10">
<keysym keyval="1242"></keysym>
</key>
<key keycode="48" name="AC11">
<keysym keyval="1209"></keysym>
</key>
<key keycode="52" name="AB01">
<keysym keyval="1218"></keysym>
<keysym keyval="1199"></keysym>
</key>
<key keycode="53" name="AB02">
<keysym keyval="1211"></keysym>
</key>
<key keycode="54" name="AB03">
<keysym keyval="1215"></keysym>
</key>
<key keycode="55" name="AB04">
<keysym keyval="1227"></keysym>
</key>
<key keycode="56" name="AB05">
<keysym keyval="1210"></keysym>
</key>
<key keycode="57" name="AB06">
<keysym keyval="1232"></keysym>
</key>
<key keycode="58" name="AB07">
<keysym keyval="1235"></keysym>
</key>
<key keycode="59" name="AB08">
<keysym keyval="1224"></keysym>
</key>
<key keycode="60" name="AB09">
<keysym keyval="1241"></keysym>
</key>
<key keycode="61" name="AB10">
<keysym keyval="1234"></keysym>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter">)</text>
</key>
<key keycode="10" name="AE01">
<text category="letter">&quot;</text>
<keysym keyval="33">exclam</keysym>
</key>
<key keycode="11" name="AE02">
<text category="letter">ә</text>
<text category="letter">Ә</text>
</key>
<key keycode="12" name="AE03">
<text category="letter">і</text>
<text category="letter">І</text>
</key>
<key keycode="13" name="AE04">
<text category="letter">ӊ</text>
<text category="letter">Ӊ</text>
</key>
<key keycode="14" name="AE05">
<text category="letter">ғ</text>
<text category="letter">Ғ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter">,</text>
<text category="letter">;</text>
</key>
<key keycode="16" name="AE07">
<text category="letter">.</text>
<text category="letter">:</text>
</key>
<key keycode="17" name="AE08">
<text category="letter">ү</text>
<text category="letter">Ү</text>
</key>
<key keycode="18" name="AE09">
<text category="letter">ұ</text>
<text category="letter">Ұ</text>
</key>
<key keycode="19" name="AE10">
<text category="letter">қ</text>
<text category="letter">Қ</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">ө</text>
<text category="letter">Ө</text>
</key>
<key keycode="21" name="AE12">
<text category="letter">һ</text>
<text category="letter">Һ</text>
</key>
<key keycode="24" name="AD01">
<text category="letter">й</text>
<text category="letter">Й</text>
</key>
<key keycode="25" name="AD02">
<text category="letter">ц</text>
<text category="letter">Ц</text>
</key>
<key keycode="26" name="AD03">
<text category="letter">у</text>
<text category="letter">У</text>
</key>
<key keycode="27" name="AD04">
<text category="letter">к</text>
<text category="letter">К</text>
</key>
<key keycode="28" name="AD05">
<text category="letter">е</text>
<text category="letter">Е</text>
</key>
<key keycode="29" name="AD06">
<text category="letter">н</text>
<text category="letter">Н</text>
</key>
<key keycode="30" name="AD07">
<text category="letter">г</text>
<text category="letter">Г</text>
</key>
<key keycode="31" name="AD08">
<text category="letter">ш</text>
<text category="letter">Ш</text>
</key>
<key keycode="32" name="AD09">
<text category="letter">щ</text>
<text category="letter">Щ</text>
</key>
<key keycode="33" name="AD10">
<text category="letter">з</text>
<text category="letter">З</text>
</key>
<key keycode="34" name="AD11">
<text category="letter">х</text>
<text category="letter">Х</text>
</key>
<key keycode="35" name="AD12">
<text category="letter">ъ</text>
<text category="letter">Ъ</text>
</key>
<key keycode="51" name="BKSL">
<keysym keyval="92">backslash</keysym>
<keysym keyval="124">bar</keysym>
</key>
<key keycode="38" name="AC01">
<text category="letter">ф</text>
<text category="letter">Ф</text>
</key>
<key keycode="39" name="AC02">
<text category="letter">ы</text>
<text category="letter">Ы</text>
</key>
<key keycode="40" name="AC03">
<text category="letter">в</text>
<text category="letter">В</text>
</key>
<key keycode="41" name="AC04">
<text category="letter">а</text>
<text category="letter">А</text>
</key>
<key keycode="42" name="AC05">
<text category="letter">п</text>
<text category="letter">П</text>
</key>
<key keycode="43" name="AC06">
<text category="letter">р</text>
<text category="letter">Р</text>
</key>
<key keycode="44" name="AC07">
<text category="letter">о</text>
<text category="letter">О</text>
</key>
<key keycode="45" name="AC08">
<text category="letter">л</text>
<text category="letter">Л</text>
</key>
<key keycode="46" name="AC09">
<text category="letter">д</text>
<text category="letter">Д</text>
</key>
<key keycode="47" name="AC10">
<text category="letter">ж</text>
<text category="letter">Ж</text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter">Э</text>
</key>
<key keycode="52" name="AB01">
<text category="letter">я</text>
<text category="letter">Я</text>
</key>
<key keycode="53" name="AB02">
<text category="letter">ч</text>
<text category="letter">Ч</text>
</key>
<key keycode="54" name="AB03">
<text category="letter">с</text>
<text category="letter">С</text>
</key>
<key keycode="55" name="AB04">
<text category="letter">м</text>
<text category="letter">М</text>
</key>
<key keycode="56" name="AB05">
<text category="letter">и</text>
<text category="letter">И</text>
</key>
<key keycode="57" name="AB06">
<text category="letter">т</text>
<text category="letter">Т</text>
</key>
<key keycode="58" name="AB07">
<text category="letter">ь</text>
<text category="letter">Ь</text>
</key>
<key keycode="59" name="AB08">
<text category="letter">б</text>
<text category="letter">Б</text>
</key>
<key keycode="60" name="AB09">
<text category="letter">ю</text>
<text category="letter">Ю</text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<keysym keyval="63">question</keysym>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter">@</text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">ಜ್ಞ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">ತ್ರ</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">ಕ್ಷ</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">ಶ್ರ</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter">]</text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter">|</text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ಿ</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text name="X" category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<keysym keyval="66">B</keysym>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<keysym keyval="63">question</keysym>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">ज्ञ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">त्र</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">क्ष</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">श्र</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter">ॿ</text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter">्‌</text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ि</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<keysym keyval="103">g</keysym>
<keysym keyval="71">G</keysym>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter"></text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter">ً</text>
</key>
<key keycode="10" name="AE01">
<text category="letter">۱</text>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<text category="letter">۲</text>
<text category="letter">@</text>
</key>
<key keycode="12" name="AE03">
<text category="letter">۳</text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter">۴</text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter">۵</text>
<text category="letter">%</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter">۶</text>
<text category="letter">^</text>
</key>
<key keycode="16" name="AE07">
<text category="letter">۷</text>
<text category="letter">&amp;</text>
</key>
<key keycode="17" name="AE08">
<text category="letter">۸</text>
<text category="letter">*</text>
</key>
<key keycode="18" name="AE09">
<text category="letter">۹</text>
<text category="letter">)</text>
</key>
<key keycode="19" name="AE10">
<text category="letter">۰</text>
<text category="letter">(</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter">ّ</text>
</key>
<key keycode="21" name="AE12">
<text category="letter">=</text>
<text category="letter">+</text>
</key>
<key keycode="24" name="AD01">
<text category="letter">ق</text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter">و</text>
<text category="letter">ؤ</text>
</key>
<key keycode="26" name="AD03">
<text category="letter">ع</text>
<text category="letter">ئ</text>
</key>
<key keycode="27" name="AD04">
<text category="letter">ر</text>
<text category="letter">ڑ</text>
</key>
<key keycode="28" name="AD05">
<text category="letter">ت</text>
<text category="letter">ٹ</text>
</key>
<key keycode="29" name="AD06">
<text category="letter">ے</text>
<text category="letter">؁</text>
</key>
<key keycode="30" name="AD07">
<text category="letter">ء</text>
<text category="letter">،</text>
</key>
<key keycode="31" name="AD08">
<text category="letter">ی</text>
<text category="letter">ۆ</text>
</key>
<key keycode="32" name="AD09">
<text category="letter">ہ</text>
<text category="letter">ۃ</text>
</key>
<key keycode="33" name="AD10">
<text category="letter">پ</text>
<text category="letter">إ</text>
</key>
<key keycode="34" name="AD11">
<text category="letter">]</text>
<text category="letter">ٰ</text>
</key>
<key keycode="35" name="AD12">
<text category="letter">[</text>
<text category="letter">ٰ</text>
</key>
<key keycode="51" name="BKSL">
<text category="letter">؎</text>
<text category="letter">أ</text>
</key>
<key keycode="38" name="AC01">
<text category="letter">ا</text>
<text category="letter">آ</text>
</key>
<key keycode="39" name="AC02">
<text category="letter">س</text>
<text category="letter">ش</text>
</key>
<key keycode="40" name="AC03">
<text category="letter">د</text>
<text category="letter">ڈ</text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ف</text>
<text category="letter">ُ</text>
</key>
<key keycode="42" name="AC05">
<text category="letter">گ</text>
<text category="letter">غ</text>
</key>
<key keycode="43" name="AC06">
<text category="letter">ھ</text>
<text category="letter">ح</text>
</key>
<key keycode="44" name="AC07">
<text category="letter">ج</text>
<text category="letter">ژ</text>
</key>
<key keycode="45" name="AC08">
<text category="letter">ک</text>
<text category="letter">خ</text>
</key>
<key keycode="46" name="AC09">
<text category="letter">ل</text>
<text category="letter">ؓ</text>
</key>
<key keycode="47" name="AC10">
<text category="letter">؛</text>
<text category="letter">:</text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter">&quot;</text>
</key>
<key keycode="52" name="AB01">
<text category="letter">ز</text>
<text category="letter">ذ</text>
</key>
<key keycode="53" name="AB02">
<text category="letter">ص</text>
<text category="letter">ض</text>
</key>
<key keycode="54" name="AB03">
<text category="letter">چ</text>
<text category="letter">ث</text>
</key>
<key keycode="55" name="AB04">
<text category="letter">ط</text>
<text category="letter">ظ</text>
</key>
<key keycode="56" name="AB05">
<text category="letter">ب</text>
<text category="letter">أ</text>
</key>
<key keycode="57" name="AB06">
<text category="letter">ن</text>
<text category="letter">ں</text>
</key>
<key keycode="58" name="AB07">
<text category="letter">م</text>
<text category="letter">ٔ</text>
</key>
<key keycode="59" name="AB08">
<text category="letter">،</text>
<text category="letter">ِ</text>
</key>
<key keycode="60" name="AB09">
<text category="letter">۔</text>
<text category="letter">َ</text>
</key>
<key keycode="61" name="AB10">
<text category="letter">/</text>
<text category="letter">؟</text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">ज्ञ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">त्र</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">क्ष</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">श्र</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter">्‌</text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ि</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter"></text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter">@</text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">്ര</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">%</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">^</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">ക്ഷ</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">*</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter">|</text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ി</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter">X</text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter">V</text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter">&gt;</text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<keysym keyval="63">question</keysym>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">ज्ञ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">त्र</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">क्ष</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">श्र</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ि</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter"></text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<keysym keyval="126">asciitilde</keysym>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<keysym keyval="64">at</keysym>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<keysym keyval="36">dollar</keysym>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<keysym keyval="37">percent</keysym>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<keysym keyval="94">asciicircum</keysym>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<keysym keyval="40">parenleft</keysym>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="20" name="AE11">
<keysym keyval="45">minus</keysym>
<keysym keyval="95">underscore</keysym>
</key>
<key keycode="21" name="AE12">
<keysym keyval="61">equal</keysym>
<keysym keyval="43">plus</keysym>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<keysym keyval="87">W</keysym>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<keysym keyval="69">E</keysym>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<keysym keyval="82">R</keysym>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<keysym keyval="84">T</keysym>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<keysym keyval="89">Y</keysym>
</key>
<key keycode="30" name="AD07">
<text category="letter">က</text>
<keysym keyval="85">U</keysym>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<keysym keyval="73">I</keysym>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<keysym keyval="124">bar</keysym>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<keysym keyval="75">K</keysym>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<keysym keyval="76">L</keysym>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<keysym keyval="58">colon</keysym>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<keysym keyval="66">B</keysym>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<keysym keyval="78">N</keysym>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<keysym keyval="77">M</keysym>
</key>
<key keycode="59" name="AB08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<keysym keyval="63">question</keysym>
</key>
</symbols>

View File

@ -1,132 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<symbols version="0.90">
<symbol label="*">asterisk</symbol>
<symbol label="+/=">show_symbols</symbol>
<symbol label="&#964;">Greek_tau</symbol>
<symbol label="å">aring</symbol>
<symbol label="ø">oslash</symbol>
<symbol label="æ">ae</symbol>
<symbol label="Å">Aring</symbol>
<symbol label="Ø">Oslash</symbol>
<symbol label="Æ">AE</symbol>
<symbol label="q">q</symbol>
<symbol label="Q">Q</symbol>
<symbol label="1">1</symbol>
<symbol label="~">asciitilde</symbol>
<symbol label="w">w</symbol>
<symbol label="W">W</symbol>
<symbol label="2">2</symbol>
<symbol label="`">quoteleft</symbol>
<symbol label="e">e</symbol>
<symbol label="E">E</symbol>
<symbol label="3">3</symbol>
<symbol label="|">bar</symbol>
<symbol label="r">r</symbol>
<symbol label="R">R</symbol>
<symbol label="4">4</symbol>
<symbol label="&#183;">U00B7</symbol>
<symbol label="t">t</symbol>
<symbol label="T">T</symbol>
<symbol label="5">5</symbol>
<symbol label="&#8730;">squareroot</symbol>
<symbol label="y">y</symbol>
<symbol label="Y">Y</symbol>
<symbol label="6">6</symbol>
<symbol label="&#960;">Greek_pi</symbol>
<symbol label="u">u</symbol>
<symbol label="U">U</symbol>
<symbol label="7">7</symbol>
<symbol label="&#247;">division</symbol>
<symbol label="i">i</symbol>
<symbol label="I">I</symbol>
<symbol label="8">8</symbol>
<symbol label="&#215;">multiply</symbol>
<symbol label="o">o</symbol>
<symbol label="O">O</symbol>
<symbol label="9">9</symbol>
<symbol label="&#182;">paragraph</symbol>
<symbol label="p">p</symbol>
<symbol label="P">P</symbol>
<symbol label="0">0</symbol>
<symbol label="&#9651;">U25B3</symbol>
<symbol keyval="229" label="&#229;">aring</symbol>
<symbol keyval="197" label="&#197;">Aring</symbol>
<symbol label="a">a</symbol>
<symbol label="A">A</symbol>
<symbol label="@">at</symbol>
<symbol label="&#169;">copyright</symbol>
<symbol label="s">s</symbol>
<symbol label="S">S</symbol>
<symbol label="#">numbersign</symbol>
<symbol label="&#174;">U00AE</symbol>
<symbol label="d">d</symbol>
<symbol label="D">D</symbol>
<symbol label="$">dollar</symbol>
<symbol label="&#163;">U00A3</symbol>
<symbol label="f">f</symbol>
<symbol label="F">F</symbol>
<symbol label="%">percent</symbol>
<symbol label="&#8364;">EuroSign</symbol>
<symbol label="g">g</symbol>
<symbol label="G">G</symbol>
<symbol label="&amp;">ampersand</symbol>
<symbol label="&#165;">U00A5</symbol>
<symbol label="h">h</symbol>
<symbol label="H">H</symbol>
<symbol label="-">minus</symbol>
<symbol label="^">asciicircum</symbol>
<symbol label="j">j</symbol>
<symbol label="J">J</symbol>
<symbol label="_">underscore</symbol>
<symbol label="&#176;">degree</symbol>
<symbol label="k">k</symbol>
<symbol label="K">K</symbol>
<symbol label="+">plus</symbol>
<symbol label="=">equal</symbol>
<symbol label="l">l</symbol>
<symbol label="L">L</symbol>
<symbol label="(">parenleft</symbol>
<symbol label="{">braceleft</symbol>
<symbol keyval="248" label="&#248;">oslash</symbol>
<symbol keyval="216" label="&#216;">Oslash</symbol>
<symbol label=")">parenright</symbol>
<symbol label="}">braceright</symbol>
<symbol keyval="230" label="&#230;">ae</symbol>
<symbol keyval="198" label="&#198;">AE</symbol>
<symbol keyval="65293" icon="key-enter">Return</symbol>
<symbol keyval="65505" icon="key-shift">Shift_L</symbol>
<symbol label="z">z</symbol>
<symbol label="Z">Z</symbol>
<symbol label=",">comma</symbol>
<symbol label="\">backslash</symbol>
<symbol label="x">x</symbol>
<symbol label="X">X</symbol>
<symbol label="&quot;">quotedbl</symbol>
<symbol label="/">slash</symbol>
<symbol label="c">c</symbol>
<symbol label="C">C</symbol>
<symbol label="'">quoteright</symbol>
<symbol label="&lt;">less</symbol>
<symbol label="v">v</symbol>
<symbol label="V">V</symbol>
<symbol label=":">colon</symbol>
<symbol label="&gt;">greater</symbol>
<symbol label="b">b</symbol>
<symbol label="B">B</symbol>
<symbol label=";">semicolon</symbol>
<symbol label="=">equal</symbol>
<symbol label="n">n</symbol>
<symbol label="N">N</symbol>
<symbol label="!">exclam</symbol>
<symbol label="[">bracketleft</symbol>
<symbol label="m">m</symbol>
<symbol label="M">M</symbol>
<symbol label="?">question</symbol>
<symbol label="]">bracketright</symbol>
<symbol label=".">period</symbol>
<symbol label="123">show_numbers</symbol>
<symbol label="ABC">show_letters</symbol>
<symbol label="&#9786;" icon="keyboard-mode-symbolic" tooltip="Setup">preferences</symbol>
<symbol label=" ">space</symbol>
<symbol keyval="65288" icon="edit-clear-symbolic">BackSpace</symbol>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter">@</text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">୍ର</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">ର୍</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">ଜ୍ଞ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">ତ୍ର</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">କ୍ଷ</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">ଶ୍ର</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter">\</text>
<text category="letter">|</text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ି</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter">J</text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter">z</text>
<text category="letter">Z</text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter">V</text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter"></text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<keysym keyval="126">asciitilde</keysym>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<keysym keyval="33">exclam</keysym>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<keysym keyval="64">at</keysym>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<keysym keyval="35">numbersign</keysym>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<keysym keyval="36">dollar</keysym>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<keysym keyval="37">percent</keysym>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<keysym keyval="94">asciicircum</keysym>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<keysym keyval="38">ampersand</keysym>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<keysym keyval="42">asterisk</keysym>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<keysym keyval="40">parenleft</keysym>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<keysym keyval="41">parenright</keysym>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter">_</text>
</key>
<key keycode="21" name="AE12">
<text category="letter">=</text>
<text category="letter">+</text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter">\</text>
<text category="letter"></text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ਿ</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter">?</text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter">Ё</text>
</key>
<key keycode="10" name="AE01">
<keysym keyval="49">1</keysym>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<keysym keyval="50">2</keysym>
<text category="letter">&quot;</text>
</key>
<key keycode="12" name="AE03">
<keysym keyval="51">3</keysym>
<text category="letter"></text>
</key>
<key keycode="13" name="AE04">
<keysym keyval="52">4</keysym>
<text category="letter">;</text>
</key>
<key keycode="14" name="AE05">
<keysym keyval="53">5</keysym>
<text category="letter">%</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<keysym keyval="54">6</keysym>
<text category="letter">:</text>
</key>
<key keycode="16" name="AE07">
<keysym keyval="55">7</keysym>
<text category="letter">?</text>
</key>
<key keycode="17" name="AE08">
<keysym keyval="56">8</keysym>
<text category="letter">*</text>
</key>
<key keycode="18" name="AE09">
<keysym keyval="57">9</keysym>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<keysym keyval="48">0</keysym>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<keysym keyval="45">minus</keysym>
<text category="letter">_</text>
</key>
<key keycode="21" name="AE12">
<keysym keyval="61">equal</keysym>
<text category="letter">+</text>
</key>
<key keycode="24" name="AD01">
<text category="letter">й</text>
<text category="letter">Й</text>
</key>
<key keycode="25" name="AD02">
<text category="letter">ц</text>
<text category="letter">Ц</text>
</key>
<key keycode="26" name="AD03">
<text category="letter">у</text>
<text category="letter">У</text>
</key>
<key keycode="27" name="AD04">
<text category="letter">к</text>
<text category="letter">К</text>
</key>
<key keycode="28" name="AD05">
<text category="letter">е</text>
<text category="letter">Е</text>
</key>
<key keycode="29" name="AD06">
<text category="letter">н</text>
<text category="letter">Н</text>
</key>
<key keycode="30" name="AD07">
<text category="letter">г</text>
<text category="letter">Г</text>
</key>
<key keycode="31" name="AD08">
<text category="letter">ш</text>
<text category="letter">Ш</text>
</key>
<key keycode="32" name="AD09">
<text category="letter">щ</text>
<text category="letter">Щ</text>
</key>
<key keycode="33" name="AD10">
<text category="letter">з</text>
<text category="letter">З</text>
</key>
<key keycode="34" name="AD11">
<text category="letter">х</text>
<text category="letter">Х</text>
</key>
<key keycode="35" name="AD12">
<text category="letter">ъ</text>
<text category="letter">Ъ</text>
</key>
<key keycode="51" name="BKSL">
<text category="letter">\</text>
<text category="letter">|</text>
</key>
<key keycode="38" name="AC01">
<text category="letter">ф</text>
<text category="letter">Ф</text>
</key>
<key keycode="39" name="AC02">
<text category="letter">ы</text>
<text category="letter">Ы</text>
</key>
<key keycode="40" name="AC03">
<text category="letter">в</text>
<text category="letter">В</text>
</key>
<key keycode="41" name="AC04">
<text category="letter">а</text>
<text category="letter">А</text>
</key>
<key keycode="42" name="AC05">
<text category="letter">п</text>
<text category="letter">П</text>
</key>
<key keycode="43" name="AC06">
<text category="letter">р</text>
<text category="letter">Р</text>
</key>
<key keycode="44" name="AC07">
<text category="letter">о</text>
<text category="letter">О</text>
</key>
<key keycode="45" name="AC08">
<text category="letter">л</text>
<text category="letter">Л</text>
</key>
<key keycode="46" name="AC09">
<text category="letter">д</text>
<text category="letter">Д</text>
</key>
<key keycode="47" name="AC10">
<text category="letter">ж</text>
<text category="letter">Ж</text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter">Э</text>
</key>
<key keycode="52" name="AB01">
<text category="letter">я</text>
<text category="letter">Я</text>
</key>
<key keycode="53" name="AB02">
<text category="letter">ч</text>
<text category="letter">Ч</text>
</key>
<key keycode="54" name="AB03">
<text category="letter">с</text>
<text category="letter">С</text>
</key>
<key keycode="55" name="AB04">
<text category="letter">м</text>
<text category="letter">М</text>
</key>
<key keycode="56" name="AB05">
<text category="letter">и</text>
<text category="letter">И</text>
</key>
<key keycode="57" name="AB06">
<text category="letter">т</text>
<text category="letter">Т</text>
</key>
<key keycode="58" name="AB07">
<text category="letter">ь</text>
<text category="letter">Ь</text>
</key>
<key keycode="59" name="AB08">
<text category="letter">б</text>
<text category="letter">Б</text>
</key>
<key keycode="60" name="AB09">
<text category="letter">ю</text>
<text category="letter">Ю</text>
</key>
<key keycode="61" name="AB10">
<text category="letter">.</text>
<text category="letter">,</text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">ज्ञ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">त्र</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">क्ष</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">श्र</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter">ॿ</text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter">्‌</text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ि</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter"></text>
</key>
</symbols>

View File

@ -1,22 +0,0 @@
<?xml version='1.0' encoding='ASCII' standalone='yes'?>
<symbols version="0.90">
<symbol label="1">1</symbol>
<symbol label="2">2</symbol>
<symbol label="3">3</symbol>
<symbol label="(">parenleft</symbol>
<symbol label=")">parenright</symbol>
<symbol label="4">4</symbol>
<symbol label="5">5</symbol>
<symbol label="6">6</symbol>
<symbol label="#">numbersign</symbol>
<symbol label="*">asterisk</symbol>
<symbol label="7">7</symbol>
<symbol label="8">8</symbol>
<symbol label="9">9</symbol>
<symbol label="+">plus</symbol>
<symbol label="-">minus</symbol>
<symbol label="0">0</symbol>
<symbol keyval="65293" icon="key-enter">Return</symbol>
<symbol label=" ">space</symbol>
<symbol keyval="65288" icon="edit-clear-symbolic">BackSpace</symbol>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter">1</text>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<text category="letter">2</text>
<text category="letter">@</text>
</key>
<key keycode="12" name="AE03">
<text category="letter">3</text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter">4</text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter">5</text>
<text category="letter">%</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter">6</text>
<text category="letter">^</text>
</key>
<key keycode="16" name="AE07">
<text category="letter">7</text>
<text category="letter">க்ஷ</text>
</key>
<key keycode="17" name="AE08">
<text category="letter">8</text>
<text category="letter">ஷ்ர</text>
</key>
<key keycode="18" name="AE09">
<text category="letter">9</text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter">0</text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<text category="letter">=</text>
<text category="letter">+</text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter">y</text>
<text category="letter">Y</text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter">i</text>
<text category="letter">I</text>
</key>
<key keycode="32" name="AD09">
<text category="letter">o</text>
<text category="letter">O</text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter">P</text>
</key>
<key keycode="34" name="AD11">
<text category="letter">[</text>
<text category="letter">{</text>
</key>
<key keycode="35" name="AD12">
<text category="letter">]</text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter">\</text>
<text category="letter">|</text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ி</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter">H</text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter">K</text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter">L</text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter">:</text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter">&quot;</text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter">x</text>
<text category="letter">X</text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter">M</text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter">&gt;</text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<keysym keyval="63">question</keysym>
</key>
</symbols>

View File

@ -1,194 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter"></text>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<text category="letter">@</text>
</key>
<key keycode="12" name="AE03">
<text category="letter"></text>
<text category="letter">#</text>
</key>
<key keycode="13" name="AE04">
<text category="letter"></text>
<text category="letter">$</text>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<text category="letter">జ్ఞ</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter"></text>
<text category="letter">త్ర</text>
</key>
<key keycode="16" name="AE07">
<text category="letter"></text>
<text category="letter">క్ష</text>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<text category="letter">శ్ర</text>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<text category="letter">-</text>
<text category="letter">_</text>
</key>
<key keycode="21" name="AE12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="34" name="AD11">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="35" name="AD12">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="51" name="BKSL">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ి</text>
<text category="letter"></text>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter"></text>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<text category="letter"></text>
</key>
<key keycode="59" name="AB08">
<text category="letter">,</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<text category="letter">.</text>
<text category="letter">&gt;</text>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<text category="letter">?</text>
</key>
</symbols>

View File

@ -1,192 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="95">underscore</keysym>
<keysym keyval="37">percent</keysym>
</key>
<key keycode="10" name="AE01">
<keysym keyval="3557">Thai_lakkhangyao</keysym>
<keysym keyval="43">plus</keysym>
</key>
<key keycode="11" name="AE02">
<keysym keyval="47">slash</keysym>
<keysym keyval="3569">Thai_leknung</keysym>
</key>
<key keycode="12" name="AE03">
<keysym keyval="45">minus</keysym>
<keysym keyval="3570">Thai_leksong</keysym>
</key>
<key keycode="13" name="AE04">
<keysym keyval="3520">Thai_phosamphao</keysym>
<keysym keyval="3571">Thai_leksam</keysym>
</key>
<key keycode="14" name="AE05">
<keysym keyval="3510">Thai_thothung</keysym>
<keysym keyval="3572">Thai_leksi</keysym>
</key>
<key keycode="15" name="AE06">
<keysym keyval="3544">Thai_sarau</keysym>
<keysym keyval="3545">Thai_sarauu</keysym>
</key>
<key keycode="16" name="AE07">
<keysym keyval="3542">Thai_saraue</keysym>
<keysym keyval="3551">Thai_baht</keysym>
</key>
<key keycode="17" name="AE08">
<keysym keyval="3492">Thai_khokhwai</keysym>
<keysym keyval="3573">Thai_lekha</keysym>
</key>
<key keycode="18" name="AE09">
<keysym keyval="3509">Thai_totao</keysym>
<keysym keyval="3574">Thai_lekhok</keysym>
</key>
<key keycode="19" name="AE10">
<keysym keyval="3496">Thai_chochan</keysym>
<keysym keyval="3575">Thai_lekchet</keysym>
</key>
<key keycode="20" name="AE11">
<keysym keyval="3490">Thai_khokhai</keysym>
<keysym keyval="3576">Thai_lekpaet</keysym>
</key>
<key keycode="21" name="AE12">
<keysym keyval="3498">Thai_chochang</keysym>
<keysym keyval="3577">Thai_lekkao</keysym>
</key>
<key keycode="24" name="AD01">
<keysym keyval="3558">Thai_maiyamok</keysym>
<keysym keyval="3568">Thai_leksun</keysym>
</key>
<key keycode="25" name="AD02">
<keysym keyval="3556">Thai_saraaimaimalai</keysym>
<keysym keyval="34">quotedbl</keysym>
</key>
<key keycode="26" name="AD03">
<keysym keyval="3539">Thai_saraam</keysym>
<keysym keyval="3502">Thai_dochada</keysym>
</key>
<key keycode="27" name="AD04">
<keysym keyval="3518">Thai_phophan</keysym>
<keysym keyval="3505">Thai_thonangmontho</keysym>
</key>
<key keycode="28" name="AD05">
<keysym keyval="3536">Thai_saraa</keysym>
<keysym keyval="3512">Thai_thothong</keysym>
</key>
<key keycode="29" name="AD06">
<keysym keyval="3537">Thai_maihanakat</keysym>
<keysym keyval="3565">Thai_nikhahit</keysym>
</key>
<key keycode="30" name="AD07">
<keysym keyval="3541">Thai_saraii</keysym>
<keysym keyval="3562">Thai_maitri</keysym>
</key>
<key keycode="31" name="AD08">
<keysym keyval="3523">Thai_rorua</keysym>
<keysym keyval="3507">Thai_nonen</keysym>
</key>
<key keycode="32" name="AD09">
<keysym keyval="3513">Thai_nonu</keysym>
<keysym keyval="3535">Thai_paiyannoi</keysym>
</key>
<key keycode="33" name="AD10">
<keysym keyval="3522">Thai_yoyak</keysym>
<keysym keyval="3501">Thai_yoying</keysym>
</key>
<key keycode="34" name="AD11">
<keysym keyval="3514">Thai_bobaimai</keysym>
<keysym keyval="3504">Thai_thothan</keysym>
</key>
<key keycode="35" name="AD12">
<keysym keyval="3525">Thai_loling</keysym>
<keysym keyval="44">comma</keysym>
</key>
<key keycode="51" name="BKSL">
<keysym keyval="3491">Thai_khokhuat</keysym>
<keysym keyval="3493">Thai_khokhon</keysym>
</key>
<key keycode="38" name="AC01">
<keysym keyval="3519">Thai_fofan</keysym>
<keysym keyval="3524">Thai_ru</keysym>
</key>
<key keycode="39" name="AC02">
<keysym keyval="3531">Thai_hohip</keysym>
<keysym keyval="3494">Thai_khorakhang</keysym>
</key>
<key keycode="40" name="AC03">
<keysym keyval="3489">Thai_kokai</keysym>
<keysym keyval="3503">Thai_topatak</keysym>
</key>
<key keycode="41" name="AC04">
<keysym keyval="3508">Thai_dodek</keysym>
<keysym keyval="3554">Thai_sarao</keysym>
</key>
<key keycode="42" name="AC05">
<keysym keyval="3552">Thai_sarae</keysym>
<keysym keyval="3500">Thai_chochoe</keysym>
</key>
<key keycode="43" name="AC06">
<keysym keyval="3561">Thai_maitho</keysym>
<keysym keyval="3559">Thai_maitaikhu</keysym>
</key>
<key keycode="44" name="AC07">
<keysym keyval="3560">Thai_maiek</keysym>
<keysym keyval="3563">Thai_maichattawa</keysym>
</key>
<key keycode="45" name="AC08">
<keysym keyval="3538">Thai_saraaa</keysym>
<keysym keyval="3529">Thai_sorusi</keysym>
</key>
<key keycode="46" name="AC09">
<keysym keyval="3530">Thai_sosua</keysym>
<keysym keyval="3528">Thai_sosala</keysym>
</key>
<key keycode="47" name="AC10">
<keysym keyval="3527">Thai_wowaen</keysym>
<keysym keyval="3499">Thai_soso</keysym>
</key>
<key keycode="48" name="AC11">
<keysym keyval="3495">Thai_ngongu</keysym>
<keysym keyval="46">period</keysym>
</key>
<key keycode="52" name="AB01">
<keysym keyval="3516">Thai_phophung</keysym>
<keysym keyval="40">parenleft</keysym>
</key>
<key keycode="53" name="AB02">
<keysym keyval="3515">Thai_popla</keysym>
<keysym keyval="41">parenright</keysym>
</key>
<key keycode="54" name="AB03">
<keysym keyval="3553">Thai_saraae</keysym>
<keysym keyval="3497">Thai_choching</keysym>
</key>
<key keycode="55" name="AB04">
<keysym keyval="3533">Thai_oang</keysym>
<keysym keyval="3534">Thai_honokhuk</keysym>
</key>
<key keycode="56" name="AB05">
<keysym keyval="3540">Thai_sarai</keysym>
<keysym keyval="3546">Thai_phinthu</keysym>
</key>
<key keycode="57" name="AB06">
<keysym keyval="3543">Thai_sarauee</keysym>
<keysym keyval="3564">Thai_thanthakhat</keysym>
</key>
<key keycode="58" name="AB07">
<keysym keyval="3511">Thai_thothahan</keysym>
<keysym keyval="63">question</keysym>
</key>
<key keycode="59" name="AB08">
<keysym keyval="3521">Thai_moma</keysym>
<keysym keyval="3506">Thai_thophuthao</keysym>
</key>
<key keycode="60" name="AB09">
<keysym keyval="3555">Thai_saraaimaimuan</keysym>
<keysym keyval="3532">Thai_lochula</keysym>
</key>
<key keycode="61" name="AB10">
<keysym keyval="3517">Thai_fofa</keysym>
<keysym keyval="3526">Thai_lu</keysym>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<text category="letter">Ґ</text>
</key>
<key keycode="10" name="AE01">
<keysym keyval="49">1</keysym>
<text category="letter">!</text>
</key>
<key keycode="11" name="AE02">
<keysym keyval="50">2</keysym>
<text category="letter">&quot;</text>
</key>
<key keycode="12" name="AE03">
<keysym keyval="51">3</keysym>
<text category="letter"></text>
</key>
<key keycode="13" name="AE04">
<keysym keyval="52">4</keysym>
<text category="letter">;</text>
</key>
<key keycode="14" name="AE05">
<keysym keyval="53">5</keysym>
<text category="letter">%</text>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<keysym keyval="54">6</keysym>
<text category="letter">:</text>
</key>
<key keycode="16" name="AE07">
<keysym keyval="55">7</keysym>
<text category="letter">?</text>
</key>
<key keycode="17" name="AE08">
<keysym keyval="56">8</keysym>
<text category="letter">*</text>
</key>
<key keycode="18" name="AE09">
<keysym keyval="57">9</keysym>
<text category="letter">(</text>
</key>
<key keycode="19" name="AE10">
<keysym keyval="48">0</keysym>
<text category="letter">)</text>
</key>
<key keycode="20" name="AE11">
<keysym keyval="45">minus</keysym>
<text category="letter">_</text>
</key>
<key keycode="21" name="AE12">
<keysym keyval="61">equal</keysym>
<text category="letter">+</text>
</key>
<key keycode="24" name="AD01">
<text category="letter">й</text>
<text category="letter">Й</text>
</key>
<key keycode="25" name="AD02">
<text category="letter">ц</text>
<text category="letter">Ц</text>
</key>
<key keycode="26" name="AD03">
<text category="letter">у</text>
<text category="letter">У</text>
</key>
<key keycode="27" name="AD04">
<text category="letter">к</text>
<text category="letter">К</text>
</key>
<key keycode="28" name="AD05">
<text category="letter">е</text>
<text category="letter">Е</text>
</key>
<key keycode="29" name="AD06">
<text category="letter">н</text>
<text category="letter">Н</text>
</key>
<key keycode="30" name="AD07">
<text category="letter">г</text>
<text category="letter">Г</text>
</key>
<key keycode="31" name="AD08">
<text category="letter">ш</text>
<text category="letter">Ш</text>
</key>
<key keycode="32" name="AD09">
<text category="letter">щ</text>
<text category="letter">Щ</text>
</key>
<key keycode="33" name="AD10">
<text category="letter">з</text>
<text category="letter">З</text>
</key>
<key keycode="34" name="AD11">
<text category="letter">х</text>
<text category="letter">Х</text>
</key>
<key keycode="35" name="AD12">
<text category="letter">ї</text>
<text category="letter">Ї</text>
</key>
<key keycode="51" name="BKSL">
<text category="letter">\</text>
<text category="letter">|</text>
</key>
<key keycode="38" name="AC01">
<text category="letter">ф</text>
<text category="letter">Ф</text>
</key>
<key keycode="39" name="AC02">
<text category="letter">і</text>
<text category="letter">І</text>
</key>
<key keycode="40" name="AC03">
<text category="letter">в</text>
<text category="letter">В</text>
</key>
<key keycode="41" name="AC04">
<text category="letter">а</text>
<text category="letter">А</text>
</key>
<key keycode="42" name="AC05">
<text category="letter">п</text>
<text category="letter">П</text>
</key>
<key keycode="43" name="AC06">
<text category="letter">р</text>
<text category="letter">Р</text>
</key>
<key keycode="44" name="AC07">
<text category="letter">о</text>
<text category="letter">О</text>
</key>
<key keycode="45" name="AC08">
<text category="letter">л</text>
<text category="letter">Л</text>
</key>
<key keycode="46" name="AC09">
<text category="letter">д</text>
<text category="letter">Д</text>
</key>
<key keycode="47" name="AC10">
<text category="letter">ж</text>
<text category="letter">Ж</text>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<text category="letter">Є</text>
</key>
<key keycode="52" name="AB01">
<text category="letter">я</text>
<text category="letter">Я</text>
</key>
<key keycode="53" name="AB02">
<text category="letter">ч</text>
<text category="letter">Ч</text>
</key>
<key keycode="54" name="AB03">
<text category="letter">с</text>
<text category="letter">С</text>
</key>
<key keycode="55" name="AB04">
<text category="letter">м</text>
<text category="letter">М</text>
</key>
<key keycode="56" name="AB05">
<text category="letter">и</text>
<text category="letter">И</text>
</key>
<key keycode="57" name="AB06">
<text category="letter">т</text>
<text category="letter">Т</text>
</key>
<key keycode="58" name="AB07">
<text category="letter">ь</text>
<text category="letter">Ь</text>
</key>
<key keycode="59" name="AB08">
<text category="letter">б</text>
<text category="letter">Б</text>
</key>
<key keycode="60" name="AB09">
<text category="letter">ю</text>
<text category="letter">Ю</text>
</key>
<key keycode="61" name="AB10">
<text category="letter">.</text>
<text category="letter">,</text>
</key>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<keysym keyval="126">asciitilde</keysym>
</key>
<key keycode="10" name="AE01">
<keysym keyval="49">1</keysym>
<keysym keyval="33">exclam</keysym>
</key>
<key keycode="11" name="AE02">
<keysym keyval="50">2</keysym>
<keysym keyval="64">at</keysym>
</key>
<key keycode="12" name="AE03">
<keysym keyval="51">3</keysym>
<keysym keyval="35">numbersign</keysym>
</key>
<key keycode="13" name="AE04">
<keysym keyval="52">4</keysym>
<keysym keyval="36">dollar</keysym>
</key>
<key keycode="14" name="AE05">
<keysym keyval="53">5</keysym>
<keysym keyval="37">percent</keysym>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<keysym keyval="54">6</keysym>
<keysym keyval="94">asciicircum</keysym>
</key>
<key keycode="16" name="AE07">
<keysym keyval="55">7</keysym>
<keysym keyval="38">ampersand</keysym>
</key>
<key keycode="17" name="AE08">
<keysym keyval="56">8</keysym>
<keysym keyval="42">asterisk</keysym>
</key>
<key keycode="18" name="AE09">
<keysym keyval="57">9</keysym>
<keysym keyval="40">parenleft</keysym>
</key>
<key keycode="19" name="AE10">
<keysym keyval="48">0</keysym>
<keysym keyval="41">parenright</keysym>
</key>
<key keycode="20" name="AE11">
<keysym keyval="45">minus</keysym>
<text category="letter"></text>
</key>
<key keycode="21" name="AE12">
<keysym keyval="61">equal</keysym>
<keysym keyval="43">plus</keysym>
</key>
<key keycode="24" name="AD01">
<text category="letter">چ</text>
<text category="letter">چ</text>
</key>
<key keycode="25" name="AD02">
<text category="letter">ۋ</text>
<text category="letter">ۋ</text>
</key>
<key keycode="26" name="AD03">
<text category="letter">ې</text>
<text category="letter">ې</text>
</key>
<key keycode="27" name="AD04">
<text category="letter">ر</text>
<text category="letter">ر</text>
</key>
<key keycode="28" name="AD05">
<text category="letter">ت</text>
<text category="letter">ت</text>
</key>
<key keycode="29" name="AD06">
<text category="letter">ي</text>
<text category="letter">ي</text>
</key>
<key keycode="30" name="AD07">
<text category="letter">ۇ</text>
<text category="letter">ۇ</text>
</key>
<key keycode="31" name="AD08">
<text category="letter">ڭ</text>
<text category="letter">ڭ</text>
</key>
<key keycode="32" name="AD09">
<text category="letter">و</text>
<text category="letter">و</text>
</key>
<key keycode="33" name="AD10">
<text category="letter">پ</text>
<text category="letter">پ</text>
</key>
<key keycode="34" name="AD11">
<keysym keyval="91">bracketleft</keysym>
<text category="letter">«</text>
</key>
<key keycode="35" name="AD12">
<keysym keyval="93">bracketright</keysym>
<text category="letter">»</text>
</key>
<key keycode="51" name="BKSL">
<keysym keyval="92">backslash</keysym>
<keysym keyval="124">bar</keysym>
</key>
<key keycode="38" name="AC01">
<text category="letter">ھ</text>
<text category="letter">ھ</text>
</key>
<key keycode="39" name="AC02">
<text category="letter">س</text>
<text category="letter">س</text>
</key>
<key keycode="40" name="AC03">
<text category="letter">د</text>
<text category="letter">ژ</text>
</key>
<key keycode="41" name="AC04">
<text category="letter">ا</text>
<text category="letter">ف</text>
</key>
<key keycode="42" name="AC05">
<text category="letter">ە</text>
<text category="letter">گ</text>
</key>
<key keycode="43" name="AC06">
<text category="letter">ى</text>
<text category="letter">خ</text>
</key>
<key keycode="44" name="AC07">
<text category="letter">ق</text>
<text category="letter">ج</text>
</key>
<key keycode="45" name="AC08">
<text category="letter">ك</text>
<text category="letter">ۆ</text>
</key>
<key keycode="46" name="AC09">
<text category="letter">ل</text>
<text category="letter">ل</text>
</key>
<key keycode="47" name="AC10">
<text category="letter">؛</text>
<keysym keyval="58">colon</keysym>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<keysym keyval="34">quotedbl</keysym>
</key>
<key keycode="52" name="AB01">
<text category="letter">ز</text>
<text category="letter">ز</text>
</key>
<key keycode="53" name="AB02">
<text category="letter">ش</text>
<text category="letter">ش</text>
</key>
<key keycode="54" name="AB03">
<text category="letter">غ</text>
<text category="letter">غ</text>
</key>
<key keycode="55" name="AB04">
<text category="letter">ۈ</text>
<text category="letter">ۈ</text>
</key>
<key keycode="56" name="AB05">
<text category="letter">ب</text>
<text category="letter">ب</text>
</key>
<key keycode="57" name="AB06">
<text category="letter">ن</text>
<text category="letter">ن</text>
</key>
<key keycode="58" name="AB07">
<text category="letter">م</text>
<text category="letter">م</text>
</key>
<key keycode="59" name="AB08">
<text category="letter">،</text>
<text category="letter"></text>
</key>
<key keycode="60" name="AB09">
<keysym keyval="46">period</keysym>
<text category="letter"></text>
</key>
<key keycode="61" name="AB10">
<text category="letter">ئ</text>
<text category="letter">؟</text>
</key>
</symbols>

View File

@ -1,118 +0,0 @@
<?xml version='1.0' encoding='ASCII' standalone='yes'?>
<symbols version="0.90">
<symbol label="*">asterisk</symbol>
<symbol label="+/=">show_symbols</symbol>
<symbol label="q">q</symbol>
<symbol label="Q">Q</symbol>
<symbol label="1">1</symbol>
<symbol label="~">asciitilde</symbol>
<symbol label="w">w</symbol>
<symbol label="W">W</symbol>
<symbol label="2">2</symbol>
<symbol label="`">quoteleft</symbol>
<symbol label="e">e</symbol>
<symbol label="E">E</symbol>
<symbol label="3">3</symbol>
<symbol label="|">bar</symbol>
<symbol label="r">r</symbol>
<symbol label="R">R</symbol>
<symbol label="4">4</symbol>
<symbol label="&#183;">U00B7</symbol>
<symbol label="t">t</symbol>
<symbol label="T">T</symbol>
<symbol label="5">5</symbol>
<symbol label="&#8730;">squareroot</symbol>
<symbol label="y">y</symbol>
<symbol label="Y">Y</symbol>
<symbol label="6">6</symbol>
<symbol label="&#960;">Greek_pi</symbol>
<symbol label="u">u</symbol>
<symbol label="U">U</symbol>
<symbol label="7">7</symbol>
<symbol label="&#247;">division</symbol>
<symbol label="i">i</symbol>
<symbol label="I">I</symbol>
<symbol label="8">8</symbol>
<symbol label="&#215;">multiply</symbol>
<symbol label="o">o</symbol>
<symbol label="O">O</symbol>
<symbol label="9">9</symbol>
<symbol label="&#182;">paragraph</symbol>
<symbol label="p">p</symbol>
<symbol label="P">P</symbol>
<symbol label="0">0</symbol>
<symbol label="&#964;">Greek_tau</symbol>
<symbol label="a">a</symbol>
<symbol label="A">A</symbol>
<symbol label="@">at</symbol>
<symbol label="&#169;">copyright</symbol>
<symbol label="s">s</symbol>
<symbol label="S">S</symbol>
<symbol label="#">numbersign</symbol>
<symbol label="&#174;">U00AE</symbol>
<symbol label="d">d</symbol>
<symbol label="D">D</symbol>
<symbol label="$">dollar</symbol>
<symbol label="&#163;">U00A3</symbol>
<symbol label="f">f</symbol>
<symbol label="F">F</symbol>
<symbol label="%">percent</symbol>
<symbol label="&#8364;">EuroSign</symbol>
<symbol label="g">g</symbol>
<symbol label="G">G</symbol>
<symbol label="&amp;">ampersand</symbol>
<symbol label="&#165;">U00A5</symbol>
<symbol label="h">h</symbol>
<symbol label="H">H</symbol>
<symbol label="-">minus</symbol>
<symbol label="^">asciicircum</symbol>
<symbol label="j">j</symbol>
<symbol label="J">J</symbol>
<symbol label="_">underscore</symbol>
<symbol label="&#176;">degree</symbol>
<symbol label="k">k</symbol>
<symbol label="K">K</symbol>
<symbol label="+">plus</symbol>
<symbol label="=">equal</symbol>
<symbol label="l">l</symbol>
<symbol label="L">L</symbol>
<symbol label="(">parenleft</symbol>
<symbol label="{">braceleft</symbol>
<symbol label=")">parenright</symbol>
<symbol label="}">braceright</symbol>
<symbol keyval="65293" icon="key-enter">Return</symbol>
<symbol keyval="65505" icon="key-shift">Shift_L</symbol>
<symbol label="z">z</symbol>
<symbol label="Z">Z</symbol>
<symbol label=",">comma</symbol>
<symbol label="\">backslash</symbol>
<symbol label="x">x</symbol>
<symbol label="X">X</symbol>
<symbol label="&quot;">quotedbl</symbol>
<symbol label="/">slash</symbol>
<symbol label="c">c</symbol>
<symbol label="C">C</symbol>
<symbol label="'">quoteright</symbol>
<symbol label="&lt;">less</symbol>
<symbol label="v">v</symbol>
<symbol label="V">V</symbol>
<symbol label=":">colon</symbol>
<symbol label="&gt;">greater</symbol>
<symbol label="b">b</symbol>
<symbol label="B">B</symbol>
<symbol label=";">semicolon</symbol>
<symbol label="n">n</symbol>
<symbol label="N">N</symbol>
<symbol label="!">exclam</symbol>
<symbol label="[">bracketleft</symbol>
<symbol label="m">m</symbol>
<symbol label="M">M</symbol>
<symbol label="?">question</symbol>
<symbol label="]">bracketright</symbol>
<symbol label=".">period</symbol>
<symbol label="123">show_numbers</symbol>
<symbol label="ABC">show_letters</symbol>
<symbol label="&#9786;" icon="keyboard-mode-symbolic" tooltip="Setup">preferences</symbol>
<symbol label=" ">space</symbol>
<symbol keyval="65288" icon="edit-clear-symbolic">BackSpace</symbol>
</symbols>

View File

@ -1,193 +0,0 @@
<?xml version="1.0"?>
<symbols version="0.90">
<include>us</include>
<key keycode="49" name="TLDE">
<keysym keyval="96">quoteleft</keysym>
<keysym keyval="126">asciitilde</keysym>
</key>
<key keycode="10" name="AE01">
<text category="letter"></text>
<keysym keyval="33">exclam</keysym>
</key>
<key keycode="11" name="AE02">
<text category="letter"></text>
<keysym keyval="64">at</keysym>
</key>
<key keycode="12" name="AE03">
<text category="letter">ˇ</text>
<keysym keyval="35">numbersign</keysym>
</key>
<key keycode="13" name="AE04">
<text category="letter">ˋ</text>
<keysym keyval="36">dollar</keysym>
</key>
<key keycode="14" name="AE05">
<text category="letter"></text>
<keysym keyval="37">percent</keysym>
<keysym keyval="8364">EuroSign</keysym>
</key>
<key keycode="15" name="AE06">
<text category="letter">ˊ</text>
<keysym keyval="94">asciicircum</keysym>
</key>
<key keycode="16" name="AE07">
<text category="letter">˙</text>
<keysym keyval="38">ampersand</keysym>
</key>
<key keycode="17" name="AE08">
<text category="letter"></text>
<keysym keyval="42">asterisk</keysym>
</key>
<key keycode="18" name="AE09">
<text category="letter"></text>
<keysym keyval="40">parenleft</keysym>
</key>
<key keycode="19" name="AE10">
<text category="letter"></text>
<keysym keyval="41">parenright</keysym>
</key>
<key keycode="20" name="AE11">
<text category="letter"></text>
<keysym keyval="95">underscore</keysym>
</key>
<key keycode="21" name="AE12">
<keysym keyval="61">equal</keysym>
<keysym keyval="43">plus</keysym>
</key>
<key keycode="24" name="AD01">
<text category="letter"></text>
<keysym keyval="81">Q</keysym>
</key>
<key keycode="25" name="AD02">
<text category="letter"></text>
<keysym keyval="87">W</keysym>
</key>
<key keycode="26" name="AD03">
<text category="letter"></text>
<keysym keyval="69">E</keysym>
</key>
<key keycode="27" name="AD04">
<text category="letter"></text>
<keysym keyval="82">R</keysym>
</key>
<key keycode="28" name="AD05">
<text category="letter"></text>
<keysym keyval="84">T</keysym>
</key>
<key keycode="29" name="AD06">
<text category="letter"></text>
<keysym keyval="89">Y</keysym>
</key>
<key keycode="30" name="AD07">
<text category="letter"></text>
<keysym keyval="85">U</keysym>
</key>
<key keycode="31" name="AD08">
<text category="letter"></text>
<keysym keyval="73">I</keysym>
</key>
<key keycode="32" name="AD09">
<text category="letter"></text>
<keysym keyval="79">O</keysym>
</key>
<key keycode="33" name="AD10">
<text category="letter"></text>
<keysym keyval="80">P</keysym>
</key>
<key keycode="34" name="AD11">
<keysym keyval="91">bracketleft</keysym>
<keysym keyval="123">braceleft</keysym>
</key>
<key keycode="35" name="AD12">
<keysym keyval="93">bracketright</keysym>
<keysym keyval="125">braceright</keysym>
</key>
<key keycode="51" name="BKSL">
<keysym keyval="92">backslash</keysym>
<keysym keyval="124">bar</keysym>
</key>
<key keycode="38" name="AC01">
<text category="letter"></text>
<keysym keyval="65">A</keysym>
</key>
<key keycode="39" name="AC02">
<text category="letter"></text>
<keysym keyval="83">S</keysym>
</key>
<key keycode="40" name="AC03">
<text category="letter"></text>
<keysym keyval="68">D</keysym>
</key>
<key keycode="41" name="AC04">
<text category="letter"></text>
<keysym keyval="70">F</keysym>
</key>
<key keycode="42" name="AC05">
<text category="letter"></text>
<keysym keyval="71">G</keysym>
</key>
<key keycode="43" name="AC06">
<text category="letter"></text>
<keysym keyval="72">H</keysym>
</key>
<key keycode="44" name="AC07">
<text category="letter"></text>
<keysym keyval="74">J</keysym>
</key>
<key keycode="45" name="AC08">
<text category="letter"></text>
<keysym keyval="75">K</keysym>
</key>
<key keycode="46" name="AC09">
<text category="letter"></text>
<keysym keyval="76">L</keysym>
</key>
<key keycode="47" name="AC10">
<text category="letter"></text>
<keysym keyval="58">colon</keysym>
</key>
<key keycode="48" name="AC11">
<keysym keyval="39">quoteright</keysym>
<keysym keyval="34">quotedbl</keysym>
</key>
<key keycode="52" name="AB01">
<text category="letter"></text>
<keysym keyval="90">Z</keysym>
</key>
<key keycode="53" name="AB02">
<text category="letter"></text>
<keysym keyval="88">X</keysym>
</key>
<key keycode="54" name="AB03">
<text category="letter"></text>
<keysym keyval="67">C</keysym>
</key>
<key keycode="55" name="AB04">
<text category="letter"></text>
<keysym keyval="86">V</keysym>
</key>
<key keycode="56" name="AB05">
<text category="letter"></text>
<keysym keyval="66">B</keysym>
</key>
<key keycode="57" name="AB06">
<text category="letter"></text>
<keysym keyval="78">N</keysym>
</key>
<key keycode="58" name="AB07">
<text category="letter"></text>
<keysym keyval="77">M</keysym>
</key>
<key keycode="59" name="AB08">
<text category="letter"></text>
<keysym keyval="60">less</keysym>
</key>
<key keycode="60" name="AB09">
<text category="letter"></text>
<keysym keyval="62">greater</keysym>
</key>
<key keycode="61" name="AB10">
<text category="letter"></text>
<keysym keyval="63">question</keysym>
</key>
</symbols>

View File

@ -0,0 +1,204 @@
---
outlines:
default: { width: 35.33, height: 46 }
action: { width: 59, height: 46 }
altline: { width: 52.67, height: 46 }
wide: { width: 59, height: 46 }
spaceline: { width: 140, height: 46 }
special: { width: 44, height: 46 }
small: { width: 59, height: 22 }
views:
base:
- "Ctrl Alt ↑ ↓ ← →"
- "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 show_actions Return"
upper:
- "Ctrl Alt PgUp PgDn Home End"
- "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 show_actions Return"
numbers:
- "Ctrl Alt ↑ ↓ ← →"
- "1 2 3 4 5 6 7 8 9 0"
- "* # $ / & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space period Return"
symbols:
- "Ctrl Alt ↑ ↓ ← →"
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° @ { }"
- "show_numbers_from_symbols \\ % < > = [ ] BackSpace"
- "show_letters preferences space period Return"
actions:
- "Ctrl Alt PgUp PgDn Home End"
- "F1 F2 F3 F4 F5 F6"
- "F7 F8 F9 F10 F11 F12"
- "Esc Tab Pause Insert Up Del"
- "show_letters Menu Break Left Down Right"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
action: erase
preferences:
action: "show_prefs"
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "wide"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "τ=\\"
show_actions:
action:
set_view: "actions"
outline: "altline"
label: ">_"
period:
outline: "altline"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"
F1:
outline: "action"
keysym: "F1"
F2:
outline: "action"
keysym: "F2"
F3:
outline: "action"
keysym: "F3"
F4:
outline: "action"
keysym: "F4"
F5:
outline: "action"
keysym: "F5"
F6:
outline: "action"
keysym: "F6"
F7:
outline: "action"
keysym: "F7"
F8:
outline: "action"
keysym: "F8"
F9:
outline: "action"
keysym: "F9"
F10:
outline: "action"
keysym: "F10"
F11:
outline: "action"
keysym: "F11"
F12:
outline: "action"
keysym: "F12"
Esc:
outline: "action"
keysym: "Escape"
Tab:
outline: "action"
keysym: "Tab"
Del:
outline: "action"
keysym: "Delete"
Insert:
outline: "action"
keysym: "Insert"
Menu:
outline: "action"
keysym: "Menu"
Pause:
outline: "action"
keysym: "Pause"
Menu:
outline: "action"
keysym: "Menu"
Break:
outline: "action"
keysym: "Break"
Home:
outline: "small"
keysym: "Home"
End:
outline: "small"
keysym: "End"
PgUp:
outline: "small"
keysym: "Page_Up"
PgDn:
outline: "small"
keysym: "Page_Down"
"↑":
outline: "small"
keysym: "Up"
"↓":
outline: "small"
keysym: "Down"
"←":
outline: "small"
keysym: "Left"
"→":
outline: "small"
keysym: "Right"
Up:
label: "↑"
outline: "action"
keysym: "Up"
Left:
label: "←"
outline: "action"
keysym: "Left"
Down:
label: "↓"
outline: "action"
keysym: "Down"
Right:
label: "→"
outline: "action"
keysym: "Right"
Ctrl:
modifier: "Control"
outline: "small"
label: "Ctrl"
Alt:
modifier: "Alt"
outline: "small"
label: "Alt"

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

@ -0,0 +1,94 @@
---
outlines:
default: { width: 32, height: 52 }
altline: { width: 32, height: 52 }
wide: { width: 57, height: 52 }
narrow: { width: 26, height: 52 }
spaceline: { width: 107, height: 52 }
fill: { width: 159, height: 52 }
special: { width: 42, height: 52 }
views:
base:
- "й ц у к е н г ш щ з х"
- і в а п р о л д ж є"
- "Shift_L я ч с м и т ь б ю BackSpace"
- "show_numbers preferences ґ space ї period Return"
upper:
- "Й Ц У К Е Н Г Ш Щ З Х"
- І В А П Р О Л Д Ж Є"
- "Shift_L Я Ч С М И Т Ь Б Ю BackSpace"
- "show_numbers preferences Ґ space Ї comma Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # $ % & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space_fill period Return"
symbols:
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° * { }"
- "show_numbers_from_symbols \\ / < > = [ ] BackSpace"
- "show_letters preferences space_fill 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"
action: erase
preferences:
action: show_prefs
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "wide"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "wide"
label: "123"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "АБВ"
show_symbols:
action:
set_view: "symbols"
outline: "wide"
label: "*/="
period:
outline: "special"
text: "."
comma:
outline: "special"
text: ","
space:
outline: "spaceline"
text: " "
space_fill:
outline: "fill"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"
ґ:
outline: "narrow"
Ґ:
outline: "narrow"
ї:
outline: "narrow"
Ї:
outline: "narrow"

78
data/keyboards/us.yaml Normal file
View File

@ -0,0 +1,78 @@
---
outlines:
default: { width: 35.33, height: 52 }
altline: { width: 52.67, height: 52 }
wide: { width: 62, height: 52 }
spaceline: { width: 142, height: 52 }
special: { 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 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 preferences space period Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # $ % & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space period Return"
symbols:
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° * { }"
- "show_numbers_from_symbols \\ / < > = [ ] 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"
action: erase
preferences:
action: show_prefs
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "wide"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
period:
outline: "special"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"

View File

@ -0,0 +1,78 @@
---
outlines:
default: { width: 54, height: 42 }
altline: { width: 81, height: 42 }
wide: { width: 108, height: 42 }
spaceline: { width: 216, height: 42 }
special: { width: 54, height: 42 }
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"
- "@ # $ % & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space . Return"
symbols:
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° * { }"
- "show_numbers_from_symbols \\ / < > = [ ] 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"
action: "erase"
preferences:
action: "show_prefs"
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "wide"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
".":
outline: "special"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"

0
data/langs/de-DE.txt Normal file
View File

2
data/langs/en-US.txt Normal file
View File

@ -0,0 +1,2 @@
emoji Emoji
terminal Terminal

7
data/langs/es-ES.txt Normal file
View File

@ -0,0 +1,7 @@
us Inglés (EE.UU.)
de Alemán
el Griego
es Español
it Italiano
jp+kana Japonés (Kana)
no Noruego

0
data/langs/ja-JP.txt Normal file
View File

2
data/langs/pl-PL.txt Normal file
View File

@ -0,0 +1,2 @@
emoji emoji
terminal terminal

11
data/langs/ru-RU.txt Normal file
View File

@ -0,0 +1,11 @@
de Немецкий
es Испанский
fi Финский
gr Греческий
it Итальянский
no Норвежский
pl Польский
ru Русский
se Шведский
terminal Терминал
us Английский (США)

View File

@ -7,13 +7,20 @@ squeekboard_resources = gnome.compile_resources(
c_name: 'squeekboard',
)
desktopconf = configuration_data()
desktopconf.set('bindir', bindir)
desktop_file = 'sm.puri.Squeekboard.desktop'
i18n.merge_file('desktop',
input: desktop_file + '.in',
input: configure_file(
input: desktop_file + '.in.in',
output: desktop_file + '.in',
configuration: desktopconf
),
output: desktop_file,
po_dir: '../po',
install: true,
install_dir: join_paths(datadir, 'applications'),
install_dir: desktopdir,
type: 'desktop'
)

19
data/popup.ui Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.16"/>
<object class="GtkPopoverMenu" id="main_menu">
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
</object>
<packing>
<property name="submenu">main</property>
<property name="position">1</property>
</packing>
</child>
</object>
</interface>

View File

@ -2,8 +2,8 @@
Name=Squeekboard
GenericName=Squeekboard Virtual Keyboard
Comment=Virtual Keyboard
Exec=squeekboard
Icon=squeekboard
Exec=@bindir@/squeekboard
Terminal=false
Type=Application
NoDisplay=true
Categories=GTK;Utility;

View File

@ -2,40 +2,8 @@
<gresources>
<gresource prefix="/sm/puri/squeekboard">
<file compressed="true">style.css</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/geometry/compact.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/geometry/extended.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/geometry/number-keypad.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/keyboards.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ar.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/as-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/be.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/bn-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/fa.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/gu-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/he.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/hi-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ja-kana.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/kk.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/kn-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ks-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ks.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/mai-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ml-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/mr-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/my.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/nb.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/or-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/pa-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ru.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/sd-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ta-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/te-inscript.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/th.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ua.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ug.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/us.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/zh-bopomofo.xml</file>
<file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/special/number.xml</file>
<file compressed="true">style-Adwaita:dark.css</file>
<file compressed="true" preprocess="xml-stripblanks">popup.ui</file>
<file>icons/key-enter.svg</file>
<file>icons/key-shift.svg</file>
<file>icons/keyboard-mode-symbolic.svg</file>

View File

@ -0,0 +1,55 @@
sq_view {
background-color: rgba(0, 0, 0, 255);
color: #ffffff;
font-family: cantarell, sans-serif;
font-size: 25px;
}
sq_view sq_button {
color: #deddda;
background: #464448;
border-style: solid;
border-width: 1px;
border-color: #5e5c64;
border-radius: 3px;
margin: 4px 2px 4px 2px;
}
sq_view.wide sq_button {
margin: 1px 1px 1px 1px;
}
sq_button:active {
background: #747077;
border-color: #96949d;
}
sq_button.altline,
sq_button.special,
sq_button.wide {
background: #2b292f;
border-color: #3e3a44;
}
sq_button.locked {
background: #ffffff;
color: #2b292f;
}
sq_button.action {
font-size: 0.75em;
}
sq_button.small {
font-size: 0.5em;
}
#Return {
background: #1c71d8;
border-color: #1a5fb4;
}
#Return:active {
background: #1c71d8;
border-color: #3584e4;
}

View File

@ -1,19 +1,58 @@
.keyboard {
background-color: rgba(0, 0, 0, 255);
color: #ffffff;
sq_view {
background-color: @theme_base_color; /*rgba(0, 0, 0, 255);*/
color: @theme_text_color; /*#ffffff;*/
font-family: cantarell, sans-serif;
font-size: 25px;
}
.key {
color: #deddda;
background: #464448;
sq_view sq_button {
color: @theme_fg_color; /*#deddda;*/
background: mix(@theme_bg_color, @theme_base_color, -0.5); /* #464448; */
border-style: solid;
border-width: 1px;
border-color: #5e5c64;
border-radius: 2px;
border-color: @borders; /* #5e5c64;*/
border-radius: 3px;
margin: 4px 2px 4px 2px;
}
.key:active {
background: #1c71d8;
border-color: #3584e4;
sq_view.wide sq_button {
margin: 1px 1px 1px 1px;
}
sq_button:active,
sq_button.altline:active,
sq_button.special:active,
sq_button.wide:active {
background: mix(@theme_bg_color, @theme_selected_bg_color, 0.4);/* #747077; */
border-color: mix(@borders, @theme_selected_fg_color, 0.5);/* #96949d; */
}
sq_button.altline,
sq_button.special,
sq_button.wide {
background: mix(@theme_bg_color, @theme_base_color, 0.5); /*#2b292f;*/
border-color: @borders; /* #3e3a44; */
}
sq_button.locked {
background: @theme_fg_color; /*#ffffff;*/
color: @theme_bg_color; /*#2b292f;*/
}
sq_button.action {
font-size: 0.75em;
}
sq_button.small {
font-size: 0.5em;
}
#Return {
background: @theme_selected_bg_color; /* #1c71d8; */
border-color: @borders; /*#1a5fb4;*/
}
#Return:active {
background: mix(@theme_selected_bg_color, @theme_bg_color, 0.4); /*#1c71d8;*/
border-color: @borders; /*#3584e4;*/
}

39
dco.txt Normal file
View File

@ -0,0 +1,39 @@
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

12
debian/cargo/config vendored Normal file
View File

@ -0,0 +1,12 @@
# When modifying this file, consider instead
# to take advantage of the method that Cargo packagers use
# to set up all the necessary stuff automatically:
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907629#30
[source.crates-io]
registry = 'https://github.com/rust-lang/crates.io-index'
replace-with = 'vendored-sources'
[source.vendored-sources]
directory = '/usr/share/cargo/registry'

338
debian/changelog vendored
View File

@ -1,3 +1,341 @@
squeekboard (1.9.3) amber-phone; urgency=medium
[ Björn Tantau ]
* Show more useful keys at the same time.
* Add Ctrl and Alt modifier keys.
* Add missing Ê key.
* Make f-keys slightly wider.
* Add Menu key.
[ Guido Günther ]
* d/rules: Only remove Cargo.lock if it exists
* eek: Drop libcanberra usage
* debian: Build-depend on libfeedback
* eek-gtk-keyboard: Trigger event feedback on button press (Closes: #166)
[ Dorota Czaplejewicz ]
* build: Add missing gio-unix dependency
* build: Make compatible with Debian Bullseye
* debian: Add amber to legacy distro list
* ci: Add amber job
* debian: Require lsb-release
* size: Hardcode size to work around screen rotation
* ci: Re-add x64 Buster build
* italian: Fix space and period
[ Sebastian Krzyszkowiak ]
* Revert "Merge branch 'btantau-master-patch-76686' into 'master'"
* Terminal layout: another approach
[ Luís Fernando Stürmer da Rosa ]
* Brazilian Portuguese Keyboard Layout.
-- Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm> Wed, 05 Aug 2020 16:16:08 +0200
squeekboard (1.9.2) amber-phone; urgency=medium
[ Dorota Czaplejewicz ]
* keyboard: Remove unused code
* gsettings: Don't crash when unavailable
* dbus: Don't crash if can't make a connection
* gsettings: Don't crash on switching when unavailable
* layout: Split out choice to a struct on its own
* renderer: Simplify by dropping gobjectness
* levelkeyboard: Rearrange to make future conversion easier
* layout: Minor generalizations
* Remove unused code
* sizing: Create a standalone UI shape manager
* sizing: Ignore scaling factor for layout selection
* CI: Fix typo
* Update rust deps for release
[ Andreas Rönnquist ]
* Swedish keyboard, wide button switching between numbers, symbols and base
* More fixes of button sizes
* Folder is doc, not docs
[ uzanto ]
* Add new file
* Replace duplicated show_symbols by show_eschars and removed "Delete" button that it's doing nothing
[ Arnaud Ferraris ]
* keyboards: fr: fix keyboard layout
* keyboards: fr: make sure the layout fits the screen
* resources: include French keyboard layout
* keyboards: fr: improve consistency with other layouts
* keyboards: fr: improve diacritics layout
* tests: add french layout
[ Vlad ]
* Fresh Russian layout
[ Jordi Masip ]
* Removed unused dependency 'libcroco'
[ Florian Klink ]
* sm.puri.Squeekboard.desktop: make path to Exec= absolute
[ Ole Guldberg ]
* Danish keyboard layout
* Danish keyboard layout
* add test for danish layout
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Mon, 01 Jun 2020 09:39:12 +0000
squeekboard (1.9.1) amber-phone; urgency=medium
[ Dorota Czaplejewicz ]
* layout: Improve press handling
* settings: Handle empty settings
* Variant: Use proper pointer conversion between C and Rust
* meta: Add doap file
* modifiers: Support Control and Alt
* CI: Test that any bump to changelog has a corresponding tag
* docs: Add the guiding principle
* hacking: Move into docs/
[ &t ]
* Fix minor comment typos
[ Dorota Czaplejewicz ]
* cargo: Bump package versions before release
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Sun, 08 Mar 2020 10:04:29 +0000
squeekboard (1.9.0) amber-phone; urgency=medium
[ Dorota Czaplejewicz ]
* imservice: Add commit_string method
* submission: Handle submitting strings
* input_method: Use for erasing
* logging: Use in merged functions
* translations: Remove redundant ones
* translations: Translate builtin layouts
* greek: Rename to gr which is used by gnome settings
[ Sebastian Krzyszkowiak ]
* layouts: Add Polish layouts
[ Dorota Czaplejewicz ]
* locks: Draw based on current view
* locking: Lock keys statelessly
* layouts: Better accented uppercase in PL
* emoji: Add more choices
* row: Eliminate angle
* layout: Center views relative to each other and the layout bounds
* drawing: Generalized foreach_visible_button
* variant: Fix double-free
* variant: Fix leak
* keyboard_layout: Fix leak
* layout: Improve scoping of locked variable
* terminal: Make */ easier to reach
[ Sebastian Krzyszkowiak ]
* layouts: terminal: Use altline outline for dot key
[ Dorota Czaplejewicz ]
* text input: Disable erasing
* cargo: Update deps
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Wed, 19 Feb 2020 14:32:39 +0000
squeekboard (1.8.1) amber-phone; urgency=medium
[ Dorota Czaplejewicz ]
* action: Rename Level to View
* keyboard: Introduce a KeyCode type wrapping u32
* layout: Centralize handling key releases
* layout: Make handling presses uniform
* UI: Drop indirection for show/hide functions
* managers: Move visible flag to UI manager
* dbus_service: Remove unused function
* dbus: Remove unneeded gobjectness
* dbus: Rename handler from eekboard_service
* context: Moved keymap setting together with its generation
* key-emitter: Remove unused
* eekboard_context_service: Drop unused enable property
* services: Split out layout management from EekboardContextService
* submission: Move away from virtual-keyboard
* submission: Create a new wrapper over imservice
* imservice: Limited scope of unsafe
* EekGtkKeyboard: Use a direct reference to EekboardContext
* submission: Take over virtual_keyboard handling
* keyboard: Cleanups of unused code
* levelkeyboard: Drop unused manager references
* keyboard: Gather up keymap handling, drop layout
* submission: Remove wildcard reexport
* imservice: Rename commit_state to done to match protocol
* ci: Clean up `..` before it's searched for artifacts
* dbus: Log error on dbus exit
* logging: Try to improve common operations
* imservice: Return something more resembling an Error on failure
* logging: Unified to remove random eprint calls
* press_key: Use proper logging
* number: Fix keysym for Return
* build: Strip clap of optional features
* layouts: Fix segfault on switching to wide
* font: Use font from style context
* font: Only pass relevant data to label renderer
[ Sebastian Krzyszkowiak ]
* layout: terminal: Swap positions of preferences and actions button
* layout: terminal: Show actions button on all views
* layout: terminal: Replace actions button with period on symbols view
[ Dorota Czaplejewicz ]
* setup: Connect ui to the state manager
* debian: Add missing commas
[ David Boddie ]
* Tidy build file and docs
* Use pip to install recommonmark
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Fri, 31 Jan 2020 09:59:12 +0000
squeekboard (1.8.0) amber-phone; urgency=medium
[ Dorota Czaplejewicz ]
* translations: Use gnome-desktop's xkb info database for layout names
* translations: Make the code cleaner
* overlay: Add terminal
* eek-layout: Remove unused
* pre-release: Update deps
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Tue, 14 Jan 2020 13:55:00 +0000
squeekboard (1.7.0) amber-phone; urgency=medium
* New terminal layout appearing on terminal input hint
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Wed, 08 Jan 2020 11:53:07 +0000
squeekboard (1.7.0) amber-phone; urgency=medium
* New terminal layout appearing on terminal input hint
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Wed, 08 Jan 2020 11:53:07 +0000
squeekboard (1.6.0) amber-phone; urgency=medium
[ Dorota Czaplejewicz ]
* tools: Move entry.py
* build: Move building of squeekboard-test-layout to tools
* packaging: Install entty.py as squeekboard-entry
* Remove unused build dependencies
* Remove unused header generator
* logging: Move all facilities to one file
* logging: Described the design
* logging: Add described log levels
* popover: Install emoji layout
* popover: Show overlays as selected
* Fix old Rust woes
* emoji: Add a passable layout
* Fix g_ and stdlib allocation/free mismatches
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Thu, 02 Jan 2020 12:02:50 +0000
squeekboard (1.5.0) amber-phone; urgency=medium
[ Dorota Czaplejewicz ]
* keycodes: Sort to eliminate runtime indeterminism
* switcher: Switch layout on menu item click
* Drop squeek_key
* renderer: Remove some unneeded vars
* renderer: Simplified outline rendering
* renderer: Drop row from button rendering
* renderer: Drop unused params
* renderer: Simplify surface rendering
* rendering: Simplify Cairo context usage, remove unneeded calls.
* rendering: Remove unneeded redraw after button release
* renderer: Remove unused locked key render function
* renderer: Simply cut off when painting outside bounds
* renderer: Render whole keyboard the same way as pressed buttons
[ Mark Müller ]
* layout: add German wide layout
[ Dorota Czaplejewicz ]
* renderer: Remove unused functions
* cleanup: Remove references to squeek_view
* cleanup: Unbox View and Row
* cleanup: Remove unused single frame draw
* positioning: Calculate sizes instead of storing, move position out of widgets
* positioning: Clean up unused code
* Fix old Rust woes
[ Mark Müller ]
* layout: add Japanese Kana wide layout
[ Dorota Czaplejewicz ]
* Entry test: Add Terminal input purpose
* readme: Add note about Cargo dependencies
* Create a library/UI module separation
* hacking: Add DCO and licensing requirement
* Fix internal .md link
[ Mark Müller ]
* squeekboard-test-layout: add argument parsing and some more output
[ Dorota Czaplejewicz ]
* Use clap in the lockfile
* parsing: Remove bounds which weren't used anyway
* layout: Respect margins
* CI: Build arm64 .deb
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Mon, 23 Dec 2019 11:58:57 +0000
squeekboard (1.4.0) amber-phone; urgency=medium
* "text" property in layouts
* Adjusts to user's color scheme
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Mon, 02 Dec 2019 19:37:01 +0000
squeekboard (1.3.2) amber-phone; urgency=medium
* Make sure all key presses get accepted by the compositor
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Tue, 26 Nov 2019 15:36:27 +0000
squeekboard (1.3.1) amber-phone; urgency=medium
* Update and fix layouts and languages
* Make tests less likely to fail
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Wed, 20 Nov 2019 22:10:48 +0000
squeekboard (1.3.0) amber-phone; urgency=medium
* Language selection popup
* Swedish and Finnish layouts
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Sat, 16 Nov 2019 15:38:14 +0000
squeekboard (1.2.2) amber-phone; urgency=medium
* Landscape mode
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Wed, 30 Oct 2019 12:38:39 +0000
squeekboard (1.2.1) amber-phone; urgency=medium
* Use different distribution
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Tue, 08 Oct 2019 10:56:10 +0000
squeekboard (1.2.0) unstable; urgency=medium
* Use Cargo-based dependencies
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Tue, 24 Sep 2019 10:42:15 +0000
squeekboard (1.1.0) unstable; urgency=medium
* Use new keyboard layout format
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Mon, 02 Sep 2019 10:12:02 +0000
squeekboard (1.0.10) unstable; urgency=medium
* Use a shared DBus definition

10
debian/check_release.py vendored Executable file
View File

@ -0,0 +1,10 @@
#!/usr/bin/env python3
"""Checks tag before release.
Feed it the first changelog line, and then all available tags.
"""
import re, sys
tag = "v" + re.findall("\\((.*)\\)", input())[0]
if tag not in map(str.strip, sys.stdin.readlines()):
raise Exception("Changelog's current version doesn't have a tag. Push the tag!")

42
debian/control vendored
View File

@ -3,25 +3,53 @@ Section: x11
Priority: optional
Maintainer: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
Build-Depends:
cargo,
debhelper (>= 10),
meson (>=0.43.0),
meson (>=0.51.0),
ninja-build,
pkg-config,
libglib2.0-dev,
libgnome-desktop-3-dev,
libgtk-3-dev,
libcroco3-dev,
libfeedback-dev,
librust-bitflags-1-dev (>= 1.0),
librust-clap-2+default-dev (>= 2.32),
librust-gio+v2-44-dev,
librust-glib+v2-44-dev,
librust-glib-sys-dev,
librust-gtk+v3-22-dev (>= 0.5),
librust-gtk-sys-dev,
librust-maplit-1-dev (>= 1.0),
librust-regex-1-dev (>= 1.1),
librust-serde-derive-1-dev (>= 1.0),
librust-serde-yaml-0.8-dev (>= 0.8),
librust-xkbcommon-0.4+wayland-dev (>= 0.4),
libwayland-dev (>= 1.16),
lsb-release,
rustc,
wayland-protocols (>= 1.14),
# for running the tests
xvfb,
xauth,
Standards-Version: 4.1.3
Homepage: https://source.puri.sm/Librem5/squeekboard
Package: squeekboard
Architecture: linux-any
Depends:
${shlibs:Depends}
${misc:Depends}
# for the Adwaita-dark theme
gnome-themes-extra-data,
${shlibs:Depends},
${misc:Depends},
Description: On-screen keyboard for Wayland
Virtual keyboard supporting Wayland, built primarily for the Librem 5 phone.
Package: squeekboard-devel
Architecture: linux-any
Depends:
python3,
python3-gi,
${shlibs:Depends},
${misc:Depends},
Description: Resources for making Squeekboard layouts
Tools for creating and testing Squeekboard layouts:
.
* squeekboard-entry
* squeekboard-test-layout

178
debian/copyright vendored
View File

@ -8,6 +8,83 @@ Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
2019 Purism SPC
License: GPL-3+
Files: cargo.sh
Copyright: 2019 Bart Ribbers <bribbers@disroot.org>
2019 Purism SPC
License: GPL-3+
Files: data/style.css
data/squeekboard.gresources.xml
data/meson.build
src/meson.build
src/imservice.c
Copyright: 2019 Purism SPC
2019 Squeekboard Contributors
License: GPL-3+
Files: data/keyboards/de.yaml
Copyright: 2019 Mark Müller <markmueller86@gmail.com>
License: GPL-3+
Files: data/keyboards/el.yaml
Copyright: 2019 Antonis Tsolomitis
2019 Purism SPC
License: GPL-3+
Files: data/keyboards/es.yaml
Copyright: 2019 Purism SPC
2019 uzanto <miguejim@mailbox.org>
License: GPL-3+
Files: data/keyboards/fi.yaml
Copyright: 2019 uzanto <miguejim@mailbox.org>
License: GPL-3+
Files: data/keyboards/it.yaml
Copyright: 2019 Antonio Pandolfo <ant.pandolfo@gmail.com>
2019 Purism SPC
License: GPL-3+
Files: data/keyboards/ja+kana.yaml
Copyright: 2019 Mark Müller <markmueller86@gmail.com>
License: GPL-3+
Files: data/keyboards/se.yaml
Copyright: 2019 Andreas Rönnquist <andreas@ronnquist.net>
2019 Purism SPC
License: GPL-3+
Files: eek/eek-layout.h
eek/eek-layout.c
eek/eek-element.c
eek/eek-gtk-keyboard.c
eek/eek-gtk-keyboard.h
eek/eek.c
eek/eek-xml-layout.h
eek/eek-xml-layout.c
eek/eek-renderer.h
eek/eek-element.h
eek/eek-renderer.c
eekboard/eekboard-service.c
eekboard/eekboard-service.h
Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
2010-2011 Red Hat, Inc.
2018-2019 Purism SPC
2019 Squeekboard Contributors
License: GPL-3+
Files: eek/eek-keyboard.c
eek/eek-types.h
eek/eek-types.c
eek/eek-keyboard.h
eek/eek.h
src/server-main.c
src/server-context-service.h
Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
2010-2011 Red Hat, Inc.
2019 Purism SPC
License: LGPL-2+
Files: eek/layersurface.c
src/wayland.c
src/key-emitter.c
@ -21,39 +98,51 @@ Files: eekboard/keymap.c
Copyright: 2000 Red Hat, Inc.
2019 Purism, SPC
License: LGPL-2+
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.
Files: eekboard/eekboard-context-service.c
Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
2010-2011 Red Hat, Inc.
2019 Purism, SPC
2019 David Heidelberg <david@ixit.cz>
2019 Piotr Tworek <tworaz@tworaz.net>
2019 Squeekboard Contributors
License: GPL-3+
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
Files: eekboard/eekboard-context-service.h
Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
2010-2011 Red Hat, Inc.
License: GPL-3+
Files: po/POTFILES.skip
po/LINGUAS
po/ja.po
po/POTFILES.in
Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
License: LGPL-2+
Comment:
Only the po/ja.po file contains a license, but these are all grouped together.
Files: protocols/wlr-layer-shell-unstable-v1.xml
Copytight: Copyright © 2017 Drew DeVault
Copyright: 2017 Drew DeVault
License: X11
Permission to use, copy, modify, distribute, and sell this software and
its documentation for any purpose is hereby granted without fee, provided
that the above copyright notice appear in all copies and fthat both that
copyright notice and this permission notice appear in supporting
documentation, and that the name of the copyright holders not be used in
advertising or publicity pertaining to distribution of the software
without specific, written prior permission. The copyright holders make
no representations about the suitability of this software for any
purpose. It is provided "as is" without express or implied warranty.
.
THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/resources.rs
Copyright: 2019 Andreas Rönnquist <andreas@ronnquist.net>
2019 Mark Müller <markmueller86@gmail.com>
2019 Purism SPC
License: GPL-3+
Files: src/server-context-service.c
Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
2010-2011 Red Hat, Inc.
2019 Purism SPC
2019 Squeekboard Contributors
License: GPL-3+
Files: tests/meson.build
Copyright: 2019 Purism SPC
2019 Mark Müller <markmueller86@gmail.com>
License: GPL-3+
License: GPL-3+
This package is free software; you can redistribute it and/or modify
@ -71,3 +160,36 @@ License: GPL-3+
.
On Debian systems, the complete text of the GNU General
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
License: LGPL-2+
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, see <http://www.gnu.org/licenses/>.
License: X11
Permission to use, copy, modify, distribute, and sell this software and
its documentation for any purpose is hereby granted without fee, provided
that the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation, and that the name of the copyright holders not be used in
advertising or publicity pertaining to distribution of the software
without specific, written prior permission. The copyright holders make
no representations about the suitability of this software for any
purpose. It is provided "as is" without express or implied warranty.
.
THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

14
debian/rules vendored
View File

@ -1,8 +1,22 @@
#!/usr/bin/make -f
export CARGO_HOME = $(CURDIR)/debian/cargo
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
distrel := $(shell lsb_release --codename --short)
ifneq (,$(filter $(distrel),buster amber))
legacy = true
else
legacy = false
endif
%:
dh $@ --builddirectory=_build --buildsystem=meson
# The Debian version of linked-hash-map doesn't provide any hash,
# causing Cargo to refuse to build with a crates.io copy
override_dh_auto_configure:
[ ! -f Cargo.lock ] || rm Cargo.lock
dh_auto_configure -- -Dlegacy=$(legacy)
override_dh_autoreconf:

2
debian/squeekboard-devel.install vendored Normal file
View File

@ -0,0 +1,2 @@
usr/bin/squeekboard-test-layout /usr/bin
usr/bin/squeekboard-entry /usr/bin

2
debian/squeekboard.install vendored Normal file
View File

@ -0,0 +1,2 @@
tools/squeekboard-restyled usr/bin
usr/bin/squeekboard /usr/bin

2
debian/squeekboard.lintian-overrides vendored Normal file
View File

@ -0,0 +1,2 @@
# yaml-rust 0.4.3 shares some roots with libyaml, including the string which lintian checks, creating a false positive
squeekboard binary: embedded-library usr/bin/squeekboard: libyaml

22
doc/build.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
# Builds the documentation and places in the selected directory,
# or the working directory.
set -e
SCRIPT_PATH="$(realpath "$0")"
DOCS_DIR="$(dirname "$SCRIPT_PATH")"
TARGET_DIR="${1:-./}"
SPHINX=sphinx-build
if [ ! -d $DOCS_DIR/_static ]; then
mkdir -p $DOCS_DIR/_static
fi
if ! which sphinx-build ; then
SPHINX=sphinx-build-3
fi
$SPHINX -b html "${DOCS_DIR}" "${TARGET_DIR}"

165
doc/conf.py Normal file
View File

@ -0,0 +1,165 @@
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
project = 'squeekboard'
copyright = 'Squeekboard contributors'
author = 'Dorota Czaplejewicz'
# The short X.Y version
version = ''
# The full version, including alpha/beta/rc tags
release = ''
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'recommonmark'
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.md'
# The master toctree document.
master_doc = 'index'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path .
exclude_patterns = []
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'alabaster'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'squeekboarddoc'
# -- Options for LaTeX output ------------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'squeekboard.tex', 'squeekboard Documentation',
'Dorota Czaplejewicz', 'manual'),
]
# -- Options for manual page output ------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'squeekboard', 'squeekboard Documentation',
[author], 1)
]
# -- Options for Texinfo output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'squeekboard', 'squeekboard Documentation',
author, 'squeekboard', 'One line description of project.',
'Miscellaneous'),
]
from recommonmark.transform import AutoStructify
def setup(app):
app.add_config_value('recommonmark_config', {
'enable_auto_toc_tree': True,
'auto_toc_tree_section': 'Contents',
}, True)
app.add_transform(AutoStructify)

185
doc/hacking.md Normal file
View File

@ -0,0 +1,185 @@
Hacking
=======
This document describes the standards for modifying and maintaining the *squeekboard* project.
Principles
----------
The project was built upon some guiding principles, which should be respected primarily by the maintainers, but also by contributors to avoid needlessly rejected changes.
The overarching principle of *squeekboard* is to empower users.
Software is primarily meant to solve problems of its users. Often in the quest to make software better, a hard distinction is made between the developer, who becomes the creator, and the user, who takes the role of the consumer, without direct influence on the software they use.
This project aims to give users the power to make the software work for them by blurring the lines between users and developers.
Notwithstanding its current state, *squeekboard* must be structured in a way that provides users a gradual way to gain more experience and power to adjust it. It must be easy, in order of importance:
- to use the software,
- to modify its resources,
- to change its behavior,
- to contribute upstream.
To give an idea of what it means in practice, those are some examples of what has been important for *squeekboard* so far:
- being quick and usable,
- allowing local overrides of resources and config,
- storing resources and config as editable, standard files,
- having complete, up to date documentation of interfaces,
- having an easy process of sending contributions,
- adapting to to user's settings and constrains without overriding them,
- avoiding compiling whenever possible,
- making it easy to build,
- having code that is [simple and obvious](https://www.python.org/dev/peps/pep-0020/),
- having an easy process of testing and accepting contributions.
You may notice that they are ordered roughly from "user-focused" to "maintainer-focused". While good properties are desired, sometimes they conflict, and maintainers should give additional weight to those benefiting the user compared to those benefiting regular contributors.
Sending patches
---------------
By submitting a change to this project, you agree to license it under the [GPL license version 3](https://source.puri.sm/Librem5/squeekboard/blob/master/COPYING), or any later version. You also certify that your contribution fulfills the [Developer's Certificate of Origin 1.1](https://source.puri.sm/Librem5/squeekboard/blob/master/dco.txt).
Development environment
-----------------------
*Squeekboard* is regularly built and tested on [the development 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`](https://source.puri.sm/Librem5/squeekboard/blob/master/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 tools/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
------
### Project structure
Rust modules should be split into 2 categories: libraries, and user interface. They differ in the way they do error handling.
Libraries should:
- not panic due to external surprises, only due to internal inconsistencies
- pass errors and surprises they can't handle to the callers instead
- not silence errors and surprises
User interface modules should:
- try to provide safe values whenever they encounter an error
- do the logging
- give libraries the ability to report errors and surprises (e.g. via giving them loggers)
### Style
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 positional arguments: source directory, and output artifact. So, `cargo test` becomes:
```
cd build_dir
sh /source_path/cargo.sh test
```
### Cargo dependencies
All Cargo dependencies must be selected in the version available in PureOS, and added to the file `debian/control`. Please check with https://software.pureos.net/search_pkg?term=librust .
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 must correspond to the default dependency configuration: without flags to use older or newer versions of dependencies. It should be updated often, preferably with each bugfix revision, and in a commit on its own:
```
cd build_dir
ninja build src/Cargo.toml
sh /source_path/cargo.sh update
ninja test
```

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