Compare commits

...

353 Commits

Author SHA1 Message Date
Patrick Goldinger
d65b706f78 Release v0.3.10-beta03 2021-03-23 20:00:49 +01:00
Patrick Goldinger
9d820677db Update translations from Crowdin 2021-03-23 19:50:06 +01:00
Patrick Goldinger
69c52c00f6 Fix Ž key not available in Dvorak/Serbian (#381) 2021-03-23 19:43:41 +01:00
Patrick Goldinger
c8cf256577 Merge pull request #488 from florisboard/turkish-layouts
Add Turkish-Q / Turkish-F layouts
2021-03-23 14:35:11 +01:00
Patrick Goldinger
386a0999c4 Add Turkish-Q / Turkish-F layouts (#182) 2021-03-23 14:07:42 +01:00
Patrick Goldinger
d4ef2ea827 Merge pull request #486 from Netscaping/patch-1
Create gboard_night.json
2021-03-22 15:28:11 +01:00
Patrick Goldinger
381ec68e6c Merge pull request #482 from florisboard/rework-symbols-sizing
Rework symbols sizing when number row is enabled
2021-03-22 15:18:40 +01:00
Netscaping
a5706167b2 Create gboard_night.json
Since there is a Gboard Day theme I added the night version.
2021-03-22 15:17:46 +01:00
Patrick Goldinger
660871d6c8 Rework symbols sizing when number row is enabled 2021-03-22 00:55:47 +01:00
Patrick Goldinger
6607ad1739 Fix language selector size for keyboard height greater than 125% 2021-03-22 00:01:56 +01:00
Patrick Goldinger
55c1bc05f2 Add auto-switching to characters in symbols (#347) 2021-03-21 19:12:10 +01:00
Patrick Goldinger
7eb7f0ef80 Release v0.3.10-beta02 2021-03-19 19:42:08 +01:00
Patrick Goldinger
78e5e417ce Update README.md to include new beta track 2021-03-19 18:49:40 +01:00
Patrick Goldinger
ffbf7f8ea7 Merge pull request #454 from X-yl/clipboard-stuff
Added support for private clipboard and clipboard history
2021-03-19 17:49:16 +01:00
Patrick Goldinger
27cc4897c3 Merge pull request #479 from florisboard/fix-import-theme-crash
Fix import theme crash for big files
2021-03-19 17:18:49 +01:00
Patrick Goldinger
e5111a8efe Fix import theme crash for big files (#465) 2021-03-19 17:04:48 +01:00
Patrick Goldinger
80fd5ca84a Add beta metadata 2021-03-19 00:57:11 +01:00
x-yl
e8f2c6ce74 fix bug when history size is reduced 2021-03-18 23:21:50 +04:00
x-yl
5676cbf18e Stupid telegram, not using ContentResolver... smh 2021-03-18 17:50:48 +04:00
x-yl
2bdaea6189 revoke URI permissions, support API <25 2021-03-18 17:10:28 +04:00
Patrick Goldinger
da2287a739 Fix symbols layouts applying the caps state once again (#298) 2021-03-17 23:29:58 +01:00
Patrick Goldinger
3fafe0fac8 Release v0.3.10-beta01 2021-03-17 14:48:31 +01:00
x-yl
86042bb1e1 make popup buttons extend to the edge of popup 2021-03-17 15:30:22 +04:00
x-yl
c99673ff1d mime type fixes, remove from history after pressing delete 2021-03-17 15:20:12 +04:00
x-yl
8b89b27fb0 Misc. fixes 2021-03-17 10:57:56 +04:00
x-yl
b56c976fa0 code cleanup 2021-03-17 10:26:22 +04:00
x-yl
08889fdc60 docs 2021-03-17 10:20:21 +04:00
x-yl
e8d657e81c free storage after images leave clipboard 2021-03-17 09:38:03 +04:00
Patrick Goldinger
e581d6cbc4 Release v0.3.9 2021-03-16 20:15:45 +01:00
Patrick Goldinger
ec13d008fb Fix Greek uppercase bug (#452) 2021-03-16 20:03:51 +01:00
Patrick Goldinger
edfea1afcb Merge pull request #461 from florisboard/metadata-refresh
App Store presence metadata update
2021-03-16 16:45:10 +01:00
Patrick Goldinger
25fc23d721 Update store presence metadata to represent all implemented features 2021-03-16 16:34:54 +01:00
x-yl
bfcea8b718 Make pins persistent 2021-03-16 18:58:14 +04:00
Patrick Goldinger
c701141be2 Remove Italian store metadata 2021-03-16 15:15:04 +01:00
x-yl
7f07686b6c added proper mime type support to content provider 2021-03-16 16:38:01 +04:00
Patrick Goldinger
e5b956857e Merge pull request #459 from florisboard/beta-track-prep
Beta track preperation / App icon revamp
2021-03-16 11:53:12 +01:00
Patrick Goldinger
67236ef58d Add beta build variant 2021-03-16 03:17:34 +01:00
Patrick Goldinger
2da17a0654 Add new app icons for all build variants 2021-03-16 03:16:56 +01:00
Patrick Goldinger
1f3221a886 Merge pull request #457 from florisboard/one-handed-improvements
Add one-handed width option / Improve one-handed code
2021-03-15 20:13:02 +01:00
Patrick Goldinger
47f80d00c4 Add one-handed width option / Improve one-handed code 2021-03-15 17:49:18 +01:00
x-yl
e4ecc63b9d Added an abstraction around ClipData 2021-03-15 15:12:30 +04:00
Patrick Goldinger
d648c480b5 Merge pull request #455 from florisboard/theme-import-export
Add theme import/export / Fix theme editor jumping to top
2021-03-15 09:33:18 +01:00
Patrick Goldinger
9e26720674 Fix export UI not requesting to create document 2021-03-15 01:51:11 +01:00
Patrick Goldinger
a20c6bf148 Fix theme editor jumping to top (#379) 2021-03-15 00:57:35 +01:00
Patrick Goldinger
d2df5cfcdf Switch to Kotlin Result 2021-03-15 00:08:10 +01:00
Patrick Goldinger
93b5503dfc Fix file write bug and improve UI 2021-03-14 23:39:57 +01:00
Patrick Goldinger
4d4b54074a Improve import/export feature stability 2021-03-14 19:44:13 +01:00
Patrick Goldinger
904fd9b85a Add simple theme import/export functionality 2021-03-14 02:15:47 +01:00
x-yl
aacb33bd5d fixed issue when floris clipboard is disabled 2021-03-13 20:46:27 +04:00
x-yl
a0aa446988 Change back button 2021-03-13 18:06:10 +04:00
x-yl
fe086ed6d8 removed some debug logging 2021-03-13 17:39:11 +04:00
x-yl
64ddd0f421 fixed a stupid bug somehow 2021-03-13 17:35:35 +04:00
x-yl
40fe72e33c fix a few bugs 2021-03-13 14:55:58 +04:00
x-yl
b229970ec3 cleanup and documentation 2021-03-13 13:04:34 +04:00
x-yl
ec32c211f1 added delete and paste. pretty much feature complete now. 2021-03-12 23:39:23 +04:00
x-yl
e66b8a052a Pin/unpin support 2021-03-12 22:18:40 +04:00
x-yl
4a22c2698c added more ways to open clipboard context, fixed popups, refactored some code 2021-03-12 21:50:24 +04:00
x-yl
ae95bbd7c4 Added a mock popup 2021-03-11 18:03:08 +04:00
x-yl
0bdeeaa340 VERY work in progress 2021-03-11 10:24:40 +04:00
x-yl
92a885a34c Little bit of preference stuff 2021-03-11 10:24:35 +04:00
x-yl
bc2f03a920 light refactoring, some theme stuff 2021-03-11 10:24:26 +04:00
x-yl
f60827b634 small theme fix 2021-03-11 10:23:59 +04:00
x-yl
dcf81b27a0 Fixed animations, added image support, some documentation 2021-03-11 10:23:59 +04:00
x-yl
0d8601cb15 Text-only clipboard history implemented 2021-03-11 10:23:59 +04:00
x-yl
ecf3c6bf27 All clipboard actions now use FlorisClipboardManager. Added support for commiting non-text content. Added simple clipboard history layout. 2021-03-11 10:23:46 +04:00
Patrick Goldinger
e4f5fcf74b Merge pull request #451 from florisboard/alternate-shift-code
Add option for an alternate key code when caps state is active
2021-03-10 23:15:19 +01:00
Patrick Goldinger
15f0316839 Add shift variants for Colemak and Dvorak (#145) 2021-03-10 19:38:11 +01:00
Patrick Goldinger
93654c4f88 Add alternate key code option for FlorisKeyData (#145) 2021-03-10 19:37:50 +01:00
Patrick Goldinger
62fc549ea9 Fix crash on setup when no other IME is installed (#423) 2021-03-10 18:37:27 +01:00
Patrick Goldinger
d0dbd1cd4e Merge pull request #444 from florisboard/input-logic-rework
Input logic rework
2021-03-10 16:08:10 +01:00
Patrick Goldinger
af28f84b69 Fix delete precise char selection init value always 2 units (#448) 2021-03-10 12:09:18 +01:00
Patrick Goldinger
db7ee52029 Fix label text size decreasing bug in selection keyboard 2021-03-10 11:59:51 +01:00
Patrick Goldinger
7343617792 Fix space bar arrow movement initial count always 2 (#448) 2021-03-10 11:31:23 +01:00
Patrick Goldinger
5898d7006b Add internal batch edit level to prevent stuttering UI 2021-03-09 20:17:30 +01:00
Patrick Goldinger
058be7a169 Fix editor instance commit text logic 2021-03-09 02:03:17 +01:00
Patrick Goldinger
e6f2a25021 Improve input event logic / Fix extended popup bug 2021-03-08 19:51:37 +01:00
Patrick Goldinger
3a485a1574 Fix bugs and improve code 2021-03-08 01:09:43 +01:00
Patrick Goldinger
0ee0f24119 Add shift slide behavior / Improve performance of input logic 2021-03-07 19:35:08 +01:00
Patrick Goldinger
004e999259 Document InputEventDispatcher 2021-03-07 16:26:45 +01:00
Patrick Goldinger
11775c4619 Separate input event dispatcher logic into another file 2021-03-07 15:27:20 +01:00
Patrick Goldinger
177bad95b3 Clean up static KeyData object definitions 2021-03-06 19:33:53 +01:00
Patrick Goldinger
610526d845 Add multi-pointer support for gestures 2021-03-06 14:19:30 +01:00
Patrick Goldinger
55e489bc07 Complete overhaul of core input logic 2021-03-05 20:13:35 +01:00
Patrick Goldinger
589063be61 Rework cursor/selection implementation 2021-03-03 23:43:27 +01:00
Patrick Goldinger
aa73ac706a Update target SDK to API 30 (Android 11) 2021-03-01 20:13:59 +01:00
Patrick Goldinger
91cbbe74a3 Release v0.3.8 2021-02-28 23:57:29 +01:00
Patrick Goldinger
637d7fe503 Merge pull request #405 from florisboard/fix-memory-leaks
Fix memory management for Flictionaries & prediction algorithm
2021-02-28 23:44:59 +01:00
Patrick Goldinger
6a5e5a1708 Update translations from Crowdin 2021-02-28 19:48:32 +01:00
Patrick Goldinger
22fad5ba0b Fix logic bugs in prediction algorithm 2021-02-28 18:58:13 +01:00
Patrick Goldinger
f3d2c8257a Improve internal prediction algorithm memory management 2021-02-28 18:07:06 +01:00
Patrick Goldinger
bc89675269 Improve Flictionary load function 2021-02-28 15:29:23 +01:00
Patrick Goldinger
2603eb2b52 Fix end count bug in load function 2021-02-27 19:26:29 +01:00
Patrick Goldinger
38baac1af9 Correct move to start/end of line behavior (#340) 2021-02-27 14:22:03 +01:00
Patrick Goldinger
7e56094f5c Merge pull request #338 from X-yl/keyspacing
Add options for key spacing
2021-02-27 12:24:08 +01:00
Patrick Goldinger
af6ee13855 Sort language list in subtype add/edit dialog alphabetically (#361) 2021-02-27 12:15:42 +01:00
Patrick Goldinger
edb8d87fa0 Fix enter popup not working on symbol/numeric_advanced layout (#350) 2021-02-27 11:49:42 +01:00
Patrick Goldinger
ff35372945 Merge pull request #329 from florisboard/feat-suggestions-phase1
Suggestions implementation: Phase 1
2021-02-26 20:55:00 +01:00
Patrick Goldinger
b6edbf76d0 Merge branch 'master' into feat-suggestions-phase1 2021-02-26 20:40:41 +01:00
Patrick Goldinger
1bde28e288 Move Flictionary load to Dispatchers.IO context 2021-02-26 19:30:11 +01:00
Patrick Goldinger
aafb02cb68 Cleanup and improve prediction components 2021-02-26 18:58:10 +01:00
Patrick Goldinger
a07c91f089 Update precompiled Flictionary to contain basic profanity entries 2021-02-26 02:07:44 +01:00
Patrick Goldinger
1af3c1a210 Rework suggestion preferences UI for first experimental release 2021-02-26 01:07:30 +01:00
Patrick Goldinger
c13ec8aca9 Improve suggestion memory management 2021-02-25 20:39:51 +01:00
Patrick Goldinger
4a826cc0a3 Improve code and document NgramNode 2021-02-25 01:40:04 +01:00
Patrick Goldinger
1c9e4c0b4c Fix offset bug in EditorInstance 2021-02-25 01:21:04 +01:00
Patrick Goldinger
6cbbca5658 Add edit distance to prediction algorithm / Improve performance 2021-02-25 01:13:29 +01:00
Patrick Goldinger
a1b8550fe2 Rework Flictionary load() / Improve search algorithm 2021-02-24 03:04:51 +01:00
Patrick Goldinger
ab1007175d Update English Flictionary 2021-02-23 02:19:39 +01:00
Patrick Goldinger
4cf8b4af58 Add new Flictionary decoder / Add basic unigram prediction algorithm 2021-02-23 01:51:19 +01:00
Patrick Goldinger
2b001d9eb8 Add abstract implementation of NLP related interfaces 2021-02-15 18:56:55 +01:00
x-yl
286ddd9971 make key spacing for smartbar use dimens.xml 2021-02-13 22:41:39 +04:00
x-yl
d4c6411e1a Update margin for KeyboardRowView in onMeasure 2021-02-13 22:31:43 +04:00
Patrick Goldinger
915bcec0ee Merge pull request #343 from yashpalgoyal1304/patch-1
Added PR links
2021-02-13 18:09:38 +01:00
yashpalgoyal1304
93eb731bf0 Added PR links 2021-02-13 21:29:37 +05:30
x-yl
7a02f1c958 fix bug by changing desired to measured 2021-02-13 09:57:29 +04:00
x-yl
160d31beb0 Update KeyView layout in onMeasure instead of refreshing all layouts 2021-02-13 09:56:00 +04:00
x-yl
6d389b9a7f Added options for key spacing 2021-02-12 18:21:07 +04:00
Patrick Goldinger
3ea620a22e Merge pull request #333 from serebit/codebase-cleanup-final
Clean up codebase
2021-02-11 20:41:00 +01:00
Patrick Goldinger
94f9f3f3e7 Add Flictionary class / Add English binary dictionary file 2021-02-11 20:19:40 +01:00
Campbell Jones
8f28d0e81a Clean up codebase 2021-02-10 15:38:32 -05:00
Patrick Goldinger
07ce0c83fa Add phantom space behavior / Add Suggestion click functionality 2021-02-09 23:35:20 +01:00
Patrick Goldinger
c95244cc06 Merge pull request #331 from serebit/gitattributes
Add exception for bat files to gitattributes
2021-02-09 22:12:47 +01:00
Campbell Jones
3c2d427b1d Add exception for bat files to gitattributes 2021-02-09 15:19:25 -05:00
Patrick Goldinger
85da2141cb Complete overhaul of EditorInstance core class 2021-02-09 04:57:10 +01:00
Patrick Goldinger
cc9688a2dd Merge pull request #326 from serebit/master
Use haptic feedback by default if available
2021-02-08 20:46:13 +01:00
Campbell Jones
cd048af114 Use haptic feedback by default if available 2021-02-08 12:32:02 -05:00
Patrick Goldinger
4382dfc869 Merge pull request #319 from Salamandar/bépo
Edit bépo layout to add "êà" keys
2021-02-05 16:09:00 +01:00
Félix Piédallu
a622749b7b Edit bépo layout to add êà keys 2021-02-05 15:00:16 +01:00
Patrick Goldinger
1c2596147a Release v0.3.7 2021-02-04 23:56:56 +01:00
Patrick Goldinger
d355143ba1 Update selection keyboard icon (#316) 2021-02-04 23:47:00 +01:00
Patrick Goldinger
a9eb4c0eec Update translations from Crowdin 2021-02-04 19:57:17 +01:00
Patrick Goldinger
487a37bc66 Merge pull request #313 from eandersons/layout-lv_LV
Add QWERTY based extended popups for Latvian
2021-02-04 18:51:09 +01:00
Patrick Goldinger
85a54e701e Merge pull request #317 from florisboard/improve-landscape-input-ui
Improve Landscape Input UI
2021-02-04 18:48:10 +01:00
Patrick Goldinger
2666acd4ae Improve Landscape Input UI 2021-02-04 18:17:58 +01:00
Edgars
ba72e6274f Add Euro sign to e extended popup 2021-02-04 07:47:30 +02:00
Edgars
e20ce07957 Add QWERTY based extended popups for Latvian 2021-02-04 07:32:52 +02:00
Patrick Goldinger
765a12537e Update extract edit UI strings to be more user-friendly 2021-02-03 22:37:36 +01:00
Patrick Goldinger
4845ce55b5 Fix Spanish extended popups (#251) 2021-02-03 20:54:02 +01:00
Patrick Goldinger
47cd655d76 Update bug_report.md (#309) 2021-02-03 20:04:25 +01:00
Patrick Goldinger
d3edd3d332 Possible fix for background color bug (#274) 2021-02-03 19:50:16 +01:00
Patrick Goldinger
2d32364123 Fix cut/copy button not working in Smartbar (#308) 2021-02-03 19:07:40 +01:00
Patrick Goldinger
509308ec82 Fix welcome screen not appearing in rare cases (#310) 2021-02-03 18:54:53 +01:00
Patrick Goldinger
db65af5ea5 Fix symbols layouts applying the caps state (#298) 2021-02-03 00:50:14 +01:00
Patrick Goldinger
9a46cf9dff Improve one-handed toggle UX (#303) 2021-02-02 23:39:14 +01:00
Patrick Goldinger
2591eaa49d Fix Italian extended popups (#299) 2021-02-02 23:28:32 +01:00
Patrick Goldinger
57350b422d Release v0.3.6 2021-02-01 20:47:53 +01:00
Patrick Goldinger
fe8efa8496 Update translations from Crowdin 2021-02-01 20:07:28 +01:00
Patrick Goldinger
c5ce9ba252 Merge pull request #297 from serebit/master
Add Floris Black and Floris Black Borderless themes
2021-02-01 19:57:14 +01:00
Patrick Goldinger
4e39273812 Fix memory leaks and reset failures (#267) 2021-02-01 19:42:51 +01:00
Campbell Jones
43995f1ac5 Add Floris Black and Floris Black Borderless themes 2021-02-01 12:44:00 -05:00
Patrick Goldinger
3688f8e8dc Improve bottom offset feature (#58) 2021-01-31 23:40:50 +01:00
Patrick Goldinger
5cbbbc2295 Improve key hint label style (#213) 2021-01-31 17:05:06 +01:00
Karim
af08947929 Switch emoji and one-handed mode extended popup / Add Gboard Day theme (#258)
* switch positions between emojis and one hand keys

* new theme

* new theme

* Create gboard_like_day.json

* Rename gboard_like_day.json to gboard_day.json

* Changing label and name's value

* Changing label and name's value

Co-authored-by: Karim <52888633+itskarim@users.noreply.github.com>
Co-authored-by: Kareem <d.abdelkarim@outlook.com>
2021-01-31 15:25:10 +01:00
Patrick Goldinger
3e8a227320 Merge pull request #288 from florisboard/feat-improve-moving-gestures
Improve moving gestures detection and UX
2021-01-31 14:46:36 +01:00
Patrick Goldinger
adb69dc365 Improve moving gestures detection and UX 2021-01-31 03:52:16 +01:00
Patrick Goldinger
c2998c9a2e Merge branch 'feat-label-always-visible' 2021-01-30 19:23:39 +01:00
Patrick Goldinger
f801c31ebb Change bottom nav label visibility to always show 2021-01-30 19:23:02 +01:00
Patrick Goldinger
6b8652bcd9 Merge pull request #275 from GrbavaCigla/master
Serbian layouts
2021-01-30 12:16:59 +01:00
GrbavaCigla
65b5d252b6 copied hr.json to sr.json for extended popups 2021-01-30 11:09:22 +01:00
Patrick Goldinger
c5ae916ece Merge branch 'make-app-name-translatable' 2021-01-29 19:27:17 +01:00
Patrick Goldinger
de3fcceeaf Make app name translatable (#253) 2021-01-29 19:26:45 +01:00
florisboard-bot
f06ea18e89 Update Crowdin configuration file 2021-01-29 19:20:33 +01:00
GrbavaCigla
9d7754b8db Fixed layout 2021-01-29 18:51:02 +01:00
GrbavaCigla
2be1a328b6 Merge conflict solved 2021-01-29 17:45:29 +01:00
GrbavaCigla
9cd7931b3e Script moved to utils 2021-01-29 17:41:11 +01:00
Patrick Goldinger
03f9014b7c Fix machine-keyword Locale issue (#135) 2021-01-29 16:59:51 +01:00
Patrick Goldinger
62abefc36e Merge pull request #271 from kurdikeyboard/master
Added Kurdish Keyboard Qwerty(No-shift) layout
2021-01-29 15:37:54 +01:00
Patrick Goldinger
f5d79e8556 Fix semantic issues and asset naming 2021-01-29 15:33:59 +01:00
Patrick Goldinger
e68428ef11 Merge branch 'master' of https://github.com/kurdikeyboard/florisboard into kurdikeyboard-master 2021-01-29 15:15:04 +01:00
Patrick Goldinger
1cfde9c2b9 Merge pull request #276 from florisboard/feat-extract-edit-layout
Add ExtractEditLayout support
2021-01-29 15:12:42 +01:00
Patrick Goldinger
765a596eb2 Add ExtractEditLayout support 2021-01-29 14:59:27 +01:00
GrbavaCigla
a27035a81b Script for updating codes 2021-01-29 12:37:38 +01:00
GrbavaCigla
380eaffb08 Fix config 2021-01-29 12:34:06 +01:00
GrbavaCigla
0e7eac2796 Added layouts to config.json 2021-01-29 12:13:03 +01:00
GrbavaCigla
6da344fd6c Added layouts 2021-01-29 12:04:24 +01:00
Goran Gharib
7787af69fd Added Kurdish Keyboard Qwerty(No-shift) layout 2021-01-29 06:33:48 +03:00
Patrick Goldinger
288bd61fb4 Fix theme creation crash (#266) 2021-01-28 19:12:24 +01:00
Patrick Goldinger
fe69c0f3e1 Fix language code not matching in iw.json 2021-01-28 17:52:07 +01:00
antonygggg
766c5efa95 Added Hebrew layout (#264)
* Update config.json

Added characterLayouts hebrew and defaultSubtypes he-IL

* Create hebrew.json

* Create he.json

* Create hebrew.json

* Update hebrew.json

Added modifier hebrew

* Update hebrew.json

* Update hebrew.json

* Update he.json

* Update hebrew.json

* Update hebrew.json

* Update hebrew.json

* Update hebrew.json

* Update hebrew.json

* Update hebrew.json

* Fix language code for Android and fix brackets

Co-authored-by: Patrick Goldinger <patrick.goldinger@pm.me>
2021-01-28 13:43:43 +01:00
Patrick Goldinger
35bd6e7c8d Merge pull request #254 from antonygggg/patch-1
Update CONTRIBUTING.md
2021-01-28 09:56:09 +01:00
antonygggg
23f14ab57d Update CONTRIBUTING.md 2021-01-28 08:59:00 +02:00
Patrick Goldinger
ac688a38ab Merge pull request #250 from florisboard/fix-utility-key-naming
Fix utility key naming
2021-01-27 23:57:39 +01:00
Patrick Goldinger
a2e393d7dd Fix utility key naming (#246) 2021-01-27 21:00:10 +01:00
Patrick Goldinger
ba8ebaf231 Merge pull request #247 from kisekinopureya/master
Add Turkish extended popups for QWERTY
2021-01-27 18:23:56 +01:00
Gökhan Özdemir
a0e381ed93 Merge branch 'master' into master 2021-01-27 17:10:46 +00:00
Patrick Goldinger
09833a3369 Merge pull request #244 from Iorvethe/master
Add Bulgarian layouts
2021-01-27 17:22:02 +01:00
kisekinopureya
f014b010d8 Add Turkish extended popups for QWERTY 2021-01-27 17:07:39 +03:00
Iorvethe
9512eb32f0 Add popups for Bulgarian layouts 2021-01-27 11:21:28 +01:00
Patrick Goldinger
82f99bd721 Fix context for the switch_key_mode string 2021-01-26 23:55:54 +01:00
bpetrov
1d710dfb85 Add Bulgarian (BDS) layout 2021-01-26 22:26:42 +01:00
bpetrov
1328eb1f05 Add Bulgarian(Phonetic) layout 2021-01-26 21:48:29 +01:00
Patrick Goldinger
1cda0662ae Release v0.3.5 2021-01-25 21:45:27 +01:00
Patrick Goldinger
11cacb25c8 Merge pull request #241 from florisboard/feat-switch-key-customization
Add ability to customize switch key (emoji, language)
2021-01-25 21:13:17 +01:00
Patrick Goldinger
c0207fd84e Add ability to customize switch key (emoji, language) (#79) 2021-01-25 20:54:15 +01:00
Patrick Goldinger
56d3acfc67 Merge pull request #240 from florisboard/improve-adaptive-theme
Improve adaptive theme / Fix color dialog cache bug in theme editor
2021-01-25 19:44:56 +01:00
Patrick Goldinger
a3e5ae9337 Fix color dialog cache problem in theme editor (#237) 2021-01-25 18:44:31 +01:00
Patrick Goldinger
7e84f71464 Improve adaptive theme coloring (#226) 2021-01-25 18:43:57 +01:00
Patrick Goldinger
eb88fbc981 Update translations from Crowdin 2021-01-25 00:07:12 +01:00
Patrick Goldinger
96320e6b06 Merge pull request #234 from florisboard/improve-theme-editor
Improve theme editor UI and UX
2021-01-24 21:01:24 +01:00
Patrick Goldinger
fee9c2a0ac Improve theme editor UI and UX 2021-01-24 19:40:07 +01:00
Patrick Goldinger
c74a5841ec Add ext popups for less-than and greater-than symbols (#219) 2021-01-24 02:37:04 +01:00
Patrick Goldinger
aab7a6e33a Fix theme group name input validation (again) 2021-01-24 02:20:28 +01:00
Patrick Goldinger
0ea59cf2ed Merge pull request #232 from florisboard/fix-space-bar-long-press
Fix space bar long press
2021-01-24 02:08:49 +01:00
Patrick Goldinger
1be6ce1ae8 Fix space bar long press 2021-01-24 02:05:02 +01:00
Patrick Goldinger
8d06bea6bb Merge pull request #231 from florisboard/feat-proper-loading-screen
Proper loading keyboard animation
2021-01-23 19:18:39 +01:00
Patrick Goldinger
4b1a0c9972 Improve startup loading animation 2021-01-23 19:13:14 +01:00
Patrick Goldinger
3d50ea59af Add wiki page reference in Theme Editor 2021-01-22 16:00:50 +01:00
Patrick Goldinger
83bef3aee9 Release v0.3.4 2021-01-21 23:05:57 +01:00
Patrick Goldinger
c365acb800 Add InputView placeholder loading animation 2021-01-21 21:18:33 +01:00
Patrick Goldinger
ef075151fb Merge pull request #218 from florisboard/fix-key-precise-swipe
Fix precise character deletion behaviour
2021-01-21 18:33:16 +01:00
Patrick Goldinger
5316e46ba6 Fix precise character deletion behaviour 2021-01-21 17:35:09 +01:00
Patrick Goldinger
467fb62067 Merge pull request #187 from RickyM7/master
Trying to add Brazilian Portuguese (pt-BR) Layout
2021-01-20 22:59:53 +01:00
Patrick Goldinger
75c59366a9 Extended popups now respect country code (#188)
This allows for country specific popups like e.g. pt-BR to override
pt default configuration.
2021-01-20 22:47:28 +01:00
Patrick Goldinger
6df6e25b15 Fix double key press bugs for space and shift (#170) 2021-01-19 23:39:51 +01:00
Patrick Goldinger
81d89cad8c Fix key hint bug (#211) 2021-01-19 23:09:22 +01:00
Patrick Goldinger
99954237f7 Merge pull request #212 from florisboard/feat-add-swipe-actions
Add new swipe actions / Improve gesture pref structure
2021-01-19 21:19:33 +01:00
Patrick Goldinger
b5e56642fc Add new swipe actions / Improve gesture pref structure 2021-01-19 20:03:10 +01:00
Patrick Goldinger
343525f259 Merge pull request #206 from florisboard/fix-delete-shift-width
Fix delete and shift key width for 9+ char rows
2021-01-18 20:35:13 +01:00
Patrick Goldinger
a5adad714a Merge pull request #202 from Salamandar/bépo
Add Bépo french keyboard layout
2021-01-18 19:55:50 +01:00
Félix Piédallu
67214cbdf1 Add Bépo french keyboard layout 2021-01-18 19:39:12 +01:00
Patrick Goldinger
3a0284f355 Fix delete and shift key width for 9+ char rows 2021-01-18 18:51:32 +01:00
Patrick Goldinger
eecada3118 Fix group name input not accepting colons 2021-01-18 17:59:02 +01:00
Patrick Goldinger
cdc8635793 Release v0.3.3 2021-01-17 22:56:24 +01:00
Patrick Goldinger
0ed3e7bd22 Update translations from Crowdin 2021-01-17 22:32:03 +01:00
Patrick Goldinger
18ac2dc0d8 Update CONTRIBUTING.md content adding info 2021-01-17 21:48:10 +01:00
Patrick Goldinger
c04ca29421 Merge pull request #198 from klausweiss/feature/pl-layout
Add extended popups for Polish
2021-01-17 19:54:34 +01:00
Patrick Goldinger
b6466daebb Merge branch 'master' into feature/pl-layout 2021-01-17 19:51:00 +01:00
Patrick Goldinger
d9dedc447f Merge pull request #184 from bertin0/romanian_layout
Add romanian layout, based on QWERTY (closes issue #121)
2021-01-17 19:21:55 +01:00
Patrick Goldinger
5dbd98ae9e Merge branch 'master' into romanian_layout 2021-01-17 19:18:49 +01:00
Patrick Goldinger
f8db145a63 Merge pull request #171 from tsiflimagas/greek_layout
Add Greek layout
2021-01-17 19:16:29 +01:00
Patrick Goldinger
563a24b7d1 Merge branch 'master' into greek_layout 2021-01-17 19:11:15 +01:00
Patrick Goldinger
5dbea21fab Merge pull request #167 from williamtheaker/wt.popup_character
Adds colon character to long press. Fixes #166
2021-01-17 19:01:08 +01:00
Patrick Goldinger
ce937c3f58 Merge pull request #137 from williamtheaker/wt.russian
Add Russian layout; Document adding new languages
2021-01-17 18:57:05 +01:00
Patrick Goldinger
439fdade51 Merge branch 'master' into wt.russian 2021-01-17 18:50:26 +01:00
Patrick Goldinger
a77531e483 Fix comma typo in hr.json 2021-01-17 18:47:35 +01:00
Patrick Goldinger
343646f0f8 Merge pull request #134 from HeDidNothingWrong/patch-2
Update config.json to include hr keyboard extension
2021-01-17 18:46:26 +01:00
Patrick Goldinger
91c2337633 Merge pull request #133 from HeDidNothingWrong/patch-1
Create hr.json
2021-01-17 18:45:28 +01:00
Patrick Goldinger
000c0f1e30 Merge pull request #162 from florisboard/feat-theme-rework
Theme rework (Milestone v0.4.0 / E) & Asset manager base (Milestone v0.4.0 / C)
2021-01-17 18:30:02 +01:00
Patrick Goldinger
2401b1c776 Add doc strings to some Theme classes 2021-01-17 18:26:50 +01:00
Patrick Goldinger
555e329447 Remove obsolete resources and pref declarations 2021-01-17 17:15:31 +01:00
Patrick Goldinger
a2b3033d04 Add input validation / Fix UI and logic bugs 2021-01-17 17:00:47 +01:00
Patrick Goldinger
1020fff6cd Implement create new theme fab option 2021-01-17 12:23:55 +01:00
Mikołaj Biel
6fa4fadf04 Add Polish layout 2021-01-17 10:21:03 +01:00
Patrick Goldinger
f386428acd Add license note for expandable fab library 2021-01-16 21:48:35 +01:00
Patrick Goldinger
f45540eab1 Add adaptive theme coloring 2021-01-16 21:44:33 +01:00
Patrick Goldinger
0d509f8cfb Add Theme Editor UI 2021-01-15 20:41:03 +01:00
Ricardo
68061f1aac Update pt-BR.json 2021-01-14 15:13:38 -03:00
Ricardo
c4ac4abd63 Brazilian Portuguese (pt-BR) Keyboard 2021-01-14 12:19:04 -03:00
Albert Geantă
5fd26affc9 Add romanian layout, based on QWERTY 2021-01-14 15:02:09 +02:00
tsiflimagas
198ae1fc7c Add Greek layout 2021-01-14 10:18:08 +02:00
Patrick Goldinger
1e9ce7ba54 Add basic Edit Theme UI implementation / Fix bugs 2021-01-14 01:30:27 +01:00
Willie Theaker
702785b7fc Fix incorrect character 2021-01-13 12:43:24 -08:00
Patrick Goldinger
8c37c6188b Add borderless theme presets (day & night) 2021-01-13 01:20:59 +01:00
Patrick Goldinger
69ad3e2352 Add basic Theme Manager UI 2021-01-13 01:20:30 +01:00
Willie Theaker
9161d1574d Oops misread issue 2021-01-11 14:56:14 -08:00
Willie Theaker
7ff7309e76 Adds colon character to long press. Fixes #166 2021-01-11 14:50:49 -08:00
Willie Theaker
6df803c239 Add long press characters 2021-01-11 13:15:45 -08:00
Patrick Goldinger
3385fe7cbd Add "Follow time" theme mode implementation 2021-01-11 19:57:50 +01:00
Patrick Goldinger
320b9e0751 Fix emoji keyboard view being default layout 2021-01-11 19:03:04 +01:00
Patrick Goldinger
9178207653 Improve KeyView theme attribute logic and performance
The KeyView now better caches and refreshes the theme of the key
according to its current state. Also, the Theme.getAttr() method
has been improved (both in terms of functionality and in performance).
2021-01-11 01:43:06 +01:00
Patrick Goldinger
90b0812ae4 Add basic Theme UI in Settings / Fix bugs
Does not include theme modification (yet)
2021-01-10 20:55:38 +01:00
Patrick Goldinger
fb03a82e45 Fix icon fill color not adapting to current Theme 2021-01-10 20:53:32 +01:00
Patrick Goldinger
f5a7220ba7 Adapt views to work with new theme logic 2021-01-10 13:47:52 +01:00
Patrick Goldinger
e413f3918e Add theme manager and new theme declaration 2021-01-10 13:45:51 +01:00
Patrick Goldinger
d25bdd8938 Add basic asset manager 2021-01-10 13:43:42 +01:00
Willie Theaker
1f84d08fa9 Add Russian layout; Document adding new langauges 2021-01-08 12:23:03 -08:00
HeDidNothingWrong
da9d68dd3b Update config.json
Update config for croatian extended popup
2021-01-08 18:49:21 +01:00
HeDidNothingWrong
1bc36ceec7 Update hr.json 2021-01-08 18:42:33 +01:00
HeDidNothingWrong
c57b60d00c Create hr.json
Croatian additional symbols (lowercase) - also applicable for Serbia, Slovenia, Bosnia. Casually combined with qwertz
2021-01-08 18:08:16 +01:00
Patrick Goldinger
e304fbd120 Update F-Droid info in README.md 2021-01-08 09:13:08 +01:00
Patrick Goldinger
7eb7c21e13 Merge pull request #122 from florisboard/feat-popup-layer
Rework popup UI implementation
2021-01-05 17:07:02 +01:00
Patrick Goldinger
710e7ca85e Fix overdraw issues
Overdraw caused high CPU usage (~25-50% of CPU when open but no
touch events). Now the CPU is only used to process input events and
execute any follow up events. If FlorisBoard is nw left open without
using it, CPU usage goes down to 0%.
2021-01-05 03:14:46 +01:00
Patrick Goldinger
207845d46f Rework popup UI implementation 2021-01-04 18:18:08 +01:00
Patrick Goldinger
707d54b6f4 Merge pull request #118 from yashx/border
Added Option to Hide keys border
2021-01-01 13:03:33 +01:00
Patrick Goldinger
c01f167d49 Merge pull request #117 from yashx/switchKeyboard
Added gesture option to quick switch to previous keyboard
2020-12-31 14:44:07 +01:00
Patrick Goldinger
176ca00f66 Merge pull request #119 from florisboard/feat-improve-layout-definition
Improve layout definition structure
2020-12-31 14:35:19 +01:00
Patrick Goldinger
081cfdb0ee Add new libraries to README and include license texts 2020-12-31 13:31:50 +01:00
Patrick Goldinger
d9f94aecac Add documentation / Improve Asset interface 2020-12-31 13:31:05 +01:00
yashx
6691706aed Added Option to Hide keys border #87 2020-12-31 17:46:45 +05:30
yashx
1b77138798 Added gesture option to quick switch to previous keyboard 2020-12-31 00:36:43 +05:30
Patrick Goldinger
07ebd04052 Adapt new extended popup structure to json files 2020-12-30 19:49:03 +01:00
Patrick Goldinger
40c2bfd819 Adopt improved keyboard definition of existing layouts 2020-12-30 03:22:27 +01:00
Patrick Goldinger
855ad47674 Add default extended popup mapping 2020-12-30 03:21:35 +01:00
Patrick Goldinger
e032e4acb8 Complete rework of the key data structure + popups
This rework is a very important one, as it solves many conflicts which
arised while implementing special keyboard layouts like dvorak, etc.

With the new data structure, popup keys carry around way less baggage,
but at the same time the structure around the keys have improved a lot and provide more useful information for the popup manager.
This includes that smart hint/accent prioritization is now working
theoretically, now it just needs to be defined correctly in the
json files.

Also the layout and extended popup json files got a authors field
which indicates who the author is. At the current time not very
important, but this is a small step in modularization into assets,
which are the very base of extension support (but that's still a
looong way).

Also some parts of the LayoutManager got a code cleanup, which makes
especially the merging of popups and hints better readable.
2020-12-30 03:20:57 +01:00
Patrick Goldinger
fe6930fb76 Release v0.3.2 2020-12-27 21:48:48 +01:00
Patrick Goldinger
6a10f0a01a Swap underscore and percentage sign in symbols layout (#101) 2020-12-27 21:39:51 +01:00
Patrick Goldinger
30717eeb90 Merge pull request #115 from yashx/cleanUp
InputView Code Cleanup
2020-12-27 21:26:09 +01:00
Patrick Goldinger
a664ab18c9 Merge pull request #114 from florisboard/feat-toggle-ext-popup-priority
Add hint priority mode setting
2020-12-27 21:00:11 +01:00
yashx
f50983d7ab InputView Code Cleanup 2020-12-28 01:02:56 +05:30
Patrick Goldinger
be858802c5 Fix old hint strings not removed from translated files 2020-12-27 20:03:29 +01:00
Patrick Goldinger
1ba690e53a Add hint priority mode setting (#39) 2020-12-27 19:44:24 +01:00
Patrick Goldinger
e16f81d350 Merge pull request #111 from yashx/timber
Switch to Timber for Logging
2020-12-27 18:27:10 +01:00
Patrick Goldinger
0de2039d72 Merge pull request #110 from florisboard/feat-private-mode
Add private mode (aka incognito mode) base
2020-12-27 16:23:02 +01:00
Patrick Goldinger
50b6a63468 Add private mode theme attributes 2020-12-27 16:16:53 +01:00
yashx
8cb644b418 Switch to Timber for Logging 2020-12-27 11:33:09 +05:30
Patrick Goldinger
f138124670 Add private mode (aka incognito mode) base (#106) 2020-12-26 23:24:27 +01:00
Patrick Goldinger
0f76d7f9df Merge pull request #107 from yashx/undoRedo
Added Undo Redo Buttons to Quick Actions in Smart Bar
2020-12-26 21:20:35 +01:00
Patrick Goldinger
27b9ec4628 Merge pull request #108 from florisboard/fix-typing-ux
Improve input UX and performance
2020-12-26 21:13:51 +01:00
Patrick Goldinger
ac733ed1dc Further improve input UX 2020-12-26 21:09:11 +01:00
yashx
6d15708f95 Switch to emulating hardware key press to paste 2020-12-26 22:03:54 +05:30
Patrick Goldinger
4377f3e41c Improve input performance by avoiding object allocation 2020-12-26 16:26:58 +01:00
Patrick Goldinger
1e690018d7 Merge pull request #100 from yashx/hardwareDelete
Switch to emulating hardware key press to delete
2020-12-26 11:37:32 +01:00
yashx
93bb5d2714 Added Undo Redo Buttons to Quick Actions in Smart Bar 2020-12-26 15:23:38 +05:30
Patrick Goldinger
ad2b08a342 Merge pull request #102 from The-Quantum-Alpha/patch-1
Create canadian_french.json
2020-12-26 03:55:21 +01:00
The Quantum Alpha
9e6508cee4 yeah, whatever with the config.json
🇨🇦fr
2020-12-25 21:49:12 -05:00
The Quantum Alpha
f735c138fb Create canadian_french.json
qwerty, but with éàè
2020-12-25 20:56:49 -05:00
yashx
d663947fec Switch to emulating hardware key press to delete 2020-12-26 01:31:22 +05:30
Patrick Goldinger
c800617e26 Merge pull request #99 from yashx/arrowsFix
Fix left and right arrow in clipboard cursor row
2020-12-25 20:57:54 +01:00
yashx
f47c7abaf3 Fix left and right arrow in clipboard cursor row 2020-12-26 00:27:40 +05:30
Patrick Goldinger
faf06ee234 Merge pull request #97 from yashx/deleteGesture
Delete Key gesture Improvents
2020-12-25 19:39:33 +01:00
Patrick Goldinger
07c41f9c27 Merge pull request #98 from florisboard/fix-key-delete-crash-on-hold
Fix key delete crash on holding down
2020-12-25 19:34:10 +01:00
Patrick Goldinger
80a0d9edab Fix scheduled timer crash in media and editing as well 2020-12-25 19:20:12 +01:00
Patrick Goldinger
cd943a9d4a Fix key delete crash on holding down
Fix key delete crash on holding down 2
2020-12-25 19:12:06 +01:00
yashx
c3d3107b12 Added Delete Words Precisely 2020-12-25 20:34:36 +05:30
yashx
b91fac8e76 Fix Delete current word 2020-12-25 18:11:30 +05:30
Patrick Goldinger
e2c784f4cf Merge pull request #92 from Surendrajat/ci 2020-12-24 16:07:57 +01:00
Surendrajat
f83bdd8a28 Enable automatic build CI workflows
fix executable permission

add badge in README too

upload artifact

fix name
2020-12-24 15:55:23 +01:00
Patrick Goldinger
dc10a459ca Release v0.3.1 2020-12-23 00:42:22 +01:00
Patrick Goldinger
4bea68f151 Update translations from Crowdin 2020-12-23 00:25:21 +01:00
Patrick Goldinger
daa8ce71ac Remove unused legacy subtype attributes
isAsciiCapable and isEmojiCapable have no real use in FlorisBoard,
and as the Android InputMethodSubtype class will never be used,
there's no reason to keep these in. Removing them lets the config
look more clean.
2020-12-22 20:51:51 +01:00
Patrick Goldinger
f06f475e89 Merge pull request #90 from jeremiah-miller/esperanto_layout
Added Esperanto keyboard layout
2020-12-22 20:21:27 +01:00
Jeremiah Miller
b784d0805c Merge branch 'master' into esperanto_layout 2020-12-22 11:39:47 -07:00
bbgun7
c245c6a37c Added popups to en.json so that all english characters can be accessed from the esperanto layout 2020-12-22 11:38:33 -07:00
bbgun7
264a287171 Fixed popups for esperanto (eo) layout, and added eo layout variant 2020-12-22 11:37:29 -07:00
Patrick Goldinger
82d82466c6 Add Dvorak keyboard layout (#72) 2020-12-21 23:30:32 +01:00
Patrick Goldinger
0242d24cd1 Add Colemak keyboard layout (#72) 2020-12-21 22:05:32 +01:00
Patrick Goldinger
76e683bfec Fix event listener NullPointerException (#73, #81) 2020-12-21 20:02:28 +01:00
Patrick Goldinger
ee1988d98e Merge pull request #91 from florisboard/feat-smartbar-rework
Smartbar rework (Milestone v0.4.0 / Module A)
2020-12-21 18:55:28 +01:00
Patrick Goldinger
fe5f0d18ac Update README.md feature roadmap 2020-12-21 18:50:09 +01:00
Patrick Goldinger
41527e4f23 Reimplement clipboard suggestions 2020-12-21 18:02:10 +01:00
Patrick Goldinger
66fb1c5873 Improve Smartbar display logic
- Smartbar now doesn't show in number, phone and phone2 layouts.
- Remove "show instead" preference as it does not do anything anymore.
- Change one-handed icon to a smartphone, which should improve clarity.
2020-12-21 00:25:54 +01:00
Patrick Goldinger
05103214dd Add debug specific build.gradle settings
- This allows to have both a debug and release version of FlorisBoard
  on a single device.
2020-12-20 21:58:34 +01:00
Patrick Goldinger
bf9e2e4438 Add number row as character layout extension
- Number row is now not part of the Smartbar anymore, but is an
  extension of the character layout, meaning that it is possible to
  show both a number row and the Smartbar.
- The Smartbar can now be disabled in the preferences.
- Adjust height calculation when number row is shown.
- Fix Smartbar not applying calculated height correctly.
2020-12-20 19:58:23 +01:00
Patrick Goldinger
4209bdcfbe Fix syntax error in Hungarian extended popup list 2020-12-20 19:55:12 +01:00
bbgun7
31db482bb4 Added extended popups for esperanto layout 2020-12-19 21:06:44 -07:00
bbgun7
e33499dab5 Added Esperanto keyboard layout 2020-12-19 13:50:30 -07:00
Patrick Goldinger
92b99ff34e Rework Smartbar code base and layout XML
- The Smartbar XML layout has been completely changed and is now
  pretty solid.
- SmartbarManager's tasks have been split up: UI related things
  and the management of the state are now managed within the
  SmartbarView, setting the values and listening to events is now done within TextInputManager. Removing SmartbarManager was an important
  step because the code and logic was just a pure mess.
- SmartbarView is now responsible to manage the state, show and hide
  features based on various parameters from the keyboard core.
2020-12-17 23:09:09 +01:00
Patrick Goldinger
f991c6479b Add feature roadmap to README.md 2020-12-13 23:58:51 +01:00
Patrick Goldinger
5a45b1600a Merge pull request #75 from zoli111/master
Add Hungarian layout
2020-12-13 23:17:39 +01:00
zoli111
79f884b2a0 Fix Hungarian layout 2020-12-10 18:46:59 +01:00
zoli111
22330ad67b Add Hungarian layout 2020-12-08 22:32:34 +01:00
Patrick Goldinger
7f50a5aa77 Update CONTRIBUTING.md
Remove "!" preceding Crowdin link as it was treated as image.
2020-12-08 02:06:06 +01:00
Patrick Goldinger
de389918be Release v0.3.0 2020-12-06 23:48:59 +01:00
Patrick Goldinger
4a57829105 Update translations from Crowdin 2020-12-06 23:29:30 +01:00
Patrick Goldinger
bc6ca8c7fc Improve precise character delete swipe (#25)
- Lowered distance threshold for move swipes
- Fix delete swipe not recognized when only one character was selected
2020-12-05 20:41:36 +01:00
Patrick Goldinger
0ffe0c915e Fix symbol hint not accounting for missing shift (#68)
- The symbols are now correctly taken from the symbol layout, without
  the switch to symbol2 and delete key.
2020-12-04 18:56:38 +01:00
Patrick Goldinger
392699f333 Fix keyboard UI not displaying correctly for rtl languages (#69) 2020-12-04 18:38:23 +01:00
Patrick Goldinger
cf801c02fd Merge pull request #66 from HeiWiper/master
Added an Arabic keyboard and mod, and changed persian ID to 801
2020-12-04 18:04:33 +01:00
Patrick Goldinger
665356f77b Major improvements in auto sizing(#48, #50, #61)
- Keyboard height can - besides of the preset values - be set between
  50% and 150%
- Key font size range has been extended to 50%-150%
- Key font size multiplier now affects the popup as well
- Key popup size scales with the keyboard height value
- Fix key size algorithm not working on xxhdpi screens
- Improve key popup manager backend
2020-12-03 23:43:18 +01:00
Hei Wiper
48c356a569 Added an Arabic keyboard and mod, and changed persian ID to 801 2020-12-03 23:11:52 +01:00
Patrick Goldinger
60eb92e92a Fix bottom offset not applying correctly (#58) 2020-12-02 19:57:19 +01:00
Patrick Goldinger
602ffc2a93 Add option to adjust font size multiplier (#48)
- Also improve default key font size calculation parameters.
2020-12-02 18:27:59 +01:00
Patrick Goldinger
dbacc0e466 Fix release badge in README.md not pointing to releases 2020-12-01 20:53:05 +01:00
477 changed files with 26123 additions and 5484 deletions

17
.editorconfig Normal file
View File

@@ -0,0 +1,17 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
max_line_length = 120
trim_trailing_whitespace = true
[{*.har,*.json}]
indent_size = 2
[*.kt]
ij_kotlin_name_count_to_use_star_import = 99
ij_kotlin_name_count_to_use_star_import_for_members = 99

3
.gitattributes vendored
View File

@@ -1 +1,2 @@
* text=auto eol=lf
* text=auto eol=lf
*.bat text=auto eol=crlf

View File

@@ -15,18 +15,21 @@ assignees: ''
- Thank you for your help in making FlorisBoard better!
-->
**Environment information**
- FlorisBoard Version: <!-- e.g. 0.1.0 -->
- Install Source: <!-- Google PlayStore/F-Droid/GitHub/? -->
- Device: <!-- e.g. OnePlus 7T -->
- Android version, ROM: <!-- e.g. 10, Stock -->
#### Short description
Describe the bug in a short but concise way.
**Steps to reproduce**
#### Steps to reproduce
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
#### Environment information
- FlorisBoard Version: <!-- e.g. 0.3.6 -->
- Install Source: <!-- Google PlayStore/F-Droid/GitHub/? -->
- Device: <!-- e.g. OnePlus 7T -->
- Android version, ROM: <!-- e.g. 10, Stock -->
<!-- (remove this line if you paste a log)
```
If applicable, paste the captured debug log here.

32
.github/workflows/android.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: FlorisBoard CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build with Gradle
run: ./gradlew clean assemble
- uses: actions/upload-artifact@v2
with:
name: app-debug.apk
path: app/build/outputs/apk/debug/app-debug.apk

View File

@@ -14,7 +14,7 @@ love to hear from you!
## Translations
To make FlorisBoard accessible in as many languages as possible, the
platform ![Crowdin](https://crowdin.florisboard.patrickgold.dev) is used
platform [Crowdin](https://crowdin.florisboard.patrickgold.dev) is used
to crowdsource and manage translations. This is the only source of
translations from now on - **PRs that add/update translations are no
longer accepted.** The list of languages in Crowdin covers the top 20
@@ -32,12 +32,29 @@ free to ask for help at any time!
## Adding a new keyboard layout / dictionary for locale
As FlorisBoard is currently in alpha stage, things might change
drastically. This also includes the config scheme of keyboard layouts.
To prevent incompatible configs because some features and structures may
change, please do not add this kind of content yet. As FlorisBoard's
state progresses and its core stabilizes, you will be able to add
keyboard layouts.
You can now officially add layouts to FlorisBoard as described below.
FlorisBoard's core has stabilized enough that adding new content is
safe, although there will be some changes in the future.
Currently you need to modify `app/src/main/assets/ime/config.json` to
add the filename of the language/layout to the `characterLayouts`
section and the `defaultSubtypes` section, making sure to include
the language's IETF BCP 47 code ([ISO 639-1 language code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
and [ISO 3166-1 region code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements)).
For example, Dutch as spoken in Belgium is `nl-be`. Use a unique value
for `id` to avoid possible crahses caused by duplicate ids.
Add the keyboard layout at `app/src/main/assets/ime/text/characters/<preferredLayout_name_here>.json`,
with `code` referring to the characters codepoint and `label` being the
respective unicode character.
Any accents or diacritics that should be exposed via long press can be
added at `assets/ime/text/characters/extended_popups/<languageTag_name_here>.json`.
For each key, you can add 1 main and several relevant accents. The main
accent should be used for accents which are important for the language
you add. The main field is used for determining if a hint or an accent
should take priority, so please make sure to leave main empty and just
use relevant for accents which are not-so important.
## Bug reporting

144
README.md
View File

@@ -1,18 +1,19 @@
<img align="left" width="80" height="80"
src="fastlane/metadata/android/en-US/images/icon.png" alt="App icon">
# FlorisBoard ![Release](https://img.shields.io/github/v/release/florisboard/florisboard) [![Crowdin](https://badges.crowdin.net/florisboard/localized.svg)](https://crowdin.florisboard.patrickgold.dev)
# FlorisBoard [![Crowdin](https://badges.crowdin.net/florisboard/localized.svg)](https://crowdin.florisboard.patrickgold.dev) ![FlorisBoard CI](https://github.com/florisboard/florisboard/workflows/FlorisBoard%20CI/badge.svg?event=push)
**FlorisBoard** is a free and open-source keyboard for Android 6.0+
devices. It aims at being modern, user-friendly and customizable while
fully respecting your privacy. Currently in alpha/early-beta state.
fully respecting your privacy. Currently in early-beta state.
## Public Alpha Test Programme
Wanna try it out on your device? Use one of the following options:
### Stable [![Latest stable release](https://img.shields.io/github/v/release/florisboard/florisboard)](https://github.com/florisboard/florisboard/releases/latest)
_A. IzzySoft's repo for F-Droid_:
Releases on this track are in general stable and ready for everyday use, except for features marked as experimental. Use one of the following options to receive FlorisBoard's stable releases:
[<img src="https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png" height="64" alt="IzzySoft repo badge">](https://apt.izzysoft.de/fdroid/index/apk/dev.patrickgold.florisboard)
_A. Get it on F-Droid_:
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" height="64" alt="F-Droid badge">](https://f-droid.org/packages/dev.patrickgold.florisboard)
_B. Google Play Public Alpha Test_:
@@ -31,24 +32,35 @@ tester, follow these steps:
4. Finished! You will receive future versions of FlorisBoard via Google
Play.
With the v0.4.0 release FlorisBoard will enter the public beta in GPlay, allowing to directly search
for and download FlorisBoard without prior joining the alpha group.
_C. Use the APK provided in the release section of this repo_
### Beta [![Latest beta release](https://img.shields.io/github/v/release/florisboard/florisboard?include_prereleases)](https://github.com/florisboard/florisboard/releases)
Releases on this track are also in general stable and should be ready for everyday use, though crashes and bugs are more likely to occur. Use releases from this track if you want to get new features faster and give feedback for brand-new stuff. Options to get beta releases:
_A. IzzySoft's repo for F-Droid_:
[<img src="https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png" height="64" alt="IzzySoft repo badge">](https://apt.izzysoft.de/fdroid/index/apk/dev.patrickgold.florisboard.beta)
_B. Use the APK provided in the release section of this repo_
### Giving feedback
If you want to give feedback to FlorisBoard, there are several ways to
do so, as listed [here](CONTRIBUTING.md#giving-general-feedback).
### Note on F-Droid release
FlorisBoard is currently available through Google Play and IzzySoft's
repo for F-Droid, but is in the inclusion process for the main F-Droid
repo. Planned proper F-Droid release is version 0.3.0.
---
<img align="right" height="256"
src="https://patrickgold.dev/media/previews/florisboard-preview-day.png"
alt="Preview image">
## Feature roadmap
## Implemented features
This list contains all implemented and fully functional features
FlorisBoard currently has to offer. For planned features and its
milestones, please refer to the [Feature roadmap](#feature-roadmap).
### Basics
* [x] Implementation of the keyboard core (InputMethodService)
@@ -59,47 +71,35 @@ alt="Preview image">
* [x] Key press sound/vibration
* [x] Portrait orientation support
* [x] Landscape orientation support (needs tweaks)
* [ ] Tablet screen support (0.4.0)
### Layouts
* [x] Latin character layouts (QWERTY, QWERTZ, AZERTY, Swiss, Spanish,
Norwegian, Swedish/Finnish, Icelandic, Danish); more coming in
future versions
* [x] Non-latin character layouts (Persian)
* [x] Latin character layouts (QWERTY, QWERTZ, AZERTY, Swiss, Spanish, Norwegian, Swedish/Finnish, Icelandic, Danish,
Hungarian, Croatian, Polish, Romanian, Colemak, Dvorak, Turkish-Q, Turkish-F, ...)
* [x] Non-latin character layouts (Arabic, Persian, Greek, Russian (JCUKEN))
* [x] Adapt to situation in app (password, url, text, etc. )
* [x] Special character layout(s)
* [x] Numeric layout
* [x] Numeric layout (advanced)
* [x] Phone number layout
* [x] Emoji layout (tweaks: 0.3.0)
* [x] Emoji layout
* [x] Emoticon layout
* [ ] Kaomoji layout (0.5.0)
### Preferences
* [x] Setup wizard
* [x] Preferences screen
* [x] Customize look and behaviour of keyboard
* [x] Theme presets (currently only day/night theme)
* [x] Theme presets (currently only day/night theme + borderless)
* [x] Theme customization
* [ ] Theme import/export (0.4.0 or 0.5.0)
* [x] Subtype selection (language/layout)
* [x] Keyboard behaviour preferences
* [ ] Text suggestion / Auto correct preferences (0.4.0 or 0.5.0)
* [x] Gesture preferences (0.3.0)
### Composing suggestions (0.4.0 or 0.5.0)
* [ ] Auto suggest words from precompiled dictionary
* [ ] Auto suggest words from user dictionary
* [ ] Auto suggest contacts
* [ ] Multilingual typing
* [x] Gesture preferences
### Other useful features
* [x] One-handed mode
* [x] Clipboard/cursor tools
* [x] Integrated number row / symbols in character layouts (0.3.0)
* [ ] Floating keyboard (0.4.0)
* [x] Gesture support (0.3.0)
* [ ] Glide typing (0.4.0)
* [x] Clipboard manager/history
* [x] Integrated number row / symbols in character layouts
* [x] Gesture support
* [x] Full integration in IME service list of Android (xml/method)
(integration is internal-only, because Android's default subtype
implementation not really allows for dynamic language/layout
@@ -108,11 +108,64 @@ alt="Preview image">
* [ ] (dev only) Generate well-structured documentation of code
* [ ] ...
Note:
## Feature roadmap
This section describes the features which are planned to be implemented
in FlorisBoard for the next major versions, modularized into sections.
Please note that the milestone due dates are only raw estimates and will
most likely be delayed back, even though I'm eager to stick to these as
close as possible.
(?) = not sure if it will be implemented
### [v0.4.0](https://github.com/florisboard/florisboard/milestone/4)
- Module A: Smartbar rework (Implemented with [#91])
- Ability to enable/disable Smartbar (features below thus only work if
Smartbar is enabled)
- Dynamic switching between clipboard tools and word suggestions
- Ability to show both the number row and word suggestions at once
- Better icons in quick actions
- Complete rework of the Smartbar code base and the Smartbar layout
definition in XML
(0.x.0) = planned version when feature will be implemented.
- Module B: Composing suggestions (Phase 1: [#329])
- Auto-suggestion of words based of precompiled dictionaries
- Management of custom dictionary entries
- Next-word suggestions by training language models. Data collected here is stored locally and never leaves
the user's device.
- Module C: Extension packs (base implementation with [#162])
- Ability to load dictionaries (and later potentially other cool
features too) only if needed to keep the core APK size small
- Currently unclear how exactly this will work, but this is definitely
a must-have feature
- Module D: Glide typing
- Swiping over the characters will automatically convert this to a word
- Possibly also add improvements based on the Flow keyboard
- Module E: Theme rework (Implemented with [#162])
- Themes are now based on the Asset schema
- Dynamic theme creation
- Different theme modes (`Always day`, `Always night`, `Follow system`
and `Follow time`)
- Define a separate theme both for day and night theme
- Adapt to app theme if possible
- Theme import/export
### [v0.5.0](https://github.com/florisboard/florisboard/milestone/5)
There's no exact roadmap yet but it is planned that the media part of
FlorisBoard (emojis, emoticons, kaomoji) gets a rework. Also as an extension
(requires v0.4.0/Module C) GIF support is planned.
### > v0.5.0
This is completely open as of now and will gather planned features as time
passes...
Backlog (currently not assigned to any milestone):
- Floating keyboard
[#91]: https://github.com/florisboard/florisboard/pull/91
[#162]: https://github.com/florisboard/florisboard/pull/162
[#329]: https://github.com/florisboard/florisboard/pull/329
## Contributing
Wanna contribute to FlorisBoard? That's great to hear! There are lots of
@@ -134,6 +187,25 @@ to get more information on this topic.
[square](https://github.com/square)
* [ColorPicker preference](https://github.com/jaredrummler/ColorPicker) by
[Jared Rummler](https://github.com/jaredrummler)
* [Timber](https://github.com/JakeWharton/timber) by
[JakeWharton](https://github.com/JakeWharton)
* [expandable-fab](https://github.com/nambicompany/expandable-fab) by
[Nambi](https://github.com/nambicompany)
## Usage notes for included binary dictionary files
All binary dictionaries included within this project in
(this)[app/src/main/assets/ime/dict) asset folder are built from various
sources, as stated below.
### Source 1: [wordfreq library by LuminosoInsight](https://github.com/LuminosoInsight/wordfreq):
`wordfreq` is a repository which provides both a Python library and raw
data (the wordlists). Only the data has been extracted in order to build
binary dictionary files from it. `wordfreq`'s data is licensed under the
Creative Commons Attribution-ShareAlike 4.0 license
(https://creativecommons.org/licenses/by-sa/4.0/).
For further information on what wordfreq's data depends on, see
(https://github.com/LuminosoInsight/wordfreq#license).
## License
```

1
app/.gitignore vendored
View File

@@ -1 +0,0 @@
/build

View File

@@ -1,51 +0,0 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "dev.patrickgold.florisboard"
minSdkVersion 23
targetSdkVersion 29
versionCode 18
versionName "0.2.6"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildFeatures {
viewBinding true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.preference:preference-ktx:1.1.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.12'
testImplementation 'androidx.test:core:1.3.0'
testImplementation 'org.mockito:mockito-core:1.10.19'
testImplementation 'org.mockito:mockito-inline:2.13.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'com.google.android:flexbox:2.0.1'
implementation "com.squareup.moshi:moshi-kotlin:1.9.2"
implementation 'com.google.android.material:material:1.2.1'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.7"
implementation 'com.jaredrummler:colorpicker:1.1.0'
}

102
app/build.gradle.kts Normal file
View File

@@ -0,0 +1,102 @@
plugins {
id("com.android.application") version "4.1.2"
kotlin("android") version "1.4.30"
kotlin("kapt") version "1.4.30"
}
android {
compileSdkVersion(30)
buildToolsVersion("30.0.3")
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
freeCompilerArgs = listOf("-Xallow-result-return-type") // enables use of kotlin.Result
}
defaultConfig {
applicationId = "dev.patrickgold.florisboard"
minSdkVersion(23)
targetSdkVersion(30)
versionCode(31)
versionName("0.3.10")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildFeatures {
viewBinding = true
}
buildTypes {
named("debug").configure {
applicationIdSuffix = ".debug"
versionNameSuffix = "-debug"
resValue("mipmap", "floris_app_icon", "@mipmap/ic_app_icon_debug")
resValue("mipmap", "floris_app_icon_round", "@mipmap/ic_app_icon_debug_round")
resValue("string", "floris_app_name", "FlorisBoard Debug")
}
create("beta") // Needed because by default the "beta" BuildType does not exist
named("beta").configure {
applicationIdSuffix = ".beta"
versionNameSuffix = "-beta03"
proguardFiles.add(getDefaultProguardFile("proguard-android-optimize.txt"))
resValue("mipmap", "floris_app_icon", "@mipmap/ic_app_icon_beta")
resValue("mipmap", "floris_app_icon_round", "@mipmap/ic_app_icon_beta_round")
resValue("string", "floris_app_name", "FlorisBoard Beta")
}
named("release").configure {
proguardFiles.add(getDefaultProguardFile("proguard-android-optimize.txt"))
resValue("mipmap", "floris_app_icon", "@mipmap/ic_app_icon_release")
resValue("mipmap", "floris_app_icon_round", "@mipmap/ic_app_icon_release_round")
resValue("string", "floris_app_name", "@string/app_name")
}
}
testOptions {
unitTests {
isIncludeAndroidResources = true
}
}
lintOptions {
isAbortOnError = false
}
}
dependencies {
implementation("androidx.activity", "activity-ktx", "1.2.1")
implementation("androidx.appcompat", "appcompat", "1.2.0")
implementation("androidx.core", "core-ktx", "1.3.2")
implementation("androidx.fragment", "fragment-ktx", "1.3.0")
implementation("androidx.preference", "preference-ktx", "1.1.1")
implementation("androidx.constraintlayout", "constraintlayout", "2.0.4")
implementation("androidx.lifecycle", "lifecycle-service", "2.2.0")
implementation("com.google.android", "flexbox", "2.0.1") // requires jcenter as of version 2.0.1
implementation("com.squareup.moshi", "moshi-kotlin", "1.11.0")
implementation("com.squareup.moshi", "moshi-adapters", "1.11.0")
implementation("com.google.android.material", "material", "1.3.0")
implementation("org.jetbrains.kotlinx", "kotlinx-coroutines-android", "1.4.2")
implementation("com.jaredrummler", "colorpicker", "1.1.0")
implementation("com.jakewharton.timber", "timber", "4.7.1")
implementation("com.nambimobile.widgets", "expandable-fab", "1.0.2")
implementation("androidx.room", "room-runtime", "2.2.6")
kapt("androidx.room", "room-compiler","2.2.6")
testImplementation("junit", "junit", "4.13.1")
testImplementation("org.mockito", "mockito-inline", "3.7.7")
testImplementation("org.robolectric", "robolectric", "4.5.1")
androidTestImplementation("androidx.test.ext", "junit", "1.1.2")
androidTestImplementation("androidx.test.espresso", "espresso-core", "3.3.0")
}

View File

@@ -1,21 +0,0 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@@ -1,13 +1,11 @@
package dev.patrickgold.florisboard
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*

View File

@@ -23,17 +23,16 @@
<application
android:name=".ime.core.FlorisApplication"
android:allowBackup="false"
android:extractNativeLibs="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:icon="@mipmap/floris_app_icon"
android:label="@string/floris_app_name"
android:roundIcon="@mipmap/floris_app_icon_round"
android:supportsRtl="true"
android:theme="@style/SettingsTheme">
<!-- IME service -->
<service
android:name="dev.patrickgold.florisboard.ime.core.FlorisBoard"
android:label="@string/app_name"
android:label="@string/floris_app_name"
android:permission="android.permission.BIND_INPUT_METHOD">
<meta-data
android:name="android.view.im"
@@ -47,19 +46,19 @@
<!-- Settings Activity -->
<activity
android:name="dev.patrickgold.florisboard.settings.SettingsMainActivity"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/floris_app_icon"
android:label="@string/settings__title"
android:launchMode="singleTask"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/floris_app_icon_round"
android:theme="@style/SettingsTheme"/>
<!-- Using an activity alias to disable/enable the app icon in the launcher -->
<activity-alias
android:name="dev.patrickgold.florisboard.SettingsLauncherAlias"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:icon="@mipmap/floris_app_icon"
android:label="@string/floris_app_name"
android:launchMode="singleTask"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/floris_app_icon_round"
android:targetActivity="dev.patrickgold.florisboard.setup.SetupActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
@@ -67,37 +66,59 @@
</intent-filter>
</activity-alias>
<!-- Theme Selector Activity -->
<activity
android:name="dev.patrickgold.florisboard.settings.ThemeManagerActivity"
android:icon="@mipmap/floris_app_icon"
android:label="@string/settings__title"
android:theme="@style/SettingsTheme"/>
<!-- Theme Editor Activity -->
<activity
android:name="dev.patrickgold.florisboard.settings.ThemeEditorActivity"
android:icon="@mipmap/floris_app_icon"
android:label="@string/settings__theme_editor__title"
android:theme="@style/SettingsTheme"/>
<!-- About Activity -->
<activity
android:name="dev.patrickgold.florisboard.settings.AboutActivity"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/floris_app_icon"
android:label="@string/about__title"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/floris_app_icon_round"
android:theme="@style/SettingsTheme"/>
<!-- Advanced Activity -->
<activity
android:name="dev.patrickgold.florisboard.settings.AdvancedActivity"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/floris_app_icon"
android:label="@string/settings__advanced__title"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/floris_app_icon_round"
android:theme="@style/SettingsTheme"/>
<!-- Setup Activity -->
<activity
android:name="dev.patrickgold.florisboard.setup.SetupActivity"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/floris_app_icon"
android:label="@string/setup__title"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/floris_app_icon_round"
android:theme="@style/SettingsTheme"/>
<!-- Crash Dialog Activity -->
<activity
android:name="dev.patrickgold.florisboard.crashutility.CrashDialogActivity"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/floris_app_icon"
android:label="@string/crash_dialog__title"
android:theme="@style/CrashDialogTheme"/>
<provider
android:name="dev.patrickgold.florisboard.ime.clip.provider.FlorisContentProvider"
android:authorities="dev.patrickgold.florisboard.provider.clip"
android:grantUriPermissions="true"
android:exported="false">
</provider>
</application>
</manifest>

View File

@@ -4,184 +4,224 @@
"qwerty": "QWERTY",
"qwertz": "QWERTZ",
"azerty": "AZERTY",
"spanish": "Spanish (QWERTY)",
"norwegian": "Norwegian (QWERTY)",
"swedish_finnish": "Swedish/Finnish (QWERTY)",
"arabic": "Arabic",
"bepo": "BÉPO",
"bulgarian_bds": "Bulgarian (BDS)",
"bulgarian_phonetic": "Bulgarian (Phonetic)",
"canadian_french": "Canadian French (QWERTY)",
"colemak": "Colemak",
"danish": "Danish (QWERTY)",
"dvorak": "Dvorak",
"esperanto": "Esperanto",
"esperanto_with_hx": "Esperanto with 'ĥ'",
"greek": "Ελληνικά",
"hebrew": "עברית",
"hungarian": "Hungarian (QWERTZ)",
"icelandic": "Icelandic (QWERTY)",
"kurdish": "کوردی",
"norwegian": "Norwegian (QWERTY)",
"persian": "Persian",
"jcuken_russian": "Russian (JCUKEN)",
"serbian_latin": "Serbian (QWERTZ)",
"serbian_cyrillic": "Serbian (ЉЊЕРТЗ)",
"spanish": "Spanish (QWERTY)",
"swedish_finnish": "Swedish/Finnish (QWERTY)",
"swiss_german": "Swiss German (QWERTZ)",
"swiss_french": "Swiss French (QWERTZ)",
"swiss_italian": "Swiss Italian (QWERTZ)",
"persian": "Persian"
"turkish_q": "Turkish-Q",
"turkish_f": "Turkish-F"
},
"defaultSubtypes": [
{
"id": 101,
"languageTag": "en-US",
"preferredLayout": "qwerty",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "qwerty"
},
{
"id": 102,
"languageTag": "en-UK",
"preferredLayout": "qwerty",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "qwerty"
},
{
"id": 103,
"languageTag": "en-CA",
"preferredLayout": "qwerty",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "qwerty"
},
{
"id": 104,
"languageTag": "en-AU",
"preferredLayout": "qwerty",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "qwerty"
},
{
"id": 201,
"languageTag": "de-DE",
"preferredLayout": "qwertz",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "qwertz"
},
{
"id": 202,
"languageTag": "de-AT",
"preferredLayout": "qwertz",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "qwertz"
},
{
"id": 203,
"languageTag": "de-CH",
"preferredLayout": "swiss_german",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "swiss_german"
},
{
"id": 301,
"languageTag": "fr-FR",
"preferredLayout": "azerty",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "azerty"
},
{
"id": 302,
"languageTag": "fr-CA",
"preferredLayout": "qwerty",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "canadian_french"
},
{
"id": 303,
"languageTag": "fr-CH",
"preferredLayout": "swiss_french",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "swiss_french"
},
{
"id": 401,
"languageTag": "it-IT",
"preferredLayout": "qwerty",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "qwerty"
},
{
"id": 402,
"languageTag": "it-CH",
"preferredLayout": "swiss_italian",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "swiss_italian"
},
{
"id": 501,
"languageTag": "es-ES",
"preferredLayout": "spanish",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "spanish"
},
{
"id": 502,
"languageTag": "es-US",
"preferredLayout": "spanish",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "spanish"
},
{
"id": 503,
"languageTag": "es-419",
"preferredLayout": "spanish",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "spanish"
},
{
"id": 601,
"languageTag": "pt-PT",
"preferredLayout": "qwerty",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "qwerty"
},
{
"id": 602,
"languageTag": "pt-BR",
"preferredLayout": "qwerty",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "qwerty"
},
{
"id": 701,
"languageTag": "nb-NO",
"preferredLayout": "norwegian",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "norwegian"
},
{
"id": 702,
"languageTag": "nn-NO",
"preferredLayout": "norwegian",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "norwegian"
},
{
"id": 711,
"languageTag": "sv-SE",
"preferredLayout": "swedish_finnish",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "swedish_finnish"
},
{
"id": 721,
"languageTag": "fi-FI",
"preferredLayout": "swedish_finnish",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "swedish_finnish"
},
{
"id": 731,
"languageTag": "da-DK",
"preferredLayout": "danish",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "danish"
},
{
"id": 741,
"languageTag": "is-IS",
"preferredLayout": "icelandic",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "icelandic"
},
{
"id": 800,
"id": 801,
"languageTag": "fa-FA",
"preferredLayout": "persian",
"isAsciiCapable": true,
"isEmojiCapable": true
"preferredLayout": "persian"
},
{
"id": 901,
"languageTag": "ar",
"preferredLayout": "arabic"
},
{
"id": 1001,
"languageTag": "hu",
"preferredLayout": "hungarian"
},
{
"id": 1101,
"languageTag": "eo",
"preferredLayout": "esperanto"
},
{
"id": 1201,
"languageTag": "hr",
"preferredLayout": "qwertz"
},
{
"id": 1301,
"languageTag": "ru",
"preferredLayout": "jcuken_russian"
},
{
"id": 1401,
"languageTag": "el",
"preferredLayout": "greek"
},
{
"id": 1501,
"languageTag": "ro",
"preferredLayout": "qwerty"
},
{
"id": 1601,
"languageTag": "pl",
"preferredLayout": "qwerty"
},
{
"id": 1701,
"languageTag": "bg-bg",
"preferredLayout": "bulgarian_phonetic"
},
{
"id": 1801,
"languageTag": "tr",
"preferredLayout": "qwerty"
},
{
"id": 1901,
"languageTag": "iw-IL",
"preferredLayout": "hebrew"
},
{
"id": 2001,
"languageTag": "ckb",
"preferredLayout": "kurdish"
},
{
"id": 2101,
"languageTag": "sr-RS",
"preferredLayout": "serbian_cyrillic"
},
{
"id": 2201,
"languageTag": "lv-LV",
"preferredLayout": "qwerty"
}
]
}

Binary file not shown.

View File

@@ -0,0 +1,47 @@
{
"type": "characters",
"name": "arabic",
"authors": [ "HeiWiper" ],
"direction": "rtl",
"modifier": "arabic",
"arrangement": [
[
{ "code": 1590, "label": "ض" },
{ "code": 1589, "label": "ص" },
{ "code": 1579, "label": "ث" },
{ "code": 1602, "label": "ق" },
{ "code": 1601, "label": "ف" },
{ "code": 1594, "label": "غ" },
{ "code": 1593, "label": "ع" },
{ "code": 1607, "label": "ه" },
{ "code": 1582, "label": "خ" },
{ "code": 1581, "label": "ح" },
{ "code": 1580, "label": "ج" }
],
[
{ "code": 1588, "label": "ش" },
{ "code": 1587, "label": "س" },
{ "code": 1610, "label": "ي" },
{ "code": 1576, "label": "ب" },
{ "code": 1604, "label": "ل" },
{ "code": 1575, "label": "ا" },
{ "code": 1578, "label": "ت" },
{ "code": 1606, "label": "ن" },
{ "code": 1605, "label": "م" },
{ "code": 1603, "label": "ك" },
{ "code": 1591, "label": "ط" }
],
[
{ "code": 1584, "label": "ذ" },
{ "code": 1569, "label": "ء" },
{ "code": 65157, "label": "ﺅ" },
{ "code": 1585, "label": "ر" },
{ "code": 1609, "label": "ى" },
{ "code": 1577, "label": "ة" },
{ "code": 1608, "label": "و" },
{ "code": 1586, "label": "ز" },
{ "code": 1592, "label": "ظ" },
{ "code": 1583, "label": "د" }
]
]
}

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "azerty",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -14,7 +15,8 @@
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" }
], [
],
[
{ "code": 113, "label": "q" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -25,20 +27,23 @@
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 109, "label": "m" }
], [
],
[
{ "code": 119, "label": "w" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },
{ "code": 118, "label": "v" },
{ "code": 98, "label": "b" },
{ "code": 110, "label": "n" },
{ "code": 39, "label": "'", "popup": [
{ "code": 8218, "label": "" },
{ "code": 8216, "label": "" },
{ "code": 8217, "label": "" },
{ "code": 8249, "label": "" },
{ "code": 8250, "label": "" }
] }
{ "code": 39, "label": "'", "popup": {
"relevant": [
{ "code": 8218, "label": "" },
{ "code": 8216, "label": "" },
{ "code": 8217, "label": "" },
{ "code": 8249, "label": "" },
{ "code": 8250, "label": "" }
]
} }
]
]
}

View File

@@ -0,0 +1,53 @@
{
"type": "characters",
"name": "bepo",
"authors": [ "salamandar" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 98, "label": "b" },
{ "code": 233, "label": "é" },
{ "code": 112, "label": "p" },
{ "code": 111, "label": "o" },
{ "code": 232, "label": "è" },
{ "code": 118, "label": "v" },
{ "code": 100, "label": "d" },
{ "code": 108, "label": "l" },
{ "code": 106, "label": "j" },
{ "code": 122, "label": "z" },
{ "code": 119, "label": "w" }
],
[
{ "code": 97, "label": "a" },
{ "code": 117, "label": "u" },
{ "code": 105, "label": "i" },
{ "code": 101, "label": "e" },
{ "code": 99, "label": "c" },
{ "code": 116, "label": "t" },
{ "code": 115, "label": "s" },
{ "code": 114, "label": "r" },
{ "code": 110, "label": "n" },
{ "code": 109, "label": "m" },
{ "code": 231, "label": "ç" }
],
[
{ "code": 234, "label": "ê" },
{ "code": 224, "label": "à" },
{ "code": 121, "label": "y" },
{ "code": 120, "label": "x" },
{ "code": 107, "label": "k" },
{ "code": 113, "label": "q", "popup": {
"relevant": [
{ "code": 8218, "label": "" },
{ "code": 8216, "label": "" },
{ "code": 8217, "label": "" },
{ "code": 8249, "label": "" },
{ "code": 8250, "label": "" }
]
} },
{ "code": 103, "label": "g" },
{ "code": 104, "label": "h" },
{ "code": 102, "label": "f" }
]
]
}

View File

@@ -0,0 +1,46 @@
{
"type": "characters",
"name": "bulgarian_bds",
"authors": [ "iorvethe" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 1099, "label": "ы" },
{ "code": 1091, "label": "у" },
{ "code": 1077, "label": "е" },
{ "code": 1080, "label": "и" },
{ "code": 1096, "label": "ш" },
{ "code": 1097, "label": "щ" },
{ "code": 1082, "label": "к" },
{ "code": 1089, "label": "с" },
{ "code": 1076, "label": "д" },
{ "code": 1079, "label": "з" },
{ "code": 1094, "label": "ц" }
],
[
{ "code": 1100, "label": "ь" },
{ "code": 1103, "label": "я" },
{ "code": 1072, "label": "а" },
{ "code": 1086, "label": "о" },
{ "code": 1078, "label": "ж" },
{ "code": 1075, "label": "г" },
{ "code": 1090, "label": "т" },
{ "code": 1085, "label": "н" },
{ "code": 1074, "label": "в" },
{ "code": 1084, "label": "м" },
{ "code": 1095, "label": "ч" }
],
[
{ "code": 1102, "label": "ю" },
{ "code": 1081, "label": "й" },
{ "code": 1098, "label": "ъ" },
{ "code": 1101, "label": "э" },
{ "code": 1092, "label": "ф" },
{ "code": 1093, "label": "х" },
{ "code": 1087, "label": "п" },
{ "code": 1088, "label": "р" },
{ "code": 1083, "label": "л" },
{ "code": 1073, "label": "б" }
]
]
}

View File

@@ -0,0 +1,44 @@
{
"type": "characters",
"name": "bulgarian_phonetic",
"authors": [ "iorvethe" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 1103, "label": "я" },
{ "code": 1074, "label": "в" },
{ "code": 1077, "label": "е" },
{ "code": 1088, "label": "р" },
{ "code": 1090, "label": "т" },
{ "code": 1098, "label": "ъ" },
{ "code": 1091, "label": "у" },
{ "code": 1080, "label": "и" },
{ "code": 1086, "label": "о" },
{ "code": 1087, "label": "п" },
{ "code": 1095, "label": "ч" }
],
[
{ "code": 1072, "label": "а" },
{ "code": 1089, "label": "с" },
{ "code": 1076, "label": "д" },
{ "code": 1092, "label": "ф" },
{ "code": 1075, "label": "г" },
{ "code": 1093, "label": "х" },
{ "code": 1081, "label": "й" },
{ "code": 1082, "label": "к" },
{ "code": 1083, "label": "л" },
{ "code": 1096, "label": "ш" },
{ "code": 1097, "label": "щ" }
],
[
{ "code": 1079, "label": "з" },
{ "code": 1100, "label": "ь" },
{ "code": 1094, "label": "ц" },
{ "code": 1078, "label": "ж" },
{ "code": 1073, "label": "б" },
{ "code": 1085, "label": "н" },
{ "code": 1084, "label": "м" },
{ "code": 1102, "label": "ю" }
]
]
}

View File

@@ -0,0 +1,43 @@
{
"type": "characters",
"name": "canadian_french",
"authors": [ "The-Quantum-Alpha" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 113, "label": "q" },
{ "code": 119, "label": "w" },
{ "code": 101, "label": "e" },
{ "code": 114, "label": "r" },
{ "code": 116, "label": "t" },
{ "code": 121, "label": "y" },
{ "code": 117, "label": "u" },
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 232, "label": "è" }
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
{ "code": 102, "label": "f" },
{ "code": 103, "label": "g" },
{ "code": 104, "label": "h" },
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 233, "label": "é" },
{ "code": 224, "label": "à" }
],
[
{ "code": 122, "label": "z" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },
{ "code": 118, "label": "v" },
{ "code": 98, "label": "b" },
{ "code": 110, "label": "n" },
{ "code": 109, "label": "m" }
]
]
}

View File

@@ -0,0 +1,45 @@
{
"type": "characters",
"name": "colemak",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 113, "label": "q" },
{ "code": 119, "label": "w" },
{ "code": 102, "label": "f" },
{ "code": 112, "label": "p" },
{ "code": 103, "label": "g" },
{ "code": 106, "label": "j" },
{ "code": 108, "label": "l" },
{ "code": 117, "label": "u" },
{ "code": 121, "label": "y" },
{ "code": 59, "label": ";", "popup": {
"relevant": [
{ "code": 58, "label": ":" }
]
}, "shift": { "code": 58, "label": ":" } }
],
[
{ "code": 97, "label": "a" },
{ "code": 114, "label": "r" },
{ "code": 115, "label": "s" },
{ "code": 116, "label": "t" },
{ "code": 100, "label": "d" },
{ "code": 104, "label": "h" },
{ "code": 110, "label": "n" },
{ "code": 101, "label": "e" },
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" }
],
[
{ "code": 122, "label": "z" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },
{ "code": 118, "label": "v" },
{ "code": 98, "label": "b" },
{ "code": 107, "label": "k" },
{ "code": 109, "label": "m" }
]
]
}

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "danish",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -15,7 +16,8 @@
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 229, "label": "å" }
], [
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -27,7 +29,8 @@
{ "code": 108, "label": "l" },
{ "code": 230, "label": "æ" },
{ "code": 248, "label": "ø" }
], [
],
[
{ "code": 122, "label": "z" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -0,0 +1,64 @@
{
"type": "characters",
"name": "dvorak",
"authors": [ "patrickgold" ],
"direction": "ltr",
"modifier": "dvorak",
"arrangement": [
[
{ "code": 64, "label": "@", "groupId": 101, "variation": "email_address" },
{ "code": 39, "label": "'", "groupId": 101, "variation": "normal", "popup": {
"relevant": [
{ "code": 33, "label": "!" },
{ "code": 34, "label": "\"" }
]
}, "shift": { "code": 34, "label": "\"" } },
{ "code": 39, "label": "'", "groupId": 101, "variation": "password", "popup": {
"relevant": [
{ "code": 33, "label": "!" },
{ "code": 34, "label": "\"" }
]
}, "shift": { "code": 34, "label": "\"" } },
{ "code": 47, "label": "/", "groupId": 101, "variation": "uri" },
{ "code": 44, "label": ",", "popup": {
"relevant": [
{ "code": 60, "label": "<" },
{ "code": 63, "label": "?" }
]
}, "shift": { "code": 60, "label": "<" } },
{ "code": 46, "label": ".", "popup": {
"relevant": [
{ "code": 62, "label": ">" }
]
}, "shift": { "code": 62, "label": ">" } },
{ "code": 112, "label": "p" },
{ "code": 121, "label": "y" },
{ "code": 102, "label": "f" },
{ "code": 103, "label": "g" },
{ "code": 99, "label": "c" },
{ "code": 114, "label": "r" },
{ "code": 108, "label": "l" }
],
[
{ "code": 97, "label": "a" },
{ "code": 111, "label": "o" },
{ "code": 101, "label": "e" },
{ "code": 117, "label": "u" },
{ "code": 105, "label": "i" },
{ "code": 100, "label": "d" },
{ "code": 104, "label": "h" },
{ "code": 116, "label": "t" },
{ "code": 110, "label": "n" },
{ "code": 115, "label": "s" }
],
[
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 120, "label": "x" },
{ "code": 98, "label": "b" },
{ "code": 109, "label": "m" },
{ "code": 119, "label": "w" },
{ "code": 118, "label": "v" }
]
]
}

View File

@@ -0,0 +1,49 @@
{
"type": "characters",
"name": "esperanto",
"authors": [ "jeremiah-miller", "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 349, "label": "ŝ", "popup": {
"main": { "code": 113, "label": "q" }
} },
{ "code": 285, "label": "ĝ", "popup": {
"main": { "code": 119, "label": "w" }
} },
{ "code": 101, "label": "e" },
{ "code": 114, "label": "r" },
{ "code": 116, "label": "t" },
{ "code": 365, "label": "ŭ", "popup": {
"main": { "code": 121, "label": "y" }
} },
{ "code": 117, "label": "u" },
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" }
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
{ "code": 102, "label": "f" },
{ "code": 103, "label": "g" },
{ "code": 104, "label": "h" },
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 309, "label": "ĵ" }
],
[
{ "code": 122, "label": "z" },
{ "code": 265, "label": "ĉ", "popup": {
"main": { "code": 120, "label": "x" }
} },
{ "code": 99, "label": "c" },
{ "code": 118, "label": "v" },
{ "code": 98, "label": "b" },
{ "code": 110, "label": "n" },
{ "code": 109, "label": "m" }
]
]
}

View File

@@ -0,0 +1,50 @@
{
"type": "characters",
"name": "esperanto_with_hx",
"authors": [ "jeremiah-miller", "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 349, "label": "ŝ", "popup": {
"main": { "code": 113, "label": "q" }
} },
{ "code": 285, "label": "ĝ", "popup": {
"main": { "code": 119, "label": "w" }
} },
{ "code": 101, "label": "e" },
{ "code": 114, "label": "r" },
{ "code": 116, "label": "t" },
{ "code": 365, "label": "ŭ", "popup": {
"main": { "code": 121, "label": "y" }
} },
{ "code": 117, "label": "u" },
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" }
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
{ "code": 102, "label": "f" },
{ "code": 103, "label": "g" },
{ "code": 104, "label": "h" },
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 309, "label": "ĵ" }
],
[
{ "code": 122, "label": "z" },
{ "code": 265, "label": "ĉ", "popup": {
"main": { "code": 120, "label": "x" }
} },
{ "code": 99, "label": "c" },
{ "code": 118, "label": "v" },
{ "code": 98, "label": "b" },
{ "code": 110, "label": "n" },
{ "code": 109, "label": "m" },
{ "code": 293, "label": "ĥ" }
]
]
}

View File

@@ -0,0 +1,24 @@
{
"type": "characters/extended_popups",
"name": "$default",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"~enter": {
"main": { "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
"relevant": [
{ "code": -216, "label": "toggle_one_handed_mode_right", "type": "system_gui" },
{ "code": -214, "label": "switch_to_clipboard_context", "type": "system_gui"}
]
},
"~left": {
"main": { "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
"relevant": [
{ "code": -215, "label": "toggle_one_handed_mode_left", "type": "system_gui" },
{ "code": -100, "label": "settings", "type": "system_gui" }
]
}
}
}
}

View File

@@ -0,0 +1,148 @@
{
"type": "characters/extended_popups",
"name": "ar",
"authors": [ "HeiWiper" ],
"mapping": {
"all": {
"ض": {
"relevant": [
{ "code": 1633, "label": "١" }
]
},
"ص": {
"relevant": [
{ "code": 1634, "label": "٢" }
]
},
"ث": {
"relevant": [
{ "code": 1635, "label": "٣" }
]
},
"ق": {
"relevant": [
{ "code": 1704, "label": "ڨ" },
{ "code": 1636, "label": "٤" }
]
},
"ف": {
"relevant": [
{ "code": 1701, "label": "ڥ" },
{ "code": 1700, "label": "ڤ" },
{ "code": 1698, "label": "ڢ" },
{ "code": 1637, "label": "٥" }
]
},
"غ": {
"relevant": [
{ "code": 1638, "label": "٦" }
]
},
"ع": {
"relevant": [
{ "code": 1639, "label": "٧" }
]
},
"ه": {
"relevant": [
{ "code": 1726, "label": "ھ" },
{ "code": 1640, "label": "٨" }
]
},
"خ": {
"relevant": [
{ "code": 1641, "label": "٩" }
]
},
"ح": {
"relevant": [
{ "code": 1632, "label": "٠" }
]
},
"ج": {
"relevant": [
{ "code": 1670, "label": "چ" }
]
},
"ش": {
"relevant": [
{ "code": 1692, "label": "ڜ" }
]
},
"ي": {
"relevant": [
{ "code": 1574, "label": "ئ" },
{ "code": 1609, "label": "ى" }
]
},
"ب": {
"relevant": [
{ "code": 1662, "label": "پ" }
]
},
"ل": {
"relevant": [
{ "code": 65275, "label": "لا" },
{ "code": 65273, "label": "لإ" },
{ "code": 65271, "label": "لأ" },
{ "code": 65269, "label": "لآ" }
]
},
"ا": {
"relevant": [
{ "code": 1570, "label": "آ" },
{ "code": 1569, "label": "ء" },
{ "code": 1571, "label": "أ" },
{ "code": 1573, "label": "إ" },
{ "code": 1649, "label": "ٱ" }
]
},
"ك": {
"relevant": [
{ "code": 1705, "label": "ک"},
{ "code": 1711, "label": "گ" }
]
},
"ى": {
"relevant": [
{ "code": 1574, "label": "ئ" }
]
},
"ز": {
"relevant": [
{ "code": 1688, "label": "ژ" }
]
},
"~right": {
"main": { "code": 1611, "label": "ً" },
"relevant": [
{ "code": 1622, "label": "ٖ" },
{ "code": 1648, "label": "ٰ" },
{ "code": 1619, "label": "ٓ" },
{ "code": 1615, "label": "ُ" },
{ "code": 1616, "label": "ِ" },
{ "code": 1614, "label": "َ" },
{ "code": 1600, "label": "ـ" },
{ "code": 1621, "label": "ٕ" },
{ "code": 1620, "label": "ٔ" },
{ "code": 1617, "label": "ّ" },
{ "code": 1612, "label": "ٌ" },
{ "code": 1613, "label": "ٍ" },
{ "code": 1618, "label": "ْ" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".ir"},
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,45 @@
{
"type": "characters/extended_popups",
"name": "bg",
"authors": [ "iorvethe" ],
"mapping": {
"all": {
"и": {
"relevant": [
{ "code": 1117, "label": "ѝ" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".bg" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,167 @@
{
"type": "characters/extended_popups",
"name": "ckb",
"authors": [ "GoRaN" ],
"mapping": {
"all": {
"ق": {
"relevant": [
{ "code": 1647, "label": "ٯ" }
]
},
"ئ": {
"relevant": [
{"code": 1569, "label": "ء" }
]
},
"ە": {
"relevant": [
{ "code": 1577, "label": "ة" },
{ "code": 1729, "label": "ـہ" }
]
},
"ر": {
"relevant": [
{ "code": 1685, "label": "ڕ" },
{ "code": 1682, "label": "ڒ" }
]
},
"ف": {
"relevant": [
{ "code": 1701, "label": "ڥ" },
{ "code": 1698, "label": "ڢ" },
{ "code": 1700, "label": "ڤ" },
{ "code": 1697, "label": "ڡ" }
]
},
"": {
"relevant": [
{ "code": 65163, "label": "ﺋ" },
{ "code": 1569, "label": "ء" },
{ "code": 65139, "label": "ﹳ" }
]
},
"ع": {
"relevant": [
{ "code": 1551, "label": "؏" },
{ "code": 1594, "label": "غ" }
]
},
"د": {
"relevant": [
{ "code": 1676, "label": "ڌ" },
{ "code": 64390, "label": "ﮆ" },
{ "code": 1584, "label": "ذ" },
{ "code": 1774, "label": "ۮ" }
]
},
"ه": {
"relevant": [
{ "code": 1726, "label": "ھ" }
]
},
"خ": {
"relevant": [
{ "code": 1567, "label": "؟" }
]
},
"س": {
"relevant": [
{ "code": 1589, "label": "ص" }
]
},
"ش": {
"relevant": [
{ "code": 1590, "label": "ض" }
]
},
"ب": {
"relevant": [
{ "code": 65010, "label": "ﷲ" },
{ "code": 65021, "label": "﷽" },
{ "code": 65019, "label": "ﷻ" }
]
},
"م": {
"relevant": [
{ "code": 65018, "label": "ﷺ" },
{ "code": 65012, "label": "ﷴ" }
]
},
"ل": {
"relevant": [
{ "code": 1718, "label": "ڶ" },
{ "code": 1719, "label": "ڷ" },
{ "code": 1717, "label": "ڵ" },
{ "code": 1720, "label": "ڸ" }
]
},
"ا": {
"relevant": [
{ "code": 1571, "label": "أ" },
{ "code": 1573, "label": "إ" },
{ "code": 1570, "label": "آ" },
{ "code": 1649, "label": "ٱ" }
]
},
"ک": {
"relevant": [
{ "code": 1706, "label": "ڪ" },
{ "code": 1603, "label": "ك"}
]
},
"ی": {
"relevant": [
{ "code": 1746, "label": "ے" },
{ "code": 1610, "label": "ي" },
{ "code": 1744, "label": "ې" },
{ "code": 1741, "label": "ۍ" },
{ "code": 1742, "label": "ێ" },
{ "code": 1597, "label": "ؽ" }
]
},
"ۆ": {
"relevant": [
{ "code": 1743, "label": "ۏ" },
{ "code": 1735, "label": "ۇ" },
{ "code": 1737, "label": "ۉ" },
{ "code": 1738, "label": "ۊ" },
{ "code": 1572, "label": "ؤ" },
{ "code": 1739, "label": "ۋ" }
]
},
"~right": {
"main": { "code": 1567, "label": "؟" },
"relevant": [
{ "code": 1600, "label": "ــ" },
{ "code": 33, "label": "!" },
{ "code": 1548, "label": "،" },
{ "code": 44, "label": "," },
{ "code": 1549, "label": "؍" },
{ "code": 1563, "label": "؛" },
{ "code": 59, "label": ";" },
{ "code": 58, "label": ":" },
{ "code": 64, "label": "@" },
{ "code": 35, "label": "#" },
{ "code": 42, "label": "*" },
{ "code": 95, "label": "_" },
{ "code": 45, "label": "-" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".krd"},
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" },
{ "code": -255, "label": ".iq" },
{ "code": -255, "label": ".tv" }
]
}
}
}
}

View File

@@ -1,96 +1,133 @@
{
"a": [
{ "code": 229, "label": "å" },
{ "code": 224, "label": " },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 230, "label": "æ" },
{ "code": 225, "label": "á" },
{ "code": 228, "label": "ä" }
],
"d": [
{ "code": 240, "label": "ð" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" },
{ "code": 234, "label": "ê" }
],
"i": [
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 236, "label": "ì" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 239, "label": "ï" }
],
"l": [
{ "code": 322, "label": "ł" }
],
"n": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
],
"o": [
{ "code": 248, "label": "ø" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 242, "label": "ò" },
{ "code": 245, "label": "õ" },
{ "code": 244, "label": "ô" },
{ "code": 243, "label": "ó" },
{ "code": 246, "label": "ö" }
],
"s": [
{ "code": 223, "label": "ß" },
{ "code": 347, "label": "ś" },
{ "code": 353, "label": "š" }
],
"u": [
{ "code": 250, "label": "ú" },
{ "code": 363, "label": "ū" },
{ "code": 251, "label": "û" },
{ "code": 252, "label": "ü" },
{ "code": 249, "label": "ù" }
],
"y": [
{ "code": 253, "label": "ý" },
{ "code": 255, "label": "ÿ" }
],
"æ": [
{ "code": 228, "label": "ä" }
],
"ø": [
{ "code": 246, "label": "ö" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "da",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 224, "label": "à" },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 229, "label": "å" },
{ "code": 230, "label": "æ" },
{ "code": 225, "label": "á" },
{ "code": 228, "label": "ä" }
]
},
"d": {
"relevant": [
{ "code": 240, "label": "ð" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" },
{ "code": 234, "label": "ê" }
]
},
"i": {
"relevant": [
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 236, "label": "ì" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 239, "label": "ï" }
]
},
"l": {
"relevant": [
{ "code": 322, "label": "ł" }
]
},
"n": {
"relevant": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
]
},
"o": {
"relevant": [
{ "code": 248, "label": "ø" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 242, "label": "ò" },
{ "code": 245, "label": "õ" },
{ "code": 244, "label": "ô" },
{ "code": 243, "label": "ó" },
{ "code": 246, "label": "ö" }
]
},
"s": {
"relevant": [
{ "code": 223, "label": "ß" },
{ "code": 347, "label": "ś" },
{ "code": 353, "label": "š" }
]
},
"u": {
"relevant": [
{ "code": 363, "label": "ū" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" },
{ "code": 252, "label": "ü" },
{ "code": 249, "label": "ù" }
]
},
"y": {
"relevant": [
{ "code": 253, "label": "ý" },
{ "code": 255, "label": "ÿ" }
]
},
"æ": {
"relevant": [
{ "code": 228, "label": "ä" }
]
},
"ø": {
"relevant": [
{ "code": 246, "label": "ö" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".eu" },
{ "code": -255, "label": ".dk" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,80 +1,109 @@
{
"a": [
{ "code": 228, "label": "ä" },
{ "code": 230, "label": " },
{ "code": 227, "label": "ã" },
{ "code": 229, "label": "å" },
{ "code": 257, "label": "ā" },
{ "code": 226, "label": "â" },
{ "code": 224, "label": "à" },
{ "code": 225, "label": "á" }
],
"c": [
{ "code": 231, "label": "ç" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
],
"i": [
{ "code": 237, "label": "í" },
{ "code": 236, "label": "ì" },
{ "code": 239, "label": "ï" },
{ "code": 238, "label": "î" },
{ "code": 299, "label": "ī" }
],
"n": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
],
"o": [
{ "code": 246, "label": "ö" },
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 245, "label": "õ" },
{ "code": 339, "label": "œ" },
{ "code": 243, "label": "ó" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" }
],
"s": [
{ "code": 223, "label": "ß" },
{ "code": 353, "label": "š" },
{ "code": 347, "label": "ś" }
],
"u": [
{ "code": 252, "label": "ü" },
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "de",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"main": { "code": 228, "label": "ä" },
"relevant": [
{ "code": 230, "label": "æ" },
{ "code": 227, "label": "ã" },
{ "code": 229, "label": "å" },
{ "code": 257, "label": "ā" },
{ "code": 226, "label": "â" },
{ "code": 224, "label": "à" },
{ "code": 225, "label": "á" }
]
},
"c": {
"relevant": [
{ "code": 231, "label": "ç" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
]
},
"i": {
"relevant": [
{ "code": 237, "label": "í" },
{ "code": 236, "label": "ì" },
{ "code": 239, "label": "ï" },
{ "code": 238, "label": "î" },
{ "code": 299, "label": "ī" }
]
},
"n": {
"relevant": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
]
},
"o": {
"main": { "code": 246, "label": "ö" },
"relevant": [
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 245, "label": "õ" },
{ "code": 339, "label": "œ" },
{ "code": 243, "label": "ó" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" }
]
},
"s": {
"main": { "code": 223, "label": "ß" },
"relevant": [
{ "code": 353, "label": "š" },
{ "code": 347, "label": "ś" }
]
},
"u": {
"main": { "code": 252, "label": "ü" },
"relevant": [
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".ch" },
{ "code": -255, "label": ".de" },
{ "code": -255, "label": ".at" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,80 @@
{
"type": "characters/extended_popups",
"name": "el",
"authors": [ "tsiflimagas" ],
"mapping": {
"all": {
"α": {
"relevant": [
{ "code": 940, "label": "ά" }
]
},
"ε": {
"relevant": [
{ "code": 941, "label": "έ" }
]
},
"η": {
"relevant": [
{ "code": 942, "label": "ή" }
]
},
"ι": {
"relevant": [
{ "code": 912, "label": "ΐ" },
{ "code": 970, "label": "ϊ" },
{ "code": 943, "label": "ί" }
]
},
"ο": {
"relevant": [
{ "code": 972, "label": "ό" }
]
},
"υ": {
"relevant": [
{ "code": 944, "label": "ΰ" },
{ "code": 971, "label": "ϋ" },
{ "code": 973, "label": "ύ" }
]
},
"ω": {
"relevant": [
{ "code": 974, "label": "ώ" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".gr" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,78 +1,107 @@
{
"a": [
{ "code": 224, "label": "à" },
{ "code": 230, "label": " },
{ "code": 227, "label": "ã" },
{ "code": 229, "label": "å" },
{ "code": 257, "label": "ā" },
{ "code": 225, "label": "á" },
{ "code": 226, "label": "â" },
{ "code": 228, "label": "ä" }
],
"c": [
{ "code": 231, "label": "ç" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
],
"i": [
{ "code": 237, "label": "í" },
{ "code": 236, "label": "ì" },
{ "code": 239, "label": "ï" },
{ "code": 238, "label": "î" },
{ "code": 299, "label": "ī" }
],
"n": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
],
"o": [
{ "code": 243, "label": "ó" },
{ "code": 245, "label": "õ" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 248, "label": "ø" },
{ "code": 242, "label": "ò" },
{ "code": 246, "label": "ö" },
{ "code": 244, "label": "ô" }
],
"s": [
{ "code": 223, "label": "ß" }
],
"u": [
{ "code": 250, "label": "ú" },
{ "code": 363, "label": "ū" },
{ "code": 252, "label": "ü" },
{ "code": 251, "label": "û" },
{ "code": 249, "label": "ù" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "en",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 230, "label": "æ" },
{ "code": 227, "label": "ã" },
{ "code": 229, "label": "å" },
{ "code": 257, "label": "ā" },
{ "code": 224, "label": "à" },
{ "code": 225, "label": "á" },
{ "code": 226, "label": "â" },
{ "code": 228, "label": "ä" }
]
},
"c": {
"relevant": [
{ "code": 231, "label": "ç" }
]
},
"e": {
"relevant": [
{ "code": 275, "label": "ē" },
{ "code": 234, "label": "ê" },
{ "code": 233, "label": "é" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
]
},
"i": {
"relevant": [
{ "code": 236, "label": "ì" },
{ "code": 239, "label": "ï" },
{ "code": 237, "label": "í" },
{ "code": 238, "label": "î" },
{ "code": 299, "label": "ī" }
]
},
"n": {
"relevant": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
]
},
"o": {
"relevant": [
{ "code": 245, "label": "õ" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 248, "label": "ø" },
{ "code": 242, "label": "ò" },
{ "code": 246, "label": "ö" },
{ "code": 243, "label": "ó" },
{ "code": 244, "label": "ô" }
]
},
"s": {
"relevant": [
{ "code": 223, "label": "ß" }
]
},
"u": {
"relevant": [
{ "code": 250, "label": "ú" },
{ "code": 363, "label": "ū" },
{ "code": 252, "label": "ü" },
{ "code": 251, "label": "û" },
{ "code": 249, "label": "ù" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,90 @@
{
"type": "characters/extended_popups",
"name": "eo",
"authors": [ "jeremiah-miller" ],
"mapping":{
"all": {
"c": {
"relevant": [
{ "code": 265, "label": "ĉ" }
]
},
"g": {
"relevant": [
{ "code": 285, "label": "ĝ" }
]
},
"h": {
"relevant": [
{ "code": 293, "label": "ĥ" }
]
},
"j": {
"relevant": [
{ "code": 309, "label": "ĵ" }
]
},
"s": {
"relevant": [
{ "code": 349, "label": "ŝ" }
]
},
"u": {
"relevant": [
{ "code": 365, "label": "ŭ" }
]
},
"q": {
"relevant": [
{ "code": 349, "label": "ŝ" }
]
},
"w": {
"relevant": [
{ "code": 285, "label": "ĝ" }
]
},
"x": {
"relevant": [
{ "code": 265, "label": "ĉ" }
]
},
"y": {
"relevant": [
{ "code": 365, "label": "ŭ" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,86 +1,115 @@
{
"a": [
{ "code": 225, "label": "á" },
{ "code": 229, "label": " },
{ "code": 261, "label": "ą" },
{ "code": 230, "label": "æ" },
{ "code": 257, "label": "ā" },
{ "code": 170, "label": "ª" },
{ "code": 224, "label": "à" },
{ "code": 228, "label": "ä" },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" }
],
"c": [
{ "code": 231, "label": "ç" },
{ "code": 269, "label": "č" },
{ "code": 263, "label": "ć" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 235, "label": "ë" },
{ "code": 232, "label": "è" },
{ "code": 234, "label": "ê" }
],
"i": [
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 238, "label": "î" },
{ "code": 303, "label": "į" },
{ "code": 236, "label": "ì" },
{ "code": 239, "label": "ï" }
],
"n": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
],
"o": [
{ "code": 243, "label": "ó" },
{ "code": 186, "label": "º" },
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 339, "label": "œ" },
{ "code": 245, "label": "õ" },
{ "code": 244, "label": "ô" },
{ "code": 246, "label": "ö" },
{ "code": 242, "label": "ò" }
],
"s": [
{ "code": 223, "label": "ß" }
],
"u": [
{ "code": 250, "label": "ú" },
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 252, "label": "ü" },
{ "code": 251, "label": "û" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 58, "label": ":" },
{ "code": 38, "label": "&" },
{ "code": 64, "label": "@" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 161, "label": "¡" },
{ "code": 39, "label": "'" },
{ "code": 191, "label": "¿" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "es",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"main": { "code": 225, "label": "á" },
"relevant": [
{ "code": 229, "label": "å" },
{ "code": 261, "label": "ą" },
{ "code": 230, "label": "æ" },
{ "code": 257, "label": "ā" },
{ "code": 170, "label": "ª" },
{ "code": 224, "label": "à" },
{ "code": 228, "label": "ä" },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" }
]
},
"c": {
"relevant": [
{ "code": 269, "label": "č" },
{ "code": 231, "label": "ç" },
{ "code": 263, "label": "ć" }
]
},
"e": {
"main": { "code": 233, "label": "é" },
"relevant": [
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 235, "label": "ë" },
{ "code": 232, "label": "è" },
{ "code": 234, "label": "ê" }
]
},
"i": {
"main": { "code": 237, "label": "í" },
"relevant": [
{ "code": 299, "label": "ī" },
{ "code": 238, "label": "î" },
{ "code": 303, "label": "į" },
{ "code": 236, "label": "ì" },
{ "code": 239, "label": "ï" }
]
},
"n": {
"relevant": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
]
},
"o": {
"main": { "code": 243, "label": "ó" },
"relevant": [
{ "code": 186, "label": "º" },
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 339, "label": "œ" },
{ "code": 245, "label": "õ" },
{ "code": 244, "label": "ô" },
{ "code": 246, "label": "ö" },
{ "code": 242, "label": "ò" }
]
},
"s": {
"relevant": [
{ "code": 223, "label": "ß" }
]
},
"u": {
"main": { "code": 250, "label": "ú" },
"relevant": [
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 252, "label": "ü" },
{ "code": 251, "label": "û" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".com.es" },
{ "code": -255, "label": ".es" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,80 +1,125 @@
{
"ض": [
{ "code": 1777, "label": "۱" }
],
"ص": [
{ "code": 1778, "label": "۲" }
],
": [
{ "code": 1779, "label": "۳" }
],
"ق": [
{ "code": 1780, "label": "۴" }
],
"ف": [
{ "code": 1781, "label": "۵" }
],
"غ": [
{ "code": 1782, "label": "۶" }
],
"ع": [
{ "code": 1783, "label": "۷" }
],
"ه": [
{ "code": 1784, "label": "۸" }
],
"خ": [
{ "code": 1785, "label": "۹" }
],
"ح": [
{ "code": 1776, "label": "۰" }
],
"ی": [
{ "code": 1574, "label": "ئ" },
{ "code": 1610, "label": "ي" }
],
"ا": [
{ "code": 1570, "label": "آ" },
{ "code": 1649, "label": "ٱ" },
{ "code": 1569, "label": "ء" },
{ "code": 1571, "label": "أ" },
{ "code": 1573, "label": "إ" }
],
": [
{ "code": 1577, "label": "ة" }
],
"ک": [
{ "code": 1706, "label": "ڪ"},
{ "code": 1603, "label": "ك" }
],
"ز": [
{ "code": 1688, "label": "ژ" }
],
": [
{ "code": 1572, "label": "ؤ" }
],
".~normal": [
{ "code": 1611, "label": "ً" },
{ "code": 1622, "label": "ٖ" },
{ "code": 1648, "label": "ٰ" },
{ "code": 1619, "label": "ٓ" },
{ "code": 1615, "label": "ُ" },
{ "code": 1616, "label": "ِ" },
{ "code": 1614, "label": "َ" },
{ "code": 1600, "label": "ـ" },
{ "code": 1621, "label": "ٕ" },
{ "code": 1618, "label": "ْ" },
{ "code": 1617, "label": "ّ" },
{ "code": 1612, "label": "ٌ" },
{ "code": 1613, "label": "ٍ" },
{ "code": 1620, "label": "ٔ" }
],
".~uri": [
{ "code": -255, "label": ".ir"},
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "fa",
"authors": [ "PHELAT" ],
"mapping": {
"all": {
"ض": {
"relevant": [
{ "code": 1777, "label": "۱" }
]
},
"ص": {
"relevant": [
{ "code": 1778, "label": "۲" }
]
},
"ث": {
"relevant": [
{ "code": 1779, "label": "۳" }
]
},
"ق": {
"relevant": [
{ "code": 1780, "label": "۴" }
]
},
"ف": {
"relevant": [
{ "code": 1781, "label": "۵" }
]
},
"غ": {
"relevant": [
{ "code": 1782, "label": "۶" }
]
},
"ع": {
"relevant": [
{ "code": 1783, "label": "۷" }
]
},
"ه": {
"relevant": [
{ "code": 1784, "label": "۸" }
]
},
"خ": {
"relevant": [
{ "code": 1785, "label": "۹" }
]
},
"ح": {
"relevant": [
{ "code": 1776, "label": "۰" }
]
},
"ی": {
"relevant": [
{ "code": 1574, "label": "ئ" },
{ "code": 1610, "label": "ي" }
]
},
"ا": {
"relevant": [
{ "code": 1570, "label": "آ" },
{ "code": 1649, "label": "ٱ" },
{ "code": 1569, "label": "ء" },
{ "code": 1571, "label": "أ" },
{ "code": 1573, "label": "إ" }
]
},
": {
"relevant": [
{ "code": 1577, "label": "ة" }
]
},
"ک": {
"relevant": [
{ "code": 1706, "label": "ڪ"},
{ "code": 1603, "label": "ك" }
]
},
"ز": {
"relevant": [
{ "code": 1688, "label": "ژ" }
]
},
"و": {
"relevant": [
{ "code": 1572, "label": "ؤ" }
]
},
"~right": {
"main": { "code": 1611, "label": "ً" },
"relevant": [
{ "code": 1622, "label": "ٖ" },
{ "code": 1648, "label": "ٰ" },
{ "code": 1619, "label": "ٓ" },
{ "code": 1615, "label": "ُ" },
{ "code": 1616, "label": "ِ" },
{ "code": 1614, "label": "َ" },
{ "code": 1600, "label": "ـ" },
{ "code": 1621, "label": "ٕ" },
{ "code": 1618, "label": "ْ" },
{ "code": 1617, "label": "ّ" },
{ "code": 1612, "label": "ٌ" },
{ "code": 1613, "label": "ٍ" },
{ "code": 1620, "label": "ٔ" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".ir"},
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,87 +1,118 @@
{
"a": [
{ "code": 228, "label": "ä" },
{ "code": 225, "label": " },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 229, "label": "å" },
{ "code": 230, "label": "æ" },
{ "code": 224, "label": "à" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" },
{ "code": 234, "label": "ê" }
],
"i": [
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 236, "label": "ì" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 239, "label": "ï" }
],
"o": [
{ "code": 246, "label": "ö" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 243, "label": "ó" },
{ "code": 245, "label": "õ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 248, "label": "ø" }
],
"s": [
{ "code": 353, "label": "š" },
{ "code": 223, "label": "ß" },
{ "code": 347, "label": "ś" }
],
"u": [
{ "code": 252, "label": "ü" },
{ "code": 363, "label": "ū" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" },
{ "code": 249, "label": "ù" }
],
"z": [
{ "code": 382, "label": "ž" },
{ "code": 380, "label": "ż" },
{ "code": 378, "label": "ź" }
],
"ä": [
{ "code": 230, "label": "æ" }
],
"ö": [
{ "code": 248, "label": "ø" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "fi",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 228, "label": "ä" },
{ "code": 225, "label": "á" },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 229, "label": "å" },
{ "code": 230, "label": "æ" },
{ "code": 224, "label": "à" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" },
{ "code": 234, "label": "ê" }
]
},
"i": {
"relevant": [
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 236, "label": "ì" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 239, "label": "ï" }
]
},
"o": {
"relevant": [
{ "code": 246, "label": "ö" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 243, "label": "ó" },
{ "code": 245, "label": "õ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 248, "label": "ø" }
]
},
"s": {
"relevant": [
{ "code": 353, "label": "š" },
{ "code": 223, "label": "ß" },
{ "code": 347, "label": "ś" }
]
},
"u": {
"relevant": [
{ "code": 252, "label": "ü" },
{ "code": 363, "label": "ū" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" },
{ "code": 249, "label": "ù" }
]
},
"z": {
"relevant": [
{ "code": 382, "label": "ž" },
{ "code": 380, "label": "ż" },
{ "code": 378, "label": "ź" }
]
},
"ä": {
"relevant": [
{ "code": 230, "label": "æ" }
]
},
": {
"relevant": [
{ "code": 248, "label": "ø" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,90 +1,121 @@
{
"a": [
{ "code": 224, "label": "à" },
{ "code": 227, "label": " },
{ "code": 229, "label": "å" },
{ "code": 257, "label": "ā" },
{ "code": 170, "label": "ª" },
{ "code": 226, "label": "â" },
{ "code": 230, "label": "æ" },
{ "code": 225, "label": "á" },
{ "code": 228, "label": "ä" }
],
"c": [
{ "code": 231, "label": "ç" },
{ "code": 269, "label": "č" },
{ "code": 263, "label": "ć" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
],
"i": [
{ "code": 238, "label": "î" },
{ "code": 299, "label": "ī" },
{ "code": 237, "label": "í" },
{ "code": 303, "label": "į" },
{ "code": 236, "label": "ì" },
{ "code": 239, "label": "ï" }
],
"n": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
],
"o": [
{ "code": 244, "label": "ô" },
{ "code": 186, "label": "º" },
{ "code": 333, "label": "ō" },
{ "code": 245, "label": "õ" },
{ "code": 248, "label": "ø" },
{ "code": 243, "label": "ó" },
{ "code": 242, "label": "ò" },
{ "code": 246, "label": "ö" },
{ "code": 339, "label": "œ" }
],
"s": [
{ "code": 223, "label": "ß" },
{ "code": 353, "label": "š" },
{ "code": 347, "label": "ś" }
],
"u": [
{ "code": 249, "label": "ù" },
{ "code": 363, "label": "ū" },
{ "code": 252, "label": "ü" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" }
],
"y": [
{ "code": 255, "label": "ÿ" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "fr",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 224, "label": "à" },
{ "code": 227, "label": "ã" },
{ "code": 229, "label": "å" },
{ "code": 257, "label": "ā" },
{ "code": 170, "label": "ª" },
{ "code": 226, "label": "â" },
{ "code": 230, "label": "æ" },
{ "code": 225, "label": "á" },
{ "code": 228, "label": "ä" }
]
},
"c": {
"relevant": [
{ "code": 231, "label": "ç" },
{ "code": 269, "label": "č" },
{ "code": 263, "label": "ć" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
]
},
"i": {
"relevant": [
{ "code": 238, "label": "î" },
{ "code": 299, "label": "ī" },
{ "code": 237, "label": "í" },
{ "code": 303, "label": "į" },
{ "code": 236, "label": "ì" },
{ "code": 239, "label": "ï" }
]
},
"n": {
"relevant": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
]
},
"o": {
"relevant": [
{ "code": 244, "label": "ô" },
{ "code": 186, "label": "º" },
{ "code": 333, "label": "ō" },
{ "code": 245, "label": "õ" },
{ "code": 248, "label": "ø" },
{ "code": 243, "label": "ó" },
{ "code": 242, "label": "ò" },
{ "code": 246, "label": "ö" },
{ "code": 339, "label": "œ" }
]
},
"s": {
"relevant": [
{ "code": 223, "label": "ß" },
{ "code": 353, "label": "š" },
{ "code": 347, "label": "ś" }
]
},
"u": {
"relevant": [
{ "code": 249, "label": "ù" },
{ "code": 363, "label": "ū" },
{ "code": 252, "label": "ü" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" }
]
},
"y": {
"relevant": [
{ "code": 255, "label": "ÿ" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,61 @@
{
"type": "characters/extended_popups",
"name": "hr",
"authors": [ "hedidnothingwrong" ],
"mapping": {
"all": {
"c": {
"relevant": [
{ "code": 269, "label": "č" },
{ "code": 263, "label": "ć" }
]
},
"d": {
"relevant": [
{ "code": 273, "label": "đ" }
]
},
"s": {
"relevant": [
{ "code": 353, "label": "š" }
]
},
"z": {
"relevant": [
{ "code": 382, "label": "ž" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".eu" },
{ "code": -255, "label": ".hr" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,80 @@
{
"type": "characters/extended_popups",
"name": "hu",
"authors": [ "zoli111" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 225, "label": "á" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" }
]
},
"i": {
"relevant": [
{ "code": 237, "label": "í" }
]
},
"o": {
"relevant": [
{ "code": 243, "label": "ó" },
{ "code": 246, "label": "ö" },
{ "code": 337, "label": "ő" }
]
},
"ö": {
"relevant": [
{ "code": 337, "label": "ő" }
]
},
"u": {
"relevant": [
{ "code": 250, "label": "ú" },
{ "code": 252, "label": "ü" },
{ "code": 369, "label": "ű" }
]
},
"ü": {
"relevant": [
{ "code": 369, "label": "ű" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".hu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,81 +1,110 @@
{
"a": [
{ "code": 225, "label": "á" },
{ "code": 224, "label": " },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 228, "label": "ä" },
{ "code": 230, "label": "æ" },
{ "code": 229, "label": "å" }
],
"d": [
{ "code": 240, "label": "ð" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" },
{ "code": 234, "label": "ê" }
],
"i": [
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 236, "label": "ì" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 239, "label": "ï" }
],
"o": [
{ "code": 243, "label": "ó" },
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 245, "label": "õ" },
{ "code": 339, "label": "œ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 246, "label": "ö" }
],
"t": [
{ "code": 254, "label": "þ" }
],
"u": [
{ "code": 250, "label": "ú" },
{ "code": 363, "label": "ū" },
{ "code": 251, "label": "û" },
{ "code": 252, "label": "ü" },
{ "code": 249, "label": "ù" }
],
"y": [
{ "code": 253, "label": "ý" },
{ "code": 255, "label": "ÿ" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "is",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 225, "label": "á" },
{ "code": 224, "label": "à" },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 228, "label": "ä" },
{ "code": 230, "label": "æ" },
{ "code": 229, "label": "å" }
]
},
"d": {
"relevant": [
{ "code": 240, "label": "ð" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" },
{ "code": 234, "label": "ê" }
]
},
"i": {
"relevant": [
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 236, "label": "ì" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 239, "label": "ï" }
]
},
"o": {
"relevant": [
{ "code": 243, "label": "ó" },
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 245, "label": "õ" },
{ "code": 339, "label": "œ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 246, "label": "ö" }
]
},
"t": {
"relevant": [
{ "code": 254, "label": "þ" }
]
},
"u": {
"relevant": [
{ "code": 250, "label": "ú" },
{ "code": 363, "label": "ū" },
{ "code": 251, "label": "û" },
{ "code": 252, "label": "ü" },
{ "code": 249, "label": "ù" }
]
},
"y": {
"relevant": [
{ "code": 253, "label": "ý" },
{ "code": 255, "label": "ÿ" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,77 +1,103 @@
{
"a": [
{ "code": 224, "label": "à" },
{ "code": 227, "label": " },
{ "code": 229, "label": "å" },
{ "code": 257, "label": "ā" },
{ "code": 170, "label": "ª" },
{ "code": 225, "label": "á" },
{ "code": 226, "label": "â" },
{ "code": 228, "label": "ä" },
{ "code": 230, "label": "æ" }
],
"e": [
{ "code": 232, "label": "è" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 234, "label": "ê" },
{ "code": 233, "label": "é" },
{ "code": 235, "label": "ë" }
],
"i": [
{ "code": 236, "label": "ì" },
{ "code": 299, "label": "ī" },
{ "code": 239, "label": "ï" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 237, "label": "í" }
],
"n": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
],
"o": [
{ "code": 242, "label": "ò" },
{ "code": 186, "label": "º" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 248, "label": "ø" },
{ "code": 245, "label": "õ" },
{ "code": 246, "label": "ö" },
{ "code": 244, "label": "ô" },
{ "code": 243, "label": "ó" }
],
"u": [
{ "code": 249, "label": "ù" },
{ "code": 363, "label": "ū" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" },
{ "code": 252, "label": "ü" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "it",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"main": { "code": 224, "label": "à" },
"relevant": [
{ "code": 227, "label": "ã" },
{ "code": 229, "label": "å" },
{ "code": 257, "label": "ā" },
{ "code": 170, "label": "ª" },
{ "code": 225, "label": "á" },
{ "code": 226, "label": "â" },
{ "code": 228, "label": "ä" },
{ "code": 230, "label": "æ" }
]
},
"e": {
"main": { "code": 232, "label": "è" },
"relevant": [
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 234, "label": "ê" },
{ "code": 233, "label": "é" },
{ "code": 235, "label": "ë" }
]
},
"i": {
"main": { "code": 236, "label": "ì" },
"relevant": [
{ "code": 299, "label": "ī" },
{ "code": 239, "label": "ï" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 237, "label": "í" }
]
},
"n": {
"relevant": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
]
},
"o": {
"main": { "code": 242, "label": "ò" },
"relevant": [
{ "code": 186, "label": "º" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 248, "label": "ø" },
{ "code": 245, "label": "õ" },
{ "code": 246, "label": "ö" },
{ "code": 244, "label": "ô" },
{ "code": 243, "label": "ó" }
]
},
"u": {
"main": { "code": 249, "label": "ù" },
"relevant": [
{ "code": 363, "label": "ū" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" },
{ "code": 252, "label": "ü" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov.it" },
{ "code": -255, "label": ".edu.it" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".it" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,42 @@
{
"type": "characters/extended_popups",
"name": "iw",
"authors": [ "Antony" ],
"mapping": {
"all": {
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" },
{ "code": -255, "label": ".co.il" },
{ "code": -255, "label": ".gov.il" }
]
}
}
}
}

View File

@@ -0,0 +1,112 @@
{
"type": "characters/extended_popups",
"name": "lv",
"authors": [ "patrickgold", "eandersons" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 257, "label": "ā" }
]
},
"c": {
"relevant": [
{ "code": 269, "label": "č" }
]
},
"e": {
"relevant": [
{ "code": 275, "label": "ē" },
{ "code": 8364, "label": "€" }
]
},
"g": {
"relevant": [
{ "code": 291, "label": "ģ" }
]
},
"i": {
"relevant": [
{ "code": 299, "label": "ī" }
]
},
"k": {
"relevant": [
{ "code": 311, "label": "ķ" }
]
},
"l": {
"relevant": [
{ "code": 316, "label": "ļ" }
]
},
"n": {
"relevant": [
{ "code": 326, "label": "ņ" }
]
},
"o": {
"relevant": [
{ "code": 333, "label": "ō" }
]
},
"r": {
"relevant": [
{ "code": 343, "label": "ŗ" }
]
},
"s": {
"relevant": [
{ "code": 353, "label": "š" }
]
},
"u": {
"relevant": [
{ "code": 363, "label": "ū" }
]
},
"z": {
"relevant": [
{ "code": 382, "label": "ž" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 8212, "label": "—" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".lv" },
"relevant": [
{ "code": -255, "label": ".eu" },
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov.lv" },
{ "code": -255, "label": ".edu.lv" },
{ "code": -255, "label": ".org.lv" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,72 +1,99 @@
{
"a": [
{ "code": 229, "label": "å" },
{ "code": 225, "label": " },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 230, "label": "æ" },
{ "code": 228, "label": "ä" },
{ "code": 224, "label": "à" }
],
"c": [
{ "code": 231, "label": "ç" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
],
"o": [
{ "code": 248, "label": "ø" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 243, "label": "ó" },
{ "code": 245, "label": "õ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 246, "label": "ö" }
],
"u": [
{ "code": 252, "label": "ü" },
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" }
],
"æ": [
{ "code": 228, "label": "ä" }
],
"ø": [
{ "code": 246, "label": "ö" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "nb",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 229, "label": "å" },
{ "code": 225, "label": "á" },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 230, "label": "æ" },
{ "code": 228, "label": "ä" },
{ "code": 224, "label": "à" }
]
},
"c": {
"relevant": [
{ "code": 231, "label": "ç" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
]
},
"o": {
"relevant": [
{ "code": 248, "label": "ø" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 243, "label": "ó" },
{ "code": 245, "label": "õ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 246, "label": "ö" }
]
},
"u": {
"relevant": [
{ "code": 252, "label": "ü" },
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" }
]
},
"æ": {
"relevant": [
{ "code": 228, "label": "ä" }
]
},
"ø": {
"relevant": [
{ "code": 246, "label": "ö" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,78 +1,109 @@
{
"a": [
{ "code": 229, "label": "å" },
{ "code": 225, "label": " },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 230, "label": "æ" },
{ "code": 228, "label": "ä" },
{ "code": 224, "label": "à" }
],
"c": [
{ "code": 231, "label": "ç" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
],
"i": [
{ "code": 236, "label": "ì" }
],
"o": [
{ "code": 248, "label": "ø" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 243, "label": "ó" },
{ "code": 245, "label": "õ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 246, "label": "ö" }
],
"u": [
{ "code": 252, "label": "ü" },
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" }
],
"y": [
{ "code": 7923, "label": "" }
],
"æ": [
{ "code": 228, "label": "ä" }
],
"ø": [
{ "code": 246, "label": "ö" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "nn",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 229, "label": "å" },
{ "code": 225, "label": "á" },
{ "code": 226, "label": "â" },
{ "code": 227, "label": "ã" },
{ "code": 257, "label": "ā" },
{ "code": 230, "label": "æ" },
{ "code": 228, "label": "ä" },
{ "code": 224, "label": "à" }
]
},
"c": {
"relevant": [
{ "code": 231, "label": "ç" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" },
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" }
]
},
"i": {
"relevant": [
{ "code": 236, "label": "ì" }
]
},
"o": {
"relevant": [
{ "code": 248, "label": "ø" },
{ "code": 333, "label": "ō" },
{ "code": 339, "label": "œ" },
{ "code": 243, "label": "ó" },
{ "code": 245, "label": "õ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 246, "label": "ö" }
]
},
"u": {
"relevant": [
{ "code": 252, "label": "ü" },
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 251, "label": "û" },
{ "code": 250, "label": "ú" }
]
},
"y": {
"relevant": [
{ "code": 7923, "label": "" }
]
},
"æ": {
"relevant": [
{ "code": 228, "label": "ä" }
]
},
": {
"relevant": [
{ "code": 246, "label": "ö" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,88 @@
{
"type": "characters/extended_popups",
"name": "pl",
"authors": [ "Mikołaj Biel" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 261, "label": "ą" },
{ "code": 224, "label": "à" }
]
},
"c": {
"relevant": [
{ "code": 263, "label": "ć" }
]
},
"e": {
"relevant": [
{ "code": 281, "label": "ę" }
]
},
"l": {
"relevant": [
{ "code": 322, "label": "ł" }
]
},
"n": {
"relevant": [
{ "code": 324, "label": "ń" }
]
},
"o": {
"relevant": [
{ "code": 243, "label": "ó" }
]
},
"s": {
"relevant": [
{ "code": 347, "label": "ś" }
]
},
"x": {
"relevant": [
{ "code": 378, "label": "ź" }
]
},
"z": {
"relevant": [
{ "code": 378, "label": "ź" },
{ "code": 380, "label": "ż" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".pl" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,109 @@
{
"type": "characters/extended_popups",
"name": "pt-BR",
"authors": [ "rickym7" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 228, "label": "ä" },
{ "code": 229, "label": "å" },
{ "code": 230, "label": "æ" },
{ "code": 170, "label": "ª" },
{ "code": 225, "label": "á" },
{ "code": 227, "label": "ã" },
{ "code": 224, "label": "à" },
{ "code": 226, "label": "â" }
]
},
"c": {
"relevant": [
{ "code": 269, "label": "č" },
{ "code": 231, "label": "ç" },
{ "code": 263, "label": "ć" }
]
},
"e": {
"relevant": [
{ "code": 275, "label": "ē" },
{ "code": 281, "label": "ę" },
{ "code": 279, "label": "ė" },
{ "code": 235, "label": "ë" },
{ "code": 234, "label": "ê" },
{ "code": 233, "label": "é" },
{ "code": 232, "label": "è" }
]
},
"i": {
"relevant": [
{ "code": 299, "label": "ī" },
{ "code": 239, "label": "ï" },
{ "code": 303, "label": "į" },
{ "code": 236, "label": "ì" },
{ "code": 238, "label": "î" },
{ "code": 237, "label": "í" }
]
},
"n": {
"relevant": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
]
},
"o": {
"relevant": [
{ "code": 186, "label": "º" },
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 339, "label": "œ" },
{ "code": 246, "label": "ö" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 245, "label": "õ" },
{ "code": 243, "label": "ó" }
]
},
"u": {
"relevant": [
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 251, "label": "û" },
{ "code": 252, "label": "ü" },
{ "code": 250, "label": "ú" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".br" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,81 +1,109 @@
{
"a": [
{ "code": 225, "label": "á" },
{ "code": 228, "label": " },
{ "code": 229, "label": "å" },
{ "code": 230, "label": "æ" },
{ "code": 170, "label": "ª" },
{ "code": 227, "label": "ã" },
{ "code": 224, "label": "à" },
{ "code": 226, "label": "â" }
],
"c": [
{ "code": 231, "label": "ç" },
{ "code": 263, "label": "ć" },
{ "code": 269, "label": "č" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 235, "label": "ë" },
{ "code": 279, "label": "ė" },
{ "code": 275, "label": "ē" },
{ "code": 232, "label": "è" },
{ "code": 234, "label": "ê" },
{ "code": 281, "label": "ę" }
],
"i": [
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 239, "label": "ï" },
{ "code": 303, "label": "į" },
{ "code": 236, "label": "ì" },
{ "code": 238, "label": "î" }
],
"n": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
],
"o": [
{ "code": 243, "label": "ó" },
{ "code": 186, "label": "º" },
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 339, "label": "œ" },
{ "code": 246, "label": "ö" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 245, "label": "õ" }
],
"u": [
{ "code": 250, "label": "ú" },
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 252, "label": "ü" },
{ "code": 251, "label": "û" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "pt",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 228, "label": "ä" },
{ "code": 229, "label": "å" },
{ "code": 230, "label": "æ" },
{ "code": 170, "label": "ª" },
{ "code": 225, "label": "á" },
{ "code": 227, "label": "ã" },
{ "code": 224, "label": "à" },
{ "code": 226, "label": "â" }
]
},
"c": {
"relevant": [
{ "code": 231, "label": "ç" },
{ "code": 263, "label": "ć" },
{ "code": 269, "label": "č" }
]
},
"e": {
"relevant": [
{ "code": 235, "label": "ë" },
{ "code": 279, "label": "ė" },
{ "code": 275, "label": "ē" },
{ "code": 233, "label": "é" },
{ "code": 232, "label": "è" },
{ "code": 234, "label": "ê" },
{ "code": 281, "label": "ę" }
]
},
"i": {
"relevant": [
{ "code": 299, "label": "ī" },
{ "code": 239, "label": "ï" },
{ "code": 303, "label": "į" },
{ "code": 236, "label": "ì" },
{ "code": 237, "label": "í" },
{ "code": 238, "label": "î" }
]
},
"n": {
"relevant": [
{ "code": 241, "label": "ñ" },
{ "code": 324, "label": "ń" }
]
},
"o": {
"relevant": [
{ "code": 186, "label": "º" },
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 339, "label": "œ" },
{ "code": 246, "label": "ö" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 243, "label": "ó" },
{ "code": 245, "label": "õ" }
]
},
"u": {
"relevant": [
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 250, "label": "ú" },
{ "code": 252, "label": "ü" },
{ "code": 251, "label": "û" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".pt" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,55 @@
{
"type": "characters/extended_popups",
"name": "ro",
"authors": [ "bertin0" ],
"mapping": {
"all": {
"a": {
"main": { "code": 259, "label": "ă" },
"relevant": [
{ "code": 226, "label": "â" }
]
},
"i": {
"main": { "code": 238, "label": "î" }
},
"s": {
"main": {"code": 537, "label": "ș"}
},
"t": {
"main": {"code": 539, "label": "ț"}
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".ro" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" },
{ "code": -255, "label": ".edu" }
]
}
}
}
}

View File

@@ -0,0 +1,45 @@
{
"type": "characters/extended_popups",
"name": "ru",
"authors": [ "williamtheaker" ],
"mapping": {
"all": {
"е": {
"relevant": [
{ "code": 1105, "label": "ё" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".ru" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,59 @@
{
"type": "characters/extended_popups",
"name": "sr",
"authors": [ "hedidnothingwrong", "GrbavaCigla" ],
"mapping": {
"all": {
"c": {
"relevant": [
{ "code": 269, "label": "č" },
{ "code": 263, "label": "ć" }
]
},
"d": {
"relevant": [
{ "code": 273, "label": "đ" }
]
},
"s": {
"relevant": [
{ "code": 353, "label": "š" }
]
},
"z": {
"main": { "code": 382, "label": "ž" }
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".eu" },
{ "code": -255, "label": ".rs" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -1,115 +1,160 @@
{
"a": [
{ "code": 228, "label": "ä" },
{ "code": 224, "label": " },
{ "code": 226, "label": "â" },
{ "code": 261, "label": "ą" },
{ "code": 227, "label": "ã" },
{ "code": 229, "label": "å" },
{ "code": 230, "label": "æ" },
{ "code": 225, "label": "á" }
],
"c": [
{ "code": 231, "label": "ç" },
{ "code": 269, "label": "č" },
{ "code": 263, "label": "ć" }
],
"d": [
{ "code": 240, "label": "ð" },
{ "code": 271, "label": "ď" }
],
"e": [
{ "code": 233, "label": "é" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" },
{ "code": 281, "label": "ę" }
],
"i": [
{ "code": 237, "label": "í" },
{ "code": 239, "label": "ï" },
{ "code": 299, "label": "ī" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 236, "label": "ì" }
],
"l": [
{ "code": 322, "label": "ł" }
],
"n": [
{ "code": 324, "label": "ń" },
{ "code": 328, "label": "ň" },
{ "code": 241, "label": "ñ" }
],
"o": [
{ "code": 246, "label": "ö" },
{ "code": 333, "label": "ō" },
{ "code": 245, "label": "õ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 243, "label": "ó" },
{ "code": 339, "label": "œ" },
{ "code": 248, "label": "ø" }
],
"r": [
{ "code": 345, "label": "ř" }
],
"s": [
{ "code": 347, "label": "ś" },
{ "code": 353, "label": "š" },
{ "code": 351, "label": "ş" },
{ "code": 223, "label": "ß" }
],
"t": [
{ "code": 357, "label": "ť" },
{ "code": 254, "label": "þ" }
],
"u": [
{ "code": 252, "label": "ü" },
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 250, "label": "ú" },
{ "code": 251, "label": "û" }
],
"y": [
{ "code": 253, "label": "ý" },
{ "code": 255, "label": "ÿ" }
],
"z": [
{ "code": 378, "label": "ź" },
{ "code": 380, "label": "ż" },
{ "code": 382, "label": "ž" }
],
"ä": [
{ "code": 230, "label": "æ" }
],
"ö": [
{ "code": 248, "label": "ø" },
{ "code": 339, "label": "œ" }
],
".~normal": [
{ "code": 44, "label": "," },
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
],
".~uri": [
{ "code": -255, "label": ".com" },
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
"type": "characters/extended_popups",
"name": "sv",
"authors": [ "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 228, "label": "ä" },
{ "code": 224, "label": "à" },
{ "code": 226, "label": "â" },
{ "code": 261, "label": "ą" },
{ "code": 227, "label": "ã" },
{ "code": 229, "label": "å" },
{ "code": 230, "label": "æ" },
{ "code": 225, "label": "á" }
]
},
"c": {
"relevant": [
{ "code": 231, "label": "ç" },
{ "code": 269, "label": "č" },
{ "code": 263, "label": "ć" }
]
},
"d": {
"relevant": [
{ "code": 240, "label": "ð" },
{ "code": 271, "label": "ď" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" },
{ "code": 234, "label": "ê" },
{ "code": 232, "label": "è" },
{ "code": 235, "label": "ë" },
{ "code": 281, "label": "ę" }
]
},
"i": {
"relevant": [
{ "code": 237, "label": "í" },
{ "code": 239, "label": "ï" },
{ "code": 299, "label": "ī" },
{ "code": 303, "label": "į" },
{ "code": 238, "label": "î" },
{ "code": 236, "label": "ì" }
]
},
"l": {
"relevant": [
{ "code": 322, "label": "ł" }
]
},
"n": {
"relevant": [
{ "code": 324, "label": "ń" },
{ "code": 328, "label": "ň" },
{ "code": 241, "label": "ñ" }
]
},
"o": {
"relevant": [
{ "code": 246, "label": "ö" },
{ "code": 333, "label": "ō" },
{ "code": 245, "label": "õ" },
{ "code": 242, "label": "ò" },
{ "code": 244, "label": "ô" },
{ "code": 243, "label": "ó" },
{ "code": 339, "label": "œ" },
{ "code": 248, "label": "ø" }
]
},
"r": {
"relevant": [
{ "code": 345, "label": "ř" }
]
},
"s": {
"relevant": [
{ "code": 347, "label": "ś" },
{ "code": 353, "label": "š" },
{ "code": 351, "label": "ş" },
{ "code": 223, "label": "ß" }
]
},
"t": {
"relevant": [
{ "code": 357, "label": "ť" },
{ "code": 254, "label": "þ" }
]
},
"u": {
"relevant": [
{ "code": 252, "label": "ü" },
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 250, "label": "ú" },
{ "code": 251, "label": "û" }
]
},
"y": {
"relevant": [
{ "code": 253, "label": "ý" },
{ "code": 255, "label": "ÿ" }
]
},
"z": {
"relevant": [
{ "code": 378, "label": "ź" },
{ "code": 380, "label": "ż" },
{ "code": 382, "label": "ž" }
]
},
"ä": {
"relevant": [
{ "code": 230, "label": "æ" }
]
},
"ö": {
"relevant": [
{ "code": 248, "label": "ø" },
{ "code": 339, "label": "œ" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,132 @@
{
"type": "characters/extended_popups",
"name": "tr",
"authors": [ "kisekinopureya", "patrickgold" ],
"mapping": {
"all": {
"a": {
"relevant": [
{ "code": 226, "label": "â" },
{ "code": 228, "label": "ä" },
{ "code": 225, "label": "á" }
]
},
"c": {
"main": { "code": 231, "label": "ç" },
"relevant": [
{ "code": 269, "label": "č" },
{ "code": 263, "label": "ć" }
]
},
"e": {
"relevant": [
{ "code": 233, "label": "é" },
{ "code": 601, "label": "ə" },
{ "code": 234, "label": "ê" }
]
},
"g": {
"main": { "code": 287, "label": "ğ" }
},
"i": {
"main": { "code": 305, "label": "ı" },
"relevant": [
{ "code": 303, "label": "į" },
{ "code": 236, "label": "ì" },
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 238, "label": "î" },
{ "code": 239, "label": "ï" }
]
},
"ı": {
"main": { "code": 105, "label": "i" },
"relevant": [
{ "code": 303, "label": "į" },
{ "code": 236, "label": "ì" },
{ "code": 237, "label": "í" },
{ "code": 299, "label": "ī" },
{ "code": 238, "label": "î" },
{ "code": 239, "label": "ï" }
]
},
"n": {
"relevant": [
{ "code": 328, "label": "ň" },
{ "code": 241, "label": "ñ" }
]
},
"o": {
"main": { "code": 246, "label": "ö" },
"relevant": [
{ "code": 333, "label": "ō" },
{ "code": 248, "label": "ø" },
{ "code": 243, "label": "ó" },
{ "code": 245, "label": "õ" },
{ "code": 242, "label": "ò" },
{ "code": 339, "label": "œ" },
{ "code": 244, "label": "ô" }
]
},
"s": {
"main": { "code": 351, "label": "ş" },
"relevant": [
{ "code": 347, "label": "ś" },
{ "code": 223, "label": "ß" },
{ "code": 353, "label": "š" }
]
},
"u": {
"main": { "code": 252, "label": "ü" },
"relevant": [
{ "code": 363, "label": "ū" },
{ "code": 249, "label": "ù" },
{ "code": 250, "label": "ú" },
{ "code": 251, "label": "û" }
]
},
"y": {
"relevant": [
{ "code": 253, "label": "ý" }
]
},
"z": {
"relevant": [
{ "code": 382, "label": "ž" }
]
},
"~right": {
"main": { "code": 44, "label": "," },
"relevant": [
{ "code": 38, "label": "&" },
{ "code": 37, "label": "%" },
{ "code": 43, "label": "+" },
{ "code": 34, "label": "\"" },
{ "code": 45, "label": "-" },
{ "code": 58, "label": ":" },
{ "code": 39, "label": "'" },
{ "code": 64, "label": "@" },
{ "code": 59, "label": ";" },
{ "code": 47, "label": "/" },
{ "code": 40, "label": "(" },
{ "code": 41, "label": ")" },
{ "code": 35, "label": "#" },
{ "code": 33, "label": "!" },
{ "code": 63, "label": "?" }
]
}
},
"uri": {
"~right": {
"main": { "code": -255, "label": ".com" },
"relevant": [
{ "code": -255, "label": ".gov" },
{ "code": -255, "label": ".org" },
{ "code": -255, "label": ".edu" },
{ "code": -255, "label": ".tr" },
{ "code": -255, "label": ".net" }
]
}
}
}
}

View File

@@ -0,0 +1,40 @@
{
"type": "characters",
"name": "greek",
"authors": [ "tsiflimagas" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 894, "label": ";" },
{ "code": 962, "label": "ς" },
{ "code": 949, "label": "ε" },
{ "code": 961, "label": "ρ" },
{ "code": 964, "label": "τ" },
{ "code": 965, "label": "υ" },
{ "code": 952, "label": "θ" },
{ "code": 953, "label": "ι" },
{ "code": 959, "label": "ο" },
{ "code": 960, "label": "π" }
],
[
{ "code": 945, "label": "α" },
{ "code": 963, "label": "σ" },
{ "code": 948, "label": "δ" },
{ "code": 966, "label": "φ" },
{ "code": 947, "label": "γ" },
{ "code": 951, "label": "η" },
{ "code": 958, "label": "ξ" },
{ "code": 954, "label": "κ" },
{ "code": 955, "label": "λ" }
],
[
{ "code": 950, "label": "ζ" },
{ "code": 967, "label": "χ" },
{ "code": 968, "label": "ψ" },
{ "code": 969, "label": "ω" },
{ "code": 946, "label": "β" },
{ "code": 957, "label": "ν" },
{ "code": 956, "label": "μ" }
]
]
}

View File

@@ -0,0 +1,53 @@
{
"type": "characters",
"name": "hebrew",
"authors": [ "Antony" ],
"direction": "rtl",
"modifier": "hebrew",
"arrangement": [
[
{ "code": 39, "label": "'", "popup": {
"relevant": [
{ "code": 34, "label": "\"" },
{ "code": 96, "label": "`" }
]
} },
{ "code": 45, "label": "-", "popup": {
"relevant": [
{ "code": 95, "label": "_" }
]
} },
{ "code": 1511, "label": "ק" },
{ "code": 1512, "label": "ר" },
{ "code": 1488, "label": "א" },
{ "code": 1496, "label": "ט" },
{ "code": 1493, "label": "ו" },
{ "code": 1503, "label": "ן" },
{ "code": 1501, "label": "ם" },
{ "code": 1508, "label": "פ" }
],
[
{ "code": 1513, "label": "ף" },
{ "code": 1491, "label": "ך" },
{ "code": 1490, "label": "ל" },
{ "code": 1499, "label": "ח" },
{ "code": 1506, "label": "י" },
{ "code": 1497, "label": "ע" },
{ "code": 1495, "label": "כ" },
{ "code": 1500, "label": "ג" },
{ "code": 1498, "label": "ד" },
{ "code": 1507, "label": "ש" }
],
[
{ "code": 1494, "label": "ץ" },
{ "code": 1505, "label": "ת" },
{ "code": 1489, "label": "צ" },
{ "code": 1492, "label": "מ" },
{ "code": 1504, "label": "נ" },
{ "code": 1502, "label": "ה" },
{ "code": 1510, "label": "ב" },
{ "code": 1514, "label": "ס" },
{ "code": 1509, "label": "ז" }
]
]
}

View File

@@ -0,0 +1,44 @@
{
"type": "characters",
"name": "hungarian",
"authors": [ "zoli111" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 113, "label": "q" },
{ "code": 119, "label": "w" },
{ "code": 101, "label": "e" },
{ "code": 114, "label": "r" },
{ "code": 116, "label": "t" },
{ "code": 122, "label": "z" },
{ "code": 117, "label": "u" },
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 246, "label": "ö" }
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
{ "code": 102, "label": "f" },
{ "code": 103, "label": "g" },
{ "code": 104, "label": "h" },
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 233, "label": "é" },
{ "code": 225, "label": "á" }
],
[
{ "code": 121, "label": "y" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },
{ "code": 118, "label": "v" },
{ "code": 98, "label": "b" },
{ "code": 110, "label": "n" },
{ "code": 109, "label": "m" },
{ "code": 252, "label": "ü" }
]
]
}

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "icelandic",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -15,7 +16,8 @@
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 240, "label": "ð" }
], [
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -27,7 +29,8 @@
{ "code": 108, "label": "l" },
{ "code": 230, "label": "æ" },
{ "code": 246, "label": "ö" }
], [
],
[
{ "code": 122, "label": "z" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -0,0 +1,46 @@
{
"type": "characters",
"name": "jcuken_russian",
"authors": [ "williamtheaker" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 1081, "label": "й" },
{ "code": 1094, "label": "ц" },
{ "code": 1091, "label": "у" },
{ "code": 1082, "label": "к" },
{ "code": 1077, "label": "е" },
{ "code": 1085, "label": "н" },
{ "code": 1075, "label": "г" },
{ "code": 1096, "label": "ш" },
{ "code": 1097, "label": "щ" },
{ "code": 1079, "label": "з" },
{ "code": 1093, "label": "х" },
{ "code": 1098, "label": "ъ" }
],
[
{ "code": 1092 , "label": "ф" },
{ "code": 1099 , "label": "ы" },
{ "code": 1074 , "label": "в" },
{ "code": 1072 , "label": "а" },
{ "code": 1087 , "label": "п" },
{ "code": 1088 , "label": "р" },
{ "code": 1086 , "label": "о" },
{ "code": 1083 , "label": "л" },
{ "code": 1076 , "label": "д" },
{ "code": 1078 , "label": "ж" },
{ "code": 1101 , "label": "э" }
],
[
{ "code": 1103 , "label": "я" },
{ "code": 1095 , "label": "ч" },
{ "code": 1089 , "label": "с" },
{ "code": 1084 , "label": "м" },
{ "code": 1080 , "label": "и" },
{ "code": 1090 , "label": "т" },
{ "code": 1100 , "label": "ь" },
{ "code": 1073 , "label": "б" },
{ "code": 1102 , "label": "ю" }
]
]
}

View File

@@ -0,0 +1,57 @@
{
"type": "characters",
"name": "kurdish",
"authors": [ "GoRaN" ],
"direction": "rtl",
"modifier": "kurdish",
"arrangement": [
[
{ "code": 1602, "label": "ق", "popup": {
"main": { "code": 1647, "label": "ٯ" }
} },
{ "code": 1608, "label": "و", "popup": {
"main": { "code": -255, "label": "وو" }
} },
{ "code": 1749, "label": "", "popup": {
"main": { "code": 1577, "label": "ة" }
} },
{ "code": 1585, "label": "ر" },
{ "code": 1578, "label": "ت", "popup": {
"main": { "code": 1591, "label": "ط" }
} },
{ "code": 1740, "label": "ی" },
{ "code": 1574, "label": "ﺋ", "popup": {
"main": { "code": 1569, "label": "ء" }
} },
{ "code": 1593, "label": "ع" },
{ "code": 1734, "label": "ۆ" },
{ "code": 1662, "label": "پ", "popup": {
"main": { "code": 1579, "label": "ث" }
} }
],
[
{ "code": 1575, "label": "ا" },
{ "code": 1587, "label": "س" },
{ "code": 1588, "label": "ش" },
{ "code": 1583, "label": "د" },
{ "code": 1601, "label": "ف" },
{ "code": 1607, "label": "ھ" },
{ "code": 1688, "label": "ژ" },
{ "code": 1604, "label": "ل" },
{ "code": 1705, "label": "ک" },
{ "code": 1711, "label": "گ" }
],
[
{ "code": 1586, "label": "ز", "popup": {
"main": {"code": 1592, "label": "ظ" }
} },
{ "code": 1582, "label": "خ" },
{ "code": 1580, "label": "ج" },
{ "code": 1670, "label": "چ" },
{ "code": 1581, "label": "ح" },
{ "code": 1576, "label": "ب" },
{ "code": 1606, "label": "ن" },
{ "code": 1605, "label": "م" }
]
]
}

View File

@@ -0,0 +1,27 @@
{
"type": "characters/mod",
"name": "arabic",
"authors": [ "HeiWiper" ],
"direction": "rtl",
"arrangement": [
[
{ "code": 0, "type": "placeholder" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
],
[
{ "code": -202, "label": "view_symbols", "type": "system_gui" },
{ "code": 64, "label": "@", "groupId": 1, "variation": "email_address" },
{ "code": 1548, "label": "،", "groupId": 1, "variation": "normal" },
{ "code": 1548, "label": "،", "groupId": 1, "variation": "password" },
{ "code": 47, "label": "/", "groupId": 1, "variation": "uri" },
{ "code": -210, "label": "language_switch", "type": "system_gui" },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
{ "code": 32, "label": "space" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "email_address" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "normal" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "password" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "uri" },
{ "code": 10, "label": "enter", "groupId": 3, "type": "enter_editing" }
]
]
}

View File

@@ -1,32 +1,28 @@
{
"type": "characters/mod",
"name": "default",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": -1, "label": "shift", "type": "modifier" },
{ "code": 0 },
{ "code": 0, "type": "placeholder" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
], [
],
[
{ "code": -202, "label": "view_symbols", "type": "system_gui" },
{ "code": 64, "label": "@", "variation": "email_address" },
{ "code": 44, "label": ",", "variation": "normal" },
{ "code": 47, "label": "/", "variation": "uri" },
{ "code": -210, "label": "language_switch", "type": "system_gui", "popup": [
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
{ "code": -100, "label": "settings", "type": "system_gui" }
] },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui", "popup": [
{ "code": -100, "label": "settings", "type": "system_gui" }
] },
{ "code": 32, "label": " " },
{ "code": 46, "label": ".", "variation": "email_address" },
{ "code": 46, "label": ".", "variation": "normal" },
{ "code": 46, "label": ".", "variation": "uri" },
{ "code": 10, "label": "enter", "type": "enter_editing", "popup": [
{ "code": -215, "label": "toggle_one_handed_mode", "type": "system_gui" },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" }
] }
{ "code": 64, "label": "@", "groupId": 1, "variation": "email_address" },
{ "code": 44, "label": ",", "groupId": 1, "variation": "normal" },
{ "code": 44, "label": ",", "groupId": 1, "variation": "password" },
{ "code": 47, "label": "/", "groupId": 1, "variation": "uri" },
{ "code": -210, "label": "language_switch", "type": "system_gui" },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
{ "code": 32, "label": "space" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "email_address" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "normal" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "password" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "uri" },
{ "code": 10, "label": "enter", "groupId": 3, "type": "enter_editing" }
]
]
}

View File

@@ -0,0 +1,25 @@
{
"type": "characters/mod",
"name": "dvorak",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": -1, "label": "shift", "type": "modifier" },
{ "code": 0, "type": "placeholder" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
],
[
{ "code": -202, "label": "view_symbols", "type": "system_gui" },
{ "code": 113, "label": "q", "groupId": 1 },
{ "code": -210, "label": "language_switch", "type": "system_gui" },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
{ "code": 32, "label": "space" },
{ "code": 122, "label": "z", "groupId": 2, "variation": "email_address" },
{ "code": 122, "label": "z", "groupId": 2, "variation": "normal" },
{ "code": 122, "label": "z", "groupId": 2, "variation": "password" },
{ "code": 122, "label": "z", "groupId": 2, "variation": "uri" },
{ "code": 10, "label": "enter", "groupId": 3, "type": "enter_editing" }
]
]
}

View File

@@ -0,0 +1,27 @@
{
"type": "characters/mod",
"name": "hebrew",
"authors": [ "Antony" ],
"direction": "rtl",
"arrangement": [
[
{ "code": 0, "type": "placeholder" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
],
[
{ "code": -202, "label": "view_symbols", "type": "system_gui" },
{ "code": 64, "label": "@", "groupId": 1, "variation": "email_address" },
{ "code": 44, "label": ",", "groupId": 1, "variation": "normal" },
{ "code": 44, "label": ",", "groupId": 1, "variation": "password" },
{ "code": 47, "label": "/", "groupId": 1, "variation": "uri" },
{ "code": -210, "label": "language_switch", "type": "system_gui" },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
{ "code": 32, "label": "space" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "email_address" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "normal" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "password" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "uri" },
{ "code": 10, "label": "enter", "groupId": 3, "type": "enter_editing" }
]
]
}

View File

@@ -0,0 +1,27 @@
{
"type": "characters/mod",
"name": "kurdish",
"authors": [ "GoRaN" ],
"direction": "rtl",
"arrangement": [
[
{ "code": 0, "type": "placeholder" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
],
[
{ "code": -202, "label": "view_symbols", "type": "system_gui" },
{ "code": 64, "label": "@", "groupId": 1, "variation": "email_address" },
{ "code": 1567, "label": "؟", "groupId": 1, "variation": "normal" },
{ "code": 1548, "label": "،", "groupId": 1, "variation": "password" },
{ "code": 47, "label": "/", "groupId": 1, "variation": "uri" },
{ "code": -210, "label": "language_switch", "type": "system_gui" },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
{ "code": 32, "label": " " },
{ "code": 46, "label": ".", "groupId": 2, "variation": "email_address" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "normal" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "password" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "uri" },
{ "code": 10, "label": "enter", "groupId": 3, "type": "enter_editing" }
]
]
}

View File

@@ -1,34 +1,31 @@
{
"type": "characters/mod",
"name": "persian",
"authors": [ "PHELAT" ],
"direction": "rtl",
"arrangement": [
[
{ "code": 0 },
{ "code": 0, "type": "placeholder" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
],
[
{ "code": -202, "label": "view_symbols", "type": "system_gui" },
{ "code": 64, "label": "@", "variation": "email_address" },
{ "code": 1548, "label": "،", "variation": "normal" },
{ "code": 47, "label": "/", "variation": "uri" },
{ "code": -210, "label": "language_switch", "type": "system_gui", "popup": [
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
{ "code": -100, "label": "settings", "type": "system_gui" }
] },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui", "popup": [
{ "code": -100, "label": "settings", "type": "system_gui" }
] },
{ "code": 32, "label": " " },
{ "code": 64, "label": "@", "groupId": 1, "variation": "email_address" },
{ "code": 1548, "label": "،", "groupId": 1, "variation": "normal" },
{ "code": 1548, "label": "،", "groupId": 1, "variation": "password" },
{ "code": 47, "label": "/", "groupId": 1, "variation": "uri" },
{ "code": -210, "label": "language_switch", "type": "system_gui" },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" },
{ "code": 32, "label": "space" },
{ "code": 8204, "label": "half_space", "variation": "normal" },
{ "code": 8204, "label": "half_space", "variation": "password" },
{ "code": 1600, "label": "kashida", "variation": "normal" },
{ "code": 46, "label": ".", "variation": "email_address" },
{ "code": 46, "label": ".", "variation": "normal" },
{ "code": 46, "label": ".", "variation": "uri" },
{ "code": 10, "label": "enter", "type": "enter_editing", "popup": [
{ "code": -215, "label": "toggle_one_handed_mode", "type": "system_gui" },
{ "code": -213, "label": "switch_to_media_context", "type": "system_gui" }
] }
{ "code": 1600, "label": "kashida", "variation": "password" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "email_address" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "normal" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "password" },
{ "code": 46, "label": ".", "groupId": 2, "variation": "uri" },
{ "code": 10, "label": "enter", "groupId": 3, "type": "enter_editing" }
]
]
}

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "norwegian",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -15,7 +16,8 @@
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 229, "label": "å" }
], [
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -27,7 +29,8 @@
{ "code": 108, "label": "l" },
{ "code": 248, "label": "ø" },
{ "code": 230, "label": "æ" }
], [
],
[
{ "code": 122, "label": "z" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "persian",
"authors": [ "PHELAT" ],
"direction": "rtl",
"modifier": "persian",
"arrangement": [

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "qwerty",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -14,7 +15,8 @@
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" }
], [
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -24,7 +26,8 @@
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" }
], [
],
[
{ "code": 122, "label": "z" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "qwertz",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -14,7 +15,8 @@
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" }
], [
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -24,7 +26,8 @@
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" }
], [
],
[
{ "code": 121, "label": "y" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -0,0 +1,44 @@
{
"type": "characters",
"name": "serbian_cyrillic",
"authors": ["GrbavaCigla"],
"direction": "ltr",
"arrangement": [
[
{ "code": 1113, "label": "љ" },
{ "code": 1114, "label": "њ" },
{ "code": 1077, "label": "е" },
{ "code": 1088, "label": "р" },
{ "code": 1090, "label": "т" },
{ "code": 1079, "label": "з" },
{ "code": 1091, "label": "у" },
{ "code": 1080, "label": "и" },
{ "code": 1086, "label": "о" },
{ "code": 1087, "label": "п" },
{ "code": 1096, "label": "ш" }
],
[
{ "code": 1072, "label": "а" },
{ "code": 1089, "label": "с" },
{ "code": 1076, "label": "д" },
{ "code": 1092, "label": "ф" },
{ "code": 1075, "label": "г" },
{ "code": 1093, "label": "х" },
{ "code": 1112, "label": "ј" },
{ "code": 1082, "label": "к" },
{ "code": 1083, "label": "л" },
{ "code": 1095, "label": "ч" },
{ "code": 1115, "label": "ћ" }
],
[
{ "code": 1119, "label": "џ" },
{ "code": 1094, "label": "ц" },
{ "code": 1074, "label": "в" },
{ "code": 1073, "label": "б" },
{ "code": 1085, "label": "н" },
{ "code": 1084, "label": "м" },
{ "code": 1106, "label": "ђ" },
{ "code": 1078, "label": "ж" }
]
]
}

View File

@@ -0,0 +1,45 @@
{
"type": "characters",
"name": "serbian_latin",
"authors": ["GrbavaCigla"],
"direction": "ltr",
"arrangement": [
[
{ "code": 113, "label": "q" },
{ "code": 119, "label": "w" },
{ "code": 101, "label": "e" },
{ "code": 114, "label": "r" },
{ "code": 116, "label": "t" },
{ "code": 122, "label": "z" },
{ "code": 117, "label": "u" },
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 353, "label": "š" }
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
{ "code": 102, "label": "f" },
{ "code": 103, "label": "g" },
{ "code": 104, "label": "h" },
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 269, "label": "č" },
{ "code": 263, "label": "ć" }
],
[
{ "code": 121, "label": "y" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },
{ "code": 118, "label": "v" },
{ "code": 98, "label": "b" },
{ "code": 110, "label": "n" },
{ "code": 109, "label": "m" },
{ "code": 273, "label": "đ" },
{ "code": 382, "label": "ž" }
]
]
}

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "spanish",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -14,7 +15,8 @@
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" }
], [
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -25,7 +27,8 @@
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 241, "label": "ñ" }
], [
],
[
{ "code": 122, "label": "z" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "swedish_finnish",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -15,7 +16,8 @@
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 229, "label": "å" }
], [
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -27,7 +29,8 @@
{ "code": 108, "label": "l" },
{ "code": 246, "label": "ö" },
{ "code": 228, "label": "ä" }
], [
],
[
{ "code": 122, "label": "z" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "swiss_french",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -14,10 +15,13 @@
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 232, "label": "è", "popup": [
{ "code": 252, "label": "ü" }
] }
], [
{ "code": 232, "label": "è", "popup": {
"relevant": [
{ "code": 252, "label": "ü" }
]
} }
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -27,13 +31,18 @@
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 233, "label": "é", "popup": [
{ "code": 246, "label": "ö" }
] },
{ "code": 224, "label": "à", "popup": [
{ "code": 228, "label": "ä" }
] }
], [
{ "code": 233, "label": "é", "popup": {
"relevant": [
{ "code": 246, "label": "ö" }
]
} },
{ "code": 224, "label": "à", "popup": {
"relevant": [
{ "code": 228, "label": "ä" }
]
} }
],
[
{ "code": 121, "label": "y" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "swiss_german",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -14,10 +15,13 @@
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 252, "label": "ü", "popup": [
{ "code": 232, "label": "è" }
] }
], [
{ "code": 252, "label": "ü", "popup": {
"relevant": [
{ "code": 232, "label": "è" }
]
} }
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -27,13 +31,18 @@
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 246, "label": "ö", "popup": [
{ "code": 233, "label": "é" }
] },
{ "code": 228, "label": "ä", "popup": [
{ "code": 224, "label": "à" }
] }
], [
{ "code": 246, "label": "ö", "popup": {
"relevant": [
{ "code": 233, "label": "é" }
]
} },
{ "code": 228, "label": "ä", "popup": {
"relevant": [
{ "code": 224, "label": "à" }
]
} }
],
[
{ "code": 121, "label": "y" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -1,6 +1,7 @@
{
"type": "characters",
"name": "swiss_italian",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -14,10 +15,13 @@
{ "code": 105, "label": "i" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 252, "label": "ü", "popup": [
{ "code": 232, "label": "è" }
] }
], [
{ "code": 252, "label": "ü", "popup": {
"relevant": [
{ "code": 232, "label": "è" }
]
} }
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
@@ -27,13 +31,18 @@
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 246, "label": "ö", "popup": [
{ "code": 233, "label": "é" }
] },
{ "code": 228, "label": "ä", "popup": [
{ "code": 224, "label": "à" }
] }
], [
{ "code": 246, "label": "ö", "popup": {
"relevant": [
{ "code": 233, "label": "é" }
]
} },
{ "code": 228, "label": "ä", "popup": {
"relevant": [
{ "code": 224, "label": "à" }
]
} }
],
[
{ "code": 121, "label": "y" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },

View File

@@ -0,0 +1,46 @@
{
"type": "characters",
"name": "turkish_f",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 102, "label": "f" },
{ "code": 103, "label": "g" },
{ "code": 287, "label": "ğ" },
{ "code": 305, "label": "ı" },
{ "code": 111, "label": "o" },
{ "code": 100, "label": "d" },
{ "code": 114, "label": "r" },
{ "code": 110, "label": "n" },
{ "code": 104, "label": "h" },
{ "code": 112, "label": "p" },
{ "code": 113, "label": "q" },
{ "code": 119, "label": "w" }
],
[
{ "code": 117, "label": "u" },
{ "code": 105, "label": "i" },
{ "code": 101, "label": "e" },
{ "code": 97, "label": "a" },
{ "code": 252, "label": "ü" },
{ "code": 116, "label": "t" },
{ "code": 107, "label": "k" },
{ "code": 109, "label": "m" },
{ "code": 108, "label": "l" },
{ "code": 121, "label": "y" },
{ "code": 351, "label": "ş" }
],
[
{ "code": 106, "label": "j" },
{ "code": 246, "label": "ö" },
{ "code": 118, "label": "v" },
{ "code": 99, "label": "c" },
{ "code": 231, "label": "ç" },
{ "code": 122, "label": "z" },
{ "code": 115, "label": "s" },
{ "code": 98, "label": "b" },
{ "code": 120, "label": "x" }
]
]
}

View File

@@ -0,0 +1,46 @@
{
"type": "characters",
"name": "turkish_q",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 113, "label": "q" },
{ "code": 119, "label": "w" },
{ "code": 101, "label": "e" },
{ "code": 114, "label": "r" },
{ "code": 116, "label": "t" },
{ "code": 121, "label": "y" },
{ "code": 117, "label": "u" },
{ "code": 305, "label": "ı" },
{ "code": 111, "label": "o" },
{ "code": 112, "label": "p" },
{ "code": 287, "label": "ğ" },
{ "code": 252, "label": "ü" }
],
[
{ "code": 97, "label": "a" },
{ "code": 115, "label": "s" },
{ "code": 100, "label": "d" },
{ "code": 102, "label": "f" },
{ "code": 103, "label": "g" },
{ "code": 104, "label": "h" },
{ "code": 106, "label": "j" },
{ "code": 107, "label": "k" },
{ "code": 108, "label": "l" },
{ "code": 351, "label": "ş" },
{ "code": 105, "label": "i" }
],
[
{ "code": 122, "label": "z" },
{ "code": 120, "label": "x" },
{ "code": 99, "label": "c" },
{ "code": 118, "label": "v" },
{ "code": 98, "label": "b" },
{ "code": 110, "label": "n" },
{ "code": 109, "label": "m" },
{ "code": 246, "label": "ö" },
{ "code": 231, "label": "ç" }
]
]
}

View File

@@ -1,6 +1,7 @@
{
"type": "extension",
"name": "clipboard_cursor_row",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
@@ -9,7 +10,8 @@
{ "code": -20, "label": "arrow_left", "type": "navigation" },
{ "code": -21, "label": "arrow_right", "type": "navigation" },
{ "code": -131, "label": "clipboard_cut", "type": "enter_editing" },
{ "code": -132, "label": "clipboard_paste", "type": "enter_editing" }
{ "code": -132, "label": "clipboard_paste", "type": "enter_editing" },
{ "code": -214, "label": "switch_to_clipboard_context", "type": "system_gui"}
]
]
}

View File

@@ -1,41 +1,74 @@
{
"type": "extension",
"name": "number_row",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 49, "label": "1", "popup": [
{ "code": 185, "label": "¹" },
{ "code": 189, "label": "½" },
{ "code": 8531, "label": "" },
{ "code": 188, "label": "¼" },
{ "code": 8539, "label": "⅛" }
] },
{ "code": 50, "label": "2", "popup": [
{ "code": 178, "label": "²" },
{ "code": 8532, "label": "" }
] },
{ "code": 51, "label": "3", "popup": [
{ "code": 8540, "label": "⅜" },
{ "code": 179, "label": "³" },
{ "code": 190, "label": "¾" }
] },
{ "code": 52, "label": "4", "popup": [
{ "code": 8308, "label": "" }
] },
{ "code": 53, "label": "5", "popup": [
{ "code": 8541, "label": "⅝" }
] },
{ "code": 54, "label": "6", "popup": [] },
{ "code": 55, "label": "7", "popup": [
{ "code": 8542, "label": "" }
] },
{ "code": 56, "label": "8", "popup": [] },
{ "code": 57, "label": "9", "popup": [] },
{ "code": 48, "label": "0", "popup": [
{ "code": 8709, "label": "" },
{ "code": 8319, "label": "" }
] }
{ "code": 49, "label": "1", "type": "numeric", "popup": {
"main": { "code": 185, "label": "¹" },
"relevant": [
{ "code": 8537, "label": "" },
{ "code": 8528, "label": "" },
{ "code": 8539, "label": "⅛" },
{ "code": 8529, "label": "⅑" },
{ "code": 8530, "label": "" },
{ "code": 189, "label": "½" },
{ "code": 8531, "label": "" },
{ "code": 188, "label": "¼" },
{ "code": 8533, "label": "⅕" }
]
} },
{ "code": 50, "label": "2", "type": "numeric", "popup": {
"main": { "code": 178, "label": "²" },
"relevant": [
{ "code": 8532, "label": "" },
{ "code": 8534, "label": "⅖" }
]
} },
{ "code": 51, "label": "3", "type": "numeric", "popup": {
"main": { "code": 179, "label": "³" },
"relevant": [
{ "code": 8535, "label": "" },
{ "code": 190, "label": "¾" },
{ "code": 8540, "label": "⅜" }
]
} },
{ "code": 52, "label": "4", "type": "numeric", "popup": {
"main": { "code": 8308, "label": "" },
"relevant": [
{ "code": 8536, "label": "⅘" }
]
} },
{ "code": 53, "label": "5", "type": "numeric", "popup": {
"main": { "code": 8309, "label": "⁵" },
"relevant": [
{ "code": 8538, "label": "⅚" },
{ "code": 8541, "label": "⅝" }
]
} },
{ "code": 54, "label": "6", "type": "numeric", "popup": {
"main": { "code": 8310, "label": "⁶" }
} },
{ "code": 55, "label": "7", "type": "numeric", "popup": {
"main": { "code": 8311, "label": "⁷" },
"relevant": [
{ "code": 8542, "label": "⅞" }
]
} },
{ "code": 56, "label": "8", "type": "numeric", "popup": {
"main": { "code": 8312, "label": "⁸" }
} },
{ "code": 57, "label": "9", "type": "numeric", "popup": {
"main": { "code": 8313, "label": "⁹" }
} },
{ "code": 48, "label": "0", "type": "numeric", "popup": {
"main": { "code": 8304, "label": "⁰" },
"relevant": [
{ "code": 8709, "label": "∅" },
{ "code": 8319, "label": "ⁿ" }
]
} }
]
]
}

View File

@@ -1,44 +1,54 @@
{
"type": "numeric_advanced",
"name": "default",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 43, "label": "+", "popup": [
{ "code": 45, "label": "-" },
{ "code": 42, "label": "*" },
{ "code": 47, "label": "/" }
] },
{ "code": 43, "label": "+", "popup": {
"relevant": [
{ "code": 45, "label": "-" },
{ "code": 42, "label": "*" },
{ "code": 47, "label": "/" }
]
} },
{ "code": 49, "label": "1", "type": "numeric" },
{ "code": 50, "label": "2", "type": "numeric" },
{ "code": 51, "label": "3", "type": "numeric" },
{ "code": 37, "label": "%", "popup": [] }
], [
{ "code": 40, "label": "(", "popup": [
{ "code": 91, "label": "[" },
{ "code": 123, "label": "{" }
] },
{ "code": 37, "label": "%" }
],
[
{ "code": 40, "label": "(", "popup": {
"relevant": [
{ "code": 91, "label": "[" },
{ "code": 123, "label": "{" }
]
} },
{ "code": 52, "label": "4", "type": "numeric" },
{ "code": 53, "label": "5", "type": "numeric" },
{ "code": 54, "label": "6", "type": "numeric" },
{ "code": 32, "label": " ", "popup": [] }
], [
{ "code": 41, "label": ")", "popup": [
{ "code": 93, "label": "]" },
{ "code": 125, "label": "}" }
] },
{ "code": 32, "label": "space" }
],
[
{ "code": 41, "label": ")", "popup": {
"relevant": [
{ "code": 93, "label": "]" },
{ "code": 125, "label": "}" }
]
} },
{ "code": 55, "label": "7", "type": "numeric" },
{ "code": 56, "label": "8", "type": "numeric" },
{ "code": 57, "label": "9", "type": "numeric" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
], [
],
[
{ "code": -201, "label": "view_characters", "type": "system_gui" },
{ "code": 44, "label": ",", "popup": [] },
{ "code": 44, "label": "," },
{ "code": -202, "label": "view_symbols", "type": "system_gui" },
{ "code": 48, "label": "0", "type": "numeric" },
{ "code": 61, "label": "=", "popup": [] },
{ "code": 46, "label": ".", "popup": [] },
{ "code": 10, "label": "enter", "type": "enter_editing" }
{ "code": 61, "label": "=" },
{ "code": 46, "label": "." },
{ "code": 10, "label": "enter", "groupId": 3, "type": "enter_editing" }
]
]
}

View File

@@ -1,29 +1,33 @@
{
"type": "numeric",
"name": "default",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 49, "label": "1", "type": "numeric" },
{ "code": 50, "label": "2", "type": "numeric" },
{ "code": 51, "label": "3", "type": "numeric" },
{ "code": 45, "label": "-", "popup": [] }
], [
{ "code": 45, "label": "-" }
],
[
{ "code": 52, "label": "4", "type": "numeric" },
{ "code": 53, "label": "5", "type": "numeric" },
{ "code": 54, "label": "6", "type": "numeric" },
{ "code": 32, "label": " ", "popup": [] }
], [
{ "code": 32, "label": "space" }
],
[
{ "code": 55, "label": "7", "type": "numeric" },
{ "code": 56, "label": "8", "type": "numeric" },
{ "code": 57, "label": "9", "type": "numeric" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
], [
{ "code": 44, "label": ",", "popup": [] },
{ "code": 48, "label": "0", "type": "numeric", "popup": [
{ "code": 43, "label": "+" }
] },
{ "code": 46, "label": ".", "popup": [] },
],
[
{ "code": 44, "label": "," },
{ "code": 48, "label": "0", "type": "numeric", "popup": {
"main": { "code": 43, "label": "+" }
} },
{ "code": 46, "label": "." },
{ "code": 10, "label": "enter", "type": "enter_editing" }
]
]

View File

@@ -1,29 +1,33 @@
{
"type": "phone",
"name": "default",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 49, "label": "1", "type": "numeric" },
{ "code": 50, "label": "2", "type": "numeric" },
{ "code": 51, "label": "3", "type": "numeric" },
{ "code": 45, "label": "-", "popup": [] }
], [
{ "code": 45, "label": "-" }
],
[
{ "code": 52, "label": "4", "type": "numeric" },
{ "code": 53, "label": "5", "type": "numeric" },
{ "code": 54, "label": "6", "type": "numeric" },
{ "code": 32, "label": " ", "popup": [] }
], [
{ "code": 32, "label": "space" }
],
[
{ "code": 55, "label": "7", "type": "numeric" },
{ "code": 56, "label": "8", "type": "numeric" },
{ "code": 57, "label": "9", "type": "numeric" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
], [
],
[
{ "code": -207, "label": "view_phone2", "type": "system_gui" },
{ "code": 48, "label": "0", "type": "numeric", "popup": [
{ "code": 43, "label": "+" }
] },
{ "code": 46, "label": ".", "popup": [] },
{ "code": 48, "label": "0", "type": "numeric", "popup": {
"main": { "code": 43, "label": "+" }
} },
{ "code": 46, "label": "." },
{ "code": 10, "label": "enter", "type": "enter_editing" }
]
]

View File

@@ -1,27 +1,31 @@
{
"type": "phone2",
"name": "default",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 40, "label": "(", "popup": [] },
{ "code": 47, "label": "/", "popup": [] },
{ "code": 41, "label": ")", "popup": [] },
{ "code": 45, "label": "-", "popup": [] }
], [
{ "code": 78, "label": "N", "popup": [] },
{ "code": 40, "label": "(" },
{ "code": 47, "label": "/" },
{ "code": 41, "label": ")" },
{ "code": 45, "label": "-" }
],
[
{ "code": 78, "label": "N" },
{ "code": 44, "label": "pause", "type": "system_gui" },
{ "code": 44, "label": ",", "popup": [] },
{ "code": 32, "label": " ", "popup": [] }
], [
{ "code": 42, "label": "*", "popup": [] },
{ "code": 44, "label": "," },
{ "code": 32, "label": "space" }
],
[
{ "code": 42, "label": "*" },
{ "code": 59, "label": "wait", "type": "system_gui" },
{ "code": 35, "label": "#", "popup": [] },
{ "code": 35, "label": "#" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
], [
],
[
{ "code": -206, "label": "view_phone", "type": "system_gui" },
{ "code": 43, "label": "+", "popup": [] },
{ "code": 46, "label": ".", "popup": [] },
{ "code": 43, "label": "+" },
{ "code": 46, "label": "." },
{ "code": 10, "label": "enter", "type": "enter_editing" }
]
]

View File

@@ -1,21 +1,23 @@
{
"type": "symbols/mod",
"name": "default",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": -203, "label": "view_symbols2", "type": "system_gui" },
{ "code": 0 },
{ "code": 0, "type": "placeholder" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
], [
],
[
{ "code": -201, "label": "view_characters", "type": "system_gui" },
{ "code": 44, "label": ",", "popup": [] },
{ "code": 44, "label": "," },
{ "code": -205, "label": "view_numeric_advanced", "type": "system_gui" },
{ "code": 32, "label": " ", "popup": [] },
{ "code": 46, "label": ".", "popup": [
{ "code": 8230, "label": "…" }
] },
{ "code": 10, "label": "enter", "type": "enter_editing" }
{ "code": 32, "label": "space" },
{ "code": 46, "label": ".", "popup": {
"main": { "code": 8230, "label": "…" }
} },
{ "code": 10, "label": "enter", "groupId": 3, "type": "enter_editing" }
]
]
}

View File

@@ -1,71 +1,96 @@
{
"type": "symbols",
"name": "western_default",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 64, "label": "@", "popup": [] },
{ "code": 35, "label": "#", "popup": [
{ "code": 8470, "label": "№" }
] },
{ "code": 36, "label": "$", "popup": [
{ "code": 8369, "label": "" },
{ "code": 8364, "label": "€" },
{ "code": 162, "label": "¢" },
{ "code": 163, "label": "£" },
{ "code": 165, "label": "¥" }
] },
{ "code": 95, "label": "_", "popup": [] },
{ "code": 38, "label": "&", "popup": [] },
{ "code": 45, "label": "-", "popup": [
{ "code": 8212, "label": "" },
{ "code": 95, "label": "_" },
{ "code": 8211, "label": "" },
{ "code": 183, "label": "·" }
] },
{ "code": 43, "label": "+", "popup": [
{ "code": 177, "label": "±" }
] },
{ "code": 40, "label": "(", "popup": [
{ "code": 91, "label": "[" },
{ "code": 60, "label": "<" },
{ "code": 123, "label": "{" }
] },
{ "code": 41, "label": ")", "popup": [
{ "code": 93, "label": "]" },
{ "code": 62, "label": ">" },
{ "code": 125, "label": "}" }
] },
{ "code": 47, "label": "/", "popup": [] }
], [
{ "code": 42, "label": "*", "popup": [
{ "code": 9733, "label": "" },
{ "code": 8224, "label": "†" },
{ "code": 8225, "label": "‡" }
] },
{ "code": 34, "label": "\"", "popup": [
{ "code": 8222, "label": "„" },
{ "code": 8220, "label": "" },
{ "code": 8221, "label": "" },
{ "code": 171, "label": "«" },
{ "code": 187, "label": "»" }
] },
{ "code": 39, "label": "'", "popup": [
{ "code": 8218, "label": "" },
{ "code": 8216, "label": "" },
{ "code": 8217, "label": "" },
{ "code": 8249, "label": "" },
{ "code": 8250, "label": "" }
] },
{ "code": 58, "label": ":", "popup": [] },
{ "code": 59, "label": ";", "popup": [] },
{ "code": 33, "label": "!", "popup": [
{ "code": 161, "label": "¡" }
] },
{ "code": 63, "label": "?", "popup": [
{ "code": 191, "label": "¿" },
{ "code": 8253, "label": "" }
] }
{ "code": 64, "label": "@" },
{ "code": 35, "label": "#", "popup": {
"main": { "code": 8470, "label": "№" }
} },
{ "code": 36, "label": "$", "popup": {
"main": { "code": 8364, "label": "" },
"relevant": [
{ "code": 8369, "label": "" },
{ "code": 162, "label": "¢" },
{ "code": 163, "label": "£" },
{ "code": 165, "label": "¥" }
]
} },
{ "code": 37, "label": "%", "popup": {
"main": { "code": 8240, "label": "" },
"relevant": [
{ "code": 8453, "label": "" }
]
} },
{ "code": 38, "label": "&" },
{ "code": 45, "label": "-", "popup": {
"main": { "code": 95, "label": "_" },
"relevant": [
{ "code": 8212, "label": "" },
{ "code": 8211, "label": "" },
{ "code": 183, "label": "·" }
]
} },
{ "code": 43, "label": "+", "popup": {
"main": { "code": 177, "label": "±" }
} },
{ "code": 40, "label": "(", "popup": {
"main": { "code": 60, "label": "<" },
"relevant": [
{ "code": 91, "label": "[" },
{ "code": 123, "label": "{" }
]
} },
{ "code": 41, "label": ")", "popup": {
"main": { "code": 62, "label": ">" },
"relevant": [
{ "code": 93, "label": "]" },
{ "code": 125, "label": "}" }
]
} },
{ "code": 47, "label": "/" }
],
[
{ "code": 42, "label": "*", "popup": {
"main": { "code": 8224, "label": "" },
"relevant": [
{ "code": 9733, "label": "" },
{ "code": 8225, "label": "‡" }
]
} },
{ "code": 34, "label": "\"", "popup": {
"main": { "code": 8221, "label": "" },
"relevant": [
{ "code": 8222, "label": "" },
{ "code": 8220, "label": "" },
{ "code": 171, "label": "«" },
{ "code": 187, "label": "»" }
]
} },
{ "code": 39, "label": "'", "popup": {
"main": { "code": 8217, "label": "" },
"relevant": [
{ "code": 8218, "label": "" },
{ "code": 8216, "label": "" },
{ "code": 8249, "label": "" },
{ "code": 8250, "label": "" }
]
} },
{ "code": 58, "label": ":", "popup": {
"main": { "code": 8942, "label": "⋮" }
} },
{ "code": 59, "label": ";" },
{ "code": 33, "label": "!", "popup": {
"main": { "code": 161, "label": "¡" }
} },
{ "code": 63, "label": "?", "popup": {
"main": { "code": 191, "label": "¿" },
"relevant": [
{ "code": 8253, "label": "‽" }
]
} }
]
]
}

View File

@@ -1,19 +1,35 @@
{
"type": "symbols2/mod",
"name": "default",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": -202, "label": "view_symbols", "type": "system_gui" },
{ "code": 0 },
{ "code": 0, "type": "placeholder" },
{ "code": -5, "label": "delete", "type": "enter_editing" }
], [
],
[
{ "code": -201, "label": "view_characters", "type": "system_gui" },
{ "code": 60, "label": "<", "popup": [] },
{ "code": 60, "label": "<", "popup": {
"relevant": [
{ "code": 171, "label": "«" },
{ "code": 8804, "label": "≤" },
{ "code": 8249, "label": "" },
{ "code":10216, "label": "⟨" }
]
} },
{ "code": -205, "label": "view_numeric_advanced", "type": "system_gui" },
{ "code": 32, "label": " ", "popup": [] },
{ "code": 62, "label": ">", "popup": [] },
{ "code": 10, "label": "enter", "type": "enter_editing" }
{ "code": 32, "label": "space" },
{ "code": 62, "label": ">", "popup": {
"relevant": [
{ "code":10217, "label": "⟩" },
{ "code": 8250, "label": "" },
{ "code": 8805, "label": "≥" },
{ "code": 187, "label": "»" }
]
} },
{ "code": 10, "label": "enter", "groupId": 3, "type": "enter_editing" }
]
]
}

View File

@@ -1,69 +1,82 @@
{
"type": "symbols2",
"name": "western_default",
"authors": [ "patrickgold" ],
"direction": "ltr",
"arrangement": [
[
{ "code": 126, "label": "~", "popup": [] },
{ "code": 96, "label": "`", "popup": [] },
{ "code": 124, "label": "|", "popup": [] },
{ "code": 8226, "label": "•", "popup": [
{ "code": 9827, "label": "" },
{ "code": 9824, "label": "♠" },
{ "code": 9834, "label": "" },
{ "code": 9829, "label": "" },
{ "code": 9830, "label": "" }
] },
{ "code": 8730, "label": "√", "popup": [] },
{ "code": 960, "label": "π", "popup": [
{ "code": 937, "label": "Ω" },
{ "code": 928, "label": "Π" },
{ "code": 956, "label": "μ" }
] },
{ "code": 247, "label": "÷", "popup": [] },
{ "code": 215, "label": "×", "popup": [] },
{ "code": 182, "label": "¶", "popup": [
{ "code": 167, "label": "§" }
] },
{ "code": 8710, "label": "∆", "popup": [] }
], [
{ "code": 163, "label": "£", "popup": [] },
{ "code": 162, "label": "¢", "popup": [] },
{ "code": 8364, "label": "", "popup": [] },
{ "code": 165, "label": "¥", "popup": [] },
{ "code": 94, "label": "^", "popup": [
{ "code": 8592, "label": "" },
{ "code": 8593, "label": "↑" },
{ "code": 8595, "label": "↓" },
{ "code": 8594, "label": "" }
] },
{ "code": 176, "label": "°", "popup": [
{ "code": 8242, "label": "" },
{ "code": 8243, "label": "" }
] },
{ "code": 61, "label": "=", "popup": [
{ "code": 8734, "label": "" },
{ "code": 8800, "label": "" },
{ "code": 8776, "label": "" }
] },
{ "code": 123, "label": "{", "popup": [
{ "code": 40, "label": "(" }
] },
{ "code": 125, "label": "}", "popup": [
{ "code": 41, "label": ")" }
] },
{ "code": 92, "label": "\\", "popup": [] }
], [
{ "code": 37, "label": "%", "popup": [
{ "code": 8240, "label": "‰" },
{ "code": 8453, "label": "" }
] },
{ "code": 169, "label": "©", "popup": [] },
{ "code": 174, "label": "®", "popup": [] },
{ "code": 8482, "label": "", "popup": [] },
{ "code": 10003, "label": "", "popup": [] },
{ "code": 91, "label": "[", "popup": [] },
{ "code": 93, "label": "]", "popup": [] }
{ "code": 126, "label": "~" },
{ "code": 96, "label": "`" },
{ "code": 124, "label": "|" },
{ "code": 8226, "label": "•", "popup": {
"main": { "code": 9834, "label": "" },
"relevant": [
{ "code": 9827, "label": "" },
{ "code": 9824, "label": "" },
{ "code": 9829, "label": "" },
{ "code": 9830, "label": "♦" }
]
} },
{ "code": 8730, "label": "" },
{ "code": 960, "label": "π", "popup": {
"main": { "code": 928, "label": "Π" },
"relevant": [
{ "code": 969, "label": "ω" },
{ "code": 945, "label": "α" },
{ "code": 946, "label": "β" },
{ "code": 937, "label": "Ω" },
{ "code": 956, "label": "μ" }
]
} },
{ "code": 247, "label": "÷" },
{ "code": 215, "label": "×" },
{ "code": 182, "label": "", "popup": {
"main": { "code": 167, "label": "§" }
} },
{ "code": 8710, "label": "" }
],
[
{ "code": 163, "label": "£" },
{ "code": 162, "label": "¢" },
{ "code": 8364, "label": "" },
{ "code": 165, "label": "¥" },
{ "code": 94, "label": "^", "popup": {
"main": { "code": 8593, "label": "↑" },
"relevant": [
{ "code": 8592, "label": "" },
{ "code": 8595, "label": "" },
{ "code": 8594, "label": "" }
]
} },
{ "code": 176, "label": "°", "popup": {
"main": { "code": 8242, "label": "" },
"relevant": [
{ "code": 8243, "label": "" }
]
} },
{ "code": 61, "label": "=", "popup": {
"main": { "code": 8800, "label": "≠" },
"relevant": [
{ "code": 8734, "label": "" },
{ "code": 8776, "label": "≈" }
]
} },
{ "code": 123, "label": "{", "popup": {
"main": { "code": 40, "label": "(" }
} },
{ "code": 125, "label": "}", "popup": {
"main": { "code": 41, "label": ")" }
} },
{ "code": 92, "label": "\\" }
],
[
{ "code": 95, "label": "_" },
{ "code": 169, "label": "©" },
{ "code": 174, "label": "®" },
{ "code": 8482, "label": "™" },
{ "code": 10003, "label": "✓" },
{ "code": 91, "label": "[" },
{ "code": 93, "label": "]" }
]
]
}

View File

@@ -0,0 +1,73 @@
{
"$type": "dev.patrickgold.florisboard.ime.theme.Theme",
"name": "floris_black",
"label": "Floris Black",
"authors": [ "serebit" ],
"isNightTheme": true,
"attributes": {
"window": {
"colorPrimary": "#388E3C",
"colorPrimaryDark": "#306D32",
"colorAccent": "#FF9800",
"navigationBarColor": "@keyboard/background",
"navigationBarLight": "false",
"semiTransparentColor": "#20FFFFFF",
"textColor": "#EEEEEE"
},
"keyboard": {
"background": "#000000"
},
"key": {
"background": "#212121",
"backgroundPressed": "#3D3D3D",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor",
"showBorder": "true"
},
"key:enter": {
"background": "@window/colorPrimary",
"backgroundPressed": "@window/colorPrimaryDark",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor"
},
"key:shift:capslock": {
"foreground": "@window/colorAccent",
"foregroundPressed": "@window/colorAccent"
},
"media": {
"foreground": "@window/textColor",
"foregroundAlt": "#BDBDBD"
},
"oneHanded": {
"background": "#000000",
"foreground": "@window/textColor"
},
"popup": {
"background": "#424242",
"backgroundActive": "#707070",
"foreground": "@window/textColor"
},
"privateMode": {
"background": "#7800BF",
"foreground": "@window/textColor"
},
"smartbar": {
"background": "transparent",
"foreground": "@window/textColor",
"foregroundAlt": "#73FFFFFF"
},
"smartbarButton": {
"background": "@key/background",
"foreground": "@key/foreground"
},
"extractEditLayout": {
"background": "#282828",
"foreground": "@window/textColor",
"foregroundAlt": "#73FFFFFF"
},
"extractActionButton": {
"background": "@smartbarButton/background",
"foreground": "@smartbarButton/foreground"
}
}
}

View File

@@ -0,0 +1,76 @@
{
"$type": "dev.patrickgold.florisboard.ime.theme.Theme",
"name": "floris_black_borderless",
"label": "Floris Black Borderless",
"authors": [ "serebit" ],
"isNightTheme": true,
"attributes": {
"window": {
"colorPrimary": "#388E3C",
"colorPrimaryDark": "#306D32",
"colorAccent": "#FF9800",
"navigationBarColor": "@keyboard/background",
"navigationBarLight": "false",
"semiTransparentColor": "#20FFFFFF",
"textColor": "#EEEEEE"
},
"keyboard": {
"background": "#000000"
},
"key": {
"background": "transparent",
"backgroundPressed": "#7F616161",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor",
"showBorder": "false"
},
"key:enter": {
"background": "@window/colorPrimary",
"backgroundPressed": "@window/colorPrimaryDark",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor"
},
"key:shift:capslock": {
"foreground": "@window/colorAccent",
"foregroundPressed": "@window/colorAccent"
},
"key:space": {
"background": "#46616161"
},
"media": {
"foreground": "@window/textColor",
"foregroundAlt": "#BDBDBD"
},
"oneHanded": {
"background": "#000000",
"foreground": "@window/textColor"
},
"popup": {
"background": "#363636",
"backgroundActive": "#5F5F5F",
"foreground": "@window/textColor"
},
"privateMode": {
"background": "#7800BF",
"foreground": "@window/textColor"
},
"smartbar": {
"background": "transparent",
"foreground": "@window/textColor",
"foregroundAlt": "#73FFFFFF"
},
"smartbarButton": {
"background": "#212121",
"foreground": "@window/textColor"
},
"extractEditLayout": {
"background": "#282828",
"foreground": "@window/textColor",
"foregroundAlt": "#73FFFFFF"
},
"extractActionButton": {
"background": "@smartbarButton/background",
"foreground": "@smartbarButton/foreground"
}
}
}

View File

@@ -1,60 +1,73 @@
{
"$type": "dev.patrickgold.florisboard.ime.theme.Theme",
"name": "floris_day",
"displayName": "Floris Day",
"author": "patrickgold",
"label": "Floris Day",
"authors": [ "patrickgold" ],
"isNightTheme": false,
"attributes": {
"window": {
"colorPrimary": "#4CAF50",
"colorPrimaryDark": "#388E3C",
"colorAccent": "#FF9800",
"navigationBarColor": "@keyboard/bgColor",
"navigationBarColor": "@keyboard/background",
"navigationBarLight": "true",
"semiTransparentColor": "#20000000",
"textColor": "#000000"
},
"keyboard": {
"bgColor": "#E0E0E0"
"background": "#E0E0E0"
},
"key": {
"bgColor": "#FFFFFF",
"bgColorPressed": "#F5F5F5",
"fgColor": "@window/textColor"
"background": "#FFFFFF",
"backgroundPressed": "#F5F5F5",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor",
"showBorder": "true"
},
"keyEnter": {
"bgColor": "@window/colorPrimary",
"bgColorPressed": "@window/colorPrimaryDark",
"fgColor": "#FFFFFF"
"key:enter": {
"background": "@window/colorPrimary",
"backgroundPressed": "@window/colorPrimaryDark",
"foreground": "#FFFFFF",
"foregroundPressed": "#FFFFFF"
},
"keyPopup": {
"bgColor": "#EEEEEE",
"bgColorActive": "#BDBDBD",
"fgColor": "@window/textColor"
},
"keyShift": {
"bgColor": "@key/bgColor",
"bgColorPressed": "@key/bgColorPressed",
"fgColor": "@window/textColor",
"fgColorCapsLock": "@window/colorAccent"
"key:shift:capslock": {
"foreground": "@window/colorAccent",
"foregroundPressed": "@window/colorAccent"
},
"media": {
"fgColor": "@window/textColor",
"fgColorAlt": "#757575"
"foreground": "@window/textColor",
"foregroundAlt": "#757575"
},
"oneHanded": {
"bgColor": "#E8F5E9"
"background": "#E8F5E9",
"foreground": "#424242"
},
"oneHandedButton": {
"fgColor": "#424242"
"popup": {
"background": "#EEEEEE",
"backgroundActive": "#BDBDBD",
"foreground": "@window/textColor"
},
"privateMode": {
"background": "#A000FF",
"foreground": "#FFFFFF"
},
"smartbar": {
"bgColor": "transparent",
"fgColor": "@window/textColor",
"fgColorAlt": "#8A8A8A"
"background": "transparent",
"foreground": "@window/textColor",
"foregroundAlt": "#8A8A8A"
},
"smartbarButton": {
"bgColor": "@key/bgColor",
"fgColor": "@key/fgColor"
"background": "@key/background",
"foreground": "@key/foreground"
},
"extractEditLayout": {
"background": "#E8E8E8",
"foreground": "@window/textColor",
"foregroundAlt": "#8A8A8A"
},
"extractActionButton": {
"background": "@smartbarButton/background",
"foreground": "@smartbarButton/foreground"
}
}
}

View File

@@ -0,0 +1,77 @@
{
"$type": "dev.patrickgold.florisboard.ime.theme.Theme",
"name": "floris_day_borderless",
"label": "Floris Day Borderless",
"authors": [ "patrickgold" ],
"isNightTheme": false,
"attributes": {
"window": {
"colorPrimary": "#4CAF50",
"colorPrimaryDark": "#388E3C",
"colorAccent": "#FF9800",
"navigationBarColor": "@keyboard/background",
"navigationBarLight": "true",
"semiTransparentColor": "#20000000",
"textColor": "#000000"
},
"keyboard": {
"background": "#E0E0E0"
},
"key": {
"background": "transparent",
"backgroundPressed": "#7FF5F5F5",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor",
"showBorder": "false"
},
"key:enter": {
"background": "@window/colorPrimary",
"backgroundPressed": "@window/colorPrimaryDark",
"foreground": "#FFFFFF",
"foregroundPressed": "#FFFFFF"
},
"key:shift:capslock": {
"foreground": "@window/colorAccent",
"foregroundPressed": "@window/colorAccent"
},
"key:space": {
"background": "#7FF5F5F5",
"backgroundPressed": "#FFF5F5F5"
},
"media": {
"foreground": "@window/textColor",
"foregroundAlt": "#757575"
},
"oneHanded": {
"background": "#E8F5E9",
"foreground": "#424242"
},
"popup": {
"background": "#EEEEEE",
"backgroundActive": "#BDBDBD",
"foreground": "@window/textColor"
},
"privateMode": {
"background": "#A000FF",
"foreground": "#FFFFFF"
},
"smartbar": {
"background": "transparent",
"foreground": "@window/textColor",
"foregroundAlt": "#8A8A8A"
},
"smartbarButton": {
"background": "#FFFFFF",
"foreground": "@window/textColor"
},
"extractEditLayout": {
"background": "#E8E8E8",
"foreground": "@window/textColor",
"foregroundAlt": "#8A8A8A"
},
"extractActionButton": {
"background": "@smartbarButton/background",
"foreground": "@smartbarButton/foreground"
}
}
}

View File

@@ -1,60 +1,73 @@
{
"$type": "dev.patrickgold.florisboard.ime.theme.Theme",
"name": "floris_night",
"displayName": "Floris Night",
"author": "patrickgold",
"label": "Floris Night",
"authors": [ "patrickgold" ],
"isNightTheme": true,
"attributes": {
"window": {
"colorPrimary": "#4CAF50",
"colorPrimaryDark": "#388E3C",
"colorAccent": "#FF9800",
"navigationBarColor": "@keyboard/bgColor",
"navigationBarColor": "@keyboard/background",
"navigationBarLight": "false",
"semiTransparentColor": "#20FFFFFF",
"textColor": "#FFFFFF"
},
"keyboard": {
"bgColor": "#212121"
"background": "#212121"
},
"key": {
"bgColor": "#424242",
"bgColorPressed": "#616161",
"fgColor": "@window/textColor"
"background": "#424242",
"backgroundPressed": "#616161",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor",
"showBorder": "true"
},
"keyEnter": {
"bgColor": "@window/colorPrimary",
"bgColorPressed": "@window/colorPrimaryDark",
"fgColor": "#FFFFFF"
"key:enter": {
"background": "@window/colorPrimary",
"backgroundPressed": "@window/colorPrimaryDark",
"foreground": "#FFFFFF",
"foregroundPressed": "#FFFFFF"
},
"keyPopup": {
"bgColor": "#757575",
"bgColorActive": "#BDBDBD",
"fgColor": "@window/textColor"
},
"keyShift": {
"bgColor": "@key/bgColor",
"bgColorPressed": "@key/bgColorPressed",
"fgColor": "@window/textColor",
"fgColorCapsLock": "@window/colorAccent"
"key:shift:capslock": {
"foreground": "@window/colorAccent",
"foregroundPressed": "@window/colorAccent"
},
"media": {
"fgColor": "@window/textColor",
"fgColorAlt": "#BDBDBD"
"foreground": "@window/textColor",
"foregroundAlt": "#BDBDBD"
},
"oneHanded": {
"bgColor": "#1B5E20"
"background": "#1B5E20",
"foreground": "#EEEEEE"
},
"oneHandedButton": {
"fgColor": "#EEEEEE"
"popup": {
"background": "#757575",
"backgroundActive": "#BDBDBD",
"foreground": "@window/textColor"
},
"privateMode": {
"background": "#A000FF",
"foreground": "#FFFFFF"
},
"smartbar": {
"bgColor": "transparent",
"fgColor": "@window/textColor",
"fgColorAlt": "#73FFFFFF"
"background": "transparent",
"foreground": "@window/textColor",
"foregroundAlt": "#73FFFFFF"
},
"smartbarButton": {
"bgColor": "@key/bgColor",
"fgColor": "@key/fgColor"
"background": "@key/background",
"foreground": "@key/foreground"
},
"extractEditLayout": {
"background": "#282828",
"foreground": "@window/textColor",
"foregroundAlt": "#73FFFFFF"
},
"extractActionButton": {
"background": "@smartbarButton/background",
"foreground": "@smartbarButton/foreground"
}
}
}

View File

@@ -0,0 +1,77 @@
{
"$type": "dev.patrickgold.florisboard.ime.theme.Theme",
"name": "floris_night_borderless",
"label": "Floris Night Borderless",
"authors": [ "patrickgold" ],
"isNightTheme": true,
"attributes": {
"window": {
"colorPrimary": "#4CAF50",
"colorPrimaryDark": "#388E3C",
"colorAccent": "#FF9800",
"navigationBarColor": "@keyboard/background",
"navigationBarLight": "false",
"semiTransparentColor": "#20FFFFFF",
"textColor": "#FFFFFF"
},
"keyboard": {
"background": "#212121"
},
"key": {
"background": "transparent",
"backgroundPressed": "#7F616161",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor",
"showBorder": "false"
},
"key:enter": {
"background": "@window/colorPrimary",
"backgroundPressed": "@window/colorPrimaryDark",
"foreground": "#FFFFFF",
"foregroundPressed": "#FFFFFF"
},
"key:shift:capslock": {
"foreground": "@window/colorAccent",
"foregroundPressed": "@window/colorAccent"
},
"key:space": {
"background": "#2F616161",
"backgroundPressed": "#7F616161"
},
"media": {
"foreground": "@window/textColor",
"foregroundAlt": "#BDBDBD"
},
"oneHanded": {
"background": "#1B5E20",
"foreground": "#EEEEEE"
},
"popup": {
"background": "#757575",
"backgroundActive": "#BDBDBD",
"foreground": "@window/textColor"
},
"privateMode": {
"background": "#A000FF",
"foreground": "#FFFFFF"
},
"smartbar": {
"background": "transparent",
"foreground": "@window/textColor",
"foregroundAlt": "#73FFFFFF"
},
"smartbarButton": {
"background": "#424242",
"foreground": "@window/textColor"
},
"extractEditLayout": {
"background": "#282828",
"foreground": "@window/textColor",
"foregroundAlt": "#73FFFFFF"
},
"extractActionButton": {
"background": "@smartbarButton/background",
"foreground": "@smartbarButton/foreground"
}
}
}

View File

@@ -0,0 +1,64 @@
{
"$type": "dev.patrickgold.florisboard.ime.theme.Theme",
"name": "gboard_day",
"label": "Gboard Day",
"authors": [ "patrickgold", "itskareem" ],
"isNightTheme": false,
"attributes": {
"window": {
"colorPrimary": "#0479ed",
"colorPrimaryDark": "#0467c9",
"colorAccent": "#FF9800",
"navigationBarColor": "@keyboard/background",
"navigationBarLight": "true",
"semiTransparentColor": "#20000000",
"textColor": "#000000"
},
"keyboard": {
"background": "#D1D6DC"
},
"key": {
"background": "#FCFFFF",
"backgroundPressed": "#F5F5F5",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor",
"showBorder": "true"
},
"key:enter": {
"background": "@window/colorPrimary",
"backgroundPressed": "@window/colorPrimaryDark",
"foreground": "#FFFFFF",
"foregroundPressed": "#FFFFFF"
},
"key:shift:capslock": {
"foreground": "@window/colorAccent",
"foregroundPressed": "@window/colorAccent"
},
"media": {
"foreground": "@window/textColor",
"foregroundAlt": "#757575"
},
"oneHanded": {
"background": "@keyboard/background",
"foreground": "#424242"
},
"popup": {
"background": "#EEEEEE",
"backgroundActive": "#BDBDBD",
"foreground": "@window/textColor"
},
"privateMode": {
"background": "#A000FF",
"foreground": "#FFFFFF"
},
"smartbar": {
"background": "@keyboard/background",
"foreground": "@window/textColor",
"foregroundAlt": "#8A8A8A"
},
"smartbarButton": {
"background": "@key/background",
"foreground": "@key/foreground"
}
}
}

View File

@@ -0,0 +1,64 @@
{
"$type": "dev.patrickgold.florisboard.ime.theme.Theme",
"name": "gboard_night",
"label": "Gboard Night",
"authors": [ "Netscaping" ],
"isNightTheme": true,
"attributes": {
"window": {
"colorPrimary": "#5e97f6",
"colorPrimaryDark": "#4285f4",
"colorAccent": "#FF9800",
"navigationBarColor": "@keyboard/background",
"navigationBarLight": "false",
"semiTransparentColor": "#20FFFFFF",
"textColor": "#FFFFFF"
},
"keyboard": {
"background": "#292e33"
},
"key": {
"background": "#484c4f",
"backgroundPressed": "#5e5e60",
"foreground": "@window/textColor",
"foregroundPressed": "@window/textColor",
"showBorder": "true"
},
"key:enter": {
"background": "@window/colorPrimary",
"backgroundPressed": "@window/colorPrimaryDark",
"foreground": "#FFFFFF",
"foregroundPressed": "#FFFFFF"
},
"key:shift:capslock": {
"foreground": "@window/colorAccent",
"foregroundPressed": "@window/colorAccent"
},
"media": {
"foreground": "@window/textColor",
"foregroundAlt": "#BDBDBD"
},
"oneHanded": {
"background": "#373c41",
"foreground": "#9b9da0"
},
"popup": {
"background": "#373c41",
"backgroundActive": "#5a5e60",
"foreground": "@window/textColor"
},
"privateMode": {
"background": "#A000FF",
"foreground": "#FFFFFF"
},
"smartbar": {
"background": "transparent",
"foreground": "#d4d5d6",
"foregroundAlt": "#73FFFFFF"
},
"smartbarButton": {
"background": "#FFFFFF",
"foreground": "#686868"
}
}
}

View File

@@ -61,6 +61,30 @@ limitations under the License.
<hr>
<h3>ExpandableFab</h3>
<span>Copyright (c) 2020 Kelvin Abumere and The Nambi Company</span>
<pre>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
</pre>
<hr>
<h3>FlexboxLayout</h3>
<span>Copyright 2018 Google LLC</span>
<pre>
@@ -479,6 +503,24 @@ limitations under the License.
<hr>
<h3>kotlin-result</h3>
<span>Copyright (c) 2017-2020 Michael Bull (https://www.michael-bull.com)</span>
<pre>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
</pre>
<hr>
<h3>Material Icons</h3>
<span>Copyright 2018 Google LLC</span>
<pre>
@@ -696,6 +738,24 @@ You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
</pre>
<hr>
<h3>Timber</h3>
<span>Copyright 2013 Jake Wharton</span>
<pre>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -740,6 +800,384 @@ shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.
</pre>
<hr>
<h3>Dictionary Source 1: wordfreq data</h3>
<span>Copyright (c) 2015 Luminoso Technologies, Inc.</span>
<pre>
Creative Commons Attribution-ShareAlike 4.0 International Public
License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-ShareAlike 4.0 International Public License ("Public
License"). To the extent this Public License may be interpreted as a
contract, You are granted the Licensed Rights in consideration of Your
acceptance of these terms and conditions, and the Licensor grants You
such rights in consideration of benefits the Licensor receives from
making the Licensed Material available under these terms and
conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. BY-SA Compatible License means a license listed at
creativecommons.org/compatiblelicenses, approved by Creative
Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
e. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name
of a Creative Commons Public License. The License Elements of this
Public License are Attribution and ShareAlike.
h. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
i. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
k. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
l. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
m. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. Additional offer from the Licensor -- Adapted Material.
Every recipient of Adapted Material from You
automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material
under the conditions of the Adapter's License You apply.
c. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share
Adapted Material You produce, the following conditions also apply.
1. The Adapter's License You apply must be a Creative Commons
license with the same License Elements, this version or
later, or a BY-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the
Adapter's License You apply. You may satisfy this condition
in any reasonable manner based on the medium, means, and
context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms
or conditions on, or apply any Effective Technological
Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material,
including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.
</pre>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

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