Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added more Georgian keyboards #86

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Added more Georgian keyboards #86

wants to merge 2 commits into from

Conversation

dracid
Copy link

@dracid dracid commented Nov 8, 2024

  1. Qwerty-based no-shift layout
  2. Ergonomic
  3. Typewriter (classic)

1) Qwerty-based no-shift layout
2) Ergonomic
3) Typewriter (classic)
@tenextractor
Copy link
Contributor

I would not recommend adding 12 keys to a single keyboard row, this makes it overcrowded, see florisboard/florisboard#2092 . Instead, we can shift one of the keys in that row to the bottom row.

Example for ergonomic layout:
image
YAML:

name: Georgian Ergonomic
languages: ka_GE
minimumFunctionalKeyWidth: 0.0
rows:
  - letters:
    - 'ჩ'
    - 'პ'
    - 'უ'
    - 'ძ'
    - 'ტ'
    - 'თ'
    - 'ნ'
    - 'ვ'
    - 'შ'
    - 'კ'
    - 'ქ'
  - letters:
    - 'ხ'
    - 'ი'
    - 'ა'
    - 'ე'
    - 'ო'
    - 'დ'
    - 'მ'
    - 'ს'
    - 'რ'
    - 'ბ'
    - 'გ'
  - letters:
    - 'ჯ'
    - 'ჰ'
    - 'ყ'
    - 'ღ'
    - 'ჟ'
    - 'ზ'
    - 'ც'
    - 'ლ'
    - 'ფ'
    - 'წ'
    - $delete
  - bottom:
    - $symbols
    - 'ჭ'
    - $action
    - $space
    - $contextual
    - '.'
    - $enter

Example for NoShift layout:
image
YAML:

name: Georgian (MES)
languages: ka_GE
minimumFunctionalKeyWidth: 0.0
rows:
  - letters:
    - 'ქ'
    - 'წ'
    - ['ე', '%']
    - 'რ'
    - 'ტ'
    - ['ყ', '%', 'ჸ']
    - 'უ'
    - ['ი', '%', 'ჲ']
    - 'ო'
    - 'პ'
    - 'შ'
  - letters:
    - ['ა', 'ჺ']
    - 'ს'
    - 'დ'
    - ['ფ', 'ჶ']
    - ['გ', 'ჹ']
    - ['ჰ', 'ჱ']
    - ['ჯ', 'ჷ']
    - 'კ'
    - 'ლ'
    - 'თ'
    - 'ჩ'
  - letters:
    - 'ჟ'
    - ['ზ', 'ჵ']
    - ['ხ', 'ჴ']
    - 'ც'
    - ['ვ', 'ჳ']
    - 'ბ'
    - ['ნ', 'ჼ']
    - 'მ'
    - 'ძ'
    - 'ღ'
    - $delete
  - bottom:
    - $symbols
    - 'ჭ'
    - $action
    - $space
    - $contextual
    - '.'
    - $enter

Another NoShift layout (cross compatible with default shift layout, so can be used to replace it)
image
YAML:

name: Georgian QWERTY
languages: ka_GE
attributes: {shiftable: false} # Automatic shifting breaks many of the characters
rows:
  - letters:
    - 'ჭ'
    - 'ღ'
    - 'თ'
    - 'შ'
    - 'ჟ'
    - 'ძ'
    - 'ჩ'
  - letters:
    - 'ქ'
    - {type: case, normal: ['წ', 'ჭ'], shiftedManually: ['ჭ']}
    - ['ე', '%', 'ჱ']
    - {type: case, normal: ['რ', 'ღ'], shiftedManually: ['ღ']}
    - {type: case, normal: ['ტ', 'თ'], shiftedManually: ['თ']}
    - ['ყ', '%', 'ჸ']
    - 'უ'
    - ['ი', '%', 'ჲ']
    - 'ო'
    - 'პ'
  - letters:
    - ['ა', 'ჺ']
    - {type: case, normal: ['ს', 'შ'], shiftedManually: ['შ']}
    - 'დ'
    - ['ფ', 'ჶ']
    - ['გ', 'ჹ']
    - ['ჰ', 'ჵ']
    - {type: case, normal: ['ჯ', 'ჟ', 'ჷ'], shiftedManually: ['ჟ']}
    - 'კ'
    - 'ლ'
  - letters:
    - {type: case, normal: ['ზ', 'ძ'], shiftedManually: ['ძ']}
    - ['ხ', 'ჴ']
    - {type: case, normal: ['ც', 'ჩ'], shiftedManually: ['ჩ']}
    - ['ვ', 'ჳ']
    - 'ბ'
    - ['ნ', 'ჼ']
    - 'მ'

