Commit Graph

736 Commits

Author SHA1 Message Date
ec551f0ebf Fix very small label size on 11+ columns layouts
The label size was computed against the width of keys on the keyboard,
which resulted in a different label size on different layouts.
Notably, it made the labels very small on a 11 columns layout and
relatively larger on the numpad.

The label size is now computed against a baseline of 1/10 of the width
of the screen.
2025-07-17 22:08:31 +02:00
13acf90541 Replaced combining_acute with combining_aigu (#1040)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-07-13 19:51:55 +02:00
a83b40066e Use screen width to switch layouts (#1029)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
This changes layout switching logic to detect screen width rather than increasingly specific portrait/landscape/unfolded state.

This reduces number of different auto-layouts back to 2: narrow devices (such as a phone in portrait) and wide devices (such as a phone in landscape or a tablet).
2025-07-11 19:14:36 +02:00
c6e35ba4b6 Improve layout cyrl_jcuken_as (#1039) 2025-07-11 18:55:20 +02:00
898956256a Workaround Godot editor not implementing setSelection() (#1033)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
This was tested against:

    org.godotengine.editor.v3
    org.godotengine.editor.v4
2025-07-06 23:18:58 +02:00
8cb9b30461 Fix crash with unexpected value in NumberLayout pref (#1036) 2025-07-06 21:57:41 +02:00
42fa47459c Promote ComposeKeyData.java 2025-07-02 00:30:58 +02:00
c308b57611 feat: added јcuken leyout for all slavic language (#992)
Co-authored-by: Pavel «Mal Bajun» Skrylev <majioa@yandex.ru>
2025-07-01 23:56:07 +02:00
52c0e8c798 Add cyrillic combining kavyka and palatalization (#998) 2025-07-01 23:42:49 +02:00
1ff3bf2fc9 Make vertical sliders slower (#1023)
Make vertical sliders slower. The intention is to make the up/down
slider slower, as we have less visibility and do smaller movements in
that direction.
2025-07-01 23:41:49 +02:00
a08db25661 Fix extra bottom margin when navbar buttons absent (#1024)
* Fix extra bottom margin when navbar buttons absent

Fix the extra space that was appearing when the gesture-navigation bar
didn't contain the "switch IME" or "close IME" buttons.
This was found on OneUI 7 with the two "keyboard key" related options
turned off.

* Remove unneeded nav bar detection and width computation
2025-07-01 23:27:24 +02:00
4ed8594794 Add option to also disable number entry layout (#1007)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-06-29 16:50:56 +02:00
f36a7c8e9d Fix unwanted bottom margin on Samsung OneUI 7 (#1022)
This fixes the unwanted margin at the bottom of the screen on
Samsung One UI 7 based on Android 15.
2025-06-29 16:18:49 +02:00
9d12981b34 cut and copy with built in keys only if text is selected (#1019)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
cut and copy with built in keys only if text is selected to keep existing clipboard content. does not work for key combinations like ctrl+x or ctrl+c.
2025-06-21 22:15:22 +02:00
c6da6d6ab5 Fix selection mode not exited when selection cleared (#1020)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
The selection mode was not exited when the selection was cleared with,
for example, ctrl+x.
2025-06-19 23:12:37 +02:00
2e0be0b32b Added Macedonian language layout (#1016) 2025-06-19 23:11:17 +02:00
42528ab211 Improve selection mode when selection ends cross (#1013)
Some checks failed
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
Emptying the selection with the spacebar slider puts the selection mode
in an unexpected state. This checks that this doesn't happen.

The selection ends can now cross each other, reversing the selection
order. Special care is made to make sure that the sliders go in the
expected direction.

Pointers is changed to send a `onPointerDown` for the first slider event
instead of a `onPointerHold`. This event is detected in
`KeyEventHandler` and the selection ends are reordered if needed when
sliding again.
2025-06-19 01:10:06 +02:00
71d2784026 Add <row scale=""> attribute (#1018)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
* Add <row scale=""> attribute

Scale the width of the keys in the row to match a value. Useful to
remove space on the right of the row without adding a 'width' attribute
to each key.

* layouts: Use the 'scale=""' attribute in builtin layouts

This removes the very specific 'width' values.
2025-06-18 00:49:34 +02:00
f9b844e988 Increase the clipboard history size to 6
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-06-14 11:12:21 +02:00
2a50a4a129 Fix high keyboard height making it overflows
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
The calculation for the size of each rows now avoid making the keyboard
bigger than the screen if the Keyboard Height option is unusually high.

The height calculation with the default settings is changed slightly, it
is now assuming that a layout is 3.95 rows high instead of 4. This is
because the bottom row is usually 0.95% the size of other rows.
2025-05-30 20:07:26 +02:00
9ab099175d Fix label size when the keyboard is unusually high
The label size is computed relatively to the width of the keyboard when
the height is larger than 3/2 of the width. This ensures that the labels
have a reasonable size when the keyboard height increases.
2025-05-30 20:07:26 +02:00
536b8d1f67 Add icelandic layout (#999)
Some checks failed
Check layouts / check_layout.output (push) Waiting to run
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-05-25 16:44:50 +02:00
d36452d9c3 Update layout customization info in srcs/layouts/latn_qwerty_us.xml (#1001)
- Added info on bottom row customization. (#637)
- Added useful links.
2025-05-25 16:40:15 +02:00
97355881a8 Better support for foldable devices (#982)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
* Add AndroidX WindowManager

unfortunately, this seems to be the only way to get fold state, native Android APIs are internal. To add this, we need to update some dependencies, raise java version and raise compile SDK.

* adds separate layouts and separate layout settings for folded and unfolded state of the device.

The affected settings are:
+ the margin bottom settings
+ the horizontal margin settings
+ the keyboard height settings

* Update shell.nix
2025-05-22 23:54:13 +02:00
a7312054b5 compose: Add compose+A+e as compose+A+E and many others
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
compile.py is changed to report when compose+Upper+Upper exists but
compse+Upper+Lower do not.

With these findings, many sequences are added.
2025-05-16 00:59:35 +02:00
3b94bf6a17 Fix duplicated or missing keys and more in layouts
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
Fix several warnings spotted by check_layout.
2025-05-11 23:06:19 +02:00
de5c5b5b60 Sinhala phonetic layout (#965)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-04-20 20:05:02 +02:00
d6dfb5c18c Add compose sequences for n͠g, N͠g and g̃
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-04-19 15:10:07 +02:00
460e5214a2 Add class Modmap and test KeyModifier
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-04-15 00:05:52 +02:00
2bd3e107ac Remove the Share key from preferences 2025-04-14 22:32:38 +02:00
7a6aef3360 launcher: Fix animations overlapping
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-04-12 23:30:22 +02:00
0acf66d455 Restore previous swipe sensibility
The distance at which a swipe was considered successful was reduced in
188c682 to allow making circle gestures on a key that also had a slider.
It was also useful in reducing accidental sliding.

This is impractical for normal typing so it is reverted. The reduced
range continues to be used for sliders.
2025-03-29 12:04:36 +01:00
58dabfaa07 Fix emoji flag group missing
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
Off by one error when parsing the emoji groups.
2025-03-28 00:27:44 +01:00
3d7925340b Update latn_qwerty_jp.xml (#962)
Add macron, used in rōmaji for long vowels
2025-03-28 00:04:31 +01:00
e746ccd5d0 Place editing keys on the bottom-right of Z/X/C/V
The code is changed to ensure that extra keys all use a consistent
location.
2025-03-27 23:49:49 +01:00
6541054cce Remove symbols from the number row by default (#964)
The number row option is changed into a ListPreference and controls whether the number row contains symbols or not.

Co-authored-by: Joey Schaff <j@jaoh.xyz>
2025-03-27 23:25:32 +01:00
6c40e0604a Add a preferred position for selectAll 2025-03-23 14:58:11 +01:00
6717613b5e Fix label brightness not being applied
This is due to Paint.setColor overriding any alpha value set with
Paint.setAlpha. Bug was added in 653c598.
2025-03-22 12:25:59 +01:00
35219a458a Swapping the default placement of ! and | on the Colemak layout (#949)
Swapped placement of ! and | to make it more reasonable.
2025-03-22 11:46:52 +01:00
0ef36d52e1 Fix crash on API < 26 in settings 2025-03-16 15:44:02 +01:00
60b01927ab Selection mode (#913)
Some checks are pending
Check layouts / Generated files (push) Waiting to run
Check translations / check-translations (push) Waiting to run
* Selection mode: Space to cancel the selection

This adds the "selection mode", which is activated when text is selected
in the text box. The selection mode is exited when the selection is
cleared.

While the selection mode is activated, the Space and Esc keys are
modified into the "selection cancel" key, which remove the selection
without changing the text.
The space bar is otherwise easy to type by accident during a selection
and causes the selected text to be deleted.

* Selection mode: Move each ends of selection separately with slider

When the selection mode is activated, the space bar sliders change how
they affect the selection:

- The left side of the slider moves the left position of the selection.
  To shrink the selection from the left side, the slider must be
  activated by sliding to the left, extending the selection
  temporarilly, then by sliding to the right.

- The right side of the slider affects the right position if the
  selection.
2025-03-15 16:13:16 +01:00
9cfeb0f0c2 Add a delay after a Keyevent key in a macro (#918)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
* Construct a single handler

* Add a delay after a Keyevent key in a macro

Add a delay before sending the next key to avoid race conditions causing
keys to be handled in the wrong order. Notably, KeyEvent keys handling
is scheduled differently than the other edit functions.
2025-03-10 23:41:51 +01:00
906755b787 prefs: Add 'delete_word' and 'forward_delete_word' to extra keys
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
The gesture combination is mentioned. Preferred position are added.
2025-03-01 16:52:46 +01:00
80c52460c7 Add 'delete_word' and 'forward_delete_word' keys
These keys are the equivalent of ctrl+backspace and ctrl+delete,
respectively.

They can be reached with Gesture+backspace and Gesture+delete
respectively.
2025-03-01 16:52:46 +01:00
2b978dd2e0 APL and BQN layouts (#899)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check translations / check-translations (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
* Add compact BQN layout

* Add compact APL layout
2025-02-28 00:47:49 +01:00
55cb5f5315 Make key symbol smaller when 2 characters long or more
This was the case for string keys but not for macros or keys with custom
symbols.
2025-02-28 00:36:14 +01:00
b7d1508d7b Refactor: Remove StringWithSymbol
It's replaced with a macro containing one key.
2025-02-28 00:17:28 +01:00
77b0c30728 cyrl_lynyertz_sr: Use the newer key syntax for ctrl mappings 2025-02-27 23:56:26 +01:00
466e0b8218 KeyValue: Don't wrap keys into a macro when possible
Many kind of KeyValues don't need to be wrapped into a Macro to show a
specific symbol. This is especially useful as Macro keys are not
affected by modifiers.
The parser is changed to have a fast-path when a key value is not a
macro.
2025-02-27 23:53:42 +01:00
75fdc2bfa9 Fix miscalculation of the bottom margin
'_marginBottom' might be uninitialized when used.
2025-02-27 23:20:49 +01:00