Compare commits
	
		
			165 Commits
		
	
	
		
			v1.2.1
			...
			squeekboar
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 3af10285b7 | |||
| 53997abc46 | |||
| 34765be22e | |||
| 8b4c643d3e | |||
| 358b25c431 | |||
| 2749fdb686 | |||
| 8e7909e877 | |||
| afaacd3f68 | |||
| 6a164d8119 | |||
| 3c45e3e53c | |||
| cdf263d984 | |||
| 2ddfcfaff0 | |||
| a901c85bcb | |||
| fdbbe8f126 | |||
| f284627beb | |||
| d45724c462 | |||
| 93d0dcdc99 | |||
| b252f7659b | |||
| af6ad1fce6 | |||
| 4ee8a91dfe | |||
| 6d5f793718 | |||
| 59f6173282 | |||
| 3aec821f92 | |||
| 3ac4caa3b9 | |||
| 80ac591535 | |||
| 579ba8ab87 | |||
| 5a262242a3 | |||
| 034570bfa0 | |||
| 1abca0a44e | |||
| 23693521b7 | |||
| bb18e60754 | |||
| 35bc163107 | |||
| 0179507254 | |||
| 0c7e77a05f | |||
| 317d8a58dc | |||
| 89b3ab9a81 | |||
| 8690808a29 | |||
| be4ac32477 | |||
| 5068f36d9d | |||
| 8c48e96f50 | |||
| f15619287a | |||
| eb5c28e77f | |||
| 7fb34feaf8 | |||
| 20a6cf52ac | |||
| c566d8853e | |||
| 0beddc6856 | |||
| 0adde1004f | |||
| 9b271a6919 | |||
| 1db561d33a | |||
| 3170a0b615 | |||
| 9571adb107 | |||
| f834f174d8 | |||
| 3c0b142c4f | |||
| 4f28e3413a | |||
| 291be9fa79 | |||
| fd5d060eee | |||
| cffe07521e | |||
| 36af546362 | |||
| 0da848a5a0 | |||
| 8c9ae98bda | |||
| 7cc8eecd26 | |||
| ef025509ba | |||
| 3f6bb7f60b | |||
| d7ee2f4c3c | |||
| 98f14d3e81 | |||
| 02ec745856 | |||
| 6ac17bfde5 | |||
| d8cb6ab383 | |||
| db52a842b2 | |||
| ad8c918e1a | |||
| 8191324e46 | |||
| 6777f1b4b7 | |||
| 0bfaa8cd7a | |||
| 238900f01a | |||
| e47ec16293 | |||
| 6fe08967f6 | |||
| 71d2df8b2a | |||
| 8024998a4b | |||
| ea4bf3de29 | |||
| 87d368878b | |||
| 55584e27fa | |||
| 9f88660d99 | |||
| c096698ec1 | |||
| 3aaaed3bae | |||
| f1c76a0ca4 | |||
| b78c3ad131 | |||
| b6dfb20fec | |||
| 7d18f81a30 | |||
| 959f5fbfc9 | |||
| c2ad03af97 | |||
| 47c4119ab7 | |||
| e71e843eff | |||
| 6e90c9a833 | |||
| 1134d92357 | |||
| 62009762f9 | |||
| a58a18b63b | |||
| 95022c1ac7 | |||
| 7760b50963 | |||
| 85b79a5f8f | |||
| e080d4351e | |||
| dcd4dbf931 | |||
| ea0926147f | |||
| ce223e04e6 | |||
| ddd1c1b16b | |||
| 0f1f6531da | |||
| c917a1f818 | |||
| afe8fd64f4 | |||
| bd3b27eceb | |||
| 35ad61890e | |||
| 1b1fbed7de | |||
| 264d30d884 | |||
| 38d8290b59 | |||
| 254b65681a | |||
| fbb3824a3d | |||
| 24126ad4f3 | |||
| 869a0af67f | |||
| 5281d96460 | |||
| 8f7f6c05c0 | |||
| 01fe433612 | |||
| 63e55ff5c4 | |||
| 8d4d50cfca | |||
| dde659dbd3 | |||
| 788a39f144 | |||
| 43e2b7b803 | |||
| 3fb0a3a959 | |||
| bdef7b3516 | |||
| 57d36e476b | |||
| 0b5aa1ba7c | |||
| 55410a005c | |||
| 1290fd4a1e | |||
| c99efc430c | |||
| ce6c9cbea3 | |||
| 4cdfc30c29 | |||
| 3b6c19401c | |||
| 29231f7e31 | |||
| 76b8a61d0a | |||
| d62abc2f12 | |||
| 8f61a26fb4 | |||
| 8fd63cea80 | |||
| 162b828c4c | |||
| ac58b675ef | |||
| a048722a94 | |||
| a74be1b299 | |||
| 89b56ddccf | |||
| 8ab3a2b8d3 | |||
| f56c5e3879 | |||
| 8eda2cd04d | |||
| cfd2bff1aa | |||
| 02501aee9e | |||
| 70056b68a7 | |||
| b36c48daa3 | |||
| 9e078be603 | |||
| ac68d5d0a8 | |||
| b45edcd4fe | |||
| dc2bc46167 | |||
| 9cd439767e | |||
| 212e55d7cf | |||
| 31fdde4da9 | |||
| 10bad4ebe3 | |||
| da5a83f367 | |||
| ef38fd3e64 | |||
| 46d3312c86 | |||
| cb8d2b01af | |||
| 3f3e33c853 | |||
| aa3dc96986 | 
@ -22,6 +22,7 @@ build_meson:
 | 
				
			|||||||
  artifacts:
 | 
					  artifacts:
 | 
				
			||||||
    paths:
 | 
					    paths:
 | 
				
			||||||
      - _build
 | 
					      - _build
 | 
				
			||||||
 | 
					    expire_in: 3h
 | 
				
			||||||
  script:
 | 
					  script:
 | 
				
			||||||
    - meson . _build/ -Ddepdatadir=/usr/share
 | 
					    - meson . _build/ -Ddepdatadir=/usr/share
 | 
				
			||||||
    - ninja -C _build install
 | 
					    - ninja -C _build install
 | 
				
			||||||
@ -49,7 +50,7 @@ test_lintian:
 | 
				
			|||||||
test:
 | 
					test:
 | 
				
			||||||
  <<: *tags
 | 
					  <<: *tags
 | 
				
			||||||
  stage: test
 | 
					  stage: test
 | 
				
			||||||
  dependencies:
 | 
					  needs:
 | 
				
			||||||
    - build_meson
 | 
					    - build_meson
 | 
				
			||||||
  script:
 | 
					  script:
 | 
				
			||||||
    - ninja -C _build test
 | 
					    - ninja -C _build test
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										37
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								AUTHORS
									
									
									
									
									
								
							@ -1,36 +1,5 @@
 | 
				
			|||||||
eekboard is written by Daiki Ueno <ueno@unixuser.org>.  The following
 | 
					squeekboard is written by Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> on behlf of Purism, SPC.
 | 
				
			||||||
files contain code derived from other free software packages:
 | 
					eekboard was written by Daiki Ueno <ueno@unixuser.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
eek/eek-keyboard-drawing.h
 | 
					For more details, see the debian/copyright file.
 | 
				
			||||||
eek/eek-keyboard-drawing.c
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  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.
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										314
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										314
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							@ -1,15 +1,232 @@
 | 
				
			|||||||
# This file is automatically @generated by Cargo.
 | 
					# This file is automatically @generated by Cargo.
 | 
				
			||||||
# It is not intended for manual editing.
 | 
					# It is not intended for manual editing.
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "aho-corasick"
 | 
				
			||||||
 | 
					version = "0.7.6"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "atk-sys"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "bitflags"
 | 
					name = "bitflags"
 | 
				
			||||||
version = "1.0.4"
 | 
					version = "1.0.4"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "cairo-rs"
 | 
				
			||||||
 | 
					version = "0.5.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "cairo-sys-rs"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "cc"
 | 
				
			||||||
 | 
					version = "1.0.45"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "dtoa"
 | 
					name = "dtoa"
 | 
				
			||||||
version = "0.4.4"
 | 
					version = "0.4.4"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "fragile"
 | 
				
			||||||
 | 
					version = "0.3.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "gdk"
 | 
				
			||||||
 | 
					version = "0.9.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "gdk-pixbuf"
 | 
				
			||||||
 | 
					version = "0.5.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "gdk-pixbuf-sys"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "gdk-sys"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "gio"
 | 
				
			||||||
 | 
					version = "0.5.1"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "gio-sys"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "glib"
 | 
				
			||||||
 | 
					version = "0.6.1"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "glib-sys"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "gobject-sys"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "gtk"
 | 
				
			||||||
 | 
					version = "0.5.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "gtk-sys"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "atk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "lazy_static"
 | 
				
			||||||
 | 
					version = "1.4.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "libc"
 | 
					name = "libc"
 | 
				
			||||||
version = "0.2.62"
 | 
					version = "0.2.62"
 | 
				
			||||||
@ -25,6 +242,11 @@ name = "maplit"
 | 
				
			|||||||
version = "1.0.2"
 | 
					version = "1.0.2"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "memchr"
 | 
				
			||||||
 | 
					version = "2.2.1"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "memmap"
 | 
					name = "memmap"
 | 
				
			||||||
version = "0.7.0"
 | 
					version = "0.7.0"
 | 
				
			||||||
@ -34,6 +256,36 @@ dependencies = [
 | 
				
			|||||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
					 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "pango"
 | 
				
			||||||
 | 
					version = "0.5.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "pango-sys"
 | 
				
			||||||
 | 
					version = "0.7.0"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "pkg-config"
 | 
				
			||||||
 | 
					version = "0.3.16"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "proc-macro2"
 | 
					name = "proc-macro2"
 | 
				
			||||||
version = "1.0.4"
 | 
					version = "1.0.4"
 | 
				
			||||||
@ -50,12 +302,35 @@ dependencies = [
 | 
				
			|||||||
 "proc-macro2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
					 "proc-macro2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "regex"
 | 
				
			||||||
 | 
					version = "1.1.9"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "regex-syntax"
 | 
				
			||||||
 | 
					version = "0.6.12"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "rs"
 | 
					name = "rs"
 | 
				
			||||||
version = "0.1.0"
 | 
					version = "0.1.0"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
					 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 "maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
					 "maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					 "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
					 "serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 "serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
					 "serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 "xkbcommon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
					 "xkbcommon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
@ -100,11 +375,24 @@ dependencies = [
 | 
				
			|||||||
 "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
					 "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "thread_local"
 | 
				
			||||||
 | 
					version = "0.3.6"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "unicode-xid"
 | 
					name = "unicode-xid"
 | 
				
			||||||
version = "0.2.0"
 | 
					version = "0.2.0"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "utf8-ranges"
 | 
				
			||||||
 | 
					version = "1.0.4"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "winapi"
 | 
					name = "winapi"
 | 
				
			||||||
version = "0.3.8"
 | 
					version = "0.3.8"
 | 
				
			||||||
@ -142,19 +430,45 @@ dependencies = [
 | 
				
			|||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[metadata]
 | 
					[metadata]
 | 
				
			||||||
 | 
					"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
 | 
				
			||||||
 | 
					"checksum atk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7017e53393e713212aed7aea336b6553be4927f58c37070a56c2fe3d107e489"
 | 
				
			||||||
"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
 | 
					"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
 | 
				
			||||||
 | 
					"checksum cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dd940f0d609699e343ef71c4af5f66423afbf30d666f796dabd8fd15229cf5b6"
 | 
				
			||||||
 | 
					"checksum cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d25596627380be4381247dba06c69ad05ca21b3b065bd9827e416882ac41dcd2"
 | 
				
			||||||
 | 
					"checksum cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)" = "4fc9a35e1f4290eb9e5fc54ba6cf40671ed2a2514c3eeb2b2a908dda2ea5a1be"
 | 
				
			||||||
"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
 | 
					"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
 | 
				
			||||||
 | 
					"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
 | 
				
			||||||
 | 
					"checksum gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc52c7244046df9d959df87289f1fc5cca23f9f850bab0c967963e2ecb83a96"
 | 
				
			||||||
 | 
					"checksum gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc3aa730cb4df3de5d9fed59f43afdf9e5fb2d3d10bfcbd04cec031435ce87f5"
 | 
				
			||||||
 | 
					"checksum gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08284f16ce4d909b10d785a763ba190e222d2c1557b29908bf0a661e27a8ac3b"
 | 
				
			||||||
 | 
					"checksum gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "108548ebf5329b551f2b97ab356908d14627905abb74b936c3372de1535aee81"
 | 
				
			||||||
 | 
					"checksum gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "29a44b051990573448edc80b1995237f8b97b5734d2aec05105b9242aa10af11"
 | 
				
			||||||
 | 
					"checksum gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6975ada29f7924dc1c90b30ed3b32d777805a275556c05e420da4fbdc22eb250"
 | 
				
			||||||
 | 
					"checksum glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a333edf5b9f1411c246ef14e7881b087255f04c56dbef48c64a0cb039b4b340"
 | 
				
			||||||
 | 
					"checksum glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3573351e846caed9f11207b275cd67bc07f0c2c94fb628e5d7c92ca056c7882d"
 | 
				
			||||||
 | 
					"checksum gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08475e4a08f27e6e2287005950114735ed61cec2cb8c1187682a5aec8c69b715"
 | 
				
			||||||
 | 
					"checksum gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "56a6b30f194f09a17bb7ffa95c3ecdb405abd3b75ff981f831b1f6d18fe115ff"
 | 
				
			||||||
 | 
					"checksum gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d487d333a4b87072e6bf9f2e55befa0ebef01b9496c2e263c0f4a1ff3d6c04b1"
 | 
				
			||||||
 | 
					"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 | 
				
			||||||
"checksum libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
 | 
					"checksum libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
 | 
				
			||||||
"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
 | 
					"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
 | 
				
			||||||
"checksum maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
 | 
					"checksum maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
 | 
				
			||||||
 | 
					"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
 | 
				
			||||||
"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
 | 
					"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
 | 
				
			||||||
 | 
					"checksum pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4c2cb169402a3eb1ba034a7cc7d95b8b1c106e9be5ba4be79a5a93dc1a2795f4"
 | 
				
			||||||
 | 
					"checksum pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d6eb49268e69dd0c1da5d3001a61aac08e2e9d2bfbe4ae4b19b9963c998f6453"
 | 
				
			||||||
 | 
					"checksum pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "72d5370d90f49f70bd033c3d75e87fc529fbfff9d6f7cccef07d6170079d91ea"
 | 
				
			||||||
"checksum proc-macro2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afdc77cc74ec70ed262262942ebb7dac3d479e9e5cfa2da1841c0806f6cdabcc"
 | 
					"checksum proc-macro2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afdc77cc74ec70ed262262942ebb7dac3d479e9e5cfa2da1841c0806f6cdabcc"
 | 
				
			||||||
"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
 | 
					"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
 | 
				
			||||||
 | 
					"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad"
 | 
				
			||||||
 | 
					"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
 | 
				
			||||||
"checksum serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)" = "9796c9b7ba2ffe7a9ce53c2287dfc48080f4b2b362fcc245a259b3a7201119dd"
 | 
					"checksum serde 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)" = "9796c9b7ba2ffe7a9ce53c2287dfc48080f4b2b362fcc245a259b3a7201119dd"
 | 
				
			||||||
"checksum serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)" = "4b133a43a1ecd55d4086bd5b4dc6c1751c68b1bfbeba7a5040442022c7e7c02e"
 | 
					"checksum serde_derive 1.0.101 (registry+https://github.com/rust-lang/crates.io-index)" = "4b133a43a1ecd55d4086bd5b4dc6c1751c68b1bfbeba7a5040442022c7e7c02e"
 | 
				
			||||||
"checksum serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "38b08a9a90e5260fe01c6480ec7c811606df6d3a660415808c3c3fa8ed95b582"
 | 
					"checksum serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "38b08a9a90e5260fe01c6480ec7c811606df6d3a660415808c3c3fa8ed95b582"
 | 
				
			||||||
"checksum syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
 | 
					"checksum syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
 | 
				
			||||||
 | 
					"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
 | 
				
			||||||
"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
 | 
					"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
 | 
				
			||||||
 | 
					"checksum utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba"
 | 
				
			||||||
"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
 | 
					"checksum winapi 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-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 winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										24
									
								
								Cargo.toml
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								Cargo.toml
									
									
									
									
									
								
							@ -4,11 +4,35 @@ version = "0.1.0"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
bitflags = "1.0.*"
 | 
					bitflags = "1.0.*"
 | 
				
			||||||
 | 
					clap = "2.32.*"
 | 
				
			||||||
maplit = "1.0.*"
 | 
					maplit = "1.0.*"
 | 
				
			||||||
 | 
					regex = "1.1.*"
 | 
				
			||||||
serde = { version = "1.0.*", features = ["derive"] }
 | 
					serde = { version = "1.0.*", features = ["derive"] }
 | 
				
			||||||
serde_yaml = "0.8.*"
 | 
					serde_yaml = "0.8.*"
 | 
				
			||||||
xkbcommon = { version = "0.4.*", features = ["wayland"] }
 | 
					xkbcommon = { version = "0.4.*", features = ["wayland"] }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[dependencies.gio]
 | 
				
			||||||
 | 
					version = ""
 | 
				
			||||||
 | 
					features = ["v2_44"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[dependencies.glib]
 | 
				
			||||||
 | 
					version = ""
 | 
				
			||||||
 | 
					features = ["v2_44"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[dependencies.glib-sys]
 | 
				
			||||||
 | 
					version = ""
 | 
				
			||||||
 | 
					features = ["v2_44"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[dependencies.gtk]
 | 
				
			||||||
 | 
					version = "0.5.*"
 | 
				
			||||||
 | 
					features = ["v3_22"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[dependencies.gtk-sys]
 | 
				
			||||||
 | 
					version = ""
 | 
				
			||||||
 | 
					features = ["v3_22"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[lib]
 | 
					[lib]
 | 
				
			||||||
name = "rs"
 | 
					name = "rs"
 | 
				
			||||||
path = "src/lib.rs"
 | 
					path = "src/lib.rs"
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										80
									
								
								HACKING.md
									
									
									
									
									
								
							
							
						
						
									
										80
									
								
								HACKING.md
									
									
									
									
									
								
							@ -3,6 +3,25 @@ Hacking
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
This document describes the standards for modifying and maintaining the *squeekboard* project.
 | 
					This document describes the standards for modifying and maintaining the *squeekboard* project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Development environment
 | 
				
			||||||
 | 
					-----------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*Squeekboard* is regularly built and tested on [the develpment environment](https://developer.puri.sm/Librem5/Development_Environment.html).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Recent Fedora releases are likely to be tested as well.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Dependencies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					On a Debian based system run
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					sudo apt-get -y install build-essential
 | 
				
			||||||
 | 
					sudo apt-get -y build-dep .
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For an explicit list of dependencies check the `Build-Depends` entry in the
 | 
				
			||||||
 | 
					[debian/control][] file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Testing
 | 
					Testing
 | 
				
			||||||
-------
 | 
					-------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -11,7 +30,7 @@ Most common testing is done in CI. Occasionally, and for each release, do perfor
 | 
				
			|||||||
- the application draws correctly
 | 
					- the application draws correctly
 | 
				
			||||||
- it shows when relevant
 | 
					- it shows when relevant
 | 
				
			||||||
- it changes layouts
 | 
					- it changes layouts
 | 
				
			||||||
- it changes levels
 | 
					- it changes views
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Testing with an application:
 | 
					Testing with an application:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -28,11 +47,62 @@ $ busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b false
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Testing layouts:
 | 
					Testing layouts:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Layouts can be selected using the GNOME Settings application.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ua')]"
 | 
					# define all available layouts. First one is currently selected.
 | 
				
			||||||
$ gsettings set org.gnome.desktop.input-sources current 1
 | 
					$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'de')]"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Coding
 | 
				
			||||||
 | 
					------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Code submitted should roughly match the style of surrounding code. Things that will *not* be accepted are ones that often lead to errors:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- skipping brackets `{}` after every `if()`, `else`, and similar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Bad example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					if (foo)
 | 
				
			||||||
 | 
					  bar();
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Good example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					if (foo) {
 | 
				
			||||||
 | 
					  bar();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- mixing tabs and spaces in the same block of code (or config)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Strongly encouraged:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- don't make lines too long. If it's longer than ~80 characters, it's probably unreadable already, and the code needs to be clarified;
 | 
				
			||||||
 | 
					- put operators in the beginning of a continuation line
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Bad example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					foobar = verylongexpression +
 | 
				
			||||||
 | 
					    anotherverylongexpression + 
 | 
				
			||||||
 | 
					    yetanotherexpression;
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Good example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					foobar = verylongexpression
 | 
				
			||||||
 | 
					    + anotherverylongexpression
 | 
				
			||||||
 | 
					    + yetanotherexpression;
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- use `///` for documentation comments in front of definitions and `/*! ... */` for documentation comments in the beginning of modules (see [Rust doc-comments](https://doc.rust-lang.org/reference/comments.html#doc-comments))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If in doubt, check [PEP8](https://github.com/rust-dev-tools/fmt-rfcs/blob/master/guide/guide.md), the [kernel coding style](https://www.kernel.org/doc/html/v4.10/process/coding-style.html), or the [Rust style guide](https://github.com/rust-dev-tools/fmt-rfcs/blob/master/guide/guide.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Maintenance
 | 
					Maintenance
 | 
				
			||||||
-----------
 | 
					-----------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -42,7 +112,7 @@ Use the `cargo.sh` script for maintaining the Cargo part of the build. The scrip
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
cd build_dir
 | 
					cd build_dir
 | 
				
			||||||
sh /source_path/cargo.sh '' test
 | 
					sh /source_path/cargo.sh test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Cargo dependencies
 | 
					### Cargo dependencies
 | 
				
			||||||
@ -53,6 +123,6 @@ Dependencies must be specified in `Cargo.toml` with 2 numbers: "major.minor". Si
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
cd build_dir
 | 
					cd build_dir
 | 
				
			||||||
sh /source_path/cargo.sh '' update
 | 
					sh /source_path/cargo.sh update
 | 
				
			||||||
ninja test
 | 
					ninja test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										7
									
								
								cargo.sh
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								cargo.sh
									
									
									
									
									
								
							@ -11,14 +11,7 @@ SOURCE_DIR="$(dirname "$SCRIPT_PATH")"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CARGO_TARGET_DIR="$(pwd)"
 | 
					CARGO_TARGET_DIR="$(pwd)"
 | 
				
			||||||
export CARGO_TARGET_DIR
 | 
					export CARGO_TARGET_DIR
 | 
				
			||||||
if [ -n "${1}" ]; then
 | 
					 | 
				
			||||||
    OUT_PATH="$(realpath "$1")"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
cd "$SOURCE_DIR"
 | 
					cd "$SOURCE_DIR"
 | 
				
			||||||
shift
 | 
					 | 
				
			||||||
cargo "$@"
 | 
					cargo "$@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ -n "${OUT_PATH}" ]; then
 | 
					 | 
				
			||||||
    cp "${CARGO_TARGET_DIR}"/debug/librs.a "${OUT_PATH}"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										34
									
								
								cargo_build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								cargo_build.sh
									
									
									
									
									
										Executable 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
 | 
				
			||||||
@ -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
 | 
					 | 
				
			||||||
@ -1,3 +0,0 @@
 | 
				
			|||||||
[D-BUS Service]
 | 
					 | 
				
			||||||
Name=org.fedorahosted.Eekboard
 | 
					 | 
				
			||||||
Exec=@bindir@/eekboard-server
 | 
					 | 
				
			||||||
@ -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/de.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								data/keyboards/de.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,89 @@
 | 
				
			|||||||
 | 
					# Maintained by: Mark Müller <markmueller86@gmail.com>
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					bounds: { x: 0, y: 1, width: 360, height: 208 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					outlines:
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 35.33, height: 52 }
 | 
				
			||||||
 | 
					    altline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 52.67, height: 52 }
 | 
				
			||||||
 | 
					    wide:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
 | 
					    spaceline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 99.67, height: 52 }
 | 
				
			||||||
 | 
					    special:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 35.33, height: 52 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					views:
 | 
				
			||||||
 | 
					    base:
 | 
				
			||||||
 | 
					        - "q w e r t z u i o p"
 | 
				
			||||||
 | 
					        - "a s d f g h j k l"
 | 
				
			||||||
 | 
					        - "Shift_L   y x c v b n m  BackSpace"
 | 
				
			||||||
 | 
					        - "show_numbers show_eschars preferences         space        , . Return"
 | 
				
			||||||
 | 
					    upper:
 | 
				
			||||||
 | 
					        - "Q W E R T Z U I O P"
 | 
				
			||||||
 | 
					        - "A S D F G H J K L"
 | 
				
			||||||
 | 
					        - "Shift_L   Y X C V B N M  BackSpace"
 | 
				
			||||||
 | 
					        - "show_numbers show_eschars preferences         space        ! ? Return"
 | 
				
			||||||
 | 
					    numbers:
 | 
				
			||||||
 | 
					        - "1 2 3 4 5 6 7 8 9 0"
 | 
				
			||||||
 | 
					        - "@ # € % & - _ + ( )"
 | 
				
			||||||
 | 
					        - "show_symbols   , \" ' : = < >  BackSpace"
 | 
				
			||||||
 | 
					        - "show_letters show_eschars preferences         space        , . Return"
 | 
				
			||||||
 | 
					    symbols:
 | 
				
			||||||
 | 
					        - "~ ` ´ | · √ µ ÷ × ¶"
 | 
				
			||||||
 | 
					        - "© ® £ $ ¥ ^ ° * { }"
 | 
				
			||||||
 | 
					        - "show_numbers   \\ / § π τ [ ]  BackSpace"
 | 
				
			||||||
 | 
					        - "show_letters show_eschars preferences         space        , . Return"
 | 
				
			||||||
 | 
					    eschars:
 | 
				
			||||||
 | 
					        - "ä è é ö ü Ä È É Ö Ü"
 | 
				
			||||||
 | 
					        - "à â ê î ô À Â È Î Ô"
 | 
				
			||||||
 | 
					        - "show_numbers  « » ç Ç æ œ ß  BackSpace"
 | 
				
			||||||
 | 
					        - "show_letters show_eschars preferences         space        „ “ Return"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					buttons:
 | 
				
			||||||
 | 
					    Shift_L:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "upper"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "key-shift"
 | 
				
			||||||
 | 
					    BackSpace:
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
 | 
					    preferences:
 | 
				
			||||||
 | 
					        action: "show_prefs"
 | 
				
			||||||
 | 
					        outline: "special"
 | 
				
			||||||
 | 
					        icon: "keyboard-mode-symbolic"
 | 
				
			||||||
 | 
					    show_numbers:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "numbers"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "123"
 | 
				
			||||||
 | 
					    show_letters:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "abc"
 | 
				
			||||||
 | 
					    show_symbols:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "symbols"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "*/="
 | 
				
			||||||
 | 
					    show_eschars:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "eschars"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "äÄ"
 | 
				
			||||||
 | 
					    space:
 | 
				
			||||||
 | 
					        outline: "spaceline"
 | 
				
			||||||
 | 
					        label: " "
 | 
				
			||||||
 | 
					        text: " "
 | 
				
			||||||
 | 
					    Return:
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
							
								
								
									
										88
									
								
								data/keyboards/de_wide.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								data/keyboards/de_wide.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,88 @@
 | 
				
			|||||||
 | 
					# Maintained by: Mark Müller <markmueller86@gmail.com>
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					bounds: { x: 0, y: 1, width: 540, height: 168 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					outlines:
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 48, height: 42 }
 | 
				
			||||||
 | 
					    altline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 81, height: 42 }
 | 
				
			||||||
 | 
					    wide:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 108, height: 42 }
 | 
				
			||||||
 | 
					    spaceline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 216, height: 42 }
 | 
				
			||||||
 | 
					    special:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 48, height: 42 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					views:
 | 
				
			||||||
 | 
					    base:
 | 
				
			||||||
 | 
					        - "q w e r t z u i o p ü"
 | 
				
			||||||
 | 
					        - "a s d f g h j k l ö ä"
 | 
				
			||||||
 | 
					        - "Shift_L   y x c v b n m  BackSpace"
 | 
				
			||||||
 | 
					        - "show_numbers preferences         space        , . Return"
 | 
				
			||||||
 | 
					    upper:
 | 
				
			||||||
 | 
					        - "Q W E R T Z U I O P Ü"
 | 
				
			||||||
 | 
					        - "A S D F G H J K L Ö Ä"
 | 
				
			||||||
 | 
					        - "Shift_L   Y X C V B N M  BackSpace"
 | 
				
			||||||
 | 
					        - "show_numbers preferences         space        ! ? Return"
 | 
				
			||||||
 | 
					    numbers:
 | 
				
			||||||
 | 
					        - "1 2 3 4 5 6 7 8 9 0"
 | 
				
			||||||
 | 
					        - "@ # % & - _ + ( ) ß"
 | 
				
			||||||
 | 
					        - "show_symbols   , \" ' : = < >  BackSpace"
 | 
				
			||||||
 | 
					        - "show_letters preferences         space        , . Return"
 | 
				
			||||||
 | 
					    symbols:
 | 
				
			||||||
 | 
					        - "~ ` ´  · © ® ÷ × ¶"
 | 
				
			||||||
 | 
					        - "€ £ $ ¥ ^ ° * { } |"
 | 
				
			||||||
 | 
					        - "show_numbers   \\ / § π τ [ ]  BackSpace"
 | 
				
			||||||
 | 
					        - "show_letters preferences         space        , . Return"
 | 
				
			||||||
 | 
					    eschars:
 | 
				
			||||||
 | 
					        - "ä è é ö ü Ä È É Ö Ü"
 | 
				
			||||||
 | 
					        - "à â ê î ô À Â È Î Ô"
 | 
				
			||||||
 | 
					        - "show_numbers  « » ç Ç æ œ ß  BackSpace"
 | 
				
			||||||
 | 
					        - "show_letters preferences         space        „ “ Return"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					buttons:
 | 
				
			||||||
 | 
					    Shift_L:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "upper"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "key-shift"
 | 
				
			||||||
 | 
					    BackSpace:
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
 | 
					    preferences:
 | 
				
			||||||
 | 
					        action: "show_prefs"
 | 
				
			||||||
 | 
					        outline: "special"
 | 
				
			||||||
 | 
					        icon: "keyboard-mode-symbolic"
 | 
				
			||||||
 | 
					    show_numbers:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "numbers"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "123"
 | 
				
			||||||
 | 
					    show_letters:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "abc"
 | 
				
			||||||
 | 
					    show_symbols:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "symbols"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "*/="
 | 
				
			||||||
 | 
					    show_eschars:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "eschars"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "äÄ"
 | 
				
			||||||
 | 
					    space:
 | 
				
			||||||
 | 
					        outline: "spaceline"
 | 
				
			||||||
 | 
					        text: " "
 | 
				
			||||||
 | 
					    Return:
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
@ -2,16 +2,15 @@
 | 
				
			|||||||
# University of the Aegean, Department of Mathematics, atsol@aegean.gr
 | 
					# University of the Aegean, Department of Mathematics, atsol@aegean.gr
 | 
				
			||||||
# Sep 2019
 | 
					# Sep 2019
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
row_spacing: 11.33
 | 
					bounds: { x: 0, y: 0.33, width: 360, height: 210 }
 | 
				
			||||||
button_spacing: 4.67
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bounds: { x: 0, y: 6.33, width: 426, height: 250 }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
outlines:
 | 
					outlines:
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 32, height: 52 }
 | 
					        bounds: { x: 0, y: 0, width: 32, height: 52 }
 | 
				
			||||||
    altline:
 | 
					    altline:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
 | 
					        bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
 | 
				
			||||||
 | 
					    wide:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
    outline7:
 | 
					    outline7:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
 | 
					        bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
 | 
				
			||||||
    spaceline:
 | 
					    spaceline:
 | 
				
			||||||
@ -22,7 +21,7 @@ views:
 | 
				
			|||||||
        - "; ς ε ρ τ υ θ ι ο π !"
 | 
					        - "; ς ε ρ τ υ θ ι ο π !"
 | 
				
			||||||
        - "α σ δ φ γ η ξ κ λ show_accented"
 | 
					        - "α σ δ φ γ η ξ κ λ show_accented"
 | 
				
			||||||
        - "Shift_L ζ χ ψ ω β ν μ , BackSpace"
 | 
					        - "Shift_L ζ χ ψ ω β ν μ , BackSpace"
 | 
				
			||||||
        - "show_numbers preferences space . Return"
 | 
					        - "show_numbers preferences space period Return"
 | 
				
			||||||
    upper:
 | 
					    upper:
 | 
				
			||||||
        - ": EuroSign Ε Ρ Τ Υ Θ Ι Ο Π"
 | 
					        - ": EuroSign Ε Ρ Τ Υ Θ Ι Ο Π"
 | 
				
			||||||
        - "Α Σ Δ Φ Γ Η Ξ Κ Λ show_accented"
 | 
					        - "Α Σ Δ Φ Γ Η Ξ Κ Λ show_accented"
 | 
				
			||||||
@ -54,6 +53,7 @@ buttons:
 | 
				
			|||||||
    BackSpace:
 | 
					    BackSpace:
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        icon: "edit-clear-symbolic"
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
    preferences:
 | 
					    preferences:
 | 
				
			||||||
        action: "show_prefs"
 | 
					        action: "show_prefs"
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
@ -86,112 +86,113 @@ buttons:
 | 
				
			|||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        label: "αι"
 | 
					        label: "αι"
 | 
				
			||||||
    period:
 | 
					    period:
 | 
				
			||||||
        outline: altline
 | 
					        outline: "altline"
 | 
				
			||||||
        label: "."
 | 
					        text: "."
 | 
				
			||||||
    space:
 | 
					    space:
 | 
				
			||||||
        outline: spaceline
 | 
					        outline: spaceline
 | 
				
			||||||
        label: " "
 | 
					        text: " "
 | 
				
			||||||
    Return:
 | 
					    Return:
 | 
				
			||||||
        outline: outline7
 | 
					        outline: "wide"
 | 
				
			||||||
        icon: "key-enter"
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
    aring:
 | 
					    aring:
 | 
				
			||||||
        label: "å"
 | 
					        text: "å"
 | 
				
			||||||
    Aring:
 | 
					    Aring:
 | 
				
			||||||
        label: "Å"
 | 
					        text: "Å"
 | 
				
			||||||
    oslash:
 | 
					    oslash:
 | 
				
			||||||
        label: "ø"
 | 
					        text: "ø"
 | 
				
			||||||
    Oslash:
 | 
					    Oslash:
 | 
				
			||||||
        label: "Ø"
 | 
					        text: "Ø"
 | 
				
			||||||
    ae:
 | 
					    ae:
 | 
				
			||||||
        label: "æ"
 | 
					        text: "æ"
 | 
				
			||||||
    AE:
 | 
					    AE:
 | 
				
			||||||
        label: "Æ"
 | 
					        text: "Æ"
 | 
				
			||||||
    asterisk:
 | 
					    asterisk:
 | 
				
			||||||
        label: "*"
 | 
					        text: "*"
 | 
				
			||||||
    asciitilde:
 | 
					    asciitilde:
 | 
				
			||||||
        label: "~"
 | 
					        text: "~"
 | 
				
			||||||
    quoteleft:
 | 
					    quoteleft:
 | 
				
			||||||
        label: "`"
 | 
					        text: "`"
 | 
				
			||||||
    bar:
 | 
					    bar:
 | 
				
			||||||
        label: "|"
 | 
					        text: "|"
 | 
				
			||||||
    U00B7:
 | 
					    U00B7:
 | 
				
			||||||
        label: "·"
 | 
					        text: "·"
 | 
				
			||||||
    squareroot:
 | 
					    squareroot:
 | 
				
			||||||
        label: "√"
 | 
					        text: "√"
 | 
				
			||||||
    Greek_pi:
 | 
					    Greek_pi:
 | 
				
			||||||
        label: "π"
 | 
					        text: "π"
 | 
				
			||||||
    division:
 | 
					    division:
 | 
				
			||||||
        label: "÷"
 | 
					        text: "÷"
 | 
				
			||||||
    multiply:
 | 
					    multiply:
 | 
				
			||||||
        label: "×"
 | 
					        text: "×"
 | 
				
			||||||
    paragraph:
 | 
					    paragraph:
 | 
				
			||||||
        label: "¶"
 | 
					        text: "¶"
 | 
				
			||||||
    Greek_tau:
 | 
					    Greek_tau:
 | 
				
			||||||
        label: "τ"
 | 
					        text: "τ"
 | 
				
			||||||
    copyright:
 | 
					    copyright:
 | 
				
			||||||
        label: "©"
 | 
					        text: "©"
 | 
				
			||||||
    numbersign:
 | 
					    numbersign:
 | 
				
			||||||
        label: "#"
 | 
					        text: "#"
 | 
				
			||||||
    U00AE:
 | 
					    U00AE:
 | 
				
			||||||
        label: "®"
 | 
					        text: "®"
 | 
				
			||||||
    at:
 | 
					    at:
 | 
				
			||||||
        label: "@"
 | 
					        text: "@"
 | 
				
			||||||
    dollar:
 | 
					    dollar:
 | 
				
			||||||
        label: "$"
 | 
					        text: "$"
 | 
				
			||||||
    U00A3:
 | 
					    U00A3:
 | 
				
			||||||
        label: "£"
 | 
					        text: "£"
 | 
				
			||||||
    percent:
 | 
					    percent:
 | 
				
			||||||
        label: "%"
 | 
					        text: "%"
 | 
				
			||||||
    EuroSign:
 | 
					    EuroSign:
 | 
				
			||||||
        label: "€"
 | 
					        text: "€"
 | 
				
			||||||
    ampersand:
 | 
					    ampersand:
 | 
				
			||||||
        label: "&"
 | 
					        text: "&"
 | 
				
			||||||
    U00A5:
 | 
					    U00A5:
 | 
				
			||||||
        label: "¥"
 | 
					        text: "¥"
 | 
				
			||||||
    minus:
 | 
					    minus:
 | 
				
			||||||
        label: "-"
 | 
					        text: "-"
 | 
				
			||||||
    asciicircum:
 | 
					    asciicircum:
 | 
				
			||||||
        label: "^"
 | 
					        text: "^"
 | 
				
			||||||
    underscore:
 | 
					    underscore:
 | 
				
			||||||
        label: "_"
 | 
					        text: "_"
 | 
				
			||||||
    degree:
 | 
					    degree:
 | 
				
			||||||
        label: "°"
 | 
					        text: "°"
 | 
				
			||||||
    plus:
 | 
					    plus:
 | 
				
			||||||
        label: "+"
 | 
					        text: "+"
 | 
				
			||||||
    equal:
 | 
					    equal:
 | 
				
			||||||
        label: "="
 | 
					        text: "="
 | 
				
			||||||
    parenleft:
 | 
					    parenleft:
 | 
				
			||||||
        label: "("
 | 
					        text: "("
 | 
				
			||||||
    parenright:
 | 
					    parenright:
 | 
				
			||||||
        label: ")"
 | 
					        text: ")"
 | 
				
			||||||
    braceleft:
 | 
					    braceleft:
 | 
				
			||||||
        label: "{"
 | 
					        text: "{"
 | 
				
			||||||
    braceright:
 | 
					    braceright:
 | 
				
			||||||
        label: "}"
 | 
					        text: "}"
 | 
				
			||||||
    comma:
 | 
					    comma:
 | 
				
			||||||
        label: ","
 | 
					        text: ","
 | 
				
			||||||
    backslash:
 | 
					    backslash:
 | 
				
			||||||
        label: "\\"
 | 
					        text: "\\"
 | 
				
			||||||
    slash:
 | 
					    slash:
 | 
				
			||||||
        label: "/"
 | 
					        text: "/"
 | 
				
			||||||
    quotedbl:
 | 
					    quotedbl:
 | 
				
			||||||
        label: "\""
 | 
					        text: "\""
 | 
				
			||||||
    quoteright:
 | 
					    quoteright:
 | 
				
			||||||
        label: "'"
 | 
					        text: "'"
 | 
				
			||||||
    less:
 | 
					    less:
 | 
				
			||||||
        label: "<"
 | 
					        text: "<"
 | 
				
			||||||
    greater:
 | 
					    greater:
 | 
				
			||||||
        label: ">"
 | 
					        text: ">"
 | 
				
			||||||
    colon:
 | 
					    colon:
 | 
				
			||||||
        label: ":"
 | 
					        text: ":"
 | 
				
			||||||
    semicolon:
 | 
					    semicolon:
 | 
				
			||||||
        label: ";"
 | 
					        text: ";"
 | 
				
			||||||
    exclam:
 | 
					    exclam:
 | 
				
			||||||
        label: "!"
 | 
					        text: "!"
 | 
				
			||||||
    question:
 | 
					    question:
 | 
				
			||||||
        label: "?"
 | 
					        text: "?"
 | 
				
			||||||
    bracketleft:
 | 
					    bracketleft:
 | 
				
			||||||
        label: "["
 | 
					        text: "["
 | 
				
			||||||
    bracketright:
 | 
					    bracketright:
 | 
				
			||||||
        label: "]"
 | 
					        text: "]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,20 +1,17 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
row_spacing: 11.33
 | 
					bounds: { x: 0, y: 1, width: 360, height: 210 }
 | 
				
			||||||
button_spacing: 4.67
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bounds: { x: 0, y: 1, width: 360, height: 198 }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
outlines:
 | 
					outlines:
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 30.67, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 35.33, height: 52 }
 | 
				
			||||||
    altline:
 | 
					    altline:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 48, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 52.67, height: 52 }
 | 
				
			||||||
    wide:
 | 
					    wide:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 57.33, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
    spaceline:
 | 
					    spaceline:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 95.00, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 99.67, height: 52 }
 | 
				
			||||||
    special:
 | 
					    special:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 39.33, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 44, height: 52 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
views:
 | 
					views:
 | 
				
			||||||
    base:
 | 
					    base:
 | 
				
			||||||
@ -54,6 +51,7 @@ buttons:
 | 
				
			|||||||
    BackSpace:
 | 
					    BackSpace:
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        icon: "edit-clear-symbolic"
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
    preferences:
 | 
					    preferences:
 | 
				
			||||||
        action: "show_prefs"
 | 
					        action: "show_prefs"
 | 
				
			||||||
        outline: "default"
 | 
					        outline: "default"
 | 
				
			||||||
@ -83,14 +81,14 @@ buttons:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    period:
 | 
					    period:
 | 
				
			||||||
        outline: "default"
 | 
					        outline: "default"
 | 
				
			||||||
        label: "."
 | 
					        text: "."
 | 
				
			||||||
    space:
 | 
					    space:
 | 
				
			||||||
        outline: "spaceline"
 | 
					        outline: "spaceline"
 | 
				
			||||||
        label: " "
 | 
					        text: " "
 | 
				
			||||||
    Return:
 | 
					    Return:
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        icon: "key-enter"
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
    colon:
 | 
					    colon:
 | 
				
			||||||
        label: ":"
 | 
					        text: ":"
 | 
				
			||||||
    "\"":
 | 
					
 | 
				
			||||||
        keysym: "quotedbl"
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,14 +1,13 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
row_spacing: 11.33
 | 
					bounds: { x: 0, y: 0.33, width: 360, height: 210 }
 | 
				
			||||||
button_spacing: 4.67
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bounds: { x: 0, y: 6.33, width: 426, height: 250 }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
outlines:
 | 
					outlines:
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 32, height: 52 }
 | 
					        bounds: { x: 0, y: 0, width: 32, height: 52 }
 | 
				
			||||||
    altline:
 | 
					    altline:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
 | 
					        bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
 | 
				
			||||||
 | 
					    wide:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
    outline7:
 | 
					    outline7:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
 | 
					        bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
 | 
				
			||||||
    spaceline:
 | 
					    spaceline:
 | 
				
			||||||
@ -16,25 +15,25 @@ outlines:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
views:
 | 
					views:
 | 
				
			||||||
    base:
 | 
					    base:
 | 
				
			||||||
        - "q w e r t y u i o p aring"
 | 
					        - "q w e r t y u i o p å"
 | 
				
			||||||
        - "a s d f g h j k l oslash ae"
 | 
					        - "a s d f g h j k l ö ä"
 | 
				
			||||||
        - "Shift_L   z x c v b n m  BackSpace"
 | 
					        - "Shift_L   z x c v b n m  BackSpace"
 | 
				
			||||||
        - "show_numbers preferences         space        period    Return"
 | 
					        - "show_numbers preferences         space        .    Return"
 | 
				
			||||||
    upper:
 | 
					    upper:
 | 
				
			||||||
        - "Q W E R T Y U I O P Aring"
 | 
					        - "Q W E R T Y U I O P Å"
 | 
				
			||||||
        - "A S D F G H J K L Oslash AE"
 | 
					        - "A S D F G H J K L Ö Ä"
 | 
				
			||||||
        - "Shift_L   Z X C V B N M  BackSpace"
 | 
					        - "Shift_L   Z X C V B N M  BackSpace"
 | 
				
			||||||
        - "show_numbers preferences         space        period    Return"
 | 
					        - "show_numbers preferences         space        .    Return"
 | 
				
			||||||
    numbers:
 | 
					    numbers:
 | 
				
			||||||
        - "1 2 3 4 5 6 7 8 9 0"
 | 
					        - "1 2 3 4 5 6 7 8 9 0"
 | 
				
			||||||
        - "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
 | 
					        - "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
 | 
				
			||||||
        - "show_symbols   comma quotedbl quoteright colon semicolon exclam question  BackSpace"
 | 
					        - "show_symbols   comma quotedbl quoteright colon semicolon exclam question  BackSpace"
 | 
				
			||||||
        - "show_letters preferences         space        period    Return"
 | 
					        - "show_letters preferences         space        .    Return"
 | 
				
			||||||
    symbols:
 | 
					    symbols:
 | 
				
			||||||
        - "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
 | 
					        - "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
 | 
				
			||||||
        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
 | 
					        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
 | 
				
			||||||
        - "show_numbers   backslash slash less greater equal bracketleft bracketright  BackSpace"
 | 
					        - "show_numbers   backslash slash less greater equal bracketleft bracketright  BackSpace"
 | 
				
			||||||
        - "show_letters preferences         space        period    Return"
 | 
					        - "show_letters preferences         space        .    Return"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
buttons:
 | 
					buttons:
 | 
				
			||||||
    Shift_L:
 | 
					    Shift_L:
 | 
				
			||||||
@ -47,6 +46,7 @@ buttons:
 | 
				
			|||||||
    BackSpace:
 | 
					    BackSpace:
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        icon: "edit-clear-symbolic"
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
    preferences:
 | 
					    preferences:
 | 
				
			||||||
        action: "show_prefs"
 | 
					        action: "show_prefs"
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
@ -66,113 +66,113 @@ buttons:
 | 
				
			|||||||
            set_view: "symbols"
 | 
					            set_view: "symbols"
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        label: "*/="
 | 
					        label: "*/="
 | 
				
			||||||
    period:
 | 
					    ".":
 | 
				
			||||||
        outline: altline
 | 
					        outline: altline
 | 
				
			||||||
        label: "."
 | 
					 | 
				
			||||||
    space:
 | 
					    space:
 | 
				
			||||||
        outline: spaceline
 | 
					        outline: spaceline
 | 
				
			||||||
        label: " "
 | 
					        text: " "
 | 
				
			||||||
    Return:
 | 
					    Return:
 | 
				
			||||||
        outline: outline7
 | 
					        outline: "wide"
 | 
				
			||||||
        icon: "key-enter"
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
    aring:
 | 
					    aring:
 | 
				
			||||||
        label: "å"
 | 
					        text: "å"
 | 
				
			||||||
    Aring:
 | 
					    Aring:
 | 
				
			||||||
        label: "Å"
 | 
					        text: "Å"
 | 
				
			||||||
    oslash:
 | 
					    ouml:
 | 
				
			||||||
        label: "ø"
 | 
					        text: "ö"
 | 
				
			||||||
    Oslash:
 | 
					    Ouml:
 | 
				
			||||||
        label: "Ø"
 | 
					        text: "Ö"
 | 
				
			||||||
    ae:
 | 
					    auml:
 | 
				
			||||||
        label: "æ"
 | 
					        text: "ä"
 | 
				
			||||||
    AE:
 | 
					    Auml:
 | 
				
			||||||
        label: "Æ"
 | 
					        text: "Ä"
 | 
				
			||||||
    asterisk:
 | 
					    asterisk:
 | 
				
			||||||
        label: "*"
 | 
					        text: "*"
 | 
				
			||||||
    asciitilde:
 | 
					    asciitilde:
 | 
				
			||||||
        label: "~"
 | 
					        text: "~"
 | 
				
			||||||
    quoteleft:
 | 
					    quoteleft:
 | 
				
			||||||
        label: "`"
 | 
					        text: "`"
 | 
				
			||||||
    bar:
 | 
					    bar:
 | 
				
			||||||
        label: "|"
 | 
					        text: "|"
 | 
				
			||||||
    U00B7:
 | 
					    U00B7:
 | 
				
			||||||
        label: "·"
 | 
					        text: "·"
 | 
				
			||||||
    squareroot:
 | 
					    squareroot:
 | 
				
			||||||
        label: "√"
 | 
					        text: "√"
 | 
				
			||||||
    Greek_pi:
 | 
					    Greek_pi:
 | 
				
			||||||
        label: "π"
 | 
					        text: "π"
 | 
				
			||||||
    division:
 | 
					    division:
 | 
				
			||||||
        label: "÷"
 | 
					        text: "÷"
 | 
				
			||||||
    multiply:
 | 
					    multiply:
 | 
				
			||||||
        label: "×"
 | 
					        text: "×"
 | 
				
			||||||
    paragraph:
 | 
					    paragraph:
 | 
				
			||||||
        label: "¶"
 | 
					        text: "¶"
 | 
				
			||||||
    Greek_tau:
 | 
					    Greek_tau:
 | 
				
			||||||
        label: "τ"
 | 
					        text: "τ"
 | 
				
			||||||
    copyright:
 | 
					    copyright:
 | 
				
			||||||
        label: "©"
 | 
					        text: "©"
 | 
				
			||||||
    numbersign:
 | 
					    numbersign:
 | 
				
			||||||
        label: "#"
 | 
					        text: "#"
 | 
				
			||||||
    U00AE:
 | 
					    U00AE:
 | 
				
			||||||
        label: "®"
 | 
					        text: "®"
 | 
				
			||||||
    at:
 | 
					    at:
 | 
				
			||||||
        label: "@"
 | 
					        text: "@"
 | 
				
			||||||
    dollar:
 | 
					    dollar:
 | 
				
			||||||
        label: "$"
 | 
					        text: "$"
 | 
				
			||||||
    U00A3:
 | 
					    U00A3:
 | 
				
			||||||
        label: "£"
 | 
					        text: "£"
 | 
				
			||||||
    percent:
 | 
					    percent:
 | 
				
			||||||
        label: "%"
 | 
					        text: "%"
 | 
				
			||||||
    EuroSign:
 | 
					    EuroSign:
 | 
				
			||||||
        label: "€"
 | 
					        text: "€"
 | 
				
			||||||
    ampersand:
 | 
					    ampersand:
 | 
				
			||||||
        label: "&"
 | 
					        text: "&"
 | 
				
			||||||
    U00A5:
 | 
					    U00A5:
 | 
				
			||||||
        label: "¥"
 | 
					        text: "¥"
 | 
				
			||||||
    minus:
 | 
					    minus:
 | 
				
			||||||
        label: "-"
 | 
					        text: "-"
 | 
				
			||||||
    asciicircum:
 | 
					    asciicircum:
 | 
				
			||||||
        label: "^"
 | 
					        text: "^"
 | 
				
			||||||
    underscore:
 | 
					    underscore:
 | 
				
			||||||
        label: "_"
 | 
					        text: "_"
 | 
				
			||||||
    degree:
 | 
					    degree:
 | 
				
			||||||
        label: "°"
 | 
					        text: "°"
 | 
				
			||||||
    plus:
 | 
					    plus:
 | 
				
			||||||
        label: "+"
 | 
					        text: "+"
 | 
				
			||||||
    equal:
 | 
					    equal:
 | 
				
			||||||
        label: "="
 | 
					        text: "="
 | 
				
			||||||
    parenleft:
 | 
					    parenleft:
 | 
				
			||||||
        label: "("
 | 
					        text: "("
 | 
				
			||||||
    parenright:
 | 
					    parenright:
 | 
				
			||||||
        label: ")"
 | 
					        text: ")"
 | 
				
			||||||
    braceleft:
 | 
					    braceleft:
 | 
				
			||||||
        label: "{"
 | 
					        text: "{"
 | 
				
			||||||
    braceright:
 | 
					    braceright:
 | 
				
			||||||
        label: "}"
 | 
					        text: "}"
 | 
				
			||||||
    comma:
 | 
					    comma:
 | 
				
			||||||
        label: ","
 | 
					        text: ","
 | 
				
			||||||
    backslash:
 | 
					    backslash:
 | 
				
			||||||
        label: "\\"
 | 
					        text: "\\"
 | 
				
			||||||
    slash:
 | 
					    slash:
 | 
				
			||||||
        label: "/"
 | 
					        text: "/"
 | 
				
			||||||
    quotedbl:
 | 
					    quotedbl:
 | 
				
			||||||
        label: "\""
 | 
					        text: "\""
 | 
				
			||||||
    quoteright:
 | 
					    quoteright:
 | 
				
			||||||
        label: "'"
 | 
					        text: "'"
 | 
				
			||||||
    less:
 | 
					    less:
 | 
				
			||||||
        label: "<"
 | 
					        text: "<"
 | 
				
			||||||
    greater:
 | 
					    greater:
 | 
				
			||||||
        label: ">"
 | 
					        text: ">"
 | 
				
			||||||
    colon:
 | 
					    colon:
 | 
				
			||||||
        label: ":"
 | 
					        text: ":"
 | 
				
			||||||
    semicolon:
 | 
					    semicolon:
 | 
				
			||||||
        label: ";"
 | 
					        text: ";"
 | 
				
			||||||
    exclam:
 | 
					    exclam:
 | 
				
			||||||
        label: "!"
 | 
					        text: "!"
 | 
				
			||||||
    question:
 | 
					    question:
 | 
				
			||||||
        label: "?"
 | 
					        text: "?"
 | 
				
			||||||
    bracketleft:
 | 
					    bracketleft:
 | 
				
			||||||
        label: "["
 | 
					        text: "["
 | 
				
			||||||
    bracketright:
 | 
					    bracketright:
 | 
				
			||||||
        label: "]"
 | 
					        text: "]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,47 +1,46 @@
 | 
				
			|||||||
 | 
					# Italian layout created by Antonio Pandolfo
 | 
				
			||||||
 | 
					# 03 october 2019
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
row_spacing: 11.33
 | 
					bounds: { x: 0, y: 1, width: 360, height: 210 }
 | 
				
			||||||
button_spacing: 4.67
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bounds: { x: 0, y: 1, width: 360, height: 198 }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
outlines:
 | 
					outlines:
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 30.67, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 35.33, height: 52 }
 | 
				
			||||||
    altline:
 | 
					    altline:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 48, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 52.67, height: 52 }
 | 
				
			||||||
    wide:
 | 
					    wide:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 57.33, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
    spaceline:
 | 
					    spaceline:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 95.00, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 99.67, height: 52 }
 | 
				
			||||||
    special:
 | 
					    special:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 39.33, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 44, height: 52 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
views:
 | 
					views:
 | 
				
			||||||
    base:
 | 
					    base:
 | 
				
			||||||
        - "q w e r t y u i o p"
 | 
					        - "q w e r t y u i o p"
 | 
				
			||||||
        - "a s d f g h j k l n"
 | 
					        - "a s d f g h j k l"
 | 
				
			||||||
        - "Shift_L   z x c v b n m  BackSpace"
 | 
					        - "Shift_L   z x c v b n m  BackSpace"
 | 
				
			||||||
        - "show_numbers show_eschar preferences         space        ? period Return"
 | 
					        - "show_numbers show_eschars preferences         space        , period Return"
 | 
				
			||||||
    upper:
 | 
					    upper:
 | 
				
			||||||
        - "Q W E R T Y U I O P"
 | 
					        - "Q W E R T Y U I O P"
 | 
				
			||||||
        - "A S D F G H J K L Ñ"
 | 
					        - "A S D F G H J K L"
 | 
				
			||||||
        - "Shift_L   Z X C V B N M  BackSpace"
 | 
					        - "Shift_L   Z X C V B N M  BackSpace"
 | 
				
			||||||
        - "show_numbers show_eschar preferences         space        ? period Return"
 | 
					        - "show_numbers show_eschars preferences         space        ? period Return"
 | 
				
			||||||
    numbers:
 | 
					    numbers:
 | 
				
			||||||
        - "1 2 3 4 5 6 7 8 9 0"
 | 
					        - "1 2 3 4 5 6 7 8 9 0"
 | 
				
			||||||
        - "@ # € % & - _ + ( )"
 | 
					        - "@ # € % & - _ + ( )"
 | 
				
			||||||
        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
 | 
					        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
 | 
				
			||||||
        - "show_letters show_eschar preferences         space        ? period Return"
 | 
					        - "show_letters show_eschars preferences         space        ? period Return"
 | 
				
			||||||
    symbols:
 | 
					    symbols:
 | 
				
			||||||
        - "~ ` | · √ π τ ÷ × ¶"
 | 
					        - "~ ` | · √ π τ ÷ × ¶"
 | 
				
			||||||
        - "© ® £ $ ¥ ^ ° * { }"
 | 
					        - "© ® £ $ ¥ ^ ° * { }"
 | 
				
			||||||
        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
 | 
					        - "show_numbers   \\ / < > = [ ]  BackSpace"
 | 
				
			||||||
        - "show_letters show_eschar preferences         space        ? period Return"
 | 
					        - "show_letters show_eschars preferences         space        ? period Return"
 | 
				
			||||||
    eschar:
 | 
					    eschars:
 | 
				
			||||||
        - "á é í ó ú Á É Í Ó Ú"
 | 
					        - "á é í ó ú Á É Í Ó Ú"
 | 
				
			||||||
        - "à è ì ò « » ù ! { }"
 | 
					        - "à è ì ò « » ù ! { }"
 | 
				
			||||||
        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
 | 
					        - "show_numbers   \\ / < > = [ ]  BackSpace"
 | 
				
			||||||
        - "show_letters show_symbols preferences         space        ? period Return"
 | 
					        - "show_letters show_eschars preferences         space        « » Return"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
buttons:
 | 
					buttons:
 | 
				
			||||||
    Shift_L:
 | 
					    Shift_L:
 | 
				
			||||||
@ -54,6 +53,7 @@ buttons:
 | 
				
			|||||||
    BackSpace:
 | 
					    BackSpace:
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        icon: "edit-clear-symbolic"
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
    preferences:
 | 
					    preferences:
 | 
				
			||||||
        action: "show_prefs"
 | 
					        action: "show_prefs"
 | 
				
			||||||
        outline: "default"
 | 
					        outline: "default"
 | 
				
			||||||
@ -72,15 +72,15 @@ buttons:
 | 
				
			|||||||
        action:
 | 
					        action:
 | 
				
			||||||
            set_view: "base"
 | 
					            set_view: "base"
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        label: "ABC"
 | 
					        label: "abc"
 | 
				
			||||||
    show_symbols:
 | 
					    show_symbols:
 | 
				
			||||||
        action:
 | 
					        action:
 | 
				
			||||||
            set_view: "symbols"
 | 
					            set_view: "symbols"
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        label: "*/="
 | 
					        label: "*/="
 | 
				
			||||||
    show_eschar:
 | 
					    show_eschars:
 | 
				
			||||||
        action:
 | 
					        action:
 | 
				
			||||||
            set_view: "eschar"
 | 
					            set_view: "eschars"
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        label: "àè"
 | 
					        label: "àè"
 | 
				
			||||||
    period:
 | 
					    period:
 | 
				
			||||||
@ -92,7 +92,8 @@ buttons:
 | 
				
			|||||||
    Return:
 | 
					    Return:
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        icon: "key-enter"
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
    colon:
 | 
					    colon:
 | 
				
			||||||
        label: ":"
 | 
					        label: ":"
 | 
				
			||||||
    "\"":
 | 
					    "\"":
 | 
				
			||||||
        keysym: "quotedbl"
 | 
					        keysym: "quotedbl"
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										532
									
								
								data/keyboards/jp+kana.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										532
									
								
								data/keyboards/jp+kana.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,532 @@
 | 
				
			|||||||
 | 
					# Maintained by: Mark Müller <markmueller86@gmail.com>
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					bounds: { x: 0, y: 1, width: 360, height: 208 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					outlines:
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
 | 
					    default-wide:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
 | 
					    altline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
 | 
					    wide:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
 | 
					    special:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					views:
 | 
				
			||||||
 | 
					    base: # hiragana
 | 
				
			||||||
 | 
					        - "preferences _a ka sa BackSpace"
 | 
				
			||||||
 | 
					        - "Left ta na ha Right"
 | 
				
			||||||
 | 
					        - "カタカナ ma ya ra space"
 | 
				
			||||||
 | 
					        - "switch2roman symbols wa punct Return"
 | 
				
			||||||
 | 
					    _a:
 | 
				
			||||||
 | 
					        - "preferences dummykey _a dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "あ い う え お"
 | 
				
			||||||
 | 
					        - "ぁ ぃ ぅ ぇ ぉ" # 2 code points each
 | 
				
			||||||
 | 
					        - "dummykey dummykey ゔ dummykey dummykey"
 | 
				
			||||||
 | 
					    ka:
 | 
				
			||||||
 | 
					        - "preferences dummykey ka dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "か き く け こ"
 | 
				
			||||||
 | 
					        - "が ぎ ぐ げ ご"
 | 
				
			||||||
 | 
					        - "ゕ dummykey dummykey ゖ dummykey"
 | 
				
			||||||
 | 
					    sa:
 | 
				
			||||||
 | 
					        - "preferences dummykey sa dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "さ し す せ そ"
 | 
				
			||||||
 | 
					        - "ざ じ ず ぜ ぞ"
 | 
				
			||||||
 | 
					    ta:
 | 
				
			||||||
 | 
					        - "preferences dummykey ta dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "た ち つ て と"
 | 
				
			||||||
 | 
					        - "だ ぢ づ で ど"
 | 
				
			||||||
 | 
					        - "dummykey dummykey っ dummykey dummykey"
 | 
				
			||||||
 | 
					    na:
 | 
				
			||||||
 | 
					        - "preferences dummykey na dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "な に ぬ ね の"
 | 
				
			||||||
 | 
					    ha:
 | 
				
			||||||
 | 
					        - "preferences dummykey ha dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "は ひ ふ へ ほ"
 | 
				
			||||||
 | 
					        - "ば び ぶ べ ぼ"
 | 
				
			||||||
 | 
					        - "ぱ ぴ ぷ ぺ ぽ"
 | 
				
			||||||
 | 
					    ma:
 | 
				
			||||||
 | 
					        - "preferences dummykey ma dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "ま み む め も"
 | 
				
			||||||
 | 
					    ya:
 | 
				
			||||||
 | 
					        - "preferences dummykey ya dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "や dummykey ゆ dummykey よ"
 | 
				
			||||||
 | 
					        - "ゃ dummykey ゅ dummykey ょ"
 | 
				
			||||||
 | 
					    ra:
 | 
				
			||||||
 | 
					        - "preferences dummykey ra dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "ら り る れ ろ"
 | 
				
			||||||
 | 
					    wa:
 | 
				
			||||||
 | 
					        - "preferences dummykey wa dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "わ ゐ dummykey ゑ を"
 | 
				
			||||||
 | 
					        - "ゎ dummykey ん dummykey dummykey"
 | 
				
			||||||
 | 
					    symbols:
 | 
				
			||||||
 | 
					        - "preferences dummykey symbols dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "「 」 ( ) §"
 | 
				
			||||||
 | 
					        - "【 】 < > ="
 | 
				
			||||||
 | 
					        - "+ * & % $ "
 | 
				
			||||||
 | 
					    punct:
 | 
				
			||||||
 | 
					        - "preferences dummykey punct dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "。 、 ? ! ー"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        - ": ; ・ 〜 …"
 | 
				
			||||||
 | 
					        - "♪ ” ’ ゙ ゚"
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					#a 	あア 	かカ 	さサ 	たタ 	なナ 	はハ 	まマ 	やヤ 	らラ 	わワ
 | 
				
			||||||
 | 
					#i 	いイ 	きキ 	しシ 	ちチ 	にニ 	ひヒ 	みミ 	※      りリ 	ゐヰ
 | 
				
			||||||
 | 
					#u 	うウ 	くク 	すス 	つツ 	ぬヌ 	ふフ 	むム 	ゆユ 	るル 	※
 | 
				
			||||||
 | 
					#e 	えエ 	けケ 	せセ 	てテ 	ねネ 	へヘ 	めメ 	※      れレ 	ゑヱ
 | 
				
			||||||
 | 
					#o 	おオ 	こコ 	そソ 	とト 	のノ 	ほホ 	もモ 	よヨ 	ろロ 	をヲ
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#      g       z       d       b       p      n
 | 
				
			||||||
 | 
					#a 	が ガ 	ざ ザ 	だ ダ 	ば バ 	ぱ パ   ん ン
 | 
				
			||||||
 | 
					#i 	ぎ ギ 	じ ジ 	ぢ ヂ 	び ビ 	ぴ ピ 
 | 
				
			||||||
 | 
					#u 	ぐ グ 	ず ズ 	づ ヅ 	ぶ ブ 	ぷ プ 
 | 
				
			||||||
 | 
					#e 	げ ゲ 	ぜ ゼ 	で デ 	べ ベ 	ぺ ペ 
 | 
				
			||||||
 | 
					#o 	ご ゴ 	ぞ ゾ 	ど ド 	ぼ ボ 	ぽ ポ 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    カタカナ: # katakana
 | 
				
			||||||
 | 
					        - "preferences _A KA SA BackSpace"
 | 
				
			||||||
 | 
					        - "Left TA NA HA Right"
 | 
				
			||||||
 | 
					        - "ひらがな MA YA RA space"
 | 
				
			||||||
 | 
					        - "switch2roman SYMBOLS WA PUNCT Return"
 | 
				
			||||||
 | 
					    _A:
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY _A DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "ア イ ウ エ オ"
 | 
				
			||||||
 | 
					        - "ァ ィ ゥ ェ ォ"
 | 
				
			||||||
 | 
					        - "DUMMYKEY DUMMYKEY ヴ DUMMYKEY DUMMYKEY"
 | 
				
			||||||
 | 
					    KA:
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY KA DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "カ キ ク ケ コ"
 | 
				
			||||||
 | 
					        - "ガ ギ グ ゲ ゴ"
 | 
				
			||||||
 | 
					        - "ヵ DUMMYKEY ㇰ ヶ DUMMYKEY"
 | 
				
			||||||
 | 
					    SA:
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY SA DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "サ シ ス セ ソ"
 | 
				
			||||||
 | 
					        - "ザ ジ ズ ゼ ゾ"
 | 
				
			||||||
 | 
					        - "DUMMYKEY ㇱ ㇲ DUMMYKEY DUMMYKEY"
 | 
				
			||||||
 | 
					    TA:
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY TA DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "タ チ ツ テ ト"
 | 
				
			||||||
 | 
					        - "ダ ヂ ヅ デ ド"
 | 
				
			||||||
 | 
					        - "DUMMYKEY DUMMYKEY ッ DUMMYKEY ㇳ"
 | 
				
			||||||
 | 
					    NA: 
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY NA DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "ナ ニ ヌ ネ ノ"
 | 
				
			||||||
 | 
					        - "DUMMYKEY DUMMYKEY ㇴ DUMMYKEY DUMMYKEY"
 | 
				
			||||||
 | 
					    HA:
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY HA DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "ハ ヒ フ ヘ ホ"
 | 
				
			||||||
 | 
					        - "バ ビ ブ ベ ボ"
 | 
				
			||||||
 | 
					        - "パ ピ プ ペ ポ"
 | 
				
			||||||
 | 
					    MA:
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY MA DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "マ ミ ム メ モ"
 | 
				
			||||||
 | 
					        - "DUMMYKEY DUMMYKEY ㇺ DUMMYKEY DUMMYKEY"
 | 
				
			||||||
 | 
					    YA:
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY YA DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "ヤ DUMMYKEY ユ DUMMYKEY ヨ"
 | 
				
			||||||
 | 
					        - "ャ DUMMYKEY ュ DUMMYKEY ョ"
 | 
				
			||||||
 | 
					    RA:
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY RA DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "ラ リ ル レ ロ"
 | 
				
			||||||
 | 
					        - "ㇻ ㇼ ㇽ ㇾ ㇿ"
 | 
				
			||||||
 | 
					    WA:
 | 
				
			||||||
 | 
					        - "preferences DUMMYKEY WA DUMMYKEY BackSpace"
 | 
				
			||||||
 | 
					        - "ワ ヰ DUMMYKEY ヱ ヲ"
 | 
				
			||||||
 | 
					        - "ヮ ヸ ン ヹ ヺ"
 | 
				
			||||||
 | 
					    # numbers view
 | 
				
			||||||
 | 
					    numbers:
 | 
				
			||||||
 | 
					        - "preferences 1 2 3 BackSpace"
 | 
				
			||||||
 | 
					        - "Left 4 5 6 Right"
 | 
				
			||||||
 | 
					        - "roman 7 8 9 space"
 | 
				
			||||||
 | 
					        - "switch2kana * 0 # Return"
 | 
				
			||||||
 | 
					    # Roman alphabet view
 | 
				
			||||||
 | 
					    roman:
 | 
				
			||||||
 | 
					        - "preferences RSYM1 ABC DEF BackSpace"
 | 
				
			||||||
 | 
					        - "Left GHI JKL MNO Right"
 | 
				
			||||||
 | 
					        - "ひらがな PQRS TUV WXYZ space"
 | 
				
			||||||
 | 
					        - "switch2num RSYM2 RSYM3 RSYM4 Return"
 | 
				
			||||||
 | 
					    RSYM1:
 | 
				
			||||||
 | 
					        - "preferences dummykey RSYM1 dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "@ # $ § :"
 | 
				
			||||||
 | 
					        - "| € ¥ £ 1"
 | 
				
			||||||
 | 
					    ABC:
 | 
				
			||||||
 | 
					        - "preferences dummykey ABC dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "A B C Ä ç"
 | 
				
			||||||
 | 
					        - "a b c ä 2"
 | 
				
			||||||
 | 
					    DEF:
 | 
				
			||||||
 | 
					        - "preferences dummykey DEF dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "D E F dummykey"
 | 
				
			||||||
 | 
					        - "d e f 3"
 | 
				
			||||||
 | 
					    GHI:
 | 
				
			||||||
 | 
					        - "preferences dummykey GHI dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "G H I dummykey"
 | 
				
			||||||
 | 
					        - "g h i 4"
 | 
				
			||||||
 | 
					    JKL:
 | 
				
			||||||
 | 
					        - "preferences dummykey JKL dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "J K L dummykey"
 | 
				
			||||||
 | 
					        - "j k l 5"
 | 
				
			||||||
 | 
					    MNO:
 | 
				
			||||||
 | 
					        - "preferences dummykey MNO dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "M N O Ö dummykey"
 | 
				
			||||||
 | 
					        - "m n o ö 6"
 | 
				
			||||||
 | 
					    PQRS:
 | 
				
			||||||
 | 
					        - "preferences dummykey PQRS dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "P Q R S ß"
 | 
				
			||||||
 | 
					        - "p q r s 7"
 | 
				
			||||||
 | 
					    TUV:
 | 
				
			||||||
 | 
					        - "preferences dummykey TUV dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "T U V Ü dummykey"
 | 
				
			||||||
 | 
					        - "t u v ü 8"
 | 
				
			||||||
 | 
					    WXYZ:
 | 
				
			||||||
 | 
					        - "preferences dummykey WXYZ dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "W X Y Z dummykey"
 | 
				
			||||||
 | 
					        - "w x y z 9"
 | 
				
			||||||
 | 
					    RSYM2:
 | 
				
			||||||
 | 
					        - "preferences dummykey RSYM2 dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "( ) ' \" ~"
 | 
				
			||||||
 | 
					        - "[ ] { } _"
 | 
				
			||||||
 | 
					    RSYM3:
 | 
				
			||||||
 | 
					        - "preferences dummykey RSYM3 dummykey BackSpace"
 | 
				
			||||||
 | 
					        - "+ - * / ="
 | 
				
			||||||
 | 
					        - "< > ^ ° 0"
 | 
				
			||||||
 | 
					    RSYM4:
 | 
				
			||||||
 | 
					        - "preferences dummykey RSYM4 dummykey BackSpace"
 | 
				
			||||||
 | 
					        - ", . ? ! ;"
 | 
				
			||||||
 | 
					        - "\\ ´ ` · ¶" 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					buttons:
 | 
				
			||||||
 | 
					    # following 4 buttons use the corresponding xkb name as keysym
 | 
				
			||||||
 | 
					    BackSpace:
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
 | 
					    Return:
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
 | 
					    Left:
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        label: "←"
 | 
				
			||||||
 | 
					        keysym: "Left"
 | 
				
			||||||
 | 
					    Right:
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        label: "→"
 | 
				
			||||||
 | 
					        keysym: "Right"
 | 
				
			||||||
 | 
					    # special button "preferences" is handled in the code
 | 
				
			||||||
 | 
					    preferences:
 | 
				
			||||||
 | 
					        action: "show_prefs"
 | 
				
			||||||
 | 
					        outline: "special"
 | 
				
			||||||
 | 
					        icon: "keyboard-mode-symbolic"
 | 
				
			||||||
 | 
					    # space button using text tag for ideographic space
 | 
				
			||||||
 | 
					    space:
 | 
				
			||||||
 | 
					        outline: "default-wide"
 | 
				
			||||||
 | 
					        label: "␣"
 | 
				
			||||||
 | 
					        text: " "
 | 
				
			||||||
 | 
					    # switch to number view
 | 
				
			||||||
 | 
					    numbers:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "numbers"
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        label: "123"
 | 
				
			||||||
 | 
					    # switch to latin characters
 | 
				
			||||||
 | 
					    roman:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "roman"
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        label: "ᴀʙᴄ"
 | 
				
			||||||
 | 
					    # toggle button with 3 different states
 | 
				
			||||||
 | 
					    switch2roman: # switch from kana to latin characters view
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "roman"
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        label: "あᴀ₁"
 | 
				
			||||||
 | 
					    switch2num: # switch from latin characters to numbers view
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "numbers"
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        label: "ぁA₁"
 | 
				
			||||||
 | 
					    switch2kana: # switch from numbers to hiragana view
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "base"
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        label: "ぁᴀ1"
 | 
				
			||||||
 | 
					    # Buttons for katakana and symbols
 | 
				
			||||||
 | 
					    ひらがな:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "base"
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        label: "あさ"
 | 
				
			||||||
 | 
					    _a:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "_a"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "あ"
 | 
				
			||||||
 | 
					    ka:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "ka"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "か"
 | 
				
			||||||
 | 
					    sa:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "sa"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "さ"
 | 
				
			||||||
 | 
					    ta:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "ta"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "た"
 | 
				
			||||||
 | 
					    na:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "na"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "な"
 | 
				
			||||||
 | 
					    ha:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "ha"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "は"
 | 
				
			||||||
 | 
					    ma:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "ma"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ま"
 | 
				
			||||||
 | 
					    ya:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "ya"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "や"
 | 
				
			||||||
 | 
					    ra:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "ra"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ら"
 | 
				
			||||||
 | 
					    wa:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "wa"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "わ"
 | 
				
			||||||
 | 
					    dummykey:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: ""
 | 
				
			||||||
 | 
					    # buttons available on different views like symbols and punct should go
 | 
				
			||||||
 | 
					    # back to their corresponding view
 | 
				
			||||||
 | 
					    symbols:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "symbols"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "()"
 | 
				
			||||||
 | 
					    punct:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "punct"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "。"
 | 
				
			||||||
 | 
					    # Buttons for katakana and symbols
 | 
				
			||||||
 | 
					    カタカナ:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        label: "アサ"
 | 
				
			||||||
 | 
					    _A:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "_A"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ア"
 | 
				
			||||||
 | 
					    KA:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "KA"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "カ"
 | 
				
			||||||
 | 
					    SA:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "SA"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "サ"
 | 
				
			||||||
 | 
					    TA:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "TA"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "タ"
 | 
				
			||||||
 | 
					    NA:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "NA"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ナ"
 | 
				
			||||||
 | 
					    HA:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "HA"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ハ"
 | 
				
			||||||
 | 
					    MA:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "MA"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "マ"
 | 
				
			||||||
 | 
					    YA:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "YA"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ヤ"
 | 
				
			||||||
 | 
					    RA:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "RA"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ラ"
 | 
				
			||||||
 | 
					    WA:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "WA"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ワ"
 | 
				
			||||||
 | 
					    DUMMYKEY:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: ""
 | 
				
			||||||
 | 
					    SYMBOLS:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "symbols"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "()"
 | 
				
			||||||
 | 
					    PUNCT:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "punct"
 | 
				
			||||||
 | 
					                unlock_view: "カタカナ"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "。"
 | 
				
			||||||
 | 
					    # Buttons for Latin charachters
 | 
				
			||||||
 | 
					    RSYM1:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "RSYM1"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "@#"
 | 
				
			||||||
 | 
					    ABC:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "ABC"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ᴀʙᴄ"
 | 
				
			||||||
 | 
					    DEF:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "DEF"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ᴅᴇꜰ"
 | 
				
			||||||
 | 
					    GHI:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "GHI"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ɢʜɪ"
 | 
				
			||||||
 | 
					    JKL:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "JKL"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ᴊᴋʟ"
 | 
				
			||||||
 | 
					    MNO:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "MNO"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ᴍɴᴏ"
 | 
				
			||||||
 | 
					    PQRS:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "PQRS"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ᴘǫʀs"
 | 
				
			||||||
 | 
					    TUV:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "TUV"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ᴛᴜᴠ"
 | 
				
			||||||
 | 
					    WXYZ:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "WXYZ"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ᴡxʏᴢ"
 | 
				
			||||||
 | 
					    RSYM2:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "RSYM2"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "()"
 | 
				
			||||||
 | 
					    RSYM3:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "RSYM3"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "+-"
 | 
				
			||||||
 | 
					    RSYM4:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "RSYM4"
 | 
				
			||||||
 | 
					                unlock_view: "roman"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: ",.?"
 | 
				
			||||||
							
								
								
									
										106
									
								
								data/keyboards/no.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								data/keyboards/no.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,106 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					bounds: { x: 0, y: 0.33, width: 360, height: 210 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					outlines:
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 32, height: 52 }
 | 
				
			||||||
 | 
					    altline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
 | 
				
			||||||
 | 
					    wide:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
 | 
					    outline7:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
 | 
				
			||||||
 | 
					    spaceline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 150.5853, height: 52 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					views:
 | 
				
			||||||
 | 
					    base:
 | 
				
			||||||
 | 
					        - "q w e r t y u i o p å"
 | 
				
			||||||
 | 
					        - "a s d f g h j k l ø æ"
 | 
				
			||||||
 | 
					        - "Shift_L   z x c v b n m  BackSpace"
 | 
				
			||||||
 | 
					        - "show_numbers preferences         space        .    Return"
 | 
				
			||||||
 | 
					    upper:
 | 
				
			||||||
 | 
					        - "Q W E R T Y U I O P Å"
 | 
				
			||||||
 | 
					        - "A S D F G H J K L Ø Æ"
 | 
				
			||||||
 | 
					        - "Shift_L   Z X C V B N M  BackSpace"
 | 
				
			||||||
 | 
					        - "show_numbers preferences         space        .    Return"
 | 
				
			||||||
 | 
					    numbers:
 | 
				
			||||||
 | 
					        - "1 2 3 4 5 6 7 8 9 0"
 | 
				
			||||||
 | 
					        - "@ # $ % & - _ + ( )"
 | 
				
			||||||
 | 
					        - "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"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
 | 
					    preferences:
 | 
				
			||||||
 | 
					        action: "show_prefs"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "keyboard-mode-symbolic"
 | 
				
			||||||
 | 
					    show_numbers:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "numbers"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "123"
 | 
				
			||||||
 | 
					    show_letters:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ABC"
 | 
				
			||||||
 | 
					    show_symbols:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "symbols"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "*/="
 | 
				
			||||||
 | 
					    ".":
 | 
				
			||||||
 | 
					        outline: altline
 | 
				
			||||||
 | 
					    space:
 | 
				
			||||||
 | 
					        outline: spaceline
 | 
				
			||||||
 | 
					        text: " "
 | 
				
			||||||
 | 
					    Return:
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
 | 
					    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: "°"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,8 +1,5 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
row_spacing: 11.33
 | 
					bounds: { x: 0, y: 0.33, width: 360, height: 210 }
 | 
				
			||||||
button_spacing: 4.67
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bounds: { x: 0, y: 6.33, width: 410, height: 250 }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
outlines:
 | 
					outlines:
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
@ -25,22 +22,24 @@ buttons:
 | 
				
			|||||||
    BackSpace:
 | 
					    BackSpace:
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        icon: "edit-clear-symbolic"
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
    space:
 | 
					    space:
 | 
				
			||||||
        outline: spaceline
 | 
					        outline: spaceline
 | 
				
			||||||
        label: " "
 | 
					        text: " "
 | 
				
			||||||
    Return:
 | 
					    Return:
 | 
				
			||||||
        outline: outline7
 | 
					        outline: outline7
 | 
				
			||||||
        icon: "key-enter"
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
    asterisk:
 | 
					    asterisk:
 | 
				
			||||||
        label: "*"
 | 
					        text: "*"
 | 
				
			||||||
    numbersign:
 | 
					    numbersign:
 | 
				
			||||||
        label: "#"
 | 
					        text: "#"
 | 
				
			||||||
    minus:
 | 
					    minus:
 | 
				
			||||||
        label: "-"
 | 
					        text: "-"
 | 
				
			||||||
    plus:
 | 
					    plus:
 | 
				
			||||||
        label: "+"
 | 
					        text: "+"
 | 
				
			||||||
    parenleft:
 | 
					    parenleft:
 | 
				
			||||||
        label: "("
 | 
					        text: "("
 | 
				
			||||||
    parenright:
 | 
					    parenright:
 | 
				
			||||||
        label: ")"
 | 
					        text: ")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										166
									
								
								data/keyboards/se.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								data/keyboards/se.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,166 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					bounds: { x: 0, y: 0.33, width: 360, height: 210 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					outlines:
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 32, height: 52 }
 | 
				
			||||||
 | 
					    altline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
 | 
				
			||||||
 | 
					    wide:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
 | 
					    outline7:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
 | 
				
			||||||
 | 
					    spaceline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 150.5853, height: 52 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					views:
 | 
				
			||||||
 | 
					    base:
 | 
				
			||||||
 | 
					        - "q w e r t y u i o p å"
 | 
				
			||||||
 | 
					        - "a s d f g h j k l ö ä"
 | 
				
			||||||
 | 
					        - "Shift_L   z x c v b n m  BackSpace"
 | 
				
			||||||
 | 
					        - "show_numbers preferences         space        .    Return"
 | 
				
			||||||
 | 
					    upper:
 | 
				
			||||||
 | 
					        - "Q W E R T Y U I O P Å"
 | 
				
			||||||
 | 
					        - "A S D F G H J K L Ö Ä"
 | 
				
			||||||
 | 
					        - "Shift_L   Z X C V B N M  BackSpace"
 | 
				
			||||||
 | 
					        - "show_numbers preferences         space        .    Return"
 | 
				
			||||||
 | 
					    numbers:
 | 
				
			||||||
 | 
					        - "1 2 3 4 5 6 7 8 9 0"
 | 
				
			||||||
 | 
					        - "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
 | 
				
			||||||
 | 
					        - "show_symbols   comma quotedbl quoteright colon semicolon exclam question  BackSpace"
 | 
				
			||||||
 | 
					        - "show_letters preferences         space        .    Return"
 | 
				
			||||||
 | 
					    symbols:
 | 
				
			||||||
 | 
					        - "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
 | 
				
			||||||
 | 
					        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
 | 
				
			||||||
 | 
					        - "show_numbers   backslash slash less greater equal bracketleft bracketright  BackSpace"
 | 
				
			||||||
 | 
					        - "show_letters preferences         space        .    Return"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					buttons:
 | 
				
			||||||
 | 
					    Shift_L:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            locking:
 | 
				
			||||||
 | 
					                lock_view: "upper"
 | 
				
			||||||
 | 
					                unlock_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "key-shift"
 | 
				
			||||||
 | 
					    BackSpace:
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
 | 
					    preferences:
 | 
				
			||||||
 | 
					        action: "show_prefs"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        icon: "keyboard-mode-symbolic"
 | 
				
			||||||
 | 
					    show_numbers:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "numbers"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "123"
 | 
				
			||||||
 | 
					    show_letters:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "base"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "ABC"
 | 
				
			||||||
 | 
					    show_symbols:
 | 
				
			||||||
 | 
					        action:
 | 
				
			||||||
 | 
					            set_view: "symbols"
 | 
				
			||||||
 | 
					        outline: "altline"
 | 
				
			||||||
 | 
					        label: "*/="
 | 
				
			||||||
 | 
					    ".":
 | 
				
			||||||
 | 
					        outline: altline
 | 
				
			||||||
 | 
					    space:
 | 
				
			||||||
 | 
					        outline: spaceline
 | 
				
			||||||
 | 
					        text: " "
 | 
				
			||||||
 | 
					    Return:
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
 | 
					    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: "]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -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">></text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
  <key keycode="35" name="AD12">
 | 
					 | 
				
			||||||
    <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>
 | 
					 | 
				
			||||||
    <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">
 | 
					 | 
				
			||||||
    <text category="letter">ز</text>
 | 
					 | 
				
			||||||
    <text category="letter">.</text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
  <key keycode="61" name="AB10">
 | 
					 | 
				
			||||||
    <text category="letter">ظ</text>
 | 
					 | 
				
			||||||
    <text category="letter">؟</text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
</symbols>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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">"</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>
 | 
					 | 
				
			||||||
@ -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">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>
 | 
					 | 
				
			||||||
@ -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">></text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
  <key keycode="60" name="AB09">
 | 
					 | 
				
			||||||
    <keysym keyval="46">period</keysym>
 | 
					 | 
				
			||||||
    <text category="letter"><</text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
  <key keycode="61" name="AB10">
 | 
					 | 
				
			||||||
    <keysym keyval="47">slash</keysym>
 | 
					 | 
				
			||||||
    <text category="letter">؟</text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
</symbols>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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">'</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">></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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
    <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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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">></text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
  <key keycode="61" name="AB10">
 | 
					 | 
				
			||||||
    <text category="letter">യ</text>
 | 
					 | 
				
			||||||
    <keysym keyval="63">question</keysym>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
</symbols>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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">"</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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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">"</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">></text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
  <key keycode="61" name="AB10">
 | 
					 | 
				
			||||||
    <text category="letter">ய</text>
 | 
					 | 
				
			||||||
    <keysym keyval="63">question</keysym>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
</symbols>
 | 
					 | 
				
			||||||
@ -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">></text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
  <key keycode="61" name="AB10">
 | 
					 | 
				
			||||||
    <text category="letter">య</text>
 | 
					 | 
				
			||||||
    <text category="letter">?</text>
 | 
					 | 
				
			||||||
  </key>
 | 
					 | 
				
			||||||
</symbols>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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">"</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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -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>
 | 
					 | 
				
			||||||
@ -1,20 +1,17 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
row_spacing: 11.33
 | 
					bounds: { x: 0, y: 1, width: 360, height: 208 }
 | 
				
			||||||
button_spacing: 4.67
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bounds: { x: 0, y: 1, width: 360, height: 198 }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
outlines:
 | 
					outlines:
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 30.67, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 35.33, height: 52 }
 | 
				
			||||||
    altline:
 | 
					    altline:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 48, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 52.67, height: 52 }
 | 
				
			||||||
    wide:
 | 
					    wide:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 57.33, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 62, height: 52 }
 | 
				
			||||||
    spaceline:
 | 
					    spaceline:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 137.33, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 142, height: 52 }
 | 
				
			||||||
    special:
 | 
					    special:
 | 
				
			||||||
        bounds: { x: 0, y: 0, width: 39.33, height: 40.67 }
 | 
					        bounds: { x: 0, y: 0, width: 44, height: 52 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
views:
 | 
					views:
 | 
				
			||||||
    base:
 | 
					    base:
 | 
				
			||||||
@ -49,6 +46,7 @@ buttons:
 | 
				
			|||||||
    BackSpace:
 | 
					    BackSpace:
 | 
				
			||||||
        outline: "altline"
 | 
					        outline: "altline"
 | 
				
			||||||
        icon: "edit-clear-symbolic"
 | 
					        icon: "edit-clear-symbolic"
 | 
				
			||||||
 | 
					        keysym: "BackSpace"
 | 
				
			||||||
    preferences:
 | 
					    preferences:
 | 
				
			||||||
        action: "show_prefs"
 | 
					        action: "show_prefs"
 | 
				
			||||||
        outline: "special"
 | 
					        outline: "special"
 | 
				
			||||||
@ -75,14 +73,13 @@ buttons:
 | 
				
			|||||||
        label: "*/="
 | 
					        label: "*/="
 | 
				
			||||||
    period:
 | 
					    period:
 | 
				
			||||||
        outline: "special"
 | 
					        outline: "special"
 | 
				
			||||||
        label: "."
 | 
					        text: "."
 | 
				
			||||||
    space:
 | 
					    space:
 | 
				
			||||||
        outline: "spaceline"
 | 
					        outline: "spaceline"
 | 
				
			||||||
        label: " "
 | 
					        text: " "
 | 
				
			||||||
    Return:
 | 
					    Return:
 | 
				
			||||||
        outline: "wide"
 | 
					        outline: "wide"
 | 
				
			||||||
        icon: "key-enter"
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
    colon:
 | 
					    colon:
 | 
				
			||||||
        label: ":"
 | 
					        text: ":"
 | 
				
			||||||
    "\"":
 | 
					 | 
				
			||||||
        keysym: "quotedbl"
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										85
									
								
								data/keyboards/us_wide.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								data/keyboards/us_wide.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,85 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					bounds: { x: 0, y: 1, width: 540, height: 168 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					outlines:
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 54, height: 42 }
 | 
				
			||||||
 | 
					    altline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 81, height: 42 }
 | 
				
			||||||
 | 
					    wide:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 108, height: 42 }
 | 
				
			||||||
 | 
					    spaceline:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 216, height: 42 }
 | 
				
			||||||
 | 
					    special:
 | 
				
			||||||
 | 
					        bounds: { x: 0, y: 0, width: 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"
 | 
				
			||||||
 | 
					        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: "*/="
 | 
				
			||||||
 | 
					    ".":
 | 
				
			||||||
 | 
					        outline: "special"
 | 
				
			||||||
 | 
					        text: "."
 | 
				
			||||||
 | 
					    space:
 | 
				
			||||||
 | 
					        outline: "spaceline"
 | 
				
			||||||
 | 
					        text: " "
 | 
				
			||||||
 | 
					    Return:
 | 
				
			||||||
 | 
					        outline: "wide"
 | 
				
			||||||
 | 
					        icon: "key-enter"
 | 
				
			||||||
 | 
					        keysym: "Return"
 | 
				
			||||||
 | 
					    colon:
 | 
				
			||||||
 | 
					        text: ":"
 | 
				
			||||||
							
								
								
									
										8
									
								
								data/langs/de-DE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								data/langs/de-DE.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					us Englisch (US)
 | 
				
			||||||
 | 
					de Deutsch
 | 
				
			||||||
 | 
					el Griechisch
 | 
				
			||||||
 | 
					es Spanisch
 | 
				
			||||||
 | 
					it Italienisch
 | 
				
			||||||
 | 
					jp+kana Japanisch (Kana)
 | 
				
			||||||
 | 
					no Norwegisch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								data/langs/en-US.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								data/langs/en-US.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					us English (US)
 | 
				
			||||||
 | 
					de German
 | 
				
			||||||
 | 
					el Greek
 | 
				
			||||||
 | 
					es Spanish
 | 
				
			||||||
 | 
					fi Finnish
 | 
				
			||||||
 | 
					it Italian
 | 
				
			||||||
 | 
					jp+kana Japanese (kana)
 | 
				
			||||||
 | 
					no Norwegian
 | 
				
			||||||
 | 
					se Swedish
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										7
									
								
								data/langs/es-ES.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								data/langs/es-ES.txt
									
									
									
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										8
									
								
								data/langs/ja-JP.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								data/langs/ja-JP.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					us 英語 (US)
 | 
				
			||||||
 | 
					de ドイツ語
 | 
				
			||||||
 | 
					el ギリシャ語
 | 
				
			||||||
 | 
					es スペイン語
 | 
				
			||||||
 | 
					it イタリア語
 | 
				
			||||||
 | 
					jp+kana 日本語 (かな)
 | 
				
			||||||
 | 
					nb ノルウェー語
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										9
									
								
								data/langs/pl-PL.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								data/langs/pl-PL.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					us angielski (USA)
 | 
				
			||||||
 | 
					de niemiecki
 | 
				
			||||||
 | 
					el grecki
 | 
				
			||||||
 | 
					es hiszpański
 | 
				
			||||||
 | 
					fi fiński
 | 
				
			||||||
 | 
					it włoski
 | 
				
			||||||
 | 
					jp+kana japoński (kana)
 | 
				
			||||||
 | 
					no norweski
 | 
				
			||||||
 | 
					se szwedzki
 | 
				
			||||||
							
								
								
									
										19
									
								
								data/popup.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								data/popup.ui
									
									
									
									
									
										Normal 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>
 | 
				
			||||||
@ -3,7 +3,6 @@ Name=Squeekboard
 | 
				
			|||||||
GenericName=Squeekboard Virtual Keyboard
 | 
					GenericName=Squeekboard Virtual Keyboard
 | 
				
			||||||
Comment=Virtual Keyboard
 | 
					Comment=Virtual Keyboard
 | 
				
			||||||
Exec=squeekboard
 | 
					Exec=squeekboard
 | 
				
			||||||
Icon=squeekboard
 | 
					 | 
				
			||||||
Terminal=false
 | 
					Terminal=false
 | 
				
			||||||
Type=Application
 | 
					Type=Application
 | 
				
			||||||
NoDisplay=true
 | 
					NoDisplay=true
 | 
				
			||||||
 | 
				
			|||||||
@ -2,33 +2,8 @@
 | 
				
			|||||||
<gresources>
 | 
					<gresources>
 | 
				
			||||||
  <gresource prefix="/sm/puri/squeekboard">
 | 
					  <gresource prefix="/sm/puri/squeekboard">
 | 
				
			||||||
   <file compressed="true">style.css</file>
 | 
					   <file compressed="true">style.css</file>
 | 
				
			||||||
   <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ar.xml</file>
 | 
					   <file compressed="true">style-Adwaita:dark.css</file>
 | 
				
			||||||
   <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/as-inscript.xml</file>
 | 
					   <file compressed="true" preprocess="xml-stripblanks">popup.ui</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/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/zh-bopomofo.xml</file>
 | 
					 | 
				
			||||||
   <file>icons/key-enter.svg</file>
 | 
					   <file>icons/key-enter.svg</file>
 | 
				
			||||||
   <file>icons/key-shift.svg</file>
 | 
					   <file>icons/key-shift.svg</file>
 | 
				
			||||||
   <file>icons/keyboard-mode-symbolic.svg</file>
 | 
					   <file>icons/keyboard-mode-symbolic.svg</file>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										46
									
								
								data/style-Adwaita:dark.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								data/style-Adwaita:dark.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					sq_view {
 | 
				
			||||||
 | 
					    background-color: rgba(0, 0, 0, 255);
 | 
				
			||||||
 | 
					    color: #ffffff;
 | 
				
			||||||
 | 
					    font-family: cantarell, sans-serif;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Return {
 | 
				
			||||||
 | 
					    background: #1c71d8;
 | 
				
			||||||
 | 
					    border-color: #1a5fb4;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Return:active {
 | 
				
			||||||
 | 
					    background: #1c71d8;
 | 
				
			||||||
 | 
					    border-color: #3584e4;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,41 +1,49 @@
 | 
				
			|||||||
sq_view {
 | 
					sq_view {
 | 
				
			||||||
    background-color: rgba(0, 0, 0, 255);
 | 
					    background-color: @theme_base_color; /*rgba(0, 0, 0, 255);*/
 | 
				
			||||||
    color: #ffffff;
 | 
					    color: @theme_text_color; /*#ffffff;*/
 | 
				
			||||||
    font-family: cantarell, sans-serif;
 | 
					    font-family: cantarell, sans-serif;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sq_button {
 | 
					sq_view sq_button {
 | 
				
			||||||
    color: #deddda;
 | 
					    color: @theme_fg_color; /*#deddda;*/
 | 
				
			||||||
    background: #464448;
 | 
					    background: mix(@theme_bg_color, @theme_base_color, -0.5); /* #464448; */
 | 
				
			||||||
    border-style: solid;
 | 
					    border-style: solid;
 | 
				
			||||||
    border-width: 1px;
 | 
					    border-width: 1px;
 | 
				
			||||||
    border-color: #5e5c64;
 | 
					    border-color: @borders; /* #5e5c64;*/
 | 
				
			||||||
    border-radius: 3px;
 | 
					    border-radius: 3px;
 | 
				
			||||||
 | 
					    margin: 4px 2px 4px 2px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sq_button:active {
 | 
					sq_view.wide sq_button {
 | 
				
			||||||
    background: #545256;
 | 
					    margin: 1px 1px 1px 1px;
 | 
				
			||||||
    border-color: #716e78;
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.altline,
 | 
				
			||||||
sq_button.special,
 | 
					sq_button.special,
 | 
				
			||||||
sq_button.wide {
 | 
					sq_button.wide {
 | 
				
			||||||
    background: #2b292f;
 | 
					    background: mix(@theme_bg_color, @theme_base_color, 0.5); /*#2b292f;*/
 | 
				
			||||||
    border-color: #3e3a44
 | 
					    border-color: @borders; /* #3e3a44; */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sq_button.locked {
 | 
					sq_button.locked {
 | 
				
			||||||
    background: #ffffff;
 | 
					    background: @theme_fg_color; /*#ffffff;*/
 | 
				
			||||||
    color: #2b292f;
 | 
					    color: @theme_bg_color; /*#2b292f;*/
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Return {
 | 
					#Return {
 | 
				
			||||||
    background: #1c71d8;
 | 
					    background: @theme_selected_bg_color; /* #1c71d8; */
 | 
				
			||||||
    border-color: #1a5fb4
 | 
					    border-color: @borders; /*#1a5fb4;*/
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Return:active {
 | 
					#Return:active {
 | 
				
			||||||
    background: #1c71d8;
 | 
					    background: mix(@theme_selected_bg_color, @theme_bg_color, 0.4); /*#1c71d8;*/
 | 
				
			||||||
    border-color: #3584e4;
 | 
					    border-color: @borders; /*#3584e4;*/
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										33
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							@ -1,3 +1,36 @@
 | 
				
			|||||||
 | 
					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
 | 
					squeekboard (1.2.1) amber-phone; urgency=medium
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  * Use different distribution
 | 
					  * Use different distribution
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										19
									
								
								debian/control
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								debian/control
									
									
									
									
										vendored
									
									
								
							@ -12,7 +12,14 @@ Build-Depends:
 | 
				
			|||||||
 libgtk-3-dev,
 | 
					 libgtk-3-dev,
 | 
				
			||||||
 libcroco3-dev,
 | 
					 libcroco3-dev,
 | 
				
			||||||
 librust-bitflags-1-dev (>= 1.0),
 | 
					 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-maplit-1-dev (>= 1.0),
 | 
				
			||||||
 | 
					 librust-regex-1-dev (>= 1.1),
 | 
				
			||||||
 librust-serde-derive-1-dev (>= 1.0),
 | 
					 librust-serde-derive-1-dev (>= 1.0),
 | 
				
			||||||
 librust-serde-yaml-0.8-dev (>= 0.8),
 | 
					 librust-serde-yaml-0.8-dev (>= 0.8),
 | 
				
			||||||
 librust-xkbcommon-0.4+wayland-dev (>= 0.4),
 | 
					 librust-xkbcommon-0.4+wayland-dev (>= 0.4),
 | 
				
			||||||
@ -28,7 +35,19 @@ Homepage: https://source.puri.sm/Librem5/squeekboard
 | 
				
			|||||||
Package: squeekboard
 | 
					Package: squeekboard
 | 
				
			||||||
Architecture: linux-any
 | 
					Architecture: linux-any
 | 
				
			||||||
Depends:
 | 
					Depends:
 | 
				
			||||||
 | 
					# for the Adwaita-dark theme
 | 
				
			||||||
 | 
					 gnome-themes-extra-data,
 | 
				
			||||||
 ${shlibs:Depends}
 | 
					 ${shlibs:Depends}
 | 
				
			||||||
 ${misc:Depends}
 | 
					 ${misc:Depends}
 | 
				
			||||||
Description: On-screen keyboard for Wayland
 | 
					Description: On-screen keyboard for Wayland
 | 
				
			||||||
 Virtual keyboard supporting Wayland, built primarily for the Librem 5 phone.
 | 
					 Virtual keyboard supporting Wayland, built primarily for the Librem 5 phone.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Package: squeekboard-devel
 | 
				
			||||||
 | 
					Architecture: linux-any
 | 
				
			||||||
 | 
					Depends:
 | 
				
			||||||
 | 
					 ${shlibs:Depends}
 | 
				
			||||||
 | 
					 ${misc:Depends}
 | 
				
			||||||
 | 
					Description: Resources for making Squeekboard layouts
 | 
				
			||||||
 | 
					 Tools for creating Squeekboard layouts:
 | 
				
			||||||
 | 
					 .
 | 
				
			||||||
 | 
					  * squeekboard-test-layout
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										178
									
								
								debian/copyright
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										178
									
								
								debian/copyright
									
									
									
									
										vendored
									
									
								
							@ -8,6 +8,83 @@ Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
				
			|||||||
           2019 Purism SPC
 | 
					           2019 Purism SPC
 | 
				
			||||||
License: GPL-3+
 | 
					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
 | 
					Files: eek/layersurface.c
 | 
				
			||||||
       src/wayland.c
 | 
					       src/wayland.c
 | 
				
			||||||
       src/key-emitter.c
 | 
					       src/key-emitter.c
 | 
				
			||||||
@ -21,39 +98,51 @@ Files: eekboard/keymap.c
 | 
				
			|||||||
Copyright: 2000 Red Hat, Inc.
 | 
					Copyright: 2000 Red Hat, Inc.
 | 
				
			||||||
           2019 Purism, SPC
 | 
					           2019 Purism, SPC
 | 
				
			||||||
License: LGPL-2+
 | 
					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,
 | 
					Files: eekboard/eekboard-context-service.c
 | 
				
			||||||
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
				
			||||||
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
 | 
					           2010-2011 Red Hat, Inc.
 | 
				
			||||||
 Lesser General Public License for more details.
 | 
					           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
 | 
					Files: eekboard/eekboard-context-service.h
 | 
				
			||||||
 License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
					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
 | 
					Files: protocols/wlr-layer-shell-unstable-v1.xml
 | 
				
			||||||
Copytight: Copyright © 2017 Drew DeVault
 | 
					Copyright: 2017 Drew DeVault
 | 
				
			||||||
License: X11
 | 
					License: X11
 | 
				
			||||||
 Permission to use, copy, modify, distribute, and sell this software and
 | 
					
 | 
				
			||||||
 its documentation for any purpose is hereby granted without fee, provided
 | 
					Files: src/resources.rs
 | 
				
			||||||
 that the above copyright notice appear in all copies and fthat both that
 | 
					Copyright: 2019 Andreas Rönnquist <andreas@ronnquist.net>
 | 
				
			||||||
 copyright notice and this permission notice appear in supporting
 | 
					           2019 Mark Müller <markmueller86@gmail.com>
 | 
				
			||||||
 documentation, and that the name of the copyright holders not be used in
 | 
					           2019 Purism SPC
 | 
				
			||||||
 advertising or publicity pertaining to distribution of the software
 | 
					License: GPL-3+
 | 
				
			||||||
 without specific, written prior permission.  The copyright holders make
 | 
					
 | 
				
			||||||
 no representations about the suitability of this software for any
 | 
					Files: src/server-context-service.c
 | 
				
			||||||
 purpose.  It is provided "as is" without express or implied warranty.
 | 
					Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
				
			||||||
 .
 | 
					           2010-2011 Red Hat, Inc.
 | 
				
			||||||
 THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
 | 
					           2019 Purism SPC
 | 
				
			||||||
 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 | 
					           2019 Squeekboard Contributors
 | 
				
			||||||
 FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
 | 
					License: GPL-3+
 | 
				
			||||||
 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 | 
					
 | 
				
			||||||
 RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 | 
					Files: tests/meson.build
 | 
				
			||||||
 CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 | 
					Copyright: 2019 Purism SPC
 | 
				
			||||||
 CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					           2019 Mark Müller <markmueller86@gmail.com>
 | 
				
			||||||
 | 
					License: GPL-3+
 | 
				
			||||||
 | 
					
 | 
				
			||||||
License: GPL-3+
 | 
					License: GPL-3+
 | 
				
			||||||
 This package is free software; you can redistribute it and/or modify
 | 
					 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
 | 
					 On Debian systems, the complete text of the GNU General
 | 
				
			||||||
 Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
 | 
					 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.
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								debian/squeekboard-devel.install
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								debian/squeekboard-devel.install
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					usr/bin/squeekboard-test-layout /usr/bin
 | 
				
			||||||
							
								
								
									
										2
									
								
								debian/squeekboard.install
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								debian/squeekboard.install
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					tools/squeekboard-restyled usr/bin
 | 
				
			||||||
 | 
					usr/bin/squeekboard /usr/bin
 | 
				
			||||||
@ -1,83 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0"?>
 | 
					 | 
				
			||||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
 | 
					 | 
				
			||||||
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
 | 
					 | 
				
			||||||
[
 | 
					 | 
				
			||||||
  <!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
 | 
					 | 
				
			||||||
]>
 | 
					 | 
				
			||||||
<book id="index">
 | 
					 | 
				
			||||||
  <bookinfo>
 | 
					 | 
				
			||||||
    <title>libeek Reference Manual</title>
 | 
					 | 
				
			||||||
    <releaseinfo>
 | 
					 | 
				
			||||||
      for libeek 0.90.0.
 | 
					 | 
				
			||||||
    </releaseinfo>
 | 
					 | 
				
			||||||
    <copyright>
 | 
					 | 
				
			||||||
      <year>2010-2011</year>
 | 
					 | 
				
			||||||
      <holder>Daiki Ueno</holder>
 | 
					 | 
				
			||||||
    </copyright>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <copyright>
 | 
					 | 
				
			||||||
      <year>2010-2011</year>
 | 
					 | 
				
			||||||
      <holder>Red Hat, Inc.</holder>
 | 
					 | 
				
			||||||
    </copyright>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <legalnotice>
 | 
					 | 
				
			||||||
      <para>
 | 
					 | 
				
			||||||
	Permission is granted to copy, distribute and/or modify this
 | 
					 | 
				
			||||||
	document under the terms of the GNU Free Documentation License,
 | 
					 | 
				
			||||||
	Version 1.3 or any later version published by the Free Software
 | 
					 | 
				
			||||||
	Foundation; with no Invariant Sections, no Front-Cover Texts and
 | 
					 | 
				
			||||||
	no Back-Cover Texts.  A copy of the license is included in the
 | 
					 | 
				
			||||||
	section entitled "GNU Free Documentation License".
 | 
					 | 
				
			||||||
      </para>
 | 
					 | 
				
			||||||
    </legalnotice>
 | 
					 | 
				
			||||||
  </bookinfo>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <xi:include href="xml/eek-overview.xml"/>
 | 
					 | 
				
			||||||
  <part id="apireference">
 | 
					 | 
				
			||||||
    <title>API Manual</title>
 | 
					 | 
				
			||||||
    <chapter>
 | 
					 | 
				
			||||||
      <title>Base Classes, Interfaces, and Utilities</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-serializable.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-element.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-container.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-keyboard.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-section.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-key.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-symbol.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-keysym.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-text.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-layout.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-types.xml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <chapter>
 | 
					 | 
				
			||||||
      <title>GTK Adapter</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-gtk-keyboard.xml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <chapter>
 | 
					 | 
				
			||||||
      <title>Clutter Adapter</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-clutter-keyboard.xml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <chapter>
 | 
					 | 
				
			||||||
      <title>Libxklavier Layout Engine</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-xkl-layout.xml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <chapter>
 | 
					 | 
				
			||||||
      <title>XKB Layout Engine</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-xkb-layout.xml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <chapter>
 | 
					 | 
				
			||||||
      <title>XML Layout Engine</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-xml-layout.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eek-xml.xml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <chapter id="object-tree">
 | 
					 | 
				
			||||||
      <title>Object Hierarchy</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/tree_index.sgml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <index id="api-index-full">
 | 
					 | 
				
			||||||
      <title>API Index</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
 | 
					 | 
				
			||||||
    </index>
 | 
					 | 
				
			||||||
  </part>
 | 
					 | 
				
			||||||
</book>
 | 
					 | 
				
			||||||
@ -1,70 +0,0 @@
 | 
				
			|||||||
<part id="eek-overview">
 | 
					 | 
				
			||||||
  <title>Usage Overview</title>
 | 
					 | 
				
			||||||
  <partintro>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>libeek is a library to create keyboard-like user interface.
 | 
					 | 
				
			||||||
    Since it is designed as simple as possible, it provides only two
 | 
					 | 
				
			||||||
    kind of objects.  One is <emphasis>keyboard element</emphasis>
 | 
					 | 
				
			||||||
    (objects derived from #EekElement) and another is
 | 
					 | 
				
			||||||
    <emphasis>keyboard layout engine</emphasis> (objects which
 | 
					 | 
				
			||||||
    implements the #EekLayout interface).</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>A keyboard element represents either a keyboard
 | 
					 | 
				
			||||||
    (#EekKeyboard), a section (#EekSection), or a key (#EekKey).  Each
 | 
					 | 
				
			||||||
    element implements the Builder design pattern so that it can map
 | 
					 | 
				
			||||||
    itself to different UI widgets (#ClutterActor, #GtkDrawingArea,
 | 
					 | 
				
			||||||
    aso).</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>A layout engine arranges keyboard elements using information
 | 
					 | 
				
			||||||
    from external configuration mechanisms (libxklavier, XKB,
 | 
					 | 
				
			||||||
    matchbox-keyboard layouts in XML, aso)</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>Here is a sample code which demonstrates (1) keyboard
 | 
					 | 
				
			||||||
    elements are arranged with the system keyboard layout using
 | 
					 | 
				
			||||||
    libxklavier and (2) keyboard elements are mapped into
 | 
					 | 
				
			||||||
    #ClutterActor:</para>
 | 
					 | 
				
			||||||
    <informalexample>
 | 
					 | 
				
			||||||
      <programlisting>
 | 
					 | 
				
			||||||
EekLayout *layout;
 | 
					 | 
				
			||||||
EekKeyboard *keyboard;
 | 
					 | 
				
			||||||
ClutterActor *actor;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Create a layout engine based on libxklavier configuration. */
 | 
					 | 
				
			||||||
layout = eek_xkl_layout_new ();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Create a keyboard from the given layout. */
 | 
					 | 
				
			||||||
keyboard = eek_keyboard_new (layout, initial_width, initial_height);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Create a ClutterActor. */
 | 
					 | 
				
			||||||
actor = eek_clutter_keyboard_new (eekboard->keyboard);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Add the actor to a stage. */
 | 
					 | 
				
			||||||
clutter_group_add (CLUTTER_GROUP(stage), actor);
 | 
					 | 
				
			||||||
      </programlisting>
 | 
					 | 
				
			||||||
    </informalexample>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>libeek currently supports GTK+ and Clutter as UI toolkits.
 | 
					 | 
				
			||||||
    To create a keyboard-like #GtkWidget instead of #ClutterActor,
 | 
					 | 
				
			||||||
    replace eek_clutter_keyboard_new() with eek_gtk_keyboard_new().
 | 
					 | 
				
			||||||
    Similarly, if you want to use XKB configuration directly (without
 | 
					 | 
				
			||||||
    libxklavier), you will only need to replace eek_xkl_layout_new ()
 | 
					 | 
				
			||||||
    with eek_xkb_layout_new().</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>In the above example, a keyboard is represented as a tree of
 | 
					 | 
				
			||||||
    #EekElement -- #EekKeyboard contains one or more #EekSection's and
 | 
					 | 
				
			||||||
    #EekSection contains one or more #EekKey's.  Each element may emit
 | 
					 | 
				
			||||||
    events when user pushes the corresponding UI widget.</para>
 | 
					 | 
				
			||||||
    <para>
 | 
					 | 
				
			||||||
      Here is another sample code which demonstrates logical events on
 | 
					 | 
				
			||||||
      #EekElement:
 | 
					 | 
				
			||||||
    </para>
 | 
					 | 
				
			||||||
    <informalexample>
 | 
					 | 
				
			||||||
      <programlisting>
 | 
					 | 
				
			||||||
/* Find a key element in the logical keyboard. */
 | 
					 | 
				
			||||||
EekKey *key = eek_keyboard_find_key_by_keycode (keyboard, 0x38);
 | 
					 | 
				
			||||||
g_signal_connect (key, "pressed", on_a_pressed);
 | 
					 | 
				
			||||||
      </programlisting>
 | 
					 | 
				
			||||||
    </informalexample>
 | 
					 | 
				
			||||||
    <para>When user pushed a widget which looks like "a" key (i.e. keycode 0x38), on_a_pressed will be called.</para>
 | 
					 | 
				
			||||||
  </partintro>
 | 
					 | 
				
			||||||
</part>
 | 
					 | 
				
			||||||
@ -1,544 +0,0 @@
 | 
				
			|||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek</FILE>
 | 
					 | 
				
			||||||
eek_init
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-clutter</FILE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-clutter-key</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekClutterKey</TITLE>
 | 
					 | 
				
			||||||
EekClutterKey
 | 
					 | 
				
			||||||
EekClutterKeyClass
 | 
					 | 
				
			||||||
eek_clutter_key_new
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_CLUTTER_KEY
 | 
					 | 
				
			||||||
EEK_CLUTTER_KEY_CLASS
 | 
					 | 
				
			||||||
EEK_CLUTTER_KEY_GET_CLASS
 | 
					 | 
				
			||||||
EEK_IS_CLUTTER_KEY
 | 
					 | 
				
			||||||
EEK_IS_CLUTTER_KEY_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_CLUTTER_KEY
 | 
					 | 
				
			||||||
EekClutterKeyPrivate
 | 
					 | 
				
			||||||
eek_clutter_key_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-clutter-keyboard</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekClutterKeyboard</TITLE>
 | 
					 | 
				
			||||||
EekClutterKeyboard
 | 
					 | 
				
			||||||
EekClutterKeyboardClass
 | 
					 | 
				
			||||||
eek_clutter_keyboard_new
 | 
					 | 
				
			||||||
eek_clutter_keyboard_set_theme
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_CLUTTER_KEYBOARD
 | 
					 | 
				
			||||||
EEK_CLUTTER_KEYBOARD_CLASS
 | 
					 | 
				
			||||||
EEK_CLUTTER_KEYBOARD_GET_CLASS
 | 
					 | 
				
			||||||
EEK_IS_CLUTTER_KEYBOARD
 | 
					 | 
				
			||||||
EEK_IS_CLUTTER_KEYBOARD_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_CLUTTER_KEYBOARD
 | 
					 | 
				
			||||||
EekClutterKeyboardPrivate
 | 
					 | 
				
			||||||
eek_clutter_keyboard_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-clutter-renderer</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekClutterRenderer</TITLE>
 | 
					 | 
				
			||||||
EekClutterRenderer
 | 
					 | 
				
			||||||
EekClutterRendererClass
 | 
					 | 
				
			||||||
eek_clutter_renderer_new
 | 
					 | 
				
			||||||
eek_clutter_renderer_render_key
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_CLUTTER_RENDERER
 | 
					 | 
				
			||||||
EEK_CLUTTER_RENDERER_CLASS
 | 
					 | 
				
			||||||
EEK_CLUTTER_RENDERER_GET_CLASS
 | 
					 | 
				
			||||||
EEK_IS_CLUTTER_RENDERER
 | 
					 | 
				
			||||||
EEK_IS_CLUTTER_RENDERER_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_CLUTTER_RENDERER
 | 
					 | 
				
			||||||
EekClutterRendererPrivate
 | 
					 | 
				
			||||||
eek_clutter_renderer_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-clutter-section</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekClutterSection</TITLE>
 | 
					 | 
				
			||||||
EekClutterSection
 | 
					 | 
				
			||||||
EekClutterSectionClass
 | 
					 | 
				
			||||||
eek_clutter_section_new
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_CLUTTER_SECTION
 | 
					 | 
				
			||||||
EEK_CLUTTER_SECTION_CLASS
 | 
					 | 
				
			||||||
EEK_CLUTTER_SECTION_GET_CLASS
 | 
					 | 
				
			||||||
EEK_IS_CLUTTER_SECTION
 | 
					 | 
				
			||||||
EEK_IS_CLUTTER_SECTION_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_CLUTTER_SECTION
 | 
					 | 
				
			||||||
EekClutterSectionPrivate
 | 
					 | 
				
			||||||
eek_clutter_section_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-container</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekContainer</TITLE>
 | 
					 | 
				
			||||||
EekCallback
 | 
					 | 
				
			||||||
EekCompareFunc
 | 
					 | 
				
			||||||
EekContainer
 | 
					 | 
				
			||||||
EekContainerClass
 | 
					 | 
				
			||||||
eek_container_add_child
 | 
					 | 
				
			||||||
eek_container_find
 | 
					 | 
				
			||||||
eek_container_foreach_child
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_CONTAINER
 | 
					 | 
				
			||||||
EEK_CONTAINER_CLASS
 | 
					 | 
				
			||||||
EEK_CONTAINER_GET_CLASS
 | 
					 | 
				
			||||||
EEK_IS_CONTAINER
 | 
					 | 
				
			||||||
EEK_IS_CONTAINER_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_CONTAINER
 | 
					 | 
				
			||||||
EekContainerPrivate
 | 
					 | 
				
			||||||
eek_container_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-element</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekElement</TITLE>
 | 
					 | 
				
			||||||
EekElement
 | 
					 | 
				
			||||||
EekElementClass
 | 
					 | 
				
			||||||
eek_element_get_absolute_position
 | 
					 | 
				
			||||||
eek_element_get_bounds
 | 
					 | 
				
			||||||
eek_element_get_group
 | 
					 | 
				
			||||||
eek_element_get_level
 | 
					 | 
				
			||||||
eek_element_get_name
 | 
					 | 
				
			||||||
eek_element_get_parent
 | 
					 | 
				
			||||||
eek_element_get_symbol_index
 | 
					 | 
				
			||||||
eek_element_set_bounds
 | 
					 | 
				
			||||||
eek_element_set_group
 | 
					 | 
				
			||||||
eek_element_set_level
 | 
					 | 
				
			||||||
eek_element_set_name
 | 
					 | 
				
			||||||
eek_element_set_parent
 | 
					 | 
				
			||||||
eek_element_set_position
 | 
					 | 
				
			||||||
eek_element_set_size
 | 
					 | 
				
			||||||
eek_element_set_symbol_index
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_ELEMENT
 | 
					 | 
				
			||||||
EEK_ELEMENT_CLASS
 | 
					 | 
				
			||||||
EEK_ELEMENT_GET_CLASS
 | 
					 | 
				
			||||||
EEK_IS_ELEMENT
 | 
					 | 
				
			||||||
EEK_IS_ELEMENT_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_ELEMENT
 | 
					 | 
				
			||||||
EekElementPrivate
 | 
					 | 
				
			||||||
eek_element_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-gtk</FILE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-gtk-keyboard</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekGtkKeyboard</TITLE>
 | 
					 | 
				
			||||||
EekGtkKeyboard
 | 
					 | 
				
			||||||
EekGtkKeyboardClass
 | 
					 | 
				
			||||||
eek_gtk_keyboard_new
 | 
					 | 
				
			||||||
eek_gtk_keyboard_set_theme
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_GTK_KEYBOARD
 | 
					 | 
				
			||||||
EEK_GTK_KEYBOARD_CLASS
 | 
					 | 
				
			||||||
EEK_GTK_KEYBOARD_GET_CLASS
 | 
					 | 
				
			||||||
EEK_IS_GTK_KEYBOARD
 | 
					 | 
				
			||||||
EEK_IS_GTK_KEYBOARD_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_GTK_KEYBOARD
 | 
					 | 
				
			||||||
EekGtkKeyboardPrivate
 | 
					 | 
				
			||||||
eek_gtk_keyboard_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-key</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekKey</TITLE>
 | 
					 | 
				
			||||||
EekKey
 | 
					 | 
				
			||||||
EekKeyClass
 | 
					 | 
				
			||||||
eek_key_get_index
 | 
					 | 
				
			||||||
eek_key_get_keycode
 | 
					 | 
				
			||||||
eek_key_get_oref
 | 
					 | 
				
			||||||
eek_key_get_symbol
 | 
					 | 
				
			||||||
eek_key_get_symbol_at_index
 | 
					 | 
				
			||||||
eek_key_get_symbol_matrix
 | 
					 | 
				
			||||||
eek_key_get_symbol_with_fallback
 | 
					 | 
				
			||||||
eek_key_is_locked
 | 
					 | 
				
			||||||
eek_key_is_pressed
 | 
					 | 
				
			||||||
eek_key_set_index
 | 
					 | 
				
			||||||
eek_key_set_keycode
 | 
					 | 
				
			||||||
eek_key_set_oref
 | 
					 | 
				
			||||||
eek_key_set_symbol_matrix
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_KEY
 | 
					 | 
				
			||||||
EEK_IS_KEY_CLASS
 | 
					 | 
				
			||||||
EEK_KEY
 | 
					 | 
				
			||||||
EEK_KEY_CLASS
 | 
					 | 
				
			||||||
EEK_KEY_GET_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_KEY
 | 
					 | 
				
			||||||
EekKeyPrivate
 | 
					 | 
				
			||||||
eek_key_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-keyboard</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekKeyboard</TITLE>
 | 
					 | 
				
			||||||
EekKeyboard
 | 
					 | 
				
			||||||
EekKeyboardClass
 | 
					 | 
				
			||||||
EekModifierKey
 | 
					 | 
				
			||||||
eek_keyboard_add_outline
 | 
					 | 
				
			||||||
eek_keyboard_create_section
 | 
					 | 
				
			||||||
eek_keyboard_find_key_by_keycode
 | 
					 | 
				
			||||||
eek_keyboard_get_alt_gr_mask
 | 
					 | 
				
			||||||
eek_keyboard_get_group
 | 
					 | 
				
			||||||
eek_keyboard_get_layout
 | 
					 | 
				
			||||||
eek_keyboard_get_level
 | 
					 | 
				
			||||||
eek_keyboard_get_locked_keys
 | 
					 | 
				
			||||||
eek_keyboard_get_modifier_behavior
 | 
					 | 
				
			||||||
eek_keyboard_get_modifiers
 | 
					 | 
				
			||||||
eek_keyboard_get_num_lock_mask
 | 
					 | 
				
			||||||
eek_keyboard_get_outline
 | 
					 | 
				
			||||||
eek_keyboard_get_pressed_keys
 | 
					 | 
				
			||||||
eek_keyboard_get_size
 | 
					 | 
				
			||||||
eek_keyboard_get_symbol_index
 | 
					 | 
				
			||||||
eek_keyboard_new
 | 
					 | 
				
			||||||
eek_keyboard_set_alt_gr_mask
 | 
					 | 
				
			||||||
eek_keyboard_set_group
 | 
					 | 
				
			||||||
eek_keyboard_set_level
 | 
					 | 
				
			||||||
eek_keyboard_set_modifier_behavior
 | 
					 | 
				
			||||||
eek_keyboard_set_modifiers
 | 
					 | 
				
			||||||
eek_keyboard_set_num_lock_mask
 | 
					 | 
				
			||||||
eek_keyboard_set_size
 | 
					 | 
				
			||||||
eek_keyboard_set_symbol_index
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_KEYBOARD
 | 
					 | 
				
			||||||
EEK_IS_KEYBOARD_CLASS
 | 
					 | 
				
			||||||
EEK_KEYBOARD
 | 
					 | 
				
			||||||
EEK_KEYBOARD_CLASS
 | 
					 | 
				
			||||||
EEK_KEYBOARD_GET_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_KEYBOARD
 | 
					 | 
				
			||||||
EekKeyboardPrivate
 | 
					 | 
				
			||||||
eek_keyboard_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-keysym</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekKeysym</TITLE>
 | 
					 | 
				
			||||||
EekKeysym
 | 
					 | 
				
			||||||
EekKeysymClass
 | 
					 | 
				
			||||||
eek_keysym_get_xkeysym
 | 
					 | 
				
			||||||
eek_keysym_new
 | 
					 | 
				
			||||||
eek_keysym_new_from_name
 | 
					 | 
				
			||||||
eek_keysym_new_with_modifier
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_INVALID_KEYSYM
 | 
					 | 
				
			||||||
EEK_IS_KEYSYM
 | 
					 | 
				
			||||||
EEK_IS_KEYSYM_CLASS
 | 
					 | 
				
			||||||
EEK_KEYSYM
 | 
					 | 
				
			||||||
EEK_KEYSYM_CLASS
 | 
					 | 
				
			||||||
EEK_KEYSYM_GET_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_KEYSYM
 | 
					 | 
				
			||||||
EekKeysymPrivate
 | 
					 | 
				
			||||||
eek_keysym_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-layout</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekLayout</TITLE>
 | 
					 | 
				
			||||||
EekLayout
 | 
					 | 
				
			||||||
EekLayoutClass
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_LAYOUT
 | 
					 | 
				
			||||||
EEK_IS_LAYOUT_CLASS
 | 
					 | 
				
			||||||
EEK_LAYOUT
 | 
					 | 
				
			||||||
EEK_LAYOUT_CLASS
 | 
					 | 
				
			||||||
EEK_LAYOUT_GET_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_LAYOUT
 | 
					 | 
				
			||||||
eek_layout_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-marshalers</FILE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-section</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekSection</TITLE>
 | 
					 | 
				
			||||||
EekSection
 | 
					 | 
				
			||||||
EekSectionClass
 | 
					 | 
				
			||||||
eek_section_add_row
 | 
					 | 
				
			||||||
eek_section_create_key
 | 
					 | 
				
			||||||
eek_section_find_key_by_keycode
 | 
					 | 
				
			||||||
eek_section_get_angle
 | 
					 | 
				
			||||||
eek_section_get_n_rows
 | 
					 | 
				
			||||||
eek_section_get_row
 | 
					 | 
				
			||||||
eek_section_set_angle
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_SECTION
 | 
					 | 
				
			||||||
EEK_IS_SECTION_CLASS
 | 
					 | 
				
			||||||
EEK_SECTION
 | 
					 | 
				
			||||||
EEK_SECTION_CLASS
 | 
					 | 
				
			||||||
EEK_SECTION_GET_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_SECTION
 | 
					 | 
				
			||||||
EekSectionPrivate
 | 
					 | 
				
			||||||
eek_section_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-serializable</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekSerializable</TITLE>
 | 
					 | 
				
			||||||
EekSerializableIface
 | 
					 | 
				
			||||||
eek_serializable_deserialize
 | 
					 | 
				
			||||||
eek_serializable_serialize
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_SERIALIZABLE
 | 
					 | 
				
			||||||
EEK_SERIALIZABLE
 | 
					 | 
				
			||||||
EEK_SERIALIZABLE_GET_IFACE
 | 
					 | 
				
			||||||
EEK_TYPE_SERIALIZABLE
 | 
					 | 
				
			||||||
eek_serializable_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-special-keysym-entries</FILE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-symbol</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekSymbol</TITLE>
 | 
					 | 
				
			||||||
EekSymbol
 | 
					 | 
				
			||||||
EekSymbolCategory
 | 
					 | 
				
			||||||
EekSymbolClass
 | 
					 | 
				
			||||||
eek_symbol_category_from_name
 | 
					 | 
				
			||||||
eek_symbol_category_get_name
 | 
					 | 
				
			||||||
eek_symbol_get_category
 | 
					 | 
				
			||||||
eek_symbol_get_icon_name
 | 
					 | 
				
			||||||
eek_symbol_get_label
 | 
					 | 
				
			||||||
eek_symbol_get_modifier_mask
 | 
					 | 
				
			||||||
eek_symbol_get_name
 | 
					 | 
				
			||||||
eek_symbol_is_modifier
 | 
					 | 
				
			||||||
eek_symbol_new
 | 
					 | 
				
			||||||
eek_symbol_set_category
 | 
					 | 
				
			||||||
eek_symbol_set_icon_name
 | 
					 | 
				
			||||||
eek_symbol_set_label
 | 
					 | 
				
			||||||
eek_symbol_set_modifier_mask
 | 
					 | 
				
			||||||
eek_symbol_set_name
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_SYMBOL
 | 
					 | 
				
			||||||
EEK_IS_SYMBOL_CLASS
 | 
					 | 
				
			||||||
EEK_SYMBOL
 | 
					 | 
				
			||||||
EEK_SYMBOL_CLASS
 | 
					 | 
				
			||||||
EEK_SYMBOL_GET_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_SYMBOL
 | 
					 | 
				
			||||||
EekSymbolPrivate
 | 
					 | 
				
			||||||
eek_symbol_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-symbol-matrix</FILE>
 | 
					 | 
				
			||||||
EekSymbolMatrix
 | 
					 | 
				
			||||||
eek_symbol_matrix_copy
 | 
					 | 
				
			||||||
eek_symbol_matrix_free
 | 
					 | 
				
			||||||
eek_symbol_matrix_get_symbol
 | 
					 | 
				
			||||||
eek_symbol_matrix_new
 | 
					 | 
				
			||||||
eek_symbol_matrix_set_symbol
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_TYPE_SYMBOL_MATRIX
 | 
					 | 
				
			||||||
eek_symbol_matrix_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-text</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekText</TITLE>
 | 
					 | 
				
			||||||
EekText
 | 
					 | 
				
			||||||
EekTextClass
 | 
					 | 
				
			||||||
eek_text_get_text
 | 
					 | 
				
			||||||
eek_text_new
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_TEXT
 | 
					 | 
				
			||||||
EEK_IS_TEXT_CLASS
 | 
					 | 
				
			||||||
EEK_TEXT
 | 
					 | 
				
			||||||
EEK_TEXT_CLASS
 | 
					 | 
				
			||||||
EEK_TEXT_GET_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_TEXT
 | 
					 | 
				
			||||||
EekTextPrivate
 | 
					 | 
				
			||||||
eek_text_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-theme-context</FILE>
 | 
					 | 
				
			||||||
EekThemeContextClass
 | 
					 | 
				
			||||||
eek_theme_context_get_font
 | 
					 | 
				
			||||||
eek_theme_context_get_resolution
 | 
					 | 
				
			||||||
eek_theme_context_get_root_node
 | 
					 | 
				
			||||||
eek_theme_context_get_theme
 | 
					 | 
				
			||||||
eek_theme_context_new
 | 
					 | 
				
			||||||
eek_theme_context_set_default_resolution
 | 
					 | 
				
			||||||
eek_theme_context_set_font
 | 
					 | 
				
			||||||
eek_theme_context_set_resolution
 | 
					 | 
				
			||||||
eek_theme_context_set_theme
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_THEME_CONTEXT
 | 
					 | 
				
			||||||
EEK_IS_THEME_CONTEXT_CLASS
 | 
					 | 
				
			||||||
EEK_THEME_CONTEXT
 | 
					 | 
				
			||||||
EEK_THEME_CONTEXT_CLASS
 | 
					 | 
				
			||||||
EEK_THEME_CONTEXT_GET_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_THEME_CONTEXT
 | 
					 | 
				
			||||||
eek_theme_context_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-theme-private</FILE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-types</FILE>
 | 
					 | 
				
			||||||
EEK_INVALID_KEYCODE
 | 
					 | 
				
			||||||
EekBounds
 | 
					 | 
				
			||||||
EekColor
 | 
					 | 
				
			||||||
EekContainer
 | 
					 | 
				
			||||||
EekElement
 | 
					 | 
				
			||||||
EekGradientType
 | 
					 | 
				
			||||||
EekKey
 | 
					 | 
				
			||||||
EekKeyboard
 | 
					 | 
				
			||||||
EekKeysym
 | 
					 | 
				
			||||||
EekModifierBehavior
 | 
					 | 
				
			||||||
EekModifierType
 | 
					 | 
				
			||||||
EekOrientation
 | 
					 | 
				
			||||||
EekOutline
 | 
					 | 
				
			||||||
EekPoint
 | 
					 | 
				
			||||||
EekSection
 | 
					 | 
				
			||||||
EekSymbol
 | 
					 | 
				
			||||||
EekSymbolMatrix
 | 
					 | 
				
			||||||
EekText
 | 
					 | 
				
			||||||
EekTheme
 | 
					 | 
				
			||||||
EekThemeContext
 | 
					 | 
				
			||||||
EekThemeNode
 | 
					 | 
				
			||||||
I_
 | 
					 | 
				
			||||||
eek_bounds_copy
 | 
					 | 
				
			||||||
eek_bounds_free
 | 
					 | 
				
			||||||
eek_bounds_long_side
 | 
					 | 
				
			||||||
eek_color_copy
 | 
					 | 
				
			||||||
eek_color_free
 | 
					 | 
				
			||||||
eek_color_new
 | 
					 | 
				
			||||||
eek_outline_copy
 | 
					 | 
				
			||||||
eek_outline_free
 | 
					 | 
				
			||||||
eek_point_copy
 | 
					 | 
				
			||||||
eek_point_free
 | 
					 | 
				
			||||||
eek_point_rotate
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_TYPE_BOUNDS
 | 
					 | 
				
			||||||
EEK_TYPE_COLOR
 | 
					 | 
				
			||||||
EEK_TYPE_OUTLINE
 | 
					 | 
				
			||||||
EEK_TYPE_POINT
 | 
					 | 
				
			||||||
eek_bounds_get_type
 | 
					 | 
				
			||||||
eek_color_get_type
 | 
					 | 
				
			||||||
eek_outline_get_type
 | 
					 | 
				
			||||||
eek_point_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-unicode-keysym-entries</FILE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-xkb</FILE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-xkb-layout</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekXkbLayout</TITLE>
 | 
					 | 
				
			||||||
EekXkbLayout
 | 
					 | 
				
			||||||
EekXkbLayoutClass
 | 
					 | 
				
			||||||
eek_xkb_layout_get_geometry
 | 
					 | 
				
			||||||
eek_xkb_layout_get_keycodes
 | 
					 | 
				
			||||||
eek_xkb_layout_get_symbols
 | 
					 | 
				
			||||||
eek_xkb_layout_new
 | 
					 | 
				
			||||||
eek_xkb_layout_set_geometry
 | 
					 | 
				
			||||||
eek_xkb_layout_set_keycodes
 | 
					 | 
				
			||||||
eek_xkb_layout_set_names
 | 
					 | 
				
			||||||
eek_xkb_layout_set_names_full
 | 
					 | 
				
			||||||
eek_xkb_layout_set_names_full_valist
 | 
					 | 
				
			||||||
eek_xkb_layout_set_symbols
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_XKB_LAYOUT
 | 
					 | 
				
			||||||
EEK_IS_XKB_LAYOUT_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_XKB_LAYOUT
 | 
					 | 
				
			||||||
EEK_XKB_LAYOUT
 | 
					 | 
				
			||||||
EEK_XKB_LAYOUT_CLASS
 | 
					 | 
				
			||||||
EEK_XKB_LAYOUT_GET_CLASS
 | 
					 | 
				
			||||||
EekXkbLayoutPrivate
 | 
					 | 
				
			||||||
eek_xkb_layout_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-xkeysym-keysym-entries</FILE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-xkl</FILE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-xkl-layout</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekXklLayout</TITLE>
 | 
					 | 
				
			||||||
EekXklLayout
 | 
					 | 
				
			||||||
EekXklLayoutClass
 | 
					 | 
				
			||||||
eek_xkl_layout_disable_option
 | 
					 | 
				
			||||||
eek_xkl_layout_enable_option
 | 
					 | 
				
			||||||
eek_xkl_layout_get_layouts
 | 
					 | 
				
			||||||
eek_xkl_layout_get_model
 | 
					 | 
				
			||||||
eek_xkl_layout_get_option
 | 
					 | 
				
			||||||
eek_xkl_layout_get_options
 | 
					 | 
				
			||||||
eek_xkl_layout_get_variants
 | 
					 | 
				
			||||||
eek_xkl_layout_new
 | 
					 | 
				
			||||||
eek_xkl_layout_set_config
 | 
					 | 
				
			||||||
eek_xkl_layout_set_config_full
 | 
					 | 
				
			||||||
eek_xkl_layout_set_layouts
 | 
					 | 
				
			||||||
eek_xkl_layout_set_model
 | 
					 | 
				
			||||||
eek_xkl_layout_set_options
 | 
					 | 
				
			||||||
eek_xkl_layout_set_variants
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_XKL_LAYOUT
 | 
					 | 
				
			||||||
EEK_IS_XKL_LAYOUT_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_XKL_LAYOUT
 | 
					 | 
				
			||||||
EEK_XKL_LAYOUT
 | 
					 | 
				
			||||||
EEK_XKL_LAYOUT_CLASS
 | 
					 | 
				
			||||||
EEK_XKL_LAYOUT_GET_CLASS
 | 
					 | 
				
			||||||
EekXklLayoutPrivate
 | 
					 | 
				
			||||||
eek_xkl_layout_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-xml</FILE>
 | 
					 | 
				
			||||||
EEK_XML_SCHEMA_VERSION
 | 
					 | 
				
			||||||
eek_keyboard_output
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eek-xml-layout</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekXmlLayout</TITLE>
 | 
					 | 
				
			||||||
EekXmlLayout
 | 
					 | 
				
			||||||
EekXmlLayoutClass
 | 
					 | 
				
			||||||
eek_xml_layout_get_source
 | 
					 | 
				
			||||||
eek_xml_layout_new
 | 
					 | 
				
			||||||
eek_xml_layout_set_source
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEK_IS_XML_LAYOUT
 | 
					 | 
				
			||||||
EEK_IS_XML_LAYOUT_CLASS
 | 
					 | 
				
			||||||
EEK_TYPE_XML_LAYOUT
 | 
					 | 
				
			||||||
EEK_XML_LAYOUT
 | 
					 | 
				
			||||||
EEK_XML_LAYOUT_CLASS
 | 
					 | 
				
			||||||
EEK_XML_LAYOUT_GET_CLASS
 | 
					 | 
				
			||||||
EekXmlLayoutPrivate
 | 
					 | 
				
			||||||
eek_xml_layout_get_type
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ -1,56 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0"?>
 | 
					 | 
				
			||||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
 | 
					 | 
				
			||||||
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
 | 
					 | 
				
			||||||
[
 | 
					 | 
				
			||||||
  <!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
 | 
					 | 
				
			||||||
]>
 | 
					 | 
				
			||||||
<book id="index">
 | 
					 | 
				
			||||||
  <bookinfo>
 | 
					 | 
				
			||||||
    <title>eekboard Reference Manual</title>
 | 
					 | 
				
			||||||
    <releaseinfo>
 | 
					 | 
				
			||||||
      for eekboard 0.90.0.
 | 
					 | 
				
			||||||
    </releaseinfo>
 | 
					 | 
				
			||||||
    <copyright>
 | 
					 | 
				
			||||||
      <year>2011</year>
 | 
					 | 
				
			||||||
      <holder>Daiki Ueno</holder>
 | 
					 | 
				
			||||||
    </copyright>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <copyright>
 | 
					 | 
				
			||||||
      <year>2011</year>
 | 
					 | 
				
			||||||
      <holder>Red Hat, Inc.</holder>
 | 
					 | 
				
			||||||
    </copyright>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <legalnotice>
 | 
					 | 
				
			||||||
      <para>
 | 
					 | 
				
			||||||
	Permission is granted to copy, distribute and/or modify this
 | 
					 | 
				
			||||||
	document under the terms of the GNU Free Documentation License,
 | 
					 | 
				
			||||||
	Version 1.3 or any later version published by the Free Software
 | 
					 | 
				
			||||||
	Foundation; with no Invariant Sections, no Front-Cover Texts and
 | 
					 | 
				
			||||||
	no Back-Cover Texts.  A copy of the license is included in the
 | 
					 | 
				
			||||||
	section entitled "GNU Free Documentation License".
 | 
					 | 
				
			||||||
      </para>
 | 
					 | 
				
			||||||
    </legalnotice>
 | 
					 | 
				
			||||||
  </bookinfo>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <part id="apireference">
 | 
					 | 
				
			||||||
    <title>API Manual</title>
 | 
					 | 
				
			||||||
    <chapter>
 | 
					 | 
				
			||||||
      <title>Client interface to eekboard-server</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eekboard-client.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eekboard-context.xml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <chapter>
 | 
					 | 
				
			||||||
      <title>Server interface to implement custom eekboard-server</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eekboard-service.xml"/>
 | 
					 | 
				
			||||||
      <xi:include href="xml/eekboard-context-service.xml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <chapter id="object-tree">
 | 
					 | 
				
			||||||
      <title>Object Hierarchy</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/tree_index.sgml"/>
 | 
					 | 
				
			||||||
    </chapter>
 | 
					 | 
				
			||||||
    <index id="api-index-full">
 | 
					 | 
				
			||||||
      <title>API Index</title>
 | 
					 | 
				
			||||||
      <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
 | 
					 | 
				
			||||||
    </index>
 | 
					 | 
				
			||||||
  </part>
 | 
					 | 
				
			||||||
</book>
 | 
					 | 
				
			||||||
@ -1,104 +0,0 @@
 | 
				
			|||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eekboard-client</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekboardClient</TITLE>
 | 
					 | 
				
			||||||
EekboardClient
 | 
					 | 
				
			||||||
EekboardClientClass
 | 
					 | 
				
			||||||
eekboard_client_new
 | 
					 | 
				
			||||||
eekboard_client_create_context
 | 
					 | 
				
			||||||
eekboard_client_push_context
 | 
					 | 
				
			||||||
eekboard_client_pop_context
 | 
					 | 
				
			||||||
eekboard_client_destroy_context
 | 
					 | 
				
			||||||
EekboardClientPrivate
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEKBOARD_CLIENT
 | 
					 | 
				
			||||||
EEKBOARD_IS_CLIENT
 | 
					 | 
				
			||||||
EEKBOARD_TYPE_CLIENT
 | 
					 | 
				
			||||||
eekboard_client_get_type
 | 
					 | 
				
			||||||
EEKBOARD_CLIENT_CLASS
 | 
					 | 
				
			||||||
EEKBOARD_IS_CLIENT_CLASS
 | 
					 | 
				
			||||||
EEKBOARD_CLIENT_GET_CLASS
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eekboard-service</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekboardService</TITLE>
 | 
					 | 
				
			||||||
EEKBOARD_SERVICE_PATH
 | 
					 | 
				
			||||||
EEKBOARD_SERVICE_INTERFACE
 | 
					 | 
				
			||||||
EekboardService
 | 
					 | 
				
			||||||
EekboardServiceClass
 | 
					 | 
				
			||||||
eekboard_service_new
 | 
					 | 
				
			||||||
EekboardServicePrivate
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEKBOARD_SERVICE
 | 
					 | 
				
			||||||
EEKBOARD_IS_SERVICE
 | 
					 | 
				
			||||||
EEKBOARD_TYPE_SERVICE
 | 
					 | 
				
			||||||
eekboard_service_get_type
 | 
					 | 
				
			||||||
EEKBOARD_SERVICE_CLASS
 | 
					 | 
				
			||||||
EEKBOARD_IS_SERVICE_CLASS
 | 
					 | 
				
			||||||
EEKBOARD_SERVICE_GET_CLASS
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eekboard-context</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekboardContext</TITLE>
 | 
					 | 
				
			||||||
EekboardContext
 | 
					 | 
				
			||||||
EekboardContextClass
 | 
					 | 
				
			||||||
eekboard_context_new
 | 
					 | 
				
			||||||
eekboard_context_add_keyboard
 | 
					 | 
				
			||||||
eekboard_context_remove_keyboard
 | 
					 | 
				
			||||||
eekboard_context_set_keyboard
 | 
					 | 
				
			||||||
eekboard_context_show_keyboard
 | 
					 | 
				
			||||||
eekboard_context_hide_keyboard
 | 
					 | 
				
			||||||
eekboard_context_set_group
 | 
					 | 
				
			||||||
eekboard_context_get_group
 | 
					 | 
				
			||||||
eekboard_context_press_keycode
 | 
					 | 
				
			||||||
eekboard_context_release_keycode
 | 
					 | 
				
			||||||
eekboard_context_is_keyboard_visible
 | 
					 | 
				
			||||||
eekboard_context_set_enabled
 | 
					 | 
				
			||||||
eekboard_context_is_enabled
 | 
					 | 
				
			||||||
eekboard_context_set_fullscreen
 | 
					 | 
				
			||||||
EekboardContextPrivate
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEKBOARD_CONTEXT
 | 
					 | 
				
			||||||
EEKBOARD_IS_CONTEXT
 | 
					 | 
				
			||||||
EEKBOARD_TYPE_CONTEXT
 | 
					 | 
				
			||||||
eekboard_context_get_type
 | 
					 | 
				
			||||||
EEKBOARD_CONTEXT_CLASS
 | 
					 | 
				
			||||||
EEKBOARD_IS_CONTEXT_CLASS
 | 
					 | 
				
			||||||
EEKBOARD_CONTEXT_GET_CLASS
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eekboard-context-service</FILE>
 | 
					 | 
				
			||||||
<TITLE>EekboardContextService</TITLE>
 | 
					 | 
				
			||||||
EEKBOARD_CONTEXT_SERVICE_PATH
 | 
					 | 
				
			||||||
EEKBOARD_CONTEXT_SERVICE_INTERFACE
 | 
					 | 
				
			||||||
EekboardContextService
 | 
					 | 
				
			||||||
EekboardContextServiceClass
 | 
					 | 
				
			||||||
eekboard_context_service_enable
 | 
					 | 
				
			||||||
eekboard_context_service_disable
 | 
					 | 
				
			||||||
eekboard_context_service_get_keyboard
 | 
					 | 
				
			||||||
eekboard_context_service_get_fullscreen
 | 
					 | 
				
			||||||
eekboard_context_service_get_client_name
 | 
					 | 
				
			||||||
EekboardContextServicePrivate
 | 
					 | 
				
			||||||
<SUBSECTION Standard>
 | 
					 | 
				
			||||||
EEKBOARD_CONTEXT_SERVICE
 | 
					 | 
				
			||||||
EEKBOARD_IS_CONTEXT_SERVICE
 | 
					 | 
				
			||||||
EEKBOARD_TYPE_CONTEXT_SERVICE
 | 
					 | 
				
			||||||
eekboard_context_service_get_type
 | 
					 | 
				
			||||||
EEKBOARD_CONTEXT_SERVICE_CLASS
 | 
					 | 
				
			||||||
EEKBOARD_IS_CONTEXT_SERVICE_CLASS
 | 
					 | 
				
			||||||
EEKBOARD_CONTEXT_SERVICE_GET_CLASS
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<SECTION>
 | 
					 | 
				
			||||||
<FILE>eekboard-xklutil</FILE>
 | 
					 | 
				
			||||||
eekboard_xkl_config_rec_from_string
 | 
					 | 
				
			||||||
eekboard_xkl_config_rec_to_string
 | 
					 | 
				
			||||||
eekboard_xkl_list_models
 | 
					 | 
				
			||||||
eekboard_xkl_list_layouts
 | 
					 | 
				
			||||||
eekboard_xkl_list_option_groups
 | 
					 | 
				
			||||||
eekboard_xkl_list_layout_variants
 | 
					 | 
				
			||||||
eekboard_xkl_list_options
 | 
					 | 
				
			||||||
</SECTION>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ -1,4 +0,0 @@
 | 
				
			|||||||
eekboard_client_get_type
 | 
					 | 
				
			||||||
eekboard_context_get_type
 | 
					 | 
				
			||||||
eekboard_context_service_get_type
 | 
					 | 
				
			||||||
eekboard_service_get_type
 | 
					 | 
				
			||||||
@ -1,30 +0,0 @@
 | 
				
			|||||||
# Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
					 | 
				
			||||||
# Copyright (C) 2010-2011 Red Hat, Inc.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This library is free software; you can redistribute it and/or
 | 
					 | 
				
			||||||
# modify it under the terms of the GNU Lesser General Public License
 | 
					 | 
				
			||||||
# as published by the Free Software Foundation; either version 2 of
 | 
					 | 
				
			||||||
# the License, or (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This library is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 | 
				
			||||||
# Lesser General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU Lesser General Public
 | 
					 | 
				
			||||||
# License along with this library; if not, write to the Free Software
 | 
					 | 
				
			||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
					 | 
				
			||||||
# 02110-1301 USA
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
prefix=@prefix@
 | 
					 | 
				
			||||||
exec_prefix=@exec_prefix@
 | 
					 | 
				
			||||||
libdir=@libdir@
 | 
					 | 
				
			||||||
includedir=@includedir@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name: EEK
 | 
					 | 
				
			||||||
Description: A Library to Create Keyboard-like UI
 | 
					 | 
				
			||||||
URL: http://fedorahosted.org/eekboard/
 | 
					 | 
				
			||||||
Version: @VERSION@
 | 
					 | 
				
			||||||
Requires: gobject-2.0 gio-2.0
 | 
					 | 
				
			||||||
Libs: -L${libdir} -leek
 | 
					 | 
				
			||||||
Cflags: -I${includedir}/eek-@EEK_API_VERSION@
 | 
					 | 
				
			||||||
@ -1,36 +0,0 @@
 | 
				
			|||||||
/*** BEGIN file-header ***/
 | 
					 | 
				
			||||||
#include "eek.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*** END file-header ***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*** BEGIN file-production ***/
 | 
					 | 
				
			||||||
/* enumerations from "@filename@" */
 | 
					 | 
				
			||||||
/*** END file-production ***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*** BEGIN value-header ***/
 | 
					 | 
				
			||||||
GType
 | 
					 | 
				
			||||||
@enum_name@_get_type (void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  static volatile gsize g_define_type_id__volatile = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (g_once_init_enter (&g_define_type_id__volatile))
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      static const G@Type@Value values[] = {
 | 
					 | 
				
			||||||
/*** END value-header ***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*** BEGIN value-production ***/
 | 
					 | 
				
			||||||
        { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
 | 
					 | 
				
			||||||
/*** END value-production ***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*** BEGIN value-tail ***/
 | 
					 | 
				
			||||||
        { 0, NULL, NULL }
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      GType g_define_type_id =
 | 
					 | 
				
			||||||
        g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
 | 
					 | 
				
			||||||
      g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  return g_define_type_id__volatile;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*** END value-tail ***/
 | 
					 | 
				
			||||||
@ -1,29 +0,0 @@
 | 
				
			|||||||
/*** BEGIN file-header ***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#if !defined(__EEK_H_INSIDE__) && !defined(EEK_COMPILATION)
 | 
					 | 
				
			||||||
#error "Only <eek/eek.h> can be included directly."
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef __EEK_ENUMTYPES_H__
 | 
					 | 
				
			||||||
#define __EEK_ENUMTYPES_H__
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <glib-object.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
G_BEGIN_DECLS
 | 
					 | 
				
			||||||
/*** END file-header ***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*** BEGIN file-production ***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* enumerations from "@filename@" */
 | 
					 | 
				
			||||||
/*** END file-production ***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*** BEGIN value-header ***/
 | 
					 | 
				
			||||||
GType @enum_name@_get_type (void) G_GNUC_CONST;
 | 
					 | 
				
			||||||
#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
 | 
					 | 
				
			||||||
/*** END value-header ***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*** BEGIN file-tail ***/
 | 
					 | 
				
			||||||
G_END_DECLS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif /* __EEK_ENUMTYPES_H__ */
 | 
					 | 
				
			||||||
/*** END file-tail ***/
 | 
					 | 
				
			||||||
@ -1,30 +0,0 @@
 | 
				
			|||||||
# Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
					 | 
				
			||||||
# Copyright (C) 2010-2011 Red Hat, Inc.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This library is free software; you can redistribute it and/or
 | 
					 | 
				
			||||||
# modify it under the terms of the GNU Lesser General Public License
 | 
					 | 
				
			||||||
# as published by the Free Software Foundation; either version 2 of
 | 
					 | 
				
			||||||
# the License, or (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This library is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 | 
				
			||||||
# Lesser General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU Lesser General Public
 | 
					 | 
				
			||||||
# License along with this library; if not, write to the Free Software
 | 
					 | 
				
			||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
					 | 
				
			||||||
# 02110-1301 USA
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
prefix=@prefix@
 | 
					 | 
				
			||||||
exec_prefix=@exec_prefix@
 | 
					 | 
				
			||||||
libdir=@libdir@
 | 
					 | 
				
			||||||
includedir=@includedir@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name: libeek-gtk
 | 
					 | 
				
			||||||
Description: A Library to Create Keyboard-like UI (GTK Support)
 | 
					 | 
				
			||||||
URL: http://fedorahosted.org/eekboard/
 | 
					 | 
				
			||||||
Version: @VERSION@
 | 
					 | 
				
			||||||
Requires: eek-@EEK_API_VERSION@ gtk+-@GTK_API_VERSION@
 | 
					 | 
				
			||||||
Libs: -L${libdir} -leek-gtk
 | 
					 | 
				
			||||||
Cflags: -I${includedir}/eek-@EEK_API_VERSION@
 | 
					 | 
				
			||||||
@ -37,6 +37,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "eek-gtk-keyboard.h"
 | 
					#include "eek-gtk-keyboard.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "eekboard/eekboard-context-service.h"
 | 
				
			||||||
 | 
					#include "src/layout.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum {
 | 
					enum {
 | 
				
			||||||
    PROP_0,
 | 
					    PROP_0,
 | 
				
			||||||
    PROP_LAST
 | 
					    PROP_LAST
 | 
				
			||||||
@ -51,21 +54,14 @@ enum {
 | 
				
			|||||||
typedef struct _EekGtkKeyboardPrivate
 | 
					typedef struct _EekGtkKeyboardPrivate
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekRenderer *renderer;
 | 
					    EekRenderer *renderer;
 | 
				
			||||||
    LevelKeyboard *keyboard;
 | 
					    LevelKeyboard *keyboard; // unowned reference; it's kept in server-context (FIXME)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    GdkEventSequence *sequence; // unowned reference
 | 
					    GdkEventSequence *sequence; // unowned reference
 | 
				
			||||||
} EekGtkKeyboardPrivate;
 | 
					} EekGtkKeyboardPrivate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
G_DEFINE_TYPE_WITH_PRIVATE (EekGtkKeyboard, eek_gtk_keyboard, GTK_TYPE_DRAWING_AREA)
 | 
					G_DEFINE_TYPE_WITH_PRIVATE (EekGtkKeyboard, eek_gtk_keyboard, GTK_TYPE_DRAWING_AREA)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void       on_button_pressed          (struct squeek_button *button, struct squeek_view *view,
 | 
					 | 
				
			||||||
                                              EekGtkKeyboard *self);
 | 
					 | 
				
			||||||
static void       on_button_released         (const struct squeek_button *button,
 | 
					 | 
				
			||||||
                                              struct squeek_view *view,
 | 
					 | 
				
			||||||
                                              EekGtkKeyboard *self);
 | 
					 | 
				
			||||||
static void       render_pressed_button      (GtkWidget *widget, struct button_place *place);
 | 
					static void       render_pressed_button      (GtkWidget *widget, struct button_place *place);
 | 
				
			||||||
static void       render_locked_button       (GtkWidget *widget,
 | 
					 | 
				
			||||||
                                              struct button_place *place);
 | 
					 | 
				
			||||||
static void       render_released_button     (GtkWidget *widget,
 | 
					static void       render_released_button     (GtkWidget *widget,
 | 
				
			||||||
                                              const struct squeek_button *button);
 | 
					                                              const struct squeek_button *button);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -105,30 +101,10 @@ eek_gtk_keyboard_real_draw (GtkWidget *self,
 | 
				
			|||||||
                                       gtk_widget_get_scale_factor (self));
 | 
					                                       gtk_widget_get_scale_factor (self));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // render the keyboard without any key activity (TODO: from a cached buffer)
 | 
				
			||||||
    eek_renderer_render_keyboard (priv->renderer, cr);
 | 
					    eek_renderer_render_keyboard (priv->renderer, cr);
 | 
				
			||||||
 | 
					    // render only a few remaining changes
 | 
				
			||||||
    struct squeek_view *view = squeek_layout_get_current_view(priv->keyboard->layout);
 | 
					    squeek_layout_draw_all_changed(priv->keyboard->layout, EEK_GTK_KEYBOARD(self));
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* redraw pressed key */
 | 
					 | 
				
			||||||
    const GList *list = priv->keyboard->pressed_keys;
 | 
					 | 
				
			||||||
    for (const GList *head = list; head; head = g_list_next (head)) {
 | 
					 | 
				
			||||||
        struct button_place place = squeek_view_find_key(
 | 
					 | 
				
			||||||
            view, head->data
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
        if (place.button)
 | 
					 | 
				
			||||||
            render_pressed_button (self, &place);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* redraw locked key */
 | 
					 | 
				
			||||||
    list = priv->keyboard->locked_keys;
 | 
					 | 
				
			||||||
    for (const GList *head = list; head; head = g_list_next (head)) {
 | 
					 | 
				
			||||||
        struct button_place place = squeek_view_find_key(
 | 
					 | 
				
			||||||
            view, ((EekModifierKey *)head->data)->key
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
        if (place.button)
 | 
					 | 
				
			||||||
            render_locked_button (self, &place);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return FALSE;
 | 
					    return FALSE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -152,84 +128,24 @@ static void depress(EekGtkKeyboard *self,
 | 
				
			|||||||
                    gdouble x, gdouble y, guint32 time)
 | 
					                    gdouble x, gdouble y, guint32 time)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
					    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
				
			||||||
    struct squeek_view *view = level_keyboard_current(priv->keyboard);
 | 
					 | 
				
			||||||
    struct squeek_button *button = eek_renderer_find_button_by_position (priv->renderer, view, x, y);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (button) {
 | 
					    squeek_layout_depress(priv->keyboard->layout, priv->keyboard->manager->virtual_keyboard,
 | 
				
			||||||
        eek_keyboard_press_key(
 | 
					                          x, y, eek_renderer_get_transformation(priv->renderer), time, self);
 | 
				
			||||||
            priv->keyboard,
 | 
					 | 
				
			||||||
            squeek_button_get_key(button),
 | 
					 | 
				
			||||||
            time
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
        on_button_pressed(button, view, self);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void drag(EekGtkKeyboard *self,
 | 
					static void drag(EekGtkKeyboard *self,
 | 
				
			||||||
                 gdouble x, gdouble y, guint32 time)
 | 
					                 gdouble x, gdouble y, guint32 time)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
					    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
				
			||||||
    struct squeek_view *view = level_keyboard_current(priv->keyboard);
 | 
					    squeek_layout_drag(priv->keyboard->layout, priv->keyboard->manager->virtual_keyboard,
 | 
				
			||||||
    struct squeek_button *button = eek_renderer_find_button_by_position (priv->renderer, view, x, y);
 | 
					                       x, y, eek_renderer_get_transformation(priv->renderer), time, self);
 | 
				
			||||||
    GList *list, *head;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    list = g_list_copy(priv->keyboard->pressed_keys);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (button) {
 | 
					 | 
				
			||||||
        gboolean found = FALSE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for (head = list; head; head = g_list_next (head)) {
 | 
					 | 
				
			||||||
            struct squeek_key *key = head->data;
 | 
					 | 
				
			||||||
            if (squeek_button_has_key(button, key)) {
 | 
					 | 
				
			||||||
                found = TRUE;
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                eek_keyboard_release_key(priv->keyboard, key, time);
 | 
					 | 
				
			||||||
                // The released handler proceeds to ignore this info...
 | 
					 | 
				
			||||||
                // let's do this for consistency nevertheless
 | 
					 | 
				
			||||||
                struct button_place place = squeek_view_find_key(view, key);
 | 
					 | 
				
			||||||
                on_button_released(place.button, view, self);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        g_list_free (list);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!found) {
 | 
					 | 
				
			||||||
            eek_keyboard_press_key(
 | 
					 | 
				
			||||||
                priv->keyboard,
 | 
					 | 
				
			||||||
                squeek_button_get_key(button),
 | 
					 | 
				
			||||||
                time
 | 
					 | 
				
			||||||
            );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            on_button_pressed(button, view, self);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        for (head = list; head; head = g_list_next (head)) {
 | 
					 | 
				
			||||||
            struct squeek_key *key = head->data;
 | 
					 | 
				
			||||||
            eek_keyboard_release_key(priv->keyboard, key, time);
 | 
					 | 
				
			||||||
            // The released handler proceeds to ignore this info...
 | 
					 | 
				
			||||||
            // let's do this for consistency nevertheless
 | 
					 | 
				
			||||||
            struct button_place place = squeek_view_find_key(view, key);
 | 
					 | 
				
			||||||
            on_button_released(place.button, view, self);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        g_list_free (list);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void release(EekGtkKeyboard *self, guint32 time)
 | 
					static void release(EekGtkKeyboard *self, guint32 time)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
					    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    struct squeek_view *view = level_keyboard_current(priv->keyboard);
 | 
					    squeek_layout_release(priv->keyboard->layout, priv->keyboard->manager->virtual_keyboard, eek_renderer_get_transformation(priv->renderer), time, self);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    GList *list = g_list_copy(priv->keyboard->pressed_keys);
 | 
					 | 
				
			||||||
    for (GList *head = list; head; head = g_list_next (head)) {
 | 
					 | 
				
			||||||
        struct squeek_key *key = head->data;
 | 
					 | 
				
			||||||
        eek_keyboard_release_key(priv->keyboard, key, time);
 | 
					 | 
				
			||||||
        // The released handler proceeds to ignore this info...
 | 
					 | 
				
			||||||
        // let's do this for consistency nevertheless
 | 
					 | 
				
			||||||
        struct button_place place = squeek_view_find_key(view, key);
 | 
					 | 
				
			||||||
        on_button_released(place.button, view, self);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    g_list_free (list);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static gboolean
 | 
					static gboolean
 | 
				
			||||||
@ -242,6 +158,8 @@ eek_gtk_keyboard_real_button_press_event (GtkWidget      *self,
 | 
				
			|||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: this belongs more in gtk_keyboard, with a way to find out which key to re-render
 | 
					// TODO: this belongs more in gtk_keyboard, with a way to find out which key to re-render
 | 
				
			||||||
static gboolean
 | 
					static gboolean
 | 
				
			||||||
eek_gtk_keyboard_real_button_release_event (GtkWidget      *self,
 | 
					eek_gtk_keyboard_real_button_release_event (GtkWidget      *self,
 | 
				
			||||||
@ -254,6 +172,18 @@ eek_gtk_keyboard_real_button_release_event (GtkWidget      *self,
 | 
				
			|||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static gboolean
 | 
				
			||||||
 | 
					eek_gtk_keyboard_leave_event (GtkWidget      *self,
 | 
				
			||||||
 | 
					                              GdkEventCrossing *event)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (event->type == GDK_LEAVE_NOTIFY) {
 | 
				
			||||||
 | 
					        // TODO: can the event have different coords than the previous move event?
 | 
				
			||||||
 | 
					        release(EEK_GTK_KEYBOARD(self), event->time);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return TRUE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static gboolean
 | 
					static gboolean
 | 
				
			||||||
eek_gtk_keyboard_real_motion_notify_event (GtkWidget      *self,
 | 
					eek_gtk_keyboard_real_motion_notify_event (GtkWidget      *self,
 | 
				
			||||||
                                           GdkEventMotion *event)
 | 
					                                           GdkEventMotion *event)
 | 
				
			||||||
@ -304,15 +234,9 @@ eek_gtk_keyboard_real_unmap (GtkWidget *self)
 | 
				
			|||||||
	    eek_gtk_keyboard_get_instance_private (EEK_GTK_KEYBOARD (self));
 | 
						    eek_gtk_keyboard_get_instance_private (EEK_GTK_KEYBOARD (self));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (priv->keyboard) {
 | 
					    if (priv->keyboard) {
 | 
				
			||||||
        GList *head;
 | 
					        squeek_layout_release_all_only(
 | 
				
			||||||
 | 
					            priv->keyboard->layout, priv->keyboard->manager->virtual_keyboard,
 | 
				
			||||||
        for (head = priv->keyboard->pressed_keys; head; head = g_list_next (head)) {
 | 
					            gdk_event_get_time(NULL));
 | 
				
			||||||
            /* Unlike other places where we call this, we don't call
 | 
					 | 
				
			||||||
               on_button_released afterwards since we don't want to queue a
 | 
					 | 
				
			||||||
               redraw. */
 | 
					 | 
				
			||||||
            eek_keyboard_release_key(priv->keyboard, head->data,
 | 
					 | 
				
			||||||
                                        gdk_event_get_time(NULL));
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    GTK_WIDGET_CLASS (eek_gtk_keyboard_parent_class)->unmap (self);
 | 
					    GTK_WIDGET_CLASS (eek_gtk_keyboard_parent_class)->unmap (self);
 | 
				
			||||||
@ -344,13 +268,9 @@ eek_gtk_keyboard_dispose (GObject *object)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (priv->keyboard) {
 | 
					    if (priv->keyboard) {
 | 
				
			||||||
        GList *head;
 | 
					        squeek_layout_release_all_only(
 | 
				
			||||||
 | 
					            priv->keyboard->layout, priv->keyboard->manager->virtual_keyboard,
 | 
				
			||||||
        for (head = priv->keyboard->pressed_keys; head; head = g_list_next (head)) {
 | 
					            gdk_event_get_time(NULL));
 | 
				
			||||||
            eek_keyboard_release_key(priv->keyboard, head->data,
 | 
					 | 
				
			||||||
                                        gdk_event_get_time(NULL));
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        priv->keyboard = NULL;
 | 
					        priv->keyboard = NULL;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -373,6 +293,9 @@ eek_gtk_keyboard_class_init (EekGtkKeyboardClass *klass)
 | 
				
			|||||||
        eek_gtk_keyboard_real_button_release_event;
 | 
					        eek_gtk_keyboard_real_button_release_event;
 | 
				
			||||||
    widget_class->motion_notify_event =
 | 
					    widget_class->motion_notify_event =
 | 
				
			||||||
        eek_gtk_keyboard_real_motion_notify_event;
 | 
					        eek_gtk_keyboard_real_motion_notify_event;
 | 
				
			||||||
 | 
					    widget_class->leave_notify_event =
 | 
				
			||||||
 | 
					        eek_gtk_keyboard_leave_event;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    widget_class->touch_event = handle_touch_event;
 | 
					    widget_class->touch_event = handle_touch_event;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    gobject_class->set_property = eek_gtk_keyboard_set_property;
 | 
					    gobject_class->set_property = eek_gtk_keyboard_set_property;
 | 
				
			||||||
@ -420,18 +343,17 @@ render_pressed_button (GtkWidget *widget,
 | 
				
			|||||||
    cairo_region_destroy (region);
 | 
					    cairo_region_destroy (region);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					void
 | 
				
			||||||
render_locked_button (GtkWidget *widget, struct button_place *place)
 | 
					eek_gtk_render_locked_button (EekGtkKeyboard *self, struct button_place place)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekGtkKeyboard        *self = EEK_GTK_KEYBOARD (widget);
 | 
					 | 
				
			||||||
    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
					    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    GdkWindow         *window  = gtk_widget_get_window (widget);
 | 
					    GdkWindow         *window  = gtk_widget_get_window (GTK_WIDGET(self));
 | 
				
			||||||
    cairo_region_t    *region  = gdk_window_get_clip_region (window);
 | 
					    cairo_region_t    *region  = gdk_window_get_clip_region (window);
 | 
				
			||||||
    GdkDrawingContext *context = gdk_window_begin_draw_frame (window, region);
 | 
					    GdkDrawingContext *context = gdk_window_begin_draw_frame (window, region);
 | 
				
			||||||
    cairo_t           *cr      = gdk_drawing_context_get_cairo_context (context);
 | 
					    cairo_t           *cr      = gdk_drawing_context_get_cairo_context (context);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    eek_renderer_render_button (priv->renderer, cr, place, 1.0, TRUE);
 | 
					    eek_renderer_render_button (priv->renderer, cr, &place, 1.0, TRUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    gdk_window_end_draw_frame (window, context);
 | 
					    gdk_window_end_draw_frame (window, context);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -459,9 +381,8 @@ render_released_button (GtkWidget *widget,
 | 
				
			|||||||
    cairo_region_destroy (region);
 | 
					    cairo_region_destroy (region);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					void
 | 
				
			||||||
on_button_pressed (struct squeek_button *button,
 | 
					eek_gtk_on_button_pressed (struct button_place place,
 | 
				
			||||||
                   struct squeek_view *view,
 | 
					 | 
				
			||||||
                   EekGtkKeyboard *self)
 | 
					                   EekGtkKeyboard *self)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
					    EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
 | 
				
			||||||
@ -470,10 +391,6 @@ on_button_pressed (struct squeek_button *button,
 | 
				
			|||||||
    if (!priv->renderer)
 | 
					    if (!priv->renderer)
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    struct button_place place = {
 | 
					 | 
				
			||||||
        .button = button,
 | 
					 | 
				
			||||||
        .row = squeek_view_get_row(view, button),
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    if (!place.row) {
 | 
					    if (!place.row) {
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -489,8 +406,8 @@ on_button_pressed (struct squeek_button *button,
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					void
 | 
				
			||||||
on_button_released (const struct squeek_button *button,
 | 
					eek_gtk_on_button_released (const struct squeek_button *button,
 | 
				
			||||||
                    struct squeek_view *view,
 | 
					                    struct squeek_view *view,
 | 
				
			||||||
                    EekGtkKeyboard *self)
 | 
					                    EekGtkKeyboard *self)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
				
			|||||||
@ -28,7 +28,7 @@
 | 
				
			|||||||
#include <glib.h>
 | 
					#include <glib.h>
 | 
				
			||||||
#include <gtk/gtk.h>
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "eek-keyboard.h"
 | 
					typedef struct _LevelKeyboard LevelKeyboard; // including causes weird bugs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
G_BEGIN_DECLS
 | 
					G_BEGIN_DECLS
 | 
				
			||||||
#define EEK_TYPE_GTK_KEYBOARD (eek_gtk_keyboard_get_type())
 | 
					#define EEK_TYPE_GTK_KEYBOARD (eek_gtk_keyboard_get_type())
 | 
				
			||||||
 | 
				
			|||||||
@ -1,26 +0,0 @@
 | 
				
			|||||||
/* 
 | 
					 | 
				
			||||||
 * Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
					 | 
				
			||||||
 * Copyright (C) 2010-2011 Red Hat, Inc.
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * This library is free software; you can redistribute it and/or
 | 
					 | 
				
			||||||
 * modify it under the terms of the GNU Lesser General Public License
 | 
					 | 
				
			||||||
 * as published by the Free Software Foundation; either version 2 of
 | 
					 | 
				
			||||||
 * the License, or (at your option) any later version.
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * This library is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 | 
				
			||||||
 * Lesser General Public License for more details.
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * You should have received a copy of the GNU Lesser General Public
 | 
					 | 
				
			||||||
 * License along with this library; if not, write to the Free Software
 | 
					 | 
				
			||||||
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
					 | 
				
			||||||
 * 02110-1301 USA
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
#ifndef EEK_GTK_H
 | 
					 | 
				
			||||||
#define EEK_GTK_H 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "eek.h"
 | 
					 | 
				
			||||||
#include "eek-gtk-keyboard.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif  /* EEK_GTK_H */
 | 
					 | 
				
			||||||
@ -31,102 +31,16 @@
 | 
				
			|||||||
#include <glib/gprintf.h>
 | 
					#include <glib/gprintf.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "eek-enumtypes.h"
 | 
					#include "eek-enumtypes.h"
 | 
				
			||||||
 | 
					#include "eekboard/eekboard-context-service.h"
 | 
				
			||||||
#include "eekboard/key-emitter.h"
 | 
					#include "eekboard/key-emitter.h"
 | 
				
			||||||
#include "keymap.h"
 | 
					#include "keymap.h"
 | 
				
			||||||
#include "src/keyboard.h"
 | 
					#include "src/keyboard.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "eek-keyboard.h"
 | 
					#include "eek-keyboard.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EekModifierKey *
 | 
					 | 
				
			||||||
eek_modifier_key_copy (EekModifierKey *modkey)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return g_slice_dup (EekModifierKey, modkey);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
eek_modifier_key_free (EekModifierKey *modkey)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_slice_free (EekModifierKey, modkey);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
eek_keyboard_set_key_locked (LevelKeyboard    *keyboard,
 | 
					 | 
				
			||||||
                            struct squeek_key *key)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    EekModifierKey *modifier_key = g_slice_new (EekModifierKey);
 | 
					 | 
				
			||||||
    modifier_key->modifiers = 0;
 | 
					 | 
				
			||||||
    modifier_key->key = key;
 | 
					 | 
				
			||||||
    keyboard->locked_keys =
 | 
					 | 
				
			||||||
            g_list_prepend (keyboard->locked_keys, modifier_key);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/// Unlock all locked keys.
 | 
					 | 
				
			||||||
/// All locked keys will unlock at the next keypress (should be called "stuck")
 | 
					 | 
				
			||||||
/// Returns the number of handled keys
 | 
					 | 
				
			||||||
/// TODO: may need to check key type in order to chain locks
 | 
					 | 
				
			||||||
/// before pressing an "emitting" key
 | 
					 | 
				
			||||||
static int unlock_keys(LevelKeyboard *keyboard) {
 | 
					 | 
				
			||||||
    int handled = 0;
 | 
					 | 
				
			||||||
    for (GList *head = keyboard->locked_keys; head; ) {
 | 
					 | 
				
			||||||
        EekModifierKey *modifier_key = head->data;
 | 
					 | 
				
			||||||
        GList *next = g_list_next (head);
 | 
					 | 
				
			||||||
        keyboard->locked_keys =
 | 
					 | 
				
			||||||
                g_list_remove_link (keyboard->locked_keys, head);
 | 
					 | 
				
			||||||
        //squeek_key_set_locked(squeek_button_get_key(modifier_key->button), false);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        squeek_layout_set_state_from_press(keyboard->layout, keyboard, modifier_key->key);
 | 
					 | 
				
			||||||
        g_list_free1 (head);
 | 
					 | 
				
			||||||
        head = next;
 | 
					 | 
				
			||||||
        handled++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return handled;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void
 | 
					 | 
				
			||||||
set_level_from_press (LevelKeyboard *keyboard, struct squeek_key *key)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    // If the currently locked key was already handled in the unlock phase,
 | 
					 | 
				
			||||||
    // then skip
 | 
					 | 
				
			||||||
    if (unlock_keys(keyboard) == 0) {
 | 
					 | 
				
			||||||
        squeek_layout_set_state_from_press(keyboard->layout, keyboard, key);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void eek_keyboard_press_key(LevelKeyboard *keyboard, struct squeek_key *key, guint32 timestamp) {
 | 
					 | 
				
			||||||
    squeek_key_set_pressed(key, TRUE);
 | 
					 | 
				
			||||||
    keyboard->pressed_keys = g_list_prepend (keyboard->pressed_keys, key);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Only take action about setting level *after* the key has taken effect, i.e. on release
 | 
					 | 
				
			||||||
    //set_level_from_press (keyboard, key);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // "Borrowed" from eek-context-service; doesn't influence the state but forwards the event
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    guint keycode = squeek_key_get_keycode (key);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    emit_key_activated(keyboard->manager, keyboard, keycode, TRUE, timestamp);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void eek_keyboard_release_key(LevelKeyboard *keyboard,
 | 
					 | 
				
			||||||
                              struct squeek_key *key,
 | 
					 | 
				
			||||||
                              guint32 timestamp) {
 | 
					 | 
				
			||||||
    for (GList *head = keyboard->pressed_keys; head; head = g_list_next (head)) {
 | 
					 | 
				
			||||||
        if (squeek_key_equal(head->data, key)) {
 | 
					 | 
				
			||||||
            keyboard->pressed_keys = g_list_remove_link (keyboard->pressed_keys, head);
 | 
					 | 
				
			||||||
            g_list_free1 (head);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    set_level_from_press (keyboard, key);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // "Borrowed" from eek-context-service; doesn't influence the state but forwards the event
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    guint keycode = squeek_key_get_keycode (key);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    emit_key_activated(keyboard->manager, keyboard, keycode, FALSE, timestamp);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void level_keyboard_deinit(LevelKeyboard *self) {
 | 
					void level_keyboard_deinit(LevelKeyboard *self) {
 | 
				
			||||||
 | 
					    xkb_keymap_unref(self->keymap);
 | 
				
			||||||
 | 
					    close(self->keymap_fd);
 | 
				
			||||||
    squeek_layout_free(self->layout);
 | 
					    squeek_layout_free(self->layout);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -33,43 +33,19 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
G_BEGIN_DECLS
 | 
					G_BEGIN_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct _EekModifierKey {
 | 
					 | 
				
			||||||
    /*< public >*/
 | 
					 | 
				
			||||||
    EekModifierType modifiers;
 | 
					 | 
				
			||||||
    struct squeek_key *key;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
typedef struct _EekModifierKey EekModifierKey;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/// Keyboard state holder
 | 
					/// Keyboard state holder
 | 
				
			||||||
struct _LevelKeyboard {
 | 
					struct _LevelKeyboard {
 | 
				
			||||||
    struct squeek_layout *layout;
 | 
					    struct squeek_layout *layout; // owned
 | 
				
			||||||
    struct xkb_keymap *keymap;
 | 
					    struct xkb_keymap *keymap; // owned
 | 
				
			||||||
    int keymap_fd; // keymap formatted as XKB string
 | 
					    int keymap_fd; // keymap formatted as XKB string
 | 
				
			||||||
    size_t keymap_len; // length of the data inside keymap_fd
 | 
					    size_t keymap_len; // length of the data inside keymap_fd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    GList *pressed_keys; // struct squeek_key*
 | 
					 | 
				
			||||||
    GList *locked_keys; // struct EekModifierKey*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    guint id; // as a key to layout choices
 | 
					    guint id; // as a key to layout choices
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    EekboardContextService *manager; // unowned reference
 | 
					    EekboardContextService *manager; // unowned reference
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
typedef struct _LevelKeyboard LevelKeyboard;
 | 
					typedef struct _LevelKeyboard LevelKeyboard;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Represents the path to the button within a view
 | 
					 | 
				
			||||||
struct button_place {
 | 
					 | 
				
			||||||
    const struct squeek_row *row;
 | 
					 | 
				
			||||||
    const struct squeek_button *button;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EekModifierKey     *eek_modifier_key_copy
 | 
					 | 
				
			||||||
                                     (EekModifierKey     *modkey);
 | 
					 | 
				
			||||||
void                eek_modifier_key_free
 | 
					 | 
				
			||||||
                                     (EekModifierKey      *modkey);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void eek_keyboard_press_key(LevelKeyboard *keyboard, struct squeek_key *key, guint32 timestamp);
 | 
					 | 
				
			||||||
void eek_keyboard_release_key(LevelKeyboard *keyboard, struct squeek_key *key, guint32 timestamp);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
gchar *             eek_keyboard_get_keymap
 | 
					gchar *             eek_keyboard_get_keymap
 | 
				
			||||||
                                     (LevelKeyboard *keyboard);
 | 
					                                     (LevelKeyboard *keyboard);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,9 @@
 | 
				
			|||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <gdk-pixbuf/gdk-pixbuf.h>
 | 
					#include <gdk-pixbuf/gdk-pixbuf.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "eek-keyboard.h"
 | 
				
			||||||
#include "eek-renderer.h"
 | 
					#include "eek-renderer.h"
 | 
				
			||||||
 | 
					#include "src/style.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum {
 | 
					enum {
 | 
				
			||||||
    PROP_0,
 | 
					    PROP_0,
 | 
				
			||||||
@ -34,10 +36,10 @@ enum {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
typedef struct _EekRendererPrivate
 | 
					typedef struct _EekRendererPrivate
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    LevelKeyboard *keyboard;
 | 
					    LevelKeyboard *keyboard; // unowned
 | 
				
			||||||
    PangoContext *pcontext;
 | 
					    PangoContext *pcontext; // owned
 | 
				
			||||||
    GtkCssProvider *css_provider;
 | 
					    GtkCssProvider *css_provider; // owned
 | 
				
			||||||
    GtkStyleContext *layout_context;
 | 
					    GtkStyleContext *view_context; // owned
 | 
				
			||||||
    GtkStyleContext *button_context; // TODO: maybe move a copy to each button
 | 
					    GtkStyleContext *button_context; // TODO: maybe move a copy to each button
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    gdouble border_width;
 | 
					    gdouble border_width;
 | 
				
			||||||
@ -49,12 +51,7 @@ typedef struct _EekRendererPrivate
 | 
				
			|||||||
    gint origin_x;
 | 
					    gint origin_x;
 | 
				
			||||||
    gint origin_y;
 | 
					    gint origin_y;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PangoFontDescription *ascii_font;
 | 
					    PangoFontDescription *font; // owned reference
 | 
				
			||||||
    PangoFontDescription *font;
 | 
					 | 
				
			||||||
    // TODO: Drop those or transform into general button surface caches
 | 
					 | 
				
			||||||
    GHashTable *outline_surface_cache;
 | 
					 | 
				
			||||||
    GHashTable *active_outline_surface_cache;
 | 
					 | 
				
			||||||
    GHashTable *icons;
 | 
					 | 
				
			||||||
    cairo_surface_t *keyboard_surface;
 | 
					    cairo_surface_t *keyboard_surface;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} EekRendererPrivate;
 | 
					} EekRendererPrivate;
 | 
				
			||||||
@ -62,13 +59,12 @@ typedef struct _EekRendererPrivate
 | 
				
			|||||||
G_DEFINE_TYPE_WITH_PRIVATE (EekRenderer, eek_renderer, G_TYPE_OBJECT)
 | 
					G_DEFINE_TYPE_WITH_PRIVATE (EekRenderer, eek_renderer, G_TYPE_OBJECT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* eek-keyboard-drawing.c */
 | 
					/* eek-keyboard-drawing.c */
 | 
				
			||||||
static void eek_renderer_real_render_button_label (EekRenderer *self,
 | 
					static void eek_renderer_render_button_label (EekRenderer *self, cairo_t *cr, GtkStyleContext *ctx,
 | 
				
			||||||
                                                PangoLayout *layout,
 | 
					 | 
				
			||||||
                                                const struct squeek_button *button);
 | 
					                                                const struct squeek_button *button);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void invalidate                         (EekRenderer *renderer);
 | 
					static void invalidate                         (EekRenderer *renderer);
 | 
				
			||||||
static void render_button                         (EekRenderer *self,
 | 
					static void render_button                         (EekRenderer *self,
 | 
				
			||||||
                                                cairo_t     *cr, struct button_place *place,
 | 
					                                                cairo_t     *cr, EekBounds view_bounds, struct button_place *place,
 | 
				
			||||||
                                                gboolean     pressed, gboolean locked);
 | 
					                                                gboolean     pressed, gboolean locked);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct _CreateKeyboardSurfaceCallbackData {
 | 
					struct _CreateKeyboardSurfaceCallbackData {
 | 
				
			||||||
@ -99,7 +95,7 @@ create_keyboard_surface_button_callback (struct squeek_button *button,
 | 
				
			|||||||
        .row = data->row,
 | 
					        .row = data->row,
 | 
				
			||||||
        .button = button,
 | 
					        .button = button,
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    render_button (data->renderer, data->cr, &place, FALSE, FALSE);
 | 
					    render_button (data->renderer, data->cr, squeek_view_get_bounds(data->view), &place, FALSE, FALSE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cairo_restore (data->cr);
 | 
					    cairo_restore (data->cr);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -128,9 +124,9 @@ static void
 | 
				
			|||||||
render_keyboard_surface (EekRenderer *renderer, struct squeek_view *view)
 | 
					render_keyboard_surface (EekRenderer *renderer, struct squeek_view *view)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
					    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
				
			||||||
    EekColor foreground;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    eek_renderer_get_foreground_color (renderer, priv->layout_context, &foreground);
 | 
					    GdkRGBA color = {0};
 | 
				
			||||||
 | 
					    gtk_style_context_get_color (priv->view_context, GTK_STATE_FLAG_NORMAL, &color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    EekBounds bounds = squeek_view_get_bounds (level_keyboard_current(priv->keyboard));
 | 
					    EekBounds bounds = squeek_view_get_bounds (level_keyboard_current(priv->keyboard));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -141,11 +137,11 @@ render_keyboard_surface (EekRenderer *renderer, struct squeek_view *view)
 | 
				
			|||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Paint the background covering the entire widget area */
 | 
					    /* Paint the background covering the entire widget area */
 | 
				
			||||||
    gtk_render_background (priv->layout_context,
 | 
					    gtk_render_background (priv->view_context,
 | 
				
			||||||
                           data.cr,
 | 
					                           data.cr,
 | 
				
			||||||
                           0, 0,
 | 
					                           0, 0,
 | 
				
			||||||
                           priv->allocation_width, priv->allocation_height);
 | 
					                           priv->allocation_width, priv->allocation_height);
 | 
				
			||||||
    gtk_render_frame (priv->layout_context,
 | 
					    gtk_render_frame (priv->view_context,
 | 
				
			||||||
                      data.cr,
 | 
					                      data.cr,
 | 
				
			||||||
                      0, 0,
 | 
					                      0, 0,
 | 
				
			||||||
                      priv->allocation_width, priv->allocation_height);
 | 
					                      priv->allocation_width, priv->allocation_height);
 | 
				
			||||||
@ -155,15 +151,16 @@ render_keyboard_surface (EekRenderer *renderer, struct squeek_view *view)
 | 
				
			|||||||
    cairo_translate (data.cr, bounds.x, bounds.y);
 | 
					    cairo_translate (data.cr, bounds.x, bounds.y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cairo_set_source_rgba (data.cr,
 | 
					    cairo_set_source_rgba (data.cr,
 | 
				
			||||||
                           foreground.red,
 | 
					                           color.red,
 | 
				
			||||||
                           foreground.green,
 | 
					                           color.green,
 | 
				
			||||||
                           foreground.blue,
 | 
					                           color.blue,
 | 
				
			||||||
                           foreground.alpha);
 | 
					                           color.alpha);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* draw rows */
 | 
					    /* draw rows */
 | 
				
			||||||
    squeek_view_foreach(level_keyboard_current(priv->keyboard),
 | 
					    squeek_view_foreach(level_keyboard_current(priv->keyboard),
 | 
				
			||||||
                        create_keyboard_surface_row_callback,
 | 
					                        create_keyboard_surface_row_callback,
 | 
				
			||||||
                        &data);
 | 
					                        &data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cairo_restore (data.cr);
 | 
					    cairo_restore (data.cr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cairo_destroy (data.cr);
 | 
					    cairo_destroy (data.cr);
 | 
				
			||||||
@ -174,33 +171,38 @@ render_outline (cairo_t     *cr,
 | 
				
			|||||||
                GtkStyleContext *ctx,
 | 
					                GtkStyleContext *ctx,
 | 
				
			||||||
                EekBounds bounds)
 | 
					                EekBounds bounds)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    gtk_render_background (ctx, cr, 0, 0, bounds.width, bounds.height);
 | 
					    GtkBorder margin, border;
 | 
				
			||||||
    gtk_render_frame (ctx, cr, 0, 0, bounds.width, bounds.height);
 | 
					    gtk_style_context_get_margin(ctx, GTK_STATE_FLAG_NORMAL, &margin);
 | 
				
			||||||
 | 
					    gtk_style_context_get_border(ctx, GTK_STATE_FLAG_NORMAL, &border);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    gdouble x = margin.left + border.left;
 | 
				
			||||||
 | 
					    gdouble y = margin.top + border.top;
 | 
				
			||||||
 | 
					    EekBounds position = {
 | 
				
			||||||
 | 
					        .x = x,
 | 
				
			||||||
 | 
					        .y = y,
 | 
				
			||||||
 | 
					        .width = bounds.width - x - (margin.right + border.right),
 | 
				
			||||||
 | 
					        .height = bounds.height - y - (margin.bottom + border.bottom),
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    gtk_render_background (ctx, cr,
 | 
				
			||||||
 | 
					        position.x, position.y, position.width, position.height);
 | 
				
			||||||
 | 
					    gtk_render_frame (ctx, cr,
 | 
				
			||||||
 | 
					        position.x, position.y, position.width, position.height);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void render_button_in_context(EekRenderer *self,
 | 
					static void render_button_in_context(EekRenderer *self,
 | 
				
			||||||
 | 
					                                     gdouble scale,
 | 
				
			||||||
 | 
					                                     gint scale_factor,
 | 
				
			||||||
                                     cairo_t     *cr,
 | 
					                                     cairo_t     *cr,
 | 
				
			||||||
                                     GtkStyleContext *ctx,
 | 
					                                     GtkStyleContext *ctx,
 | 
				
			||||||
 | 
					                                     EekBounds view_bounds,
 | 
				
			||||||
                                     struct button_place *place,
 | 
					                                     struct button_place *place,
 | 
				
			||||||
                                     gboolean active) {
 | 
					                                     gboolean active) {
 | 
				
			||||||
    cairo_surface_t *outline_surface;
 | 
					    cairo_surface_t *outline_surface = NULL;
 | 
				
			||||||
    GHashTable *outline_surface_cache;
 | 
					 | 
				
			||||||
    PangoLayout *layout;
 | 
					 | 
				
			||||||
    PangoRectangle extents = { 0, };
 | 
					 | 
				
			||||||
    EekColor foreground;
 | 
					 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (self);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* render outline */
 | 
					    /* render outline */
 | 
				
			||||||
    EekBounds bounds = squeek_button_get_bounds(place->button);
 | 
					    EekBounds bounds = squeek_button_get_bounds(place->button);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (active)
 | 
					    {
 | 
				
			||||||
        outline_surface_cache = priv->active_outline_surface_cache;
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        outline_surface_cache = priv->outline_surface_cache;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    outline_surface = g_hash_table_lookup (outline_surface_cache, place->button);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!outline_surface) {
 | 
					 | 
				
			||||||
        cairo_t *cr;
 | 
					        cairo_t *cr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Outline will be drawn on the outside of the button, so the
 | 
					        // Outline will be drawn on the outside of the button, so the
 | 
				
			||||||
@ -216,75 +218,54 @@ static void render_button_in_context(EekRenderer *self,
 | 
				
			|||||||
        cairo_paint (cr);
 | 
					        cairo_paint (cr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cairo_save (cr);
 | 
					        cairo_save (cr);
 | 
				
			||||||
        eek_renderer_apply_transformation_for_button (self, cr, place, 1.0, FALSE);
 | 
					        eek_renderer_apply_transformation_for_button (cr, view_bounds, place, 1.0, FALSE);
 | 
				
			||||||
        render_outline (cr, ctx, bounds);
 | 
					        render_outline (cr, ctx, bounds);
 | 
				
			||||||
        cairo_restore (cr);
 | 
					        cairo_restore (cr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cairo_destroy (cr);
 | 
					        cairo_destroy (cr);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        g_hash_table_insert (outline_surface_cache,
 | 
					 | 
				
			||||||
                             (gpointer)place->button,
 | 
					 | 
				
			||||||
                             outline_surface);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    cairo_set_source_surface (cr, outline_surface, 0.0, 0.0);
 | 
					    cairo_set_source_surface (cr, outline_surface, 0.0, 0.0);
 | 
				
			||||||
 | 
					    cairo_surface_destroy(outline_surface);
 | 
				
			||||||
    cairo_paint (cr);
 | 
					    cairo_paint (cr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    eek_renderer_get_foreground_color (self, ctx, &foreground);
 | 
					 | 
				
			||||||
    /* render icon (if any) */
 | 
					    /* render icon (if any) */
 | 
				
			||||||
    const char *icon_name = squeek_button_get_icon_name(place->button);
 | 
					    const char *icon_name = squeek_button_get_icon_name(place->button);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (icon_name) {
 | 
					    if (icon_name) {
 | 
				
			||||||
        gint scale = priv->scale_factor;
 | 
					 | 
				
			||||||
        cairo_surface_t *icon_surface =
 | 
					        cairo_surface_t *icon_surface =
 | 
				
			||||||
            eek_renderer_get_icon_surface (self, icon_name, 16 / priv->scale,
 | 
					            eek_renderer_get_icon_surface (icon_name, 16, scale_factor);
 | 
				
			||||||
                                           scale);
 | 
					 | 
				
			||||||
        if (icon_surface) {
 | 
					        if (icon_surface) {
 | 
				
			||||||
            gint width = cairo_image_surface_get_width (icon_surface);
 | 
					            gint width = cairo_image_surface_get_width (icon_surface);
 | 
				
			||||||
            gint height = cairo_image_surface_get_height (icon_surface);
 | 
					            gint height = cairo_image_surface_get_height (icon_surface);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            cairo_save (cr);
 | 
					            cairo_save (cr);
 | 
				
			||||||
            cairo_translate (cr,
 | 
					            cairo_translate (cr,
 | 
				
			||||||
                             (bounds.width - (double)width / scale) / 2,
 | 
					                             (bounds.width - (double)width / scale_factor) / 2,
 | 
				
			||||||
                             (bounds.height - (double)height / scale) / 2);
 | 
					                             (bounds.height - (double)height / scale_factor) / 2);
 | 
				
			||||||
            cairo_rectangle (cr, 0, 0, width, height);
 | 
					            cairo_rectangle (cr, 0, 0, width, height);
 | 
				
			||||||
            cairo_clip (cr);
 | 
					            cairo_clip (cr);
 | 
				
			||||||
            /* Draw the shape of the icon using the foreground color */
 | 
					            /* Draw the shape of the icon using the foreground color */
 | 
				
			||||||
            cairo_set_source_rgba (cr, foreground.red,
 | 
					            GdkRGBA color = {0};
 | 
				
			||||||
                                       foreground.green,
 | 
					            gtk_style_context_get_color (ctx, GTK_STATE_FLAG_NORMAL, &color);
 | 
				
			||||||
                                       foreground.blue,
 | 
					 | 
				
			||||||
                                       foreground.alpha);
 | 
					 | 
				
			||||||
            cairo_mask_surface (cr, icon_surface, 0.0, 0.0);
 | 
					 | 
				
			||||||
            cairo_fill (cr);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            cairo_set_source_rgba (cr, color.red,
 | 
				
			||||||
 | 
					                                       color.green,
 | 
				
			||||||
 | 
					                                       color.blue,
 | 
				
			||||||
 | 
					                                       color.alpha);
 | 
				
			||||||
 | 
					            cairo_mask_surface (cr, icon_surface, 0.0, 0.0);
 | 
				
			||||||
 | 
					            cairo_surface_destroy(icon_surface);
 | 
				
			||||||
 | 
					            cairo_fill (cr);
 | 
				
			||||||
            cairo_restore (cr);
 | 
					            cairo_restore (cr);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    /* render label */
 | 
					    eek_renderer_render_button_label (self, cr, ctx, place->button);
 | 
				
			||||||
    layout = pango_cairo_create_layout (cr);
 | 
					 | 
				
			||||||
    eek_renderer_real_render_button_label (self, layout, place->button);
 | 
					 | 
				
			||||||
    pango_layout_get_extents (layout, NULL, &extents);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    cairo_save (cr);
 | 
					 | 
				
			||||||
    cairo_move_to
 | 
					 | 
				
			||||||
        (cr,
 | 
					 | 
				
			||||||
         (bounds.width - (double)extents.width / PANGO_SCALE) / 2,
 | 
					 | 
				
			||||||
         (bounds.height - (double)extents.height / PANGO_SCALE) / 2);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    cairo_set_source_rgba (cr,
 | 
					 | 
				
			||||||
                           foreground.red,
 | 
					 | 
				
			||||||
                           foreground.green,
 | 
					 | 
				
			||||||
                           foreground.blue,
 | 
					 | 
				
			||||||
                           foreground.alpha);
 | 
					 | 
				
			||||||
    pango_cairo_show_layout (cr, layout);
 | 
					 | 
				
			||||||
    cairo_restore (cr);
 | 
					 | 
				
			||||||
    g_object_unref (layout);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
render_button (EekRenderer *self,
 | 
					render_button (EekRenderer *self,
 | 
				
			||||||
            cairo_t     *cr,
 | 
					            cairo_t     *cr,
 | 
				
			||||||
 | 
					               EekBounds view_bounds,
 | 
				
			||||||
            struct button_place *place,
 | 
					            struct button_place *place,
 | 
				
			||||||
               gboolean     pressed,
 | 
					               gboolean     pressed,
 | 
				
			||||||
               gboolean     locked)
 | 
					               gboolean     locked)
 | 
				
			||||||
@ -311,7 +292,7 @@ render_button (EekRenderer *self,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    gtk_style_context_add_class(ctx, outline_name);
 | 
					    gtk_style_context_add_class(ctx, outline_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    render_button_in_context(self, cr, ctx, place, pressed);
 | 
					    render_button_in_context(self, priv->scale, priv->scale_factor, cr, ctx, view_bounds, place, pressed);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Save and restore functions don't work if gtk_render_* was used in between
 | 
					    // Save and restore functions don't work if gtk_render_* was used in between
 | 
				
			||||||
    gtk_style_context_set_state(ctx, GTK_STATE_FLAG_NORMAL);
 | 
					    gtk_style_context_set_state(ctx, GTK_STATE_FLAG_NORMAL);
 | 
				
			||||||
@ -337,8 +318,8 @@ render_button (EekRenderer *self,
 | 
				
			|||||||
 *  normal keys for popups.
 | 
					 *  normal keys for popups.
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
eek_renderer_apply_transformation_for_button (EekRenderer *self,
 | 
					eek_renderer_apply_transformation_for_button (cairo_t     *cr,
 | 
				
			||||||
                                           cairo_t     *cr,
 | 
					                                              EekBounds view_bounds,
 | 
				
			||||||
                                           struct button_place *place,
 | 
					                                           struct button_place *place,
 | 
				
			||||||
                                           gdouble      scale,
 | 
					                                           gdouble      scale,
 | 
				
			||||||
                                           gboolean     rotate)
 | 
					                                           gboolean     rotate)
 | 
				
			||||||
@ -346,8 +327,8 @@ eek_renderer_apply_transformation_for_button (EekRenderer *self,
 | 
				
			|||||||
    EekBounds bounds, rotated_bounds;
 | 
					    EekBounds bounds, rotated_bounds;
 | 
				
			||||||
    gdouble s;
 | 
					    gdouble s;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    eek_renderer_get_button_bounds (self, place, &bounds, FALSE);
 | 
					    eek_renderer_get_button_bounds (view_bounds, place, &bounds, FALSE);
 | 
				
			||||||
    eek_renderer_get_button_bounds (self, place, &rotated_bounds, TRUE);
 | 
					    eek_renderer_get_button_bounds (view_bounds, place, &rotated_bounds, TRUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    gint angle = squeek_row_get_angle (place->row);
 | 
					    gint angle = squeek_row_get_angle (place->row);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -363,9 +344,10 @@ eek_renderer_apply_transformation_for_button (EekRenderer *self,
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
eek_renderer_real_render_button_label (EekRenderer *self,
 | 
					eek_renderer_render_button_label (EekRenderer *self,
 | 
				
			||||||
                                    PangoLayout *layout,
 | 
					                                  cairo_t     *cr,
 | 
				
			||||||
                                    const struct squeek_button *button)
 | 
					                                  GtkStyleContext *ctx,
 | 
				
			||||||
 | 
					                                  const struct squeek_button *button)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (self);
 | 
					    EekRendererPrivate *priv = eek_renderer_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -376,22 +358,16 @@ eek_renderer_real_render_button_label (EekRenderer *self,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PangoFontDescription *font;
 | 
					    PangoFontDescription *font;
 | 
				
			||||||
    PangoLayoutLine *line;
 | 
					 | 
				
			||||||
    gdouble scale;
 | 
					    gdouble scale;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!priv->font) {
 | 
					    if (!priv->font) {
 | 
				
			||||||
        const PangoFontDescription *base_font;
 | 
					        const PangoFontDescription *base_font;
 | 
				
			||||||
        gdouble ascii_size, size;
 | 
					        gdouble size;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        base_font = pango_context_get_font_description (priv->pcontext);
 | 
					        base_font = pango_context_get_font_description (priv->pcontext);
 | 
				
			||||||
        // FIXME: Base font size on the same size unit used for button sizing,
 | 
					        // FIXME: Base font size on the same size unit used for button sizing,
 | 
				
			||||||
        // and make the default about 1/3 of the current row height
 | 
					        // and make the default about 1/3 of the current row height
 | 
				
			||||||
        ascii_size = 30000.0;
 | 
					 | 
				
			||||||
        priv->ascii_font = pango_font_description_copy (base_font);
 | 
					 | 
				
			||||||
        pango_font_description_set_size (priv->ascii_font,
 | 
					 | 
				
			||||||
                                         (gint)round(ascii_size));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        size = 30000.0;
 | 
					        size = 30000.0;
 | 
				
			||||||
        priv->font = pango_font_description_copy (base_font);
 | 
					        priv->font = pango_font_description_copy (base_font);
 | 
				
			||||||
        pango_font_description_set_size (priv->font, (gint)round(size * 0.6));
 | 
					        pango_font_description_set_size (priv->font, (gint)round(size * 0.6));
 | 
				
			||||||
@ -404,15 +380,39 @@ eek_renderer_real_render_button_label (EekRenderer *self,
 | 
				
			|||||||
    font = pango_font_description_copy (priv->font);
 | 
					    font = pango_font_description_copy (priv->font);
 | 
				
			||||||
    pango_font_description_set_size (font,
 | 
					    pango_font_description_set_size (font,
 | 
				
			||||||
                                     (gint)round(pango_font_description_get_size (font) * scale));
 | 
					                                     (gint)round(pango_font_description_get_size (font) * scale));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PangoLayout *layout = pango_cairo_create_layout (cr);
 | 
				
			||||||
    pango_layout_set_font_description (layout, font);
 | 
					    pango_layout_set_font_description (layout, font);
 | 
				
			||||||
    pango_font_description_free (font);
 | 
					    pango_font_description_free (font);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pango_layout_set_text (layout, label, -1);
 | 
					    pango_layout_set_text (layout, label, -1);
 | 
				
			||||||
    line = pango_layout_get_line (layout, 0);
 | 
					    PangoLayoutLine *line = pango_layout_get_line_readonly(layout, 0);
 | 
				
			||||||
    if (line->resolved_dir == PANGO_DIRECTION_RTL)
 | 
					    if (line->resolved_dir == PANGO_DIRECTION_RTL) {
 | 
				
			||||||
        pango_layout_set_alignment (layout, PANGO_ALIGN_RIGHT);
 | 
					        pango_layout_set_alignment (layout, PANGO_ALIGN_RIGHT);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    pango_layout_set_width (layout,
 | 
					    pango_layout_set_width (layout,
 | 
				
			||||||
                            PANGO_SCALE * bounds.width * scale);
 | 
					                            PANGO_SCALE * bounds.width * scale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PangoRectangle extents = { 0, };
 | 
				
			||||||
 | 
					    pango_layout_get_extents (layout, NULL, &extents);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    cairo_save (cr);
 | 
				
			||||||
 | 
					    cairo_move_to
 | 
				
			||||||
 | 
					        (cr,
 | 
				
			||||||
 | 
					         (bounds.width - (double)extents.width / PANGO_SCALE) / 2,
 | 
				
			||||||
 | 
					         (bounds.height - (double)extents.height / PANGO_SCALE) / 2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    GdkRGBA color = {0};
 | 
				
			||||||
 | 
					    gtk_style_context_get_color (ctx, GTK_STATE_FLAG_NORMAL, &color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    cairo_set_source_rgba (cr,
 | 
				
			||||||
 | 
					                           color.red,
 | 
				
			||||||
 | 
					                           color.green,
 | 
				
			||||||
 | 
					                           color.blue,
 | 
				
			||||||
 | 
					                           color.alpha);
 | 
				
			||||||
 | 
					    pango_cairo_show_layout (cr, layout);
 | 
				
			||||||
 | 
					    cairo_restore (cr);
 | 
				
			||||||
 | 
					    g_object_unref (layout);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
@ -436,7 +436,8 @@ eek_renderer_real_render_button (EekRenderer *self,
 | 
				
			|||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (self);
 | 
					    EekRendererPrivate *priv = eek_renderer_get_instance_private (self);
 | 
				
			||||||
    EekBounds bounds;
 | 
					    EekBounds bounds;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    eek_renderer_get_button_bounds (self, place, &bounds, rotate);
 | 
					    EekBounds view_bounds = squeek_view_get_bounds (level_keyboard_current(priv->keyboard));
 | 
				
			||||||
 | 
					    eek_renderer_get_button_bounds (view_bounds, place, &bounds, rotate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cairo_save (cr);
 | 
					    cairo_save (cr);
 | 
				
			||||||
    /* Because this function is called separately from the keyboard rendering
 | 
					    /* Because this function is called separately from the keyboard rendering
 | 
				
			||||||
@ -445,12 +446,12 @@ eek_renderer_real_render_button (EekRenderer *self,
 | 
				
			|||||||
    cairo_scale (cr, priv->scale, priv->scale);
 | 
					    cairo_scale (cr, priv->scale, priv->scale);
 | 
				
			||||||
    cairo_translate (cr, bounds.x, bounds.y);
 | 
					    cairo_translate (cr, bounds.x, bounds.y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    eek_renderer_apply_transformation_for_button (self, cr, place, scale, rotate);
 | 
					    eek_renderer_apply_transformation_for_button (cr, view_bounds, place, scale, rotate);
 | 
				
			||||||
    struct squeek_key *key = squeek_button_get_key(place->button);
 | 
					    struct squeek_key *key = squeek_button_get_key(place->button);
 | 
				
			||||||
    render_button (
 | 
					    render_button (
 | 
				
			||||||
                self, cr, place,
 | 
					                self, cr, view_bounds, place,
 | 
				
			||||||
                squeek_key_is_pressed(key),
 | 
					                squeek_key_is_pressed(key) != 0,
 | 
				
			||||||
                squeek_key_is_locked (key)
 | 
					                squeek_key_is_locked (key) != 0
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    cairo_restore (cr);
 | 
					    cairo_restore (cr);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -494,7 +495,7 @@ eek_renderer_set_property (GObject      *object,
 | 
				
			|||||||
                           GParamSpec   *pspec)
 | 
					                           GParamSpec   *pspec)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (
 | 
					    EekRendererPrivate *priv = eek_renderer_get_instance_private (
 | 
				
			||||||
		    EEK_RENDERER(object));
 | 
					            EEK_RENDERER(object));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    switch (prop_id) {
 | 
					    switch (prop_id) {
 | 
				
			||||||
    case PROP_PCONTEXT:
 | 
					    case PROP_PCONTEXT:
 | 
				
			||||||
@ -534,8 +535,6 @@ eek_renderer_dispose (GObject *object)
 | 
				
			|||||||
        priv->pcontext = NULL;
 | 
					        priv->pcontext = NULL;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    g_clear_pointer (&priv->icons, g_hash_table_destroy);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* this will release all allocated surfaces and font if any */
 | 
					    /* this will release all allocated surfaces and font if any */
 | 
				
			||||||
    invalidate (EEK_RENDERER(object));
 | 
					    invalidate (EEK_RENDERER(object));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -548,9 +547,9 @@ eek_renderer_finalize (GObject *object)
 | 
				
			|||||||
    EekRenderer        *self = EEK_RENDERER(object);
 | 
					    EekRenderer        *self = EEK_RENDERER(object);
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (self);
 | 
					    EekRendererPrivate *priv = eek_renderer_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    g_hash_table_destroy (priv->outline_surface_cache);
 | 
					    g_object_unref(priv->css_provider);
 | 
				
			||||||
    g_hash_table_destroy (priv->active_outline_surface_cache);
 | 
					    g_object_unref(priv->view_context);
 | 
				
			||||||
    pango_font_description_free (priv->ascii_font);
 | 
					    g_object_unref(priv->button_context);
 | 
				
			||||||
    pango_font_description_free (priv->font);
 | 
					    pango_font_description_free (priv->font);
 | 
				
			||||||
    G_OBJECT_CLASS (eek_renderer_parent_class)->finalize (object);
 | 
					    G_OBJECT_CLASS (eek_renderer_parent_class)->finalize (object);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -590,7 +589,7 @@ static GType new_type(char *name) {
 | 
				
			|||||||
    );
 | 
					    );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static GType layout_type() {
 | 
					static GType view_type() {
 | 
				
			||||||
    static GType type = 0;
 | 
					    static GType type = 0;
 | 
				
			||||||
    if (!type) {
 | 
					    if (!type) {
 | 
				
			||||||
        type = new_type("sq_view");
 | 
					        type = new_type("sq_view");
 | 
				
			||||||
@ -619,55 +618,13 @@ eek_renderer_init (EekRenderer *self)
 | 
				
			|||||||
    priv->scale = 1.0;
 | 
					    priv->scale = 1.0;
 | 
				
			||||||
    priv->scale_factor = 1;
 | 
					    priv->scale_factor = 1;
 | 
				
			||||||
    priv->font = NULL;
 | 
					    priv->font = NULL;
 | 
				
			||||||
    priv->outline_surface_cache =
 | 
					 | 
				
			||||||
        g_hash_table_new_full (g_direct_hash,
 | 
					 | 
				
			||||||
                               g_direct_equal,
 | 
					 | 
				
			||||||
                               NULL,
 | 
					 | 
				
			||||||
                               (GDestroyNotify)cairo_surface_destroy);
 | 
					 | 
				
			||||||
    priv->active_outline_surface_cache =
 | 
					 | 
				
			||||||
        g_hash_table_new_full (g_direct_hash,
 | 
					 | 
				
			||||||
                               g_direct_equal,
 | 
					 | 
				
			||||||
                               NULL,
 | 
					 | 
				
			||||||
                               (GDestroyNotify)cairo_surface_destroy);
 | 
					 | 
				
			||||||
    priv->keyboard_surface = NULL;
 | 
					    priv->keyboard_surface = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    GtkIconTheme *theme = gtk_icon_theme_get_default ();
 | 
					    GtkIconTheme *theme = gtk_icon_theme_get_default ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    gtk_icon_theme_add_resource_path (theme, "/sm/puri/squeekboard/icons");
 | 
					    gtk_icon_theme_add_resource_path (theme, "/sm/puri/squeekboard/icons");
 | 
				
			||||||
    priv->icons = g_hash_table_new_full (g_str_hash,
 | 
					 | 
				
			||||||
                                         g_str_equal,
 | 
					 | 
				
			||||||
                                         g_free,
 | 
					 | 
				
			||||||
                                         (GDestroyNotify)cairo_surface_destroy);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Create a default CSS provider and load a style sheet */
 | 
					    priv->css_provider = squeek_load_style();
 | 
				
			||||||
    priv->css_provider = gtk_css_provider_new ();
 | 
					 | 
				
			||||||
    gtk_css_provider_load_from_resource (priv->css_provider,
 | 
					 | 
				
			||||||
        "/sm/puri/squeekboard/style.css");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Create a style context for the layout */
 | 
					 | 
				
			||||||
    GtkWidgetPath *path = gtk_widget_path_new();
 | 
					 | 
				
			||||||
    gtk_widget_path_append_type(path, layout_type());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    priv->layout_context = gtk_style_context_new();
 | 
					 | 
				
			||||||
    gtk_style_context_set_path(priv->layout_context, path);
 | 
					 | 
				
			||||||
    gtk_widget_path_unref(path);
 | 
					 | 
				
			||||||
    gtk_style_context_add_provider (priv->layout_context,
 | 
					 | 
				
			||||||
        GTK_STYLE_PROVIDER(priv->css_provider),
 | 
					 | 
				
			||||||
        GTK_STYLE_PROVIDER_PRIORITY_USER);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Create a style context for the buttons */
 | 
					 | 
				
			||||||
    path = gtk_widget_path_new();
 | 
					 | 
				
			||||||
    gtk_widget_path_append_type(path, layout_type());
 | 
					 | 
				
			||||||
    gtk_widget_path_append_type(path, button_type());
 | 
					 | 
				
			||||||
    priv->button_context = gtk_style_context_new ();
 | 
					 | 
				
			||||||
    gtk_style_context_set_path(priv->button_context, path);
 | 
					 | 
				
			||||||
    gtk_widget_path_unref(path);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    gtk_style_context_set_parent(priv->button_context, priv->layout_context);
 | 
					 | 
				
			||||||
    gtk_style_context_set_state (priv->button_context, GTK_STATE_FLAG_NORMAL);
 | 
					 | 
				
			||||||
    gtk_style_context_add_provider (priv->button_context,
 | 
					 | 
				
			||||||
        GTK_STYLE_PROVIDER(priv->css_provider),
 | 
					 | 
				
			||||||
        GTK_STYLE_PROVIDER_PRIORITY_USER);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
@ -675,12 +632,6 @@ invalidate (EekRenderer *renderer)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
					    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (priv->outline_surface_cache)
 | 
					 | 
				
			||||||
        g_hash_table_remove_all (priv->outline_surface_cache);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (priv->active_outline_surface_cache)
 | 
					 | 
				
			||||||
        g_hash_table_remove_all (priv->active_outline_surface_cache);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (priv->keyboard_surface) {
 | 
					    if (priv->keyboard_surface) {
 | 
				
			||||||
        cairo_surface_destroy (priv->keyboard_surface);
 | 
					        cairo_surface_destroy (priv->keyboard_surface);
 | 
				
			||||||
        priv->keyboard_surface = NULL;
 | 
					        priv->keyboard_surface = NULL;
 | 
				
			||||||
@ -696,6 +647,36 @@ eek_renderer_new (LevelKeyboard  *keyboard,
 | 
				
			|||||||
                         NULL);
 | 
					                         NULL);
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
					    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
				
			||||||
    priv->keyboard = keyboard;
 | 
					    priv->keyboard = keyboard;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Create a style context for the layout */
 | 
				
			||||||
 | 
					    GtkWidgetPath *path = gtk_widget_path_new();
 | 
				
			||||||
 | 
					    gtk_widget_path_append_type(path, view_type());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    priv->view_context = gtk_style_context_new();
 | 
				
			||||||
 | 
					    gtk_style_context_set_path(priv->view_context, path);
 | 
				
			||||||
 | 
					    gtk_widget_path_unref(path);
 | 
				
			||||||
 | 
					    if (squeek_layout_get_kind(priv->keyboard->layout) == ARRANGEMENT_KIND_WIDE) {
 | 
				
			||||||
 | 
					        gtk_style_context_add_class(priv->view_context, "wide");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    gtk_style_context_add_provider (priv->view_context,
 | 
				
			||||||
 | 
					        GTK_STYLE_PROVIDER(priv->css_provider),
 | 
				
			||||||
 | 
					        GTK_STYLE_PROVIDER_PRIORITY_USER);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Create a style context for the buttons */
 | 
				
			||||||
 | 
					    path = gtk_widget_path_new();
 | 
				
			||||||
 | 
					    gtk_widget_path_append_type(path, view_type());
 | 
				
			||||||
 | 
					    if (squeek_layout_get_kind(priv->keyboard->layout) == ARRANGEMENT_KIND_WIDE) {
 | 
				
			||||||
 | 
					        gtk_widget_path_iter_add_class(path, -1, "wide");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    gtk_widget_path_append_type(path, button_type());
 | 
				
			||||||
 | 
					    priv->button_context = gtk_style_context_new ();
 | 
				
			||||||
 | 
					    gtk_style_context_set_path(priv->button_context, path);
 | 
				
			||||||
 | 
					    gtk_widget_path_unref(path);
 | 
				
			||||||
 | 
					    gtk_style_context_set_parent(priv->button_context, priv->view_context);
 | 
				
			||||||
 | 
					    gtk_style_context_set_state (priv->button_context, GTK_STATE_FLAG_NORMAL);
 | 
				
			||||||
 | 
					    gtk_style_context_add_provider (priv->button_context,
 | 
				
			||||||
 | 
					        GTK_STYLE_PROVIDER(priv->css_provider),
 | 
				
			||||||
 | 
					        GTK_STYLE_PROVIDER_PRIORITY_USER);
 | 
				
			||||||
    return renderer;
 | 
					    return renderer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -747,7 +728,7 @@ eek_renderer_get_size (EekRenderer *renderer,
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
eek_renderer_get_button_bounds (EekRenderer *renderer,
 | 
					eek_renderer_get_button_bounds (EekBounds view_bounds,
 | 
				
			||||||
                                struct button_place *place,
 | 
					                                struct button_place *place,
 | 
				
			||||||
                             EekBounds   *bounds,
 | 
					                             EekBounds   *bounds,
 | 
				
			||||||
                             gboolean     rotate)
 | 
					                             gboolean     rotate)
 | 
				
			||||||
@ -755,15 +736,11 @@ eek_renderer_get_button_bounds (EekRenderer *renderer,
 | 
				
			|||||||
    gint angle = 0;
 | 
					    gint angle = 0;
 | 
				
			||||||
    EekPoint points[4], min, max;
 | 
					    EekPoint points[4], min, max;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    g_return_if_fail (EEK_IS_RENDERER(renderer));
 | 
					 | 
				
			||||||
    g_return_if_fail (place);
 | 
					    g_return_if_fail (place);
 | 
				
			||||||
    g_return_if_fail (bounds != NULL);
 | 
					    g_return_if_fail (bounds != NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    EekBounds button_bounds = squeek_button_get_bounds(place->button);
 | 
					    EekBounds button_bounds = squeek_button_get_bounds(place->button);
 | 
				
			||||||
    EekBounds row_bounds = squeek_row_get_bounds (place->row);
 | 
					    EekBounds row_bounds = squeek_row_get_bounds (place->row);
 | 
				
			||||||
    EekBounds view_bounds = squeek_view_get_bounds (level_keyboard_current(priv->keyboard));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!rotate) {
 | 
					    if (!rotate) {
 | 
				
			||||||
        button_bounds.x += view_bounds.x + row_bounds.x;
 | 
					        button_bounds.x += view_bounds.x + row_bounds.x;
 | 
				
			||||||
@ -822,46 +799,26 @@ eek_renderer_set_scale_factor (EekRenderer *renderer, gint scale)
 | 
				
			|||||||
    priv->scale_factor = scale;
 | 
					    priv->scale_factor = scale;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PangoLayout *
 | 
					 | 
				
			||||||
eek_renderer_create_pango_layout (EekRenderer  *renderer)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_return_val_if_fail (EEK_IS_RENDERER(renderer), NULL);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return pango_layout_new (priv->pcontext);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cairo_surface_t *
 | 
					cairo_surface_t *
 | 
				
			||||||
eek_renderer_get_icon_surface (EekRenderer *renderer,
 | 
					eek_renderer_get_icon_surface (const gchar *icon_name,
 | 
				
			||||||
                               const gchar *icon_name,
 | 
					 | 
				
			||||||
                               gint size,
 | 
					                               gint size,
 | 
				
			||||||
                               gint scale)
 | 
					                               gint scale)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    GError *error = NULL;
 | 
					    GError *error = NULL;
 | 
				
			||||||
    cairo_surface_t *surface;
 | 
					    cairo_surface_t *surface = gtk_icon_theme_load_surface (gtk_icon_theme_get_default (),
 | 
				
			||||||
 | 
					                                                            icon_name,
 | 
				
			||||||
 | 
					                                                            size,
 | 
				
			||||||
 | 
					                                                            scale,
 | 
				
			||||||
 | 
					                                                            NULL,
 | 
				
			||||||
 | 
					                                                            0,
 | 
				
			||||||
 | 
					                                                            &error);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    g_return_val_if_fail (EEK_IS_RENDERER(renderer), NULL);
 | 
					    if (surface == NULL) {
 | 
				
			||||||
 | 
					        g_warning ("can't get icon surface for %s: %s",
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
					                   icon_name,
 | 
				
			||||||
 | 
					                   error->message);
 | 
				
			||||||
    surface = g_hash_table_lookup (priv->icons, icon_name);
 | 
					        g_error_free (error);
 | 
				
			||||||
    if (!surface) {
 | 
					        return NULL;
 | 
				
			||||||
        surface = gtk_icon_theme_load_surface (gtk_icon_theme_get_default (),
 | 
					 | 
				
			||||||
                                               icon_name,
 | 
					 | 
				
			||||||
                                               size,
 | 
					 | 
				
			||||||
                                               scale,
 | 
					 | 
				
			||||||
                                               NULL,
 | 
					 | 
				
			||||||
                                               0,
 | 
					 | 
				
			||||||
                                               &error);
 | 
					 | 
				
			||||||
        g_hash_table_insert (priv->icons, g_strdup(icon_name), surface);
 | 
					 | 
				
			||||||
        if (surface == NULL) {
 | 
					 | 
				
			||||||
            g_warning ("can't get icon surface for %s: %s",
 | 
					 | 
				
			||||||
                       icon_name,
 | 
					 | 
				
			||||||
                       error->message);
 | 
					 | 
				
			||||||
            g_error_free (error);
 | 
					 | 
				
			||||||
            return NULL;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return surface;
 | 
					    return surface;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -889,24 +846,6 @@ eek_renderer_render_keyboard (EekRenderer *renderer,
 | 
				
			|||||||
    EEK_RENDERER_GET_CLASS(renderer)->render_keyboard (renderer, cr);
 | 
					    EEK_RENDERER_GET_CLASS(renderer)->render_keyboard (renderer, cr);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					 | 
				
			||||||
eek_renderer_get_foreground_color (EekRenderer *renderer,
 | 
					 | 
				
			||||||
                                   GtkStyleContext *context,
 | 
					 | 
				
			||||||
                                   EekColor    *color)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_return_if_fail (EEK_IS_RENDERER(renderer));
 | 
					 | 
				
			||||||
    g_return_if_fail (color);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GtkStateFlags flags = GTK_STATE_FLAG_NORMAL;
 | 
					 | 
				
			||||||
    GdkRGBA gcolor;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    gtk_style_context_get_color (context, flags, &gcolor);
 | 
					 | 
				
			||||||
    color->red = gcolor.red;
 | 
					 | 
				
			||||||
    color->green = gcolor.green;
 | 
					 | 
				
			||||||
    color->blue = gcolor.blue;
 | 
					 | 
				
			||||||
    color->alpha = gcolor.alpha;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static gboolean
 | 
					static gboolean
 | 
				
			||||||
sign (EekPoint *p1, EekPoint *p2, EekPoint *p3)
 | 
					sign (EekPoint *p1, EekPoint *p2, EekPoint *p3)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -954,29 +893,16 @@ eek_are_bounds_inside (EekBounds bounds, EekPoint point, EekPoint origin, int32_
 | 
				
			|||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					struct transformation
 | 
				
			||||||
 * eek_renderer_find_key_by_position:
 | 
					eek_renderer_get_transformation (EekRenderer *renderer) {
 | 
				
			||||||
 * @renderer: The renderer normally used to render the key
 | 
					    struct transformation failed = {0};
 | 
				
			||||||
 * @x: The horizontal widget coordinate of the position to test for a key
 | 
					    g_return_val_if_fail (EEK_IS_RENDERER(renderer), failed);
 | 
				
			||||||
 * @y: The vertical widget coordinate of the position to test for a key
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Return value: the key located at the position x, y in widget coordinates, or
 | 
					 | 
				
			||||||
 *   NULL if no key can be found at that location
 | 
					 | 
				
			||||||
 **/
 | 
					 | 
				
			||||||
struct squeek_button *
 | 
					 | 
				
			||||||
eek_renderer_find_button_by_position (EekRenderer *renderer,
 | 
					 | 
				
			||||||
                                      struct squeek_view *view,
 | 
					 | 
				
			||||||
                                      gdouble      x,
 | 
					 | 
				
			||||||
                                      gdouble      y)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_return_val_if_fail (EEK_IS_RENDERER(renderer), NULL);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
					    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
				
			||||||
 | 
					    struct transformation ret = {
 | 
				
			||||||
    /* Transform from widget coordinates to keyboard coordinates */
 | 
					        .origin_x = priv->origin_x,
 | 
				
			||||||
    EekPoint point = {
 | 
					        .origin_y = priv->origin_y,
 | 
				
			||||||
        .x = (x - priv->origin_x)/priv->scale,
 | 
					        .scale = priv->scale,
 | 
				
			||||||
        .y = (y - priv->origin_y)/priv->scale,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return squeek_view_find_button_by_position(view, point);
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -24,8 +24,8 @@
 | 
				
			|||||||
#include <gtk/gtk.h>
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
#include <pango/pangocairo.h>
 | 
					#include <pango/pangocairo.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "eek-keyboard.h"
 | 
					 | 
				
			||||||
#include "eek-types.h"
 | 
					#include "eek-types.h"
 | 
				
			||||||
 | 
					#include "src/layout.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
G_BEGIN_DECLS
 | 
					G_BEGIN_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -65,7 +65,7 @@ void             eek_renderer_set_allocation_size
 | 
				
			|||||||
void             eek_renderer_get_size         (EekRenderer     *renderer,
 | 
					void             eek_renderer_get_size         (EekRenderer     *renderer,
 | 
				
			||||||
                                                gdouble         *width,
 | 
					                                                gdouble         *width,
 | 
				
			||||||
                                                gdouble         *height);
 | 
					                                                gdouble         *height);
 | 
				
			||||||
void             eek_renderer_get_button_bounds   (EekRenderer     *renderer,
 | 
					void             eek_renderer_get_button_bounds   (EekBounds view_bounds,
 | 
				
			||||||
                                                struct button_place *button,
 | 
					                                                struct button_place *button,
 | 
				
			||||||
                                                EekBounds       *bounds,
 | 
					                                                EekBounds       *bounds,
 | 
				
			||||||
                                                gboolean         rotate);
 | 
					                                                gboolean         rotate);
 | 
				
			||||||
@ -74,42 +74,29 @@ gdouble          eek_renderer_get_scale        (EekRenderer     *renderer);
 | 
				
			|||||||
void             eek_renderer_set_scale_factor (EekRenderer     *renderer,
 | 
					void             eek_renderer_set_scale_factor (EekRenderer     *renderer,
 | 
				
			||||||
                                                gint             scale);
 | 
					                                                gint             scale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PangoLayout     *eek_renderer_create_pango_layout
 | 
					 | 
				
			||||||
                                               (EekRenderer     *renderer);
 | 
					 | 
				
			||||||
void             eek_renderer_render_button       (EekRenderer     *renderer,
 | 
					void             eek_renderer_render_button       (EekRenderer     *renderer,
 | 
				
			||||||
                                                cairo_t         *cr,
 | 
					                                                cairo_t         *cr,
 | 
				
			||||||
                                                struct button_place *place,
 | 
					                                                struct button_place *place,
 | 
				
			||||||
                                                gdouble          scale,
 | 
					                                                gdouble          scale,
 | 
				
			||||||
                                                gboolean         rotate);
 | 
					                                                gboolean         rotate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cairo_surface_t *eek_renderer_get_icon_surface (EekRenderer     *renderer,
 | 
					cairo_surface_t *eek_renderer_get_icon_surface(const gchar     *icon_name,
 | 
				
			||||||
                                                const gchar     *icon_name,
 | 
					 | 
				
			||||||
                                                gint             size,
 | 
					                                                gint             size,
 | 
				
			||||||
                                                gint             scale);
 | 
					                                                gint             scale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void             eek_renderer_render_keyboard  (EekRenderer     *renderer,
 | 
					void             eek_renderer_render_keyboard  (EekRenderer     *renderer,
 | 
				
			||||||
                                                cairo_t         *cr);
 | 
					                                                cairo_t         *cr);
 | 
				
			||||||
 | 
					 | 
				
			||||||
void             eek_renderer_set_default_foreground_color
 | 
					 | 
				
			||||||
                                               (EekRenderer     *renderer,
 | 
					 | 
				
			||||||
                                                const EekColor  *color);
 | 
					 | 
				
			||||||
void             eek_renderer_set_default_background_color
 | 
					 | 
				
			||||||
                                               (EekRenderer     *renderer,
 | 
					 | 
				
			||||||
                                                const EekColor  *color);
 | 
					 | 
				
			||||||
void             eek_renderer_get_foreground_color
 | 
					 | 
				
			||||||
                                               (EekRenderer     *renderer,
 | 
					 | 
				
			||||||
                                                GtkStyleContext *context,
 | 
					 | 
				
			||||||
                                                EekColor        *color);
 | 
					 | 
				
			||||||
void             eek_renderer_set_border_width (EekRenderer     *renderer,
 | 
					void             eek_renderer_set_border_width (EekRenderer     *renderer,
 | 
				
			||||||
                                                gdouble          border_width);
 | 
					                                                gdouble          border_width);
 | 
				
			||||||
struct squeek_button *eek_renderer_find_button_by_position(EekRenderer     *renderer, struct squeek_view *view,
 | 
					 | 
				
			||||||
                                                gdouble          x,
 | 
					 | 
				
			||||||
                                                gdouble          y);
 | 
					 | 
				
			||||||
void             eek_renderer_apply_transformation_for_button
 | 
					void             eek_renderer_apply_transformation_for_button
 | 
				
			||||||
                                               (EekRenderer     *renderer,
 | 
					                                               (cairo_t         *cr,
 | 
				
			||||||
                                                cairo_t         *cr, struct button_place *place,
 | 
					                                                EekBounds view_bounds,
 | 
				
			||||||
 | 
					                                                struct button_place *place,
 | 
				
			||||||
                                                gdouble          scale,
 | 
					                                                gdouble          scale,
 | 
				
			||||||
                                                gboolean         rotate);
 | 
					                                                gboolean         rotate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct transformation
 | 
				
			||||||
 | 
					eek_renderer_get_transformation (EekRenderer *renderer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
G_END_DECLS
 | 
					G_END_DECLS
 | 
				
			||||||
#endif  /* EEK_RENDERER_H */
 | 
					#endif  /* EEK_RENDERER_H */
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										113
									
								
								eek/eek-symbol.c
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								eek/eek-symbol.c
									
									
									
									
									
								
							@ -1,113 +0,0 @@
 | 
				
			|||||||
/* 
 | 
					 | 
				
			||||||
 * Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
 | 
					 | 
				
			||||||
 * Copyright (C) 2011 Red Hat, Inc.
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * This library is free software; you can redistribute it and/or
 | 
					 | 
				
			||||||
 * modify it under the terms of the GNU Lesser General Public License
 | 
					 | 
				
			||||||
 * as published by the Free Software Foundation; either version 2 of
 | 
					 | 
				
			||||||
 * the License, or (at your option) any later version.
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * This library is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 | 
				
			||||||
 * Lesser General Public License for more details.
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * You should have received a copy of the GNU Lesser General Public
 | 
					 | 
				
			||||||
 * License along with this library; if not, write to the Free Software
 | 
					 | 
				
			||||||
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
					 | 
				
			||||||
 * 02110-1301 USA
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * SECTION:eek-symbol
 | 
					 | 
				
			||||||
 * @short_description: Base class of a symbol
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * The #EekSymbolClass class represents a symbol assigned to a key.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "config.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "eek-symbol.h"
 | 
					 | 
				
			||||||
#include "eek-enumtypes.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EekSymbol *
 | 
					 | 
				
			||||||
eek_symbol_new (const gchar *name)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    EekSymbol *self = g_new0(EekSymbol, 1);
 | 
					 | 
				
			||||||
    self->name = g_strdup (name);
 | 
					 | 
				
			||||||
    self->category = EEK_SYMBOL_CATEGORY_UNKNOWN;
 | 
					 | 
				
			||||||
    return self;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * eek_symbol_set_label:
 | 
					 | 
				
			||||||
 * @symbol: an #EekSymbol
 | 
					 | 
				
			||||||
 * @label: label text of @symbol
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Set the label text of @symbol to @label.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
eek_symbol_set_label (EekSymbol   *symbol,
 | 
					 | 
				
			||||||
                      const gchar *label)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_free (symbol->label);
 | 
					 | 
				
			||||||
    symbol->label = g_strdup (label);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * eek_symbol_set_modifier_mask:
 | 
					 | 
				
			||||||
 * @symbol: an #EekSymbol
 | 
					 | 
				
			||||||
 * @mask: an #EekModifierType
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Set modifier mask that @symbol can trigger.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
eek_symbol_set_modifier_mask (EekSymbol      *symbol,
 | 
					 | 
				
			||||||
                              EekModifierType mask)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    symbol->modifier_mask = mask;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * eek_symbol_get_modifier_mask:
 | 
					 | 
				
			||||||
 * @symbol: an #EekSymbol
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Get modifier mask that @symbol can trigger.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
EekModifierType
 | 
					 | 
				
			||||||
eek_symbol_get_modifier_mask (EekSymbol *symbol)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
    return symbol->modifier_mask;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
eek_symbol_set_icon_name (EekSymbol   *symbol,
 | 
					 | 
				
			||||||
                          const gchar *icon_name)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_free (symbol->icon_name);
 | 
					 | 
				
			||||||
    symbol->icon_name = g_strdup (icon_name);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const gchar *
 | 
					 | 
				
			||||||
eek_symbol_get_icon_name (EekSymbol *symbol)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return NULL;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
eek_symbol_set_tooltip (EekSymbol   *symbol,
 | 
					 | 
				
			||||||
                        const gchar *tooltip)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_free (symbol->tooltip);
 | 
					 | 
				
			||||||
    symbol->tooltip = g_strdup (tooltip);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const gchar *
 | 
					 | 
				
			||||||
eek_symbol_get_tooltip (EekSymbol *symbol)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return NULL;
 | 
					 | 
				
			||||||
    if (symbol->tooltip == NULL || *symbol->tooltip == '\0')
 | 
					 | 
				
			||||||
        return NULL;
 | 
					 | 
				
			||||||
    return symbol->tooltip;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -72,63 +72,3 @@ eek_bounds_free (EekBounds *bounds)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    g_slice_free (EekBounds, bounds);
 | 
					    g_slice_free (EekBounds, bounds);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
/* EekOutline */
 | 
					 | 
				
			||||||
G_DEFINE_BOXED_TYPE(EekOutline, eek_outline,
 | 
					 | 
				
			||||||
                    eek_outline_copy, eek_outline_free);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EekOutline *
 | 
					 | 
				
			||||||
eek_outline_copy (const EekOutline *outline)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    EekOutline *_outline = g_slice_dup (EekOutline, outline);
 | 
					 | 
				
			||||||
    _outline->corner_radius = outline->corner_radius;
 | 
					 | 
				
			||||||
    _outline->num_points = outline->num_points;
 | 
					 | 
				
			||||||
    _outline->points = g_slice_alloc0 (sizeof (EekPoint) * outline->num_points);
 | 
					 | 
				
			||||||
    memcpy (_outline->points, outline->points, sizeof (EekPoint) * outline->num_points);
 | 
					 | 
				
			||||||
    return _outline;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
eek_outline_free (EekOutline *outline)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_slice_free1 (sizeof (EekPoint) * outline->num_points, outline->points);
 | 
					 | 
				
			||||||
    g_slice_free (EekOutline, outline);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* EekColor */
 | 
					 | 
				
			||||||
G_DEFINE_BOXED_TYPE(EekColor, eek_color, eek_color_copy, eek_color_free);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EekColor *
 | 
					 | 
				
			||||||
eek_color_copy (const EekColor *color)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return g_slice_dup (EekColor, color);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
eek_color_free (EekColor *color)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_slice_free (EekColor, color);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EekColor *
 | 
					 | 
				
			||||||
eek_color_new (gdouble red,
 | 
					 | 
				
			||||||
               gdouble green,
 | 
					 | 
				
			||||||
               gdouble blue,
 | 
					 | 
				
			||||||
               gdouble alpha)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    EekColor *color;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    color = g_slice_new (EekColor);
 | 
					 | 
				
			||||||
    color->red = red;
 | 
					 | 
				
			||||||
    color->green = green;
 | 
					 | 
				
			||||||
    color->blue = blue;
 | 
					 | 
				
			||||||
    color->alpha = alpha;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return color;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GQuark
 | 
					 | 
				
			||||||
eek_error_quark (void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return g_quark_from_static_string ("eek-error-quark");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										175
									
								
								eek/eek-types.h
									
									
									
									
									
								
							
							
						
						
									
										175
									
								
								eek/eek-types.h
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
				
			|||||||
/* 
 | 
					/* 
 | 
				
			||||||
 * Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
					 * Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
				
			||||||
 * Copyright (C) 2010-2011 Red Hat, Inc.
 | 
					 * Copyright (C) 2010-2011 Red Hat, Inc.
 | 
				
			||||||
 | 
					 * Copyright (C) 2019 Purism, SPC
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * This library is free software; you can redistribute it and/or
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 * modify it under the terms of the GNU Lesser General Public License
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
@ -33,117 +34,8 @@ G_BEGIN_DECLS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#define EEK_TYPE_POINT (eek_point_get_type ())
 | 
					#define EEK_TYPE_POINT (eek_point_get_type ())
 | 
				
			||||||
#define EEK_TYPE_BOUNDS (eek_bounds_get_type ())
 | 
					#define EEK_TYPE_BOUNDS (eek_bounds_get_type ())
 | 
				
			||||||
#define EEK_TYPE_OUTLINE (eek_outline_get_type ())
 | 
					 | 
				
			||||||
#define EEK_TYPE_COLOR (eek_color_get_type ())
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * EekOrientation:
 | 
					 | 
				
			||||||
 * @EEK_ORIENTATION_VERTICAL: the elements will be arranged vertically
 | 
					 | 
				
			||||||
 * @EEK_ORIENTATION_HORIZONTAL: the elements will be arranged horizontally
 | 
					 | 
				
			||||||
 * @EEK_ORIENTATION_INVALID: used for error reporting
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Orientation of rows in sections.  Elements in a row will be
 | 
					 | 
				
			||||||
 * arranged with the specified orientation.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
typedef enum {
 | 
					 | 
				
			||||||
    EEK_ORIENTATION_VERTICAL,
 | 
					 | 
				
			||||||
    EEK_ORIENTATION_HORIZONTAL,
 | 
					 | 
				
			||||||
    EEK_ORIENTATION_INVALID = -1
 | 
					 | 
				
			||||||
} EekOrientation;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * EekModifierBehavior:
 | 
					 | 
				
			||||||
 * @EEK_MODIFIER_BEHAVIOR_NONE: do nothing when a modifier key is pressed
 | 
					 | 
				
			||||||
 * @EEK_MODIFIER_BEHAVIOR_LOCK: toggle the modifier status each time a
 | 
					 | 
				
			||||||
 * modifier key are pressed
 | 
					 | 
				
			||||||
 * @EEK_MODIFIER_BEHAVIOR_LATCH: enable the modifier when a modifier
 | 
					 | 
				
			||||||
 * key is pressed and keep it enabled until any key is pressed.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Modifier handling mode.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
typedef enum {
 | 
					 | 
				
			||||||
    EEK_MODIFIER_BEHAVIOR_NONE,
 | 
					 | 
				
			||||||
    EEK_MODIFIER_BEHAVIOR_LOCK,
 | 
					 | 
				
			||||||
    EEK_MODIFIER_BEHAVIOR_LATCH
 | 
					 | 
				
			||||||
} EekModifierBehavior;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * EekModifierType:
 | 
					 | 
				
			||||||
 * @EEK_SHIFT_MASK: the Shift key.
 | 
					 | 
				
			||||||
 * @EEK_LOCK_MASK: a Lock key (depending on the modifier mapping of the
 | 
					 | 
				
			||||||
 *  X server this may either be CapsLock or ShiftLock).
 | 
					 | 
				
			||||||
 * @EEK_CONTROL_MASK: the Control key.
 | 
					 | 
				
			||||||
 * @EEK_MOD1_MASK: the fourth modifier key (it depends on the modifier
 | 
					 | 
				
			||||||
 *  mapping of the X server which key is interpreted as this modifier, but
 | 
					 | 
				
			||||||
 *  normally it is the Alt key).
 | 
					 | 
				
			||||||
 * @EEK_MOD2_MASK: the fifth modifier key (it depends on the modifier
 | 
					 | 
				
			||||||
 *  mapping of the X server which key is interpreted as this modifier).
 | 
					 | 
				
			||||||
 * @EEK_MOD3_MASK: the sixth modifier key (it depends on the modifier
 | 
					 | 
				
			||||||
 *  mapping of the X server which key is interpreted as this modifier).
 | 
					 | 
				
			||||||
 * @EEK_MOD4_MASK: the seventh modifier key (it depends on the modifier
 | 
					 | 
				
			||||||
 *  mapping of the X server which key is interpreted as this modifier).
 | 
					 | 
				
			||||||
 * @EEK_MOD5_MASK: the eighth modifier key (it depends on the modifier
 | 
					 | 
				
			||||||
 *  mapping of the X server which key is interpreted as this modifier).
 | 
					 | 
				
			||||||
 * @EEK_BUTTON1_MASK: the first mouse button.
 | 
					 | 
				
			||||||
 * @EEK_BUTTON2_MASK: the second mouse button.
 | 
					 | 
				
			||||||
 * @EEK_BUTTON3_MASK: the third mouse button.
 | 
					 | 
				
			||||||
 * @EEK_BUTTON4_MASK: the fourth mouse button.
 | 
					 | 
				
			||||||
 * @EEK_BUTTON5_MASK: the fifth mouse button.
 | 
					 | 
				
			||||||
 * @EEK_SUPER_MASK: the Super modifier. Since 2.10
 | 
					 | 
				
			||||||
 * @EEK_HYPER_MASK: the Hyper modifier. Since 2.10
 | 
					 | 
				
			||||||
 * @EEK_META_MASK: the Meta modifier. Since 2.10
 | 
					 | 
				
			||||||
 * @EEK_RELEASE_MASK: not used in EEK itself. GTK+ uses it to differentiate
 | 
					 | 
				
			||||||
 *  between (keyval, modifiers) pairs from key press and release events.
 | 
					 | 
				
			||||||
 * @EEK_MODIFIER_MASK: a mask covering all modifier types.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
typedef enum
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  EEK_SHIFT_MASK    = 1 << 0,
 | 
					 | 
				
			||||||
  EEK_LOCK_MASK	    = 1 << 1,
 | 
					 | 
				
			||||||
  EEK_CONTROL_MASK  = 1 << 2,
 | 
					 | 
				
			||||||
  EEK_MOD1_MASK	    = 1 << 3,
 | 
					 | 
				
			||||||
  EEK_MOD2_MASK	    = 1 << 4,
 | 
					 | 
				
			||||||
  EEK_MOD3_MASK	    = 1 << 5,
 | 
					 | 
				
			||||||
  EEK_MOD4_MASK	    = 1 << 6,
 | 
					 | 
				
			||||||
  EEK_MOD5_MASK	    = 1 << 7,
 | 
					 | 
				
			||||||
  EEK_BUTTON1_MASK  = 1 << 8,
 | 
					 | 
				
			||||||
  EEK_BUTTON2_MASK  = 1 << 9,
 | 
					 | 
				
			||||||
  EEK_BUTTON3_MASK  = 1 << 10,
 | 
					 | 
				
			||||||
  EEK_BUTTON4_MASK  = 1 << 11,
 | 
					 | 
				
			||||||
  EEK_BUTTON5_MASK  = 1 << 12,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /* The next few modifiers are used by XKB, so we skip to the end.
 | 
					 | 
				
			||||||
   * Bits 15 - 25 are currently unused. Bit 29 is used internally.
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  EEK_SUPER_MASK    = 1 << 26,
 | 
					 | 
				
			||||||
  EEK_HYPER_MASK    = 1 << 27,
 | 
					 | 
				
			||||||
  EEK_META_MASK     = 1 << 28,
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  EEK_RELEASE_MASK  = 1 << 30,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  EEK_MODIFIER_MASK = 0x5c001fff
 | 
					 | 
				
			||||||
} EekModifierType;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * EEK_INVALID_KEYCODE:
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Pseudo keycode used for error reporting.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
#define EEK_INVALID_KEYCODE (0)
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
typedef struct _EekElement EekElement;
 | 
					 | 
				
			||||||
typedef struct _EekSymbol EekSymbol;
 | 
					 | 
				
			||||||
typedef struct _EekText EekText;
 | 
					 | 
				
			||||||
typedef struct _EekTheme EekTheme;
 | 
					 | 
				
			||||||
typedef struct _EekThemeContext EekThemeContext;
 | 
					 | 
				
			||||||
typedef struct _EekThemeNode EekThemeNode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typedef struct _EekSymbolMatrix EekSymbolMatrix;
 | 
					 | 
				
			||||||
typedef struct _EekBounds EekBounds;
 | 
					typedef struct _EekBounds EekBounds;
 | 
				
			||||||
typedef struct _EekOutline EekOutline;
 | 
					 | 
				
			||||||
typedef struct _EekColor EekColor;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct _EekboardContextService EekboardContextService;
 | 
					typedef struct _EekboardContextService EekboardContextService;
 | 
				
			||||||
typedef struct _LevelKeyboard LevelKeyboard;
 | 
					typedef struct _LevelKeyboard LevelKeyboard;
 | 
				
			||||||
@ -191,67 +83,10 @@ GType      eek_bounds_get_type (void) G_GNUC_CONST;
 | 
				
			|||||||
EekBounds *eek_bounds_copy     (const EekBounds *bounds);
 | 
					EekBounds *eek_bounds_copy     (const EekBounds *bounds);
 | 
				
			||||||
void       eek_bounds_free     (EekBounds       *bounds);
 | 
					void       eek_bounds_free     (EekBounds       *bounds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					struct transformation {
 | 
				
			||||||
 * EekOutline:
 | 
					    gdouble origin_x;
 | 
				
			||||||
 * @corner_radius: radius of corners of rounded polygon
 | 
					    gdouble origin_y;
 | 
				
			||||||
 * @points: an array of points represents a polygon
 | 
					    gdouble scale;
 | 
				
			||||||
 * @num_points: the length of @points
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * 2D rounded polygon used to draw key shape
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
struct _EekOutline
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    /*< public >*/
 | 
					 | 
				
			||||||
    gdouble corner_radius;
 | 
					 | 
				
			||||||
    EekPoint *points;
 | 
					 | 
				
			||||||
    guint num_points;
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
GType       eek_outline_get_type (void) G_GNUC_CONST;
 | 
					 | 
				
			||||||
EekOutline *eek_outline_copy     (const EekOutline *outline);
 | 
					 | 
				
			||||||
void        eek_outline_free     (EekOutline       *outline);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * EekColor:
 | 
					 | 
				
			||||||
 * @red: red component of color, between 0.0 and 1.0
 | 
					 | 
				
			||||||
 * @green: green component of color, between 0.0 and 1.0
 | 
					 | 
				
			||||||
 * @blue: blue component of color, between 0.0 and 1.0
 | 
					 | 
				
			||||||
 * @alpha: alpha component of color, between 0.0 and 1.0
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Color used for drawing.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
struct _EekColor
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    /*< public >*/
 | 
					 | 
				
			||||||
    gdouble red;
 | 
					 | 
				
			||||||
    gdouble green;
 | 
					 | 
				
			||||||
    gdouble blue;
 | 
					 | 
				
			||||||
    gdouble alpha;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GType     eek_color_get_type (void) G_GNUC_CONST;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EekColor *eek_color_new      (gdouble         red,
 | 
					 | 
				
			||||||
                              gdouble         green,
 | 
					 | 
				
			||||||
                              gdouble         blue,
 | 
					 | 
				
			||||||
                              gdouble         alpha);
 | 
					 | 
				
			||||||
EekColor *eek_color_copy     (const EekColor *color);
 | 
					 | 
				
			||||||
void      eek_color_free     (EekColor       *color);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typedef enum {
 | 
					 | 
				
			||||||
  EEK_GRADIENT_NONE,
 | 
					 | 
				
			||||||
  EEK_GRADIENT_VERTICAL,
 | 
					 | 
				
			||||||
  EEK_GRADIENT_HORIZONTAL,
 | 
					 | 
				
			||||||
  EEK_GRADIENT_RADIAL
 | 
					 | 
				
			||||||
} EekGradientType;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GQuark eek_error_quark (void);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define EEK_ERROR eek_error_quark ()
 | 
					 | 
				
			||||||
typedef enum {
 | 
					 | 
				
			||||||
  EEK_ERROR_LAYOUT_ERROR,
 | 
					 | 
				
			||||||
  EEK_ERROR_FAILED
 | 
					 | 
				
			||||||
} EekErrorEnum;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
G_END_DECLS
 | 
					G_END_DECLS
 | 
				
			||||||
#endif  /* EEK_TYPES_H */
 | 
					#endif  /* EEK_TYPES_H */
 | 
				
			||||||
 | 
				
			|||||||
@ -31,9 +31,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
LevelKeyboard *
 | 
					LevelKeyboard *
 | 
				
			||||||
eek_xml_layout_real_create_keyboard (const char *keyboard_type,
 | 
					eek_xml_layout_real_create_keyboard (const char *keyboard_type,
 | 
				
			||||||
                                     EekboardContextService *manager)
 | 
					                                     EekboardContextService *manager,
 | 
				
			||||||
 | 
					                                     enum squeek_arrangement_kind t)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    struct squeek_layout *layout = squeek_load_layout(keyboard_type);
 | 
					    struct squeek_layout *layout = squeek_load_layout(keyboard_type, t);
 | 
				
			||||||
    squeek_layout_place_contents(layout);
 | 
					    squeek_layout_place_contents(layout);
 | 
				
			||||||
    return level_keyboard_new(manager, layout);
 | 
					    return level_keyboard_new(manager, layout);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -24,10 +24,13 @@
 | 
				
			|||||||
#define EEK_XML_LAYOUT_H 1
 | 
					#define EEK_XML_LAYOUT_H 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "eek-types.h"
 | 
					#include "eek-types.h"
 | 
				
			||||||
 | 
					#include "src/layout.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
G_BEGIN_DECLS
 | 
					G_BEGIN_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LevelKeyboard *
 | 
					LevelKeyboard *
 | 
				
			||||||
eek_xml_layout_real_create_keyboard (const char *keyboard_type,
 | 
					eek_xml_layout_real_create_keyboard (const char *keyboard_type,
 | 
				
			||||||
                                     EekboardContextService *manager);
 | 
					                                     EekboardContextService *manager,
 | 
				
			||||||
 | 
					                                     enum squeek_arrangement_kind t);
 | 
				
			||||||
G_END_DECLS
 | 
					G_END_DECLS
 | 
				
			||||||
#endif  /* EEK_XML_LAYOUT_H */
 | 
					#endif  /* EEK_XML_LAYOUT_H */
 | 
				
			||||||
 | 
				
			|||||||
@ -3,15 +3,12 @@
 | 
				
			|||||||
 * SPDX-License-Identifier: GPL-3.0+
 | 
					 * SPDX-License-Identifier: GPL-3.0+
 | 
				
			||||||
 * Author: Guido Günther <agx@sigxcpu.org>
 | 
					 * Author: Guido Günther <agx@sigxcpu.org>
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
WARNING: this file is taken directly from phosh, with no modificaions apart from this message. Please update phosh instead of changing this file. Please copy the file back here afterwards, with the same notice.
 | 
					WARNING: this file is taken directly from phosh, with no modificaions apart from this message. Please update phosh instead of changing this file. Please copy the file back here afterwards, with the same notice.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
#define G_LOG_DOMAIN "phosh-layer-surface"
 | 
					#define G_LOG_DOMAIN "phosh-layer-surface"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "config.h"
 | 
					#include "config.h"
 | 
				
			||||||
@ -27,8 +24,14 @@ enum {
 | 
				
			|||||||
  PHOSH_LAYER_SURFACE_PROP_LAYER,
 | 
					  PHOSH_LAYER_SURFACE_PROP_LAYER,
 | 
				
			||||||
  PHOSH_LAYER_SURFACE_PROP_KBD_INTERACTIVITY,
 | 
					  PHOSH_LAYER_SURFACE_PROP_KBD_INTERACTIVITY,
 | 
				
			||||||
  PHOSH_LAYER_SURFACE_PROP_EXCLUSIVE_ZONE,
 | 
					  PHOSH_LAYER_SURFACE_PROP_EXCLUSIVE_ZONE,
 | 
				
			||||||
 | 
					  PHOSH_LAYER_SURFACE_PROP_MARGIN_TOP,
 | 
				
			||||||
 | 
					  PHOSH_LAYER_SURFACE_PROP_MARGIN_BOTTOM,
 | 
				
			||||||
 | 
					  PHOSH_LAYER_SURFACE_PROP_MARGIN_LEFT,
 | 
				
			||||||
 | 
					  PHOSH_LAYER_SURFACE_PROP_MARGIN_RIGHT,
 | 
				
			||||||
  PHOSH_LAYER_SURFACE_PROP_LAYER_WIDTH,
 | 
					  PHOSH_LAYER_SURFACE_PROP_LAYER_WIDTH,
 | 
				
			||||||
  PHOSH_LAYER_SURFACE_PROP_LAYER_HEIGHT,
 | 
					  PHOSH_LAYER_SURFACE_PROP_LAYER_HEIGHT,
 | 
				
			||||||
 | 
					  PHOSH_LAYER_SURFACE_PROP_CONFIGURED_WIDTH,
 | 
				
			||||||
 | 
					  PHOSH_LAYER_SURFACE_PROP_CONFIGURED_HEIGHT,
 | 
				
			||||||
  PHOSH_LAYER_SURFACE_PROP_NAMESPACE,
 | 
					  PHOSH_LAYER_SURFACE_PROP_NAMESPACE,
 | 
				
			||||||
  PHOSH_LAYER_SURFACE_PROP_LAST_PROP
 | 
					  PHOSH_LAYER_SURFACE_PROP_LAST_PROP
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -50,7 +53,10 @@ typedef struct {
 | 
				
			|||||||
  guint layer;
 | 
					  guint layer;
 | 
				
			||||||
  gboolean kbd_interactivity;
 | 
					  gboolean kbd_interactivity;
 | 
				
			||||||
  gint exclusive_zone;
 | 
					  gint exclusive_zone;
 | 
				
			||||||
 | 
					  gint margin_top, margin_bottom;
 | 
				
			||||||
 | 
					  gint margin_left, margin_right;
 | 
				
			||||||
  gint width, height;
 | 
					  gint width, height;
 | 
				
			||||||
 | 
					  gint configured_width, configured_height;
 | 
				
			||||||
  gchar *namespace;
 | 
					  gchar *namespace;
 | 
				
			||||||
  struct zwlr_layer_shell_v1 *layer_shell;
 | 
					  struct zwlr_layer_shell_v1 *layer_shell;
 | 
				
			||||||
  struct wl_output *wl_output;
 | 
					  struct wl_output *wl_output;
 | 
				
			||||||
@ -65,10 +71,24 @@ static void layer_surface_configure(void                         *data,
 | 
				
			|||||||
                                    uint32_t                      height)
 | 
					                                    uint32_t                      height)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  PhoshLayerSurface *self = data;
 | 
					  PhoshLayerSurface *self = data;
 | 
				
			||||||
 | 
					  PhoshLayerSurfacePrivate *priv;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_return_if_fail (PHOSH_IS_LAYER_SURFACE (self));
 | 
				
			||||||
 | 
					  priv = phosh_layer_surface_get_instance_private (self);
 | 
				
			||||||
  gtk_window_resize (GTK_WINDOW (self), width, height);
 | 
					  gtk_window_resize (GTK_WINDOW (self), width, height);
 | 
				
			||||||
  zwlr_layer_surface_v1_ack_configure(surface, serial);
 | 
					  zwlr_layer_surface_v1_ack_configure(surface, serial);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (priv->configured_height != height) {
 | 
				
			||||||
 | 
					    priv->configured_height = height;
 | 
				
			||||||
 | 
					    g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_CONFIGURED_HEIGHT]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (priv->configured_width != width) {
 | 
				
			||||||
 | 
					    priv->configured_width = width;
 | 
				
			||||||
 | 
					    g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_CONFIGURED_WIDTH]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_debug("Configured %p", self);
 | 
				
			||||||
  g_signal_emit (self, signals[CONFIGURED], 0);
 | 
					  g_signal_emit (self, signals[CONFIGURED], 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -86,8 +106,8 @@ static void layer_surface_closed (void                         *data,
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct zwlr_layer_surface_v1_listener layer_surface_listener = {
 | 
					static struct zwlr_layer_surface_v1_listener layer_surface_listener = {
 | 
				
			||||||
	.configure = layer_surface_configure,
 | 
					    .configure = layer_surface_configure,
 | 
				
			||||||
	.closed = layer_surface_closed,
 | 
					    .closed = layer_surface_closed,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
@ -98,6 +118,7 @@ phosh_layer_surface_set_property (GObject      *object,
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  PhoshLayerSurface *self = PHOSH_LAYER_SURFACE (object);
 | 
					  PhoshLayerSurface *self = PHOSH_LAYER_SURFACE (object);
 | 
				
			||||||
  PhoshLayerSurfacePrivate *priv = phosh_layer_surface_get_instance_private (self);
 | 
					  PhoshLayerSurfacePrivate *priv = phosh_layer_surface_get_instance_private (self);
 | 
				
			||||||
 | 
					  gint width, height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  switch (property_id) {
 | 
					  switch (property_id) {
 | 
				
			||||||
  case PHOSH_LAYER_SURFACE_PROP_LAYER_SHELL:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_LAYER_SHELL:
 | 
				
			||||||
@ -113,16 +134,46 @@ phosh_layer_surface_set_property (GObject      *object,
 | 
				
			|||||||
    priv->layer = g_value_get_uint (value);
 | 
					    priv->layer = g_value_get_uint (value);
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case PHOSH_LAYER_SURFACE_PROP_KBD_INTERACTIVITY:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_KBD_INTERACTIVITY:
 | 
				
			||||||
    priv->kbd_interactivity = g_value_get_boolean (value);
 | 
					    phosh_layer_surface_set_kbd_interactivity (self, g_value_get_boolean (value));
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case PHOSH_LAYER_SURFACE_PROP_EXCLUSIVE_ZONE:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_EXCLUSIVE_ZONE:
 | 
				
			||||||
    priv->exclusive_zone = g_value_get_int (value);
 | 
					    phosh_layer_surface_set_exclusive_zone (self, g_value_get_int (value));
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_MARGIN_TOP:
 | 
				
			||||||
 | 
					    phosh_layer_surface_set_margins (self,
 | 
				
			||||||
 | 
					                                     g_value_get_int (value),
 | 
				
			||||||
 | 
					                                     priv->margin_right,
 | 
				
			||||||
 | 
					                                     priv->margin_bottom,
 | 
				
			||||||
 | 
					                                     priv->margin_left);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_MARGIN_BOTTOM:
 | 
				
			||||||
 | 
					    phosh_layer_surface_set_margins (self,
 | 
				
			||||||
 | 
					                                     priv->margin_top,
 | 
				
			||||||
 | 
					                                     priv->margin_right,
 | 
				
			||||||
 | 
					                                     g_value_get_int (value),
 | 
				
			||||||
 | 
					                                     priv->margin_left);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_MARGIN_LEFT:
 | 
				
			||||||
 | 
					    phosh_layer_surface_set_margins (self,
 | 
				
			||||||
 | 
					                                     priv->margin_top,
 | 
				
			||||||
 | 
					                                     priv->margin_right,
 | 
				
			||||||
 | 
					                                     priv->margin_bottom,
 | 
				
			||||||
 | 
					                                     g_value_get_int (value));
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_MARGIN_RIGHT:
 | 
				
			||||||
 | 
					    phosh_layer_surface_set_margins (self,
 | 
				
			||||||
 | 
					                                     priv->margin_top,
 | 
				
			||||||
 | 
					                                     g_value_get_int (value),
 | 
				
			||||||
 | 
					                                     priv->margin_bottom,
 | 
				
			||||||
 | 
					                                     priv->margin_left);
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case PHOSH_LAYER_SURFACE_PROP_LAYER_WIDTH:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_LAYER_WIDTH:
 | 
				
			||||||
    priv->width = g_value_get_uint (value);
 | 
					    width = g_value_get_uint (value);
 | 
				
			||||||
 | 
					    phosh_layer_surface_set_size(self, width, priv->height);
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case PHOSH_LAYER_SURFACE_PROP_LAYER_HEIGHT:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_LAYER_HEIGHT:
 | 
				
			||||||
    priv->height = g_value_get_uint (value);
 | 
					    height = g_value_get_uint (value);
 | 
				
			||||||
 | 
					    phosh_layer_surface_set_size(self, priv->width, height);
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case PHOSH_LAYER_SURFACE_PROP_NAMESPACE:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_NAMESPACE:
 | 
				
			||||||
    g_free (priv->namespace);
 | 
					    g_free (priv->namespace);
 | 
				
			||||||
@ -161,7 +212,19 @@ phosh_layer_surface_get_property (GObject    *object,
 | 
				
			|||||||
    g_value_set_boolean (value, priv->kbd_interactivity);
 | 
					    g_value_set_boolean (value, priv->kbd_interactivity);
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case PHOSH_LAYER_SURFACE_PROP_EXCLUSIVE_ZONE:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_EXCLUSIVE_ZONE:
 | 
				
			||||||
    g_value_set_boolean (value, priv->exclusive_zone);
 | 
					    g_value_set_int (value, priv->exclusive_zone);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_MARGIN_TOP:
 | 
				
			||||||
 | 
					    g_value_set_int (value, priv->margin_top);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_MARGIN_BOTTOM:
 | 
				
			||||||
 | 
					    g_value_set_int (value, priv->margin_bottom);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_MARGIN_LEFT:
 | 
				
			||||||
 | 
					    g_value_set_int (value, priv->margin_left);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_MARGIN_RIGHT:
 | 
				
			||||||
 | 
					    g_value_set_int (value, priv->margin_right);
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case PHOSH_LAYER_SURFACE_PROP_LAYER_WIDTH:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_LAYER_WIDTH:
 | 
				
			||||||
    g_value_set_uint (value, priv->width);
 | 
					    g_value_set_uint (value, priv->width);
 | 
				
			||||||
@ -169,6 +232,12 @@ phosh_layer_surface_get_property (GObject    *object,
 | 
				
			|||||||
  case PHOSH_LAYER_SURFACE_PROP_LAYER_HEIGHT:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_LAYER_HEIGHT:
 | 
				
			||||||
    g_value_set_uint (value, priv->height);
 | 
					    g_value_set_uint (value, priv->height);
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_CONFIGURED_WIDTH:
 | 
				
			||||||
 | 
					    g_value_set_uint (value, priv->configured_width);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case PHOSH_LAYER_SURFACE_PROP_CONFIGURED_HEIGHT:
 | 
				
			||||||
 | 
					    g_value_set_uint (value, priv->configured_height);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
  case PHOSH_LAYER_SURFACE_PROP_NAMESPACE:
 | 
					  case PHOSH_LAYER_SURFACE_PROP_NAMESPACE:
 | 
				
			||||||
    g_value_set_string (value, priv->namespace);
 | 
					    g_value_set_string (value, priv->namespace);
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
@ -221,6 +290,11 @@ on_phosh_layer_surface_mapped (PhoshLayerSurface *self, gpointer unused)
 | 
				
			|||||||
  zwlr_layer_surface_v1_set_exclusive_zone(priv->layer_surface, priv->exclusive_zone);
 | 
					  zwlr_layer_surface_v1_set_exclusive_zone(priv->layer_surface, priv->exclusive_zone);
 | 
				
			||||||
  zwlr_layer_surface_v1_set_size(priv->layer_surface, priv->width, priv->height);
 | 
					  zwlr_layer_surface_v1_set_size(priv->layer_surface, priv->width, priv->height);
 | 
				
			||||||
  zwlr_layer_surface_v1_set_anchor(priv->layer_surface, priv->anchor);
 | 
					  zwlr_layer_surface_v1_set_anchor(priv->layer_surface, priv->anchor);
 | 
				
			||||||
 | 
					  zwlr_layer_surface_v1_set_margin(priv->layer_surface,
 | 
				
			||||||
 | 
					                                   priv->margin_top,
 | 
				
			||||||
 | 
					                                   priv->margin_right,
 | 
				
			||||||
 | 
					                                   priv->margin_bottom,
 | 
				
			||||||
 | 
					                                   priv->margin_left);
 | 
				
			||||||
  zwlr_layer_surface_v1_set_keyboard_interactivity(priv->layer_surface, priv->kbd_interactivity);
 | 
					  zwlr_layer_surface_v1_set_keyboard_interactivity(priv->layer_surface, priv->kbd_interactivity);
 | 
				
			||||||
  zwlr_layer_surface_v1_add_listener(priv->layer_surface,
 | 
					  zwlr_layer_surface_v1_add_listener(priv->layer_surface,
 | 
				
			||||||
                                     &layer_surface_listener,
 | 
					                                     &layer_surface_listener,
 | 
				
			||||||
@ -262,6 +336,8 @@ phosh_layer_surface_constructed (GObject *object)
 | 
				
			|||||||
  g_signal_connect (self, "unmap",
 | 
					  g_signal_connect (self, "unmap",
 | 
				
			||||||
                    G_CALLBACK (on_phosh_layer_surface_unmapped),
 | 
					                    G_CALLBACK (on_phosh_layer_surface_unmapped),
 | 
				
			||||||
                    NULL);
 | 
					                    NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  G_OBJECT_CLASS (phosh_layer_surface_parent_class)->constructed (object);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -332,7 +408,7 @@ phosh_layer_surface_class_init (PhoshLayerSurfaceClass *klass)
 | 
				
			|||||||
      "Keyboard interactivity",
 | 
					      "Keyboard interactivity",
 | 
				
			||||||
      "Whether the surface interacts with the keyboard",
 | 
					      "Whether the surface interacts with the keyboard",
 | 
				
			||||||
      FALSE,
 | 
					      FALSE,
 | 
				
			||||||
      G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 | 
					      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  props[PHOSH_LAYER_SURFACE_PROP_EXCLUSIVE_ZONE] =
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_EXCLUSIVE_ZONE] =
 | 
				
			||||||
    g_param_spec_int (
 | 
					    g_param_spec_int (
 | 
				
			||||||
@ -342,7 +418,47 @@ phosh_layer_surface_class_init (PhoshLayerSurfaceClass *klass)
 | 
				
			|||||||
      -1,
 | 
					      -1,
 | 
				
			||||||
      G_MAXINT,
 | 
					      G_MAXINT,
 | 
				
			||||||
      0,
 | 
					      0,
 | 
				
			||||||
      G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 | 
					      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_MARGIN_LEFT] =
 | 
				
			||||||
 | 
					    g_param_spec_int (
 | 
				
			||||||
 | 
					      "margin-left",
 | 
				
			||||||
 | 
					      "Left margin",
 | 
				
			||||||
 | 
					      "Distance away from the left anchor point",
 | 
				
			||||||
 | 
					      G_MININT,
 | 
				
			||||||
 | 
					      G_MAXINT,
 | 
				
			||||||
 | 
					      0,
 | 
				
			||||||
 | 
					      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_MARGIN_RIGHT] =
 | 
				
			||||||
 | 
					    g_param_spec_int (
 | 
				
			||||||
 | 
					      "margin-right",
 | 
				
			||||||
 | 
					      "Right margin",
 | 
				
			||||||
 | 
					      "Distance away from the right anchor point",
 | 
				
			||||||
 | 
					      G_MININT,
 | 
				
			||||||
 | 
					      G_MAXINT,
 | 
				
			||||||
 | 
					      0,
 | 
				
			||||||
 | 
					      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_MARGIN_TOP] =
 | 
				
			||||||
 | 
					    g_param_spec_int (
 | 
				
			||||||
 | 
					      "margin-top",
 | 
				
			||||||
 | 
					      "Top margin",
 | 
				
			||||||
 | 
					      "Distance away from the top anchor point",
 | 
				
			||||||
 | 
					      G_MININT,
 | 
				
			||||||
 | 
					      G_MAXINT,
 | 
				
			||||||
 | 
					      0,
 | 
				
			||||||
 | 
					      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_MARGIN_BOTTOM] =
 | 
				
			||||||
 | 
					    g_param_spec_int (
 | 
				
			||||||
 | 
					      "margin-bottom",
 | 
				
			||||||
 | 
					      "Bottom margin",
 | 
				
			||||||
 | 
					      "Distance away from the bottom anchor point",
 | 
				
			||||||
 | 
					      G_MININT,
 | 
				
			||||||
 | 
					      G_MAXINT,
 | 
				
			||||||
 | 
					      0,
 | 
				
			||||||
 | 
					      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  props[PHOSH_LAYER_SURFACE_PROP_LAYER_WIDTH] =
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_LAYER_WIDTH] =
 | 
				
			||||||
    g_param_spec_uint (
 | 
					    g_param_spec_uint (
 | 
				
			||||||
@ -352,7 +468,7 @@ phosh_layer_surface_class_init (PhoshLayerSurfaceClass *klass)
 | 
				
			|||||||
      0,
 | 
					      0,
 | 
				
			||||||
      G_MAXUINT,
 | 
					      G_MAXUINT,
 | 
				
			||||||
      0,
 | 
					      0,
 | 
				
			||||||
      G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 | 
					      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  props[PHOSH_LAYER_SURFACE_PROP_LAYER_HEIGHT] =
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_LAYER_HEIGHT] =
 | 
				
			||||||
    g_param_spec_uint (
 | 
					    g_param_spec_uint (
 | 
				
			||||||
@ -362,7 +478,28 @@ phosh_layer_surface_class_init (PhoshLayerSurfaceClass *klass)
 | 
				
			|||||||
      0,
 | 
					      0,
 | 
				
			||||||
      G_MAXUINT,
 | 
					      G_MAXUINT,
 | 
				
			||||||
      0,
 | 
					      0,
 | 
				
			||||||
      G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 | 
					      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_CONFIGURED_WIDTH] =
 | 
				
			||||||
 | 
					    g_param_spec_uint (
 | 
				
			||||||
 | 
					      "configured-width",
 | 
				
			||||||
 | 
					      "Configured width",
 | 
				
			||||||
 | 
					      "The width of the layer surface set by the compositor",
 | 
				
			||||||
 | 
					      0,
 | 
				
			||||||
 | 
					      G_MAXUINT,
 | 
				
			||||||
 | 
					      0,
 | 
				
			||||||
 | 
					      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_CONFIGURED_HEIGHT] =
 | 
				
			||||||
 | 
					    g_param_spec_uint (
 | 
				
			||||||
 | 
					      "configured-height",
 | 
				
			||||||
 | 
					      "Configured height",
 | 
				
			||||||
 | 
					      "The height of the layer surface set by the compositor",
 | 
				
			||||||
 | 
					      0,
 | 
				
			||||||
 | 
					      G_MAXUINT,
 | 
				
			||||||
 | 
					      0,
 | 
				
			||||||
 | 
					      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  props[PHOSH_LAYER_SURFACE_PROP_NAMESPACE] =
 | 
					  props[PHOSH_LAYER_SURFACE_PROP_NAMESPACE] =
 | 
				
			||||||
    g_param_spec_string (
 | 
					    g_param_spec_string (
 | 
				
			||||||
@ -438,3 +575,148 @@ phosh_layer_surface_get_wl_surface(PhoshLayerSurface *self)
 | 
				
			|||||||
  priv = phosh_layer_surface_get_instance_private (self);
 | 
					  priv = phosh_layer_surface_get_instance_private (self);
 | 
				
			||||||
  return priv->wl_surface;
 | 
					  return priv->wl_surface;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * phosh_layer_surface_set_size:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Set the size of a layer surface. A value of '-1' indicates 'use old value'
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					phosh_layer_surface_set_size(PhoshLayerSurface *self, gint width, gint height)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  PhoshLayerSurfacePrivate *priv;
 | 
				
			||||||
 | 
					  gint old_width, old_height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_return_if_fail (PHOSH_IS_LAYER_SURFACE (self));
 | 
				
			||||||
 | 
					  priv = phosh_layer_surface_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (priv->height == height && priv->width == width)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  old_width = priv->width;
 | 
				
			||||||
 | 
					  old_height = priv->height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (width != -1)
 | 
				
			||||||
 | 
					    priv->width = width;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (height != -1)
 | 
				
			||||||
 | 
					    priv->height = height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (gtk_widget_get_mapped (GTK_WIDGET (self))) {
 | 
				
			||||||
 | 
					    zwlr_layer_surface_v1_set_size(priv->layer_surface, priv->width, priv->height);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (priv->height != old_height)
 | 
				
			||||||
 | 
					    g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_LAYER_HEIGHT]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (priv->width != old_width)
 | 
				
			||||||
 | 
					    g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_LAYER_WIDTH]);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * phosh_layer_surface_set_margins:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Set anchor margins of a layer surface.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					phosh_layer_surface_set_margins(PhoshLayerSurface *self, gint top, gint right, gint bottom, gint left)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  PhoshLayerSurfacePrivate *priv;
 | 
				
			||||||
 | 
					  gint old_top, old_bottom, old_left, old_right;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_return_if_fail (PHOSH_IS_LAYER_SURFACE (self));
 | 
				
			||||||
 | 
					  priv = phosh_layer_surface_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  old_top = priv->margin_top;
 | 
				
			||||||
 | 
					  old_left = priv->margin_left;
 | 
				
			||||||
 | 
					  old_right = priv->margin_right;
 | 
				
			||||||
 | 
					  old_bottom = priv->margin_bottom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (old_top == top && old_left == left && old_right == right && old_bottom == bottom)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  priv->margin_top = top;
 | 
				
			||||||
 | 
					  priv->margin_left = left;
 | 
				
			||||||
 | 
					  priv->margin_right = right;
 | 
				
			||||||
 | 
					  priv->margin_bottom = bottom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (priv->layer_surface)
 | 
				
			||||||
 | 
					    zwlr_layer_surface_v1_set_margin(priv->layer_surface, top, right, bottom, left);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (old_top != top)
 | 
				
			||||||
 | 
					    g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_MARGIN_TOP]);
 | 
				
			||||||
 | 
					  if (old_bottom != bottom)
 | 
				
			||||||
 | 
					    g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_MARGIN_BOTTOM]);
 | 
				
			||||||
 | 
					  if (old_left != left)
 | 
				
			||||||
 | 
					    g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_MARGIN_LEFT]);
 | 
				
			||||||
 | 
					  if (old_right != right)
 | 
				
			||||||
 | 
					    g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_MARGIN_RIGHT]);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * phosh_layer_surface_set_exclusive_zone:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Set exclusive zone of a layer surface.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					phosh_layer_surface_set_exclusive_zone(PhoshLayerSurface *self, gint zone)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  PhoshLayerSurfacePrivate *priv;
 | 
				
			||||||
 | 
					  gint old_zone;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_return_if_fail (PHOSH_IS_LAYER_SURFACE (self));
 | 
				
			||||||
 | 
					  priv = phosh_layer_surface_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  old_zone = priv->exclusive_zone;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (old_zone == zone)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  priv->exclusive_zone = zone;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (priv->layer_surface)
 | 
				
			||||||
 | 
					    zwlr_layer_surface_v1_set_exclusive_zone(priv->layer_surface, zone);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_EXCLUSIVE_ZONE]);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * phosh_layer_surface_set_keyboard_interactivity:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Set keyboard ineractivity a layer surface.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					phosh_layer_surface_set_kbd_interactivity (PhoshLayerSurface *self, gboolean interactivity)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  PhoshLayerSurfacePrivate *priv;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_return_if_fail (PHOSH_IS_LAYER_SURFACE (self));
 | 
				
			||||||
 | 
					  priv = phosh_layer_surface_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (priv->kbd_interactivity == interactivity)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  priv->kbd_interactivity = interactivity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (priv->layer_surface)
 | 
				
			||||||
 | 
					    zwlr_layer_surface_v1_set_keyboard_interactivity (priv->layer_surface, interactivity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_object_notify_by_pspec (G_OBJECT (self), props[PHOSH_LAYER_SURFACE_PROP_KBD_INTERACTIVITY]);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * phosh_layer_surface_wl_surface_commit:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Forces a commit of layer surface's state.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					phosh_layer_surface_wl_surface_commit (PhoshLayerSurface *self)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  PhoshLayerSurfacePrivate *priv;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_return_if_fail (PHOSH_IS_LAYER_SURFACE (self));
 | 
				
			||||||
 | 
					  priv = phosh_layer_surface_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (priv->wl_surface)
 | 
				
			||||||
 | 
					    wl_surface_commit (priv->wl_surface);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,6 @@ WARNING: this file is taken directly from phosh, with no modificaions apart from
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <gtk/gtk.h>
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
@ -39,3 +38,16 @@ GtkWidget *phosh_layer_surface_new (gpointer layer_shell,
 | 
				
			|||||||
                                    gpointer wl_output);
 | 
					                                    gpointer wl_output);
 | 
				
			||||||
struct     zwlr_layer_surface_v1 *phosh_layer_surface_get_layer_surface(PhoshLayerSurface *self);
 | 
					struct     zwlr_layer_surface_v1 *phosh_layer_surface_get_layer_surface(PhoshLayerSurface *self);
 | 
				
			||||||
struct     wl_surface            *phosh_layer_surface_get_wl_surface(PhoshLayerSurface *self);
 | 
					struct     wl_surface            *phosh_layer_surface_get_wl_surface(PhoshLayerSurface *self);
 | 
				
			||||||
 | 
					void                              phosh_layer_surface_set_size(PhoshLayerSurface *self,
 | 
				
			||||||
 | 
					                                                               gint width,
 | 
				
			||||||
 | 
					                                                               gint height);
 | 
				
			||||||
 | 
					void                              phosh_layer_surface_set_margins(PhoshLayerSurface *self,
 | 
				
			||||||
 | 
					                                                                  gint top,
 | 
				
			||||||
 | 
					                                                                  gint right,
 | 
				
			||||||
 | 
					                                                                  gint bottom,
 | 
				
			||||||
 | 
					                                                                  gint left);
 | 
				
			||||||
 | 
					void                              phosh_layer_surface_set_exclusive_zone(PhoshLayerSurface *self,
 | 
				
			||||||
 | 
					                                                                         gint zone);
 | 
				
			||||||
 | 
					void                              phosh_layer_surface_set_kbd_interactivity(PhoshLayerSurface *self,
 | 
				
			||||||
 | 
					                                                                            gboolean interactivity);
 | 
				
			||||||
 | 
					void                              phosh_layer_surface_wl_surface_commit (PhoshLayerSurface *self);
 | 
				
			||||||
 | 
				
			|||||||
@ -1,30 +0,0 @@
 | 
				
			|||||||
# Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
					 | 
				
			||||||
# Copyright (C) 2010-2011 Red Hat, Inc.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This library is free software; you can redistribute it and/or
 | 
					 | 
				
			||||||
# modify it under the terms of the GNU Lesser General Public License
 | 
					 | 
				
			||||||
# as published by the Free Software Foundation; either version 2 of
 | 
					 | 
				
			||||||
# the License, or (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This library is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 | 
				
			||||||
# Lesser General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU Lesser General Public
 | 
					 | 
				
			||||||
# License along with this library; if not, write to the Free Software
 | 
					 | 
				
			||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
					 | 
				
			||||||
# 02110-1301 USA
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
prefix=@prefix@
 | 
					 | 
				
			||||||
exec_prefix=@exec_prefix@
 | 
					 | 
				
			||||||
libdir=@libdir@
 | 
					 | 
				
			||||||
includedir=@includedir@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name: Eekboard
 | 
					 | 
				
			||||||
Description: A Library to Create Keyboard-like UI
 | 
					 | 
				
			||||||
URL: http://ueno.github.com/eekboard/
 | 
					 | 
				
			||||||
Version: @VERSION@
 | 
					 | 
				
			||||||
Requires: eek-@EEK_API_VERSION@
 | 
					 | 
				
			||||||
Libs: -L${libdir} -leekboard
 | 
					 | 
				
			||||||
Cflags: -I${includedir}/eekboard-@EEK_API_VERSION@
 | 
					 | 
				
			||||||
@ -41,12 +41,10 @@
 | 
				
			|||||||
#include "wayland.h"
 | 
					#include "wayland.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "eek/eek-xml-layout.h"
 | 
					#include "eek/eek-xml-layout.h"
 | 
				
			||||||
 | 
					#include "src/server-context-service.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "eekboard/eekboard-context-service.h"
 | 
					#include "eekboard/eekboard-context-service.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define CSW 640
 | 
					 | 
				
			||||||
#define CSH 480
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum {
 | 
					enum {
 | 
				
			||||||
    PROP_0, // Magic: without this, keyboard is not useable in g_object_notify
 | 
					    PROP_0, // Magic: without this, keyboard is not useable in g_object_notify
 | 
				
			||||||
    PROP_KEYBOARD,
 | 
					    PROP_KEYBOARD,
 | 
				
			||||||
@ -73,10 +71,6 @@ struct _EekboardContextServicePrivate {
 | 
				
			|||||||
    LevelKeyboard *keyboard; // currently used keyboard
 | 
					    LevelKeyboard *keyboard; // currently used keyboard
 | 
				
			||||||
    GHashTable *keyboard_hash; // a table of available keyboards, per layout
 | 
					    GHashTable *keyboard_hash; // a table of available keyboards, per layout
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: make use of repeating buttons
 | 
					 | 
				
			||||||
    guint repeat_timeout_id;
 | 
					 | 
				
			||||||
    gboolean repeat_triggered;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GSettings *settings;
 | 
					    GSettings *settings;
 | 
				
			||||||
    uint32_t hint;
 | 
					    uint32_t hint;
 | 
				
			||||||
    uint32_t purpose;
 | 
					    uint32_t purpose;
 | 
				
			||||||
@ -86,9 +80,10 @@ G_DEFINE_TYPE_WITH_PRIVATE (EekboardContextService, eekboard_context_service, G_
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static LevelKeyboard *
 | 
					static LevelKeyboard *
 | 
				
			||||||
eekboard_context_service_real_create_keyboard (EekboardContextService *self,
 | 
					eekboard_context_service_real_create_keyboard (EekboardContextService *self,
 | 
				
			||||||
                                               const gchar            *keyboard_type)
 | 
					                                               const gchar            *keyboard_type,
 | 
				
			||||||
 | 
					                                               enum squeek_arrangement_kind t)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    LevelKeyboard *keyboard = eek_xml_layout_real_create_keyboard(keyboard_type, self);
 | 
					    LevelKeyboard *keyboard = eek_xml_layout_real_create_keyboard(keyboard_type, self, t);
 | 
				
			||||||
    if (!keyboard) {
 | 
					    if (!keyboard) {
 | 
				
			||||||
        g_error("Failed to create a keyboard");
 | 
					        g_error("Failed to create a keyboard");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -135,7 +130,6 @@ eekboard_context_service_real_create_keyboard (EekboardContextService *self,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    strncpy(ptr, keymap_str, keyboard->keymap_len);
 | 
					    strncpy(ptr, keymap_str, keyboard->keymap_len);
 | 
				
			||||||
    munmap(ptr, keyboard->keymap_len);
 | 
					    munmap(ptr, keyboard->keymap_len);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    return keyboard;
 | 
					    return keyboard;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -213,26 +207,12 @@ static void
 | 
				
			|||||||
settings_get_layout(GSettings *settings, char **type, char **layout)
 | 
					settings_get_layout(GSettings *settings, char **type, char **layout)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    GVariant *inputs = g_settings_get_value(settings, "sources");
 | 
					    GVariant *inputs = g_settings_get_value(settings, "sources");
 | 
				
			||||||
    guint32 index;
 | 
					    // current layout is always first
 | 
				
			||||||
    g_settings_get(settings, "current", "u", &index);
 | 
					    g_variant_get_child(inputs, 0, "(ss)", type, layout);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    GVariantIter *iter;
 | 
					 | 
				
			||||||
    g_variant_get(inputs, "a(ss)", &iter);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for (unsigned i = 0;
 | 
					 | 
				
			||||||
         g_variant_iter_loop(iter, "(ss)", type, layout);
 | 
					 | 
				
			||||||
         i++) {
 | 
					 | 
				
			||||||
        if (i == index) {
 | 
					 | 
				
			||||||
            //printf("Found layout %s %s\n", *type, *layout);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    g_variant_iter_free(iter);
 | 
					 | 
				
			||||||
    g_variant_unref(inputs);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					void
 | 
				
			||||||
settings_update_layout(EekboardContextService *context)
 | 
					eekboard_context_service_update_layout(EekboardContextService *context, enum squeek_arrangement_kind t)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    g_autofree gchar *keyboard_type = NULL;
 | 
					    g_autofree gchar *keyboard_type = NULL;
 | 
				
			||||||
    g_autofree gchar *keyboard_layout = NULL;
 | 
					    g_autofree gchar *keyboard_layout = NULL;
 | 
				
			||||||
@ -257,24 +237,21 @@ settings_update_layout(EekboardContextService *context)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // generic part follows
 | 
					    // generic part follows
 | 
				
			||||||
    static guint keyboard_id = 0;
 | 
					    LevelKeyboard *keyboard = eekboard_context_service_real_create_keyboard(context, keyboard_layout, t);
 | 
				
			||||||
    LevelKeyboard *keyboard = g_hash_table_lookup(context->priv->keyboard_hash,
 | 
					 | 
				
			||||||
                                                GUINT_TO_POINTER(keyboard_id));
 | 
					 | 
				
			||||||
    // create a keyboard
 | 
					 | 
				
			||||||
    if (!keyboard) {
 | 
					 | 
				
			||||||
        keyboard = eekboard_context_service_real_create_keyboard(context, keyboard_layout);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        g_hash_table_insert (context->priv->keyboard_hash,
 | 
					 | 
				
			||||||
                             GUINT_TO_POINTER(keyboard_id),
 | 
					 | 
				
			||||||
                             keyboard);
 | 
					 | 
				
			||||||
        keyboard->id = keyboard_id;
 | 
					 | 
				
			||||||
        keyboard_id++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    // set as current
 | 
					    // set as current
 | 
				
			||||||
 | 
					    LevelKeyboard *previous_keyboard = context->priv->keyboard;
 | 
				
			||||||
    context->priv->keyboard = keyboard;
 | 
					    context->priv->keyboard = keyboard;
 | 
				
			||||||
    // TODO: this used to save the group, why?
 | 
					
 | 
				
			||||||
    //group = eek_element_get_group (EEK_ELEMENT(context->priv->keyboard));
 | 
					 | 
				
			||||||
    g_object_notify (G_OBJECT(context), "keyboard");
 | 
					    g_object_notify (G_OBJECT(context), "keyboard");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // replacing the keyboard above will cause the previous keyboard to get destroyed from the UI side (eek_gtk_keyboard_dispose)
 | 
				
			||||||
 | 
					    if (previous_keyboard) {
 | 
				
			||||||
 | 
					        level_keyboard_free(previous_keyboard);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void update_layout_and_type(EekboardContextService *context) {
 | 
				
			||||||
 | 
					    eekboard_context_service_update_layout(context, server_context_service_get_layout_type(context));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static gboolean
 | 
					static gboolean
 | 
				
			||||||
@ -285,7 +262,7 @@ settings_handle_layout_changed(GSettings *s,
 | 
				
			|||||||
    (void)keys;
 | 
					    (void)keys;
 | 
				
			||||||
    (void)n_keys;
 | 
					    (void)n_keys;
 | 
				
			||||||
    EekboardContextService *context = user_data;
 | 
					    EekboardContextService *context = user_data;
 | 
				
			||||||
    settings_update_layout(context);
 | 
					    update_layout_and_type(context);
 | 
				
			||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -299,7 +276,7 @@ eekboard_context_service_constructed (GObject *object)
 | 
				
			|||||||
    if (!context->virtual_keyboard) {
 | 
					    if (!context->virtual_keyboard) {
 | 
				
			||||||
        g_error("Programmer error: Failed to receive a virtual keyboard instance");
 | 
					        g_error("Programmer error: Failed to receive a virtual keyboard instance");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    settings_update_layout(context);
 | 
					    update_layout_and_type(context);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
@ -518,6 +495,6 @@ void eekboard_context_service_set_hint_purpose(EekboardContextService *context,
 | 
				
			|||||||
    if (priv->hint != hint || priv->purpose != purpose) {
 | 
					    if (priv->hint != hint || priv->purpose != purpose) {
 | 
				
			||||||
        priv->hint = hint;
 | 
					        priv->hint = hint;
 | 
				
			||||||
        priv->purpose = purpose;
 | 
					        priv->purpose = purpose;
 | 
				
			||||||
        settings_update_layout(context);
 | 
					        update_layout_and_type(context);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -105,6 +105,7 @@ void eekboard_context_service_set_keymap(EekboardContextService *context,
 | 
				
			|||||||
void eekboard_context_service_set_hint_purpose(EekboardContextService *context,
 | 
					void eekboard_context_service_set_hint_purpose(EekboardContextService *context,
 | 
				
			||||||
                                               uint32_t hint,
 | 
					                                               uint32_t hint,
 | 
				
			||||||
                                               uint32_t purpose);
 | 
					                                               uint32_t purpose);
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					eekboard_context_service_update_layout(EekboardContextService *context, enum squeek_arrangement_kind t);
 | 
				
			||||||
G_END_DECLS
 | 
					G_END_DECLS
 | 
				
			||||||
#endif  /* EEKBOARD_CONTEXT_SERVICE_H */
 | 
					#endif  /* EEKBOARD_CONTEXT_SERVICE_H */
 | 
				
			||||||
 | 
				
			|||||||
@ -131,7 +131,6 @@ emit_key_activated (EekboardContextService *manager,
 | 
				
			|||||||
*/
 | 
					*/
 | 
				
			||||||
    SeatEmitter emitter = {0};
 | 
					    SeatEmitter emitter = {0};
 | 
				
			||||||
    emitter.virtual_keyboard = manager->virtual_keyboard;
 | 
					    emitter.virtual_keyboard = manager->virtual_keyboard;
 | 
				
			||||||
    emitter.keymap = keyboard->keymap;
 | 
					 | 
				
			||||||
    update_modifier_info (&emitter);
 | 
					    update_modifier_info (&emitter);
 | 
				
			||||||
    send_fake_key (&emitter, keyboard, keycode, pressed, timestamp);
 | 
					    send_fake_key (&emitter, keyboard, keycode, pressed, timestamp);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,47 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/python
 | 
					 | 
				
			||||||
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
 | 
					 | 
				
			||||||
# Copyright (C) 2011 Red Hat, Inc.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
					 | 
				
			||||||
# General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see
 | 
					 | 
				
			||||||
# <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import eekboard
 | 
					 | 
				
			||||||
import glib
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class SimpleClient(object):
 | 
					 | 
				
			||||||
    def __init__(self):
 | 
					 | 
				
			||||||
        client = eekboard.Client()
 | 
					 | 
				
			||||||
        self.__context = client.create_context('simple-client')
 | 
					 | 
				
			||||||
        client.push_context(self.__context)
 | 
					 | 
				
			||||||
        keyboard_id = self.__context.add_keyboard('us')
 | 
					 | 
				
			||||||
        self.__context.set_keyboard(keyboard_id)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __key_pressed_cb(self, c, keyname, symbol, modifiers):
 | 
					 | 
				
			||||||
        print (keyname, symbol, modifiers)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __notify_visible_cb(self, c, p, mainloop):
 | 
					 | 
				
			||||||
        if not c.props.visible:
 | 
					 | 
				
			||||||
            mainloop.quit()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def run(self):
 | 
					 | 
				
			||||||
        mainloop = glib.MainLoop()
 | 
					 | 
				
			||||||
        self.__context.connect('key-pressed', self.__key_pressed_cb)
 | 
					 | 
				
			||||||
        self.__context.connect('notify::visible', self.__notify_visible_cb,
 | 
					 | 
				
			||||||
                               mainloop)
 | 
					 | 
				
			||||||
        self.__context.show_keyboard();
 | 
					 | 
				
			||||||
        mainloop.run()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == '__main__':
 | 
					 | 
				
			||||||
    client = SimpleClient()
 | 
					 | 
				
			||||||
    client.run()
 | 
					 | 
				
			||||||
@ -1,29 +1,10 @@
 | 
				
			|||||||
extern crate rs;
 | 
					extern crate rs;
 | 
				
			||||||
extern crate xkbcommon;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use rs::tests::check_builtin_layout;
 | 
				
			||||||
use std::env;
 | 
					use std::env;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use rs::data::{ Layout, LoadError };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use xkbcommon::xkb;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fn check_layout(name: &str) {
 | 
					 | 
				
			||||||
    let layout = Layout::from_resource(name)
 | 
					 | 
				
			||||||
        .and_then(|layout| layout.build().map_err(LoadError::BadKeyMap))
 | 
					 | 
				
			||||||
        .expect("layout broken");
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    let context = xkb::Context::new(xkb::CONTEXT_NO_FLAGS);
 | 
					 | 
				
			||||||
    xkb::Keymap::new_from_string(
 | 
					 | 
				
			||||||
        &context,
 | 
					 | 
				
			||||||
        layout.keymap_str
 | 
					 | 
				
			||||||
            .clone()
 | 
					 | 
				
			||||||
            .into_string().expect("Failed to decode keymap string"),
 | 
					 | 
				
			||||||
        xkb::KEYMAP_FORMAT_TEXT_V1,
 | 
					 | 
				
			||||||
        xkb::KEYMAP_COMPILE_NO_FLAGS,
 | 
					 | 
				
			||||||
    ).expect("Failed to create keymap");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fn main() -> () {
 | 
					fn main() -> () {
 | 
				
			||||||
    check_layout(env::args().nth(1).expect("No argument given").as_str());
 | 
					    check_builtin_layout(
 | 
				
			||||||
 | 
					        env::args().nth(1).expect("No argument given").as_str()
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								meson.build
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								meson.build
									
									
									
									
									
								
							@ -1,7 +1,7 @@
 | 
				
			|||||||
project(
 | 
					project(
 | 
				
			||||||
    'squeekboard',
 | 
					    'squeekboard',
 | 
				
			||||||
    'c', 'rust',
 | 
					    'c', 'rust',
 | 
				
			||||||
    version: '1.2.1',
 | 
					    version: '1.4.0',
 | 
				
			||||||
    license: 'GPLv3',
 | 
					    license: 'GPLv3',
 | 
				
			||||||
    meson_version: '>=0.51.0',
 | 
					    meson_version: '>=0.51.0',
 | 
				
			||||||
    default_options: [
 | 
					    default_options: [
 | 
				
			||||||
@ -18,6 +18,7 @@ add_project_arguments(
 | 
				
			|||||||
    '-Werror=maybe-uninitialized',
 | 
					    '-Werror=maybe-uninitialized',
 | 
				
			||||||
    '-Werror=missing-field-initializers',
 | 
					    '-Werror=missing-field-initializers',
 | 
				
			||||||
    '-Werror=incompatible-pointer-types',
 | 
					    '-Werror=incompatible-pointer-types',
 | 
				
			||||||
 | 
					    '-Werror=int-conversion',
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  language: 'c'
 | 
					  language: 'c'
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@ -32,6 +33,11 @@ endif
 | 
				
			|||||||
if get_option('buildtype') != 'plain'
 | 
					if get_option('buildtype') != 'plain'
 | 
				
			||||||
    add_project_arguments('-fstack-protector-strong', language: 'c')
 | 
					    add_project_arguments('-fstack-protector-strong', language: 'c')
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					if get_option('buildtype') == 'release'
 | 
				
			||||||
 | 
					    cargo_build_flags = ['--release'] # for artifacts
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    cargo_build_flags = []
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
prefix = get_option('prefix')
 | 
					prefix = get_option('prefix')
 | 
				
			||||||
datadir = join_paths(prefix, get_option('datadir'))
 | 
					datadir = join_paths(prefix, get_option('datadir'))
 | 
				
			||||||
@ -53,12 +59,12 @@ summary = [
 | 
				
			|||||||
]
 | 
					]
 | 
				
			||||||
message('\n'.join(summary))
 | 
					message('\n'.join(summary))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cargo = find_program('cargo')
 | 
					dep_cargo = find_program('cargo')
 | 
				
			||||||
cargo_script = find_program('cargo.sh')
 | 
					cargo_script = find_program('cargo.sh')
 | 
				
			||||||
 | 
					cargo_build = find_program('cargo_build.sh')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
subdir('data')
 | 
					subdir('data')
 | 
				
			||||||
subdir('protocols')
 | 
					subdir('protocols')
 | 
				
			||||||
subdir('eek')
 | 
					subdir('eek')
 | 
				
			||||||
subdir('src')
 | 
					subdir('src')
 | 
				
			||||||
subdir('po')
 | 
					 | 
				
			||||||
subdir('tests')
 | 
					subdir('tests')
 | 
				
			||||||
 | 
				
			|||||||
@ -1,2 +0,0 @@
 | 
				
			|||||||
ja
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ -1,8 +0,0 @@
 | 
				
			|||||||
eekboard/eekboard-context-service.c
 | 
					 | 
				
			||||||
eekboard/eekboard-service.c
 | 
					 | 
				
			||||||
src/server-service.c
 | 
					 | 
				
			||||||
src/server-context-service.c
 | 
					 | 
				
			||||||
src/server-main.c
 | 
					 | 
				
			||||||
src/client.c
 | 
					 | 
				
			||||||
src/client-main.c
 | 
					 | 
				
			||||||
[type: gettext/glade]src/preferences-dialog.ui
 | 
					 | 
				
			||||||
@ -1,7 +0,0 @@
 | 
				
			|||||||
eek/eek-element.c
 | 
					 | 
				
			||||||
eek/eek-container.c
 | 
					 | 
				
			||||||
eek/eek-key.c
 | 
					 | 
				
			||||||
eek/eek-keyboard.c
 | 
					 | 
				
			||||||
eek/eek-section.c
 | 
					 | 
				
			||||||
eekboard/eekboard-client.c
 | 
					 | 
				
			||||||
eekboard/eekboard-context.c
 | 
					 | 
				
			||||||
							
								
								
									
										95
									
								
								po/ja.po
									
									
									
									
									
								
							
							
						
						
									
										95
									
								
								po/ja.po
									
									
									
									
									
								
							@ -1,95 +0,0 @@
 | 
				
			|||||||
# Japanese translations for eekboard package
 | 
					 | 
				
			||||||
# eekboard パッケージに対する英訳.
 | 
					 | 
				
			||||||
# Copyright (C) 2010-2011 Daiki Ueno <ueno@unixuser.org>
 | 
					 | 
				
			||||||
# This file is distributed under the same license as the eekboard package.
 | 
					 | 
				
			||||||
# Daiki Ueno <ueno@unixuser.org>, 2010.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
"Project-Id-Version: eekboard 0.90.2\n"
 | 
					 | 
				
			||||||
"Report-Msgid-Bugs-To: \n"
 | 
					 | 
				
			||||||
"POT-Creation-Date: 2011-02-25 13:13+0900\n"
 | 
					 | 
				
			||||||
"PO-Revision-Date: 2011-02-25 13:14+0900\n"
 | 
					 | 
				
			||||||
"Last-Translator: Daiki Ueno <ueno@unixuser.org>\n"
 | 
					 | 
				
			||||||
"Language-Team: Japanese\n"
 | 
					 | 
				
			||||||
"Language: \n"
 | 
					 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					 | 
				
			||||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
					 | 
				
			||||||
"Content-Transfer-Encoding: 8bit\n"
 | 
					 | 
				
			||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/server-context.c:216
 | 
					 | 
				
			||||||
msgid "Keyboard"
 | 
					 | 
				
			||||||
msgstr "キーボード"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:41 ../src/desktop-client-main.c:41
 | 
					 | 
				
			||||||
msgid "Connect to the system bus"
 | 
					 | 
				
			||||||
msgstr "システムバスに接続"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:43 ../src/desktop-client-main.c:43
 | 
					 | 
				
			||||||
msgid "Connect to the session bus"
 | 
					 | 
				
			||||||
msgstr "セッションバスに接続"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:45 ../src/desktop-client-main.c:45
 | 
					 | 
				
			||||||
msgid "Connect to the given D-Bus address"
 | 
					 | 
				
			||||||
msgstr "与えられた D-Bus アドレスに接続"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:47
 | 
					 | 
				
			||||||
msgid "Upload keyboard description from an XML file"
 | 
					 | 
				
			||||||
msgstr "XML ファイルから読み込んだキーボード記述をアップロード"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:49
 | 
					 | 
				
			||||||
msgid "Set group of the keyboard"
 | 
					 | 
				
			||||||
msgstr "キーボードのグループを設定"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:51
 | 
					 | 
				
			||||||
msgid "Show keyboard"
 | 
					 | 
				
			||||||
msgstr "キーボードを表示"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:53
 | 
					 | 
				
			||||||
msgid "Hide keyboard"
 | 
					 | 
				
			||||||
msgstr "キーボードを隠す"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:55
 | 
					 | 
				
			||||||
msgid "Press key"
 | 
					 | 
				
			||||||
msgstr "キーを押す"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:57
 | 
					 | 
				
			||||||
msgid "Release key"
 | 
					 | 
				
			||||||
msgstr "キーを離す"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/client-main.c:59
 | 
					 | 
				
			||||||
msgid "Listen events"
 | 
					 | 
				
			||||||
msgstr "イベントの通知を受ける"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/desktop-client-main.c:48
 | 
					 | 
				
			||||||
msgid "Listen focus change events with AT-SPI"
 | 
					 | 
				
			||||||
msgstr "AT-SPI によるフォーカス変更イベントの通知を受ける"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/desktop-client-main.c:50
 | 
					 | 
				
			||||||
msgid "Listen keystroke events with AT-SPI"
 | 
					 | 
				
			||||||
msgstr "AT-SPI による打鍵イベントの通知を受ける"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/xml-main.c:46
 | 
					 | 
				
			||||||
msgid "Show the keyboard loaded from an XML file"
 | 
					 | 
				
			||||||
msgstr "XML ファイルから読み込んだキーボードを表示"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/xml-main.c:48
 | 
					 | 
				
			||||||
msgid "Output the current layout into an XML file"
 | 
					 | 
				
			||||||
msgstr "現在のレイアウトを XML ファイルに出力"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/xml-main.c:50
 | 
					 | 
				
			||||||
msgid "List configuration items for given spec"
 | 
					 | 
				
			||||||
msgstr "与えられたスペックのための設定項目を一覧"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/xml-main.c:52
 | 
					 | 
				
			||||||
msgid "Specify model"
 | 
					 | 
				
			||||||
msgstr "モデルを指定"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/xml-main.c:54
 | 
					 | 
				
			||||||
msgid "Specify layouts"
 | 
					 | 
				
			||||||
msgstr "レイアウトを指定"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: ../src/xml-main.c:56
 | 
					 | 
				
			||||||
msgid "Specify options"
 | 
					 | 
				
			||||||
msgstr "オプションを指定"
 | 
					 | 
				
			||||||
@ -1,9 +0,0 @@
 | 
				
			|||||||
i18n.gettext('squeekboard',
 | 
					 | 
				
			||||||
    preset: 'glib',
 | 
					 | 
				
			||||||
    args: [
 | 
					 | 
				
			||||||
        '--copyright-holder=Purism SPC',
 | 
					 | 
				
			||||||
        '--package-name=Squeekboard',
 | 
					 | 
				
			||||||
        '--package-version=' + meson.project_version(),
 | 
					 | 
				
			||||||
        '--msgid-bugs-address=dorota.czaplejewicz@puri.sm'
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user