Skip to content

Conversation

@anaskaejdar
Copy link
Contributor

Yeah, so this new version of the Dvorak layout is a lot better. The alignment between the rows is way more natural and closer to how it is on actual keyboards. Certain punctuation keys are just more accessible this way too. I encourage replacing the existing one with this one, but I prepared it as an alternate version instead for now, in case there's any reason to hold on to the old one. So they can exist side-by-side.

Copy link
Owner

@Julow Julow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AlexandraAlter What do you think of this Dvorak layout ? You added the initial layout in #16

Here's how it looks for me:
shot

I'd prefer to keep only one version of the Dvorak layout, if that's OK with you.

<key key0="м" key7="|" key8="\\" />
<key key0="и" key7="~" />
<key key0="т" key7="ц" />
<key key0="т" />
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this change ?

Copy link
Contributor Author

@anaskaejdar anaskaejdar Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed that tse because it's not necessary in Tajik. I added it before because it's a common enough cyrillic letter in russian and slavic languages, so I thought it would be better to have than not to have, but now after #1042 , the compose sequences enable you to type ц by compose+т+с so there is no need for an explicit tse in the tajik layout anymore.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks :)

@anaskaejdar
Copy link
Contributor Author

Here's my version as it appears on my device:

Screenshot_۲۰۲۵-۰۷-۱۷-۱۶-۳۷-۳۸-۸۴_9c7ad408470e52983cc8816adf9ff347

I moved some secondary keys off the diagonals like key1 to key4 and onto orthogonal positions like key5 to key8. It looks good in my opinion, but we could revert that if desired

@anaskaejdar
Copy link
Contributor Author

The top row though… Even though I shifted it rightward some by adding the explicit period key, it's still too far to the left. For faithfulness to the physical layout's sake, P should be right over U, and L should be right over S. As it is, in my layout, they're still offset, to make room for the backspace. This isn't ideal. Maybe I'll find a sane way to fix it later, but right now I'm just not willing to move that backspace out of the way.

@Julow
Copy link
Owner

Julow commented Jul 19, 2025

Sorry my screenshot was of the wrong layout (it was the one currently in the app). Thanks for correcting.

I think it's a little sad that the backspace key is so small. It's a frequently used key and in the future we might want to do long swipe from it: #46

On a physical layout, the backspace is at the same place on Dvorak and on Qwerty and in the app, the backspace key is at the right of the third row. What do you think of moving it on the third row after the Z key ? By removing the ; key to make space for it.

@anaskaejdar
Copy link
Contributor Author

anaskaejdar commented Jul 20, 2025

It's a good thought. I'll contemplate it over the next few days, as I'll be traveling anyway, and we'll see if we might come up with any other solution.

What you propose would indeed allow us to fix the top row's issues, but it would create essentially the same issue with the bottom row, becoming at least a full key's width out of alignment with the middle and upper rows.

Most mobile layouts can take for granted that the punctuation is in the bottom right, and can therefore be displaced for backspace's sake, but in dvorak, that samu punctuation's on the top left instead, which is just no place for backspace. So it's a bit tougher. Maybe we could modify the bottom row where the spacebar and enter key are.

Yeah, maybe a custom bottom row can be backspace's home. Or maybe, we can squeeze an extra key on the right edge of the middle and bottom rows to bring things into alignment — maybe hyphen and backspace, while upper backspace becomes forward-slash. It might make it feel a wee bit more squished though, so I'll test it and see, and I'll contemplate over the next few days.

@AlexandraAlter
Copy link
Contributor

Yeah, had some issues myself with the current layout. The most ideal top-row felt like it'd involve a backspace on the very left, which is unconventional but felt good to me in the first draft. I use the current layout daily, and still hit backspace too often by accident where it is, and struggle with the keys being out of alignment.

The uneven key-widths at the top do throw me a little, but I think that's just personal preference. Sadly, I do still feel like a larger BS and Shift key would be better. A few of the key placements (delete, tab, numeric symbols, comma) do feel strange to me. I feel like there may be a more commonly used symbol to place on the semicolon key, such as the quote mark. I like how the brackets are placed on opposite corners.