Example for typewriter layout:
image
YAML:

name: Georgian Typewriter
languages: ka_GE
minimumFunctionalKeyWidth: 0.0
rows:
  - letters:
    - 'ღ'
    - 'ჯ'
    - 'უ'
    - 'კ'
    - ['ე', 'ჱ']
    - ['ნ', 'ჼ']
    - ['გ', 'ჹ']
    - 'შ'
    - 'წ'
    - 'ზ'
    - ['ხ', 'ჴ']
  - letters:
    - ['ფ', 'ჶ']
    - 'ძ'
    - ['ვ', 'ჳ']
    - 'თ'
    - ['ა', 'ჺ']
    - 'პ'
    - 'რ'
    - 'ო'
    - 'ლ'
    - 'დ'
    - 'ჟ'
  - letters:
    - 'ჭ'
    - 'ჩ'
    - ['ყ', 'ჸ']
    - 'ს'
    - 'მ'
    - ['ი', 'ჲ']
    - 'ტ'
    - 'ქ'
    - 'ბ'
    - ['ჰ', 'ჵ']
    - $delete
  - bottom:
    - $symbols
    - 'ც'
    - $action
    - $space
    - $contextual
    - '.'
    - $enter

@dracid
Copy link
Author

dracid commented Nov 8, 2024

Thank you for your suggestions!
I am very intrigued by the 4-row option for QWERTY! Need to try it out.
Regarding the "Typewriter" and "Ergonomic" keyboards - those are the standard Georgian keyboards and we should avoid changing them. Perhaps if ALL variations are allowed in the FUTO repo, we can keep.

BTW, thanks for the ideas and the prompt reply to the pull request. Love to see it <3

Added 2 styles of shiftless layouts:
1) 3-row (standard) and 4-row (for easier type)
2) Added same as 1) but for MTAVRULI style of Georgian letters:
https://en.wikipedia.org/wiki/Georgian_Extended
@dracid
Copy link
Author

dracid commented Nov 11, 2024

Hello group,

I have now updated the layouts to include a 3-row and a 4-row shiftless layout.
3-row is somewhat standard (been used for years in Anysoft Keyboard, but now abandoned)
4-row is new as per suggestions in this thread. I am actually quite liking these!!

Also, I have added a MTAVRULI style of Georgian letters (as per here).
So, in total we have the following keyboard layouts:

  1. QWERTY classic (modern layout everyone uses, already in FUTO)
  2. Ergonomic (standard ka_GE, but rarely used)
  3. Typewriter (also standard but from legacy typewriters)
  4. Shiftless QWERTY a) 3-row and b) 4-row
  5. Shiftless QWERTY MTAVRULI Style a) 3-row and b) 4-row

The shiftless QWERTY layouts will be the basis of future development of the Swipe-style typing in FUTO.

Samsung Android Keyboard has swipe, but it does NOT work properly. This is due to 6 (ჭ, ღ, თ, შ, ჟ, ძ, ჩ) common symbols requiring SHIFT, so the swipe algorithm (which is also closed source Samsung code) has no idea how to type many words.

@abb128
Copy link
Collaborator

abb128 commented Nov 12, 2024

If this is ready for merging can you add the layouts to mapping.yaml in the most reasonable order (most common layouts first, followed by less common)? You just have to put their filenames without the .yaml extension under the Georgian language

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants