Compare commits
	
		
			347 Commits
		
	
	
		
			3.27.1
			...
			gnome-3-28
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 20e7dd31a8 | ||
|   | ac3738f4be | ||
|   | b48e95cba2 | ||
|   | 5ccf92e804 | ||
|   | 2040c380bd | ||
|   | 4e22989f07 | ||
|   | cfb92ad392 | ||
|   | f87b9f374a | ||
|   | 2c549bfbbe | ||
|   | f597a0a11c | ||
|   | 3f35ad0cbf | ||
|   | bd3227e23f | ||
|   | 04f847a3c2 | ||
|   | 41fe2d2c01 | ||
|   | 161beb71eb | ||
|   | 13ec3169a6 | ||
|   | 8702d6647b | ||
|   | 5703a25e2b | ||
|   | 09fbb4a127 | ||
|   | 4c7b20e584 | ||
|   | b3045cb964 | ||
|   | c41175af45 | ||
|   | 7b1544a7a2 | ||
|   | a0f1ac87e9 | ||
|   | 1045b35c8b | ||
|   | 24cdcc56da | ||
|   | 1b28cdfbf4 | ||
|   | a73294312f | ||
|   | 5e7a7e31a1 | ||
|   | 8111286463 | ||
|   | 06c6ecc15b | ||
|   | 36f9dcd2bd | ||
|   | 219118e633 | ||
|   | 1e929357e0 | ||
|   | e7463e38ca | ||
|   | 420c1cbfd1 | ||
|   | d53bd98532 | ||
|   | 128a501b9a | ||
|   | b29e243fec | ||
|   | fa2ddcc52f | ||
|   | fbf194f6a1 | ||
|   | 5610a2435d | ||
|   | a5b36fc7f4 | ||
|   | 923d80bba8 | ||
|   | 9e196d2765 | ||
|   | 94897492be | ||
|   | 6baf82eb83 | ||
|   | 65d27aaa43 | ||
|   | 176aaa4a97 | ||
|   | 5ae5811155 | ||
|   | e027af9548 | ||
|   | 73649a0d6a | ||
|   | 7dbcd26619 | ||
|   | f30ec4a4c8 | ||
|   | c04289853f | ||
|   | b72b773d87 | ||
|   | da7cd2807f | ||
|   | 20373ba64e | ||
|   | 025f6eb68e | ||
|   | dc5df5c4c9 | ||
|   | 81db908339 | ||
|   | 706a2259b8 | ||
|   | e94af71430 | ||
|   | a662e7bb87 | ||
|   | 0b82388c49 | ||
|   | b359b937e9 | ||
|   | 98fb7c33f2 | ||
|   | 4dfc2e0fd1 | ||
|   | 9152d3a286 | ||
|   | ba33a05dd2 | ||
|   | ddb309815c | ||
|   | 6a796675bd | ||
|   | d08497414f | ||
|   | 82886b7ee8 | ||
|   | dca43c7b24 | ||
|   | af50a7829f | ||
|   | 67cb02d46a | ||
|   | 721ce54037 | ||
|   | 445eed40a7 | ||
|   | fddd122956 | ||
|   | df1b46eee2 | ||
|   | bf318df7f3 | ||
|   | 2a2f3c981e | ||
|   | 8e5eab0498 | ||
|   | 6ed21e1ce0 | ||
|   | 9c51c87d8c | ||
|   | db2245d60b | ||
|   | f26cc3ac23 | ||
|   | 02c5b4b947 | ||
|   | df57829ea1 | ||
|   | da96408098 | ||
|   | 4b2e0247af | ||
|   | 2c617e5a3a | ||
|   | 4ff7e84c51 | ||
|   | 9f76b6e4a2 | ||
|   | 0ac0f7e85b | ||
|   | 73b00ff1a7 | ||
|   | a52597ac5b | ||
|   | 9a2597f80b | ||
|   | e1ed4b25e1 | ||
|   | c70b18764b | ||
|   | 4398516520 | ||
|   | 220514d10e | ||
|   | 18312d9ccd | ||
|   | 234b1441e4 | ||
|   | e909db5848 | ||
|   | 702338bc7d | ||
|   | 7c9dbc66d9 | ||
|   | 0d031dc20f | ||
|   | b476e851b7 | ||
|   | a27be6a540 | ||
|   | 4b6a57fabe | ||
|   | 92758890bb | ||
|   | 5b10d157fe | ||
|   | 5cc42b18b0 | ||
|   | cb4252e888 | ||
|   | 09d3cdb023 | ||
|   | 71515a8a11 | ||
|   | 11ca8dd54f | ||
|   | e00f22ebe6 | ||
|   | 13390543b0 | ||
|   | de95ced92c | ||
|   | f6a08472a0 | ||
|   | 9f7b101437 | ||
|   | 9c0707d4dc | ||
|   | 78a92fb6be | ||
|   | 01509cf1a5 | ||
|   | 61e9f51274 | ||
|   | 201bd9d42e | ||
|   | 8a78f08f6c | ||
|   | a5e54f9712 | ||
|   | 526834e39b | ||
|   | bdde2476d2 | ||
|   | 3171f9debe | ||
|   | 0e2aeac5f9 | ||
|   | 788fb5547c | ||
|   | c4d2c0ee64 | ||
|   | 977686a77a | ||
|   | 44b29f210c | ||
|   | 36c7d65ccf | ||
|   | b81d24fdb4 | ||
|   | bfdbee8115 | ||
|   | 4a17c8f4a9 | ||
|   | d4f67a7d42 | ||
|   | d5769ae409 | ||
|   | f356b61e5a | ||
|   | 398768dcbd | ||
|   | 272d5b6e4a | ||
|   | a479aa2594 | ||
|   | f48d620ac5 | ||
|   | 0684b42f67 | ||
|   | 190a31dd5f | ||
|   | cccfc7faca | ||
|   | 5e9e4f8c73 | ||
|   | b28e48094b | ||
|   | 01bad21704 | ||
|   | aab9a20b6a | ||
|   | 201c5b23f3 | ||
|   | b79e11bef8 | ||
|   | 81dfcb85ca | ||
|   | c8e69a2154 | ||
|   | 3ee50adad9 | ||
|   | d1386ee8e4 | ||
|   | 6b994602d5 | ||
|   | 00039bbb47 | ||
|   | 0195b2f7c0 | ||
|   | adc60f3212 | ||
|   | 579f59816f | ||
|   | 9e0df3c5c6 | ||
|   | c6b14ef97e | ||
|   | 59e535244f | ||
|   | 720b9dd3d2 | ||
|   | 60df5b4381 | ||
|   | 94a4dc4576 | ||
|   | dbda223858 | ||
|   | 822875d5c3 | ||
|   | b11b28b83b | ||
|   | ea0770ae22 | ||
|   | bdc9f293be | ||
|   | 922d73a09b | ||
|   | 46292fbdc5 | ||
|   | 3b1330880f | ||
|   | 213e38c2ef | ||
|   | 76f09b1e49 | ||
|   | cff0b81f32 | ||
|   | 23d6c4dcc0 | ||
|   | 66c86109dd | ||
|   | 2e45be96b6 | ||
|   | 5d1626aba1 | ||
|   | b7f083b1da | ||
|   | 2bce1f1510 | ||
|   | 1683f4953e | ||
|   | 1b2c67a726 | ||
|   | e1d9bdbbd6 | ||
|   | 58827ba36d | ||
|   | 9ef1bc7273 | ||
|   | a347ed9912 | ||
|   | 99d32d2add | ||
|   | 2d03e1974a | ||
|   | 07cae5377a | ||
|   | 436cac4134 | ||
|   | 117fcc9743 | ||
|   | 6d969250ca | ||
|   | d68d1d1371 | ||
|   | 7d8b9b257a | ||
|   | f237e42737 | ||
|   | ca095acd34 | ||
|   | 630c70f13c | ||
|   | ebb39bcbe2 | ||
|   | 9cf2ec8bd2 | ||
|   | 5f6745cad0 | ||
|   | d8fd7b5a44 | ||
|   | f8abe073eb | ||
|   | 0608413b96 | ||
|   | 7f8a1ec1fb | ||
|   | e859fc8f16 | ||
|   | 2f9b0f8820 | ||
|   | d66fcb60b1 | ||
|   | 2937cd7e77 | ||
|   | c62e7a6a82 | ||
|   | 92f1aec3dd | ||
|   | bc4462cd0c | ||
|   | 1ce5ed8685 | ||
|   | 433b28b223 | ||
|   | 3fe45e29e4 | ||
|   | fc5b1591ad | ||
|   | d63c0e277c | ||
|   | 06f790d86c | ||
|   | a3918d8c38 | ||
|   | 5122b06839 | ||
|   | f2d12e22b5 | ||
|   | a647445b95 | ||
|   | 9dbe10889b | ||
|   | 5f6aace8aa | ||
|   | f2e2af962d | ||
|   | 6f0c187cf4 | ||
|   | d3a3b7f514 | ||
|   | 80ad471812 | ||
|   | 0206a579c2 | ||
|   | 86b853b23a | ||
|   | cd0af33947 | ||
|   | 0b51ead004 | ||
|   | d6107a60e4 | ||
|   | 194040dcb2 | ||
|   | 8fdf47ea5b | ||
|   | 82cecf2e36 | ||
|   | d7f8a39023 | ||
|   | 083d11a032 | ||
|   | e0852e5991 | ||
|   | 5cec4ae670 | ||
|   | e4ee944d8d | ||
|   | 70bc94946f | ||
|   | 8c3f5b615f | ||
|   | d1bebba77a | ||
|   | 83accce24e | ||
|   | d86b62d1b7 | ||
|   | a2303c5272 | ||
|   | e0910c0f7c | ||
|   | 5b1e705561 | ||
|   | d93037c05e | ||
|   | 73c7441279 | ||
|   | 5914f225a2 | ||
|   | 774930f1a1 | ||
|   | 3dd3c1ac34 | ||
|   | 40db4a6795 | ||
|   | 7fd8fa3478 | ||
|   | 33c3ed68fd | ||
|   | a1ce0da9e7 | ||
|   | 52a779e432 | ||
|   | 6795fb0bd6 | ||
|   | 7544bba0c1 | ||
|   | 2d79ab6c5c | ||
|   | fd034f3724 | ||
|   | 8502be66fa | ||
|   | 626bbeffbf | ||
|   | 4a3c610d70 | ||
|   | bc9e5a4252 | ||
|   | e09f8c87e8 | ||
|   | 9ad7f59cdb | ||
|   | 6e74f987ec | ||
|   | 8c8a7f089f | ||
|   | 9b6a931b43 | ||
|   | c31bd67538 | ||
|   | 5297e86591 | ||
|   | 1d3154a89e | ||
|   | fed5657b40 | ||
|   | 53f4d12566 | ||
|   | 5d20516330 | ||
|   | 69da686fa9 | ||
|   | 35eac697c1 | ||
|   | 705915cd31 | ||
|   | cf23490c37 | ||
|   | d5f081a108 | ||
|   | f2917968ea | ||
|   | 16a1c35e28 | ||
|   | baacd216dd | ||
|   | d71af5e579 | ||
|   | bc5be10d78 | ||
|   | f91fbd7728 | ||
|   | f40ad89c9f | ||
|   | 723c49a8b7 | ||
|   | 3f3e514ff2 | ||
|   | aab7656d88 | ||
|   | 45e756f247 | ||
|   | 027a08804a | ||
|   | e64a482972 | ||
|   | eb4cd57aa2 | ||
|   | 94b96f8d97 | ||
|   | 989c7bf27e | ||
|   | 77ec6a8ea6 | ||
|   | fb9db4e171 | ||
|   | 54013182d4 | ||
|   | 7571f0d59e | ||
|   | 90534afc20 | ||
|   | 29987ae033 | ||
|   | a29ceb31dd | ||
|   | 74683b7ef7 | ||
|   | 6c655a6c71 | ||
|   | 13fdaa80bf | ||
|   | 6e3178d5b6 | ||
|   | ca367e4e26 | ||
|   | 10c602fe95 | ||
|   | ecd9fba514 | ||
|   | 71585f37e4 | ||
|   | 99e53a68b9 | ||
|   | 69e22f849e | ||
|   | 9bad2182dd | ||
|   | 32b2639052 | ||
|   | 35a9c3ec86 | ||
|   | a46af9edf0 | ||
|   | 9dc977e324 | ||
|   | cdc212ff6e | ||
|   | c53557b4c6 | ||
|   | 1af65c616a | ||
|   | feed029ae4 | ||
|   | 93925c99b4 | ||
|   | e765e684c3 | ||
|   | eecbd4dd42 | ||
|   | fa276a3349 | ||
|   | 100d6a7fa7 | ||
|   | 9537bb276b | ||
|   | 891bc45e36 | ||
|   | f90b225eaa | ||
|   | f9569912df | ||
|   | 29eefc06d7 | ||
|   | aa0858529e | ||
|   | fb3070981c | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -8,6 +8,7 @@ ChangeLog | ||||
| INSTALL | ||||
| aclocal.m4 | ||||
| autom4te.cache | ||||
| data/.osk-layout-workbench | ||||
| data/org.gnome.Shell.desktop | ||||
| data/org.gnome.Shell.desktop.in | ||||
| data/gnome-shell-extension-prefs.desktop | ||||
|   | ||||
							
								
								
									
										5
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,3 @@ | ||||
| [submodule "data/theme/gnome-shell-sass"] | ||||
| 	path = data/theme/gnome-shell-sass | ||||
| 	url = https://git.gnome.org/browse/gnome-shell-sass | ||||
| [submodule "subprojects/gvc"] | ||||
| 	path = subprojects/gvc | ||||
| 	url = https://git.gnome.org/browse/libgnome-volume-control | ||||
| 	url = https://gitlab.gnome.org/GNOME/libgnome-volume-control.git | ||||
|   | ||||
							
								
								
									
										30
									
								
								HACKING
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								HACKING
									
									
									
									
									
								
							| @@ -136,13 +136,13 @@ GObjects, although this feature isn't used very often in the Shell itself. | ||||
|         Name: 'IconLabelMenuItem', | ||||
|         Extends: PopupMenu.PopupMenuBaseItem, | ||||
|  | ||||
|         _init: function(icon, label) { | ||||
|         _init(icon, label) { | ||||
|             this.parent({ reactive: false }); | ||||
|             this.actor.add_child(icon); | ||||
|             this.actor.add_child(label); | ||||
|         }, | ||||
|  | ||||
|         open: function() { | ||||
|         open() { | ||||
|             log("menu opened!"); | ||||
|         } | ||||
|     }); | ||||
| @@ -173,15 +173,15 @@ you to inherit from a type to use it, you can do so: | ||||
|         Name: 'MyClutterActor', | ||||
|         Extends: Clutter.Actor, | ||||
|  | ||||
|         vfunc_get_preferred_width: function(actor, forHeight) { | ||||
|         vfunc_get_preferred_width(actor, forHeight) { | ||||
|              return [100, 100]; | ||||
|         }, | ||||
|  | ||||
|         vfunc_get_preferred_height: function(actor, forWidth) { | ||||
|         vfunc_get_preferred_height(actor, forWidth) { | ||||
|              return [100, 100]; | ||||
|         }, | ||||
|  | ||||
|         vfunc_paint: function(actor) { | ||||
|         vfunc_paint(actor) { | ||||
|              let alloc = this.get_allocation_box(); | ||||
|              Cogl.set_source_color4ub(255, 0, 0, 255); | ||||
|              Cogl.rectangle(alloc.x1, alloc.y1, | ||||
| @@ -218,14 +218,14 @@ the actor itself: | ||||
|     var MyClass = new Lang.Class({ | ||||
|         Name: 'MyClass', | ||||
|  | ||||
|         _init: function() { | ||||
|         _init() { | ||||
|             this.actor = new St.Button({ text: "This is a button" }); | ||||
|             this.actor._delegate = this; | ||||
|  | ||||
|             this.actor.connect('clicked', Lang.bind(this, this._onClicked)); | ||||
|             this.actor.connect('clicked', this._onClicked.bind(this)); | ||||
|         }, | ||||
|  | ||||
|         _onClicked: function(actor) { | ||||
|         _onClicked(actor) { | ||||
|             actor.set_label("You clicked the button!"); | ||||
|         } | ||||
|     }); | ||||
| @@ -252,11 +252,13 @@ invoked, not to the value of this where the closure is created, because "this" | ||||
| is a keyword with a value passed in at function invocation time, it is not a | ||||
| variable that can be captured in closures. | ||||
|  | ||||
| All closures should be wrapped with a Lang.bind. | ||||
| All closures should be wrapped with Function.prototype.bind or use arrow | ||||
| notation. | ||||
|  | ||||
|     const Lang = imports.lang; | ||||
|  | ||||
|     let closure = Lang.bind(this, function() { this._fnorbate(); }); | ||||
|     let closure1 = () => { this._fnorbate(); }; | ||||
|     let closure2 = this._fnorbate.bind(this); | ||||
|  | ||||
| A more realistic example would be connecting to a signal on a method of a | ||||
| prototype: | ||||
| @@ -265,12 +267,12 @@ prototype: | ||||
|     const FnorbLib = imports.fborbLib; | ||||
|  | ||||
|     var MyClass = new Lang.Class({ | ||||
|         _init: function() { | ||||
|         _init() { | ||||
|             let fnorb = new FnorbLib.Fnorb(); | ||||
|             fnorb.connect('frobate', Lang.bind(this, this._onFnorbFrobate)); | ||||
|             fnorb.connect('frobate', this._onFnorbFrobate.bind(this)); | ||||
|         }, | ||||
|  | ||||
|         _onFnorbFrobate: function(fnorb) { | ||||
|         _onFnorbFrobate(fnorb) { | ||||
|             this._updateFnorb(); | ||||
|         } | ||||
|     }); | ||||
| @@ -309,7 +311,7 @@ property. | ||||
|     var MyClass = new Lang.Class({ | ||||
|         Name: 'MyClass', | ||||
|  | ||||
|         _init: function() { | ||||
|         _init() { | ||||
|             this.actor = new St.BoxLayout(); | ||||
|             this._position = 0; | ||||
|         }, | ||||
|   | ||||
							
								
								
									
										135
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										135
									
								
								NEWS
									
									
									
									
									
								
							| @@ -1,3 +1,138 @@ | ||||
| 3.28.4 | ||||
| ====== | ||||
| * Fix wrong window positions in overview on wayland [Marco; #776588] | ||||
| * overview: Fix handling of confirmation dialogs on wayland [verdre; !180] | ||||
| * Avoid some full relayout/redraws [Carlos; !197] | ||||
| * Keep workspace switcher slid out when workspaces are in use [Florian; !161] | ||||
| * Cancel search on overview hiding [Marco; !205] | ||||
| * Fix disappearing network icon [Iain; #140] | ||||
| * Improve performance of app icon animations [Daniel; !253] | ||||
| * notifications: Support icon theme names in 'image-path' hint [Marco; !285] | ||||
| * Avoid focus changes when updating keyboard options [Takao; #391] | ||||
| * Fix unresponsive-app dialog blocking input in other windows [Florian; #273] | ||||
| * Fix ellipsization in dialog subtitles/bodies [Marco; !531] | ||||
| * Misc. bug fixes [Marco, Andrea, Florian, Jasper, Sam, verdre, Jonas, | ||||
|   Cosimo, Carlos; #792681, #372, !112, !162, #414, #663461, #788882, #787260, | ||||
|   !188, #791233, #602, #632, !305, !286, !314, #781, #693, #618, #430, #799, | ||||
|   #783, !293, #298, #1015, #539, #1270] | ||||
|  | ||||
| Contributors: | ||||
|   Jonas Ådahl, Andrea Azzarone, Cosimo Cecchi, Takao Fujiwara, Carlos Garnacho, | ||||
|   Iain Lane, Florian Müllner, Georges Basile Stavracas Neto, Jasper St. Pierre, | ||||
|   Sam Spilsbury, Ray Strode, Will Thompson, Marco Trevisan (Treviño), verdre, | ||||
|   Daniel van Vugt | ||||
|  | ||||
| Translators: | ||||
|   Marek Černocký [cs] | ||||
|  | ||||
| 3.28.3 | ||||
| ====== | ||||
| * Fix lagging pointer when zoomed [Daniel; #682013] | ||||
| * Fix "Clear All" for calendar events [Florian; #325] | ||||
| * Misc. bug fixes [Florian, Mario, Marco; #136, #214, #788931, #791233] | ||||
|  | ||||
| Contributors: | ||||
|   Carlos Garnacho, Florian Müllner, Mario Sanchez Prada, Joe Rabinoff, | ||||
|   Didier Roche, Marco Trevisan (Treviño), Daniel van Vugt | ||||
|  | ||||
| Translators: | ||||
|   Pieter Schalk Schoeman [af], Gun Chleoc [gd] | ||||
|  | ||||
| 3.28.2 | ||||
| ====== | ||||
| * Fix lock-up on cancelling polkit dialog [Florian; #221] | ||||
| * Guard against untimely keyboard map changes [Carlos; #240] | ||||
| * Fix blurriness of OSD under some resolutions [Silvère; #782011] | ||||
| * Fix icons in search provider results [Florian; #249] | ||||
| * Misc. bug fixes [Marco, Florian; #792687, #781471] | ||||
|  | ||||
| Contributors: | ||||
|   Carlos Garnacho, Silvère Latchurié, Florian Müllner, Mario Sanchez Prada, | ||||
|   Ray Strode, Marco Trevisan (Treviño) | ||||
|  | ||||
| Translators: | ||||
|   Stas Solovey [ru], Rafael Fontenelle [pt_BR] | ||||
|  | ||||
| 3.28.1 | ||||
| ====== | ||||
| * Fix compose characters in shell entries [Carlos; #115] | ||||
| * Don't show authentication dialogs on lock screen [Florian; #179, #166] | ||||
| * Fix handling of UTC timezone in world clock [Florian; #150] | ||||
| * Fix keyboard navigation in overview when hovering windows [Florian; #50] | ||||
| * Misc. bug fixes [Florian; #127, #788908, #763886, !39] | ||||
|  | ||||
| Contributors: | ||||
|   Jeremy Bicha, Carlos Garnacho, Andy Holmes, Florian Müllner, Bastien Nocera | ||||
|  | ||||
| Translators: | ||||
|   Stas Solovey [ru], Daniel Șerbănescu [ro], Dušan Kazik [sk], | ||||
|   Rafael Fontenelle [pt_BR], Nathan Follens [nl], Dz Chen [zh_CN], | ||||
|   Matej Urbančič [sl], Hannie Dumoleyn [nl], Khaled Hosny [ar], | ||||
|   Guillaume Bernard [fr] | ||||
|  | ||||
| 3.28.0 | ||||
| ====== | ||||
|  | ||||
| Translators: | ||||
|   A S Alam [pa], gogo [hr], Chao-Hsiung Liao [zh_TW], Jordi Mas [ca], | ||||
|   Anders Jonsson [sv], Balázs Úr [hu] | ||||
|  | ||||
| 3.27.92 | ||||
| ======= | ||||
| * Misc. bug fixes [Florian; #64, #66, #72] | ||||
|  | ||||
| Contributors: | ||||
|   Jonas Ådahl, Christian Kellner, Florian Müllner | ||||
|  | ||||
| Translators: | ||||
|   Daniel Mustieles [es], Wolfgang Stöggl [de], Cheng-Chia Tseng [zh_TW], | ||||
|   Dušan Kazik [sk], Changwoo Ryu [ko], Furkan Ahmet Kara [tr], Balázs Úr [hu], | ||||
|   Trần Ngọc Quân [vi], Milo Casagrande [it], GNOME Translation Robot [gd, nl], | ||||
|   Marek Cernocky [cs], Aurimas Černius [lt], Alain Lojewski [fr], | ||||
|   Rūdolfs Mazurs [lv], Stas Solovey [ru], Alan Mortensen [da] | ||||
|  | ||||
| 3.27.91 | ||||
| ======= | ||||
| * Fix wrong bluetooth state when disabled by HW airplane mode [Mario; #789110] | ||||
| * Dump javascript stack on aborts, traps and segfaults [Marco; #789237] | ||||
| * Allow Escape to "cancel" top bar focus [Stefano; #671121] | ||||
| * Fix leaving the overview erroneously on window hover [Carlos; #784545] | ||||
| * Add keyboard accessibility dialog [Olivier; #788564] | ||||
| * Port to libnm [Lubomir, Florian; #789811] | ||||
| * Don't pop up on-screen-keyboard on touch events [Florian, Carlos; #788188] | ||||
| * Improve the on-screen-keyboard [Carlos; !9, #46] | ||||
| * Add Thunderbolt support [Christian; !14] | ||||
| * Don't lock immediately on login after a wayland session crash [Florian; !17] | ||||
| * Respect cursor's hot x/y coordinates when recording [Florian Z.; #792860] | ||||
| * Allow closing windows and apps during <alt>Tab [Florian, Mario; #620106] | ||||
| * Fix small app folder icons when using HiDPI [Nikita; #792259] | ||||
| * Make sassc a mandatory build dependency [Mario; #792822] | ||||
| * Misc. bug fixes [Florian, Marco, Alessandro, Gautier, Jeremy, Bastien, Ray, | ||||
|   Carlos, Didier, Exalm, Rafal; #789231, #789277, #788542, #789103, #779974, | ||||
|   #788931, #776940, #786987, #791007, #791233, #791148, #706191, #791655, | ||||
|   #791487, #779413, #787845, #10, #788627, #792354, #792616, #781329, #780957, | ||||
|   #33, #740142, !38, !23] | ||||
|  | ||||
| Contributors: | ||||
|   Jeremy Bicha, Alessandro Bono, Nikita Churaev, Piotr Drąg, Exalm, | ||||
|   Stefano Facchini, Olivier Fourdan, Carlos Garnacho, Christian Kellner, | ||||
|   Rafal Luzynski, Iñigo Martínez, Florian Müllner, Bastien Nocera, | ||||
|   Gautier Pelloux-Prayer, Mario Sanchez Prada, Lubomir Rintel, Didier Roche, | ||||
|   Jakub Steiner, Ray Strode, Marco Trevisan (Treviño), Florian Zwoch | ||||
|  | ||||
| Translators: | ||||
|   Mingcong Bai [zh_CN], Hannie Dumoleyn [nl], Khaled Hosny [ar], | ||||
|   Kjartan Maraas [nb], Petr Kovar [cs], Marek Cernocky [cs], | ||||
|   Aurimas Černius [lt], Yosef Or Boczko [he], Kukuh Syafaat [id], | ||||
|   Sveinn í Felli [is], Jordi Mas [ca], Daniel Mustieles [es], Fabio Tomat [fur], | ||||
|   Rūdolfs Mazurs [lv], Emin Tufan Çetin [tr], Anders Jonsson [sv], | ||||
|   Matej Urbančič [sl], Jiri Grönroos [fi], Tim Sabsch [de], Gil Forcada [ca], | ||||
|   Dušan Kazik [sk], Balázs Meskó [hu], Piotr Drąg [pl], Tong Hui [zh_CN], | ||||
|   Fran Dieguez [gl], Enrico Nicoletto [pt_BR], gogo [hr], | ||||
|   Baurzhan Muftakhidinov [kk], Robert Antoni Buj Gelonch [ca], | ||||
|   Bruce Cowan [en_GB], Борисав Живановић [sr], Милош Поповић [sr@latin], | ||||
|   Марко Костић [sr] | ||||
|  | ||||
| 3.27.1 | ||||
| ====== | ||||
| * Fix using icon-name strings with PopupImageMenuItems [Florian; #789018] | ||||
|   | ||||
							
								
								
									
										158
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										158
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -1,158 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # configure script adapter for Meson | ||||
| # Based on build-api: https://github.com/cgwalters/build-api | ||||
| # Copyright 2010, 2011, 2013 Colin Walters <walters@verbum.org> | ||||
| # Copyright 2016, 2017 Emmanuele Bassi | ||||
| # Licensed under the new-BSD license (http://www.opensource.org/licenses/bsd-license.php) | ||||
|  | ||||
| # Build API variables: | ||||
|  | ||||
| # Little helper function for reading args from the commandline. | ||||
| # it automatically handles -a b and -a=b variants, and returns 1 if | ||||
| # we need to shift $3. | ||||
| read_arg() { | ||||
|     # $1 = arg name | ||||
|     # $2 = arg value | ||||
|     # $3 = arg parameter | ||||
|     local rematch='^[^=]*=(.*)$' | ||||
|     if [[ $2 =~ $rematch ]]; then | ||||
| 	read "$1" <<< "${BASH_REMATCH[1]}" | ||||
|     else | ||||
| 	read "$1" <<< "$3" | ||||
| 	# There is no way to shift our callers args, so | ||||
| 	# return 1 to indicate they should do it instead. | ||||
| 	return 1 | ||||
|     fi | ||||
| } | ||||
|  | ||||
| sanitycheck() { | ||||
|     # $1 = arg name | ||||
|     # $1 = arg command | ||||
|     # $2 = arg alternates | ||||
|     local cmd=$( which $2 2>/dev/null ) | ||||
|  | ||||
|     if [ -x "$cmd" ]; then | ||||
|         read "$1" <<< "$cmd" | ||||
|         return 0 | ||||
|     fi | ||||
|  | ||||
|     test -z $3 || { | ||||
|         for alt in $3; do | ||||
|             cmd=$( which $alt 2>/dev/null ) | ||||
|  | ||||
|             if [ -x "$cmd" ]; then | ||||
|                 read "$1" <<< "$cmd" | ||||
|                 return 0 | ||||
|             fi | ||||
|         done | ||||
|     } | ||||
|  | ||||
|     echo -e "\e[1;31mERROR\e[0m: Command '$2' not found" | ||||
|     exit 1 | ||||
| } | ||||
|  | ||||
| sanitycheck MESON 'meson' | ||||
| sanitycheck NINJA 'ninja' 'ninja-build' | ||||
|  | ||||
| enable_docs='-Denable-gtk-doc=false' | ||||
| enable_man='-Denable-man=false' | ||||
| enable_introspection='' | ||||
|  | ||||
| while (($# > 0)); do | ||||
|     case "${1%%=*}" in | ||||
| 	--prefix) read_arg prefix "$@" || shift;; | ||||
| 	--bindir) read_arg bindir "$@" || shift;; | ||||
| 	--sbindir) read_arg sbindir "$@" || shift;; | ||||
| 	--libexecdir) read_arg libexecdir "$@" || shift;; | ||||
| 	--datarootdir) read_arg datarootdir "$@" || shift;; | ||||
| 	--datadir) read_arg datadir "$@" || shift;; | ||||
| 	--sysconfdir) read_arg sysconfdir "$@" || shift;; | ||||
| 	--libdir) read_arg libdir "$@" || shift;; | ||||
| 	--mandir) read_arg mandir "$@" || shift;; | ||||
| 	--includedir) read_arg includedir "$@" || shift;; | ||||
| 	--enable-gtk-doc) enable_docs='-Denable-gtk-doc=true';; | ||||
| 	--disable-gtk-doc) enable_docs='-Denable-gtk-doc=false';; | ||||
| 	--enable-man) enable_man='-Denable-man=true';; | ||||
| 	--disable-man) enable_man='-Denable-man=false';; | ||||
| 	--enable-introspection) enable_introspection='';; | ||||
| 	--disable-introspection) enable_introspection='-Ddisable_introspection=true';; | ||||
| 	*) echo -e "\e[1;33mINFO\e[0m: Ignoring unknown option '$1'";; | ||||
|     esac | ||||
|     shift | ||||
| done | ||||
|  | ||||
| # Defaults | ||||
| test -z ${prefix} && prefix="/usr/local" | ||||
| test -z ${bindir} && bindir=${prefix}/bin | ||||
| test -z ${sbindir} && sbindir=${prefix}/sbin | ||||
| test -z ${libexecdir} && libexecdir=${prefix}/bin | ||||
| test -z ${datarootdir} && datarootdir=${prefix}/share | ||||
| test -z ${datadir} && datadir=${datarootdir} | ||||
| test -z ${sysconfdir} && sysconfdir=${prefix}/etc | ||||
| test -z ${libdir} && libdir=${prefix}/lib | ||||
| test -z ${mandir} && mandir=${prefix}/share/man | ||||
| test -z ${includedir} && includedir=${prefix}/include | ||||
|  | ||||
| # The source directory is the location of this file | ||||
| srcdir=$(dirname $0) | ||||
|  | ||||
| # The build directory is the current location | ||||
| builddir=`pwd` | ||||
|  | ||||
| # If we're calling this file from the source directory then | ||||
| # we automatically create a build directory and ensure that | ||||
| # both Meson and Ninja invocations are relative to that | ||||
| # location | ||||
| if [[ -f "${builddir}/meson.build" ]]; then | ||||
|   mkdir -p _build | ||||
|   builddir="${builddir}/_build" | ||||
|   NINJA_OPT="-C ${builddir}" | ||||
| fi | ||||
|  | ||||
| # Wrapper Makefile for Ninja | ||||
| cat > Makefile <<END | ||||
| # Generated by configure; do not edit | ||||
|  | ||||
| all: | ||||
| 	CC="\$(CC)" CXX="\$(CXX)" ${NINJA} ${NINJA_OPT} | ||||
|  | ||||
| install: | ||||
| 	DESTDIR="\$(DESTDIR)" ${NINJA} ${NINJA_OPT} install | ||||
|  | ||||
| check: | ||||
| 	${MESON} test ${NINJA_OPT} | ||||
| END | ||||
|  | ||||
| echo "Summary:" | ||||
| echo "  meson:....... ${MESON}" | ||||
| echo "  ninja:....... ${NINJA}" | ||||
| echo "  prefix:...... ${prefix}" | ||||
| echo "  bindir:...... ${bindir}" | ||||
| echo "  sbindir:..... ${sbindir}" | ||||
| echo "  libexecdir:.. ${libexecdir}" | ||||
| echo "  datarootdir:. ${datarootdir}" | ||||
| echo "  datadir:..... ${datadir}" | ||||
| echo "  sysconfdir:.. ${sysconfdir}" | ||||
| echo "  libdir:...... ${libdir}" | ||||
| echo "  mandir:...... ${mandir}" | ||||
| echo "  includedir:.. ${includedir}" | ||||
| echo "  additional:.." | ||||
| echo "    - ${enable_docs} ${enable_man} ${enable_introspection}" | ||||
|  | ||||
| exec ${MESON} \ | ||||
| 	--prefix=${prefix} \ | ||||
| 	--libdir=${libdir} \ | ||||
| 	--libexecdir=${libexecdir} \ | ||||
| 	--datadir=${datadir} \ | ||||
| 	--sysconfdir=${sysconfdir} \ | ||||
| 	--bindir=${bindir} \ | ||||
| 	--includedir=${includedir} \ | ||||
| 	--mandir=${mandir} \ | ||||
| 	--default-library shared \ | ||||
| 	${enable_docs} \ | ||||
| 	${enable_man} \ | ||||
| 	${enable_introspection} \ | ||||
| 	${builddir} \ | ||||
| 	${srcdir} | ||||
|  | ||||
| # vim: ai ts=8 noet sts=2 ft=sh | ||||
							
								
								
									
										33
									
								
								data/README.osk-layouts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								data/README.osk-layouts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| Gnome-shell OSK layouts are extracted from CLDR layout definitions: | ||||
| https://www.unicode.org/cldr/charts/latest/keyboards/layouts/index.html | ||||
|  | ||||
| Updating these involves several steps: | ||||
|  | ||||
| 1) Downloading and unzipping the tarball found at: | ||||
|    http://www.unicode.org/Public/cldr/latest/keyboards.zip | ||||
|  | ||||
|    This file contains XML files describing the keyboard layouts. | ||||
|  | ||||
| 2) Cloning the cldr2json script at: | ||||
|    git://repo.or.cz/cldr2json.git | ||||
|  | ||||
|    It will be used to convert the XML files into JSON that can be | ||||
|    directly consumed by gnome-shell. | ||||
|  | ||||
| 3) Running the script to produce the files: | ||||
|    ./cldr2json <input-directory> <output-directory> | ||||
|  | ||||
|    We shall usually use the "android" folder, since that's most | ||||
|    complete, and similar to our UI and target sizes. And the target | ||||
|    directory must be data/osk-layouts in this repository. | ||||
|  | ||||
| 4) Modify gnome-shell-osk-layouts.gresource.xml to include the files | ||||
|  | ||||
| 5) Do git add on the updated/new files, and git commit. | ||||
|  | ||||
|  | ||||
| Or alternatively: | ||||
|  | ||||
| 1) Run update-osk-layouts.sh | ||||
|  | ||||
| 2) Do git add and git commit | ||||
							
								
								
									
										58
									
								
								data/gnome-shell-osk-layouts.gresource.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								data/gnome-shell-osk-layouts.gresource.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <gresources> | ||||
|   <gresource prefix="/org/gnome/shell/osk-layouts"> | ||||
|     <file>am.json</file> | ||||
|     <file>ara.json</file> | ||||
|     <file>be.json</file> | ||||
|     <file>bg.json</file> | ||||
|     <file>by.json</file> | ||||
|     <file>ca.json</file> | ||||
|     <file>cz.json</file> | ||||
|     <file>de.json</file> | ||||
|     <file>dk.json</file> | ||||
|     <file>ee.json</file> | ||||
|     <file>epo.json</file> | ||||
|     <file>es+cat.json</file> | ||||
|     <file>es.json</file> | ||||
|     <file>fi.json</file> | ||||
|     <file>fr.json</file> | ||||
|     <file>ge.json</file> | ||||
|     <file>gr.json</file> | ||||
|     <file>hr.json</file> | ||||
|     <file>hu.json</file> | ||||
|     <file>id.json</file> | ||||
|     <file>il.json</file> | ||||
|     <file>in+bolnagri.json</file> | ||||
|     <file>ir.json</file> | ||||
|     <file>is.json</file> | ||||
|     <file>it.json</file> | ||||
|     <file>ke.json</file> | ||||
|     <file>kg.json</file> | ||||
|     <file>kh.json</file> | ||||
|     <file>la.json</file> | ||||
|     <file>latam.json</file> | ||||
|     <file>lt.json</file> | ||||
|     <file>lv.json</file> | ||||
|     <file>mk.json</file> | ||||
|     <file>mn.json</file> | ||||
|     <file>my.json</file> | ||||
|     <file>nl.json</file> | ||||
|     <file>no.json</file> | ||||
|     <file>ph.json</file> | ||||
|     <file>pl.json</file> | ||||
|     <file>pt.json</file> | ||||
|     <file>ro.json</file> | ||||
|     <file>rs.json</file> | ||||
|     <file>ru.json</file> | ||||
|     <file>se.json</file> | ||||
|     <file>si.json</file> | ||||
|     <file>sk.json</file> | ||||
|     <file>th.json</file> | ||||
|     <file>tr.json</file> | ||||
|     <file>ua.json</file> | ||||
|     <file>uk.json</file> | ||||
|     <file>us.json</file> | ||||
|     <file>vn.json</file> | ||||
|     <file>za.json</file> | ||||
|   </gresource> | ||||
| </gresources> | ||||
| @@ -19,6 +19,12 @@ | ||||
|     <file>filter-selected-rtl.svg</file> | ||||
|     <file>gnome-shell.css</file> | ||||
|     <file>gnome-shell-high-contrast.css</file> | ||||
|     <file>key-enter.svg</file> | ||||
|     <file>key-hide.svg</file> | ||||
|     <file>key-layout.svg</file> | ||||
|     <file>key-shift.svg</file> | ||||
|     <file>key-shift-uppercase.svg</file> | ||||
|     <file>key-shift-latched-uppercase.svg</file> | ||||
|     <file>logged-in-indicator.svg</file> | ||||
|     <file alias="icons/message-indicator-symbolic.svg">message-indicator-symbolic.svg</file> | ||||
|     <file>no-events.svg</file> | ||||
|   | ||||
| @@ -62,6 +62,14 @@ theme_resources = gnome.compile_resources( | ||||
|   install_dir: pkgdatadir | ||||
| ) | ||||
|  | ||||
| osk_layout_resources = gnome.compile_resources( | ||||
|   'gnome-shell-osk-layouts', 'gnome-shell-osk-layouts.gresource.xml', | ||||
|   source_dir: 'osk-layouts', | ||||
|   gresource_bundle: true, | ||||
|   install: true, | ||||
|   install_dir: pkgdatadir | ||||
| ) | ||||
|  | ||||
| perfconf = configuration_data() | ||||
| perfconf.set('datadir', datadir) | ||||
| configure_file( | ||||
|   | ||||
							
								
								
									
										599
									
								
								data/osk-layouts/am.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										599
									
								
								data/osk-layouts/am.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,599 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "է" | ||||
|           ], | ||||
|           [ | ||||
|             "թ" | ||||
|           ], | ||||
|           [ | ||||
|             "փ" | ||||
|           ], | ||||
|           [ | ||||
|             "ձ" | ||||
|           ], | ||||
|           [ | ||||
|             "ջ" | ||||
|           ], | ||||
|           [ | ||||
|             "ր" | ||||
|           ], | ||||
|           [ | ||||
|             "չ" | ||||
|           ], | ||||
|           [ | ||||
|             "ճ" | ||||
|           ], | ||||
|           [ | ||||
|             "ժ" | ||||
|           ], | ||||
|           [ | ||||
|             "ծ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ք" | ||||
|           ], | ||||
|           [ | ||||
|             "ո" | ||||
|           ], | ||||
|           [ | ||||
|             "ե", | ||||
|             "և" | ||||
|           ], | ||||
|           [ | ||||
|             "ռ" | ||||
|           ], | ||||
|           [ | ||||
|             "տ" | ||||
|           ], | ||||
|           [ | ||||
|             "ը" | ||||
|           ], | ||||
|           [ | ||||
|             "ւ" | ||||
|           ], | ||||
|           [ | ||||
|             "ի" | ||||
|           ], | ||||
|           [ | ||||
|             "օ" | ||||
|           ], | ||||
|           [ | ||||
|             "պ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ա" | ||||
|           ], | ||||
|           [ | ||||
|             "ս" | ||||
|           ], | ||||
|           [ | ||||
|             "դ" | ||||
|           ], | ||||
|           [ | ||||
|             "ֆ" | ||||
|           ], | ||||
|           [ | ||||
|             "գ" | ||||
|           ], | ||||
|           [ | ||||
|             "հ" | ||||
|           ], | ||||
|           [ | ||||
|             "յ" | ||||
|           ], | ||||
|           [ | ||||
|             "կ" | ||||
|           ], | ||||
|           [ | ||||
|             "լ" | ||||
|           ], | ||||
|           [ | ||||
|             "խ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "զ" | ||||
|           ], | ||||
|           [ | ||||
|             "ղ" | ||||
|           ], | ||||
|           [ | ||||
|             "ց" | ||||
|           ], | ||||
|           [ | ||||
|             "վ" | ||||
|           ], | ||||
|           [ | ||||
|             "բ" | ||||
|           ], | ||||
|           [ | ||||
|             "ն" | ||||
|           ], | ||||
|           [ | ||||
|             "մ" | ||||
|           ], | ||||
|           [ | ||||
|             "շ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "։" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Է" | ||||
|           ], | ||||
|           [ | ||||
|             "Թ" | ||||
|           ], | ||||
|           [ | ||||
|             "Փ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ձ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ջ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ր" | ||||
|           ], | ||||
|           [ | ||||
|             "Չ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ճ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ժ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ծ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Ք" | ||||
|           ], | ||||
|           [ | ||||
|             "Ո" | ||||
|           ], | ||||
|           [ | ||||
|             "Ե", | ||||
|             "ԵՒ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ռ" | ||||
|           ], | ||||
|           [ | ||||
|             "Տ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ը" | ||||
|           ], | ||||
|           [ | ||||
|             "Ւ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ի" | ||||
|           ], | ||||
|           [ | ||||
|             "Օ" | ||||
|           ], | ||||
|           [ | ||||
|             "Պ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Ա" | ||||
|           ], | ||||
|           [ | ||||
|             "Ս" | ||||
|           ], | ||||
|           [ | ||||
|             "Դ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ֆ" | ||||
|           ], | ||||
|           [ | ||||
|             "Գ" | ||||
|           ], | ||||
|           [ | ||||
|             "Հ" | ||||
|           ], | ||||
|           [ | ||||
|             "Յ" | ||||
|           ], | ||||
|           [ | ||||
|             "Կ" | ||||
|           ], | ||||
|           [ | ||||
|             "Լ" | ||||
|           ], | ||||
|           [ | ||||
|             "Խ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Զ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ղ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ց" | ||||
|           ], | ||||
|           [ | ||||
|             "Վ" | ||||
|           ], | ||||
|           [ | ||||
|             "Բ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ն" | ||||
|           ], | ||||
|           [ | ||||
|             "Մ" | ||||
|           ], | ||||
|           [ | ||||
|             "Շ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "։" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "՜", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "՞", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "՝" | ||||
|           ], | ||||
|           [ | ||||
|             "։", | ||||
|             "!", | ||||
|             "?", | ||||
|             ",", | ||||
|             ".", | ||||
|             "֊", | ||||
|             "՜", | ||||
|             "՝", | ||||
|             "՞", | ||||
|             ":", | ||||
|             ";", | ||||
|             "@", | ||||
|             "ՙ", | ||||
|             "՚", | ||||
|             "՛", | ||||
|             "՟" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "՝" | ||||
|           ], | ||||
|           [ | ||||
|             "։", | ||||
|             "!", | ||||
|             "?", | ||||
|             ",", | ||||
|             ".", | ||||
|             "֊", | ||||
|             "՜", | ||||
|             "՝", | ||||
|             "՞", | ||||
|             ":", | ||||
|             ";", | ||||
|             "@", | ||||
|             "ՙ", | ||||
|             "՚", | ||||
|             "՛", | ||||
|             "՟" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "hy", | ||||
|   "name": "Armenian" | ||||
| } | ||||
							
								
								
									
										488
									
								
								data/osk-layouts/ara.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										488
									
								
								data/osk-layouts/ara.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,488 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "ض" | ||||
|           ], | ||||
|           [ | ||||
|             "ص" | ||||
|           ], | ||||
|           [ | ||||
|             "ث" | ||||
|           ], | ||||
|           [ | ||||
|             "ق", | ||||
|             "ڨ" | ||||
|           ], | ||||
|           [ | ||||
|             "ف", | ||||
|             "ڤ", | ||||
|             "ڢ", | ||||
|             "ڥ" | ||||
|           ], | ||||
|           [ | ||||
|             "غ" | ||||
|           ], | ||||
|           [ | ||||
|             "ع" | ||||
|           ], | ||||
|           [ | ||||
|             "ه", | ||||
|             "ه" | ||||
|           ], | ||||
|           [ | ||||
|             "خ" | ||||
|           ], | ||||
|           [ | ||||
|             "ح" | ||||
|           ], | ||||
|           [ | ||||
|             "ج", | ||||
|             "چ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ش", | ||||
|             "ڜ" | ||||
|           ], | ||||
|           [ | ||||
|             "س" | ||||
|           ], | ||||
|           [ | ||||
|             "ي", | ||||
|             "ئ", | ||||
|             "ى" | ||||
|           ], | ||||
|           [ | ||||
|             "ب", | ||||
|             "پ" | ||||
|           ], | ||||
|           [ | ||||
|             "ل", | ||||
|             "لا", | ||||
|             "لأ", | ||||
|             "لإ", | ||||
|             "لآ" | ||||
|           ], | ||||
|           [ | ||||
|             "ا", | ||||
|             "آ", | ||||
|             "ء", | ||||
|             "أ", | ||||
|             "إ", | ||||
|             "ٱ" | ||||
|           ], | ||||
|           [ | ||||
|             "ت" | ||||
|           ], | ||||
|           [ | ||||
|             "ن" | ||||
|           ], | ||||
|           [ | ||||
|             "م" | ||||
|           ], | ||||
|           [ | ||||
|             "ك", | ||||
|             "گ", | ||||
|             "ک" | ||||
|           ], | ||||
|           [ | ||||
|             "ط" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ذ" | ||||
|           ], | ||||
|           [ | ||||
|             "ء" | ||||
|           ], | ||||
|           [ | ||||
|             "ؤ" | ||||
|           ], | ||||
|           [ | ||||
|             "ر" | ||||
|           ], | ||||
|           [ | ||||
|             "ى", | ||||
|             "ئ" | ||||
|           ], | ||||
|           [ | ||||
|             "ة" | ||||
|           ], | ||||
|           [ | ||||
|             "و" | ||||
|           ], | ||||
|           [ | ||||
|             "ز", | ||||
|             "ژ" | ||||
|           ], | ||||
|           [ | ||||
|             "ظ" | ||||
|           ], | ||||
|           [ | ||||
|             "د" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "،" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "\"", | ||||
|             "'", | ||||
|             "#", | ||||
|             "-", | ||||
|             ":", | ||||
|             "!", | ||||
|             "،", | ||||
|             "؟", | ||||
|             "@", | ||||
|             "&", | ||||
|             "%", | ||||
|             "+", | ||||
|             "؛", | ||||
|             "/", | ||||
|             ")", | ||||
|             "(" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "١", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "٢", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "٣", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "٤", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "٥", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "٦" | ||||
|           ], | ||||
|           [ | ||||
|             "٧", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "٨" | ||||
|           ], | ||||
|           [ | ||||
|             "٩" | ||||
|           ], | ||||
|           [ | ||||
|             "٠", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "٪", | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "﴿", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             "﴾", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "★", | ||||
|             "٭" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             "؛", | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "؟", | ||||
|             "?" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "،", | ||||
|             "؟", | ||||
|             "؛", | ||||
|             "!", | ||||
|             ":", | ||||
|             "-", | ||||
|             "/", | ||||
|             "'", | ||||
|             "\"" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "ٕ", | ||||
|             "ٔ", | ||||
|             "ْ", | ||||
|             "ٍ", | ||||
|             "ٌ", | ||||
|             "ً", | ||||
|             "ّ", | ||||
|             "ٖ", | ||||
|             "ٰ", | ||||
|             "ٓ", | ||||
|             "ِ", | ||||
|             "ُ", | ||||
|             "َ", | ||||
|             "ـ" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "،", | ||||
|             "؟", | ||||
|             "؛", | ||||
|             "!", | ||||
|             ":", | ||||
|             "-", | ||||
|             "/", | ||||
|             "'", | ||||
|             "\"" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "ٕ", | ||||
|             "ٔ", | ||||
|             "ْ", | ||||
|             "ٍ", | ||||
|             "ٌ", | ||||
|             "ً", | ||||
|             "ّ", | ||||
|             "ٖ", | ||||
|             "ٰ", | ||||
|             "ٓ", | ||||
|             "ِ", | ||||
|             "ُ", | ||||
|             "َ", | ||||
|             "ـ" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "ar", | ||||
|   "name": "Arabic" | ||||
| } | ||||
							
								
								
									
										584
									
								
								data/osk-layouts/be.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										584
									
								
								data/osk-layouts/be.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,584 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "ë", | ||||
|             "ê", | ||||
|             "è", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ij" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ü", | ||||
|             "û", | ||||
|             "ù", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "î", | ||||
|             "į", | ||||
|             "ī", | ||||
|             "ij" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "ä", | ||||
|             "â", | ||||
|             "à", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "Ë", | ||||
|             "Ê", | ||||
|             "È", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "IJ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ü", | ||||
|             "Û", | ||||
|             "Ù", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Î", | ||||
|             "Į", | ||||
|             "Ī", | ||||
|             "IJ" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "Ä", | ||||
|             "Â", | ||||
|             "À", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "nl-BE", | ||||
|   "name": "Dutch (Belgium)" | ||||
| } | ||||
							
								
								
									
										533
									
								
								data/osk-layouts/bg.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										533
									
								
								data/osk-layouts/bg.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,533 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "я" | ||||
|           ], | ||||
|           [ | ||||
|             "в" | ||||
|           ], | ||||
|           [ | ||||
|             "е" | ||||
|           ], | ||||
|           [ | ||||
|             "р" | ||||
|           ], | ||||
|           [ | ||||
|             "т" | ||||
|           ], | ||||
|           [ | ||||
|             "ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "у" | ||||
|           ], | ||||
|           [ | ||||
|             "и", | ||||
|             "ѝ" | ||||
|           ], | ||||
|           [ | ||||
|             "о" | ||||
|           ], | ||||
|           [ | ||||
|             "п" | ||||
|           ], | ||||
|           [ | ||||
|             "ч" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "а" | ||||
|           ], | ||||
|           [ | ||||
|             "с" | ||||
|           ], | ||||
|           [ | ||||
|             "д" | ||||
|           ], | ||||
|           [ | ||||
|             "ф" | ||||
|           ], | ||||
|           [ | ||||
|             "г" | ||||
|           ], | ||||
|           [ | ||||
|             "х" | ||||
|           ], | ||||
|           [ | ||||
|             "й" | ||||
|           ], | ||||
|           [ | ||||
|             "к" | ||||
|           ], | ||||
|           [ | ||||
|             "л" | ||||
|           ], | ||||
|           [ | ||||
|             "ш" | ||||
|           ], | ||||
|           [ | ||||
|             "щ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "з" | ||||
|           ], | ||||
|           [ | ||||
|             "ь" | ||||
|           ], | ||||
|           [ | ||||
|             "ц" | ||||
|           ], | ||||
|           [ | ||||
|             "ж" | ||||
|           ], | ||||
|           [ | ||||
|             "б" | ||||
|           ], | ||||
|           [ | ||||
|             "н" | ||||
|           ], | ||||
|           [ | ||||
|             "м" | ||||
|           ], | ||||
|           [ | ||||
|             "ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Я" | ||||
|           ], | ||||
|           [ | ||||
|             "В" | ||||
|           ], | ||||
|           [ | ||||
|             "Е" | ||||
|           ], | ||||
|           [ | ||||
|             "Р" | ||||
|           ], | ||||
|           [ | ||||
|             "Т" | ||||
|           ], | ||||
|           [ | ||||
|             "Ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "У" | ||||
|           ], | ||||
|           [ | ||||
|             "И", | ||||
|             "Ѝ" | ||||
|           ], | ||||
|           [ | ||||
|             "О" | ||||
|           ], | ||||
|           [ | ||||
|             "П" | ||||
|           ], | ||||
|           [ | ||||
|             "Ч" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "А" | ||||
|           ], | ||||
|           [ | ||||
|             "С" | ||||
|           ], | ||||
|           [ | ||||
|             "Д" | ||||
|           ], | ||||
|           [ | ||||
|             "Ф" | ||||
|           ], | ||||
|           [ | ||||
|             "Г" | ||||
|           ], | ||||
|           [ | ||||
|             "Х" | ||||
|           ], | ||||
|           [ | ||||
|             "Й" | ||||
|           ], | ||||
|           [ | ||||
|             "К" | ||||
|           ], | ||||
|           [ | ||||
|             "Л" | ||||
|           ], | ||||
|           [ | ||||
|             "Ш" | ||||
|           ], | ||||
|           [ | ||||
|             "Щ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "З" | ||||
|           ], | ||||
|           [ | ||||
|             "Ь" | ||||
|           ], | ||||
|           [ | ||||
|             "Ц" | ||||
|           ], | ||||
|           [ | ||||
|             "Ж" | ||||
|           ], | ||||
|           [ | ||||
|             "Б" | ||||
|           ], | ||||
|           [ | ||||
|             "Н" | ||||
|           ], | ||||
|           [ | ||||
|             "М" | ||||
|           ], | ||||
|           [ | ||||
|             "Ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "bg", | ||||
|   "name": "Bulgarian" | ||||
| } | ||||
							
								
								
									
										541
									
								
								data/osk-layouts/by.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										541
									
								
								data/osk-layouts/by.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,541 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "й" | ||||
|           ], | ||||
|           [ | ||||
|             "ц" | ||||
|           ], | ||||
|           [ | ||||
|             "у" | ||||
|           ], | ||||
|           [ | ||||
|             "к" | ||||
|           ], | ||||
|           [ | ||||
|             "е", | ||||
|             "ё" | ||||
|           ], | ||||
|           [ | ||||
|             "н" | ||||
|           ], | ||||
|           [ | ||||
|             "г" | ||||
|           ], | ||||
|           [ | ||||
|             "ш" | ||||
|           ], | ||||
|           [ | ||||
|             "ў" | ||||
|           ], | ||||
|           [ | ||||
|             "з" | ||||
|           ], | ||||
|           [ | ||||
|             "х" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ф" | ||||
|           ], | ||||
|           [ | ||||
|             "ы" | ||||
|           ], | ||||
|           [ | ||||
|             "в" | ||||
|           ], | ||||
|           [ | ||||
|             "а" | ||||
|           ], | ||||
|           [ | ||||
|             "п" | ||||
|           ], | ||||
|           [ | ||||
|             "р" | ||||
|           ], | ||||
|           [ | ||||
|             "о" | ||||
|           ], | ||||
|           [ | ||||
|             "л" | ||||
|           ], | ||||
|           [ | ||||
|             "д" | ||||
|           ], | ||||
|           [ | ||||
|             "ж" | ||||
|           ], | ||||
|           [ | ||||
|             "э" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "я" | ||||
|           ], | ||||
|           [ | ||||
|             "ч" | ||||
|           ], | ||||
|           [ | ||||
|             "с" | ||||
|           ], | ||||
|           [ | ||||
|             "м" | ||||
|           ], | ||||
|           [ | ||||
|             "і" | ||||
|           ], | ||||
|           [ | ||||
|             "т" | ||||
|           ], | ||||
|           [ | ||||
|             "ь", | ||||
|             "ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "б" | ||||
|           ], | ||||
|           [ | ||||
|             "ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Й" | ||||
|           ], | ||||
|           [ | ||||
|             "Ц" | ||||
|           ], | ||||
|           [ | ||||
|             "У" | ||||
|           ], | ||||
|           [ | ||||
|             "К" | ||||
|           ], | ||||
|           [ | ||||
|             "Е", | ||||
|             "Ё" | ||||
|           ], | ||||
|           [ | ||||
|             "Н" | ||||
|           ], | ||||
|           [ | ||||
|             "Г" | ||||
|           ], | ||||
|           [ | ||||
|             "Ш" | ||||
|           ], | ||||
|           [ | ||||
|             "Ў" | ||||
|           ], | ||||
|           [ | ||||
|             "З" | ||||
|           ], | ||||
|           [ | ||||
|             "Х" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Ф" | ||||
|           ], | ||||
|           [ | ||||
|             "Ы" | ||||
|           ], | ||||
|           [ | ||||
|             "В" | ||||
|           ], | ||||
|           [ | ||||
|             "А" | ||||
|           ], | ||||
|           [ | ||||
|             "П" | ||||
|           ], | ||||
|           [ | ||||
|             "Р" | ||||
|           ], | ||||
|           [ | ||||
|             "О" | ||||
|           ], | ||||
|           [ | ||||
|             "Л" | ||||
|           ], | ||||
|           [ | ||||
|             "Д" | ||||
|           ], | ||||
|           [ | ||||
|             "Ж" | ||||
|           ], | ||||
|           [ | ||||
|             "Э" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Я" | ||||
|           ], | ||||
|           [ | ||||
|             "Ч" | ||||
|           ], | ||||
|           [ | ||||
|             "С" | ||||
|           ], | ||||
|           [ | ||||
|             "М" | ||||
|           ], | ||||
|           [ | ||||
|             "І" | ||||
|           ], | ||||
|           [ | ||||
|             "Т" | ||||
|           ], | ||||
|           [ | ||||
|             "Ь", | ||||
|             "Ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "Б" | ||||
|           ], | ||||
|           [ | ||||
|             "Ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "be", | ||||
|   "name": "Belarusian" | ||||
| } | ||||
							
								
								
									
										599
									
								
								data/osk-layouts/ca.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										599
									
								
								data/osk-layouts/ca.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,599 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "%", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "%", | ||||
|             "ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ù", | ||||
|             "û", | ||||
|             "%", | ||||
|             "ü", | ||||
|             "ú", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "î", | ||||
|             "%", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "í", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ô", | ||||
|             "œ", | ||||
|             "%", | ||||
|             "ö", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "õ", | ||||
|             "ø", | ||||
|             "ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "à", | ||||
|             "â", | ||||
|             "%", | ||||
|             "æ", | ||||
|             "á", | ||||
|             "ä", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç", | ||||
|             "ć", | ||||
|             "č" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "%", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "%", | ||||
|             "Ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ù", | ||||
|             "Û", | ||||
|             "%", | ||||
|             "Ü", | ||||
|             "Ú", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Î", | ||||
|             "%", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Í", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ô", | ||||
|             "Œ", | ||||
|             "%", | ||||
|             "Ö", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Õ", | ||||
|             "Ø", | ||||
|             "Ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "%", | ||||
|             "Æ", | ||||
|             "Á", | ||||
|             "Ä", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç", | ||||
|             "Ć", | ||||
|             "Č" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "fr-CA", | ||||
|   "name": "French Canada" | ||||
| } | ||||
							
								
								
									
										613
									
								
								data/osk-layouts/cz.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										613
									
								
								data/osk-layouts/cz.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,613 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "ě", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r", | ||||
|             "ř" | ||||
|           ], | ||||
|           [ | ||||
|             "t", | ||||
|             "ť" | ||||
|           ], | ||||
|           [ | ||||
|             "z", | ||||
|             "ž", | ||||
|             "ź", | ||||
|             "ż" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ů", | ||||
|             "û", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "à", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "š", | ||||
|             "ß", | ||||
|             "ś" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "ď" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "č", | ||||
|             "ç", | ||||
|             "ć" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ň", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "Ě", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R", | ||||
|             "Ř" | ||||
|           ], | ||||
|           [ | ||||
|             "T", | ||||
|             "Ť" | ||||
|           ], | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ž", | ||||
|             "Ź", | ||||
|             "Ż" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ů", | ||||
|             "Û", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Š", | ||||
|             "SS", | ||||
|             "Ś" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Ď" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Č", | ||||
|             "Ç", | ||||
|             "Ć" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ň", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "cs", | ||||
|   "name": "Czech" | ||||
| } | ||||
							
								
								
									
										570
									
								
								data/osk-layouts/de.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										570
									
								
								data/osk-layouts/de.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,570 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ė" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ü", | ||||
|             "û", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "ä", | ||||
|             "â", | ||||
|             "à", | ||||
|             "á", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ß", | ||||
|             "ś", | ||||
|             "š" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ė" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ü", | ||||
|             "Û", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Ä", | ||||
|             "Â", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "SS", | ||||
|             "Ś", | ||||
|             "Š" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "de", | ||||
|   "name": "German" | ||||
| } | ||||
							
								
								
									
										590
									
								
								data/osk-layouts/dk.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										590
									
								
								data/osk-layouts/dk.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,590 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "ë" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ü", | ||||
|             "û", | ||||
|             "ù", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ï" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ], | ||||
|           [ | ||||
|             "å" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "ä", | ||||
|             "à", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ß", | ||||
|             "ś", | ||||
|             "š" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "ð" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l", | ||||
|             "ł" | ||||
|           ], | ||||
|           [ | ||||
|             "æ", | ||||
|             "ä" | ||||
|           ], | ||||
|           [ | ||||
|             "ø", | ||||
|             "ö" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "Ë" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ü", | ||||
|             "Û", | ||||
|             "Ù", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ï" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ], | ||||
|           [ | ||||
|             "Å" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "Ä", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "SS", | ||||
|             "Ś", | ||||
|             "Š" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Ð" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L", | ||||
|             "Ł" | ||||
|           ], | ||||
|           [ | ||||
|             "Æ", | ||||
|             "Ä" | ||||
|           ], | ||||
|           [ | ||||
|             "Ø", | ||||
|             "Ö" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "da", | ||||
|   "name": "Danish" | ||||
| } | ||||
							
								
								
									
										666
									
								
								data/osk-layouts/ee.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										666
									
								
								data/osk-layouts/ee.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,666 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "ē", | ||||
|             "è", | ||||
|             "ė", | ||||
|             "é", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ę", | ||||
|             "ě" | ||||
|           ], | ||||
|           [ | ||||
|             "r", | ||||
|             "ŗ", | ||||
|             "ř", | ||||
|             "ŕ" | ||||
|           ], | ||||
|           [ | ||||
|             "t", | ||||
|             "ţ", | ||||
|             "ť" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ü", | ||||
|             "ū", | ||||
|             "ų", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "û", | ||||
|             "ů", | ||||
|             "ű" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "ī", | ||||
|             "ì", | ||||
|             "į", | ||||
|             "í", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "ı" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ö", | ||||
|             "õ", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "ô", | ||||
|             "œ", | ||||
|             "ő", | ||||
|             "ø" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ], | ||||
|           [ | ||||
|             "ü" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "ä", | ||||
|             "ā", | ||||
|             "à", | ||||
|             "á", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "æ", | ||||
|             "ą" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "š", | ||||
|             "ß", | ||||
|             "ś", | ||||
|             "ş" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "ď" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g", | ||||
|             "ģ", | ||||
|             "ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k", | ||||
|             "ķ" | ||||
|           ], | ||||
|           [ | ||||
|             "l", | ||||
|             "ļ", | ||||
|             "ł", | ||||
|             "ĺ", | ||||
|             "ľ" | ||||
|           ], | ||||
|           [ | ||||
|             "ö", | ||||
|             "õ" | ||||
|           ], | ||||
|           [ | ||||
|             "ä" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z", | ||||
|             "ž", | ||||
|             "ż", | ||||
|             "ź" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "č", | ||||
|             "ç", | ||||
|             "ć" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ņ", | ||||
|             "ñ", | ||||
|             "ń", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "Ē", | ||||
|             "È", | ||||
|             "Ė", | ||||
|             "É", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ę", | ||||
|             "Ě" | ||||
|           ], | ||||
|           [ | ||||
|             "R", | ||||
|             "Ŗ", | ||||
|             "Ř", | ||||
|             "Ŕ" | ||||
|           ], | ||||
|           [ | ||||
|             "T", | ||||
|             "Ţ", | ||||
|             "Ť" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ü", | ||||
|             "Ū", | ||||
|             "Ų", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Û", | ||||
|             "Ů", | ||||
|             "Ű" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Ī", | ||||
|             "Ì", | ||||
|             "Į", | ||||
|             "Í", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ö", | ||||
|             "Õ", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Ô", | ||||
|             "Œ", | ||||
|             "Ő", | ||||
|             "Ø" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ], | ||||
|           [ | ||||
|             "Ü" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Ä", | ||||
|             "Ā", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Æ", | ||||
|             "Ą" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Š", | ||||
|             "SS", | ||||
|             "Ś", | ||||
|             "Ş" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Ď" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G", | ||||
|             "Ģ", | ||||
|             "Ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K", | ||||
|             "Ķ" | ||||
|           ], | ||||
|           [ | ||||
|             "L", | ||||
|             "Ļ", | ||||
|             "Ł", | ||||
|             "Ĺ", | ||||
|             "Ľ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ö", | ||||
|             "Õ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ä" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ž", | ||||
|             "Ż", | ||||
|             "Ź" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Č", | ||||
|             "Ç", | ||||
|             "Ć" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ņ", | ||||
|             "Ñ", | ||||
|             "Ń", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "et", | ||||
|   "name": "Estonian" | ||||
| } | ||||
							
								
								
									
										711
									
								
								data/osk-layouts/epo.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										711
									
								
								data/osk-layouts/epo.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,711 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "ŝ", | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "ĝ", | ||||
|             "w", | ||||
|             "ŵ" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "ě", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r", | ||||
|             "ř", | ||||
|             "ŕ", | ||||
|             "ŗ" | ||||
|           ], | ||||
|           [ | ||||
|             "t", | ||||
|             "ť", | ||||
|             "ț", | ||||
|             "ţ", | ||||
|             "ŧ" | ||||
|           ], | ||||
|           [ | ||||
|             "ŭ", | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ŷ", | ||||
|             "ÿ", | ||||
|             "þ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ů", | ||||
|             "û", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "ū", | ||||
|             "ũ", | ||||
|             "ű", | ||||
|             "ų", | ||||
|             "µ" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "ĩ", | ||||
|             "ì", | ||||
|             "į", | ||||
|             "ī", | ||||
|             "ı", | ||||
|             "ij" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō", | ||||
|             "ő", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "à", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā", | ||||
|             "ă", | ||||
|             "ą", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ß", | ||||
|             "š", | ||||
|             "ś", | ||||
|             "ș", | ||||
|             "ş" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "ð", | ||||
|             "ď", | ||||
|             "đ" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g", | ||||
|             "ğ", | ||||
|             "ġ", | ||||
|             "ģ" | ||||
|           ], | ||||
|           [ | ||||
|             "h", | ||||
|             "ĥ", | ||||
|             "ħ" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k", | ||||
|             "ķ", | ||||
|             "ĸ" | ||||
|           ], | ||||
|           [ | ||||
|             "l", | ||||
|             "ĺ", | ||||
|             "ļ", | ||||
|             "ľ", | ||||
|             "ŀ", | ||||
|             "ł" | ||||
|           ], | ||||
|           [ | ||||
|             "ĵ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z", | ||||
|             "ź", | ||||
|             "ż", | ||||
|             "ž" | ||||
|           ], | ||||
|           [ | ||||
|             "ĉ", | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ć", | ||||
|             "č", | ||||
|             "ç", | ||||
|             "ċ" | ||||
|           ], | ||||
|           [ | ||||
|             "v", | ||||
|             "w", | ||||
|             "ŵ" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń", | ||||
|             "ņ", | ||||
|             "ň", | ||||
|             "ʼn", | ||||
|             "ŋ" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Ŝ", | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "Ĝ", | ||||
|             "W", | ||||
|             "Ŵ" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "Ě", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R", | ||||
|             "Ř", | ||||
|             "Ŕ", | ||||
|             "Ŗ" | ||||
|           ], | ||||
|           [ | ||||
|             "T", | ||||
|             "Ť", | ||||
|             "Ț", | ||||
|             "Ţ", | ||||
|             "Ŧ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ŭ", | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ŷ", | ||||
|             "Ÿ", | ||||
|             "Þ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ů", | ||||
|             "Û", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Ū", | ||||
|             "Ũ", | ||||
|             "Ű", | ||||
|             "Ų", | ||||
|             "Μ" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "Ĩ", | ||||
|             "Ì", | ||||
|             "Į", | ||||
|             "Ī", | ||||
|             "I", | ||||
|             "IJ" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō", | ||||
|             "Ő", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā", | ||||
|             "Ă", | ||||
|             "Ą", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "SS", | ||||
|             "Š", | ||||
|             "Ś", | ||||
|             "Ș", | ||||
|             "Ş" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Ð", | ||||
|             "Ď", | ||||
|             "Đ" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G", | ||||
|             "Ğ", | ||||
|             "Ġ", | ||||
|             "Ģ" | ||||
|           ], | ||||
|           [ | ||||
|             "H", | ||||
|             "Ĥ", | ||||
|             "Ħ" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K", | ||||
|             "Ķ", | ||||
|             "ĸ" | ||||
|           ], | ||||
|           [ | ||||
|             "L", | ||||
|             "Ĺ", | ||||
|             "Ļ", | ||||
|             "Ľ", | ||||
|             "Ŀ", | ||||
|             "Ł" | ||||
|           ], | ||||
|           [ | ||||
|             "Ĵ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ź", | ||||
|             "Ż", | ||||
|             "Ž" | ||||
|           ], | ||||
|           [ | ||||
|             "Ĉ", | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ć", | ||||
|             "Č", | ||||
|             "Ç", | ||||
|             "Ċ" | ||||
|           ], | ||||
|           [ | ||||
|             "V", | ||||
|             "W", | ||||
|             "Ŵ" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń", | ||||
|             "Ņ", | ||||
|             "Ň", | ||||
|             "ʼN", | ||||
|             "Ŋ" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "eo", | ||||
|   "name": "Esperanto" | ||||
| } | ||||
							
								
								
									
										602
									
								
								data/osk-layouts/es+cat.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										602
									
								
								data/osk-layouts/es+cat.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,602 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "è", | ||||
|             "é", | ||||
|             "ë", | ||||
|             "ê", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "û", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "î", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "õ", | ||||
|             "ø", | ||||
|             "œ", | ||||
|             "ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "à", | ||||
|             "á", | ||||
|             "ä", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ą", | ||||
|             "æ", | ||||
|             "ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l", | ||||
|             "l·l", | ||||
|             "ł" | ||||
|           ], | ||||
|           [ | ||||
|             "ç" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç", | ||||
|             "ć", | ||||
|             "č" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "·", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             ":", | ||||
|             ";", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "È", | ||||
|             "É", | ||||
|             "Ë", | ||||
|             "Ê", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Û", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Î", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Õ", | ||||
|             "Ø", | ||||
|             "Œ", | ||||
|             "Ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Ä", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ą", | ||||
|             "Æ", | ||||
|             "Ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L", | ||||
|             "L·L", | ||||
|             "Ł" | ||||
|           ], | ||||
|           [ | ||||
|             "Ç" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç", | ||||
|             "Ć", | ||||
|             "Č" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "·", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             ":", | ||||
|             ";", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "?", | ||||
|             "·" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "?", | ||||
|             "·" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "ca", | ||||
|   "name": "Catalan" | ||||
| } | ||||
							
								
								
									
										604
									
								
								data/osk-layouts/es.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										604
									
								
								data/osk-layouts/es.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,604 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "è", | ||||
|             "ë", | ||||
|             "ê", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "û", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "î", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ò", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "õ", | ||||
|             "ø", | ||||
|             "œ", | ||||
|             "ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "à", | ||||
|             "ä", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ą", | ||||
|             "æ", | ||||
|             "ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ], | ||||
|           [ | ||||
|             "ñ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç", | ||||
|             "ć", | ||||
|             "č" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             ";", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             ":", | ||||
|             "¡", | ||||
|             "@", | ||||
|             "¿" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "È", | ||||
|             "Ë", | ||||
|             "Ê", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Û", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Î", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ò", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Õ", | ||||
|             "Ø", | ||||
|             "Œ", | ||||
|             "Ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "À", | ||||
|             "Ä", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ą", | ||||
|             "Æ", | ||||
|             "Ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ], | ||||
|           [ | ||||
|             "Ñ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç", | ||||
|             "Ć", | ||||
|             "Č" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             ";", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             ":", | ||||
|             "¡", | ||||
|             "@", | ||||
|             "¿" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ",", | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ",", | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "es", | ||||
|   "name": "Spanish" | ||||
| } | ||||
							
								
								
									
										570
									
								
								data/osk-layouts/fi.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										570
									
								
								data/osk-layouts/fi.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,570 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ü" | ||||
|           ], | ||||
|           [ | ||||
|             "i" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ø", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ], | ||||
|           [ | ||||
|             "å" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "æ", | ||||
|             "à", | ||||
|             "á", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "š", | ||||
|             "ß", | ||||
|             "ś" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ], | ||||
|           [ | ||||
|             "ö", | ||||
|             "ø" | ||||
|           ], | ||||
|           [ | ||||
|             "ä", | ||||
|             "æ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z", | ||||
|             "ž", | ||||
|             "ź", | ||||
|             "ż" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ü" | ||||
|           ], | ||||
|           [ | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ø", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ], | ||||
|           [ | ||||
|             "Å" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Æ", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Š", | ||||
|             "SS", | ||||
|             "Ś" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ], | ||||
|           [ | ||||
|             "Ö", | ||||
|             "Ø" | ||||
|           ], | ||||
|           [ | ||||
|             "Ä", | ||||
|             "Æ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ž", | ||||
|             "Ź", | ||||
|             "Ż" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "fi", | ||||
|   "name": "Finnish" | ||||
| } | ||||
							
								
								
									
										614
									
								
								data/osk-layouts/fr.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										614
									
								
								data/osk-layouts/fr.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,614 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "à", | ||||
|             "â", | ||||
|             "%", | ||||
|             "æ", | ||||
|             "á", | ||||
|             "ä", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "%", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "%", | ||||
|             "ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ù", | ||||
|             "û", | ||||
|             "%", | ||||
|             "ü", | ||||
|             "ú", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "î", | ||||
|             "%", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "í", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ô", | ||||
|             "œ", | ||||
|             "%", | ||||
|             "ö", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "õ", | ||||
|             "ø", | ||||
|             "ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç", | ||||
|             "ć", | ||||
|             "č" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "%", | ||||
|             "Æ", | ||||
|             "Á", | ||||
|             "Ä", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "%", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "%", | ||||
|             "Ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ù", | ||||
|             "Û", | ||||
|             "%", | ||||
|             "Ü", | ||||
|             "Ú", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Î", | ||||
|             "%", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Í", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ô", | ||||
|             "Œ", | ||||
|             "%", | ||||
|             "Ö", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Õ", | ||||
|             "Ø", | ||||
|             "Ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç", | ||||
|             "Ć", | ||||
|             "Č" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "fr", | ||||
|   "name": "French" | ||||
| } | ||||
							
								
								
									
										409
									
								
								data/osk-layouts/ge.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										409
									
								
								data/osk-layouts/ge.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,409 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "ქ" | ||||
|           ], | ||||
|           [ | ||||
|             "წ" | ||||
|           ], | ||||
|           [ | ||||
|             "ე", | ||||
|             "ჱ" | ||||
|           ], | ||||
|           [ | ||||
|             "რ" | ||||
|           ], | ||||
|           [ | ||||
|             "ტ" | ||||
|           ], | ||||
|           [ | ||||
|             "ყ", | ||||
|             "ჸ" | ||||
|           ], | ||||
|           [ | ||||
|             "უ" | ||||
|           ], | ||||
|           [ | ||||
|             "ი", | ||||
|             "ჲ" | ||||
|           ], | ||||
|           [ | ||||
|             "ო" | ||||
|           ], | ||||
|           [ | ||||
|             "პ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ა", | ||||
|             "ჺ" | ||||
|           ], | ||||
|           [ | ||||
|             "ს" | ||||
|           ], | ||||
|           [ | ||||
|             "დ" | ||||
|           ], | ||||
|           [ | ||||
|             "ფ", | ||||
|             "ჶ" | ||||
|           ], | ||||
|           [ | ||||
|             "გ", | ||||
|             "ჹ" | ||||
|           ], | ||||
|           [ | ||||
|             "ჰ", | ||||
|             "ჵ" | ||||
|           ], | ||||
|           [ | ||||
|             "ჯ", | ||||
|             "ჷ" | ||||
|           ], | ||||
|           [ | ||||
|             "კ" | ||||
|           ], | ||||
|           [ | ||||
|             "ლ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ზ" | ||||
|           ], | ||||
|           [ | ||||
|             "ხ", | ||||
|             "ჴ" | ||||
|           ], | ||||
|           [ | ||||
|             "ც" | ||||
|           ], | ||||
|           [ | ||||
|             "ვ", | ||||
|             "ჳ" | ||||
|           ], | ||||
|           [ | ||||
|             "ბ" | ||||
|           ], | ||||
|           [ | ||||
|             "ნ", | ||||
|             "ჼ" | ||||
|           ], | ||||
|           [ | ||||
|             "მ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "ka", | ||||
|   "name": "Georgian" | ||||
| } | ||||
							
								
								
									
										532
									
								
								data/osk-layouts/gr.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										532
									
								
								data/osk-layouts/gr.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,532 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             ";", | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             "ς" | ||||
|           ], | ||||
|           [ | ||||
|             "ε", | ||||
|             "έ" | ||||
|           ], | ||||
|           [ | ||||
|             "ρ" | ||||
|           ], | ||||
|           [ | ||||
|             "τ" | ||||
|           ], | ||||
|           [ | ||||
|             "υ", | ||||
|             "ύ", | ||||
|             "ϋ", | ||||
|             "ΰ" | ||||
|           ], | ||||
|           [ | ||||
|             "θ" | ||||
|           ], | ||||
|           [ | ||||
|             "ι", | ||||
|             "ί", | ||||
|             "ϊ", | ||||
|             "ΐ" | ||||
|           ], | ||||
|           [ | ||||
|             "ο", | ||||
|             "ό" | ||||
|           ], | ||||
|           [ | ||||
|             "π" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "α", | ||||
|             "ά" | ||||
|           ], | ||||
|           [ | ||||
|             "σ" | ||||
|           ], | ||||
|           [ | ||||
|             "δ" | ||||
|           ], | ||||
|           [ | ||||
|             "φ" | ||||
|           ], | ||||
|           [ | ||||
|             "γ" | ||||
|           ], | ||||
|           [ | ||||
|             "η", | ||||
|             "ή" | ||||
|           ], | ||||
|           [ | ||||
|             "ξ" | ||||
|           ], | ||||
|           [ | ||||
|             "κ" | ||||
|           ], | ||||
|           [ | ||||
|             "λ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ζ" | ||||
|           ], | ||||
|           [ | ||||
|             "χ" | ||||
|           ], | ||||
|           [ | ||||
|             "ψ" | ||||
|           ], | ||||
|           [ | ||||
|             "ω", | ||||
|             "ώ" | ||||
|           ], | ||||
|           [ | ||||
|             "β" | ||||
|           ], | ||||
|           [ | ||||
|             "ν" | ||||
|           ], | ||||
|           [ | ||||
|             "μ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             ";", | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             "Σ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ε", | ||||
|             "Έ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ρ" | ||||
|           ], | ||||
|           [ | ||||
|             "Τ" | ||||
|           ], | ||||
|           [ | ||||
|             "Υ", | ||||
|             "Ύ", | ||||
|             "Ϋ", | ||||
|             "Ϋ́" | ||||
|           ], | ||||
|           [ | ||||
|             "Θ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ι", | ||||
|             "Ί", | ||||
|             "Ϊ", | ||||
|             "Ϊ́" | ||||
|           ], | ||||
|           [ | ||||
|             "Ο", | ||||
|             "Ό" | ||||
|           ], | ||||
|           [ | ||||
|             "Π" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Α", | ||||
|             "Ά" | ||||
|           ], | ||||
|           [ | ||||
|             "Σ" | ||||
|           ], | ||||
|           [ | ||||
|             "Δ" | ||||
|           ], | ||||
|           [ | ||||
|             "Φ" | ||||
|           ], | ||||
|           [ | ||||
|             "Γ" | ||||
|           ], | ||||
|           [ | ||||
|             "Η", | ||||
|             "Ή" | ||||
|           ], | ||||
|           [ | ||||
|             "Ξ" | ||||
|           ], | ||||
|           [ | ||||
|             "Κ" | ||||
|           ], | ||||
|           [ | ||||
|             "Λ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Ζ" | ||||
|           ], | ||||
|           [ | ||||
|             "Χ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ψ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ω", | ||||
|             "Ώ" | ||||
|           ], | ||||
|           [ | ||||
|             "Β" | ||||
|           ], | ||||
|           [ | ||||
|             "Ν" | ||||
|           ], | ||||
|           [ | ||||
|             "Μ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "el", | ||||
|   "name": "Greek" | ||||
| } | ||||
							
								
								
									
										531
									
								
								data/osk-layouts/hr.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										531
									
								
								data/osk-layouts/hr.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,531 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "z", | ||||
|             "ž", | ||||
|             "ź", | ||||
|             "ż" | ||||
|           ], | ||||
|           [ | ||||
|             "u" | ||||
|           ], | ||||
|           [ | ||||
|             "i" | ||||
|           ], | ||||
|           [ | ||||
|             "o" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "š", | ||||
|             "ś", | ||||
|             "ß" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "đ" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "č", | ||||
|             "ć", | ||||
|             "ç" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ž", | ||||
|             "Ź", | ||||
|             "Ż" | ||||
|           ], | ||||
|           [ | ||||
|             "U" | ||||
|           ], | ||||
|           [ | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Š", | ||||
|             "Ś", | ||||
|             "SS" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Đ" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Č", | ||||
|             "Ć", | ||||
|             "Ç" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "hr", | ||||
|   "name": "Croatian" | ||||
| } | ||||
							
								
								
									
										579
									
								
								data/osk-layouts/hu.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										579
									
								
								data/osk-layouts/hu.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,579 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ü", | ||||
|             "ű", | ||||
|             "û", | ||||
|             "ù", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ö", | ||||
|             "ő", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "à", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ü", | ||||
|             "Ű", | ||||
|             "Û", | ||||
|             "Ù", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ö", | ||||
|             "Ő", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "hu", | ||||
|   "name": "Hungarian" | ||||
| } | ||||
							
								
								
									
										507
									
								
								data/osk-layouts/id.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										507
									
								
								data/osk-layouts/id.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,507 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u" | ||||
|           ], | ||||
|           [ | ||||
|             "i" | ||||
|           ], | ||||
|           [ | ||||
|             "o" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U" | ||||
|           ], | ||||
|           [ | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "id", | ||||
|   "name": "Indonesian" | ||||
| } | ||||
							
								
								
									
										419
									
								
								data/osk-layouts/il.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										419
									
								
								data/osk-layouts/il.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,419 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "'", | ||||
|             "\"" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "ק" | ||||
|           ], | ||||
|           [ | ||||
|             "ר" | ||||
|           ], | ||||
|           [ | ||||
|             "א" | ||||
|           ], | ||||
|           [ | ||||
|             "ט" | ||||
|           ], | ||||
|           [ | ||||
|             "ו" | ||||
|           ], | ||||
|           [ | ||||
|             "ן" | ||||
|           ], | ||||
|           [ | ||||
|             "ם" | ||||
|           ], | ||||
|           [ | ||||
|             "פ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ש" | ||||
|           ], | ||||
|           [ | ||||
|             "ד" | ||||
|           ], | ||||
|           [ | ||||
|             "ג", | ||||
|             "ג׳" | ||||
|           ], | ||||
|           [ | ||||
|             "כ" | ||||
|           ], | ||||
|           [ | ||||
|             "ע" | ||||
|           ], | ||||
|           [ | ||||
|             "י", | ||||
|             "ײַ" | ||||
|           ], | ||||
|           [ | ||||
|             "ח", | ||||
|             "ח׳" | ||||
|           ], | ||||
|           [ | ||||
|             "ל" | ||||
|           ], | ||||
|           [ | ||||
|             "ך" | ||||
|           ], | ||||
|           [ | ||||
|             "ף" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ז", | ||||
|             "ז׳" | ||||
|           ], | ||||
|           [ | ||||
|             "ס" | ||||
|           ], | ||||
|           [ | ||||
|             "ב" | ||||
|           ], | ||||
|           [ | ||||
|             "ה" | ||||
|           ], | ||||
|           [ | ||||
|             "נ" | ||||
|           ], | ||||
|           [ | ||||
|             "מ" | ||||
|           ], | ||||
|           [ | ||||
|             "צ", | ||||
|             "צ׳" | ||||
|           ], | ||||
|           [ | ||||
|             "ת", | ||||
|             "ת׳" | ||||
|           ], | ||||
|           [ | ||||
|             "ץ", | ||||
|             "ץ׳" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "₪", | ||||
|             "$", | ||||
|             "¢", | ||||
|             "€", | ||||
|             "£", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±", | ||||
|             "﬩" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ",", | ||||
|             "!" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "?" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ",", | ||||
|             "!" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "?" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "he", | ||||
|   "name": "Hebrew" | ||||
| } | ||||
							
								
								
									
										439
									
								
								data/osk-layouts/in+bolnagri.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										439
									
								
								data/osk-layouts/in+bolnagri.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,439 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "◌ौ" | ||||
|           ], | ||||
|           [ | ||||
|             "◌ै" | ||||
|           ], | ||||
|           [ | ||||
|             "◌ा" | ||||
|           ], | ||||
|           [ | ||||
|             "◌ी" | ||||
|           ], | ||||
|           [ | ||||
|             "◌ू" | ||||
|           ], | ||||
|           [ | ||||
|             "ब", | ||||
|             "ब॒", | ||||
|             "%" | ||||
|           ], | ||||
|           [ | ||||
|             "ह" | ||||
|           ], | ||||
|           [ | ||||
|             "ग", | ||||
|             "ज्ञ", | ||||
|             "ग़", | ||||
|             "ग॒", | ||||
|             "%" | ||||
|           ], | ||||
|           [ | ||||
|             "द" | ||||
|           ], | ||||
|           [ | ||||
|             "ज", | ||||
|             "ज॒", | ||||
|             "ज्ञ", | ||||
|             "ज़", | ||||
|             "%" | ||||
|           ], | ||||
|           [ | ||||
|             "ड", | ||||
|             "ड॒", | ||||
|             "ड़" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "◌ो" | ||||
|           ], | ||||
|           [ | ||||
|             "◌े" | ||||
|           ], | ||||
|           [ | ||||
|             "◌्" | ||||
|           ], | ||||
|           [ | ||||
|             "◌ि" | ||||
|           ], | ||||
|           [ | ||||
|             "◌ु" | ||||
|           ], | ||||
|           [ | ||||
|             "प" | ||||
|           ], | ||||
|           [ | ||||
|             "र", | ||||
|             "ऋ", | ||||
|             "ऱ", | ||||
|             "ॠ" | ||||
|           ], | ||||
|           [ | ||||
|             "क", | ||||
|             "क़" | ||||
|           ], | ||||
|           [ | ||||
|             "त", | ||||
|             "त्र" | ||||
|           ], | ||||
|           [ | ||||
|             "च" | ||||
|           ], | ||||
|           [ | ||||
|             "ट" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "◌ॉ" | ||||
|           ], | ||||
|           [ | ||||
|             "◌ं" | ||||
|           ], | ||||
|           [ | ||||
|             "म", | ||||
|             "ॐ" | ||||
|           ], | ||||
|           [ | ||||
|             "न", | ||||
|             "ञ", | ||||
|             "ङ", | ||||
|             "ऩ" | ||||
|           ], | ||||
|           [ | ||||
|             "व" | ||||
|           ], | ||||
|           [ | ||||
|             "ल", | ||||
|             "ऌ", | ||||
|             "ॡ" | ||||
|           ], | ||||
|           [ | ||||
|             "स" | ||||
|           ], | ||||
|           [ | ||||
|             "य", | ||||
|             "य़" | ||||
|           ], | ||||
|           [ | ||||
|             "◌़" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "१", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "२", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "३", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "४", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "५", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "६" | ||||
|           ], | ||||
|           [ | ||||
|             "७", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "८" | ||||
|           ], | ||||
|           [ | ||||
|             "९" | ||||
|           ], | ||||
|           [ | ||||
|             "०", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "₹", | ||||
|             "$", | ||||
|             "¢", | ||||
|             "€", | ||||
|             "£", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "hi", | ||||
|   "name": "Hindi" | ||||
| } | ||||
							
								
								
									
										495
									
								
								data/osk-layouts/ir.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										495
									
								
								data/osk-layouts/ir.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,495 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "ض" | ||||
|           ], | ||||
|           [ | ||||
|             "ص" | ||||
|           ], | ||||
|           [ | ||||
|             "ث" | ||||
|           ], | ||||
|           [ | ||||
|             "ق", | ||||
|             "ڨ" | ||||
|           ], | ||||
|           [ | ||||
|             "ف", | ||||
|             "ڤ", | ||||
|             "ڢ", | ||||
|             "ڥ" | ||||
|           ], | ||||
|           [ | ||||
|             "غ" | ||||
|           ], | ||||
|           [ | ||||
|             "ع" | ||||
|           ], | ||||
|           [ | ||||
|             "ه", | ||||
|             "ه" | ||||
|           ], | ||||
|           [ | ||||
|             "خ" | ||||
|           ], | ||||
|           [ | ||||
|             "ح" | ||||
|           ], | ||||
|           [ | ||||
|             "ج", | ||||
|             "چ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ش", | ||||
|             "ڜ" | ||||
|           ], | ||||
|           [ | ||||
|             "س" | ||||
|           ], | ||||
|           [ | ||||
|             "ي", | ||||
|             "ئ", | ||||
|             "ى" | ||||
|           ], | ||||
|           [ | ||||
|             "ب", | ||||
|             "پ" | ||||
|           ], | ||||
|           [ | ||||
|             "ل", | ||||
|             "لا", | ||||
|             "لأ", | ||||
|             "لإ", | ||||
|             "لآ" | ||||
|           ], | ||||
|           [ | ||||
|             "ا", | ||||
|             "آ", | ||||
|             "ء", | ||||
|             "أ", | ||||
|             "إ", | ||||
|             "ٱ" | ||||
|           ], | ||||
|           [ | ||||
|             "ت" | ||||
|           ], | ||||
|           [ | ||||
|             "ن" | ||||
|           ], | ||||
|           [ | ||||
|             "م" | ||||
|           ], | ||||
|           [ | ||||
|             "ك", | ||||
|             "گ", | ||||
|             "ک" | ||||
|           ], | ||||
|           [ | ||||
|             "ط" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ذ" | ||||
|           ], | ||||
|           [ | ||||
|             "ء" | ||||
|           ], | ||||
|           [ | ||||
|             "ؤ" | ||||
|           ], | ||||
|           [ | ||||
|             "ر" | ||||
|           ], | ||||
|           [ | ||||
|             "ى", | ||||
|             "ئ" | ||||
|           ], | ||||
|           [ | ||||
|             "ة" | ||||
|           ], | ||||
|           [ | ||||
|             "و" | ||||
|           ], | ||||
|           [ | ||||
|             "ز", | ||||
|             "ژ" | ||||
|           ], | ||||
|           [ | ||||
|             "ظ" | ||||
|           ], | ||||
|           [ | ||||
|             "د" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "،" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "\"", | ||||
|             "'", | ||||
|             "#", | ||||
|             "-", | ||||
|             ":", | ||||
|             "!", | ||||
|             "،", | ||||
|             "؟", | ||||
|             "@", | ||||
|             "&", | ||||
|             "%", | ||||
|             "+", | ||||
|             "؛", | ||||
|             "/", | ||||
|             ")", | ||||
|             "(" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "۱", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "۲", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "۳", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "۴", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "۵", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "۶" | ||||
|           ], | ||||
|           [ | ||||
|             "۷", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "۸" | ||||
|           ], | ||||
|           [ | ||||
|             "۹" | ||||
|           ], | ||||
|           [ | ||||
|             "۰", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "٬", | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "٫", | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "﷼", | ||||
|             "$", | ||||
|             "¢", | ||||
|             "€", | ||||
|             "£", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "٪", | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "﴿", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             "﴾", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "★", | ||||
|             "٭" | ||||
|           ], | ||||
|           [ | ||||
|             "«", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "»", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             "؛", | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "؟", | ||||
|             "?" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "،", | ||||
|             ":", | ||||
|             "!", | ||||
|             "؟", | ||||
|             "؛", | ||||
|             "-", | ||||
|             "/", | ||||
|             "»", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "ٕ", | ||||
|             "ٔ", | ||||
|             "ْ", | ||||
|             "ٍ", | ||||
|             "ٌ", | ||||
|             "ً", | ||||
|             "ّ", | ||||
|             "ٖ", | ||||
|             "ٰ", | ||||
|             "ٓ", | ||||
|             "ِ", | ||||
|             "ُ", | ||||
|             "َ", | ||||
|             "ـ" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "«", | ||||
|             "›", | ||||
|             "≥", | ||||
|             ">" | ||||
|           ], | ||||
|           [ | ||||
|             "»", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "<" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "،", | ||||
|             ":", | ||||
|             "!", | ||||
|             "؟", | ||||
|             "؛", | ||||
|             "-", | ||||
|             "/", | ||||
|             "»", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "ٕ", | ||||
|             "ٔ", | ||||
|             "ْ", | ||||
|             "ٍ", | ||||
|             "ٌ", | ||||
|             "ً", | ||||
|             "ّ", | ||||
|             "ٖ", | ||||
|             "ٰ", | ||||
|             "ٓ", | ||||
|             "ِ", | ||||
|             "ُ", | ||||
|             "َ", | ||||
|             "ـ" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "fa", | ||||
|   "name": "Persian" | ||||
| } | ||||
							
								
								
									
										583
									
								
								data/osk-layouts/is.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										583
									
								
								data/osk-layouts/is.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,583 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "ë", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t", | ||||
|             "þ" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ü", | ||||
|             "û", | ||||
|             "ù", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ï", | ||||
|             "î", | ||||
|             "ì", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "å", | ||||
|             "à", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "ð" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "Ë", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T", | ||||
|             "Þ" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ü", | ||||
|             "Û", | ||||
|             "Ù", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ï", | ||||
|             "Î", | ||||
|             "Ì", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Å", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Ð" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "is", | ||||
|   "name": "Icelandic" | ||||
| } | ||||
							
								
								
									
										580
									
								
								data/osk-layouts/it.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										580
									
								
								data/osk-layouts/it.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,580 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "è", | ||||
|             "é", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "û", | ||||
|             "ü", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "ì", | ||||
|             "í", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "ô", | ||||
|             "ö", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "à", | ||||
|             "á", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "È", | ||||
|             "É", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Û", | ||||
|             "Ü", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Ì", | ||||
|             "Í", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Ô", | ||||
|             "Ö", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "it", | ||||
|   "name": "Italian" | ||||
| } | ||||
							
								
								
									
										577
									
								
								data/osk-layouts/ke.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										577
									
								
								data/osk-layouts/ke.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,577 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "è", | ||||
|             "é", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "û", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "í", | ||||
|             "ī", | ||||
|             "ì" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ô", | ||||
|             "ö", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō", | ||||
|             "õ" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "à", | ||||
|             "á", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ß" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g", | ||||
|             "g'" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "È", | ||||
|             "É", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Û", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "Í", | ||||
|             "Ī", | ||||
|             "Ì" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ô", | ||||
|             "Ö", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō", | ||||
|             "Õ" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "SS" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G", | ||||
|             "G'" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "sw", | ||||
|   "name": "Swahili" | ||||
| } | ||||
							
								
								
									
										547
									
								
								data/osk-layouts/kg.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										547
									
								
								data/osk-layouts/kg.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,547 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "й" | ||||
|           ], | ||||
|           [ | ||||
|             "ц" | ||||
|           ], | ||||
|           [ | ||||
|             "у", | ||||
|             "ү" | ||||
|           ], | ||||
|           [ | ||||
|             "к" | ||||
|           ], | ||||
|           [ | ||||
|             "е", | ||||
|             "ё" | ||||
|           ], | ||||
|           [ | ||||
|             "н", | ||||
|             "ң" | ||||
|           ], | ||||
|           [ | ||||
|             "г" | ||||
|           ], | ||||
|           [ | ||||
|             "ш" | ||||
|           ], | ||||
|           [ | ||||
|             "щ" | ||||
|           ], | ||||
|           [ | ||||
|             "з" | ||||
|           ], | ||||
|           [ | ||||
|             "х" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ф" | ||||
|           ], | ||||
|           [ | ||||
|             "ы" | ||||
|           ], | ||||
|           [ | ||||
|             "в" | ||||
|           ], | ||||
|           [ | ||||
|             "а" | ||||
|           ], | ||||
|           [ | ||||
|             "п" | ||||
|           ], | ||||
|           [ | ||||
|             "р" | ||||
|           ], | ||||
|           [ | ||||
|             "о", | ||||
|             "ө" | ||||
|           ], | ||||
|           [ | ||||
|             "л" | ||||
|           ], | ||||
|           [ | ||||
|             "д" | ||||
|           ], | ||||
|           [ | ||||
|             "ж" | ||||
|           ], | ||||
|           [ | ||||
|             "э" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "я" | ||||
|           ], | ||||
|           [ | ||||
|             "ч" | ||||
|           ], | ||||
|           [ | ||||
|             "с" | ||||
|           ], | ||||
|           [ | ||||
|             "м" | ||||
|           ], | ||||
|           [ | ||||
|             "и" | ||||
|           ], | ||||
|           [ | ||||
|             "т" | ||||
|           ], | ||||
|           [ | ||||
|             "ь", | ||||
|             "ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "б" | ||||
|           ], | ||||
|           [ | ||||
|             "ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Й" | ||||
|           ], | ||||
|           [ | ||||
|             "Ц" | ||||
|           ], | ||||
|           [ | ||||
|             "У", | ||||
|             "Ү" | ||||
|           ], | ||||
|           [ | ||||
|             "К" | ||||
|           ], | ||||
|           [ | ||||
|             "Е", | ||||
|             "Ё" | ||||
|           ], | ||||
|           [ | ||||
|             "Н", | ||||
|             "Ң" | ||||
|           ], | ||||
|           [ | ||||
|             "Г" | ||||
|           ], | ||||
|           [ | ||||
|             "Ш" | ||||
|           ], | ||||
|           [ | ||||
|             "Щ" | ||||
|           ], | ||||
|           [ | ||||
|             "З" | ||||
|           ], | ||||
|           [ | ||||
|             "Х" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Ф" | ||||
|           ], | ||||
|           [ | ||||
|             "Ы" | ||||
|           ], | ||||
|           [ | ||||
|             "В" | ||||
|           ], | ||||
|           [ | ||||
|             "А" | ||||
|           ], | ||||
|           [ | ||||
|             "П" | ||||
|           ], | ||||
|           [ | ||||
|             "Р" | ||||
|           ], | ||||
|           [ | ||||
|             "О", | ||||
|             "Ө" | ||||
|           ], | ||||
|           [ | ||||
|             "Л" | ||||
|           ], | ||||
|           [ | ||||
|             "Д" | ||||
|           ], | ||||
|           [ | ||||
|             "Ж" | ||||
|           ], | ||||
|           [ | ||||
|             "Э" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Я" | ||||
|           ], | ||||
|           [ | ||||
|             "Ч" | ||||
|           ], | ||||
|           [ | ||||
|             "С" | ||||
|           ], | ||||
|           [ | ||||
|             "М" | ||||
|           ], | ||||
|           [ | ||||
|             "И" | ||||
|           ], | ||||
|           [ | ||||
|             "Т" | ||||
|           ], | ||||
|           [ | ||||
|             "Ь", | ||||
|             "Ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "Б" | ||||
|           ], | ||||
|           [ | ||||
|             "Ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "ky", | ||||
|   "name": "Kirghiz" | ||||
| } | ||||
							
								
								
									
										481
									
								
								data/osk-layouts/kh.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										481
									
								
								data/osk-layouts/kh.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,481 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "១", | ||||
|             "៱" | ||||
|           ], | ||||
|           [ | ||||
|             "២", | ||||
|             "៲" | ||||
|           ], | ||||
|           [ | ||||
|             "៣", | ||||
|             "៳" | ||||
|           ], | ||||
|           [ | ||||
|             "៤", | ||||
|             "៴" | ||||
|           ], | ||||
|           [ | ||||
|             "៥", | ||||
|             "៵" | ||||
|           ], | ||||
|           [ | ||||
|             "៦", | ||||
|             "៶" | ||||
|           ], | ||||
|           [ | ||||
|             "៧", | ||||
|             "៷" | ||||
|           ], | ||||
|           [ | ||||
|             "៨", | ||||
|             "៸" | ||||
|           ], | ||||
|           [ | ||||
|             "៩", | ||||
|             "៹" | ||||
|           ], | ||||
|           [ | ||||
|             "០", | ||||
|             "៰" | ||||
|           ], | ||||
|           [ | ||||
|             "ឥ", | ||||
|             "", | ||||
|             "ឦ" | ||||
|           ], | ||||
|           [ | ||||
|             "ឲ", | ||||
|             "ឱ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ឆ" | ||||
|           ], | ||||
|           [ | ||||
|             "ឹ" | ||||
|           ], | ||||
|           [ | ||||
|             "េ" | ||||
|           ], | ||||
|           [ | ||||
|             "រ" | ||||
|           ], | ||||
|           [ | ||||
|             "ត" | ||||
|           ], | ||||
|           [ | ||||
|             "យ" | ||||
|           ], | ||||
|           [ | ||||
|             "ុ" | ||||
|           ], | ||||
|           [ | ||||
|             "ិ" | ||||
|           ], | ||||
|           [ | ||||
|             "ោ" | ||||
|           ], | ||||
|           [ | ||||
|             "ផ" | ||||
|           ], | ||||
|           [ | ||||
|             "ៀ" | ||||
|           ], | ||||
|           [ | ||||
|             "ឪ", | ||||
|             "ឧ", | ||||
|             "ឱ", | ||||
|             "ឳ", | ||||
|             "ឩ", | ||||
|             "ឨ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ា" | ||||
|           ], | ||||
|           [ | ||||
|             "ស" | ||||
|           ], | ||||
|           [ | ||||
|             "ដ" | ||||
|           ], | ||||
|           [ | ||||
|             "ថ" | ||||
|           ], | ||||
|           [ | ||||
|             "ង" | ||||
|           ], | ||||
|           [ | ||||
|             "ហ" | ||||
|           ], | ||||
|           [ | ||||
|             "្" | ||||
|           ], | ||||
|           [ | ||||
|             "ក" | ||||
|           ], | ||||
|           [ | ||||
|             "ល" | ||||
|           ], | ||||
|           [ | ||||
|             "ើ" | ||||
|           ], | ||||
|           [ | ||||
|             "់" | ||||
|           ], | ||||
|           [ | ||||
|             "ឮ", | ||||
|             "ឭ", | ||||
|             "ឰ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ឋ" | ||||
|           ], | ||||
|           [ | ||||
|             "ខ" | ||||
|           ], | ||||
|           [ | ||||
|             "ច" | ||||
|           ], | ||||
|           [ | ||||
|             "វ" | ||||
|           ], | ||||
|           [ | ||||
|             "ប" | ||||
|           ], | ||||
|           [ | ||||
|             "ន" | ||||
|           ], | ||||
|           [ | ||||
|             "ម" | ||||
|           ], | ||||
|           [ | ||||
|             "ុំ" | ||||
|           ], | ||||
|           [ | ||||
|             "។" | ||||
|           ], | ||||
|           [ | ||||
|             "៊" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "៛", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "km", | ||||
|   "name": "Khmer" | ||||
| } | ||||
							
								
								
									
										472
									
								
								data/osk-layouts/la.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										472
									
								
								data/osk-layouts/la.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,472 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "ຢ", | ||||
|             "໑" | ||||
|           ], | ||||
|           [ | ||||
|             "ຟ", | ||||
|             "໒" | ||||
|           ], | ||||
|           [ | ||||
|             "ໂ", | ||||
|             "໓" | ||||
|           ], | ||||
|           [ | ||||
|             "ຖ", | ||||
|             "໔" | ||||
|           ], | ||||
|           [ | ||||
|             "ຸ" | ||||
|           ], | ||||
|           [ | ||||
|             "ູ" | ||||
|           ], | ||||
|           [ | ||||
|             "ຄ", | ||||
|             "໕" | ||||
|           ], | ||||
|           [ | ||||
|             "ຕ", | ||||
|             "໖" | ||||
|           ], | ||||
|           [ | ||||
|             "ຈ", | ||||
|             "໗" | ||||
|           ], | ||||
|           [ | ||||
|             "ຂ", | ||||
|             "໘" | ||||
|           ], | ||||
|           [ | ||||
|             "ຊ", | ||||
|             "໙" | ||||
|           ], | ||||
|           [ | ||||
|             "ໍ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ົ" | ||||
|           ], | ||||
|           [ | ||||
|             "ໄ", | ||||
|             "໐" | ||||
|           ], | ||||
|           [ | ||||
|             "ຳ" | ||||
|           ], | ||||
|           [ | ||||
|             "ພ" | ||||
|           ], | ||||
|           [ | ||||
|             "ະ" | ||||
|           ], | ||||
|           [ | ||||
|             "ິ" | ||||
|           ], | ||||
|           [ | ||||
|             "ີ" | ||||
|           ], | ||||
|           [ | ||||
|             "ຮ" | ||||
|           ], | ||||
|           [ | ||||
|             "ນ" | ||||
|           ], | ||||
|           [ | ||||
|             "ຍ" | ||||
|           ], | ||||
|           [ | ||||
|             "ບ" | ||||
|           ], | ||||
|           [ | ||||
|             "ລ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ັ" | ||||
|           ], | ||||
|           [ | ||||
|             "ຫ" | ||||
|           ], | ||||
|           [ | ||||
|             "ກ" | ||||
|           ], | ||||
|           [ | ||||
|             "ດ" | ||||
|           ], | ||||
|           [ | ||||
|             "ເ" | ||||
|           ], | ||||
|           [ | ||||
|             "້" | ||||
|           ], | ||||
|           [ | ||||
|             "່" | ||||
|           ], | ||||
|           [ | ||||
|             "າ" | ||||
|           ], | ||||
|           [ | ||||
|             "ສ" | ||||
|           ], | ||||
|           [ | ||||
|             "ວ" | ||||
|           ], | ||||
|           [ | ||||
|             "ງ" | ||||
|           ], | ||||
|           [ | ||||
|             "“" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ຜ" | ||||
|           ], | ||||
|           [ | ||||
|             "ປ" | ||||
|           ], | ||||
|           [ | ||||
|             "ແ" | ||||
|           ], | ||||
|           [ | ||||
|             "ອ" | ||||
|           ], | ||||
|           [ | ||||
|             "ຶ" | ||||
|           ], | ||||
|           [ | ||||
|             "ື" | ||||
|           ], | ||||
|           [ | ||||
|             "ທ" | ||||
|           ], | ||||
|           [ | ||||
|             "ມ" | ||||
|           ], | ||||
|           [ | ||||
|             "ໃ" | ||||
|           ], | ||||
|           [ | ||||
|             "ຝ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "₭", | ||||
|             "$", | ||||
|             "¢", | ||||
|             "€", | ||||
|             "£", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "lo", | ||||
|   "name": "Lao" | ||||
| } | ||||
							
								
								
									
										603
									
								
								data/osk-layouts/latam.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										603
									
								
								data/osk-layouts/latam.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,603 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "è", | ||||
|             "ë", | ||||
|             "ê", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "û", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "î", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ò", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "õ", | ||||
|             "ø", | ||||
|             "œ", | ||||
|             "ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "à", | ||||
|             "ä", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ą", | ||||
|             "æ", | ||||
|             "ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ], | ||||
|           [ | ||||
|             "ñ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç", | ||||
|             "ć", | ||||
|             "č" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             ";", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             ":", | ||||
|             "¡", | ||||
|             "@", | ||||
|             "¿" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "È", | ||||
|             "Ë", | ||||
|             "Ê", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Û", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Î", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ò", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Õ", | ||||
|             "Ø", | ||||
|             "Œ", | ||||
|             "Ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "À", | ||||
|             "Ä", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ą", | ||||
|             "Æ", | ||||
|             "Ā", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ], | ||||
|           [ | ||||
|             "Ñ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç", | ||||
|             "Ć", | ||||
|             "Č" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             ";", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             ":", | ||||
|             "¡", | ||||
|             "@", | ||||
|             "¿" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ",", | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ",", | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "es-US", | ||||
|   "name": "Spanish United States" | ||||
| } | ||||
							
								
								
									
										647
									
								
								data/osk-layouts/lt.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										647
									
								
								data/osk-layouts/lt.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,647 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "ė", | ||||
|             "ę", | ||||
|             "ē", | ||||
|             "è", | ||||
|             "é", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ě" | ||||
|           ], | ||||
|           [ | ||||
|             "r", | ||||
|             "ŗ", | ||||
|             "ř", | ||||
|             "ŕ" | ||||
|           ], | ||||
|           [ | ||||
|             "t", | ||||
|             "ţ", | ||||
|             "ť" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ū", | ||||
|             "ų", | ||||
|             "ü", | ||||
|             "ū", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "û", | ||||
|             "ů", | ||||
|             "ű" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "į", | ||||
|             "ī", | ||||
|             "ì", | ||||
|             "í", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "ı" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ö", | ||||
|             "õ", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "ô", | ||||
|             "œ", | ||||
|             "ő", | ||||
|             "ø" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "ą", | ||||
|             "ä", | ||||
|             "ā", | ||||
|             "à", | ||||
|             "á", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "æ" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "š", | ||||
|             "ß", | ||||
|             "ś", | ||||
|             "ş" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "ď" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g", | ||||
|             "ģ", | ||||
|             "ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k", | ||||
|             "ķ" | ||||
|           ], | ||||
|           [ | ||||
|             "l", | ||||
|             "ļ", | ||||
|             "ł", | ||||
|             "ĺ", | ||||
|             "ľ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z", | ||||
|             "ž", | ||||
|             "ż", | ||||
|             "ź" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "č", | ||||
|             "ç", | ||||
|             "ć" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ņ", | ||||
|             "ñ", | ||||
|             "ń", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "Ė", | ||||
|             "Ę", | ||||
|             "Ē", | ||||
|             "È", | ||||
|             "É", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ě" | ||||
|           ], | ||||
|           [ | ||||
|             "R", | ||||
|             "Ŗ", | ||||
|             "Ř", | ||||
|             "Ŕ" | ||||
|           ], | ||||
|           [ | ||||
|             "T", | ||||
|             "Ţ", | ||||
|             "Ť" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ū", | ||||
|             "Ų", | ||||
|             "Ü", | ||||
|             "Ū", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Û", | ||||
|             "Ů", | ||||
|             "Ű" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Į", | ||||
|             "Ī", | ||||
|             "Ì", | ||||
|             "Í", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ö", | ||||
|             "Õ", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Ô", | ||||
|             "Œ", | ||||
|             "Ő", | ||||
|             "Ø" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Ą", | ||||
|             "Ä", | ||||
|             "Ā", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Æ" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Š", | ||||
|             "SS", | ||||
|             "Ś", | ||||
|             "Ş" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Ď" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G", | ||||
|             "Ģ", | ||||
|             "Ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K", | ||||
|             "Ķ" | ||||
|           ], | ||||
|           [ | ||||
|             "L", | ||||
|             "Ļ", | ||||
|             "Ł", | ||||
|             "Ĺ", | ||||
|             "Ľ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ž", | ||||
|             "Ż", | ||||
|             "Ź" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Č", | ||||
|             "Ç", | ||||
|             "Ć" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ņ", | ||||
|             "Ñ", | ||||
|             "Ń", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "lt", | ||||
|   "name": "Lithuanian" | ||||
| } | ||||
							
								
								
									
										645
									
								
								data/osk-layouts/lv.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										645
									
								
								data/osk-layouts/lv.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,645 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "ē", | ||||
|             "ė", | ||||
|             "è", | ||||
|             "é", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ę", | ||||
|             "ě" | ||||
|           ], | ||||
|           [ | ||||
|             "r", | ||||
|             "ŗ", | ||||
|             "ř", | ||||
|             "ŕ" | ||||
|           ], | ||||
|           [ | ||||
|             "t", | ||||
|             "ţ", | ||||
|             "ť" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ū", | ||||
|             "ų", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "û", | ||||
|             "ü", | ||||
|             "ů", | ||||
|             "ű" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "ī", | ||||
|             "į", | ||||
|             "ì", | ||||
|             "í", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "ı" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "ô", | ||||
|             "õ", | ||||
|             "ö", | ||||
|             "œ", | ||||
|             "ő", | ||||
|             "ø" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "ā", | ||||
|             "à", | ||||
|             "á", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "ä", | ||||
|             "å", | ||||
|             "æ", | ||||
|             "ą" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "š", | ||||
|             "ß", | ||||
|             "ś", | ||||
|             "ş" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "ď" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g", | ||||
|             "ģ", | ||||
|             "ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k", | ||||
|             "ķ" | ||||
|           ], | ||||
|           [ | ||||
|             "l", | ||||
|             "ļ", | ||||
|             "ł", | ||||
|             "ĺ", | ||||
|             "ľ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z", | ||||
|             "ž", | ||||
|             "ż", | ||||
|             "ź" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "č", | ||||
|             "ç", | ||||
|             "ć" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ņ", | ||||
|             "ñ", | ||||
|             "ń", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "Ē", | ||||
|             "Ė", | ||||
|             "È", | ||||
|             "É", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ę", | ||||
|             "Ě" | ||||
|           ], | ||||
|           [ | ||||
|             "R", | ||||
|             "Ŗ", | ||||
|             "Ř", | ||||
|             "Ŕ" | ||||
|           ], | ||||
|           [ | ||||
|             "T", | ||||
|             "Ţ", | ||||
|             "Ť" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ū", | ||||
|             "Ų", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Û", | ||||
|             "Ü", | ||||
|             "Ů", | ||||
|             "Ű" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Ī", | ||||
|             "Į", | ||||
|             "Ì", | ||||
|             "Í", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Ô", | ||||
|             "Õ", | ||||
|             "Ö", | ||||
|             "Œ", | ||||
|             "Ő", | ||||
|             "Ø" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Ā", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Ä", | ||||
|             "Å", | ||||
|             "Æ", | ||||
|             "Ą" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Š", | ||||
|             "SS", | ||||
|             "Ś", | ||||
|             "Ş" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Ď" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G", | ||||
|             "Ģ", | ||||
|             "Ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K", | ||||
|             "Ķ" | ||||
|           ], | ||||
|           [ | ||||
|             "L", | ||||
|             "Ļ", | ||||
|             "Ł", | ||||
|             "Ĺ", | ||||
|             "Ľ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ž", | ||||
|             "Ż", | ||||
|             "Ź" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Č", | ||||
|             "Ç", | ||||
|             "Ć" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ņ", | ||||
|             "Ñ", | ||||
|             "Ń", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "lv", | ||||
|   "name": "Latvian" | ||||
| } | ||||
							
								
								
									
										541
									
								
								data/osk-layouts/mk.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										541
									
								
								data/osk-layouts/mk.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,541 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "љ" | ||||
|           ], | ||||
|           [ | ||||
|             "њ" | ||||
|           ], | ||||
|           [ | ||||
|             "е", | ||||
|             "ѐ" | ||||
|           ], | ||||
|           [ | ||||
|             "р" | ||||
|           ], | ||||
|           [ | ||||
|             "т" | ||||
|           ], | ||||
|           [ | ||||
|             "ѕ" | ||||
|           ], | ||||
|           [ | ||||
|             "у" | ||||
|           ], | ||||
|           [ | ||||
|             "и", | ||||
|             "ѝ" | ||||
|           ], | ||||
|           [ | ||||
|             "о" | ||||
|           ], | ||||
|           [ | ||||
|             "п" | ||||
|           ], | ||||
|           [ | ||||
|             "ш" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "а" | ||||
|           ], | ||||
|           [ | ||||
|             "с" | ||||
|           ], | ||||
|           [ | ||||
|             "д" | ||||
|           ], | ||||
|           [ | ||||
|             "ф" | ||||
|           ], | ||||
|           [ | ||||
|             "г" | ||||
|           ], | ||||
|           [ | ||||
|             "х" | ||||
|           ], | ||||
|           [ | ||||
|             "ј" | ||||
|           ], | ||||
|           [ | ||||
|             "к" | ||||
|           ], | ||||
|           [ | ||||
|             "л" | ||||
|           ], | ||||
|           [ | ||||
|             "ч" | ||||
|           ], | ||||
|           [ | ||||
|             "ќ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "з" | ||||
|           ], | ||||
|           [ | ||||
|             "џ" | ||||
|           ], | ||||
|           [ | ||||
|             "ц" | ||||
|           ], | ||||
|           [ | ||||
|             "в" | ||||
|           ], | ||||
|           [ | ||||
|             "б" | ||||
|           ], | ||||
|           [ | ||||
|             "н" | ||||
|           ], | ||||
|           [ | ||||
|             "м" | ||||
|           ], | ||||
|           [ | ||||
|             "ѓ" | ||||
|           ], | ||||
|           [ | ||||
|             "ж" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Љ" | ||||
|           ], | ||||
|           [ | ||||
|             "Њ" | ||||
|           ], | ||||
|           [ | ||||
|             "Е", | ||||
|             "Ѐ" | ||||
|           ], | ||||
|           [ | ||||
|             "Р" | ||||
|           ], | ||||
|           [ | ||||
|             "Т" | ||||
|           ], | ||||
|           [ | ||||
|             "Ѕ" | ||||
|           ], | ||||
|           [ | ||||
|             "У" | ||||
|           ], | ||||
|           [ | ||||
|             "И", | ||||
|             "Ѝ" | ||||
|           ], | ||||
|           [ | ||||
|             "О" | ||||
|           ], | ||||
|           [ | ||||
|             "П" | ||||
|           ], | ||||
|           [ | ||||
|             "Ш" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "А" | ||||
|           ], | ||||
|           [ | ||||
|             "С" | ||||
|           ], | ||||
|           [ | ||||
|             "Д" | ||||
|           ], | ||||
|           [ | ||||
|             "Ф" | ||||
|           ], | ||||
|           [ | ||||
|             "Г" | ||||
|           ], | ||||
|           [ | ||||
|             "Х" | ||||
|           ], | ||||
|           [ | ||||
|             "Ј" | ||||
|           ], | ||||
|           [ | ||||
|             "К" | ||||
|           ], | ||||
|           [ | ||||
|             "Л" | ||||
|           ], | ||||
|           [ | ||||
|             "Ч" | ||||
|           ], | ||||
|           [ | ||||
|             "Ќ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "З" | ||||
|           ], | ||||
|           [ | ||||
|             "Џ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ц" | ||||
|           ], | ||||
|           [ | ||||
|             "В" | ||||
|           ], | ||||
|           [ | ||||
|             "Б" | ||||
|           ], | ||||
|           [ | ||||
|             "Н" | ||||
|           ], | ||||
|           [ | ||||
|             "М" | ||||
|           ], | ||||
|           [ | ||||
|             "Ѓ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ж" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "mk", | ||||
|   "name": "Macedonian" | ||||
| } | ||||
							
								
								
									
										547
									
								
								data/osk-layouts/mn.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										547
									
								
								data/osk-layouts/mn.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,547 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "ф" | ||||
|           ], | ||||
|           [ | ||||
|             "ц" | ||||
|           ], | ||||
|           [ | ||||
|             "у" | ||||
|           ], | ||||
|           [ | ||||
|             "ж" | ||||
|           ], | ||||
|           [ | ||||
|             "э" | ||||
|           ], | ||||
|           [ | ||||
|             "н" | ||||
|           ], | ||||
|           [ | ||||
|             "г" | ||||
|           ], | ||||
|           [ | ||||
|             "ш", | ||||
|             "щ" | ||||
|           ], | ||||
|           [ | ||||
|             "ү" | ||||
|           ], | ||||
|           [ | ||||
|             "з" | ||||
|           ], | ||||
|           [ | ||||
|             "к" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "й" | ||||
|           ], | ||||
|           [ | ||||
|             "ы" | ||||
|           ], | ||||
|           [ | ||||
|             "б" | ||||
|           ], | ||||
|           [ | ||||
|             "ө" | ||||
|           ], | ||||
|           [ | ||||
|             "а" | ||||
|           ], | ||||
|           [ | ||||
|             "х" | ||||
|           ], | ||||
|           [ | ||||
|             "р" | ||||
|           ], | ||||
|           [ | ||||
|             "о" | ||||
|           ], | ||||
|           [ | ||||
|             "л" | ||||
|           ], | ||||
|           [ | ||||
|             "д" | ||||
|           ], | ||||
|           [ | ||||
|             "п" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "я" | ||||
|           ], | ||||
|           [ | ||||
|             "ч" | ||||
|           ], | ||||
|           [ | ||||
|             "ё", | ||||
|             "е" | ||||
|           ], | ||||
|           [ | ||||
|             "с" | ||||
|           ], | ||||
|           [ | ||||
|             "м" | ||||
|           ], | ||||
|           [ | ||||
|             "и" | ||||
|           ], | ||||
|           [ | ||||
|             "т" | ||||
|           ], | ||||
|           [ | ||||
|             "ь", | ||||
|             "ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "в", | ||||
|             "ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Ф" | ||||
|           ], | ||||
|           [ | ||||
|             "Ц" | ||||
|           ], | ||||
|           [ | ||||
|             "У" | ||||
|           ], | ||||
|           [ | ||||
|             "Ж" | ||||
|           ], | ||||
|           [ | ||||
|             "Э" | ||||
|           ], | ||||
|           [ | ||||
|             "Н" | ||||
|           ], | ||||
|           [ | ||||
|             "Г" | ||||
|           ], | ||||
|           [ | ||||
|             "Ш", | ||||
|             "Щ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ү" | ||||
|           ], | ||||
|           [ | ||||
|             "З" | ||||
|           ], | ||||
|           [ | ||||
|             "К" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Й" | ||||
|           ], | ||||
|           [ | ||||
|             "Ы" | ||||
|           ], | ||||
|           [ | ||||
|             "Б" | ||||
|           ], | ||||
|           [ | ||||
|             "Ө" | ||||
|           ], | ||||
|           [ | ||||
|             "А" | ||||
|           ], | ||||
|           [ | ||||
|             "Х" | ||||
|           ], | ||||
|           [ | ||||
|             "Р" | ||||
|           ], | ||||
|           [ | ||||
|             "О" | ||||
|           ], | ||||
|           [ | ||||
|             "Л" | ||||
|           ], | ||||
|           [ | ||||
|             "Д" | ||||
|           ], | ||||
|           [ | ||||
|             "П" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Я" | ||||
|           ], | ||||
|           [ | ||||
|             "Ч" | ||||
|           ], | ||||
|           [ | ||||
|             "Ё", | ||||
|             "Е" | ||||
|           ], | ||||
|           [ | ||||
|             "С" | ||||
|           ], | ||||
|           [ | ||||
|             "М" | ||||
|           ], | ||||
|           [ | ||||
|             "И" | ||||
|           ], | ||||
|           [ | ||||
|             "Т" | ||||
|           ], | ||||
|           [ | ||||
|             "Ь", | ||||
|             "Ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "В", | ||||
|             "Ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "₮", | ||||
|             "$", | ||||
|             "¢", | ||||
|             "€", | ||||
|             "£", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "mn", | ||||
|   "name": "Mongolian" | ||||
| } | ||||
							
								
								
									
										507
									
								
								data/osk-layouts/my.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										507
									
								
								data/osk-layouts/my.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,507 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u" | ||||
|           ], | ||||
|           [ | ||||
|             "i" | ||||
|           ], | ||||
|           [ | ||||
|             "o" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U" | ||||
|           ], | ||||
|           [ | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "ms", | ||||
|   "name": "Malay" | ||||
| } | ||||
							
								
								
									
										584
									
								
								data/osk-layouts/nl.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										584
									
								
								data/osk-layouts/nl.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,584 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "ë", | ||||
|             "ê", | ||||
|             "è", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ij" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ü", | ||||
|             "û", | ||||
|             "ù", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "î", | ||||
|             "į", | ||||
|             "ī", | ||||
|             "ij" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "ä", | ||||
|             "â", | ||||
|             "à", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "Ë", | ||||
|             "Ê", | ||||
|             "È", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "IJ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ü", | ||||
|             "Û", | ||||
|             "Ù", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Î", | ||||
|             "Į", | ||||
|             "Ī", | ||||
|             "IJ" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "Ä", | ||||
|             "Â", | ||||
|             "À", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "nl", | ||||
|   "name": "Dutch" | ||||
| } | ||||
							
								
								
									
										507
									
								
								data/osk-layouts/no.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										507
									
								
								data/osk-layouts/no.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,507 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u" | ||||
|           ], | ||||
|           [ | ||||
|             "i" | ||||
|           ], | ||||
|           [ | ||||
|             "o" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U" | ||||
|           ], | ||||
|           [ | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "nb", | ||||
|   "name": "Norwegian Bokmål" | ||||
| } | ||||
							
								
								
									
										507
									
								
								data/osk-layouts/ph.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										507
									
								
								data/osk-layouts/ph.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,507 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u" | ||||
|           ], | ||||
|           [ | ||||
|             "i" | ||||
|           ], | ||||
|           [ | ||||
|             "o" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U" | ||||
|           ], | ||||
|           [ | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "fil", | ||||
|   "name": "Filipino" | ||||
| } | ||||
							
								
								
									
										579
									
								
								data/osk-layouts/pl.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										579
									
								
								data/osk-layouts/pl.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,579 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "ę", | ||||
|             "è", | ||||
|             "é", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u" | ||||
|           ], | ||||
|           [ | ||||
|             "i" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "ą", | ||||
|             "á", | ||||
|             "à", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ś", | ||||
|             "ß", | ||||
|             "š" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l", | ||||
|             "ł" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z", | ||||
|             "ż", | ||||
|             "ź", | ||||
|             "ž" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ć", | ||||
|             "ç", | ||||
|             "č" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ń", | ||||
|             "ñ" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "Ę", | ||||
|             "È", | ||||
|             "É", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U" | ||||
|           ], | ||||
|           [ | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Ą", | ||||
|             "Á", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Ś", | ||||
|             "SS", | ||||
|             "Š" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L", | ||||
|             "Ł" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ż", | ||||
|             "Ź", | ||||
|             "Ž" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ć", | ||||
|             "Ç", | ||||
|             "Č" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ń", | ||||
|             "Ñ" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "pl", | ||||
|   "name": "Polish" | ||||
| } | ||||
							
								
								
									
										584
									
								
								data/osk-layouts/pt.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										584
									
								
								data/osk-layouts/pt.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,584 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "ê", | ||||
|             "è", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē", | ||||
|             "ë" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "û", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "î", | ||||
|             "ì", | ||||
|             "ï", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "õ", | ||||
|             "ô", | ||||
|             "ò", | ||||
|             "ö", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "ã", | ||||
|             "à", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "å", | ||||
|             "æ", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç", | ||||
|             "č", | ||||
|             "ć" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "Ê", | ||||
|             "È", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē", | ||||
|             "Ë" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Û", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Î", | ||||
|             "Ì", | ||||
|             "Ï", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Õ", | ||||
|             "Ô", | ||||
|             "Ò", | ||||
|             "Ö", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō", | ||||
|             "º" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "Ã", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "Å", | ||||
|             "Æ", | ||||
|             "ª" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç", | ||||
|             "Č", | ||||
|             "Ć" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "pt-PT", | ||||
|   "name": "Portuguese Portugal" | ||||
| } | ||||
							
								
								
									
										547
									
								
								data/osk-layouts/ro.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										547
									
								
								data/osk-layouts/ro.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,547 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t", | ||||
|             "ț" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "í", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "ă", | ||||
|             "à", | ||||
|             "á", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ș", | ||||
|             "ß", | ||||
|             "ś", | ||||
|             "š" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T", | ||||
|             "Ț" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Í", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Ă", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Ș", | ||||
|             "SS", | ||||
|             "Ś", | ||||
|             "Š" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "ro", | ||||
|   "name": "Romanian" | ||||
| } | ||||
							
								
								
									
										541
									
								
								data/osk-layouts/rs.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										541
									
								
								data/osk-layouts/rs.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,541 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "љ" | ||||
|           ], | ||||
|           [ | ||||
|             "њ" | ||||
|           ], | ||||
|           [ | ||||
|             "е", | ||||
|             "ѐ" | ||||
|           ], | ||||
|           [ | ||||
|             "р" | ||||
|           ], | ||||
|           [ | ||||
|             "т" | ||||
|           ], | ||||
|           [ | ||||
|             "з" | ||||
|           ], | ||||
|           [ | ||||
|             "у" | ||||
|           ], | ||||
|           [ | ||||
|             "и", | ||||
|             "ѝ" | ||||
|           ], | ||||
|           [ | ||||
|             "о" | ||||
|           ], | ||||
|           [ | ||||
|             "п" | ||||
|           ], | ||||
|           [ | ||||
|             "ш" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "а" | ||||
|           ], | ||||
|           [ | ||||
|             "с" | ||||
|           ], | ||||
|           [ | ||||
|             "д" | ||||
|           ], | ||||
|           [ | ||||
|             "ф" | ||||
|           ], | ||||
|           [ | ||||
|             "г" | ||||
|           ], | ||||
|           [ | ||||
|             "х" | ||||
|           ], | ||||
|           [ | ||||
|             "ј" | ||||
|           ], | ||||
|           [ | ||||
|             "к" | ||||
|           ], | ||||
|           [ | ||||
|             "л" | ||||
|           ], | ||||
|           [ | ||||
|             "ч" | ||||
|           ], | ||||
|           [ | ||||
|             "ћ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ѕ" | ||||
|           ], | ||||
|           [ | ||||
|             "џ" | ||||
|           ], | ||||
|           [ | ||||
|             "ц" | ||||
|           ], | ||||
|           [ | ||||
|             "в" | ||||
|           ], | ||||
|           [ | ||||
|             "б" | ||||
|           ], | ||||
|           [ | ||||
|             "н" | ||||
|           ], | ||||
|           [ | ||||
|             "м" | ||||
|           ], | ||||
|           [ | ||||
|             "ђ" | ||||
|           ], | ||||
|           [ | ||||
|             "ж" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Љ" | ||||
|           ], | ||||
|           [ | ||||
|             "Њ" | ||||
|           ], | ||||
|           [ | ||||
|             "Е", | ||||
|             "Ѐ" | ||||
|           ], | ||||
|           [ | ||||
|             "Р" | ||||
|           ], | ||||
|           [ | ||||
|             "Т" | ||||
|           ], | ||||
|           [ | ||||
|             "З" | ||||
|           ], | ||||
|           [ | ||||
|             "У" | ||||
|           ], | ||||
|           [ | ||||
|             "И", | ||||
|             "Ѝ" | ||||
|           ], | ||||
|           [ | ||||
|             "О" | ||||
|           ], | ||||
|           [ | ||||
|             "П" | ||||
|           ], | ||||
|           [ | ||||
|             "Ш" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "А" | ||||
|           ], | ||||
|           [ | ||||
|             "С" | ||||
|           ], | ||||
|           [ | ||||
|             "Д" | ||||
|           ], | ||||
|           [ | ||||
|             "Ф" | ||||
|           ], | ||||
|           [ | ||||
|             "Г" | ||||
|           ], | ||||
|           [ | ||||
|             "Х" | ||||
|           ], | ||||
|           [ | ||||
|             "Ј" | ||||
|           ], | ||||
|           [ | ||||
|             "К" | ||||
|           ], | ||||
|           [ | ||||
|             "Л" | ||||
|           ], | ||||
|           [ | ||||
|             "Ч" | ||||
|           ], | ||||
|           [ | ||||
|             "Ћ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Ѕ" | ||||
|           ], | ||||
|           [ | ||||
|             "Џ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ц" | ||||
|           ], | ||||
|           [ | ||||
|             "В" | ||||
|           ], | ||||
|           [ | ||||
|             "Б" | ||||
|           ], | ||||
|           [ | ||||
|             "Н" | ||||
|           ], | ||||
|           [ | ||||
|             "М" | ||||
|           ], | ||||
|           [ | ||||
|             "Ђ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ж" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "sr", | ||||
|   "name": "Serbian" | ||||
| } | ||||
							
								
								
									
										541
									
								
								data/osk-layouts/ru.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										541
									
								
								data/osk-layouts/ru.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,541 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "й" | ||||
|           ], | ||||
|           [ | ||||
|             "ц" | ||||
|           ], | ||||
|           [ | ||||
|             "у" | ||||
|           ], | ||||
|           [ | ||||
|             "к" | ||||
|           ], | ||||
|           [ | ||||
|             "е", | ||||
|             "ё" | ||||
|           ], | ||||
|           [ | ||||
|             "н" | ||||
|           ], | ||||
|           [ | ||||
|             "г" | ||||
|           ], | ||||
|           [ | ||||
|             "ш" | ||||
|           ], | ||||
|           [ | ||||
|             "щ" | ||||
|           ], | ||||
|           [ | ||||
|             "з" | ||||
|           ], | ||||
|           [ | ||||
|             "х" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ф" | ||||
|           ], | ||||
|           [ | ||||
|             "ы" | ||||
|           ], | ||||
|           [ | ||||
|             "в" | ||||
|           ], | ||||
|           [ | ||||
|             "а" | ||||
|           ], | ||||
|           [ | ||||
|             "п" | ||||
|           ], | ||||
|           [ | ||||
|             "р" | ||||
|           ], | ||||
|           [ | ||||
|             "о" | ||||
|           ], | ||||
|           [ | ||||
|             "л" | ||||
|           ], | ||||
|           [ | ||||
|             "д" | ||||
|           ], | ||||
|           [ | ||||
|             "ж" | ||||
|           ], | ||||
|           [ | ||||
|             "э" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "я" | ||||
|           ], | ||||
|           [ | ||||
|             "ч" | ||||
|           ], | ||||
|           [ | ||||
|             "с" | ||||
|           ], | ||||
|           [ | ||||
|             "м" | ||||
|           ], | ||||
|           [ | ||||
|             "и" | ||||
|           ], | ||||
|           [ | ||||
|             "т" | ||||
|           ], | ||||
|           [ | ||||
|             "ь", | ||||
|             "ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "б" | ||||
|           ], | ||||
|           [ | ||||
|             "ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Й" | ||||
|           ], | ||||
|           [ | ||||
|             "Ц" | ||||
|           ], | ||||
|           [ | ||||
|             "У" | ||||
|           ], | ||||
|           [ | ||||
|             "К" | ||||
|           ], | ||||
|           [ | ||||
|             "Е", | ||||
|             "Ё" | ||||
|           ], | ||||
|           [ | ||||
|             "Н" | ||||
|           ], | ||||
|           [ | ||||
|             "Г" | ||||
|           ], | ||||
|           [ | ||||
|             "Ш" | ||||
|           ], | ||||
|           [ | ||||
|             "Щ" | ||||
|           ], | ||||
|           [ | ||||
|             "З" | ||||
|           ], | ||||
|           [ | ||||
|             "Х" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Ф" | ||||
|           ], | ||||
|           [ | ||||
|             "Ы" | ||||
|           ], | ||||
|           [ | ||||
|             "В" | ||||
|           ], | ||||
|           [ | ||||
|             "А" | ||||
|           ], | ||||
|           [ | ||||
|             "П" | ||||
|           ], | ||||
|           [ | ||||
|             "Р" | ||||
|           ], | ||||
|           [ | ||||
|             "О" | ||||
|           ], | ||||
|           [ | ||||
|             "Л" | ||||
|           ], | ||||
|           [ | ||||
|             "Д" | ||||
|           ], | ||||
|           [ | ||||
|             "Ж" | ||||
|           ], | ||||
|           [ | ||||
|             "Э" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Я" | ||||
|           ], | ||||
|           [ | ||||
|             "Ч" | ||||
|           ], | ||||
|           [ | ||||
|             "С" | ||||
|           ], | ||||
|           [ | ||||
|             "М" | ||||
|           ], | ||||
|           [ | ||||
|             "И" | ||||
|           ], | ||||
|           [ | ||||
|             "Т" | ||||
|           ], | ||||
|           [ | ||||
|             "Ь", | ||||
|             "Ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "Б" | ||||
|           ], | ||||
|           [ | ||||
|             "Ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "ru", | ||||
|   "name": "Russian" | ||||
| } | ||||
							
								
								
									
										624
									
								
								data/osk-layouts/se.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										624
									
								
								data/osk-layouts/se.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,624 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ę" | ||||
|           ], | ||||
|           [ | ||||
|             "r", | ||||
|             "ř" | ||||
|           ], | ||||
|           [ | ||||
|             "t", | ||||
|             "ť", | ||||
|             "þ" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ÿ", | ||||
|             "ü" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ü", | ||||
|             "ú", | ||||
|             "ù", | ||||
|             "û", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ì", | ||||
|             "î", | ||||
|             "ï" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ò", | ||||
|             "ô", | ||||
|             "õ", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ], | ||||
|           [ | ||||
|             "å" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "à", | ||||
|             "â", | ||||
|             "ą", | ||||
|             "ã" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ś", | ||||
|             "š", | ||||
|             "ş", | ||||
|             "ß" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "ð", | ||||
|             "ď" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l", | ||||
|             "ł" | ||||
|           ], | ||||
|           [ | ||||
|             "ö", | ||||
|             "ø", | ||||
|             "œ" | ||||
|           ], | ||||
|           [ | ||||
|             "ä", | ||||
|             "æ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z", | ||||
|             "ź", | ||||
|             "ž", | ||||
|             "ż" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç", | ||||
|             "ć", | ||||
|             "č" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ń", | ||||
|             "ñ", | ||||
|             "ň" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ę" | ||||
|           ], | ||||
|           [ | ||||
|             "R", | ||||
|             "Ř" | ||||
|           ], | ||||
|           [ | ||||
|             "T", | ||||
|             "Ť", | ||||
|             "Þ" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ÿ", | ||||
|             "Ü" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ü", | ||||
|             "Ú", | ||||
|             "Ù", | ||||
|             "Û", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ì", | ||||
|             "Î", | ||||
|             "Ï" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ò", | ||||
|             "Ô", | ||||
|             "Õ", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ], | ||||
|           [ | ||||
|             "Å" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "Ą", | ||||
|             "Ã" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Ś", | ||||
|             "Š", | ||||
|             "Ş", | ||||
|             "SS" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Ð", | ||||
|             "Ď" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L", | ||||
|             "Ł" | ||||
|           ], | ||||
|           [ | ||||
|             "Ö", | ||||
|             "Ø", | ||||
|             "Œ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ä", | ||||
|             "Æ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ź", | ||||
|             "Ž", | ||||
|             "Ż" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç", | ||||
|             "Ć", | ||||
|             "Č" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ń", | ||||
|             "Ñ", | ||||
|             "Ň" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "sv", | ||||
|   "name": "Swedish" | ||||
| } | ||||
							
								
								
									
										518
									
								
								data/osk-layouts/si.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										518
									
								
								data/osk-layouts/si.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,518 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u" | ||||
|           ], | ||||
|           [ | ||||
|             "i" | ||||
|           ], | ||||
|           [ | ||||
|             "o" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "š" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "đ" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z", | ||||
|             "ž" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "č", | ||||
|             "ć" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U" | ||||
|           ], | ||||
|           [ | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Š" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Đ" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ž" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Č", | ||||
|             "Ć" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "sl", | ||||
|   "name": "Slovenian" | ||||
| } | ||||
							
								
								
									
										648
									
								
								data/osk-layouts/sk.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										648
									
								
								data/osk-layouts/sk.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,648 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "ě", | ||||
|             "ē", | ||||
|             "ė", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ę" | ||||
|           ], | ||||
|           [ | ||||
|             "r", | ||||
|             "ŕ", | ||||
|             "ř", | ||||
|             "ŗ" | ||||
|           ], | ||||
|           [ | ||||
|             "t", | ||||
|             "ť", | ||||
|             "ţ" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "ů", | ||||
|             "ü", | ||||
|             "ū", | ||||
|             "ų", | ||||
|             "ù", | ||||
|             "û", | ||||
|             "ű" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ī", | ||||
|             "į", | ||||
|             "ì", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "ı" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ô", | ||||
|             "ó", | ||||
|             "ö", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ő", | ||||
|             "ø" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "ä", | ||||
|             "ā", | ||||
|             "à", | ||||
|             "â", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "æ", | ||||
|             "ą" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "š", | ||||
|             "ß", | ||||
|             "ś", | ||||
|             "ş" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "ď" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g", | ||||
|             "ģ", | ||||
|             "ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k", | ||||
|             "ķ" | ||||
|           ], | ||||
|           [ | ||||
|             "l", | ||||
|             "ľ", | ||||
|             "ĺ", | ||||
|             "ļ", | ||||
|             "ł" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z", | ||||
|             "ž", | ||||
|             "ż", | ||||
|             "ź" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "č", | ||||
|             "ç", | ||||
|             "ć" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ň", | ||||
|             "ņ", | ||||
|             "ñ", | ||||
|             "ń", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "Ě", | ||||
|             "Ē", | ||||
|             "Ė", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ę" | ||||
|           ], | ||||
|           [ | ||||
|             "R", | ||||
|             "Ŕ", | ||||
|             "Ř", | ||||
|             "Ŗ" | ||||
|           ], | ||||
|           [ | ||||
|             "T", | ||||
|             "Ť", | ||||
|             "Ţ" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ÿ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Ů", | ||||
|             "Ü", | ||||
|             "Ū", | ||||
|             "Ų", | ||||
|             "Ù", | ||||
|             "Û", | ||||
|             "Ű" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ī", | ||||
|             "Į", | ||||
|             "Ì", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "I" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ô", | ||||
|             "Ó", | ||||
|             "Ö", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ő", | ||||
|             "Ø" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "Ä", | ||||
|             "Ā", | ||||
|             "À", | ||||
|             "Â", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Æ", | ||||
|             "Ą" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Š", | ||||
|             "SS", | ||||
|             "Ś", | ||||
|             "Ş" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Ď" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G", | ||||
|             "Ģ", | ||||
|             "Ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K", | ||||
|             "Ķ" | ||||
|           ], | ||||
|           [ | ||||
|             "L", | ||||
|             "Ľ", | ||||
|             "Ĺ", | ||||
|             "Ļ", | ||||
|             "Ł" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z", | ||||
|             "Ž", | ||||
|             "Ż", | ||||
|             "Ź" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Č", | ||||
|             "Ç", | ||||
|             "Ć" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ň", | ||||
|             "Ņ", | ||||
|             "Ñ", | ||||
|             "Ń", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "sk", | ||||
|   "name": "Slovak" | ||||
| } | ||||
							
								
								
									
										472
									
								
								data/osk-layouts/th.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										472
									
								
								data/osk-layouts/th.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,472 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "ๅ" | ||||
|           ], | ||||
|           [ | ||||
|             "/", | ||||
|             "๑" | ||||
|           ], | ||||
|           [ | ||||
|             "_", | ||||
|             "๒" | ||||
|           ], | ||||
|           [ | ||||
|             "ภ", | ||||
|             "๓" | ||||
|           ], | ||||
|           [ | ||||
|             "ถ", | ||||
|             "๔" | ||||
|           ], | ||||
|           [ | ||||
|             "ุ" | ||||
|           ], | ||||
|           [ | ||||
|             "ึ" | ||||
|           ], | ||||
|           [ | ||||
|             "ค", | ||||
|             "๕" | ||||
|           ], | ||||
|           [ | ||||
|             "ต", | ||||
|             "๖" | ||||
|           ], | ||||
|           [ | ||||
|             "จ", | ||||
|             "๗" | ||||
|           ], | ||||
|           [ | ||||
|             "ข", | ||||
|             "๘" | ||||
|           ], | ||||
|           [ | ||||
|             "ช", | ||||
|             "๙" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ๆ", | ||||
|             "๐" | ||||
|           ], | ||||
|           [ | ||||
|             "ไ" | ||||
|           ], | ||||
|           [ | ||||
|             "ำ" | ||||
|           ], | ||||
|           [ | ||||
|             "พ" | ||||
|           ], | ||||
|           [ | ||||
|             "ะ" | ||||
|           ], | ||||
|           [ | ||||
|             "ั" | ||||
|           ], | ||||
|           [ | ||||
|             "ี" | ||||
|           ], | ||||
|           [ | ||||
|             "ร" | ||||
|           ], | ||||
|           [ | ||||
|             "น" | ||||
|           ], | ||||
|           [ | ||||
|             "ย" | ||||
|           ], | ||||
|           [ | ||||
|             "บ" | ||||
|           ], | ||||
|           [ | ||||
|             "ล" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ฟ" | ||||
|           ], | ||||
|           [ | ||||
|             "ห" | ||||
|           ], | ||||
|           [ | ||||
|             "ก" | ||||
|           ], | ||||
|           [ | ||||
|             "ด" | ||||
|           ], | ||||
|           [ | ||||
|             "เ" | ||||
|           ], | ||||
|           [ | ||||
|             "้" | ||||
|           ], | ||||
|           [ | ||||
|             "่" | ||||
|           ], | ||||
|           [ | ||||
|             "า" | ||||
|           ], | ||||
|           [ | ||||
|             "ส" | ||||
|           ], | ||||
|           [ | ||||
|             "ว" | ||||
|           ], | ||||
|           [ | ||||
|             "ง" | ||||
|           ], | ||||
|           [ | ||||
|             "ฃ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ผ" | ||||
|           ], | ||||
|           [ | ||||
|             "ป" | ||||
|           ], | ||||
|           [ | ||||
|             "แ" | ||||
|           ], | ||||
|           [ | ||||
|             "อ" | ||||
|           ], | ||||
|           [ | ||||
|             "ิ" | ||||
|           ], | ||||
|           [ | ||||
|             "ื" | ||||
|           ], | ||||
|           [ | ||||
|             "ท" | ||||
|           ], | ||||
|           [ | ||||
|             "ม" | ||||
|           ], | ||||
|           [ | ||||
|             "ใ" | ||||
|           ], | ||||
|           [ | ||||
|             "ฝ" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "฿", | ||||
|             "$", | ||||
|             "¢", | ||||
|             "€", | ||||
|             "£", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "th", | ||||
|   "name": "Thai" | ||||
| } | ||||
							
								
								
									
										566
									
								
								data/osk-layouts/tr.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										566
									
								
								data/osk-layouts/tr.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,566 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ü", | ||||
|             "û", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "ı", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "ì", | ||||
|             "í", | ||||
|             "į", | ||||
|             "ī" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ö", | ||||
|             "ô", | ||||
|             "œ", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "õ", | ||||
|             "ø", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "â" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ş", | ||||
|             "ß", | ||||
|             "ś", | ||||
|             "š" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g", | ||||
|             "ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç", | ||||
|             "ć", | ||||
|             "č" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ü", | ||||
|             "Û", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "İ", | ||||
|             "I", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "Ì", | ||||
|             "Í", | ||||
|             "Į", | ||||
|             "Ī" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ö", | ||||
|             "Ô", | ||||
|             "Œ", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Õ", | ||||
|             "Ø", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Â" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "Ş", | ||||
|             "SS", | ||||
|             "Ś", | ||||
|             "Š" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G", | ||||
|             "Ğ" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç", | ||||
|             "Ć", | ||||
|             "Č" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "€", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "$", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "tr", | ||||
|   "name": "Turkish" | ||||
| } | ||||
							
								
								
									
										545
									
								
								data/osk-layouts/ua.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										545
									
								
								data/osk-layouts/ua.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,545 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "й" | ||||
|           ], | ||||
|           [ | ||||
|             "ц" | ||||
|           ], | ||||
|           [ | ||||
|             "у" | ||||
|           ], | ||||
|           [ | ||||
|             "к" | ||||
|           ], | ||||
|           [ | ||||
|             "е" | ||||
|           ], | ||||
|           [ | ||||
|             "н" | ||||
|           ], | ||||
|           [ | ||||
|             "г", | ||||
|             "ґ" | ||||
|           ], | ||||
|           [ | ||||
|             "ш" | ||||
|           ], | ||||
|           [ | ||||
|             "щ" | ||||
|           ], | ||||
|           [ | ||||
|             "з" | ||||
|           ], | ||||
|           [ | ||||
|             "х" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "ф" | ||||
|           ], | ||||
|           [ | ||||
|             "і", | ||||
|             "ї" | ||||
|           ], | ||||
|           [ | ||||
|             "в" | ||||
|           ], | ||||
|           [ | ||||
|             "а" | ||||
|           ], | ||||
|           [ | ||||
|             "п" | ||||
|           ], | ||||
|           [ | ||||
|             "р" | ||||
|           ], | ||||
|           [ | ||||
|             "о" | ||||
|           ], | ||||
|           [ | ||||
|             "л" | ||||
|           ], | ||||
|           [ | ||||
|             "д" | ||||
|           ], | ||||
|           [ | ||||
|             "ж" | ||||
|           ], | ||||
|           [ | ||||
|             "є" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "я" | ||||
|           ], | ||||
|           [ | ||||
|             "ч" | ||||
|           ], | ||||
|           [ | ||||
|             "с" | ||||
|           ], | ||||
|           [ | ||||
|             "м" | ||||
|           ], | ||||
|           [ | ||||
|             "и" | ||||
|           ], | ||||
|           [ | ||||
|             "т" | ||||
|           ], | ||||
|           [ | ||||
|             "ь", | ||||
|             "ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "б" | ||||
|           ], | ||||
|           [ | ||||
|             "ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Й" | ||||
|           ], | ||||
|           [ | ||||
|             "Ц" | ||||
|           ], | ||||
|           [ | ||||
|             "У" | ||||
|           ], | ||||
|           [ | ||||
|             "К" | ||||
|           ], | ||||
|           [ | ||||
|             "Е" | ||||
|           ], | ||||
|           [ | ||||
|             "Н" | ||||
|           ], | ||||
|           [ | ||||
|             "Г", | ||||
|             "Ґ" | ||||
|           ], | ||||
|           [ | ||||
|             "Ш" | ||||
|           ], | ||||
|           [ | ||||
|             "Щ" | ||||
|           ], | ||||
|           [ | ||||
|             "З" | ||||
|           ], | ||||
|           [ | ||||
|             "Х" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Ф" | ||||
|           ], | ||||
|           [ | ||||
|             "І", | ||||
|             "Ї" | ||||
|           ], | ||||
|           [ | ||||
|             "В" | ||||
|           ], | ||||
|           [ | ||||
|             "А" | ||||
|           ], | ||||
|           [ | ||||
|             "П" | ||||
|           ], | ||||
|           [ | ||||
|             "Р" | ||||
|           ], | ||||
|           [ | ||||
|             "О" | ||||
|           ], | ||||
|           [ | ||||
|             "Л" | ||||
|           ], | ||||
|           [ | ||||
|             "Д" | ||||
|           ], | ||||
|           [ | ||||
|             "Ж" | ||||
|           ], | ||||
|           [ | ||||
|             "Є" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Я" | ||||
|           ], | ||||
|           [ | ||||
|             "Ч" | ||||
|           ], | ||||
|           [ | ||||
|             "С" | ||||
|           ], | ||||
|           [ | ||||
|             "М" | ||||
|           ], | ||||
|           [ | ||||
|             "И" | ||||
|           ], | ||||
|           [ | ||||
|             "Т" | ||||
|           ], | ||||
|           [ | ||||
|             "Ь", | ||||
|             "Ъ" | ||||
|           ], | ||||
|           [ | ||||
|             "Б" | ||||
|           ], | ||||
|           [ | ||||
|             "Ю" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "₴", | ||||
|             "$", | ||||
|             "¢", | ||||
|             "€", | ||||
|             "£", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "uk", | ||||
|   "name": "Ukrainian" | ||||
| } | ||||
							
								
								
									
										576
									
								
								data/osk-layouts/uk.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										576
									
								
								data/osk-layouts/uk.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,576 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "è", | ||||
|             "é", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "û", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "í", | ||||
|             "ī", | ||||
|             "ì" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ô", | ||||
|             "ö", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō", | ||||
|             "õ" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "à", | ||||
|             "á", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ß" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "È", | ||||
|             "É", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Û", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "Í", | ||||
|             "Ī", | ||||
|             "Ì" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ô", | ||||
|             "Ö", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō", | ||||
|             "Õ" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "SS" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "£", | ||||
|             "¢", | ||||
|             "$", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "en-GB", | ||||
|   "name": "English Great Britain" | ||||
| } | ||||
							
								
								
									
										575
									
								
								data/osk-layouts/us.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										575
									
								
								data/osk-layouts/us.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,575 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "è", | ||||
|             "é", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "û", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "î", | ||||
|             "ï", | ||||
|             "í", | ||||
|             "ī", | ||||
|             "ì" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ô", | ||||
|             "ö", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō", | ||||
|             "õ" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "à", | ||||
|             "á", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s", | ||||
|             "ß" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c", | ||||
|             "ç" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "È", | ||||
|             "É", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Û", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Î", | ||||
|             "Ï", | ||||
|             "Í", | ||||
|             "Ī", | ||||
|             "Ì" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ô", | ||||
|             "Ö", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō", | ||||
|             "Õ" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S", | ||||
|             "SS" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C", | ||||
|             "Ç" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "en", | ||||
|   "name": "English United States" | ||||
| } | ||||
							
								
								
									
										643
									
								
								data/osk-layouts/vn.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										643
									
								
								data/osk-layouts/vn.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,643 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "è", | ||||
|             "é", | ||||
|             "ẻ", | ||||
|             "ẽ", | ||||
|             "ẹ", | ||||
|             "ê", | ||||
|             "ề", | ||||
|             "ế", | ||||
|             "ể", | ||||
|             "ễ", | ||||
|             "ệ" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ỳ", | ||||
|             "ý", | ||||
|             "ỷ", | ||||
|             "ỹ", | ||||
|             "ỵ" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ù", | ||||
|             "ú", | ||||
|             "ủ", | ||||
|             "ũ", | ||||
|             "ụ", | ||||
|             "ư", | ||||
|             "ừ", | ||||
|             "ứ", | ||||
|             "ử", | ||||
|             "ữ", | ||||
|             "ự" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "ì", | ||||
|             "í", | ||||
|             "ỉ", | ||||
|             "ĩ", | ||||
|             "ị" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ò", | ||||
|             "ó", | ||||
|             "ỏ", | ||||
|             "õ", | ||||
|             "ọ", | ||||
|             "ô", | ||||
|             "ồ", | ||||
|             "ố", | ||||
|             "ổ", | ||||
|             "ỗ", | ||||
|             "ộ", | ||||
|             "ơ", | ||||
|             "ờ", | ||||
|             "ớ", | ||||
|             "ở", | ||||
|             "ỡ", | ||||
|             "ợ" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "à", | ||||
|             "á", | ||||
|             "ả", | ||||
|             "ã", | ||||
|             "ạ", | ||||
|             "ă", | ||||
|             "ằ", | ||||
|             "ắ", | ||||
|             "ẳ", | ||||
|             "ẵ", | ||||
|             "ặ", | ||||
|             "â", | ||||
|             "ầ", | ||||
|             "ấ", | ||||
|             "ẩ", | ||||
|             "ẫ", | ||||
|             "ậ" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d", | ||||
|             "đ" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "È", | ||||
|             "É", | ||||
|             "Ẻ", | ||||
|             "Ẽ", | ||||
|             "Ẹ", | ||||
|             "Ê", | ||||
|             "Ề", | ||||
|             "Ế", | ||||
|             "Ể", | ||||
|             "Ễ", | ||||
|             "Ệ" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ỳ", | ||||
|             "Ý", | ||||
|             "Ỷ", | ||||
|             "Ỹ", | ||||
|             "Ỵ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ù", | ||||
|             "Ú", | ||||
|             "Ủ", | ||||
|             "Ũ", | ||||
|             "Ụ", | ||||
|             "Ư", | ||||
|             "Ừ", | ||||
|             "Ứ", | ||||
|             "Ử", | ||||
|             "Ữ", | ||||
|             "Ự" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Ì", | ||||
|             "Í", | ||||
|             "Ỉ", | ||||
|             "Ĩ", | ||||
|             "Ị" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ò", | ||||
|             "Ó", | ||||
|             "Ỏ", | ||||
|             "Õ", | ||||
|             "Ọ", | ||||
|             "Ô", | ||||
|             "Ồ", | ||||
|             "Ố", | ||||
|             "Ổ", | ||||
|             "Ỗ", | ||||
|             "Ộ", | ||||
|             "Ơ", | ||||
|             "Ờ", | ||||
|             "Ớ", | ||||
|             "Ở", | ||||
|             "Ỡ", | ||||
|             "Ợ" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "À", | ||||
|             "Á", | ||||
|             "Ả", | ||||
|             "Ã", | ||||
|             "Ạ", | ||||
|             "Ă", | ||||
|             "Ằ", | ||||
|             "Ắ", | ||||
|             "Ẳ", | ||||
|             "Ẵ", | ||||
|             "Ặ", | ||||
|             "Â", | ||||
|             "Ầ", | ||||
|             "Ấ", | ||||
|             "Ẩ", | ||||
|             "Ẫ", | ||||
|             "Ậ" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D", | ||||
|             "Đ" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "₫", | ||||
|             "$", | ||||
|             "¢", | ||||
|             "€", | ||||
|             "£", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "vi", | ||||
|   "name": "Vietnamese" | ||||
| } | ||||
							
								
								
									
										589
									
								
								data/osk-layouts/za.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										589
									
								
								data/osk-layouts/za.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,589 @@ | ||||
| { | ||||
|   "levels": [ | ||||
|     { | ||||
|       "level": "", | ||||
|       "mode": "default", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "q" | ||||
|           ], | ||||
|           [ | ||||
|             "w" | ||||
|           ], | ||||
|           [ | ||||
|             "e", | ||||
|             "é", | ||||
|             "è", | ||||
|             "ê", | ||||
|             "ë", | ||||
|             "ę", | ||||
|             "ė", | ||||
|             "ē" | ||||
|           ], | ||||
|           [ | ||||
|             "r" | ||||
|           ], | ||||
|           [ | ||||
|             "t" | ||||
|           ], | ||||
|           [ | ||||
|             "y", | ||||
|             "ý", | ||||
|             "ŷ", | ||||
|             "ÿ", | ||||
|             "ij" | ||||
|           ], | ||||
|           [ | ||||
|             "u", | ||||
|             "ú", | ||||
|             "û", | ||||
|             "ü", | ||||
|             "ù", | ||||
|             "ū" | ||||
|           ], | ||||
|           [ | ||||
|             "i", | ||||
|             "í", | ||||
|             "ì", | ||||
|             "ï", | ||||
|             "î", | ||||
|             "į", | ||||
|             "ī", | ||||
|             "ij" | ||||
|           ], | ||||
|           [ | ||||
|             "o", | ||||
|             "ó", | ||||
|             "ô", | ||||
|             "ö", | ||||
|             "ò", | ||||
|             "õ", | ||||
|             "œ", | ||||
|             "ø", | ||||
|             "ō" | ||||
|           ], | ||||
|           [ | ||||
|             "p" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "a", | ||||
|             "á", | ||||
|             "â", | ||||
|             "ä", | ||||
|             "à", | ||||
|             "æ", | ||||
|             "ã", | ||||
|             "å", | ||||
|             "ā" | ||||
|           ], | ||||
|           [ | ||||
|             "s" | ||||
|           ], | ||||
|           [ | ||||
|             "d" | ||||
|           ], | ||||
|           [ | ||||
|             "f" | ||||
|           ], | ||||
|           [ | ||||
|             "g" | ||||
|           ], | ||||
|           [ | ||||
|             "h" | ||||
|           ], | ||||
|           [ | ||||
|             "j" | ||||
|           ], | ||||
|           [ | ||||
|             "k" | ||||
|           ], | ||||
|           [ | ||||
|             "l" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "z" | ||||
|           ], | ||||
|           [ | ||||
|             "x" | ||||
|           ], | ||||
|           [ | ||||
|             "c" | ||||
|           ], | ||||
|           [ | ||||
|             "v" | ||||
|           ], | ||||
|           [ | ||||
|             "b" | ||||
|           ], | ||||
|           [ | ||||
|             "n", | ||||
|             "ñ", | ||||
|             "ń" | ||||
|           ], | ||||
|           [ | ||||
|             "m" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "shift", | ||||
|       "mode": "latched", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "Q" | ||||
|           ], | ||||
|           [ | ||||
|             "W" | ||||
|           ], | ||||
|           [ | ||||
|             "E", | ||||
|             "É", | ||||
|             "È", | ||||
|             "Ê", | ||||
|             "Ë", | ||||
|             "Ę", | ||||
|             "Ė", | ||||
|             "Ē" | ||||
|           ], | ||||
|           [ | ||||
|             "R" | ||||
|           ], | ||||
|           [ | ||||
|             "T" | ||||
|           ], | ||||
|           [ | ||||
|             "Y", | ||||
|             "Ý", | ||||
|             "Ŷ", | ||||
|             "Ÿ", | ||||
|             "IJ" | ||||
|           ], | ||||
|           [ | ||||
|             "U", | ||||
|             "Ú", | ||||
|             "Û", | ||||
|             "Ü", | ||||
|             "Ù", | ||||
|             "Ū" | ||||
|           ], | ||||
|           [ | ||||
|             "I", | ||||
|             "Í", | ||||
|             "Ì", | ||||
|             "Ï", | ||||
|             "Î", | ||||
|             "Į", | ||||
|             "Ī", | ||||
|             "IJ" | ||||
|           ], | ||||
|           [ | ||||
|             "O", | ||||
|             "Ó", | ||||
|             "Ô", | ||||
|             "Ö", | ||||
|             "Ò", | ||||
|             "Õ", | ||||
|             "Œ", | ||||
|             "Ø", | ||||
|             "Ō" | ||||
|           ], | ||||
|           [ | ||||
|             "P" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "A", | ||||
|             "Á", | ||||
|             "Â", | ||||
|             "Ä", | ||||
|             "À", | ||||
|             "Æ", | ||||
|             "Ã", | ||||
|             "Å", | ||||
|             "Ā" | ||||
|           ], | ||||
|           [ | ||||
|             "S" | ||||
|           ], | ||||
|           [ | ||||
|             "D" | ||||
|           ], | ||||
|           [ | ||||
|             "F" | ||||
|           ], | ||||
|           [ | ||||
|             "G" | ||||
|           ], | ||||
|           [ | ||||
|             "H" | ||||
|           ], | ||||
|           [ | ||||
|             "J" | ||||
|           ], | ||||
|           [ | ||||
|             "K" | ||||
|           ], | ||||
|           [ | ||||
|             "L" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "Z" | ||||
|           ], | ||||
|           [ | ||||
|             "X" | ||||
|           ], | ||||
|           [ | ||||
|             "C" | ||||
|           ], | ||||
|           [ | ||||
|             "V" | ||||
|           ], | ||||
|           [ | ||||
|             "B" | ||||
|           ], | ||||
|           [ | ||||
|             "N", | ||||
|             "Ñ", | ||||
|             "Ń" | ||||
|           ], | ||||
|           [ | ||||
|             "M" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "#", | ||||
|             "!", | ||||
|             ",", | ||||
|             "?", | ||||
|             "-", | ||||
|             ":", | ||||
|             "'", | ||||
|             "@" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "1", | ||||
|             "¹", | ||||
|             "½", | ||||
|             "⅓", | ||||
|             "¼", | ||||
|             "⅛" | ||||
|           ], | ||||
|           [ | ||||
|             "2", | ||||
|             "²", | ||||
|             "⅔" | ||||
|           ], | ||||
|           [ | ||||
|             "3", | ||||
|             "³", | ||||
|             "¾", | ||||
|             "⅜" | ||||
|           ], | ||||
|           [ | ||||
|             "4", | ||||
|             "⁴" | ||||
|           ], | ||||
|           [ | ||||
|             "5", | ||||
|             "⅝" | ||||
|           ], | ||||
|           [ | ||||
|             "6" | ||||
|           ], | ||||
|           [ | ||||
|             "7", | ||||
|             "⅞" | ||||
|           ], | ||||
|           [ | ||||
|             "8" | ||||
|           ], | ||||
|           [ | ||||
|             "9" | ||||
|           ], | ||||
|           [ | ||||
|             "0", | ||||
|             "ⁿ", | ||||
|             "∅" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "@" | ||||
|           ], | ||||
|           [ | ||||
|             "#" | ||||
|           ], | ||||
|           [ | ||||
|             "$", | ||||
|             "¢", | ||||
|             "£", | ||||
|             "€", | ||||
|             "¥", | ||||
|             "₱" | ||||
|           ], | ||||
|           [ | ||||
|             "%", | ||||
|             "‰" | ||||
|           ], | ||||
|           [ | ||||
|             "&" | ||||
|           ], | ||||
|           [ | ||||
|             "-", | ||||
|             "_", | ||||
|             "–", | ||||
|             "—", | ||||
|             "·" | ||||
|           ], | ||||
|           [ | ||||
|             "+", | ||||
|             "±" | ||||
|           ], | ||||
|           [ | ||||
|             "(", | ||||
|             "<", | ||||
|             "{", | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             ")", | ||||
|             ">", | ||||
|             "}", | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "*", | ||||
|             "†", | ||||
|             "‡", | ||||
|             "★" | ||||
|           ], | ||||
|           [ | ||||
|             "\"", | ||||
|             "“", | ||||
|             "”", | ||||
|             "«", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             "'", | ||||
|             "‘", | ||||
|             "’", | ||||
|             "‹", | ||||
|             "›" | ||||
|           ], | ||||
|           [ | ||||
|             ":" | ||||
|           ], | ||||
|           [ | ||||
|             ";" | ||||
|           ], | ||||
|           [ | ||||
|             "!", | ||||
|             "¡" | ||||
|           ], | ||||
|           [ | ||||
|             "?", | ||||
|             "¿" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "_" | ||||
|           ], | ||||
|           [ | ||||
|             "/" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "level": "opt+shift", | ||||
|       "mode": "locked", | ||||
|       "rows": [ | ||||
|         [ | ||||
|           [ | ||||
|             "~" | ||||
|           ], | ||||
|           [ | ||||
|             "`" | ||||
|           ], | ||||
|           [ | ||||
|             "|" | ||||
|           ], | ||||
|           [ | ||||
|             "•", | ||||
|             "♪", | ||||
|             "♥", | ||||
|             "♠", | ||||
|             "♦", | ||||
|             "♣" | ||||
|           ], | ||||
|           [ | ||||
|             "√" | ||||
|           ], | ||||
|           [ | ||||
|             "Π", | ||||
|             "π" | ||||
|           ], | ||||
|           [ | ||||
|             "÷" | ||||
|           ], | ||||
|           [ | ||||
|             "×" | ||||
|           ], | ||||
|           [ | ||||
|             "¶", | ||||
|             "§" | ||||
|           ], | ||||
|           [ | ||||
|             "∆" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "£" | ||||
|           ], | ||||
|           [ | ||||
|             "¢" | ||||
|           ], | ||||
|           [ | ||||
|             "€" | ||||
|           ], | ||||
|           [ | ||||
|             "¥" | ||||
|           ], | ||||
|           [ | ||||
|             "^", | ||||
|             "↑", | ||||
|             "↓", | ||||
|             "←", | ||||
|             "→" | ||||
|           ], | ||||
|           [ | ||||
|             "°", | ||||
|             "′", | ||||
|             "″" | ||||
|           ], | ||||
|           [ | ||||
|             "=", | ||||
|             "≠", | ||||
|             "≈", | ||||
|             "∞" | ||||
|           ], | ||||
|           [ | ||||
|             "{" | ||||
|           ], | ||||
|           [ | ||||
|             "}" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "\\" | ||||
|           ], | ||||
|           [ | ||||
|             "©" | ||||
|           ], | ||||
|           [ | ||||
|             "®" | ||||
|           ], | ||||
|           [ | ||||
|             "™" | ||||
|           ], | ||||
|           [ | ||||
|             "℅" | ||||
|           ], | ||||
|           [ | ||||
|             "[" | ||||
|           ], | ||||
|           [ | ||||
|             "]" | ||||
|           ] | ||||
|         ], | ||||
|         [ | ||||
|           [ | ||||
|             "<", | ||||
|             "‹", | ||||
|             "≤", | ||||
|             "«" | ||||
|           ], | ||||
|           [ | ||||
|             ">", | ||||
|             "›", | ||||
|             "≥", | ||||
|             "»" | ||||
|           ], | ||||
|           [ | ||||
|             " " | ||||
|           ], | ||||
|           [ | ||||
|             "," | ||||
|           ], | ||||
|           [ | ||||
|             ".", | ||||
|             "…" | ||||
|           ] | ||||
|         ] | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "locale": "af", | ||||
|   "name": "Afrikaans" | ||||
| } | ||||
| @@ -1,12 +1,9 @@ | ||||
| Summary | ||||
| ------- | ||||
|  | ||||
| * Do not edit the CSS directly, edit the source SCSS files and process them with SASS (running | ||||
|   `make` should do that when you have the required software installed, as described below; | ||||
|   run `./parse-sass.sh` manually if it doesn't) | ||||
| * Most SASS preprocessors should produce similar results, however the build system | ||||
|   integration and 'parse-sass.sh' script use sassc. You should be able to install | ||||
|   it with `pkcon install sassc` or your distribution's package manager. | ||||
| * Do not edit the CSS directly, edit the source SCSS files and the CSS files will be generated | ||||
|   automatically when building with meson + ninja and left inside the build directory to be | ||||
|   incorporated into the gresource XML (you'll need to have sassc installed). | ||||
|  | ||||
| How to tweak the theme | ||||
| ---------------------- | ||||
| @@ -31,4 +28,4 @@ _common.scss        - actual definitions of style for each widget. This is where | ||||
|                       your changes. | ||||
|                        | ||||
| You can read about SASS at http://sass-lang.com/documentation/. Once you make your changes to the | ||||
| _common.scss file, you can either run make or the ./parse-sass.sh script. | ||||
| _common.scss file, you can run ninja to generate the final CSS files. | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							 Submodule data/theme/gnome-shell-sass deleted from 336c2d5ad6
									
								
							
							
								
								
									
										339
									
								
								data/theme/gnome-shell-sass/COPYING
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										339
									
								
								data/theme/gnome-shell-sass/COPYING
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,339 @@ | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
| 		       Version 2, June 1991 | ||||
|  | ||||
|  Copyright (C) 1989, 1991 Free Software Foundation, Inc. <http://fsf.org> | ||||
|  Everyone is permitted to copy and distribute verbatim copies | ||||
|  of this license document, but changing it is not allowed. | ||||
|  | ||||
| 			    Preamble | ||||
|  | ||||
|   The licenses for most software are designed to take away your | ||||
| freedom to share and change it.  By contrast, the GNU General Public | ||||
| License is intended to guarantee your freedom to share and change free | ||||
| software--to make sure the software is free for all its users.  This | ||||
| General Public License applies to most of the Free Software | ||||
| Foundation's software and to any other program whose authors commit to | ||||
| using it.  (Some other Free Software Foundation software is covered by | ||||
| the GNU Library General Public License instead.)  You can apply it to | ||||
| your programs, too. | ||||
|  | ||||
|   When we speak of free software, we are referring to freedom, not | ||||
| price.  Our General Public Licenses are designed to make sure that you | ||||
| have the freedom to distribute copies of free software (and charge for | ||||
| this service if you wish), that you receive source code or can get it | ||||
| if you want it, that you can change the software or use pieces of it | ||||
| in new free programs; and that you know you can do these things. | ||||
|  | ||||
|   To protect your rights, we need to make restrictions that forbid | ||||
| anyone to deny you these rights or to ask you to surrender the rights. | ||||
| These restrictions translate to certain responsibilities for you if you | ||||
| distribute copies of the software, or if you modify it. | ||||
|  | ||||
|   For example, if you distribute copies of such a program, whether | ||||
| gratis or for a fee, you must give the recipients all the rights that | ||||
| you have.  You must make sure that they, too, receive or can get the | ||||
| source code.  And you must show them these terms so they know their | ||||
| rights. | ||||
|  | ||||
|   We protect your rights with two steps: (1) copyright the software, and | ||||
| (2) offer you this license which gives you legal permission to copy, | ||||
| distribute and/or modify the software. | ||||
|  | ||||
|   Also, for each author's protection and ours, we want to make certain | ||||
| that everyone understands that there is no warranty for this free | ||||
| software.  If the software is modified by someone else and passed on, we | ||||
| want its recipients to know that what they have is not the original, so | ||||
| that any problems introduced by others will not reflect on the original | ||||
| authors' reputations. | ||||
|  | ||||
|   Finally, any free program is threatened constantly by software | ||||
| patents.  We wish to avoid the danger that redistributors of a free | ||||
| program will individually obtain patent licenses, in effect making the | ||||
| program proprietary.  To prevent this, we have made it clear that any | ||||
| patent must be licensed for everyone's free use or not licensed at all. | ||||
|  | ||||
|   The precise terms and conditions for copying, distribution and | ||||
| modification follow. | ||||
|  | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||||
|  | ||||
|   0. This License applies to any program or other work which contains | ||||
| a notice placed by the copyright holder saying it may be distributed | ||||
| under the terms of this General Public License.  The "Program", below, | ||||
| refers to any such program or work, and a "work based on the Program" | ||||
| means either the Program or any derivative work under copyright law: | ||||
| that is to say, a work containing the Program or a portion of it, | ||||
| either verbatim or with modifications and/or translated into another | ||||
| language.  (Hereinafter, translation is included without limitation in | ||||
| the term "modification".)  Each licensee is addressed as "you". | ||||
|  | ||||
| Activities other than copying, distribution and modification are not | ||||
| covered by this License; they are outside its scope.  The act of | ||||
| running the Program is not restricted, and the output from the Program | ||||
| is covered only if its contents constitute a work based on the | ||||
| Program (independent of having been made by running the Program). | ||||
| Whether that is true depends on what the Program does. | ||||
|  | ||||
|   1. You may copy and distribute verbatim copies of the Program's | ||||
| source code as you receive it, in any medium, provided that you | ||||
| conspicuously and appropriately publish on each copy an appropriate | ||||
| copyright notice and disclaimer of warranty; keep intact all the | ||||
| notices that refer to this License and to the absence of any warranty; | ||||
| and give any other recipients of the Program a copy of this License | ||||
| along with the Program. | ||||
|  | ||||
| You may charge a fee for the physical act of transferring a copy, and | ||||
| you may at your option offer warranty protection in exchange for a fee. | ||||
|  | ||||
|   2. You may modify your copy or copies of the Program or any portion | ||||
| of it, thus forming a work based on the Program, and copy and | ||||
| distribute such modifications or work under the terms of Section 1 | ||||
| above, provided that you also meet all of these conditions: | ||||
|  | ||||
|     a) You must cause the modified files to carry prominent notices | ||||
|     stating that you changed the files and the date of any change. | ||||
|  | ||||
|     b) You must cause any work that you distribute or publish, that in | ||||
|     whole or in part contains or is derived from the Program or any | ||||
|     part thereof, to be licensed as a whole at no charge to all third | ||||
|     parties under the terms of this License. | ||||
|  | ||||
|     c) If the modified program normally reads commands interactively | ||||
|     when run, you must cause it, when started running for such | ||||
|     interactive use in the most ordinary way, to print or display an | ||||
|     announcement including an appropriate copyright notice and a | ||||
|     notice that there is no warranty (or else, saying that you provide | ||||
|     a warranty) and that users may redistribute the program under | ||||
|     these conditions, and telling the user how to view a copy of this | ||||
|     License.  (Exception: if the Program itself is interactive but | ||||
|     does not normally print such an announcement, your work based on | ||||
|     the Program is not required to print an announcement.) | ||||
|  | ||||
| These requirements apply to the modified work as a whole.  If | ||||
| identifiable sections of that work are not derived from the Program, | ||||
| and can be reasonably considered independent and separate works in | ||||
| themselves, then this License, and its terms, do not apply to those | ||||
| sections when you distribute them as separate works.  But when you | ||||
| distribute the same sections as part of a whole which is a work based | ||||
| on the Program, the distribution of the whole must be on the terms of | ||||
| this License, whose permissions for other licensees extend to the | ||||
| entire whole, and thus to each and every part regardless of who wrote it. | ||||
|  | ||||
| Thus, it is not the intent of this section to claim rights or contest | ||||
| your rights to work written entirely by you; rather, the intent is to | ||||
| exercise the right to control the distribution of derivative or | ||||
| collective works based on the Program. | ||||
|  | ||||
| In addition, mere aggregation of another work not based on the Program | ||||
| with the Program (or with a work based on the Program) on a volume of | ||||
| a storage or distribution medium does not bring the other work under | ||||
| the scope of this License. | ||||
|  | ||||
|   3. You may copy and distribute the Program (or a work based on it, | ||||
| under Section 2) in object code or executable form under the terms of | ||||
| Sections 1 and 2 above provided that you also do one of the following: | ||||
|  | ||||
|     a) Accompany it with the complete corresponding machine-readable | ||||
|     source code, which must be distributed under the terms of Sections | ||||
|     1 and 2 above on a medium customarily used for software interchange; or, | ||||
|  | ||||
|     b) Accompany it with a written offer, valid for at least three | ||||
|     years, to give any third party, for a charge no more than your | ||||
|     cost of physically performing source distribution, a complete | ||||
|     machine-readable copy of the corresponding source code, to be | ||||
|     distributed under the terms of Sections 1 and 2 above on a medium | ||||
|     customarily used for software interchange; or, | ||||
|  | ||||
|     c) Accompany it with the information you received as to the offer | ||||
|     to distribute corresponding source code.  (This alternative is | ||||
|     allowed only for noncommercial distribution and only if you | ||||
|     received the program in object code or executable form with such | ||||
|     an offer, in accord with Subsection b above.) | ||||
|  | ||||
| The source code for a work means the preferred form of the work for | ||||
| making modifications to it.  For an executable work, complete source | ||||
| code means all the source code for all modules it contains, plus any | ||||
| associated interface definition files, plus the scripts used to | ||||
| control compilation and installation of the executable.  However, as a | ||||
| special exception, the source code distributed need not include | ||||
| anything that is normally distributed (in either source or binary | ||||
| form) with the major components (compiler, kernel, and so on) of the | ||||
| operating system on which the executable runs, unless that component | ||||
| itself accompanies the executable. | ||||
|  | ||||
| If distribution of executable or object code is made by offering | ||||
| access to copy from a designated place, then offering equivalent | ||||
| access to copy the source code from the same place counts as | ||||
| distribution of the source code, even though third parties are not | ||||
| compelled to copy the source along with the object code. | ||||
|  | ||||
|   4. You may not copy, modify, sublicense, or distribute the Program | ||||
| except as expressly provided under this License.  Any attempt | ||||
| otherwise to copy, modify, sublicense or distribute the Program is | ||||
| void, and will automatically terminate your rights under this License. | ||||
| However, parties who have received copies, or rights, from you under | ||||
| this License will not have their licenses terminated so long as such | ||||
| parties remain in full compliance. | ||||
|  | ||||
|   5. You are not required to accept this License, since you have not | ||||
| signed it.  However, nothing else grants you permission to modify or | ||||
| distribute the Program or its derivative works.  These actions are | ||||
| prohibited by law if you do not accept this License.  Therefore, by | ||||
| modifying or distributing the Program (or any work based on the | ||||
| Program), you indicate your acceptance of this License to do so, and | ||||
| all its terms and conditions for copying, distributing or modifying | ||||
| the Program or works based on it. | ||||
|  | ||||
|   6. Each time you redistribute the Program (or any work based on the | ||||
| Program), the recipient automatically receives a license from the | ||||
| original licensor to copy, distribute or modify the Program subject to | ||||
| these terms and conditions.  You may not impose any further | ||||
| restrictions on the recipients' exercise of the rights granted herein. | ||||
| You are not responsible for enforcing compliance by third parties to | ||||
| this License. | ||||
|  | ||||
|   7. If, as a consequence of a court judgment or allegation of patent | ||||
| infringement or for any other reason (not limited to patent issues), | ||||
| conditions are imposed on you (whether by court order, agreement or | ||||
| otherwise) that contradict the conditions of this License, they do not | ||||
| excuse you from the conditions of this License.  If you cannot | ||||
| distribute so as to satisfy simultaneously your obligations under this | ||||
| License and any other pertinent obligations, then as a consequence you | ||||
| may not distribute the Program at all.  For example, if a patent | ||||
| license would not permit royalty-free redistribution of the Program by | ||||
| all those who receive copies directly or indirectly through you, then | ||||
| the only way you could satisfy both it and this License would be to | ||||
| refrain entirely from distribution of the Program. | ||||
|  | ||||
| If any portion of this section is held invalid or unenforceable under | ||||
| any particular circumstance, the balance of the section is intended to | ||||
| apply and the section as a whole is intended to apply in other | ||||
| circumstances. | ||||
|  | ||||
| It is not the purpose of this section to induce you to infringe any | ||||
| patents or other property right claims or to contest validity of any | ||||
| such claims; this section has the sole purpose of protecting the | ||||
| integrity of the free software distribution system, which is | ||||
| implemented by public license practices.  Many people have made | ||||
| generous contributions to the wide range of software distributed | ||||
| through that system in reliance on consistent application of that | ||||
| system; it is up to the author/donor to decide if he or she is willing | ||||
| to distribute software through any other system and a licensee cannot | ||||
| impose that choice. | ||||
|  | ||||
| This section is intended to make thoroughly clear what is believed to | ||||
| be a consequence of the rest of this License. | ||||
|  | ||||
|   8. If the distribution and/or use of the Program is restricted in | ||||
| certain countries either by patents or by copyrighted interfaces, the | ||||
| original copyright holder who places the Program under this License | ||||
| may add an explicit geographical distribution limitation excluding | ||||
| those countries, so that distribution is permitted only in or among | ||||
| countries not thus excluded.  In such case, this License incorporates | ||||
| the limitation as if written in the body of this License. | ||||
|  | ||||
|   9. The Free Software Foundation may publish revised and/or new versions | ||||
| of the General Public License from time to time.  Such new versions will | ||||
| be similar in spirit to the present version, but may differ in detail to | ||||
| address new problems or concerns. | ||||
|  | ||||
| Each version is given a distinguishing version number.  If the Program | ||||
| specifies a version number of this License which applies to it and "any | ||||
| later version", you have the option of following the terms and conditions | ||||
| either of that version or of any later version published by the Free | ||||
| Software Foundation.  If the Program does not specify a version number of | ||||
| this License, you may choose any version ever published by the Free Software | ||||
| Foundation. | ||||
|  | ||||
|   10. If you wish to incorporate parts of the Program into other free | ||||
| programs whose distribution conditions are different, write to the author | ||||
| to ask for permission.  For software which is copyrighted by the Free | ||||
| Software Foundation, write to the Free Software Foundation; we sometimes | ||||
| make exceptions for this.  Our decision will be guided by the two goals | ||||
| of preserving the free status of all derivatives of our free software and | ||||
| of promoting the sharing and reuse of software generally. | ||||
|  | ||||
| 			    NO WARRANTY | ||||
|  | ||||
|   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||||
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN | ||||
| OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||||
| PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||||
| OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||||
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS | ||||
| TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE | ||||
| PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||||
| REPAIR OR CORRECTION. | ||||
|  | ||||
|   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||||
| REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||||
| INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||||
| OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||||
| TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||||
| YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||||
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGES. | ||||
|  | ||||
| 		     END OF TERMS AND CONDITIONS | ||||
|  | ||||
| 	    How to Apply These Terms to Your New Programs | ||||
|  | ||||
|   If you develop a new program, and you want it to be of the greatest | ||||
| possible use to the public, the best way to achieve this is to make it | ||||
| free software which everyone can redistribute and change under these terms. | ||||
|  | ||||
|   To do so, attach the following notices to the program.  It is safest | ||||
| to attach them to the start of each source file to most effectively | ||||
| convey the exclusion of warranty; and each file should have at least | ||||
| the "copyright" line and a pointer to where the full notice is found. | ||||
|  | ||||
|     <one line to give the program's name and a brief idea of what it does.> | ||||
|     Copyright (C) <year>  <name of author> | ||||
|  | ||||
|     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 2 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, write to the Free Software | ||||
|     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
|  | ||||
|  | ||||
| Also add information on how to contact you by electronic and paper mail. | ||||
|  | ||||
| If the program is interactive, make it output a short notice like this | ||||
| when it starts in an interactive mode: | ||||
|  | ||||
|     Gnomovision version 69, Copyright (C) year  name of author | ||||
|     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||||
|     This is free software, and you are welcome to redistribute it | ||||
|     under certain conditions; type `show c' for details. | ||||
|  | ||||
| The hypothetical commands `show w' and `show c' should show the appropriate | ||||
| parts of the General Public License.  Of course, the commands you use may | ||||
| be called something other than `show w' and `show c'; they could even be | ||||
| mouse-clicks or menu items--whatever suits your program. | ||||
|  | ||||
| You should also get your employer (if you work as a programmer) or your | ||||
| school, if any, to sign a "copyright disclaimer" for the program, if | ||||
| necessary.  Here is a sample; alter the names: | ||||
|  | ||||
|   Yoyodyne, Inc., hereby disclaims all copyright interest in the program | ||||
|   `Gnomovision' (which makes passes at compilers) written by James Hacker. | ||||
|  | ||||
|   <signature of Ty Coon>, 1 April 1989 | ||||
|   Ty Coon, President of Vice | ||||
|  | ||||
| This General Public License does not permit incorporating your program into | ||||
| proprietary programs.  If your program is a subroutine library, you may | ||||
| consider it more useful to permit linking proprietary applications with the | ||||
| library.  If this is what you want to do, use the GNU Library General | ||||
| Public License instead of this License. | ||||
							
								
								
									
										6
									
								
								data/theme/gnome-shell-sass/HACKING
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								data/theme/gnome-shell-sass/HACKING
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| --- Generating the css file --- | ||||
|  | ||||
| You need sass to generate the css file. | ||||
|  | ||||
| To generate them run from a command line in the project directory: | ||||
| sass --sourcemap=none --update ./ | ||||
							
								
								
									
										0
									
								
								data/theme/gnome-shell-sass/NEWS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								data/theme/gnome-shell-sass/NEWS
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										7
									
								
								data/theme/gnome-shell-sass/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								data/theme/gnome-shell-sass/README
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| GNOME Shell Sass is a project intended to allow the sharing of the theme sources in sass between gnome-shell and other projects like gnome-shell-extensions. | ||||
|  | ||||
| License | ||||
| ======= | ||||
| GNOME Shell Sass is distributed under the terms of the GNU General Public License, | ||||
| version 2 or later. See the COPYING file for details. | ||||
|  | ||||
							
								
								
									
										44
									
								
								data/theme/gnome-shell-sass/_colors.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								data/theme/gnome-shell-sass/_colors.scss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| // When color definition differs for dark and light variant, | ||||
| // it gets @if ed depending on $variant | ||||
|  | ||||
|  | ||||
| $base_color: if($variant =='light', #ffffff, #292929); | ||||
| $bg_color: if($variant =='light', #ededed, #393f3f); | ||||
| $fg_color: if($variant =='light', #2e3436, #eeeeec); | ||||
|  | ||||
| $selected_fg_color: #ffffff; | ||||
| $selected_bg_color: if($variant == 'light', #4a90d9, darken(#4a90d9,20%)); | ||||
| $selected_borders_color: if($variant=='light', darken($selected_bg_color, 30%), | ||||
|                                                darken($selected_bg_color, 20%)); | ||||
| $borders_color: if($variant =='light', darken($bg_color,30%), darken($bg_color,12%)); | ||||
| $borders_edge: if($variant =='light', white, transparentize($fg_color, 0.9)); | ||||
| $link_color: if($variant == 'light', darken($selected_bg_color,10%), | ||||
|                                      lighten($selected_bg_color,20%)); | ||||
| $link_visited_color: if($variant == 'light', darken($selected_bg_color,20%), | ||||
|                                      lighten($selected_bg_color,10%)); | ||||
| $top_hilight: $borders_edge; | ||||
|  | ||||
| $warning_color: #f57900; | ||||
| $error_color: #cc0000; | ||||
| $success_color: if($variant =='light', #73d216, darken(#73d216,10%)); | ||||
| $destructive_color: if($variant =='light', #ef2929, darken(#ef2929,10%)); | ||||
|  | ||||
| $osd_fg_color: #eeeeec; | ||||
| $osd_bg_color: #2e3436; | ||||
| $osd_borders_color: transparentize(black, 0.3); | ||||
| $osd_outer_borders_color: transparentize(white, 0.9); | ||||
|  | ||||
| $tooltip_borders_color: $osd_outer_borders_color; | ||||
|  | ||||
| //insensitive state derived colors | ||||
| $insensitive_fg_color: mix($fg_color, $bg_color, 50%); | ||||
| $insensitive_bg_color: mix($bg_color, $base_color, 60%); | ||||
| $insensitive_borders_color: $borders_color; | ||||
|  | ||||
| //colors for the backdrop state, derived from the main colors. | ||||
| $backdrop_base_color: if($variant =='light', darken($base_color,1%), lighten($base_color,1%)); | ||||
| $backdrop_bg_color: $bg_color; | ||||
| $backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 80%); | ||||
| $backdrop_insensitive_color: if($variant =='light', darken($backdrop_bg_color,15%), lighten($backdrop_bg_color,15%)); | ||||
| $backdrop_borders_color: mix($borders_color, $bg_color, 90%); | ||||
| $backdrop_dark_fill: mix($backdrop_borders_color,$backdrop_bg_color, 35%); | ||||
							
								
								
									
										2016
									
								
								data/theme/gnome-shell-sass/_common.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2016
									
								
								data/theme/gnome-shell-sass/_common.scss
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										221
									
								
								data/theme/gnome-shell-sass/_drawing.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										221
									
								
								data/theme/gnome-shell-sass/_drawing.scss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,221 @@ | ||||
| // Drawing mixins | ||||
|  | ||||
| // generic drawing of more complex things | ||||
|  | ||||
| @function _widget_edge($c:$borders_edge) { | ||||
| // outer highlight "used" on most widgets | ||||
|   @return 0 1px $c; | ||||
| } | ||||
|  | ||||
| // provide font size in rem, with px fallback | ||||
| @mixin fontsize($size: 24, $base: 16) { | ||||
|   font-size: round($size) + pt; | ||||
|   //font-size: ($size / $base) * 1rem; | ||||
| } | ||||
|  | ||||
| @mixin _shadows($shadow1, $shadow2:none, $shadow3:none, $shadow4:none) { | ||||
| // | ||||
| // Helper function to stack up to 4 box-shadows; | ||||
| // | ||||
|   @if $shadow4!=none { box-shadow: $shadow1, $shadow2, $shadow3, $shadow4; } | ||||
|   @else if $shadow3!=none { box-shadow: $shadow1, $shadow2, $shadow3; } | ||||
|   @else if $shadow2!=none { box-shadow: $shadow1, $shadow2; } | ||||
|   @else { box-shadow: $shadow1; } | ||||
| } | ||||
|  | ||||
| // entries | ||||
|  | ||||
| @mixin entry($t, $fc:$selected_bg_color, $edge: $borders_edge) { | ||||
| // | ||||
| // Entries drawing function | ||||
| // | ||||
| // $t: entry type | ||||
| // $fc: focus color | ||||
| // $edge: set to none to not draw the bottom edge or specify a color to not | ||||
| //        use the default one | ||||
| // | ||||
| // possible $t values: | ||||
| // normal, focus, insensitive | ||||
| // | ||||
|   $_inner_shadows: inset 0 2px 4px transparentize(black, 0.6); | ||||
|  | ||||
|   @if $t==normal { | ||||
|     background-color: $base_color; | ||||
|     border-color: $borders_color; | ||||
|     @include _shadows($_inner_shadows); | ||||
|  | ||||
|   } | ||||
|   @if $t==focus { | ||||
|     @include _shadows($_inner_shadows); | ||||
|     border-color: if($fc==$selected_bg_color, | ||||
|                      $selected_borders_color, | ||||
|                      darken($fc,35%)); | ||||
|   } | ||||
|   @if $t==hover { } | ||||
|   @if $t==insensitive { | ||||
|     color: $insensitive_fg_color; | ||||
|     border-color: $insensitive_bg_color; | ||||
|     box-shadow: none; | ||||
|   } | ||||
| } | ||||
|  | ||||
| // buttons | ||||
|  | ||||
| @function _border_color ($c) { @return darken($c,25%); } // colored buttons want | ||||
|                                                          // the border form the | ||||
|                                                          // base color | ||||
|  | ||||
| @function _text_shadow_color ($tc:$fg_color, $bg:$bg_color) { | ||||
| // | ||||
| // calculate the color of text shadows | ||||
| // | ||||
| // $tc is the text color | ||||
| // $bg is the background color | ||||
| // | ||||
|   $_lbg: lightness($bg)/100%; | ||||
|   @if lightness($tc)<50% { @return transparentize(white,1-$_lbg/($_lbg*1.3)); } | ||||
|   @else { @return transparentize(black,$_lbg*0.8); } | ||||
| } | ||||
|  | ||||
| @function _button_hilight_color($c) { | ||||
| // | ||||
| // calculate the right top hilight color for buttons | ||||
| // | ||||
| // $c: base color; | ||||
| // | ||||
|   @if lightness($c)>90% { @return white; } | ||||
|   @else if lightness($c)>80% { @return transparentize(white, 0.3); } | ||||
|   @else if lightness($c)>50% { @return transparentize(white, 0.5); } | ||||
|   @else if lightness($c)>40% { @return transparentize(white, 0.7); } | ||||
|   @else { @return transparentize(white, 0.9); } | ||||
| } | ||||
|  | ||||
| @mixin _button_text_shadow ($tc:$fg_color, $bg:$bg_color) { | ||||
| // | ||||
| // helper function for the text emboss effect | ||||
| // | ||||
| // $tc is the optional text color, not the shadow color | ||||
| // | ||||
| // TODO: this functions needs a way to deal with special cases | ||||
| // | ||||
|  | ||||
|   $_shadow: _text_shadow_color($tc, $bg); | ||||
|  | ||||
|   @if lightness($tc)<50% { | ||||
|     text-shadow: 0 1px $_shadow; | ||||
|     icon-shadow: 0 1px $_shadow; | ||||
|   } | ||||
|   @else { | ||||
|     text-shadow: 0 -1px $_shadow; | ||||
|     icon-shadow: 0 -1px $_shadow; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @mixin button($t, $c:$osd_bg_color, $tc:$fg_color, $edge: $borders_edge) { | ||||
| // | ||||
| // Button drawing function | ||||
| // | ||||
| // $t:    button type, | ||||
| // $c:    base button color for colored* types | ||||
| // $tc:   optional text color for colored* types | ||||
| // $edge: set to none to not draw the bottom edge or specify a color to not | ||||
| //        use the default one | ||||
| // | ||||
| // possible $t values: | ||||
| // normal, hover, active, insensitive, insensitive-active, | ||||
| // backdrop, backdrop-active, backdrop-insensitive, backdrop-insensitive-active, | ||||
| // osd, osd-hover, osd-active, osd-insensitive, osd-backdrop, undecorated | ||||
| // | ||||
|  | ||||
|   $_hilight_color: _button_hilight_color($c); | ||||
|   $_button_edge: if($edge == none, none, _widget_edge($edge)); | ||||
|   $_blank_edge: if($edge == none, none, _widget_edge(transparentize($edge,1))); | ||||
|  | ||||
|  | ||||
|   @if $t==normal { | ||||
|   // | ||||
|   // normal button | ||||
|   // | ||||
|     $_bg: if($c!=$osd_bg_color, transparentize($c, 0.5), | ||||
|                             $osd_bg_color); | ||||
|  | ||||
|     color: $osd_fg_color; | ||||
|     background-color: $_bg; | ||||
|     border-color: $osd_borders_color; | ||||
|     box-shadow: inset 0 1px lighten($osd_bg_color,10%); | ||||
|     text-shadow: 0 1px black; | ||||
|     icon-shadow: 0 1px black; | ||||
|   } | ||||
|   @if $t==focus { | ||||
|   // | ||||
|   // focused button | ||||
|   // | ||||
|     $_bg: if($c!=$osd_bg_color, transparentize($c, 0.5), | ||||
|                           $osd_bg_color); | ||||
|  | ||||
|     color: $osd_fg_color; | ||||
|     text-shadow: 0 1px black; | ||||
|     icon-shadow: 0 1px black; | ||||
|     box-shadow: inset 0px 0px 0px 1px $selected_bg_color; | ||||
|   } | ||||
|  | ||||
|   @else if $t==hover { | ||||
|   // | ||||
|   // active osd button | ||||
|   // | ||||
|     $_bg: if($c!=$osd_bg_color, transparentize($c, 0.3), | ||||
|                             lighten($osd_bg_color,10%)); | ||||
|  | ||||
|     color: white; | ||||
|     border-color: $osd_borders_color; | ||||
|     background-color: $_bg; | ||||
|     box-shadow: inset 0 1px lighten($osd_bg_color,20%); | ||||
|     text-shadow: 0 1px black; | ||||
|     icon-shadow: 0 1px black; | ||||
|  | ||||
|   } | ||||
|   @else if $t==active { | ||||
|   // | ||||
|   // active osd button | ||||
|   // | ||||
|     $_bg: if($c!=$bg_color, $c, $osd_borders_color); | ||||
|  | ||||
|     color: white; | ||||
|     border-color: $osd_borders_color; | ||||
|     background-color: darken($_bg,5%); | ||||
|     // This should be none, but it's creating some issues with borders, so to | ||||
|     // workaround it for now, use inset wich goes through a different code path. | ||||
|     // see https://bugzilla.gnome.org/show_bug.cgi?id=752934 | ||||
|     box-shadow: inset 0 0 black; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; | ||||
|   } | ||||
|   @else if $t==insensitive { | ||||
|   // | ||||
|   // insensitive osd button | ||||
|   // | ||||
|     $_bg: transparentize(mix($insensitive_fg_color,$osd_bg_color,20%),0.3); | ||||
|  | ||||
|     color: $insensitive_fg_color; | ||||
|     border-color: $osd_borders_color; | ||||
|     background-color: $_bg; | ||||
|     box-shadow: none; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; | ||||
|   } | ||||
|   @else if $t==undecorated { | ||||
|   // | ||||
|   // reset | ||||
|   // | ||||
|     border-color: transparent; | ||||
|     background-color: transparent; | ||||
|     background-image: none; | ||||
|  | ||||
|     @include _shadows(inset 0 1px transparentize(white,1), | ||||
|                       $_blank_edge); | ||||
|  | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; | ||||
|   } | ||||
| } | ||||
|  | ||||
							
								
								
									
										41
									
								
								data/theme/gnome-shell-sass/_high-contrast-colors.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								data/theme/gnome-shell-sass/_high-contrast-colors.scss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| // When color definition differs for dark and light variant, | ||||
| // it gets @if ed depending on $variant | ||||
|  | ||||
|  | ||||
| $base_color: #222; | ||||
| $bg_color: #000; | ||||
| $fg_color: #fff; | ||||
|  | ||||
| $selected_fg_color: #ffffff; | ||||
| $selected_bg_color: darken(#4a90d9,20%); | ||||
| $selected_borders_color: darken($selected_bg_color, 20%); | ||||
| $borders_color: darken($bg_color,12%); | ||||
| $borders_edge: transparentize($fg_color, 0.9); | ||||
| $link_color: lighten($selected_bg_color,20%); | ||||
| $link_visited_color: lighten($selected_bg_color,10%); | ||||
| $top_hilight: $borders_edge; | ||||
|  | ||||
| $warning_color: #f57900; | ||||
| $error_color: #cc0000; | ||||
| $success_color: darken(#73d216,10%); | ||||
| $destructive_color: darken(#ef2929,10%); | ||||
|  | ||||
| $osd_fg_color: #eeeeec; | ||||
| $osd_bg_color: #2e3436; | ||||
| $osd_borders_color: transparentize(black, 0.3); | ||||
| $osd_outer_borders_color: transparentize(white, 0.9); | ||||
|  | ||||
| $tooltip_borders_color: $osd_outer_borders_color; | ||||
|  | ||||
| //insensitive state derived colors | ||||
| $insensitive_fg_color: mix($fg_color, $bg_color, 50%); | ||||
| $insensitive_bg_color: mix($bg_color, $base_color, 60%); | ||||
| $insensitive_borders_color: $borders_color; | ||||
|  | ||||
| //colors for the backdrop state, derived from the main colors. | ||||
| $backdrop_base_color: lighten($base_color,1%); | ||||
| $backdrop_bg_color: $bg_color; | ||||
| $backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 80%); | ||||
| $backdrop_insensitive_color: lighten($backdrop_bg_color,15%); | ||||
| $backdrop_borders_color: mix($borders_color, $bg_color, 90%); | ||||
| $backdrop_dark_fill: mix($backdrop_borders_color,$backdrop_bg_color, 35%); | ||||
							
								
								
									
										37
									
								
								data/theme/gnome-shell-sass/gnome-shell-sass.doap
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								data/theme/gnome-shell-sass/gnome-shell-sass.doap
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| <Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|          xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" | ||||
|          xmlns:foaf="http://xmlns.com/foaf/0.1/" | ||||
|          xmlns:gnome="http://api.gnome.org/doap-extensions#" | ||||
|          xmlns="http://usefulinc.com/ns/doap#"> | ||||
|  | ||||
|   <name xml:lang="en">GNOME Shell Sass</name> | ||||
|   <shortdesc xml:lang="en">Sass sources of GNOME Shell</shortdesc> | ||||
|   <description>GNOME Shell Sass is a project intended to allow the sharing of the | ||||
|  sass theme sources between gnome-shell and other projects like gnome-shell-extensions.</description> | ||||
|  | ||||
|   <category rdf:resource="http://api.gnome.org/doap-extensions#core" /> | ||||
|   <programming-language>sass</programming-language> | ||||
|   <programming-language>css</programming-language> | ||||
|  | ||||
|   <maintainer> | ||||
|     <foaf:Person> | ||||
|       <foaf:name>Carlos Soriano</foaf:name> | ||||
|       <foaf:mbox rdf:resource="mailto:csoriano@gnome.org" /> | ||||
|       <gnome:userid>csoriano</gnome:userid> | ||||
|     </foaf:Person> | ||||
|   </maintainer> | ||||
|   <maintainer> | ||||
|     <foaf:Person> | ||||
|       <foaf:name>Florian Müllner</foaf:name> | ||||
|       <foaf:mbox rdf:resource="mailto:fmuellner@gnome.org" /> | ||||
|       <gnome:userid>fmuellner</gnome:userid> | ||||
|     </foaf:Person> | ||||
|   </maintainer> | ||||
|   <maintainer> | ||||
|     <foaf:Person> | ||||
|       <foaf:name>Jakub Steiner</foaf:name> | ||||
|       <foaf:mbox rdf:resource="mailto:jimmac@gmail.com" /> | ||||
|       <gnome:userid>jimmac</gnome:userid> | ||||
|     </foaf:Person> | ||||
|   </maintainer> | ||||
| </Project> | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										109
									
								
								data/theme/key-enter.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								data/theme/key-enter.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <svg | ||||
|    xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    width="32" | ||||
|    viewBox="0 0 32 32" | ||||
|    version="1.1" | ||||
|    id="svg7384" | ||||
|    height="32" | ||||
|    sodipodi:docname="key-enter.svg" | ||||
|    inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | ||||
|   <sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1744" | ||||
|      inkscape:window-height="866" | ||||
|      id="namedview19" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="14.75" | ||||
|      inkscape:cx="7.9322034" | ||||
|      inkscape:cy="14.554666" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="55" | ||||
|      inkscape:window-maximized="0" | ||||
|      inkscape:current-layer="svg7384" /> | ||||
|   <metadata | ||||
|      id="metadata90"> | ||||
|     <rdf:RDF> | ||||
|       <cc:Work | ||||
|          rdf:about=""> | ||||
|         <dc:format>image/svg+xml</dc:format> | ||||
|         <dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
|         <dc:title>Gnome Symbolic Icon Theme</dc:title> | ||||
|       </cc:Work> | ||||
|     </rdf:RDF> | ||||
|   </metadata> | ||||
|   <title | ||||
|      id="title9167">Gnome Symbolic Icon Theme</title> | ||||
|   <defs | ||||
|      id="defs7386"> | ||||
|     <linearGradient | ||||
|        osb:paint="solid" | ||||
|        id="linearGradient19282" | ||||
|        gradientTransform="matrix(-2.7365795,0.28202934,-0.18908311,-0.99988321,239.54008,-879.45557)"> | ||||
|       <stop | ||||
|          style="stop-color:#666666;stop-opacity:1;" | ||||
|          offset="0" | ||||
|          id="stop19284" /> | ||||
|     </linearGradient> | ||||
|   </defs> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer9" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer10" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer11" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer13" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer14" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer15" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g71291" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g4953" /> | ||||
|   <g | ||||
|      transform="matrix(2,0,0,2,-281.56285,-1615.0002)" | ||||
|      style="display:inline" | ||||
|      id="layer12"> | ||||
|     <path | ||||
|        id="path16589" | ||||
|        d="m 148.00015,821.0002 h -1 c -0.26528,0 -0.53057,-0.093 -0.71875,-0.2812 l -3.71875,-3.7188 c 0,0 2.47917,-2.4792 3.71875,-3.7187 0.18817,-0.1882 0.45344,-0.2813 0.71875,-0.2813 h 1 v 1 c 0,0.2653 -0.0931,0.5306 -0.28125,0.7188 l -2.28125,2.2812 2.28125,2.2813 c 0.18811,0.1881 0.28129,0.4534 0.28125,0.7187 z" | ||||
|        style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" | ||||
|        inkscape:connector-curvature="0" /> | ||||
|     <path | ||||
|        style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#bebebe;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" | ||||
|        d="m 154.0002,810 v 4.5 c 0,1.3807 -1.11929,2.5 -2.5,2.5 h -6.50005" | ||||
|        id="path16591" | ||||
|        inkscape:connector-curvature="0" /> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 4.1 KiB | 
							
								
								
									
										114
									
								
								data/theme/key-hide.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								data/theme/key-hide.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,114 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <svg | ||||
|    xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    width="32" | ||||
|    viewBox="0 0 32 32" | ||||
|    version="1.1" | ||||
|    id="svg7384" | ||||
|    height="32" | ||||
|    sodipodi:docname="key-hide.svg" | ||||
|    inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | ||||
|   <sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1919" | ||||
|      inkscape:window-height="1011" | ||||
|      id="namedview19" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="14.75" | ||||
|      inkscape:cx="-12.338983" | ||||
|      inkscape:cy="14.554666" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="55" | ||||
|      inkscape:window-maximized="0" | ||||
|      inkscape:current-layer="svg7384" /> | ||||
|   <metadata | ||||
|      id="metadata90"> | ||||
|     <rdf:RDF> | ||||
|       <cc:Work | ||||
|          rdf:about=""> | ||||
|         <dc:format>image/svg+xml</dc:format> | ||||
|         <dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
|         <dc:title>Gnome Symbolic Icon Theme</dc:title> | ||||
|       </cc:Work> | ||||
|     </rdf:RDF> | ||||
|   </metadata> | ||||
|   <title | ||||
|      id="title9167">Gnome Symbolic Icon Theme</title> | ||||
|   <defs | ||||
|      id="defs7386"> | ||||
|     <linearGradient | ||||
|        osb:paint="solid" | ||||
|        id="linearGradient19282" | ||||
|        gradientTransform="matrix(-2.7365795,0.28202934,-0.18908311,-0.99988321,239.54008,-879.45557)"> | ||||
|       <stop | ||||
|          style="stop-color:#666666;stop-opacity:1;" | ||||
|          offset="0" | ||||
|          id="stop19284" /> | ||||
|     </linearGradient> | ||||
|   </defs> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer9" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer10" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer11" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer13" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer14" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer15" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g71291" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g4953" /> | ||||
|   <g | ||||
|      style="display:inline" | ||||
|      inkscape:label="go-down" | ||||
|      id="g11722" | ||||
|      transform="matrix(2,0,0,2,-362.0004,-1494)"> | ||||
|     <rect | ||||
|        transform="rotate(90)" | ||||
|        style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:1;marker:none;enable-background:new" | ||||
|        id="rect11718" | ||||
|        y="-197.0002" | ||||
|        x="747" | ||||
|        height="16" | ||||
|        width="16" /> | ||||
|     <path | ||||
|        style="display:inline;fill:#e5e5e5;fill-opacity:1;stroke:none" | ||||
|        d="m 189.0002,759.4375 -5.71875,-5.7187 C 183.08558,753.5229 183.0002,753.2556 183.0002,753 v -1 h 1 c 0.25562,0 0.52288,0.085 0.71875,0.2813 l 4.28125,4.2812 4.28125,-4.2812 C 193.47732,752.0854 193.74458,752 194.0002,752 h 1 v 1 c 0,0.2556 -0.0854,0.5229 -0.28125,0.7188 z" | ||||
|        id="path11720" | ||||
|        inkscape:connector-curvature="0" | ||||
|        sodipodi:nodetypes="ccscsccsscscc" /> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.5 KiB | 
							
								
								
									
										114
									
								
								data/theme/key-layout.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								data/theme/key-layout.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,114 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <svg | ||||
|    xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    width="32" | ||||
|    viewBox="0 0 32 32" | ||||
|    version="1.1" | ||||
|    id="svg7384" | ||||
|    height="32" | ||||
|    sodipodi:docname="key-layout.svg" | ||||
|    inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | ||||
|   <sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1919" | ||||
|      inkscape:window-height="1011" | ||||
|      id="namedview19" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="14.75" | ||||
|      inkscape:cx="1.220339" | ||||
|      inkscape:cy="11.842802" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="55" | ||||
|      inkscape:window-maximized="0" | ||||
|      inkscape:current-layer="svg7384" /> | ||||
|   <metadata | ||||
|      id="metadata90"> | ||||
|     <rdf:RDF> | ||||
|       <cc:Work | ||||
|          rdf:about=""> | ||||
|         <dc:format>image/svg+xml</dc:format> | ||||
|         <dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
|         <dc:title>Gnome Symbolic Icon Theme</dc:title> | ||||
|       </cc:Work> | ||||
|     </rdf:RDF> | ||||
|   </metadata> | ||||
|   <title | ||||
|      id="title9167">Gnome Symbolic Icon Theme</title> | ||||
|   <defs | ||||
|      id="defs7386"> | ||||
|     <linearGradient | ||||
|        osb:paint="solid" | ||||
|        id="linearGradient19282" | ||||
|        gradientTransform="matrix(-2.7365795,0.28202934,-0.18908311,-0.99988321,239.54008,-879.45557)"> | ||||
|       <stop | ||||
|          style="stop-color:#666666;stop-opacity:1;" | ||||
|          offset="0" | ||||
|          id="stop19284" /> | ||||
|     </linearGradient> | ||||
|   </defs> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer9" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer10" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer11" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer13" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer14" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer15" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g71291" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g4953" /> | ||||
|   <g | ||||
|      inkscape:label="preferences-desktop-locale" | ||||
|      id="g11728" | ||||
|      transform="matrix(2,0,0,2,-522.0004,-1086)" | ||||
|      style="display:inline;stroke-width:1"> | ||||
|     <rect | ||||
|        style="fill:none;stroke:none;stroke-width:1" | ||||
|        id="rect11724" | ||||
|        width="16" | ||||
|        height="16" | ||||
|        x="20" | ||||
|        y="326" | ||||
|        transform="translate(241.0002,217)" /> | ||||
|     <path | ||||
|        style="fill:#e5e5e5;fill-opacity:1;stroke:none;stroke-width:1" | ||||
|        d="m 265.69612,545.23396 c -3.58218,0 -4.66582,1.39975 -4.66582,1.39975 v 10.04946 c 0,0 1.08364,-1.07673 4.66582,-1.07673 2.9161,0 4.47225,1.07673 7.17818,1.07673 2.08923,0 3.19429,-1.39975 3.19429,-1.39975 v -10.04946 c 0,0 -1.14095,1.04084 -3.23018,1.04084 -3.3734,0 -3.97619,-1.04084 -7.14229,-1.04084 z m 2.93145,2.77148 c 1.32876,0 2.375,1.08037 2.375,2.4375 0,1.35713 -1.04624,2.46875 -2.375,2.46875 -1.32876,0 -2.40625,-1.11162 -2.40625,-2.46875 0,-1.35713 1.07749,-2.4375 2.40625,-2.4375 z m -4.5625,0.96875 0.96875,1.03125 -0.9375,-0.0312 0.9375,1 -0.96875,-0.0312 0.96875,1.03125 -1,-0.0312 0.0312,-1 h -0.0312 l 0.0312,-0.9688 h -0.0312 z m 4.5625,0 c -0.794,0 -1.46875,0.6578 -1.46875,1.46875 0,0.81095 0.67475,1.46875 1.46875,1.46875 0.79399,0 1.4375,-0.6578 1.4375,-1.46875 0,-0.81095 -0.64351,-1.46875 -1.4375,-1.46875 z m 4.375,0 v 1 l 0.0312,0.96875 h -0.0312 l 0.0312,1 -1,0.0312 0.96875,-1.03125 -0.96875,0.0312 0.9375,-1 -0.9375,0.0312 z m -7.9375,2.96875 0.96875,1.03125 -1,-0.0312 z m 6.9375,0 0.0312,1 -1,0.0312 z m -5.9375,1 0.96875,1.03125 -1,-0.0312 z m 4.9375,0 0.0312,1 -1,0.0312 z" | ||||
|        id="path11726" | ||||
|        inkscape:connector-curvature="0" | ||||
|        sodipodi:nodetypes="sccssccsssssssccccccccccccsssssccccccccccccccccccccccccccc" /> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 4.3 KiB | 
							
								
								
									
										109
									
								
								data/theme/key-shift-latched-uppercase.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								data/theme/key-shift-latched-uppercase.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <svg | ||||
|    xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    width="32" | ||||
|    viewBox="0 0 32 32" | ||||
|    version="1.1" | ||||
|    id="svg7384" | ||||
|    height="32" | ||||
|    sodipodi:docname="key-shift-latched-uppercase.svg" | ||||
|    inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | ||||
|   <sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1791" | ||||
|      inkscape:window-height="984" | ||||
|      id="namedview19" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="14.75" | ||||
|      inkscape:cx="-0.77966097" | ||||
|      inkscape:cy="18.847458" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="55" | ||||
|      inkscape:window-maximized="0" | ||||
|      inkscape:current-layer="svg7384" /> | ||||
|   <metadata | ||||
|      id="metadata90"> | ||||
|     <rdf:RDF> | ||||
|       <cc:Work | ||||
|          rdf:about=""> | ||||
|         <dc:format>image/svg+xml</dc:format> | ||||
|         <dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
|         <dc:title>Gnome Symbolic Icon Theme</dc:title> | ||||
|       </cc:Work> | ||||
|     </rdf:RDF> | ||||
|   </metadata> | ||||
|   <title | ||||
|      id="title9167">Gnome Symbolic Icon Theme</title> | ||||
|   <defs | ||||
|      id="defs7386"> | ||||
|     <linearGradient | ||||
|        osb:paint="solid" | ||||
|        id="linearGradient19282" | ||||
|        gradientTransform="matrix(-2.7365795,0.28202934,-0.18908311,-0.99988321,239.54008,-879.45557)"> | ||||
|       <stop | ||||
|          style="stop-color:#666666;stop-opacity:1;" | ||||
|          offset="0" | ||||
|          id="stop19284" /> | ||||
|     </linearGradient> | ||||
|   </defs> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer9" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer10" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer11" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer13" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer14" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer15" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g71291" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g4953" /> | ||||
|   <g | ||||
|      transform="matrix(2,0,0,2,-282.0004,-1614.2187)" | ||||
|      style="display:inline;fill:#006098;fill-opacity:1" | ||||
|      id="layer12"> | ||||
|     <path | ||||
|        style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#006098;fill-opacity:1;stroke:none;stroke-width:2;marker:none;enable-background:new" | ||||
|        d="m 147,818 v -4 h -3.1248 l 5.125,-5.7813 5.125,5.7813 h -3.1875 v 4 z" | ||||
|        id="path16532" | ||||
|        inkscape:connector-curvature="0" /> | ||||
|     <path | ||||
|        id="path16534" | ||||
|        d="m 147,822 v -2 h 3.9377 v 2 z" | ||||
|        style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#006098;fill-opacity:1;stroke:none;stroke-width:2;marker:none;enable-background:new" | ||||
|        inkscape:connector-curvature="0" /> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.4 KiB | 
							
								
								
									
										104
									
								
								data/theme/key-shift-uppercase.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								data/theme/key-shift-uppercase.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,104 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <svg | ||||
|    xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    width="32" | ||||
|    viewBox="0 0 32 32" | ||||
|    version="1.1" | ||||
|    id="svg7384" | ||||
|    height="32" | ||||
|    sodipodi:docname="key-shift-uppercase.svg" | ||||
|    inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | ||||
|   <sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="2160" | ||||
|      inkscape:window-height="1311" | ||||
|      id="namedview18" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="14.75" | ||||
|      inkscape:cx="-27.898305" | ||||
|      inkscape:cy="8" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="55" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="svg7384" /> | ||||
|   <metadata | ||||
|      id="metadata90"> | ||||
|     <rdf:RDF> | ||||
|       <cc:Work | ||||
|          rdf:about=""> | ||||
|         <dc:format>image/svg+xml</dc:format> | ||||
|         <dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
|         <dc:title>Gnome Symbolic Icon Theme</dc:title> | ||||
|       </cc:Work> | ||||
|     </rdf:RDF> | ||||
|   </metadata> | ||||
|   <title | ||||
|      id="title9167">Gnome Symbolic Icon Theme</title> | ||||
|   <defs | ||||
|      id="defs7386"> | ||||
|     <linearGradient | ||||
|        osb:paint="solid" | ||||
|        id="linearGradient19282" | ||||
|        gradientTransform="matrix(-2.7365795,0.28202934,-0.18908311,-0.99988321,239.54008,-879.45557)"> | ||||
|       <stop | ||||
|          style="stop-color:#666666;stop-opacity:1;" | ||||
|          offset="0" | ||||
|          id="stop19284" /> | ||||
|     </linearGradient> | ||||
|   </defs> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer9" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer10" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer11" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer13" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      id="layer14" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="layer15" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g71291" /> | ||||
|   <g | ||||
|      transform="translate(-141.0002,-791)" | ||||
|      style="display:inline" | ||||
|      id="g4953" /> | ||||
|   <g | ||||
|      transform="matrix(2,0,0,2,-282.0008,-1614.2187)" | ||||
|      style="display:inline;fill:#006098;fill-opacity:1" | ||||
|      id="layer12"> | ||||
|     <path | ||||
|        id="path16548" | ||||
|        d="m 147.0002,820 v -4 h -3.1248 l 5.125,-5.7813 5.125,5.7813 h -3.1875 v 4 z" | ||||
|        style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#006098;fill-opacity:1;stroke:none;stroke-width:2;marker:none;enable-background:new" | ||||
|        inkscape:connector-curvature="0" /> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.1 KiB | 
							
								
								
									
										108
									
								
								data/theme/key-shift.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								data/theme/key-shift.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,108 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <svg | ||||
|    xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    width="32" | ||||
|    viewBox="0 0 32 32" | ||||
|    version="1.1" | ||||
|    id="svg7384" | ||||
|    height="32" | ||||
|    sodipodi:docname="key-shift.svg" | ||||
|    inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> | ||||
|   <sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1400" | ||||
|      inkscape:window-height="1034" | ||||
|      id="namedview4569" | ||||
|      showgrid="false" | ||||
|      fit-margin-top="0" | ||||
|      fit-margin-left="0" | ||||
|      fit-margin-right="0" | ||||
|      fit-margin-bottom="0" | ||||
|      inkscape:zoom="14.75" | ||||
|      inkscape:cx="1.5993763" | ||||
|      inkscape:cy="5" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="55" | ||||
|      inkscape:window-maximized="0" | ||||
|      inkscape:current-layer="svg7384" /> | ||||
|   <metadata | ||||
|      id="metadata90"> | ||||
|     <rdf:RDF> | ||||
|       <cc:Work | ||||
|          rdf:about=""> | ||||
|         <dc:format>image/svg+xml</dc:format> | ||||
|         <dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
|         <dc:title>Gnome Symbolic Icon Theme</dc:title> | ||||
|       </cc:Work> | ||||
|     </rdf:RDF> | ||||
|   </metadata> | ||||
|   <title | ||||
|      id="title9167">Gnome Symbolic Icon Theme</title> | ||||
|   <defs | ||||
|      id="defs7386"> | ||||
|     <linearGradient | ||||
|        osb:paint="solid" | ||||
|        id="linearGradient19282" | ||||
|        gradientTransform="matrix(-2.7365795,0.28202934,-0.18908311,-0.99988321,239.54008,-879.45557)"> | ||||
|       <stop | ||||
|          style="stop-color:#666666;stop-opacity:1;" | ||||
|          offset="0" | ||||
|          id="stop19284" /> | ||||
|     </linearGradient> | ||||
|   </defs> | ||||
|   <g | ||||
|      transform="translate(-143.8754,-788)" | ||||
|      style="display:inline" | ||||
|      id="layer9" /> | ||||
|   <g | ||||
|      transform="translate(-143.8754,-788)" | ||||
|      style="display:inline" | ||||
|      id="layer10" /> | ||||
|   <g | ||||
|      transform="translate(-143.8754,-788)" | ||||
|      id="layer11" /> | ||||
|   <g | ||||
|      transform="translate(-143.8754,-788)" | ||||
|      style="display:inline" | ||||
|      id="layer13" /> | ||||
|   <g | ||||
|      transform="translate(-143.8754,-788)" | ||||
|      id="layer14" /> | ||||
|   <g | ||||
|      transform="translate(-143.8754,-788)" | ||||
|      style="display:inline" | ||||
|      id="layer15" /> | ||||
|   <g | ||||
|      transform="translate(-143.8754,-788)" | ||||
|      style="display:inline" | ||||
|      id="g71291" /> | ||||
|   <g | ||||
|      transform="translate(-143.8754,-788)" | ||||
|      style="display:inline" | ||||
|      id="g4953" /> | ||||
|   <g | ||||
|      transform="matrix(2,0,0,2,-282.0008,-1614.2187)" | ||||
|      style="display:inline" | ||||
|      id="layer12"> | ||||
|     <path | ||||
|        id="path16548" | ||||
|        d="m 147.0002,820 v -4 h -3.1248 l 5.125,-5.7813 5.125,5.7813 h -3.1875 v 4 z" | ||||
|        style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;enable-background:new" | ||||
|        inkscape:connector-curvature="0" /> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.1 KiB | 
| @@ -7,15 +7,19 @@ theme_sources = files([ | ||||
|   'gnome-shell-sass/_high-contrast-colors.scss' | ||||
| ]) | ||||
|  | ||||
| styles = [ | ||||
|   'gnome-shell-high-contrast', | ||||
|   'gnome-shell' | ||||
| ] | ||||
|  | ||||
| theme_deps = [] | ||||
|  | ||||
| if sassc.found() | ||||
|   parse_sass = files('parse-sass.sh') | ||||
|  | ||||
|   theme_deps += custom_target('update-theme', | ||||
|     output: 'theme-update.stamp', | ||||
|     depend_files: theme_sources, | ||||
|     command: [parse_sass, '@OUTPUT@'], | ||||
|     build_by_default: true | ||||
|   ) | ||||
| endif | ||||
| foreach style: styles | ||||
|   theme_deps += custom_target('style-' + style, | ||||
|                               input: '@0@.scss'.format(style), | ||||
|                               output: '@0@.css'.format(style), | ||||
|                               command: [ | ||||
|                                 sassc, '-a', '@INPUT@', '@OUTPUT@' | ||||
|                               ], | ||||
|                               depend_files: theme_sources) | ||||
| endforeach | ||||
|   | ||||
| @@ -1,10 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| srcdir=`dirname $0` | ||||
| stamp=${1} | ||||
| for scss in $srcdir/*.scss | ||||
| do | ||||
|   sassc -a $scss ${scss%%.scss}.css || exit 1 | ||||
| done | ||||
|  | ||||
| [ "$stamp" ] && touch $stamp | ||||
							
								
								
									
										48
									
								
								data/update-osk-layouts.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										48
									
								
								data/update-osk-layouts.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| #!/bin/env bash | ||||
|  | ||||
| CLDR_LAYOUTS_TARBALL="http://www.unicode.org/Public/cldr/latest/keyboards.zip" | ||||
| CLDR2JSON_GIT="git://repo.or.cz/cldr2json.git" | ||||
|  | ||||
| WORKDIR=".osk-layout-workbench" | ||||
| CLDR2JSON="$WORKDIR/cldr2json/cldr2json.py" | ||||
| SRCDIR="$WORKDIR/keyboards/android" | ||||
| DESTDIR="osk-layouts" | ||||
| GRESOURCE_FILE="gnome-shell-osk-layouts.gresource.xml" | ||||
| TMP_GRESOURCE_FILE=".$GRESOURCE_FILE.tmp" | ||||
|  | ||||
| cd `dirname $0` | ||||
|  | ||||
| # Ensure work/dest dirs | ||||
| rm -rf $WORKDIR | ||||
| mkdir -p $WORKDIR | ||||
| mkdir -p "osk-layouts" | ||||
|  | ||||
| # Download stuff on the work dir | ||||
| pushd $WORKDIR | ||||
| gio copy $CLDR_LAYOUTS_TARBALL . | ||||
| git clone $CLDR2JSON_GIT | ||||
| unzip keyboards.zip | ||||
| popd | ||||
|  | ||||
| # Transform to JSON files | ||||
| $CLDR2JSON $SRCDIR $DESTDIR | ||||
|  | ||||
| # Generate new gresources xml file | ||||
| cat >$TMP_GRESOURCE_FILE <<EOF | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <gresources> | ||||
|   <gresource prefix="/org/gnome/shell/osk-layouts"> | ||||
| EOF | ||||
|  | ||||
| for f in $DESTDIR/*.json | ||||
| do | ||||
|     echo "    <file>$(basename $f)</file>" >>$TMP_GRESOURCE_FILE | ||||
| done | ||||
|  | ||||
| cat >>$TMP_GRESOURCE_FILE <<EOF | ||||
|   </gresource> | ||||
| </gresources> | ||||
| EOF | ||||
|  | ||||
| # Rewrite old gresources xml | ||||
| mv $TMP_GRESOURCE_FILE $GRESOURCE_FILE | ||||
| @@ -34,16 +34,16 @@ function stripPrefix(string, prefix) { | ||||
|  | ||||
| var Application = new Lang.Class({ | ||||
|     Name: 'Application', | ||||
|     _init: function() { | ||||
|     _init() { | ||||
|         GLib.set_prgname('gnome-shell-extension-prefs'); | ||||
|         this.application = new Gtk.Application({ | ||||
|             application_id: 'org.gnome.shell.ExtensionPrefs', | ||||
|             flags: Gio.ApplicationFlags.HANDLES_COMMAND_LINE | ||||
|         }); | ||||
|  | ||||
|         this.application.connect('activate', Lang.bind(this, this._onActivate)); | ||||
|         this.application.connect('command-line', Lang.bind(this, this._onCommandLine)); | ||||
|         this.application.connect('startup', Lang.bind(this, this._onStartup)); | ||||
|         this.application.connect('activate', this._onActivate.bind(this)); | ||||
|         this.application.connect('command-line', this._onCommandLine.bind(this)); | ||||
|         this.application.connect('startup', this._onStartup.bind(this)); | ||||
|  | ||||
|         this._extensionPrefsModules = {}; | ||||
|  | ||||
| @@ -52,7 +52,7 @@ var Application = new Lang.Class({ | ||||
|         this._skipMainWindow = false; | ||||
|     }, | ||||
|  | ||||
|     _extensionAvailable: function(uuid) { | ||||
|     _extensionAvailable(uuid) { | ||||
|         let extension = ExtensionUtils.extensions[uuid]; | ||||
|  | ||||
|         if (!extension) | ||||
| @@ -64,7 +64,7 @@ var Application = new Lang.Class({ | ||||
|         return true; | ||||
|     }, | ||||
|  | ||||
|     _getExtensionPrefsModule: function(extension) { | ||||
|     _getExtensionPrefsModule(extension) { | ||||
|         let uuid = extension.metadata.uuid; | ||||
|  | ||||
|         if (this._extensionPrefsModules.hasOwnProperty(uuid)) | ||||
| @@ -79,7 +79,7 @@ var Application = new Lang.Class({ | ||||
|         return prefsModule; | ||||
|     }, | ||||
|  | ||||
|     _selectExtension: function(uuid) { | ||||
|     _selectExtension(uuid) { | ||||
|         if (!this._extensionAvailable(uuid)) | ||||
|             return; | ||||
|  | ||||
| @@ -114,7 +114,7 @@ var Application = new Lang.Class({ | ||||
|         dialog.show(); | ||||
|     }, | ||||
|  | ||||
|     _buildErrorUI: function(extension, exc) { | ||||
|     _buildErrorUI(extension, exc) { | ||||
|         let box = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL }); | ||||
|         let label = new Gtk.Label({ | ||||
|             label: _("There was an error loading the preferences dialog for %s:").format(extension.metadata.name) | ||||
| @@ -127,9 +127,7 @@ var Application = new Lang.Class({ | ||||
|         errortext += 'Stack trace:\n'; | ||||
|  | ||||
|         // Indent stack trace. | ||||
|         errortext += exc.stack.split('\n').map(function(line) { | ||||
|             return '  ' + line; | ||||
|         }).join('\n'); | ||||
|         errortext += exc.stack.split('\n').map(line => '  ' + line).join('\n'); | ||||
|  | ||||
|         let scroll = new Gtk.ScrolledWindow({ vexpand: true }); | ||||
|         let buffer = new Gtk.TextBuffer({ text: errortext }); | ||||
| @@ -142,7 +140,7 @@ var Application = new Lang.Class({ | ||||
|         return box; | ||||
|     }, | ||||
|  | ||||
|     _buildUI: function(app) { | ||||
|     _buildUI(app) { | ||||
|         this._window = new Gtk.ApplicationWindow({ application: app, | ||||
|                                                    window_position: Gtk.WindowPosition.CENTER }); | ||||
|  | ||||
| @@ -164,28 +162,28 @@ var Application = new Lang.Class({ | ||||
|         this._window.add(scroll); | ||||
|  | ||||
|         this._extensionSelector = new Gtk.ListBox({ selection_mode: Gtk.SelectionMode.NONE }); | ||||
|         this._extensionSelector.set_sort_func(Lang.bind(this, this._sortList)); | ||||
|         this._extensionSelector.set_header_func(Lang.bind(this, this._updateHeader)); | ||||
|         this._extensionSelector.set_sort_func(this._sortList.bind(this)); | ||||
|         this._extensionSelector.set_header_func(this._updateHeader.bind(this)); | ||||
|  | ||||
|         scroll.add(this._extensionSelector); | ||||
|  | ||||
|  | ||||
|         this._shellProxy = new GnomeShellProxy(Gio.DBus.session, 'org.gnome.Shell', '/org/gnome/Shell'); | ||||
|         this._shellProxy.connectSignal('ExtensionStatusChanged', Lang.bind(this, function(proxy, senderName, [uuid, state, error]) { | ||||
|         this._shellProxy.connectSignal('ExtensionStatusChanged', (proxy, senderName, [uuid, state, error]) => { | ||||
|             if (ExtensionUtils.extensions[uuid] !== undefined) | ||||
|                 this._scanExtensions(); | ||||
|         })); | ||||
|         }); | ||||
|  | ||||
|         this._window.show_all(); | ||||
|     }, | ||||
|  | ||||
|     _sortList: function(row1, row2) { | ||||
|     _sortList(row1, row2) { | ||||
|         let name1 = ExtensionUtils.extensions[row1.uuid].metadata.name; | ||||
|         let name2 = ExtensionUtils.extensions[row2.uuid].metadata.name; | ||||
|         return name1.localeCompare(name2); | ||||
|     }, | ||||
|  | ||||
|     _updateHeader: function(row, before) { | ||||
|     _updateHeader(row, before) { | ||||
|         if (!before || row.get_header()) | ||||
|             return; | ||||
|  | ||||
| @@ -193,27 +191,26 @@ var Application = new Lang.Class({ | ||||
|         row.set_header(sep); | ||||
|     }, | ||||
|  | ||||
|     _scanExtensions: function() { | ||||
|     _scanExtensions() { | ||||
|         let finder = new ExtensionUtils.ExtensionFinder(); | ||||
|         finder.connect('extension-found', Lang.bind(this, this._extensionFound)); | ||||
|         finder.connect('extension-found', this._extensionFound.bind(this)); | ||||
|         finder.scanExtensions(); | ||||
|         this._extensionsLoaded(); | ||||
|     }, | ||||
|  | ||||
|     _extensionFound: function(finder, extension) { | ||||
|     _extensionFound(finder, extension) { | ||||
|         let row = new ExtensionRow(extension.uuid); | ||||
|  | ||||
|         row.prefsButton.visible = this._extensionAvailable(row.uuid); | ||||
|         row.prefsButton.connect('clicked', Lang.bind(this, | ||||
|             function() { | ||||
|                 this._selectExtension(row.uuid); | ||||
|             })); | ||||
|         row.prefsButton.connect('clicked', () => { | ||||
|             this._selectExtension(row.uuid); | ||||
|         }); | ||||
|  | ||||
|         row.show_all(); | ||||
|         this._extensionSelector.add(row); | ||||
|     }, | ||||
|  | ||||
|     _extensionsLoaded: function() { | ||||
|     _extensionsLoaded() { | ||||
|         if (this._startupUuid && this._extensionAvailable(this._startupUuid)) | ||||
|             this._selectExtension(this._startupUuid); | ||||
|         this._startupUuid = null; | ||||
| @@ -221,16 +218,16 @@ var Application = new Lang.Class({ | ||||
|         this._loaded = true; | ||||
|     }, | ||||
|  | ||||
|     _onActivate: function() { | ||||
|     _onActivate() { | ||||
|         this._window.present(); | ||||
|     }, | ||||
|  | ||||
|     _onStartup: function(app) { | ||||
|     _onStartup(app) { | ||||
|         this._buildUI(app); | ||||
|         this._scanExtensions(); | ||||
|     }, | ||||
|  | ||||
|     _onCommandLine: function(app, commandLine) { | ||||
|     _onCommandLine(app, commandLine) { | ||||
|         app.activate(); | ||||
|         let args = commandLine.get_arguments(); | ||||
|  | ||||
| @@ -257,7 +254,7 @@ var DescriptionLabel = new Lang.Class({ | ||||
|     Name: 'DescriptionLabel', | ||||
|     Extends: Gtk.Label, | ||||
|  | ||||
|     vfunc_get_preferred_height_for_width: function(width) { | ||||
|     vfunc_get_preferred_height_for_width(width) { | ||||
|         // Hack: Request the maximum height allowed by the line limit | ||||
|         if (this.lines > 0) | ||||
|             return this.parent(0); | ||||
| @@ -269,29 +266,28 @@ var ExtensionRow = new Lang.Class({ | ||||
|     Name: 'ExtensionRow', | ||||
|     Extends: Gtk.ListBoxRow, | ||||
|  | ||||
|     _init: function(uuid) { | ||||
|     _init(uuid) { | ||||
|         this.parent(); | ||||
|  | ||||
|         this.uuid = uuid; | ||||
|  | ||||
|         this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' }); | ||||
|         this._settings.connect('changed::enabled-extensions', Lang.bind(this, | ||||
|             function() { | ||||
|                 this._switch.state = this._isEnabled(); | ||||
|             })); | ||||
|         this._settings.connect('changed::enabled-extensions', () => { | ||||
|             this._switch.state = this._isEnabled(); | ||||
|         }); | ||||
|         this._settings.connect('changed::disable-extension-version-validation', | ||||
|             Lang.bind(this, function() { | ||||
|             () => { | ||||
|                 this._switch.sensitive = this._canEnable(); | ||||
|             })); | ||||
|             }); | ||||
|         this._settings.connect('changed::disable-user-extensions', | ||||
|             Lang.bind(this, function() { | ||||
|             () => { | ||||
|                 this._switch.sensitive = this._canEnable(); | ||||
|             })); | ||||
|             }); | ||||
|  | ||||
|         this._buildUI(); | ||||
|     }, | ||||
|  | ||||
|     _buildUI: function() { | ||||
|     _buildUI() { | ||||
|         let extension = ExtensionUtils.extensions[this.uuid]; | ||||
|  | ||||
|         let hbox = new Gtk.Box({ orientation: Gtk.Orientation.HORIZONTAL, | ||||
| @@ -328,18 +324,17 @@ var ExtensionRow = new Lang.Class({ | ||||
|         this._switch = new Gtk.Switch({ valign: Gtk.Align.CENTER, | ||||
|                                         sensitive: this._canEnable(), | ||||
|                                         state: this._isEnabled() }); | ||||
|         this._switch.connect('notify::active', Lang.bind(this, | ||||
|             function() { | ||||
|                 if (this._switch.active) | ||||
|                     this._enable(); | ||||
|                 else | ||||
|                     this._disable(); | ||||
|             })); | ||||
|         this._switch.connect('state-set', function() { return true; }); | ||||
|         this._switch.connect('notify::active', () => { | ||||
|             if (this._switch.active) | ||||
|                 this._enable(); | ||||
|             else | ||||
|                 this._disable(); | ||||
|         }); | ||||
|         this._switch.connect('state-set', () => true); | ||||
|         hbox.add(this._switch); | ||||
|     }, | ||||
|  | ||||
|     _canEnable: function() { | ||||
|     _canEnable() { | ||||
|         let extension = ExtensionUtils.extensions[this.uuid]; | ||||
|         let checkVersion = !this._settings.get_boolean('disable-extension-version-validation'); | ||||
|  | ||||
| @@ -347,12 +342,12 @@ var ExtensionRow = new Lang.Class({ | ||||
|                !(checkVersion && ExtensionUtils.isOutOfDate(extension)); | ||||
|     }, | ||||
|  | ||||
|     _isEnabled: function() { | ||||
|     _isEnabled() { | ||||
|         let extensions = this._settings.get_strv('enabled-extensions'); | ||||
|         return extensions.indexOf(this.uuid) != -1; | ||||
|     }, | ||||
|  | ||||
|     _enable: function() { | ||||
|     _enable() { | ||||
|         let extensions = this._settings.get_strv('enabled-extensions'); | ||||
|         if (extensions.indexOf(this.uuid) != -1) | ||||
|             return; | ||||
| @@ -361,7 +356,7 @@ var ExtensionRow = new Lang.Class({ | ||||
|         this._settings.set_strv('enabled-extensions', extensions); | ||||
|     }, | ||||
|  | ||||
|     _disable: function() { | ||||
|     _disable() { | ||||
|         let extensions = this._settings.get_strv('enabled-extensions'); | ||||
|         let pos = extensions.indexOf(this.uuid); | ||||
|         if (pos == -1) | ||||
| @@ -378,11 +373,11 @@ function initEnvironment() { | ||||
|     // Monkey-patch in a "global" object that fakes some Shell utilities | ||||
|     // that ExtensionUtils depends on. | ||||
|     window.global = { | ||||
|         log: function() { | ||||
|         log() { | ||||
|             print([].join.call(arguments, ', ')); | ||||
|         }, | ||||
|  | ||||
|         logError: function(s) { | ||||
|         logError(s) { | ||||
|             log('ERROR: ' + s); | ||||
|         }, | ||||
|  | ||||
|   | ||||
| @@ -41,7 +41,7 @@ var BeginRequestType = { | ||||
| var AuthPrompt = new Lang.Class({ | ||||
|     Name: 'AuthPrompt', | ||||
|  | ||||
|     _init: function(gdmClient, mode) { | ||||
|     _init(gdmClient, mode) { | ||||
|         this.verificationStatus = AuthPromptStatus.NOT_VERIFYING; | ||||
|  | ||||
|         this._gdmClient = gdmClient; | ||||
| @@ -55,35 +55,33 @@ var AuthPrompt = new Lang.Class({ | ||||
|  | ||||
|         this._userVerifier = new GdmUtil.ShellUserVerifier(this._gdmClient, { reauthenticationOnly: reauthenticationOnly }); | ||||
|  | ||||
|         this._userVerifier.connect('ask-question', Lang.bind(this, this._onAskQuestion)); | ||||
|         this._userVerifier.connect('show-message', Lang.bind(this, this._onShowMessage)); | ||||
|         this._userVerifier.connect('verification-failed', Lang.bind(this, this._onVerificationFailed)); | ||||
|         this._userVerifier.connect('verification-complete', Lang.bind(this, this._onVerificationComplete)); | ||||
|         this._userVerifier.connect('reset', Lang.bind(this, this._onReset)); | ||||
|         this._userVerifier.connect('smartcard-status-changed', Lang.bind(this, this._onSmartcardStatusChanged)); | ||||
|         this._userVerifier.connect('ovirt-user-authenticated', Lang.bind(this, this._onOVirtUserAuthenticated)); | ||||
|         this._userVerifier.connect('ask-question', this._onAskQuestion.bind(this)); | ||||
|         this._userVerifier.connect('show-message', this._onShowMessage.bind(this)); | ||||
|         this._userVerifier.connect('verification-failed', this._onVerificationFailed.bind(this)); | ||||
|         this._userVerifier.connect('verification-complete', this._onVerificationComplete.bind(this)); | ||||
|         this._userVerifier.connect('reset', this._onReset.bind(this)); | ||||
|         this._userVerifier.connect('smartcard-status-changed', this._onSmartcardStatusChanged.bind(this)); | ||||
|         this._userVerifier.connect('ovirt-user-authenticated', this._onOVirtUserAuthenticated.bind(this)); | ||||
|         this.smartcardDetected = this._userVerifier.smartcardDetected; | ||||
|  | ||||
|         this.connect('next', Lang.bind(this, function() { | ||||
|                          this.updateSensitivity(false); | ||||
|                          this.startSpinning(); | ||||
|                          if (this._queryingService) { | ||||
|                              this._userVerifier.answerQuery(this._queryingService, this._entry.text); | ||||
|                          } else { | ||||
|                              this._preemptiveAnswer = this._entry.text; | ||||
|                          } | ||||
|                      })); | ||||
|         this.connect('next', () => { | ||||
|                 this.updateSensitivity(false); | ||||
|                 this.startSpinning(); | ||||
|                 if (this._queryingService) { | ||||
|                     this._userVerifier.answerQuery(this._queryingService, this._entry.text); | ||||
|                 } else { | ||||
|                     this._preemptiveAnswer = this._entry.text; | ||||
|                 } | ||||
|             }); | ||||
|  | ||||
|         this.actor = new St.BoxLayout({ style_class: 'login-dialog-prompt-layout', | ||||
|                                         vertical: true }); | ||||
|         this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); | ||||
|         this.actor.connect('key-press-event', | ||||
|                            Lang.bind(this, function(actor, event) { | ||||
|                                if (event.get_key_symbol() == Clutter.KEY_Escape) { | ||||
|                                    this.cancel(); | ||||
|                                } | ||||
|                                return Clutter.EVENT_PROPAGATE; | ||||
|                            })); | ||||
|         this.actor.connect('destroy', this._onDestroy.bind(this)); | ||||
|         this.actor.connect('key-press-event', (actor, event) => { | ||||
|                 if (event.get_key_symbol() == Clutter.KEY_Escape) | ||||
|                     this.cancel(); | ||||
|                 return Clutter.EVENT_PROPAGATE; | ||||
|             }); | ||||
|  | ||||
|         this._userWell = new St.Bin({ x_fill: true, | ||||
|                                       x_align: St.Align.START }); | ||||
| @@ -136,21 +134,18 @@ var AuthPrompt = new Lang.Class({ | ||||
|         this._defaultButtonWell.add_child(this._spinner.actor); | ||||
|     }, | ||||
|  | ||||
|     _onDestroy: function() { | ||||
|     _onDestroy() { | ||||
|         this._userVerifier.destroy(); | ||||
|         this._userVerifier = null; | ||||
|     }, | ||||
|  | ||||
|     _initButtons: function() { | ||||
|     _initButtons() { | ||||
|         this.cancelButton = new St.Button({ style_class: 'modal-dialog-button button', | ||||
|                                             button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE, | ||||
|                                             reactive: true, | ||||
|                                             can_focus: true, | ||||
|                                             label: _("Cancel") }); | ||||
|         this.cancelButton.connect('clicked', | ||||
|                                    Lang.bind(this, function() { | ||||
|                                        this.cancel(); | ||||
|                                    })); | ||||
|         this.cancelButton.connect('clicked', () => { this.cancel(); }); | ||||
|         this._buttonBox.add(this.cancelButton, | ||||
|                             { expand: false, | ||||
|                               x_fill: false, | ||||
| @@ -169,10 +164,7 @@ var AuthPrompt = new Lang.Class({ | ||||
|                                           reactive: true, | ||||
|                                           can_focus: true, | ||||
|                                           label: _("Next") }); | ||||
|         this.nextButton.connect('clicked', | ||||
|                                  Lang.bind(this, function() { | ||||
|                                      this.emit('next'); | ||||
|                                  })); | ||||
|         this.nextButton.connect('clicked', () => { this.emit('next'); }); | ||||
|         this.nextButton.add_style_pseudo_class('default'); | ||||
|         this._buttonBox.add(this.nextButton, | ||||
|                             { expand: false, | ||||
| @@ -183,20 +175,19 @@ var AuthPrompt = new Lang.Class({ | ||||
|  | ||||
|         this._updateNextButtonSensitivity(this._entry.text.length > 0); | ||||
|  | ||||
|         this._entry.clutter_text.connect('text-changed', | ||||
|                                          Lang.bind(this, function() { | ||||
|                                              if (!this._userVerifier.hasPendingMessages) | ||||
|                                                  this._fadeOutMessage(); | ||||
|         this._entry.clutter_text.connect('text-changed', () => { | ||||
|             if (!this._userVerifier.hasPendingMessages) | ||||
|                 this._fadeOutMessage(); | ||||
|  | ||||
|                                              this._updateNextButtonSensitivity(this._entry.text.length > 0 || this.verificationStatus == AuthPromptStatus.VERIFYING); | ||||
|                                          })); | ||||
|         this._entry.clutter_text.connect('activate', Lang.bind(this, function() { | ||||
|             this._updateNextButtonSensitivity(this._entry.text.length > 0 || this.verificationStatus == AuthPromptStatus.VERIFYING); | ||||
|         }); | ||||
|         this._entry.clutter_text.connect('activate', () => { | ||||
|             if (this.nextButton.reactive) | ||||
|                 this.emit('next'); | ||||
|         })); | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     _onAskQuestion: function(verifier, serviceName, question, passwordChar) { | ||||
|     _onAskQuestion(verifier, serviceName, question, passwordChar) { | ||||
|         if (this._queryingService) | ||||
|             this.clear(); | ||||
|  | ||||
| @@ -222,12 +213,12 @@ var AuthPrompt = new Lang.Class({ | ||||
|         this.emit('prompted'); | ||||
|     }, | ||||
|  | ||||
|     _onOVirtUserAuthenticated: function() { | ||||
|     _onOVirtUserAuthenticated() { | ||||
|         if (this.verificationStatus != AuthPromptStatus.VERIFICATION_SUCCEEDED) | ||||
|             this.reset(); | ||||
|     }, | ||||
|  | ||||
|     _onSmartcardStatusChanged: function() { | ||||
|     _onSmartcardStatusChanged() { | ||||
|         this.smartcardDetected = this._userVerifier.smartcardDetected; | ||||
|  | ||||
|         // Most of the time we want to reset if the user inserts or removes | ||||
| @@ -246,36 +237,36 @@ var AuthPrompt = new Lang.Class({ | ||||
|             this.reset(); | ||||
|     }, | ||||
|  | ||||
|     _onShowMessage: function(userVerifier, message, type) { | ||||
|     _onShowMessage(userVerifier, message, type) { | ||||
|         this.setMessage(message, type); | ||||
|         this.emit('prompted'); | ||||
|     }, | ||||
|  | ||||
|     _onVerificationFailed: function() { | ||||
|     _onVerificationFailed(userVerifier, canRetry) { | ||||
|         this._queryingService = null; | ||||
|         this.clear(); | ||||
|  | ||||
|         this.updateSensitivity(true); | ||||
|         this.updateSensitivity(canRetry); | ||||
|         this.setActorInDefaultButtonWell(null); | ||||
|         this.verificationStatus = AuthPromptStatus.VERIFICATION_FAILED; | ||||
|     }, | ||||
|  | ||||
|     _onVerificationComplete: function() { | ||||
|     _onVerificationComplete() { | ||||
|         this.setActorInDefaultButtonWell(null); | ||||
|         this.verificationStatus = AuthPromptStatus.VERIFICATION_SUCCEEDED; | ||||
|         this.cancelButton.reactive = false; | ||||
|     }, | ||||
|  | ||||
|     _onReset: function() { | ||||
|     _onReset() { | ||||
|         this.verificationStatus = AuthPromptStatus.NOT_VERIFYING; | ||||
|         this.reset(); | ||||
|     }, | ||||
|  | ||||
|     addActorToDefaultButtonWell: function(actor) { | ||||
|     addActorToDefaultButtonWell(actor) { | ||||
|         this._defaultButtonWell.add_child(actor); | ||||
|     }, | ||||
|  | ||||
|     setActorInDefaultButtonWell: function(actor, animate) { | ||||
|     setActorInDefaultButtonWell(actor, animate) { | ||||
|         if (!this._defaultButtonWellActor && | ||||
|             !actor) | ||||
|             return; | ||||
| @@ -312,7 +303,7 @@ var AuthPrompt = new Lang.Class({ | ||||
|                                    delay: DEFAULT_BUTTON_WELL_ANIMATION_DELAY, | ||||
|                                    transition: 'linear', | ||||
|                                    onCompleteScope: this, | ||||
|                                    onComplete: function() { | ||||
|                                    onComplete() { | ||||
|                                       if (wasSpinner) { | ||||
|                                           if (this._spinner) | ||||
|                                               this._spinner.stop(); | ||||
| @@ -339,25 +330,25 @@ var AuthPrompt = new Lang.Class({ | ||||
|         this._defaultButtonWellActor = actor; | ||||
|     }, | ||||
|  | ||||
|     startSpinning: function() { | ||||
|     startSpinning() { | ||||
|         this.setActorInDefaultButtonWell(this._spinner.actor, true); | ||||
|     }, | ||||
|  | ||||
|     stopSpinning: function() { | ||||
|     stopSpinning() { | ||||
|         this.setActorInDefaultButtonWell(null, false); | ||||
|     }, | ||||
|  | ||||
|     clear: function() { | ||||
|     clear() { | ||||
|         this._entry.text = ''; | ||||
|         this.stopSpinning(); | ||||
|     }, | ||||
|  | ||||
|     setPasswordChar: function(passwordChar) { | ||||
|     setPasswordChar(passwordChar) { | ||||
|         this._entry.clutter_text.set_password_char(passwordChar); | ||||
|         this._entry.menu.isPassword = passwordChar != ''; | ||||
|     }, | ||||
|  | ||||
|     setQuestion: function(question) { | ||||
|     setQuestion(question) { | ||||
|         this._label.set_text(question); | ||||
|  | ||||
|         this._label.show(); | ||||
| @@ -366,7 +357,7 @@ var AuthPrompt = new Lang.Class({ | ||||
|         this._entry.grab_key_focus(); | ||||
|     }, | ||||
|  | ||||
|     getAnswer: function() { | ||||
|     getAnswer() { | ||||
|         let text; | ||||
|  | ||||
|         if (this._preemptiveAnswer) { | ||||
| @@ -379,7 +370,7 @@ var AuthPrompt = new Lang.Class({ | ||||
|         return text; | ||||
|     }, | ||||
|  | ||||
|     _fadeOutMessage: function() { | ||||
|     _fadeOutMessage() { | ||||
|         if (this._message.opacity == 0) | ||||
|             return; | ||||
|         Tweener.removeTweens(this._message); | ||||
| @@ -390,7 +381,7 @@ var AuthPrompt = new Lang.Class({ | ||||
|                          }); | ||||
|     }, | ||||
|  | ||||
|     setMessage: function(message, type) { | ||||
|     setMessage(message, type) { | ||||
|         if (type == GdmUtil.MessageType.ERROR) | ||||
|             this._message.add_style_class_name('login-dialog-message-warning'); | ||||
|         else | ||||
| @@ -410,18 +401,18 @@ var AuthPrompt = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _updateNextButtonSensitivity: function(sensitive) { | ||||
|     _updateNextButtonSensitivity(sensitive) { | ||||
|         this.nextButton.reactive = sensitive; | ||||
|         this.nextButton.can_focus = sensitive; | ||||
|     }, | ||||
|  | ||||
|     updateSensitivity: function(sensitive) { | ||||
|     updateSensitivity(sensitive) { | ||||
|         this._updateNextButtonSensitivity(sensitive && (this._entry.text.length > 0 || this.verificationStatus == AuthPromptStatus.VERIFYING)); | ||||
|         this._entry.reactive = sensitive; | ||||
|         this._entry.clutter_text.editable = sensitive; | ||||
|     }, | ||||
|  | ||||
|     hide: function() { | ||||
|     hide() { | ||||
|         this.setActorInDefaultButtonWell(null, true); | ||||
|         this.actor.hide(); | ||||
|         this._message.opacity = 0; | ||||
| @@ -432,7 +423,7 @@ var AuthPrompt = new Lang.Class({ | ||||
|         this._entry.set_text(''); | ||||
|     }, | ||||
|  | ||||
|     setUser: function(user) { | ||||
|     setUser(user) { | ||||
|         let oldChild = this._userWell.get_child(); | ||||
|         if (oldChild) | ||||
|             oldChild.destroy(); | ||||
| @@ -443,11 +434,12 @@ var AuthPrompt = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     reset: function() { | ||||
|     reset() { | ||||
|         let oldStatus = this.verificationStatus; | ||||
|         this.verificationStatus = AuthPromptStatus.NOT_VERIFYING; | ||||
|         this.cancelButton.reactive = true; | ||||
|         this.nextButton.label = _("Next"); | ||||
|         this._preemptiveAnswer = null; | ||||
|  | ||||
|         if (this._userVerifier) | ||||
|             this._userVerifier.cancel(); | ||||
| @@ -480,7 +472,7 @@ var AuthPrompt = new Lang.Class({ | ||||
|         this.emit('reset', beginRequestType); | ||||
|     }, | ||||
|  | ||||
|     addCharacter: function(unichar) { | ||||
|     addCharacter(unichar) { | ||||
|         if (!this._entry.visible) | ||||
|             return; | ||||
|  | ||||
| @@ -488,7 +480,7 @@ var AuthPrompt = new Lang.Class({ | ||||
|         this._entry.clutter_text.insert_unichar(unichar); | ||||
|     }, | ||||
|  | ||||
|     begin: function(params) { | ||||
|     begin(params) { | ||||
|         params = Params.parse(params, { userName: null, | ||||
|                                         hold: null }); | ||||
|  | ||||
| @@ -502,22 +494,21 @@ var AuthPrompt = new Lang.Class({ | ||||
|         this.verificationStatus = AuthPromptStatus.VERIFYING; | ||||
|     }, | ||||
|  | ||||
|     finish: function(onComplete) { | ||||
|     finish(onComplete) { | ||||
|         if (!this._userVerifier.hasPendingMessages) { | ||||
|             this._userVerifier.clear(); | ||||
|             onComplete(); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         let signalId = this._userVerifier.connect('no-more-messages', | ||||
|                                                   Lang.bind(this, function() { | ||||
|                                                       this._userVerifier.disconnect(signalId); | ||||
|                                                       this._userVerifier.clear(); | ||||
|                                                       onComplete(); | ||||
|                                                   })); | ||||
|         let signalId = this._userVerifier.connect('no-more-messages', () => { | ||||
|             this._userVerifier.disconnect(signalId); | ||||
|             this._userVerifier.clear(); | ||||
|             onComplete(); | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     cancel: function() { | ||||
|     cancel() { | ||||
|         if (this.verificationStatus == AuthPromptStatus.VERIFICATION_SUCCEEDED) { | ||||
|             return; | ||||
|         } | ||||
|   | ||||
| @@ -50,7 +50,7 @@ const Signals = imports.signals; | ||||
| var Task = new Lang.Class({ | ||||
|     Name: 'Task', | ||||
|  | ||||
|     _init: function(scope, handler) { | ||||
|     _init(scope, handler) { | ||||
|         if (scope) | ||||
|             this.scope = scope; | ||||
|         else | ||||
| @@ -59,7 +59,7 @@ var Task = new Lang.Class({ | ||||
|         this.handler = handler; | ||||
|     }, | ||||
|  | ||||
|     run: function() { | ||||
|     run() { | ||||
|         if (this.handler) | ||||
|             return this.handler.call(this.scope); | ||||
|  | ||||
| @@ -72,39 +72,37 @@ var Hold = new Lang.Class({ | ||||
|     Name: 'Hold', | ||||
|     Extends: Task, | ||||
|  | ||||
|     _init: function() { | ||||
|         this.parent(this, function () { | ||||
|             return this; | ||||
|         }); | ||||
|     _init() { | ||||
|         this.parent(this, () => this); | ||||
|  | ||||
|         this._acquisitions = 1; | ||||
|     }, | ||||
|  | ||||
|     acquire: function() { | ||||
|     acquire() { | ||||
|         if (this._acquisitions <= 0) | ||||
|             throw new Error("Cannot acquire hold after it's been released"); | ||||
|         this._acquisitions++; | ||||
|     }, | ||||
|  | ||||
|     acquireUntilAfter: function(hold) { | ||||
|     acquireUntilAfter(hold) { | ||||
|         if (!hold.isAcquired()) | ||||
|             return; | ||||
|  | ||||
|         this.acquire(); | ||||
|         let signalId = hold.connect('release', Lang.bind(this, function() { | ||||
|                                         hold.disconnect(signalId); | ||||
|                                         this.release(); | ||||
|                                     })); | ||||
|         let signalId = hold.connect('release', () => { | ||||
|             hold.disconnect(signalId); | ||||
|             this.release(); | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     release: function() { | ||||
|     release() { | ||||
|         this._acquisitions--; | ||||
|  | ||||
|         if (this._acquisitions == 0) | ||||
|             this.emit('release'); | ||||
|     }, | ||||
|  | ||||
|     isAcquired: function() { | ||||
|     isAcquired() { | ||||
|         return this._acquisitions > 0; | ||||
|     } | ||||
| }); | ||||
| @@ -114,7 +112,7 @@ var Batch = new Lang.Class({ | ||||
|     Name: 'Batch', | ||||
|     Extends: Task, | ||||
|  | ||||
|     _init: function(scope, tasks) { | ||||
|     _init(scope, tasks) { | ||||
|         this.parent(); | ||||
|  | ||||
|         this.tasks = []; | ||||
| @@ -134,11 +132,11 @@ var Batch = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     process: function() { | ||||
|     process() { | ||||
|         throw new Error('Not implemented'); | ||||
|     }, | ||||
|  | ||||
|     runTask: function() { | ||||
|     runTask() { | ||||
|         if (!(this._currentTaskIndex in this.tasks)) { | ||||
|             return null; | ||||
|         } | ||||
| @@ -146,11 +144,11 @@ var Batch = new Lang.Class({ | ||||
|         return this.tasks[this._currentTaskIndex].run(); | ||||
|     }, | ||||
|  | ||||
|     _finish: function() { | ||||
|     _finish() { | ||||
|         this.hold.release(); | ||||
|     }, | ||||
|  | ||||
|     nextTask: function() { | ||||
|     nextTask() { | ||||
|         this._currentTaskIndex++; | ||||
|  | ||||
|         // if the entire batch of tasks is finished, release | ||||
| @@ -163,7 +161,7 @@ var Batch = new Lang.Class({ | ||||
|         this.process(); | ||||
|     }, | ||||
|  | ||||
|     _start: function() { | ||||
|     _start() { | ||||
|         // acquire a hold to get released when the entire | ||||
|         // batch of tasks is finished | ||||
|         this.hold = new Hold(); | ||||
| @@ -171,7 +169,7 @@ var Batch = new Lang.Class({ | ||||
|         this.process(); | ||||
|     }, | ||||
|  | ||||
|     run: function() { | ||||
|     run() { | ||||
|         this._start(); | ||||
|  | ||||
|         // hold may be destroyed at this point | ||||
| @@ -179,7 +177,7 @@ var Batch = new Lang.Class({ | ||||
|         return this.hold; | ||||
|     }, | ||||
|  | ||||
|     cancel: function() { | ||||
|     cancel() { | ||||
|         this.tasks = this.tasks.splice(0, this._currentTaskIndex + 1); | ||||
|     } | ||||
| }); | ||||
| @@ -189,7 +187,7 @@ var ConcurrentBatch = new Lang.Class({ | ||||
|     Name: 'ConcurrentBatch', | ||||
|     Extends: Batch, | ||||
|  | ||||
|     process: function() { | ||||
|     process() { | ||||
|        let hold = this.runTask(); | ||||
|  | ||||
|        if (hold) { | ||||
| @@ -208,17 +206,16 @@ var ConsecutiveBatch = new Lang.Class({ | ||||
|     Name: 'ConsecutiveBatch', | ||||
|     Extends: Batch, | ||||
|  | ||||
|     process: function() { | ||||
|     process() { | ||||
|        let hold = this.runTask(); | ||||
|  | ||||
|        if (hold && hold.isAcquired()) { | ||||
|            // This task is inhibiting the batch. Wait on it | ||||
|            // before processing the next one. | ||||
|            let signalId = hold.connect('release', | ||||
|                                        Lang.bind(this, function() { | ||||
|                                            hold.disconnect(signalId); | ||||
|                                            this.nextTask(); | ||||
|                                        })); | ||||
|            let signalId = hold.connect('release', () => { | ||||
|                hold.disconnect(signalId); | ||||
|                this.nextTask(); | ||||
|            }); | ||||
|            return; | ||||
|        } else { | ||||
|            // This task finished, process the next one | ||||
|   | ||||
| @@ -54,10 +54,10 @@ const _MAX_BOTTOM_MENU_ITEMS = 5; | ||||
| var UserListItem = new Lang.Class({ | ||||
|     Name: 'UserListItem', | ||||
|  | ||||
|     _init: function(user) { | ||||
|     _init(user) { | ||||
|         this.user = user; | ||||
|         this._userChangedId = this.user.connect('changed', | ||||
|                                                  Lang.bind(this, this._onUserChanged)); | ||||
|                                                  this._onUserChanged.bind(this)); | ||||
|  | ||||
|         let layout = new St.BoxLayout({ vertical: true }); | ||||
|         this.actor = new St.Button({ style_class: 'login-dialog-user-list-item', | ||||
| @@ -67,8 +67,7 @@ var UserListItem = new Lang.Class({ | ||||
|                                      reactive: true, | ||||
|                                      x_align: St.Align.START, | ||||
|                                      x_fill: true }); | ||||
|         this.actor.connect('destroy', | ||||
|                            Lang.bind(this, this._onDestroy)); | ||||
|         this.actor.connect('destroy', this._onDestroy.bind(this)); | ||||
|  | ||||
|         this.actor.connect('key-focus-in', () => { | ||||
|             this._setSelected(true); | ||||
| @@ -90,30 +89,30 @@ var UserListItem = new Lang.Class({ | ||||
|                                                  scale_x: 0 }); | ||||
|         layout.add(this._timedLoginIndicator); | ||||
|  | ||||
|         this.actor.connect('clicked', Lang.bind(this, this._onClicked)); | ||||
|         this.actor.connect('clicked', this._onClicked.bind(this)); | ||||
|         this._onUserChanged(); | ||||
|     }, | ||||
|  | ||||
|     _onUserChanged: function() { | ||||
|     _onUserChanged() { | ||||
|         this._updateLoggedIn(); | ||||
|     }, | ||||
|  | ||||
|     _updateLoggedIn: function() { | ||||
|     _updateLoggedIn() { | ||||
|         if (this.user.is_logged_in()) | ||||
|             this.actor.add_style_pseudo_class('logged-in'); | ||||
|         else | ||||
|             this.actor.remove_style_pseudo_class('logged-in'); | ||||
|     }, | ||||
|  | ||||
|     _onDestroy: function() { | ||||
|     _onDestroy() { | ||||
|         this.user.disconnect(this._userChangedId); | ||||
|     }, | ||||
|  | ||||
|     _onClicked: function() { | ||||
|     _onClicked() { | ||||
|         this.emit('activate'); | ||||
|     }, | ||||
|  | ||||
|     _setSelected: function(selected) { | ||||
|     _setSelected(selected) { | ||||
|         if (selected) { | ||||
|             this.actor.add_style_pseudo_class('selected'); | ||||
|             this.actor.grab_key_focus(); | ||||
| @@ -122,24 +121,37 @@ var UserListItem = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     showTimedLoginIndicator: function(time) { | ||||
|     showTimedLoginIndicator(time) { | ||||
|         let hold = new Batch.Hold(); | ||||
|  | ||||
|         this.hideTimedLoginIndicator(); | ||||
|         Tweener.addTween(this._timedLoginIndicator, | ||||
|                          { scale_x: 1., | ||||
|                            time: time, | ||||
|                            transition: 'linear', | ||||
|                            onComplete: function() { | ||||
|                                hold.release(); | ||||
|                            }, | ||||
|                            onCompleteScope: this | ||||
|                          }); | ||||
|  | ||||
|         let startTime = GLib.get_monotonic_time(); | ||||
|  | ||||
|         this._timedLoginTimeoutId = GLib.timeout_add (GLib.PRIORITY_DEFAULT, 33, | ||||
|             () => { | ||||
|                 let currentTime = GLib.get_monotonic_time(); | ||||
|                 let elapsedTime = (currentTime - startTime) / GLib.USEC_PER_SEC; | ||||
|                 this._timedLoginIndicator.scale_x = elapsedTime / time; | ||||
|                 if (elapsedTime >= time) { | ||||
|                     this._timedLoginTimeoutId = 0; | ||||
|                     hold.release(); | ||||
|                     return GLib.SOURCE_REMOVE; | ||||
|                 } | ||||
|  | ||||
|                 return GLib.SOURCE_CONTINUE; | ||||
|             }); | ||||
|  | ||||
|         GLib.Source.set_name_by_id(this._timedLoginTimeoutId, '[gnome-shell] this._timedLoginTimeoutId'); | ||||
|  | ||||
|         return hold; | ||||
|     }, | ||||
|  | ||||
|     hideTimedLoginIndicator: function() { | ||||
|         Tweener.removeTweens(this._timedLoginIndicator); | ||||
|     hideTimedLoginIndicator() { | ||||
|         if (this._timedLoginTimeoutId) { | ||||
|             GLib.source_remove(this._timedLoginTimeoutId); | ||||
|             this._timedLoginTimeoutId = 0; | ||||
|         } | ||||
|         this._timedLoginIndicator.scale_x = 0.; | ||||
|     } | ||||
| }); | ||||
| @@ -148,7 +160,7 @@ Signals.addSignalMethods(UserListItem.prototype); | ||||
| var UserList = new Lang.Class({ | ||||
|     Name: 'UserList', | ||||
|  | ||||
|     _init: function() { | ||||
|     _init() { | ||||
|         this.actor = new St.ScrollView({ style_class: 'login-dialog-user-list-view'}); | ||||
|         this.actor.set_policy(Gtk.PolicyType.NEVER, | ||||
|                               Gtk.PolicyType.AUTOMATIC); | ||||
| @@ -160,10 +172,10 @@ var UserList = new Lang.Class({ | ||||
|         this.actor.add_actor(this._box); | ||||
|         this._items = {}; | ||||
|  | ||||
|         this.actor.connect('key-focus-in', Lang.bind(this, this._moveFocusToItems)); | ||||
|         this.actor.connect('key-focus-in', this._moveFocusToItems.bind(this)); | ||||
|     }, | ||||
|  | ||||
|     _moveFocusToItems: function() { | ||||
|     _moveFocusToItems() { | ||||
|         let hasItems = Object.keys(this._items).length > 0; | ||||
|  | ||||
|         if (!hasItems) | ||||
| @@ -174,18 +186,18 @@ var UserList = new Lang.Class({ | ||||
|  | ||||
|         let focusSet = this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false); | ||||
|         if (!focusSet) { | ||||
|             Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() { | ||||
|             Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { | ||||
|                 this._moveFocusToItems(); | ||||
|                 return false; | ||||
|             })); | ||||
|             }); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _onItemActivated: function(activatedItem) { | ||||
|     _onItemActivated(activatedItem) { | ||||
|         this.emit('activate', activatedItem); | ||||
|     }, | ||||
|  | ||||
|     updateStyle: function(isExpanded) { | ||||
|     updateStyle(isExpanded) { | ||||
|         let tasks = []; | ||||
|  | ||||
|         if (isExpanded) | ||||
| @@ -199,7 +211,7 @@ var UserList = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     scrollToItem: function(item) { | ||||
|     scrollToItem(item) { | ||||
|         let box = item.actor.get_allocation_box(); | ||||
|  | ||||
|         let adjustment = this.actor.get_vscroll_bar().get_adjustment(); | ||||
| @@ -212,7 +224,7 @@ var UserList = new Lang.Class({ | ||||
|                             transition: 'easeOutQuad' }); | ||||
|     }, | ||||
|  | ||||
|     jumpToItem: function(item) { | ||||
|     jumpToItem(item) { | ||||
|         let box = item.actor.get_allocation_box(); | ||||
|  | ||||
|         let adjustment = this.actor.get_vscroll_bar().get_adjustment(); | ||||
| @@ -222,7 +234,7 @@ var UserList = new Lang.Class({ | ||||
|         adjustment.set_value(value); | ||||
|     }, | ||||
|  | ||||
|     getItemFromUserName: function(userName) { | ||||
|     getItemFromUserName(userName) { | ||||
|         let item = this._items[userName]; | ||||
|  | ||||
|         if (!item) | ||||
| @@ -231,11 +243,11 @@ var UserList = new Lang.Class({ | ||||
|         return item; | ||||
|     }, | ||||
|  | ||||
|     containsUser: function(user) { | ||||
|     containsUser(user) { | ||||
|         return this._items[user.get_user_name()] != null; | ||||
|     }, | ||||
|  | ||||
|     addUser: function(user) { | ||||
|     addUser(user) { | ||||
|         if (!user.is_loaded) | ||||
|             return; | ||||
|  | ||||
| @@ -257,22 +269,17 @@ var UserList = new Lang.Class({ | ||||
|  | ||||
|         this._items[userName] = item; | ||||
|  | ||||
|         item.connect('activate', | ||||
|                      Lang.bind(this, this._onItemActivated)); | ||||
|         item.connect('activate', this._onItemActivated.bind(this)); | ||||
|  | ||||
|         // Try to keep the focused item front-and-center | ||||
|         item.actor.connect('key-focus-in', | ||||
|                            Lang.bind(this, | ||||
|                                      function() { | ||||
|                                          this.scrollToItem(item); | ||||
|                                      })); | ||||
|         item.actor.connect('key-focus-in', () => { this.scrollToItem(item); }); | ||||
|  | ||||
|         this._moveFocusToItems(); | ||||
|  | ||||
|         this.emit('item-added', item); | ||||
|     }, | ||||
|  | ||||
|     removeUser: function(user) { | ||||
|     removeUser(user) { | ||||
|         if (!user.is_loaded) | ||||
|             return; | ||||
|  | ||||
| @@ -290,7 +297,7 @@ var UserList = new Lang.Class({ | ||||
|         delete this._items[userName]; | ||||
|     }, | ||||
|  | ||||
|     numItems: function() { | ||||
|     numItems() { | ||||
|         return Object.keys(this._items).length; | ||||
|     } | ||||
| }); | ||||
| @@ -299,7 +306,7 @@ Signals.addSignalMethods(UserList.prototype); | ||||
| var SessionMenuButton = new Lang.Class({ | ||||
|     Name: 'SessionMenuButton', | ||||
|  | ||||
|     _init: function() { | ||||
|     _init() { | ||||
|         let gearIcon = new St.Icon({ icon_name: 'emblem-system-symbolic' }); | ||||
|         this._button = new St.Button({ style_class: 'login-dialog-session-list-button', | ||||
|                                        reactive: true, | ||||
| @@ -324,33 +331,30 @@ var SessionMenuButton = new Lang.Class({ | ||||
|         Main.uiGroup.add_actor(this._menu.actor); | ||||
|         this._menu.actor.hide(); | ||||
|  | ||||
|         this._menu.connect('open-state-changed', | ||||
|                            Lang.bind(this, function(menu, isOpen) { | ||||
|                                 if (isOpen) | ||||
|                                     this._button.add_style_pseudo_class('active'); | ||||
|                                 else | ||||
|                                     this._button.remove_style_pseudo_class('active'); | ||||
|                            })); | ||||
|         this._menu.connect('open-state-changed', (menu, isOpen) => { | ||||
|              if (isOpen) | ||||
|                  this._button.add_style_pseudo_class('active'); | ||||
|              else | ||||
|                  this._button.remove_style_pseudo_class('active'); | ||||
|         }); | ||||
|  | ||||
|         this._manager = new PopupMenu.PopupMenuManager({ actor: this._button }); | ||||
|         this._manager.addMenu(this._menu); | ||||
|  | ||||
|         this._button.connect('clicked', Lang.bind(this, function() { | ||||
|             this._menu.toggle(); | ||||
|         })); | ||||
|         this._button.connect('clicked', () => { this._menu.toggle(); }); | ||||
|  | ||||
|         this._items = {}; | ||||
|         this._activeSessionId = null; | ||||
|         this._populate(); | ||||
|     }, | ||||
|  | ||||
|     updateSensitivity: function(sensitive) { | ||||
|     updateSensitivity(sensitive) { | ||||
|         this._button.reactive = sensitive; | ||||
|         this._button.can_focus = sensitive; | ||||
|         this._menu.close(BoxPointer.PopupAnimation.NONE); | ||||
|     }, | ||||
|  | ||||
|     _updateOrnament: function() { | ||||
|     _updateOrnament() { | ||||
|         let itemIds = Object.keys(this._items); | ||||
|         for (let i = 0; i < itemIds.length; i++) { | ||||
|             if (itemIds[i] == this._activeSessionId) | ||||
| @@ -360,21 +364,19 @@ var SessionMenuButton = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     setActiveSession: function(sessionId) { | ||||
|     setActiveSession(sessionId) { | ||||
|          if (sessionId == this._activeSessionId) | ||||
|              return; | ||||
|  | ||||
|          this._activeSessionId = sessionId; | ||||
|          this._updateOrnament(); | ||||
|  | ||||
|          this.emit('session-activated', this._activeSessionId); | ||||
|     }, | ||||
|  | ||||
|     close: function() { | ||||
|     close() { | ||||
|         this._menu.close(); | ||||
|     }, | ||||
|  | ||||
|     _populate: function() { | ||||
|     _populate() { | ||||
|         let ids = Gdm.get_session_ids(); | ||||
|         ids.sort(); | ||||
|  | ||||
| @@ -391,12 +393,10 @@ var SessionMenuButton = new Lang.Class({ | ||||
|             this._menu.addMenuItem(item); | ||||
|             this._items[id] = item; | ||||
|  | ||||
|             if (!this._activeSessionId) | ||||
|             item.connect('activate', () => { | ||||
|                 this.setActiveSession(id); | ||||
|  | ||||
|             item.connect('activate', Lang.bind(this, function() { | ||||
|                 this.setActiveSession(id); | ||||
|             })); | ||||
|                 this.emit('session-activated', this._activeSessionId); | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
| }); | ||||
| @@ -405,14 +405,14 @@ Signals.addSignalMethods(SessionMenuButton.prototype); | ||||
| var LoginDialog = new Lang.Class({ | ||||
|     Name: 'LoginDialog', | ||||
|  | ||||
|     _init: function(parentActor) { | ||||
|     _init(parentActor) { | ||||
|         this.actor = new Shell.GenericContainer({ style_class: 'login-dialog', | ||||
|                                                   visible: false }); | ||||
|         this.actor.get_accessible().set_role(Atk.Role.WINDOW); | ||||
|  | ||||
|         this.actor.add_constraint(new Layout.MonitorConstraint({ primary: true })); | ||||
|         this.actor.connect('allocate', Lang.bind(this, this._onAllocate)); | ||||
|         this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); | ||||
|         this.actor.connect('allocate', this._onAllocate.bind(this)); | ||||
|         this.actor.connect('destroy', this._onDestroy.bind(this)); | ||||
|         parentActor.add_child(this.actor); | ||||
|  | ||||
|         this._userManager = AccountsService.UserManager.get_default() | ||||
| @@ -421,17 +421,17 @@ var LoginDialog = new Lang.Class({ | ||||
|         this._settings = new Gio.Settings({ schema_id: GdmUtil.LOGIN_SCREEN_SCHEMA }); | ||||
|  | ||||
|         this._settings.connect('changed::' + GdmUtil.BANNER_MESSAGE_KEY, | ||||
|                                Lang.bind(this, this._updateBanner)); | ||||
|                                this._updateBanner.bind(this)); | ||||
|         this._settings.connect('changed::' + GdmUtil.BANNER_MESSAGE_TEXT_KEY, | ||||
|                                Lang.bind(this, this._updateBanner)); | ||||
|                                this._updateBanner.bind(this)); | ||||
|         this._settings.connect('changed::' + GdmUtil.DISABLE_USER_LIST_KEY, | ||||
|                                Lang.bind(this, this._updateDisableUserList)); | ||||
|                                this._updateDisableUserList.bind(this)); | ||||
|         this._settings.connect('changed::' + GdmUtil.LOGO_KEY, | ||||
|                                Lang.bind(this, this._updateLogo)); | ||||
|                                this._updateLogo.bind(this)); | ||||
|  | ||||
|         this._textureCache = St.TextureCache.get_default(); | ||||
|         this._updateLogoTextureId = this._textureCache.connect('texture-file-changed', | ||||
|                                                                Lang.bind(this, this._updateLogoTexture)); | ||||
|                                                                this._updateLogoTexture.bind(this)); | ||||
|  | ||||
|         this._userSelectionBox = new St.BoxLayout({ style_class: 'login-dialog-user-selection-box', | ||||
|                                                     x_align: Clutter.ActorAlign.CENTER, | ||||
| @@ -447,8 +447,8 @@ var LoginDialog = new Lang.Class({ | ||||
|                                      y_fill: true }); | ||||
|  | ||||
|         this._authPrompt = new AuthPrompt.AuthPrompt(this._gdmClient, AuthPrompt.AuthPromptMode.UNLOCK_OR_LOG_IN); | ||||
|         this._authPrompt.connect('prompted', Lang.bind(this, this._onPrompted)); | ||||
|         this._authPrompt.connect('reset', Lang.bind(this, this._onReset)); | ||||
|         this._authPrompt.connect('prompted', this._onPrompted.bind(this)); | ||||
|         this._authPrompt.connect('reset', this._onReset.bind(this)); | ||||
|         this._authPrompt.hide(); | ||||
|         this.actor.add_child(this._authPrompt.actor); | ||||
|  | ||||
| @@ -465,7 +465,7 @@ var LoginDialog = new Lang.Class({ | ||||
|                                                 x_align: St.Align.START, | ||||
|                                                 x_fill: true }); | ||||
|  | ||||
|         this._notListedButton.connect('clicked', Lang.bind(this, this._hideUserListAskForUsernameAndBeginVerification)); | ||||
|         this._notListedButton.connect('clicked', this._hideUserListAskForUsernameAndBeginVerification.bind(this)); | ||||
|  | ||||
|         this._notListedButton.hide(); | ||||
|  | ||||
| @@ -496,17 +496,16 @@ var LoginDialog = new Lang.Class({ | ||||
|         this.actor.add_child(this._logoBin); | ||||
|         this._updateLogo(); | ||||
|  | ||||
|         this._userList.connect('activate', | ||||
|                                Lang.bind(this, function(userList, item) { | ||||
|                                    this._onUserListActivated(item); | ||||
|                                })); | ||||
|         this._userList.connect('activate', (userList, item) => { | ||||
|             this._onUserListActivated(item); | ||||
|         }); | ||||
|  | ||||
|  | ||||
|         this._sessionMenuButton = new SessionMenuButton(); | ||||
|         this._sessionMenuButton.connect('session-activated', | ||||
|                                   Lang.bind(this, function(list, sessionId) { | ||||
|                                                 this._greeter.call_select_session_sync (sessionId, null); | ||||
|                                             })); | ||||
|             (list, sessionId) => { | ||||
|                 this._greeter.call_select_session_sync (sessionId, null); | ||||
|             }); | ||||
|         this._sessionMenuButton.actor.opacity = 0; | ||||
|         this._sessionMenuButton.actor.show(); | ||||
|         this._authPrompt.addActorToDefaultButtonWell(this._sessionMenuButton.actor); | ||||
| @@ -516,18 +515,18 @@ var LoginDialog = new Lang.Class({ | ||||
|  | ||||
|         this._realmManager = new Realmd.Manager(); | ||||
|         this._realmSignalId = this._realmManager.connect('login-format-changed', | ||||
|                                                          Lang.bind(this, this._showRealmLoginHint)); | ||||
|                                                          this._showRealmLoginHint.bind(this)); | ||||
|  | ||||
|         LoginManager.getLoginManager().getCurrentSessionProxy(Lang.bind(this, this._gotGreeterSessionProxy)); | ||||
|         LoginManager.getLoginManager().getCurrentSessionProxy(this._gotGreeterSessionProxy.bind(this)); | ||||
|  | ||||
|         // If the user list is enabled, it should take key focus; make sure the | ||||
|         // screen shield is initialized first to prevent it from stealing the | ||||
|         // focus later | ||||
|         this._startupCompleteId = Main.layoutManager.connect('startup-complete', | ||||
|                                                              Lang.bind(this, this._updateDisableUserList)); | ||||
|                                                              this._updateDisableUserList.bind(this)); | ||||
|     }, | ||||
|  | ||||
|     _getBannerAllocation: function (dialogBox) { | ||||
|     _getBannerAllocation(dialogBox) { | ||||
|         let actorBox = new Clutter.ActorBox(); | ||||
|  | ||||
|         let [minWidth, minHeight, natWidth, natHeight] = this._bannerView.get_preferred_size(); | ||||
| @@ -541,7 +540,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         return actorBox; | ||||
|     }, | ||||
|  | ||||
|     _getLogoBinAllocation: function (dialogBox) { | ||||
|     _getLogoBinAllocation(dialogBox) { | ||||
|         let actorBox = new Clutter.ActorBox(); | ||||
|  | ||||
|         let [minWidth, minHeight, natWidth, natHeight] = this._logoBin.get_preferred_size(); | ||||
| @@ -555,7 +554,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         return actorBox; | ||||
|     }, | ||||
|  | ||||
|     _getCenterActorAllocation: function (dialogBox, actor) { | ||||
|     _getCenterActorAllocation(dialogBox, actor) { | ||||
|         let actorBox = new Clutter.ActorBox(); | ||||
|  | ||||
|         let [minWidth, minHeight, natWidth, natHeight] = actor.get_preferred_size(); | ||||
| @@ -573,7 +572,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         return actorBox; | ||||
|     }, | ||||
|  | ||||
|     _onAllocate: function (actor, dialogBox, flags) { | ||||
|     _onAllocate(actor, dialogBox, flags) { | ||||
|         let dialogWidth = dialogBox.x2 - dialogBox.x1; | ||||
|         let dialogHeight = dialogBox.y2 - dialogBox.y1; | ||||
|  | ||||
| @@ -711,23 +710,23 @@ var LoginDialog = new Lang.Class({ | ||||
|             this._logoBin.allocate(logoAllocation, flags); | ||||
|     }, | ||||
|  | ||||
|     _ensureUserListLoaded: function() { | ||||
|     _ensureUserListLoaded() { | ||||
|         if (!this._userManager.is_loaded) { | ||||
|             this._userManagerLoadedId = this._userManager.connect('notify::is-loaded', | ||||
|                                                                   Lang.bind(this, function() { | ||||
|                                                                       if (this._userManager.is_loaded) { | ||||
|                                                                           this._loadUserList(); | ||||
|                                                                           this._userManager.disconnect(this._userManagerLoadedId); | ||||
|                                                                           this._userManagerLoadedId = 0; | ||||
|                                                                       } | ||||
|                                                                   })); | ||||
|                 () => { | ||||
|                     if (this._userManager.is_loaded) { | ||||
|                         this._loadUserList(); | ||||
|                         this._userManager.disconnect(this._userManagerLoadedId); | ||||
|                         this._userManagerLoadedId = 0; | ||||
|                     } | ||||
|                 }); | ||||
|         } else { | ||||
|             let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, Lang.bind(this, this._loadUserList)); | ||||
|             let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, this._loadUserList.bind(this)); | ||||
|             GLib.Source.set_name_by_id(id, '[gnome-shell] _loadUserList'); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _updateDisableUserList: function() { | ||||
|     _updateDisableUserList() { | ||||
|         let disableUserList = this._settings.get_boolean(GdmUtil.DISABLE_USER_LIST_KEY); | ||||
|  | ||||
|         // Disable user list when there are no users. | ||||
| @@ -742,7 +741,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _updateCancelButton: function() { | ||||
|     _updateCancelButton() { | ||||
|         let cancelVisible; | ||||
|  | ||||
|         // Hide the cancel button if the user list is disabled and we're asking for | ||||
| @@ -755,7 +754,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         this._authPrompt.cancelButton.visible = cancelVisible; | ||||
|     }, | ||||
|  | ||||
|     _updateBanner: function() { | ||||
|     _updateBanner() { | ||||
|         let enabled = this._settings.get_boolean(GdmUtil.BANNER_MESSAGE_KEY); | ||||
|         let text = this._settings.get_string(GdmUtil.BANNER_MESSAGE_TEXT_KEY); | ||||
|  | ||||
| @@ -767,7 +766,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _fadeInBannerView: function() { | ||||
|     _fadeInBannerView() { | ||||
|         this._bannerView.show(); | ||||
|         Tweener.addTween(this._bannerView, | ||||
|                          { opacity: 255, | ||||
| @@ -775,13 +774,13 @@ var LoginDialog = new Lang.Class({ | ||||
|                            transition: 'easeOutQuad' }); | ||||
|     }, | ||||
|  | ||||
|     _hideBannerView: function() { | ||||
|     _hideBannerView() { | ||||
|         Tweener.removeTweens(this._bannerView); | ||||
|         this._bannerView.opacity = 0; | ||||
|         this._bannerView.hide(); | ||||
|     }, | ||||
|  | ||||
|     _updateLogoTexture: function(cache, file) { | ||||
|     _updateLogoTexture(cache, file) { | ||||
|         if (this._logoFile && !this._logoFile.equal(file)) | ||||
|             return; | ||||
|  | ||||
| @@ -794,14 +793,14 @@ var LoginDialog = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _updateLogo: function() { | ||||
|     _updateLogo() { | ||||
|         let path = this._settings.get_string(GdmUtil.LOGO_KEY); | ||||
|  | ||||
|         this._logoFile = path ? Gio.file_new_for_path(path) : null; | ||||
|         this._updateLogoTexture(this._textureCache, this._logoFile); | ||||
|     }, | ||||
|  | ||||
|     _onPrompted: function() { | ||||
|     _onPrompted() { | ||||
|         if (this._shouldShowSessionMenuButton()) { | ||||
|             this._sessionMenuButton.updateSensitivity(true); | ||||
|             this._authPrompt.setActorInDefaultButtonWell(this._sessionMenuButton.actor); | ||||
| @@ -811,7 +810,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         this._showPrompt(); | ||||
|     }, | ||||
|  | ||||
|     _resetGreeterProxy: function() { | ||||
|     _resetGreeterProxy() { | ||||
|         if (GLib.getenv('GDM_GREETER_TEST') != '1') { | ||||
|             if (this._greeter) { | ||||
|                 this._greeter.run_dispose(); | ||||
| @@ -819,15 +818,15 @@ var LoginDialog = new Lang.Class({ | ||||
|             this._greeter = this._gdmClient.get_greeter_sync(null); | ||||
|  | ||||
|             this._defaultSessionChangedId = this._greeter.connect('default-session-name-changed', | ||||
|                                                                   Lang.bind(this, this._onDefaultSessionChanged)); | ||||
|                                                                   this._onDefaultSessionChanged.bind(this)); | ||||
|             this._sessionOpenedId = this._greeter.connect('session-opened', | ||||
|                                                           Lang.bind(this, this._onSessionOpened)); | ||||
|                                                           this._onSessionOpened.bind(this)); | ||||
|             this._timedLoginRequestedId = this._greeter.connect('timed-login-requested', | ||||
|                                                                 Lang.bind(this, this._onTimedLoginRequested)); | ||||
|                                                                 this._onTimedLoginRequested.bind(this)); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _onReset: function(authPrompt, beginRequest) { | ||||
|     _onReset(authPrompt, beginRequest) { | ||||
|         this._resetGreeterProxy(); | ||||
|         this._sessionMenuButton.updateSensitivity(true); | ||||
|  | ||||
| @@ -848,11 +847,11 @@ var LoginDialog = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _onDefaultSessionChanged: function(client, sessionId) { | ||||
|     _onDefaultSessionChanged(client, sessionId) { | ||||
|         this._sessionMenuButton.setActiveSession(sessionId); | ||||
|     }, | ||||
|  | ||||
|     _shouldShowSessionMenuButton: function() { | ||||
|     _shouldShowSessionMenuButton() { | ||||
|         if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.VERIFYING && | ||||
|             this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.VERIFICATION_FAILED) | ||||
|           return false; | ||||
| @@ -863,7 +862,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         return true; | ||||
|     }, | ||||
|  | ||||
|     _showPrompt: function() { | ||||
|     _showPrompt() { | ||||
|         if (this._authPrompt.actor.visible) | ||||
|             return; | ||||
|         this._authPrompt.actor.opacity = 0; | ||||
| @@ -875,7 +874,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         this._fadeInBannerView(); | ||||
|     }, | ||||
|  | ||||
|     _showRealmLoginHint: function(realmManager, hint) { | ||||
|     _showRealmLoginHint(realmManager, hint) { | ||||
|         if (!hint) | ||||
|             return; | ||||
|  | ||||
| @@ -888,7 +887,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         this._authPrompt.setMessage(_("(e.g., user or %s)").format(hint), GdmUtil.MessageType.HINT); | ||||
|     }, | ||||
|  | ||||
|     _askForUsernameAndBeginVerification: function() { | ||||
|     _askForUsernameAndBeginVerification() { | ||||
|         this._authPrompt.setPasswordChar(''); | ||||
|         this._authPrompt.setQuestion(_("Username: ")); | ||||
|  | ||||
| @@ -897,17 +896,17 @@ var LoginDialog = new Lang.Class({ | ||||
|         if (this._nextSignalId) | ||||
|             this._authPrompt.disconnect(this._nextSignalId); | ||||
|         this._nextSignalId = this._authPrompt.connect('next', | ||||
|                                                       Lang.bind(this, function() { | ||||
|                                                           this._authPrompt.disconnect(this._nextSignalId); | ||||
|                                                           this._nextSignalId = 0; | ||||
|                                                           this._authPrompt.updateSensitivity(false); | ||||
|                                                           let answer = this._authPrompt.getAnswer(); | ||||
|                                                           this._user = this._userManager.get_user(answer); | ||||
|                                                           this._authPrompt.clear(); | ||||
|                                                           this._authPrompt.startSpinning(); | ||||
|                                                           this._authPrompt.begin({ userName: answer }); | ||||
|                                                           this._updateCancelButton(); | ||||
|                                                       })); | ||||
|             () => { | ||||
|                 this._authPrompt.disconnect(this._nextSignalId); | ||||
|                 this._nextSignalId = 0; | ||||
|                 this._authPrompt.updateSensitivity(false); | ||||
|                 let answer = this._authPrompt.getAnswer(); | ||||
|                 this._user = this._userManager.get_user(answer); | ||||
|                 this._authPrompt.clear(); | ||||
|                 this._authPrompt.startSpinning(); | ||||
|                 this._authPrompt.begin({ userName: answer }); | ||||
|                 this._updateCancelButton(); | ||||
|             }); | ||||
|         this._updateCancelButton(); | ||||
|  | ||||
|         this._sessionMenuButton.updateSensitivity(false); | ||||
| @@ -915,7 +914,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         this._showPrompt(); | ||||
|     }, | ||||
|  | ||||
|     _loginScreenSessionActivated: function() { | ||||
|     _loginScreenSessionActivated() { | ||||
|         if (this.actor.opacity == 255 && this._authPrompt.verificationStatus == AuthPrompt.AuthPromptStatus.NOT_VERIFYING) | ||||
|             return; | ||||
|  | ||||
| @@ -923,7 +922,7 @@ var LoginDialog = new Lang.Class({ | ||||
|                          { opacity: 255, | ||||
|                            time: _FADE_ANIMATION_TIME, | ||||
|                            transition: 'easeOutQuad', | ||||
|                            onUpdate: function() { | ||||
|                            onUpdate() { | ||||
|                                let children = Main.layoutManager.uiGroup.get_children(); | ||||
|  | ||||
|                                for (let i = 0; i < children.length; i++) { | ||||
| @@ -932,28 +931,28 @@ var LoginDialog = new Lang.Class({ | ||||
|                                } | ||||
|                            }, | ||||
|                            onUpdateScope: this, | ||||
|                            onComplete: function() { | ||||
|                            onComplete() { | ||||
|                                if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING) | ||||
|                                    this._authPrompt.reset(); | ||||
|                            }, | ||||
|                            onCompleteScope: this }); | ||||
|     }, | ||||
|  | ||||
|     _gotGreeterSessionProxy: function(proxy) { | ||||
|     _gotGreeterSessionProxy(proxy) { | ||||
|         this._greeterSessionProxy = proxy; | ||||
|         this._greeterSessionProxyChangedId = | ||||
|             proxy.connect('g-properties-changed', Lang.bind(this, function() { | ||||
|             proxy.connect('g-properties-changed', () => { | ||||
|                 if (proxy.Active) | ||||
|                     this._loginScreenSessionActivated(); | ||||
|             })); | ||||
|             }); | ||||
|     }, | ||||
|  | ||||
|     _startSession: function(serviceName) { | ||||
|     _startSession(serviceName) { | ||||
|         Tweener.addTween(this.actor, | ||||
|                          { opacity: 0, | ||||
|                            time: _FADE_ANIMATION_TIME, | ||||
|                            transition: 'easeOutQuad', | ||||
|                            onUpdate: function() { | ||||
|                            onUpdate() { | ||||
|                                let children = Main.layoutManager.uiGroup.get_children(); | ||||
|  | ||||
|                                for (let i = 0; i < children.length; i++) { | ||||
| @@ -962,19 +961,17 @@ var LoginDialog = new Lang.Class({ | ||||
|                                } | ||||
|                            }, | ||||
|                            onUpdateScope: this, | ||||
|                            onComplete: function() { | ||||
|                            onComplete() { | ||||
|                                this._greeter.call_start_session_when_ready_sync(serviceName, true, null); | ||||
|                            }, | ||||
|                            onCompleteScope: this }); | ||||
|     }, | ||||
|  | ||||
|     _onSessionOpened: function(client, serviceName) { | ||||
|         this._authPrompt.finish(Lang.bind(this, function() { | ||||
|             this._startSession(serviceName); | ||||
|         })); | ||||
|     _onSessionOpened(client, serviceName) { | ||||
|         this._authPrompt.finish(() => { this._startSession(serviceName); }); | ||||
|     }, | ||||
|  | ||||
|     _waitForItemForUser: function(userName) { | ||||
|     _waitForItemForUser(userName) { | ||||
|         let item = this._userList.getItemFromUserName(userName); | ||||
|  | ||||
|         if (item) | ||||
| @@ -982,26 +979,24 @@ var LoginDialog = new Lang.Class({ | ||||
|  | ||||
|         let hold = new Batch.Hold(); | ||||
|         let signalId = this._userList.connect('item-added', | ||||
|                                               Lang.bind(this, function() { | ||||
|                                                   let item = this._userList.getItemFromUserName(userName); | ||||
|             () => { | ||||
|                 let item = this._userList.getItemFromUserName(userName); | ||||
|  | ||||
|                                                   if (item) | ||||
|                                                       hold.release(); | ||||
|                                               })); | ||||
|                 if (item) | ||||
|                     hold.release(); | ||||
|             }); | ||||
|  | ||||
|         hold.connect('release', Lang.bind(this, function() { | ||||
|                          this._userList.disconnect(signalId); | ||||
|                      })); | ||||
|         hold.connect('release', () => { this._userList.disconnect(signalId); }); | ||||
|  | ||||
|         return hold; | ||||
|     }, | ||||
|  | ||||
|     _showTimedLoginAnimation: function() { | ||||
|     _showTimedLoginAnimation() { | ||||
|         this._timedLoginItem.actor.grab_key_focus(); | ||||
|         return this._timedLoginItem.showTimedLoginIndicator(this._timedLoginAnimationTime); | ||||
|     }, | ||||
|  | ||||
|     _blockTimedLoginUntilIdle: function() { | ||||
|     _blockTimedLoginUntilIdle() { | ||||
|         // This blocks timed login from starting until a few | ||||
|         // seconds after the user stops interacting with the | ||||
|         // login screen. | ||||
| @@ -1014,29 +1009,27 @@ var LoginDialog = new Lang.Class({ | ||||
|         let hold = new Batch.Hold(); | ||||
|  | ||||
|         this._timedLoginIdleTimeOutId = Mainloop.timeout_add_seconds(_TIMED_LOGIN_IDLE_THRESHOLD, | ||||
|                                                                      function() { | ||||
|                                                                          this._timedLoginAnimationTime -= _TIMED_LOGIN_IDLE_THRESHOLD; | ||||
|                                                                          hold.release(); | ||||
|                                                                          return GLib.SOURCE_REMOVE; | ||||
|                                                                      }); | ||||
|             () => { | ||||
|                 this._timedLoginAnimationTime -= _TIMED_LOGIN_IDLE_THRESHOLD; | ||||
|                 hold.release(); | ||||
|                 return GLib.SOURCE_REMOVE; | ||||
|             }); | ||||
|         GLib.Source.set_name_by_id(this._timedLoginIdleTimeOutId, '[gnome-shell] this._timedLoginAnimationTime'); | ||||
|         return hold; | ||||
|     }, | ||||
|  | ||||
|     _startTimedLogin: function(userName, delay) { | ||||
|     _startTimedLogin(userName, delay) { | ||||
|         this._timedLoginItem = null; | ||||
|         this._timedLoginDelay = delay; | ||||
|         this._timedLoginAnimationTime = delay; | ||||
|  | ||||
|         let tasks = [function() { | ||||
|                          return this._waitForItemForUser(userName); | ||||
|                      }, | ||||
|         let tasks = [() => this._waitForItemForUser(userName), | ||||
|  | ||||
|                      function() { | ||||
|                      () => { | ||||
|                          this._timedLoginItem = this._userList.getItemFromUserName(userName); | ||||
|                      }, | ||||
|  | ||||
|                      function() { | ||||
|                      () => { | ||||
|                          // If we're just starting out, start on the right | ||||
|                          // item. | ||||
|                          if (!this._userManager.is_loaded) { | ||||
| @@ -1046,13 +1039,13 @@ var LoginDialog = new Lang.Class({ | ||||
|  | ||||
|                      this._blockTimedLoginUntilIdle, | ||||
|  | ||||
|                      function() { | ||||
|                      () => { | ||||
|                          this._userList.scrollToItem(this._timedLoginItem); | ||||
|                      }, | ||||
|  | ||||
|                      this._showTimedLoginAnimation, | ||||
|  | ||||
|                      function() { | ||||
|                      () => { | ||||
|                          this._timedLoginBatch = null; | ||||
|                          this._greeter.call_begin_auto_login_sync(userName, null); | ||||
|                      }]; | ||||
| @@ -1062,7 +1055,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         return this._timedLoginBatch.run(); | ||||
|     }, | ||||
|  | ||||
|     _resetTimedLogin: function() { | ||||
|     _resetTimedLogin() { | ||||
|         if (this._timedLoginBatch) { | ||||
|             this._timedLoginBatch.cancel(); | ||||
|             this._timedLoginBatch = null; | ||||
| @@ -1077,51 +1070,50 @@ var LoginDialog = new Lang.Class({ | ||||
|             this._startTimedLogin(userName, this._timedLoginDelay); | ||||
|     }, | ||||
|  | ||||
|     _onTimedLoginRequested: function(client, userName, seconds) { | ||||
|     _onTimedLoginRequested(client, userName, seconds) { | ||||
|         this._startTimedLogin(userName, seconds); | ||||
|  | ||||
|         global.stage.connect('captured-event', | ||||
|                              Lang.bind(this, function(actor, event) { | ||||
|                                 if (this._timedLoginDelay == undefined) | ||||
|                                     return Clutter.EVENT_PROPAGATE; | ||||
|         global.stage.connect('captured-event', (actor, event) => { | ||||
|            if (this._timedLoginDelay == undefined) | ||||
|                return Clutter.EVENT_PROPAGATE; | ||||
|  | ||||
|                                 if (event.type() == Clutter.EventType.KEY_PRESS || | ||||
|                                     event.type() == Clutter.EventType.BUTTON_PRESS) { | ||||
|                                     if (this._timedLoginBatch) { | ||||
|                                         this._timedLoginBatch.cancel(); | ||||
|                                         this._timedLoginBatch = null; | ||||
|                                     } | ||||
|                                 } else if (event.type() == Clutter.EventType.KEY_RELEASE || | ||||
|                                            event.type() == Clutter.EventType.BUTTON_RELEASE) { | ||||
|                                     this._resetTimedLogin(); | ||||
|                                 } | ||||
|            if (event.type() == Clutter.EventType.KEY_PRESS || | ||||
|                event.type() == Clutter.EventType.BUTTON_PRESS) { | ||||
|                if (this._timedLoginBatch) { | ||||
|                    this._timedLoginBatch.cancel(); | ||||
|                    this._timedLoginBatch = null; | ||||
|                } | ||||
|            } else if (event.type() == Clutter.EventType.KEY_RELEASE || | ||||
|                       event.type() == Clutter.EventType.BUTTON_RELEASE) { | ||||
|                this._resetTimedLogin(); | ||||
|            } | ||||
|  | ||||
|                                 return Clutter.EVENT_PROPAGATE; | ||||
|                              })); | ||||
|            return Clutter.EVENT_PROPAGATE; | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     _setUserListExpanded: function(expanded) { | ||||
|     _setUserListExpanded(expanded) { | ||||
|         this._userList.updateStyle(expanded); | ||||
|         this._userSelectionBox.visible = expanded; | ||||
|     }, | ||||
|  | ||||
|     _hideUserList: function() { | ||||
|     _hideUserList() { | ||||
|         this._setUserListExpanded(false); | ||||
|         if (this._userSelectionBox.visible) | ||||
|             GdmUtil.cloneAndFadeOutActor(this._userSelectionBox); | ||||
|     }, | ||||
|  | ||||
|     _hideUserListAskForUsernameAndBeginVerification: function() { | ||||
|     _hideUserListAskForUsernameAndBeginVerification() { | ||||
|         this._hideUserList(); | ||||
|         this._askForUsernameAndBeginVerification(); | ||||
|     }, | ||||
|  | ||||
|     _hideUserListAndBeginVerification: function() { | ||||
|     _hideUserListAndBeginVerification() { | ||||
|         this._hideUserList(); | ||||
|         this._authPrompt.begin(); | ||||
|     }, | ||||
|  | ||||
|     _showUserList: function() { | ||||
|     _showUserList() { | ||||
|         this._ensureUserListLoaded(); | ||||
|         this._authPrompt.hide(); | ||||
|         this._hideBannerView(); | ||||
| @@ -1131,7 +1123,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         this._userList.actor.grab_key_focus(); | ||||
|     }, | ||||
|  | ||||
|     _beginVerificationForItem: function(item) { | ||||
|     _beginVerificationForItem(item) { | ||||
|         this._authPrompt.setUser(item.user); | ||||
|  | ||||
|         let userName = item.user.get_user_name(); | ||||
| @@ -1142,7 +1134,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         return hold; | ||||
|     }, | ||||
|  | ||||
|     _onUserListActivated: function(activatedItem) { | ||||
|     _onUserListActivated(activatedItem) { | ||||
|         this._user = activatedItem.user; | ||||
|  | ||||
|         this._updateCancelButton(); | ||||
| @@ -1152,7 +1144,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         batch.run(); | ||||
|     }, | ||||
|  | ||||
|     _onDestroy: function() { | ||||
|     _onDestroy() { | ||||
|         if (this._userManagerLoadedId) { | ||||
|             this._userManager.disconnect(this._userManagerLoadedId); | ||||
|             this._userManagerLoadedId = 0; | ||||
| @@ -1193,7 +1185,7 @@ var LoginDialog = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _loadUserList: function() { | ||||
|     _loadUserList() { | ||||
|         if (this._userListLoaded) | ||||
|             return GLib.SOURCE_REMOVE; | ||||
|  | ||||
| @@ -1208,30 +1200,30 @@ var LoginDialog = new Lang.Class({ | ||||
|         this._updateDisableUserList(); | ||||
|  | ||||
|         this._userAddedId = this._userManager.connect('user-added', | ||||
|                                                       Lang.bind(this, function(userManager, user) { | ||||
|                                                           this._userList.addUser(user); | ||||
|                                                           this._updateDisableUserList(); | ||||
|                                                       })); | ||||
|             (userManager, user) => { | ||||
|                 this._userList.addUser(user); | ||||
|                 this._updateDisableUserList(); | ||||
|             }); | ||||
|  | ||||
|         this._userRemovedId = this._userManager.connect('user-removed', | ||||
|                                                         Lang.bind(this, function(userManager, user) { | ||||
|                                                             this._userList.removeUser(user); | ||||
|                                                             this._updateDisableUserList(); | ||||
|                                                         })); | ||||
|             (userManager, user) => { | ||||
|                 this._userList.removeUser(user); | ||||
|                 this._updateDisableUserList(); | ||||
|             }); | ||||
|  | ||||
|         this._userChangedId = this._userManager.connect('user-changed', | ||||
|                                                         Lang.bind(this, function(userManager, user) { | ||||
|                                                             if (this._userList.containsUser(user) && user.locked) | ||||
|                                                                 this._userList.removeUser(user); | ||||
|                                                             else if (!this._userList.containsUser(user) && !user.locked) | ||||
|                                                                 this._userList.addUser(user); | ||||
|                                                             this._updateDisableUserList(); | ||||
|                                                         })); | ||||
|             (userManager, user) => { | ||||
|                 if (this._userList.containsUser(user) && user.locked) | ||||
|                     this._userList.removeUser(user); | ||||
|                 else if (!this._userList.containsUser(user) && !user.locked) | ||||
|                     this._userList.addUser(user); | ||||
|                 this._updateDisableUserList(); | ||||
|             }); | ||||
|  | ||||
|         return GLib.SOURCE_REMOVE; | ||||
|     }, | ||||
|  | ||||
|     open: function() { | ||||
|     open() { | ||||
|         Main.ctrlAltTabManager.addGroup(this.actor, | ||||
|                                         _("Login Window"), | ||||
|                                         'dialog-password-symbolic', | ||||
| @@ -1250,20 +1242,20 @@ var LoginDialog = new Lang.Class({ | ||||
|         return true; | ||||
|     }, | ||||
|  | ||||
|     close: function() { | ||||
|     close() { | ||||
|         Main.popModal(this.actor); | ||||
|         Main.ctrlAltTabManager.removeGroup(this.actor); | ||||
|     }, | ||||
|  | ||||
|     cancel: function() { | ||||
|     cancel() { | ||||
|         this._authPrompt.cancel(); | ||||
|     }, | ||||
|  | ||||
|     addCharacter: function(unichar) { | ||||
|     addCharacter(unichar) { | ||||
|         // Don't allow type ahead at the login screen | ||||
|     }, | ||||
|  | ||||
|     finish: function(onComplete) { | ||||
|     finish(onComplete) { | ||||
|         this._authPrompt.finish(onComplete); | ||||
|     }, | ||||
| }); | ||||
|   | ||||
| @@ -29,28 +29,28 @@ function OVirtCredentials() { | ||||
|  | ||||
| var OVirtCredentialsManager = new Lang.Class({ | ||||
|     Name: 'OVirtCredentialsManager', | ||||
|     _init: function() { | ||||
|     _init() { | ||||
|         this._token = null; | ||||
|  | ||||
|         this._credentials = new OVirtCredentials(); | ||||
|         this._credentials.connectSignal('UserAuthenticated', | ||||
|                                         Lang.bind(this, this._onUserAuthenticated)); | ||||
|                                         this._onUserAuthenticated.bind(this)); | ||||
|     }, | ||||
|  | ||||
|     _onUserAuthenticated: function(proxy, sender, [token]) { | ||||
|     _onUserAuthenticated(proxy, sender, [token]) { | ||||
|         this._token = token; | ||||
|         this.emit('user-authenticated', token); | ||||
|     }, | ||||
|  | ||||
|     hasToken: function() { | ||||
|     hasToken() { | ||||
|         return this._token != null; | ||||
|     }, | ||||
|  | ||||
|     getToken: function() { | ||||
|     getToken() { | ||||
|         return this._token; | ||||
|     }, | ||||
|  | ||||
|     resetToken: function() { | ||||
|     resetToken() { | ||||
|         this._token = null; | ||||
|     } | ||||
| }); | ||||
|   | ||||
| @@ -62,21 +62,21 @@ const Realm = Gio.DBusProxy.makeProxyWrapper(RealmIface); | ||||
| var Manager = new Lang.Class({ | ||||
|     Name: 'Manager', | ||||
|  | ||||
|     _init: function(parentActor) { | ||||
|     _init(parentActor) { | ||||
|         this._aggregateProvider = Provider(Gio.DBus.system, | ||||
|                                            'org.freedesktop.realmd', | ||||
|                                            '/org/freedesktop/realmd', | ||||
|                                            Lang.bind(this, this._reloadRealms)) | ||||
|                                            this._reloadRealms.bind(this)) | ||||
|         this._realms = {}; | ||||
|  | ||||
|         this._signalId = this._aggregateProvider.connect('g-properties-changed', | ||||
|                                         Lang.bind(this, function(proxy, properties) { | ||||
|                                             if ('Realms' in properties.deep_unpack()) | ||||
|                                                 this._reloadRealms(); | ||||
|                                         })); | ||||
|             (proxy, properties) => { | ||||
|                 if ('Realms' in properties.deep_unpack()) | ||||
|                     this._reloadRealms(); | ||||
|             }); | ||||
|     }, | ||||
|  | ||||
|     _reloadRealms: function() { | ||||
|     _reloadRealms() { | ||||
|         let realmPaths = this._aggregateProvider.Realms; | ||||
|  | ||||
|         if (!realmPaths) | ||||
| @@ -86,11 +86,11 @@ var Manager = new Lang.Class({ | ||||
|             let realm = Realm(Gio.DBus.system, | ||||
|                               'org.freedesktop.realmd', | ||||
|                               realmPaths[i], | ||||
|                               Lang.bind(this, this._onRealmLoaded)); | ||||
|                               this._onRealmLoaded.bind(this)); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _reloadRealm: function(realm) { | ||||
|     _reloadRealm(realm) { | ||||
|         if (!realm.Configured) { | ||||
|             if (this._realms[realm.get_object_path()]) | ||||
|                 delete this._realms[realm.get_object_path()]; | ||||
| @@ -103,20 +103,19 @@ var Manager = new Lang.Class({ | ||||
|         this._updateLoginFormat(); | ||||
|     }, | ||||
|  | ||||
|     _onRealmLoaded: function(realm, error) { | ||||
|     _onRealmLoaded(realm, error) { | ||||
|         if (error) | ||||
|             return; | ||||
|  | ||||
|         this._reloadRealm(realm); | ||||
|  | ||||
|         realm.connect('g-properties-changed', | ||||
|                       Lang.bind(this, function(proxy, properties) { | ||||
|                                 if ('Configured' in properties.deep_unpack()) | ||||
|                                     this._reloadRealm(realm); | ||||
|                                 })); | ||||
|         realm.connect('g-properties-changed', (proxy, properties) => { | ||||
|             if ('Configured' in properties.deep_unpack()) | ||||
|                 this._reloadRealm(realm); | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     _updateLoginFormat: function() { | ||||
|     _updateLoginFormat() { | ||||
|         let newLoginFormat; | ||||
|  | ||||
|         for (let realmPath in this._realms) { | ||||
| @@ -142,13 +141,11 @@ var Manager = new Lang.Class({ | ||||
|         return this._loginFormat; | ||||
|     }, | ||||
|  | ||||
|     release: function() { | ||||
|     release() { | ||||
|         Service(Gio.DBus.system, | ||||
|                 'org.freedesktop.realmd', | ||||
|                 '/org/freedesktop/realmd', | ||||
|                 function(service) { | ||||
|                     service.ReleaseRemote(); | ||||
|                 }); | ||||
|                 service => { service.ReleaseRemote(); }); | ||||
|         this._aggregateProvider.disconnect(this._signalId); | ||||
|         this._realms = { }; | ||||
|         this._updateLoginFormat(); | ||||
|   | ||||
							
								
								
									
										165
									
								
								js/gdm/util.js
									
									
									
									
									
								
							
							
						
						
									
										165
									
								
								js/gdm/util.js
									
									
									
									
									
								
							| @@ -60,7 +60,7 @@ function fadeInActor(actor) { | ||||
|                        height: naturalHeight, | ||||
|                        time: FADE_ANIMATION_TIME, | ||||
|                        transition: 'easeOutQuad', | ||||
|                        onComplete: function() { | ||||
|                        onComplete() { | ||||
|                            this.set_height(-1); | ||||
|                            hold.release(); | ||||
|                        }, | ||||
| @@ -82,7 +82,7 @@ function fadeOutActor(actor) { | ||||
|                        height: 0, | ||||
|                        time: FADE_ANIMATION_TIME, | ||||
|                        transition: 'easeOutQuad', | ||||
|                        onComplete: function() { | ||||
|                        onComplete() { | ||||
|                            this.hide(); | ||||
|                            this.set_height(-1); | ||||
|                            hold.release(); | ||||
| @@ -111,7 +111,7 @@ function cloneAndFadeOutActor(actor) { | ||||
|                      { opacity: 0, | ||||
|                        time: CLONE_FADE_ANIMATION_TIME, | ||||
|                        transition: 'easeOutQuad', | ||||
|                        onComplete: function() { | ||||
|                        onComplete() { | ||||
|                            clone.destroy(); | ||||
|                            hold.release(); | ||||
|                        } | ||||
| @@ -122,7 +122,7 @@ function cloneAndFadeOutActor(actor) { | ||||
| var ShellUserVerifier = new Lang.Class({ | ||||
|     Name: 'ShellUserVerifier', | ||||
|  | ||||
|     _init: function(client, params) { | ||||
|     _init(client, params) { | ||||
|         params = Params.parse(params, { reauthenticationOnly: false }); | ||||
|         this._reauthOnly = params.reauthenticationOnly; | ||||
|  | ||||
| @@ -133,7 +133,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|  | ||||
|         this._settings = new Gio.Settings({ schema_id: LOGIN_SCREEN_SCHEMA }); | ||||
|         this._settings.connect('changed', | ||||
|                                Lang.bind(this, this._updateDefaultService)); | ||||
|                                this._updateDefaultService.bind(this)); | ||||
|         this._updateDefaultService(); | ||||
|  | ||||
|         this._fprintManager = Fprint.FprintManager(); | ||||
| @@ -147,9 +147,9 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this._checkForSmartcard(); | ||||
|  | ||||
|         this._smartcardInsertedId = this._smartcardManager.connect('smartcard-inserted', | ||||
|                                                                    Lang.bind(this, this._checkForSmartcard)); | ||||
|                                                                    this._checkForSmartcard.bind(this)); | ||||
|         this._smartcardRemovedId = this._smartcardManager.connect('smartcard-removed', | ||||
|                                                                   Lang.bind(this, this._checkForSmartcard)); | ||||
|                                                                   this._checkForSmartcard.bind(this)); | ||||
|  | ||||
|         this._messageQueue = []; | ||||
|         this._messageQueueTimeoutId = 0; | ||||
| @@ -164,10 +164,10 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|             this._oVirtUserAuthenticated(this._oVirtCredentialsManager.getToken()); | ||||
|  | ||||
|         this._oVirtUserAuthenticatedId = this._oVirtCredentialsManager.connect('user-authenticated', | ||||
|                                                                                Lang.bind(this, this._oVirtUserAuthenticated)); | ||||
|                                                                                this._oVirtUserAuthenticated.bind(this)); | ||||
|     }, | ||||
|  | ||||
|     begin: function(userName, hold) { | ||||
|     begin(userName, hold) { | ||||
|         this._cancellable = new Gio.Cancellable(); | ||||
|         this._hold = hold; | ||||
|         this._userName = userName; | ||||
| @@ -179,13 +179,13 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|             // If possible, reauthenticate an already running session, | ||||
|             // so any session specific credentials get updated appropriately | ||||
|             this._client.open_reauthentication_channel(userName, this._cancellable, | ||||
|                                                        Lang.bind(this, this._reauthenticationChannelOpened)); | ||||
|                                                        this._reauthenticationChannelOpened.bind(this)); | ||||
|         } else { | ||||
|             this._client.get_user_verifier(this._cancellable, Lang.bind(this, this._userVerifierGot)); | ||||
|             this._client.get_user_verifier(this._cancellable, this._userVerifierGot.bind(this)); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     cancel: function() { | ||||
|     cancel() { | ||||
|         if (this._cancellable) | ||||
|             this._cancellable.cancel(); | ||||
|  | ||||
| @@ -195,14 +195,14 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _clearUserVerifier: function() { | ||||
|     _clearUserVerifier() { | ||||
|         if (this._userVerifier) { | ||||
|             this._userVerifier.run_dispose(); | ||||
|             this._userVerifier = null; | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     clear: function() { | ||||
|     clear() { | ||||
|         if (this._cancellable) { | ||||
|             this._cancellable.cancel(); | ||||
|             this._cancellable = null; | ||||
| @@ -212,7 +212,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this._clearMessageQueue(); | ||||
|     }, | ||||
|  | ||||
|     destroy: function() { | ||||
|     destroy() { | ||||
|         this.clear(); | ||||
|  | ||||
|         this._settings.run_dispose(); | ||||
| @@ -226,24 +226,23 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this._oVirtCredentialsManager = null; | ||||
|     }, | ||||
|  | ||||
|     answerQuery: function(serviceName, answer) { | ||||
|     answerQuery(serviceName, answer) { | ||||
|         if (!this.hasPendingMessages) { | ||||
|             this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null); | ||||
|         } else { | ||||
|             let signalId = this.connect('no-more-messages', | ||||
|                                         Lang.bind(this, function() { | ||||
|                                             this.disconnect(signalId); | ||||
|                                             this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null); | ||||
|                                         })); | ||||
|             let signalId = this.connect('no-more-messages', () => { | ||||
|                 this.disconnect(signalId); | ||||
|                 this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null); | ||||
|             }); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _getIntervalForMessage: function(message) { | ||||
|     _getIntervalForMessage(message) { | ||||
|         // We probably could be smarter here | ||||
|         return message.length * USER_READ_TIME; | ||||
|     }, | ||||
|  | ||||
|     finishMessageQueue: function() { | ||||
|     finishMessageQueue() { | ||||
|         if (!this.hasPendingMessages) | ||||
|             return; | ||||
|  | ||||
| @@ -253,7 +252,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this.emit('no-more-messages'); | ||||
|     }, | ||||
|  | ||||
|     _queueMessageTimeout: function() { | ||||
|     _queueMessageTimeout() { | ||||
|         if (this._messageQueue.length == 0) { | ||||
|             this.finishMessageQueue(); | ||||
|             return; | ||||
| @@ -268,15 +267,15 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|  | ||||
|         this._messageQueueTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, | ||||
|                                                        message.interval, | ||||
|                                                        Lang.bind(this, function() { | ||||
|                                                        () => { | ||||
|                                                            this._messageQueueTimeoutId = 0; | ||||
|                                                            this._queueMessageTimeout(); | ||||
|                                                            return GLib.SOURCE_REMOVE; | ||||
|                                                        })); | ||||
|                                                        }); | ||||
|         GLib.Source.set_name_by_id(this._messageQueueTimeoutId, '[gnome-shell] this._queueMessageTimeout'); | ||||
|     }, | ||||
|  | ||||
|     _queueMessage: function(message, messageType) { | ||||
|     _queueMessage(message, messageType) { | ||||
|         let interval = this._getIntervalForMessage(message); | ||||
|  | ||||
|         this.hasPendingMessages = true; | ||||
| @@ -284,7 +283,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this._queueMessageTimeout(); | ||||
|     }, | ||||
|  | ||||
|     _clearMessageQueue: function() { | ||||
|     _clearMessageQueue() { | ||||
|         this.finishMessageQueue(); | ||||
|  | ||||
|         if (this._messageQueueTimeoutId != 0) { | ||||
| @@ -294,7 +293,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this.emit('show-message', null, MessageType.NONE); | ||||
|     }, | ||||
|  | ||||
|     _checkForFingerprintReader: function() { | ||||
|     _checkForFingerprintReader() { | ||||
|         this._haveFingerprintReader = false; | ||||
|  | ||||
|         if (!this._settings.get_boolean(FINGERPRINT_AUTHENTICATION_KEY) || | ||||
| @@ -303,21 +302,21 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         this._fprintManager.GetDefaultDeviceRemote(Gio.DBusCallFlags.NONE, this._cancellable, Lang.bind(this, | ||||
|             function(device, error) { | ||||
|         this._fprintManager.GetDefaultDeviceRemote(Gio.DBusCallFlags.NONE, this._cancellable, | ||||
|             (device, error) => { | ||||
|                 if (!error && device) { | ||||
|                     this._haveFingerprintReader = true; | ||||
|                     this._updateDefaultService(); | ||||
|                 } | ||||
|             })); | ||||
|             }); | ||||
|     }, | ||||
|  | ||||
|     _oVirtUserAuthenticated: function(token) { | ||||
|     _oVirtUserAuthenticated(token) { | ||||
|         this._preemptingService = OVIRT_SERVICE_NAME; | ||||
|         this.emit('ovirt-user-authenticated'); | ||||
|     }, | ||||
|  | ||||
|     _checkForSmartcard: function() { | ||||
|     _checkForSmartcard() { | ||||
|         let smartcardDetected; | ||||
|  | ||||
|         if (!this._settings.get_boolean(SMARTCARD_AUTHENTICATION_KEY)) | ||||
| @@ -339,7 +338,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _reportInitError: function(where, error) { | ||||
|     _reportInitError(where, error) { | ||||
|         logError(error, where); | ||||
|         this._hold.release(); | ||||
|  | ||||
| @@ -347,7 +346,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this._verificationFailed(false); | ||||
|     }, | ||||
|  | ||||
|     _reauthenticationChannelOpened: function(client, result) { | ||||
|     _reauthenticationChannelOpened(client, result) { | ||||
|         try { | ||||
|             this._clearUserVerifier(); | ||||
|             this._userVerifier = client.open_reauthentication_channel_finish(result); | ||||
| @@ -358,7 +357,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|             // Gdm emits org.freedesktop.DBus.Error.AccessDenied when there is | ||||
|             // no session to reauthenticate. Fall back to performing verification | ||||
|             // from this login session | ||||
|             client.get_user_verifier(this._cancellable, Lang.bind(this, this._userVerifierGot)); | ||||
|             client.get_user_verifier(this._cancellable, this._userVerifierGot.bind(this)); | ||||
|             return; | ||||
|         } catch(e) { | ||||
|             this._reportInitError('Failed to open reauthentication channel', e); | ||||
| @@ -371,7 +370,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this._hold.release(); | ||||
|     }, | ||||
|  | ||||
|     _userVerifierGot: function(client, result) { | ||||
|     _userVerifierGot(client, result) { | ||||
|         try { | ||||
|             this._clearUserVerifier(); | ||||
|             this._userVerifier = client.get_user_verifier_finish(result); | ||||
| @@ -387,47 +386,52 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this._hold.release(); | ||||
|     }, | ||||
|  | ||||
|     _connectSignals: function() { | ||||
|         this._userVerifier.connect('info', Lang.bind(this, this._onInfo)); | ||||
|         this._userVerifier.connect('problem', Lang.bind(this, this._onProblem)); | ||||
|         this._userVerifier.connect('info-query', Lang.bind(this, this._onInfoQuery)); | ||||
|         this._userVerifier.connect('secret-info-query', Lang.bind(this, this._onSecretInfoQuery)); | ||||
|         this._userVerifier.connect('conversation-stopped', Lang.bind(this, this._onConversationStopped)); | ||||
|         this._userVerifier.connect('reset', Lang.bind(this, this._onReset)); | ||||
|         this._userVerifier.connect('verification-complete', Lang.bind(this, this._onVerificationComplete)); | ||||
|     _connectSignals() { | ||||
|         this._userVerifier.connect('info', this._onInfo.bind(this)); | ||||
|         this._userVerifier.connect('problem', this._onProblem.bind(this)); | ||||
|         this._userVerifier.connect('info-query', this._onInfoQuery.bind(this)); | ||||
|         this._userVerifier.connect('secret-info-query', this._onSecretInfoQuery.bind(this)); | ||||
|         this._userVerifier.connect('conversation-stopped', this._onConversationStopped.bind(this)); | ||||
|         this._userVerifier.connect('reset', this._onReset.bind(this)); | ||||
|         this._userVerifier.connect('verification-complete', this._onVerificationComplete.bind(this)); | ||||
|     }, | ||||
|  | ||||
|     _getForegroundService: function() { | ||||
|     _getForegroundService() { | ||||
|         if (this._preemptingService) | ||||
|             return this._preemptingService; | ||||
|  | ||||
|         return this._defaultService; | ||||
|     }, | ||||
|  | ||||
|     serviceIsForeground: function(serviceName) { | ||||
|     serviceIsForeground(serviceName) { | ||||
|         return serviceName == this._getForegroundService(); | ||||
|     }, | ||||
|  | ||||
|     serviceIsDefault: function(serviceName) { | ||||
|     serviceIsDefault(serviceName) { | ||||
|         return serviceName == this._defaultService; | ||||
|     }, | ||||
|  | ||||
|     _updateDefaultService: function() { | ||||
|     _updateDefaultService() { | ||||
|         if (this._settings.get_boolean(PASSWORD_AUTHENTICATION_KEY)) | ||||
|             this._defaultService = PASSWORD_SERVICE_NAME; | ||||
|         else if (this._settings.get_boolean(SMARTCARD_AUTHENTICATION_KEY)) | ||||
|             this._defaultService = SMARTCARD_SERVICE_NAME; | ||||
|         else if (this._haveFingerprintReader) | ||||
|             this._defaultService = FINGERPRINT_SERVICE_NAME; | ||||
|  | ||||
|         if (!this._defaultService) { | ||||
|             log("no authentication service is enabled, using password authentication"); | ||||
|             this._defaultService = PASSWORD_SERVICE_NAME; | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _startService: function(serviceName) { | ||||
|     _startService(serviceName) { | ||||
|         this._hold.acquire(); | ||||
|         if (this._userName) { | ||||
|            this._userVerifier.call_begin_verification_for_user(serviceName, | ||||
|                                                                this._userName, | ||||
|                                                                this._cancellable, | ||||
|                                                                Lang.bind(this, function(obj, result) { | ||||
|                                                                (obj, result) => { | ||||
|                try { | ||||
|                    obj.call_begin_verification_for_user_finish(result); | ||||
|                } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) { | ||||
| @@ -438,11 +442,11 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|                } | ||||
|  | ||||
|                this._hold.release(); | ||||
|            })); | ||||
|            }); | ||||
|         } else { | ||||
|            this._userVerifier.call_begin_verification(serviceName, | ||||
|                                                       this._cancellable, | ||||
|                                                       Lang.bind(this, function(obj, result) { | ||||
|                                                       (obj, result) => { | ||||
|                try { | ||||
|                    obj.call_begin_verification_finish(result); | ||||
|                } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) { | ||||
| @@ -453,18 +457,18 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|                } | ||||
|  | ||||
|                this._hold.release(); | ||||
|            })); | ||||
|            }); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _beginVerification: function() { | ||||
|     _beginVerification() { | ||||
|         this._startService(this._getForegroundService()); | ||||
|  | ||||
|         if (this._userName && this._haveFingerprintReader && !this.serviceIsForeground(FINGERPRINT_SERVICE_NAME)) | ||||
|             this._startService(FINGERPRINT_SERVICE_NAME); | ||||
|     }, | ||||
|  | ||||
|     _onInfo: function(client, serviceName, info) { | ||||
|     _onInfo(client, serviceName, info) { | ||||
|         if (this.serviceIsForeground(serviceName)) { | ||||
|             this._queueMessage(info, MessageType.INFO); | ||||
|         } else if (serviceName == FINGERPRINT_SERVICE_NAME && | ||||
| @@ -479,21 +483,21 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _onProblem: function(client, serviceName, problem) { | ||||
|     _onProblem(client, serviceName, problem) { | ||||
|         if (!this.serviceIsForeground(serviceName)) | ||||
|             return; | ||||
|  | ||||
|         this._queueMessage(problem, MessageType.ERROR); | ||||
|     }, | ||||
|  | ||||
|     _onInfoQuery: function(client, serviceName, question) { | ||||
|     _onInfoQuery(client, serviceName, question) { | ||||
|         if (!this.serviceIsForeground(serviceName)) | ||||
|             return; | ||||
|  | ||||
|         this.emit('ask-question', serviceName, question, ''); | ||||
|     }, | ||||
|  | ||||
|     _onSecretInfoQuery: function(client, serviceName, secretQuestion) { | ||||
|     _onSecretInfoQuery(client, serviceName, secretQuestion) { | ||||
|         if (!this.serviceIsForeground(serviceName)) | ||||
|             return; | ||||
|  | ||||
| @@ -506,7 +510,7 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this.emit('ask-question', serviceName, secretQuestion, '\u25cf'); | ||||
|     }, | ||||
|  | ||||
|     _onReset: function() { | ||||
|     _onReset() { | ||||
|         // Clear previous attempts to authenticate | ||||
|         this._failCounter = 0; | ||||
|         this._updateDefaultService(); | ||||
| @@ -514,56 +518,55 @@ var ShellUserVerifier = new Lang.Class({ | ||||
|         this.emit('reset'); | ||||
|     }, | ||||
|  | ||||
|     _onVerificationComplete: function() { | ||||
|     _onVerificationComplete() { | ||||
|         this.emit('verification-complete'); | ||||
|     }, | ||||
|  | ||||
|     _cancelAndReset: function() { | ||||
|     _cancelAndReset() { | ||||
|         this.cancel(); | ||||
|         this._onReset(); | ||||
|     }, | ||||
|  | ||||
|     _retry: function() { | ||||
|     _retry() { | ||||
|         this.begin(this._userName, new Batch.Hold()); | ||||
|     }, | ||||
|  | ||||
|     _verificationFailed: function(retry) { | ||||
|     _verificationFailed(retry) { | ||||
|         // For Not Listed / enterprise logins, immediately reset | ||||
|         // the dialog | ||||
|         // Otherwise, we allow ALLOWED_FAILURES attempts. After that, we | ||||
|         // go back to the welcome screen. | ||||
|         // Otherwise, when in login mode we allow ALLOWED_FAILURES attempts. | ||||
|         // After that, we go back to the welcome screen. | ||||
|  | ||||
|         this._failCounter++; | ||||
|         let canRetry = retry && this._userName && | ||||
|             this._failCounter < this._settings.get_int(ALLOWED_FAILURES_KEY); | ||||
|             (this._reauthOnly || | ||||
|              this._failCounter < this._settings.get_int(ALLOWED_FAILURES_KEY)); | ||||
|  | ||||
|         if (canRetry) { | ||||
|             if (!this.hasPendingMessages) { | ||||
|                 this._retry(); | ||||
|             } else { | ||||
|                 let signalId = this.connect('no-more-messages', | ||||
|                                             Lang.bind(this, function() { | ||||
|                                                 this.disconnect(signalId); | ||||
|                                                 if (this._cancellable && !this._cancellable.is_cancelled()) | ||||
|                                                     this._retry(); | ||||
|                                             })); | ||||
|                 let signalId = this.connect('no-more-messages', () => { | ||||
|                     this.disconnect(signalId); | ||||
|                     if (this._cancellable && !this._cancellable.is_cancelled()) | ||||
|                         this._retry(); | ||||
|                 }); | ||||
|             } | ||||
|         } else { | ||||
|             if (!this.hasPendingMessages) { | ||||
|                 this._cancelAndReset(); | ||||
|             } else { | ||||
|                 let signalId = this.connect('no-more-messages', | ||||
|                                             Lang.bind(this, function() { | ||||
|                                                 this.disconnect(signalId); | ||||
|                                                 this._cancelAndReset(); | ||||
|                                             })); | ||||
|                 let signalId = this.connect('no-more-messages', () => { | ||||
|                     this.disconnect(signalId); | ||||
|                     this._cancelAndReset(); | ||||
|                 }); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         this.emit('verification-failed'); | ||||
|         this.emit('verification-failed', canRetry); | ||||
|     }, | ||||
|  | ||||
|     _onConversationStopped: function(client, serviceName) { | ||||
|     _onConversationStopped(client, serviceName) { | ||||
|         // If the login failed with the preauthenticated oVirt credentials | ||||
|         // then discard the credentials and revert to default authentication | ||||
|         // mechanism. | ||||
|   | ||||
| @@ -17,6 +17,7 @@ | ||||
|     <file>misc/gnomeSession.js</file> | ||||
|     <file>misc/history.js</file> | ||||
|     <file>misc/ibusManager.js</file> | ||||
|     <file>misc/inputMethod.js</file> | ||||
|     <file>misc/jsParse.js</file> | ||||
|     <file>misc/keyboardManager.js</file> | ||||
|     <file>misc/loginManager.js</file> | ||||
| @@ -61,6 +62,7 @@ | ||||
|     <file>ui/ibusCandidatePopup.js</file> | ||||
|     <file>ui/iconGrid.js</file> | ||||
|     <file>ui/inhibitShortcutsDialog.js</file> | ||||
|     <file>ui/kbdA11yDialog.js</file> | ||||
|     <file>ui/keyboard.js</file> | ||||
|     <file>ui/layout.js</file> | ||||
|     <file>ui/lightbox.js</file> | ||||
| @@ -130,5 +132,6 @@ | ||||
|     <file>ui/status/bluetooth.js</file> | ||||
|     <file>ui/status/screencast.js</file> | ||||
|     <file>ui/status/system.js</file> | ||||
|     <file>ui/status/thunderbolt.js</file> | ||||
|   </gresource> | ||||
| </gresources> | ||||
|   | ||||
| @@ -14,6 +14,6 @@ var GETTEXT_PACKAGE = '@GETTEXT_PACKAGE@'; | ||||
| var LOCALEDIR = '@datadir@/locale'; | ||||
| /* other standard directories */ | ||||
| var LIBEXECDIR = '@libexecdir@'; | ||||
| var SYSCONFDIR = '@sysconfdir@'; | ||||
| var VPNDIR = '@vpndir@'; | ||||
| /* g-i package versions */ | ||||
| var LIBMUTTER_API_VERSION = '@LIBMUTTER_API_VERSION@' | ||||
|   | ||||
| @@ -161,7 +161,7 @@ function installImporter(extension) { | ||||
| var ExtensionFinder = new Lang.Class({ | ||||
|     Name: 'ExtensionFinder', | ||||
|  | ||||
|     _loadExtension: function(extensionDir, info, perUserDir) { | ||||
|     _loadExtension(extensionDir, info, perUserDir) { | ||||
|         let fileType = info.get_file_type(); | ||||
|         if (fileType != Gio.FileType.DIRECTORY) | ||||
|             return; | ||||
| @@ -184,9 +184,11 @@ var ExtensionFinder = new Lang.Class({ | ||||
|         this.emit('extension-found', extension); | ||||
|     }, | ||||
|  | ||||
|     scanExtensions: function() { | ||||
|     scanExtensions() { | ||||
|         let perUserDir = Gio.File.new_for_path(global.userdatadir); | ||||
|         FileUtils.collectFromDatadirs('extensions', true, Lang.bind(this, this._loadExtension, perUserDir)); | ||||
|         FileUtils.collectFromDatadirs('extensions', true, (dir, info) => { | ||||
|             this._loadExtension(dir, info, perUserDir); | ||||
|         }); | ||||
|     } | ||||
| }); | ||||
| Signals.addSignalMethods(ExtensionFinder.prototype); | ||||
|   | ||||
| @@ -10,7 +10,7 @@ var DEFAULT_LIMIT = 512; | ||||
| var HistoryManager = new Lang.Class({ | ||||
|     Name: 'HistoryManager', | ||||
|  | ||||
|     _init: function(params) { | ||||
|     _init(params) { | ||||
|         params = Params.parse(params, { gsettingsKey: null, | ||||
|                                         limit: DEFAULT_LIMIT, | ||||
|                                         entry: null }); | ||||
| @@ -22,7 +22,7 @@ var HistoryManager = new Lang.Class({ | ||||
|         if (this._key) { | ||||
|             this._history = global.settings.get_strv(this._key); | ||||
|             global.settings.connect('changed::' + this._key, | ||||
|                                     Lang.bind(this, this._historyChanged)); | ||||
|                                     this._historyChanged.bind(this)); | ||||
|  | ||||
|         } else { | ||||
|             this._history = []; | ||||
| @@ -32,16 +32,16 @@ var HistoryManager = new Lang.Class({ | ||||
|  | ||||
|         if (this._entry) { | ||||
|             this._entry.connect('key-press-event',  | ||||
|                                 Lang.bind(this, this._onEntryKeyPress)); | ||||
|                                 this._onEntryKeyPress.bind(this)); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _historyChanged: function() { | ||||
|     _historyChanged() { | ||||
|         this._history = global.settings.get_strv(this._key); | ||||
|         this._historyIndex = this._history.length; | ||||
|     }, | ||||
|  | ||||
|     _setPrevItem: function(text) { | ||||
|     _setPrevItem(text) { | ||||
|         if (this._historyIndex <= 0) | ||||
|             return false; | ||||
|  | ||||
| @@ -52,7 +52,7 @@ var HistoryManager = new Lang.Class({ | ||||
|         return true; | ||||
|     }, | ||||
|  | ||||
|     _setNextItem: function(text) { | ||||
|     _setNextItem(text) { | ||||
|         if (this._historyIndex >= this._history.length) | ||||
|             return false; | ||||
|  | ||||
| @@ -63,7 +63,7 @@ var HistoryManager = new Lang.Class({ | ||||
|         return true; | ||||
|     }, | ||||
|  | ||||
|     lastItem: function() { | ||||
|     lastItem() { | ||||
|         if (this._historyIndex != this._history.length) { | ||||
|             this._historyIndex = this._history.length; | ||||
|             this._indexChanged(); | ||||
| @@ -72,7 +72,7 @@ var HistoryManager = new Lang.Class({ | ||||
|         return this._historyIndex ? this._history[this._historyIndex -1] : null; | ||||
|     }, | ||||
|  | ||||
|     addItem: function(input) { | ||||
|     addItem(input) { | ||||
|         if (this._history.length == 0 || | ||||
|             this._history[this._history.length - 1] != input) { | ||||
|  | ||||
| @@ -82,7 +82,7 @@ var HistoryManager = new Lang.Class({ | ||||
|         this._historyIndex = this._history.length; | ||||
|     }, | ||||
|  | ||||
|     _onEntryKeyPress: function(entry, event) { | ||||
|     _onEntryKeyPress(entry, event) { | ||||
|         let symbol = event.get_key_symbol(); | ||||
|         if (symbol == Clutter.KEY_Up) { | ||||
|             return this._setPrevItem(entry.get_text()); | ||||
| @@ -92,7 +92,7 @@ var HistoryManager = new Lang.Class({ | ||||
|         return Clutter.EVENT_PROPAGATE; | ||||
|     }, | ||||
|  | ||||
|     _indexChanged: function() { | ||||
|     _indexChanged() { | ||||
|         let current = this._history[this._historyIndex] || ''; | ||||
|         this.emit('changed', current); | ||||
|  | ||||
| @@ -100,7 +100,7 @@ var HistoryManager = new Lang.Class({ | ||||
|             this._entry.set_text(current); | ||||
|     }, | ||||
|  | ||||
|     _save: function() { | ||||
|     _save() { | ||||
|         if (this._history.length > this._limit) | ||||
|             this._history.splice(0, this._history.length - this._limit); | ||||
|  | ||||
|   | ||||
| @@ -6,15 +6,11 @@ const Lang = imports.lang; | ||||
| const Mainloop = imports.mainloop; | ||||
| const Signals = imports.signals; | ||||
|  | ||||
| let IBusCandidatePopup; | ||||
| try { | ||||
|     var IBus = imports.gi.IBus; | ||||
|     _checkIBusVersion(1, 5, 2); | ||||
|     IBusCandidatePopup = imports.ui.ibusCandidatePopup; | ||||
| } catch (e) { | ||||
|     var IBus = null; | ||||
|     log(e); | ||||
| } | ||||
| const IBus = imports.gi.IBus; | ||||
| const IBusCandidatePopup = imports.ui.ibusCandidatePopup; | ||||
|  | ||||
| // Ensure runtime version matches | ||||
| _checkIBusVersion(1, 5, 2); | ||||
|  | ||||
| let _ibusManager = null; | ||||
|  | ||||
| @@ -44,10 +40,7 @@ var IBusManager = new Lang.Class({ | ||||
|     _MAX_INPUT_SOURCE_ACTIVATION_TIME: 4000, // ms | ||||
|     _PRELOAD_ENGINES_DELAY_TIME: 30, // sec | ||||
|  | ||||
|     _init: function() { | ||||
|         if (!IBus) | ||||
|             return; | ||||
|  | ||||
|     _init() { | ||||
|         IBus.init(); | ||||
|  | ||||
|         this._candidatePopup = new IBusCandidatePopup.CandidatePopup(); | ||||
| @@ -60,16 +53,16 @@ var IBusManager = new Lang.Class({ | ||||
|         this._preloadEnginesId = 0; | ||||
|  | ||||
|         this._ibus = IBus.Bus.new_async(); | ||||
|         this._ibus.connect('connected', Lang.bind(this, this._onConnected)); | ||||
|         this._ibus.connect('disconnected', Lang.bind(this, this._clear)); | ||||
|         this._ibus.connect('connected', this._onConnected.bind(this)); | ||||
|         this._ibus.connect('disconnected', this._clear.bind(this)); | ||||
|         // Need to set this to get 'global-engine-changed' emitions | ||||
|         this._ibus.set_watch_ibus_signal(true); | ||||
|         this._ibus.connect('global-engine-changed', Lang.bind(this, this._engineChanged)); | ||||
|         this._ibus.connect('global-engine-changed', this._engineChanged.bind(this)); | ||||
|  | ||||
|         this._spawn(); | ||||
|     }, | ||||
|  | ||||
|     _spawn: function() { | ||||
|     _spawn() { | ||||
|         try { | ||||
|             Gio.Subprocess.new(['ibus-daemon', '--xim', '--panel', 'disable'], | ||||
|                                Gio.SubprocessFlags.NONE); | ||||
| @@ -78,7 +71,7 @@ var IBusManager = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _clear: function() { | ||||
|     _clear() { | ||||
|         if (this._panelService) | ||||
|             this._panelService.destroy(); | ||||
|  | ||||
| @@ -94,15 +87,15 @@ var IBusManager = new Lang.Class({ | ||||
|         this._spawn(); | ||||
|     }, | ||||
|  | ||||
|     _onConnected: function() { | ||||
|         this._ibus.list_engines_async(-1, null, Lang.bind(this, this._initEngines)); | ||||
|     _onConnected() { | ||||
|         this._ibus.list_engines_async(-1, null, this._initEngines.bind(this)); | ||||
|         this._ibus.request_name_async(IBus.SERVICE_PANEL, | ||||
|                                       IBus.BusNameFlag.REPLACE_EXISTING, | ||||
|                                       -1, null, | ||||
|                                       Lang.bind(this, this._initPanelService)); | ||||
|                                       this._initPanelService.bind(this)); | ||||
|     }, | ||||
|  | ||||
|     _initEngines: function(ibus, result) { | ||||
|     _initEngines(ibus, result) { | ||||
|         let enginesList = this._ibus.list_engines_async_finish(result); | ||||
|         if (enginesList) { | ||||
|             for (let i = 0; i < enginesList.length; ++i) { | ||||
| @@ -115,13 +108,18 @@ var IBusManager = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _initPanelService: function(ibus, result) { | ||||
|     _initPanelService(ibus, result) { | ||||
|         let success = this._ibus.request_name_async_finish(result); | ||||
|         if (success) { | ||||
|             this._panelService = new IBus.PanelService({ connection: this._ibus.get_connection(), | ||||
|                                                          object_path: IBus.PATH_PANEL }); | ||||
|             this._candidatePopup.setPanelService(this._panelService); | ||||
|             this._panelService.connect('update-property', Lang.bind(this, this._updateProperty)); | ||||
|             this._panelService.connect('update-property', this._updateProperty.bind(this)); | ||||
|             this._panelService.connect('set-cursor-location', (ps, x, y, w, h) => { | ||||
|                 let cursorLocation = { x, y, width: w, height: h }; | ||||
|                 this.emit('set-cursor-location', cursorLocation); | ||||
|             }); | ||||
|  | ||||
|             try { | ||||
|                 // IBus versions older than 1.5.10 have a bug which | ||||
|                 // causes spurious set-content-type emissions when | ||||
| @@ -129,11 +127,11 @@ var IBusManager = new Lang.Class({ | ||||
|                 // and hints defeating its intended semantics and | ||||
|                 // confusing users. We thus don't use it in that case. | ||||
|                 _checkIBusVersion(1, 5, 10); | ||||
|                 this._panelService.connect('set-content-type', Lang.bind(this, this._setContentType)); | ||||
|                 this._panelService.connect('set-content-type', this._setContentType.bind(this)); | ||||
|             } catch (e) { | ||||
|             } | ||||
|             // If an engine is already active we need to get its properties | ||||
|             this._ibus.get_global_engine_async(-1, null, Lang.bind(this, function(i, result) { | ||||
|             this._ibus.get_global_engine_async(-1, null, (i, result) => { | ||||
|                 let engine; | ||||
|                 try { | ||||
|                     engine = this._ibus.get_global_engine_async_finish(result); | ||||
| @@ -143,20 +141,20 @@ var IBusManager = new Lang.Class({ | ||||
|                     return; | ||||
|                 } | ||||
|                 this._engineChanged(this._ibus, engine.get_name()); | ||||
|             })); | ||||
|             }); | ||||
|             this._updateReadiness(); | ||||
|         } else { | ||||
|             this._clear(); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _updateReadiness: function() { | ||||
|     _updateReadiness() { | ||||
|         this._ready = (Object.keys(this._engines).length > 0 && | ||||
|                        this._panelService != null); | ||||
|         this.emit('ready', this._ready); | ||||
|     }, | ||||
|  | ||||
|     _engineChanged: function(bus, engineName) { | ||||
|     _engineChanged(bus, engineName) { | ||||
|         if (!this._ready) | ||||
|             return; | ||||
|  | ||||
| @@ -166,7 +164,7 @@ var IBusManager = new Lang.Class({ | ||||
|             return; | ||||
|  | ||||
|         this._registerPropertiesId = | ||||
|             this._panelService.connect('register-properties', Lang.bind(this, function(p, props) { | ||||
|             this._panelService.connect('register-properties', (p, props) => { | ||||
|                 if (!props.get(0)) | ||||
|                     return; | ||||
|  | ||||
| @@ -174,44 +172,44 @@ var IBusManager = new Lang.Class({ | ||||
|                 this._registerPropertiesId = 0; | ||||
|  | ||||
|                 this.emit('properties-registered', this._currentEngineName, props); | ||||
|             })); | ||||
|             }); | ||||
|     }, | ||||
|  | ||||
|     _updateProperty: function(panel, prop) { | ||||
|     _updateProperty(panel, prop) { | ||||
|         this.emit('property-updated', this._currentEngineName, prop); | ||||
|     }, | ||||
|  | ||||
|     _setContentType: function(panel, purpose, hints) { | ||||
|     _setContentType(panel, purpose, hints) { | ||||
|         this.emit('set-content-type', purpose, hints); | ||||
|     }, | ||||
|  | ||||
|     activateProperty: function(key, state) { | ||||
|     activateProperty(key, state) { | ||||
|         this._panelService.property_activate(key, state); | ||||
|     }, | ||||
|  | ||||
|     getEngineDesc: function(id) { | ||||
|         if (!IBus || !this._ready || !this._engines.hasOwnProperty(id)) | ||||
|     getEngineDesc(id) { | ||||
|         if (!this._ready || !this._engines.hasOwnProperty(id)) | ||||
|             return null; | ||||
|  | ||||
|         return this._engines[id]; | ||||
|     }, | ||||
|  | ||||
|     setEngine: function(id, callback) { | ||||
|     setEngine(id, callback) { | ||||
|         // Send id even if id == this._currentEngineName | ||||
|         // because 'properties-registered' signal can be emitted | ||||
|         // while this._ibusSources == null on a lock screen. | ||||
|         if (!IBus || !this._ready) { | ||||
|         if (!this._ready) { | ||||
|             if (callback) | ||||
|                 callback(); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         this._ibus.set_global_engine_async(id, this._MAX_INPUT_SOURCE_ACTIVATION_TIME, | ||||
|                                            null, callback); | ||||
|                                            null, callback || null); | ||||
|     }, | ||||
|  | ||||
|     preloadEngines: function(ids) { | ||||
|         if (!IBus || !this._ibus || ids.length == 0) | ||||
|     preloadEngines(ids) { | ||||
|         if (!this._ibus || ids.length == 0) | ||||
|             return; | ||||
|  | ||||
|         if (this._preloadEnginesId != 0) { | ||||
| @@ -221,7 +219,7 @@ var IBusManager = new Lang.Class({ | ||||
|  | ||||
|         this._preloadEnginesId = | ||||
|             Mainloop.timeout_add_seconds(this._PRELOAD_ENGINES_DELAY_TIME, | ||||
|                                          Lang.bind(this, function() { | ||||
|                                          () => { | ||||
|                                              this._ibus.preload_engines_async( | ||||
|                                                  ids, | ||||
|                                                  -1, | ||||
| @@ -229,7 +227,7 @@ var IBusManager = new Lang.Class({ | ||||
|                                                  null); | ||||
|                                              this._preloadEnginesId = 0; | ||||
|                                              return GLib.SOURCE_REMOVE; | ||||
|                                          })); | ||||
|                                          }); | ||||
|     }, | ||||
| }); | ||||
| Signals.addSignalMethods(IBusManager.prototype); | ||||
|   | ||||
							
								
								
									
										213
									
								
								js/misc/inputMethod.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								js/misc/inputMethod.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,213 @@ | ||||
| // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- | ||||
| const Clutter = imports.gi.Clutter; | ||||
| const IBus = imports.gi.IBus; | ||||
| const Keyboard = imports.ui.status.keyboard; | ||||
| const Lang = imports.lang; | ||||
| const Signals = imports.signals; | ||||
|  | ||||
| var InputMethod = new Lang.Class({ | ||||
|     Name: 'InputMethod', | ||||
|     Extends: Clutter.InputMethod, | ||||
|  | ||||
|     _init() { | ||||
|         this.parent(); | ||||
|         this._hints = 0; | ||||
|         this._purpose = 0; | ||||
|         this._enabled = true; | ||||
|         this._currentFocus = null; | ||||
|         this._ibus = IBus.Bus.new_async(); | ||||
|         this._ibus.connect('connected', this._onConnected.bind(this)); | ||||
|         this._ibus.connect('disconnected', this._clear.bind(this)); | ||||
|         this.connect('notify::can-show-preedit', this._updateCapabilities.bind(this)); | ||||
|  | ||||
|         this._inputSourceManager = Keyboard.getInputSourceManager(); | ||||
|         this._sourceChangedId = this._inputSourceManager.connect('current-source-changed', | ||||
|                                                                  this._onSourceChanged.bind(this)); | ||||
|         this._currentSource = this._inputSourceManager.currentSource; | ||||
|  | ||||
|         if (this._ibus.is_connected()) | ||||
|             this._onConnected(); | ||||
|     }, | ||||
|  | ||||
|     get currentFocus() { | ||||
|         return this._currentFocus; | ||||
|     }, | ||||
|  | ||||
|     _updateCapabilities() { | ||||
|         let caps = 0; | ||||
|  | ||||
|         if (this.can_show_preedit) | ||||
|             caps |= IBus.Capabilite.PREEDIT_TEXT; | ||||
|  | ||||
|         if (this._currentFocus) | ||||
|             caps |= IBus.Capabilite.FOCUS | IBus.Capabilite.SURROUNDING_TEXT; | ||||
|         else | ||||
|             caps |= IBus.Capabilite.PREEDIT_TEXT | IBus.Capabilite.AUXILIARY_TEXT | IBus.Capabilite.LOOKUP_TABLE | IBus.Capabilite.PROPERTY; | ||||
|  | ||||
|         if (this._context) | ||||
|             this._context.set_capabilities(caps); | ||||
|     }, | ||||
|  | ||||
|     _onSourceChanged() { | ||||
|         this._currentSource = this._inputSourceManager.currentSource; | ||||
|     }, | ||||
|  | ||||
|     _onConnected() { | ||||
|         this._ibus.create_input_context_async ('gnome-shell', -1, null, | ||||
|                                                this._setContext.bind(this)); | ||||
|     }, | ||||
|  | ||||
|     _setContext(bus, res) { | ||||
|         this._context = this._ibus.create_input_context_async_finish(res); | ||||
|         this._context.connect('enabled', () => { this._enabled = true }); | ||||
|         this._context.connect('disabled', () => { this._enabled = false }); | ||||
|         this._context.connect('commit-text', this._onCommitText.bind(this)); | ||||
|         this._context.connect('delete-surrounding-text', this._onDeleteSurroundingText.bind(this)); | ||||
|         this._context.connect('update-preedit-text', this._onUpdatePreeditText.bind(this)); | ||||
|  | ||||
|         this._updateCapabilities(); | ||||
|     }, | ||||
|  | ||||
|     _clear() { | ||||
|         this._context = null; | ||||
|         this._hints = 0; | ||||
|         this._purpose = 0; | ||||
|         this._enabled = false; | ||||
|     }, | ||||
|  | ||||
|     _emitRequestSurrounding() { | ||||
|         if (this._context.needs_surrounding_text()) | ||||
|             this.emit('request-surrounding'); | ||||
|     }, | ||||
|  | ||||
|     _onCommitText(context, text) { | ||||
|         this.commit(text.get_text()); | ||||
|     }, | ||||
|  | ||||
|     _onDeleteSurroundingText(context) { | ||||
|         this.delete_surrounding(); | ||||
|     }, | ||||
|  | ||||
|     _onUpdatePreeditText(context, text, pos, visible) { | ||||
|         let str = null; | ||||
|         if (visible && text != null) | ||||
|             str = text.get_text(); | ||||
|  | ||||
|         this.set_preedit_text(str, pos); | ||||
|     }, | ||||
|  | ||||
|     vfunc_focus_in(focus) { | ||||
|         this._currentFocus = focus; | ||||
|         if (this._context) { | ||||
|             this._context.focus_in(); | ||||
|             this._updateCapabilities(); | ||||
|             this._emitRequestSurrounding(); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     vfunc_focus_out() { | ||||
|         this._currentFocus = null; | ||||
|         if (this._context) { | ||||
|             this._context.focus_out(); | ||||
|             this._updateCapabilities(); | ||||
|         } | ||||
|  | ||||
|         // Unset any preedit text | ||||
|         this.set_preedit_text(null, 0); | ||||
|     }, | ||||
|  | ||||
|     vfunc_reset() { | ||||
|         if (this._context) { | ||||
|             this._context.reset(); | ||||
|             this._emitRequestSurrounding(); | ||||
|         } | ||||
|  | ||||
|         // Unset any preedit text | ||||
|         this.set_preedit_text(null, 0); | ||||
|     }, | ||||
|  | ||||
|     vfunc_set_cursor_location(rect) { | ||||
|         if (this._context) { | ||||
|             this._context.set_cursor_location(rect.get_x(), rect.get_y(), | ||||
|                                               rect.get_width(), rect.get_height()); | ||||
|             this._emitRequestSurrounding(); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     vfunc_set_surrounding(text, cursor, anchor) { | ||||
|         if (this._context) | ||||
|             this._context.set_surrounding_text(text, cursor, anchor); | ||||
|     }, | ||||
|  | ||||
|     vfunc_update_content_hints(hints) { | ||||
|         let ibusHints = 0; | ||||
|         if (hints & Clutter.InputContentHintFlags.COMPLETION) | ||||
|             ibusHints |= IBus.InputHints.WORD_COMPLETION; | ||||
|         if (hints & Clutter.InputContentHintFlags.SPELLCHECK) | ||||
|             ibusHints |= IBus.InputHints.SPELLCHECK; | ||||
|         if (hints & Clutter.InputContentHintFlags.AUTO_CAPITALIZATION) | ||||
|             ibusHints |= IBus.InputHints.UPPERCASE_SENTENCES; | ||||
|         if (hints & Clutter.InputContentHintFlags.LOWERCASE) | ||||
|             ibusHints |= IBus.InputHints.LOWERCASE; | ||||
|         if (hints & Clutter.InputContentHintFlags.UPPERCASE) | ||||
|             ibusHints |= IBus.InputHints.UPPERCASE_CHARS; | ||||
|         if (hints & Clutter.InputContentHintFlags.TITLECASE) | ||||
|             ibusHints |= IBus.InputHints.UPPERCASE_WORDS; | ||||
|  | ||||
|         this._hints = ibusHints; | ||||
|         if (this._context) | ||||
|             this._context.set_content_type(this._purpose, this._hints); | ||||
|     }, | ||||
|  | ||||
|     vfunc_update_content_purpose(purpose) { | ||||
|         let ibusPurpose = 0; | ||||
|         if (purpose == Clutter.InputContentPurpose.NORMAL) | ||||
|             ibusPurpose = IBus.InputPurpose.FREE_FORM; | ||||
|         else if (purpose == Clutter.InputContentPurpose.ALPHA) | ||||
|             ibusPurpose = IBus.InputPurpose.ALPHA; | ||||
|         else if (purpose == Clutter.InputContentPurpose.DIGITS) | ||||
|             ibusPurpose = IBus.InputPurpose.DIGITS; | ||||
|         else if (purpose == Clutter.InputContentPurpose.NUMBER) | ||||
|             ibusPurpose = IBus.InputPurpose.NUMBER; | ||||
|         else if (purpose == Clutter.InputContentPurpose.PHONE) | ||||
|             ibusPurpose = IBus.InputPurpose.PHONE; | ||||
|         else if (purpose == Clutter.InputContentPurpose.URL) | ||||
|             ibusPurpose = IBus.InputPurpose.URL; | ||||
|         else if (purpose == Clutter.InputContentPurpose.EMAIL) | ||||
|             ibusPurpose = IBus.InputPurpose.EMAIL; | ||||
|         else if (purpose == Clutter.InputContentPurpose.NAME) | ||||
|             ibusPurpose = IBus.InputPurpose.NAME; | ||||
|         else if (purpose == Clutter.InputContentPurpose.PASSWORD) | ||||
|             ibusPurpose = IBus.InputPurpose.PASSWORD; | ||||
|  | ||||
|         this._purpose = ibusPurpose; | ||||
|         if (this._context) | ||||
|             this._context.set_content_type(this._purpose, this._hints); | ||||
|     }, | ||||
|  | ||||
|     vfunc_filter_key_event(event) { | ||||
|         if (!this._context || !this._enabled) | ||||
|             return false; | ||||
|         if (!this._currentSource) | ||||
|             return false; | ||||
|  | ||||
|         let state = event.get_state(); | ||||
|         if (state & IBus.ModifierType.IGNORED_MASK) | ||||
|             return false; | ||||
|  | ||||
|         if (event.type() == Clutter.EventType.KEY_RELEASE) | ||||
|             state |= IBus.ModifierType.RELEASE_MASK; | ||||
|         this._context.process_key_event_async(event.get_key_symbol(), | ||||
|                                               event.get_key_code() - 8, // Convert XKB keycodes to evcodes | ||||
|                                               state, -1, null, | ||||
|                                               (context, res) => { | ||||
|                                                   try { | ||||
|                                                       let retval = context.process_key_event_async_finish(res); | ||||
|                                                       this.notify_key_event(event, retval); | ||||
|                                                   } catch (e) { | ||||
|                                                       log('Error processing key on IM: ' + e.message); | ||||
|                                                   } | ||||
|                                               }); | ||||
|         return true; | ||||
|     }, | ||||
| }); | ||||
| @@ -23,9 +23,9 @@ function getCompletions(text, commandHeader, globalCompletionList) { | ||||
|         if (matches) { | ||||
|             [expr, base, attrHead] = matches; | ||||
|  | ||||
|             methods = getPropertyNamesFromExpression(base, commandHeader).filter(function(attr) { | ||||
|                 return attr.slice(0, attrHead.length) == attrHead; | ||||
|             }); | ||||
|             methods = getPropertyNamesFromExpression(base, commandHeader).filter( | ||||
|                 attr => attr.slice(0, attrHead.length) == attrHead | ||||
|             ); | ||||
|         } | ||||
|  | ||||
|         // Look for the empty expression or partially entered words | ||||
| @@ -33,9 +33,9 @@ function getCompletions(text, commandHeader, globalCompletionList) { | ||||
|         matches = text.match(/^(\w*)$/); | ||||
|         if (text == '' || matches) { | ||||
|             [expr, attrHead] = matches; | ||||
|             methods = globalCompletionList.filter(function(attr) { | ||||
|                 return attr.slice(0, attrHead.length) == attrHead; | ||||
|             }); | ||||
|             methods = globalCompletionList.filter( | ||||
|                 attr => attr.slice(0, attrHead.length) == attrHead | ||||
|             ); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -175,7 +175,7 @@ function getPropertyNamesFromExpression(expr, commandHeader) { | ||||
|  | ||||
|         // Make sure propsUnique contains one key for every | ||||
|         // property so we end up with a unique list of properties | ||||
|         allProps.map(function(p){ propsUnique[p] = null; }); | ||||
|         allProps.map(p => propsUnique[p] = null); | ||||
|     } | ||||
|     return Object.keys(propsUnique).sort(); | ||||
| } | ||||
| @@ -233,7 +233,7 @@ function isUnsafeExpression(str) { | ||||
| // Returns a list of global keywords derived from str | ||||
| function getDeclaredConstants(str) { | ||||
|     let ret = []; | ||||
|     str.split(';').forEach(function(s) { | ||||
|     str.split(';').forEach(s => { | ||||
|         let base, keyword; | ||||
|         let match = s.match(/const\s+(\w+)\s*=/); | ||||
|         if (match) { | ||||
|   | ||||
| @@ -47,24 +47,33 @@ var KeyboardManager = new Lang.Class({ | ||||
|     // even as a Wayland compositor, we can't bump this. | ||||
|     MAX_LAYOUTS_PER_GROUP: 4, | ||||
|  | ||||
|     _init: function() { | ||||
|     _init() { | ||||
|         this._xkbInfo = getXkbInfo(); | ||||
|         this._current = null; | ||||
|         this._localeLayoutInfo = this._getLocaleLayout(); | ||||
|         this._layoutInfos = {}; | ||||
|         this._currentKeymap = null; | ||||
|     }, | ||||
|  | ||||
|     _applyLayoutGroup: function(group) { | ||||
|     _applyLayoutGroup(group) { | ||||
|         let options = this._buildOptionsString(); | ||||
|         let [layouts, variants] = this._buildGroupStrings(group); | ||||
|  | ||||
|         if (this._currentKeymap && | ||||
|             this._currentKeymap.layouts == layouts && | ||||
|             this._currentKeymap.variants == variants && | ||||
|             this._currentKeymap.options == options) | ||||
|             return; | ||||
|  | ||||
|         this._currentKeymap = {layouts, variants, options}; | ||||
|         Meta.get_backend().set_keymap(layouts, variants, options); | ||||
|     }, | ||||
|  | ||||
|     _applyLayoutGroupIndex: function(idx) { | ||||
|     _applyLayoutGroupIndex(idx) { | ||||
|         Meta.get_backend().lock_layout_group(idx); | ||||
|     }, | ||||
|  | ||||
|     apply: function(id) { | ||||
|     apply(id) { | ||||
|         let info = this._layoutInfos[id]; | ||||
|         if (!info) | ||||
|             return; | ||||
| @@ -80,7 +89,7 @@ var KeyboardManager = new Lang.Class({ | ||||
|         this._current = info; | ||||
|     }, | ||||
|  | ||||
|     reapply: function() { | ||||
|     reapply() { | ||||
|         if (!this._current) | ||||
|             return; | ||||
|  | ||||
| @@ -88,7 +97,7 @@ var KeyboardManager = new Lang.Class({ | ||||
|         this._applyLayoutGroupIndex(this._current.groupIndex); | ||||
|     }, | ||||
|  | ||||
|     setUserLayouts: function(ids) { | ||||
|     setUserLayouts(ids) { | ||||
|         this._current = null; | ||||
|         this._layoutInfos = {}; | ||||
|  | ||||
| @@ -119,7 +128,7 @@ var KeyboardManager = new Lang.Class({ | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _getLocaleLayout: function() { | ||||
|     _getLocaleLayout() { | ||||
|         let locale = GLib.get_language_names()[0]; | ||||
|         if (locale.indexOf('_') == -1) | ||||
|             locale = DEFAULT_LOCALE; | ||||
| @@ -136,18 +145,18 @@ var KeyboardManager = new Lang.Class({ | ||||
|             return { layout: DEFAULT_LAYOUT, variant: DEFAULT_VARIANT }; | ||||
|     }, | ||||
|  | ||||
|     _buildGroupStrings: function(_group) { | ||||
|     _buildGroupStrings(_group) { | ||||
|         let group = _group.concat(this._localeLayoutInfo); | ||||
|         let layouts = group.map(function(g) { return g.layout; }).join(','); | ||||
|         let variants = group.map(function(g) { return g.variant; }).join(','); | ||||
|         let layouts = group.map(g => g.layout).join(','); | ||||
|         let variants = group.map(g => g.variant).join(','); | ||||
|         return [layouts, variants]; | ||||
|     }, | ||||
|  | ||||
|     setKeyboardOptions: function(options) { | ||||
|     setKeyboardOptions(options) { | ||||
|         this._xkbOptions = options; | ||||
|     }, | ||||
|  | ||||
|     _buildOptionsString: function() { | ||||
|     _buildOptionsString() { | ||||
|         let options = this._xkbOptions.join(','); | ||||
|         return options; | ||||
|     } | ||||
|   | ||||
| @@ -105,15 +105,15 @@ function getLoginManager() { | ||||
| var LoginManagerSystemd = new Lang.Class({ | ||||
|     Name: 'LoginManagerSystemd', | ||||
|  | ||||
|     _init: function() { | ||||
|     _init() { | ||||
|         this._proxy = new SystemdLoginManager(Gio.DBus.system, | ||||
|                                               'org.freedesktop.login1', | ||||
|                                               '/org/freedesktop/login1'); | ||||
|         this._proxy.connectSignal('PrepareForSleep', | ||||
|                                   Lang.bind(this, this._prepareForSleep)); | ||||
|                                   this._prepareForSleep.bind(this)); | ||||
|     }, | ||||
|  | ||||
|     getCurrentSessionProxy: function(callback) { | ||||
|     getCurrentSessionProxy(callback) { | ||||
|         if (this._currentSession) { | ||||
|             callback (this._currentSession); | ||||
|             return; | ||||
| @@ -125,21 +125,20 @@ var LoginManagerSystemd = new Lang.Class({ | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         this._proxy.GetSessionRemote(sessionId, Lang.bind(this, | ||||
|             function(result, error) { | ||||
|                 if (error) { | ||||
|                     logError(error, 'Could not get a proxy for the current session'); | ||||
|                 } else { | ||||
|                     this._currentSession = new SystemdLoginSession(Gio.DBus.system, | ||||
|                                                                    'org.freedesktop.login1', | ||||
|                                                                    result[0]); | ||||
|                     callback(this._currentSession); | ||||
|                 } | ||||
|             })); | ||||
|         this._proxy.GetSessionRemote(sessionId, (result, error) => { | ||||
|             if (error) { | ||||
|                 logError(error, 'Could not get a proxy for the current session'); | ||||
|             } else { | ||||
|                 this._currentSession = new SystemdLoginSession(Gio.DBus.system, | ||||
|                                                                'org.freedesktop.login1', | ||||
|                                                                result[0]); | ||||
|                 callback(this._currentSession); | ||||
|             } | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     canSuspend: function(asyncCallback) { | ||||
|         this._proxy.CanSuspendRemote(function(result, error) { | ||||
|     canSuspend(asyncCallback) { | ||||
|         this._proxy.CanSuspendRemote((result, error) => { | ||||
|             if (error) { | ||||
|                 asyncCallback(false, false); | ||||
|             } else { | ||||
| @@ -150,8 +149,8 @@ var LoginManagerSystemd = new Lang.Class({ | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     listSessions: function(asyncCallback) { | ||||
|         this._proxy.ListSessionsRemote(function(result, error) { | ||||
|     listSessions(asyncCallback) { | ||||
|         this._proxy.ListSessionsRemote((result, error) => { | ||||
|             if (error) | ||||
|                 asyncCallback([]); | ||||
|             else | ||||
| @@ -159,18 +158,18 @@ var LoginManagerSystemd = new Lang.Class({ | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     suspend: function() { | ||||
|     suspend() { | ||||
|         this._proxy.SuspendRemote(true); | ||||
|     }, | ||||
|  | ||||
|     inhibit: function(reason, callback) { | ||||
|     inhibit(reason, callback) { | ||||
|         let inVariant = GLib.Variant.new('(ssss)', | ||||
|                                          ['sleep', | ||||
|                                           'GNOME Shell', | ||||
|                                           reason, | ||||
|                                           'delay']); | ||||
|         this._proxy.call_with_unix_fd_list('Inhibit', inVariant, 0, -1, null, null, | ||||
|             Lang.bind(this, function(proxy, result) { | ||||
|             (proxy, result) => { | ||||
|                 let fd = -1; | ||||
|                 try { | ||||
|                     let [outVariant, fdList] = proxy.call_with_unix_fd_list_finish(result); | ||||
| @@ -180,10 +179,10 @@ var LoginManagerSystemd = new Lang.Class({ | ||||
|                     logError(e, "Error getting systemd inhibitor"); | ||||
|                     callback(null); | ||||
|                 } | ||||
|             })); | ||||
|             }); | ||||
|     }, | ||||
|  | ||||
|     _prepareForSleep: function(proxy, sender, [aboutToSuspend]) { | ||||
|     _prepareForSleep(proxy, sender, [aboutToSuspend]) { | ||||
|         this.emit('prepare-for-sleep', aboutToSuspend); | ||||
|     } | ||||
| }); | ||||
| @@ -192,26 +191,26 @@ Signals.addSignalMethods(LoginManagerSystemd.prototype); | ||||
| var LoginManagerDummy = new Lang.Class({ | ||||
|     Name: 'LoginManagerDummy', | ||||
|  | ||||
|     getCurrentSessionProxy: function(callback) { | ||||
|     getCurrentSessionProxy(callback) { | ||||
|         // we could return a DummySession object that fakes whatever callers | ||||
|         // expect (at the time of writing: connect() and connectSignal() | ||||
|         // methods), but just never calling the callback should be safer | ||||
|     }, | ||||
|  | ||||
|     canSuspend: function(asyncCallback) { | ||||
|     canSuspend(asyncCallback) { | ||||
|         asyncCallback(false, false); | ||||
|     }, | ||||
|  | ||||
|     listSessions: function(asyncCallback) { | ||||
|     listSessions(asyncCallback) { | ||||
|         asyncCallback([]); | ||||
|     }, | ||||
|  | ||||
|     suspend: function() { | ||||
|     suspend() { | ||||
|         this.emit('prepare-for-sleep', true); | ||||
|         this.emit('prepare-for-sleep', false); | ||||
|     }, | ||||
|  | ||||
|     inhibit: function(reason, callback) { | ||||
|     inhibit(reason, callback) { | ||||
|         callback(null); | ||||
|     } | ||||
| }); | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user