I might draft up other options, too. Am I right in thinking that the main thing we want to fix is key alignment?

@anaskaejdar
Copy link
Contributor Author

New iteration, featuring larger shift and larger backspace, better row alignments, and three additional keys. The keys are a bit thinner now than they were before, but they're pretty much the same width as the current persian layout's keys are, so it's not without precedent. I've been testing it a few days. It works pretty well, and it's not hard to get used to.

However, it will take a bit of getting used to for anybody who's used to the existing dvorak layout. Because the row alignment is quite different now than in was. It's a lot closer to the intended alignment though, so it's a good change.

Screenshot_۲۰۲۵-۰۷-۲۶-۱۶-۲۲-۴۷-۶۴_9c7ad408470e52983cc8816adf9ff347

@Julow
Copy link
Owner

Julow commented Jul 30, 2025

You won't like the misalignment but I think 11.5 columns is too wide and that the ;, - and / are not practical. What do you think of 10.5 columns wide ? (not incorporating your other changes)

shot
<?xml version="1.0" encoding="utf-8"?>
<keyboard name="Dvorak" script="latin">
  <row>
    <key key0="shift" width="1.5" key2="loc esc" key4="loc tab"/>
    <key key0="." key2="," key3="&lt;"/>
    <key key0="p" key1="loc accent_ring" key3="&gt;"/>
    <key key0="y" key1="loc accent_grave"/>
    <key key0="f" key4="loc €"/>
    <key key0="g" key2="\\" key3="|"/>
    <key key0="c" key1="loc accent_trema" key2="loc accent_circonflexe" key3="{" key4="}"/>
    <key key0="r" key3="[" key4="]"/>
    <key key0="l" key2="=" key3="+" key4="loc £"/>
    <key key0="-" key3="_"/>
  </row>
  <row>
    <key shift="0.25" key0="a" key2="1" key3="loc å" key4="!"/>
    <key key0="o" key1="loc accent_macron" key2="2" key3="\@" key4="loc accent_ogonek"/>
    <key key0="e" key1="loc accent_caron" key2="3" key3="\#" key4="loc accent_dot_above"/>
    <key key0="u" key1="loc æ" key2="4" key3="$" key4="loc accent_double_aigu"/>
    <key key0="i" key2="5" key3="%"/>
    <key key0="d" key2="6" key3="^"/>
    <key key0="h" key2="7" key3="&amp;"/>
    <key key0="t" key2="8" key3="*"/>
    <key key0="n" key2="9" key3="(" key4=")"/>
    <key key0="s" key2="0" key3="loc ß"/>
  </row>
  <row>
    <key key0="q"/>
    <key key0="j" key1="loc accent_tilde" key2="`" key3="~"/>
    <key key0="k" key1="loc accent_aigu" key2="'" key3="&quot;"/>
    <key key0="x" key1="loc ø"/>
    <key key0="b"/>
    <key key0="m" key2=";" key3=":"/>
    <key key0="w" key3="loc accent_cedille"/>
    <key key0="v" key3="\?"/>
    <key key0="z" key3="/"/>
    <key key0="backspace" key2="delete" width="1.5"/>
  </row>
</keyboard>

@anaskaejdar
Copy link
Contributor Author

You were right, I really hated the misalignment. So I took some time to come up with a different approach. The main thing is that I moved the Z down to the bottom row. That made room for the backspace, and it's not so bad since Z is an uncommon character, and it's a fairly common approach for touch keyboards.

Screenshot_۲۰۲۵-۰۸-۲۲-۰۹-۳۲-۳۸-۶۰_9c7ad408470e52983cc8816adf9ff347

Now row alignment is pretty good, and the keys are wider because they have more room to expand into.

<?xml version="1.0" encoding="utf-8"?>
<keyboard name="Dvorak" bottom_row="false" script="latin">
  <row scale="10">
    <key width="1.4" key0="shift" key3="loc accent_tilde" key7="~" key4="esc" />
    <key width="0.9" key0="," key1="&quot;" key4="'" />
    <key width="0.9" key0="." key1="&lt;" key4="&gt;" />
    <key key0="p" key7="!" key8="loc accent_ring" />
    <key key0="y" key7="$" key8="loc accent_grave" />
    <key key0="f" key7="loc €" key8="%" />
    <key key0="g" key7="=" key8="+" />
    <key key0="c" key3="(" key2=")" key1="loc accent_trema" key4="loc accent_circonflexe" />
    <key key0="r" key3="{" key2="}" />
    <key key0="l" key4="loc £" key3="[" key2="]" />
  </row>
  <row>
    <key key0="a" key2="loc accent_caron" key7="1" key3="loc å" key4="\#" />
    <key key0="o" key2="loc accent_macron" key7="2" key3="loc accent_ogonek" key8="loc ø" />
    <key key0="e" key7="3" key3="loc accent_dot_above" key8="loc ə" />
    <key key0="u" key8="loc æ" key7="4" key3="loc accent_double_aigu" />
    <key key0="i" key7="5" key8="loc ı" />
    <key key0="d" key7="6" key8="loc ð" />
    <key key0="h" key7="7" key8="ȝ" />
    <key key0="t" key7="8" key8="loc þ" />
    <key key0="n" key7="9" key8="_" />
    <key key0="s" key7="0" key3="-" key4="loc ß" />
  </row>
  <row scale="10">
    <key key0=":" key7=";" key4="\\" />
    <key key0="q" key7="/" key8="loc shareText" />
    <key key0="j" key7="loc accent_aigu" />
    <key key0="k" key7="|" />
    <key key0="x" key7="loc accent_cedille"/>
    <key key0="b" key7="&amp;" />
    <key key0="m" key7="`" key8="\\" />
    <key key0="w" key7="ƿ" key8="^" />
    <key key0="v" key7="*" key8="?" />
    <key width="1.4" key0="backspace" key7="delete"/>
  </row>
<row scale="10" height="0.95">
  <key width="1.7" key0="ctrl" key1="loc switch_greekmath" key2="loc meta" key3="loc switch_clipboard" key4="switch_numeric"/>
  <key width="1.1" key0="fn" key1="loc alt" key2="loc change_method" key3="switch_emoji" key4="config"/>
  <key width="4.4" key0="space" key7="switch_forward" key8="switch_backward" key5="cursor_left" key6="cursor_right"/>
  <key width="1.1" key0="loc compose" key7="up" key6="right" key5="left" key8="down" key1="loc home" key2="loc page_up" key3="loc end" key4="loc page_down"/>
  <key key0="z" key7="\@" />
  <key width="1.4" key0="enter" key1="loc voice_typing" key2="action"/>
</row>
</keyboard>

I don't know exactly how scale="10" works btw... It was just kinda the second thing I tried, because first I did scale="0.9" which was not ideal, but then I just wanted to try a larger number. 10 was the first thing I tried and already it was perfect. So… great!

I'll get this committed in a wee while. Work is crazy these days. I gotta get to my computer in my office and then I'll commit it. What do y'all think?

@anaskaejdar
Copy link
Contributor Author

Regarding ; and / ; those were actually super practical for me. But for - and ?// it was basically there to improve alignment. That's not necessary now that I've moved Z, so I've gotten rid of those on the right-hand edge.

But :/; on the other hand?: The bottom left corner still needs the padding for alignment. I switched the semicolon for regular colon now, and made semicolon position 7 of the same key. I hate that personally. I write with semicolons; I know a lot of people don't anymore, but I do. Semicolon is way more useful to me than colon, but I thought that since you expressed the thought that semicolon is impractical, together with the fact that colon is more useful for some people, I might as well try swapping it.

I want to swap it back. That key is semicolon's rightful place. What do y'all think? Switch it back?

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