Design
Goals
Dusk
was designed with these goals in mind:
- Roll over Alternation
- Low scissors
- Low 2u SFS (including some fast
X__Y
) - Low SFS
- Low SFB
- Low finger speed
- Fair workload for each finger
Coming from Canary, I'd like to focus on keeping its low scissors and 2u SFS, while optimizing for SFS and keeping an eye on SFB.
Dusk
was designed with info obtained with corpus made out of MonkeyType and Typeracer quotes (duplicates removed), with some SHAI corpus sprinkled in.
Vowel Block
I decided to go with the popular vowel block
~ ~ ~ ~ ~ ~ ~ O U .
~ ~ ~ ~ ~ ~ ~ A E I
~ ~ ~ ~ ~ ~ ~ ~ / ,
~
as EO
is the primary source of SFS on Canary and OU
AEI
vowel block is commonly agreed upon to be the most balanced vowel block choice in modern days.
Having I
alone on the pinky for the .I,
stack.
Why vowel block? because vowels don't go well with most letters, but they go relatively well with each other.
If you type ./
or ../
often, you may want to swap .,
.
Consonants
LHM
To avoid RL
SFB, I decided to put R
on a thumb key (as opposed to the RN
stack as seen in Kuntum
). L
doesn't really go well with any other letter except for H
and M
, but L_M
and M_L
are both somewhat common, which leads to LHM
stack having high 2u SFS if its on a non-index column, so LHM
goes to index with M
taking the inner spot, just like in Canary. If you are more bothered by LSB than 2u SFS, it would be wise to move M
to the top.
~ ~ ~ ~ ~ ~ ~ O U .
~ ~ ~ ~ ~ M H A E I
~ ~ ~ ~ ~ ~ L ~ / ,
R
DTK
T
index commonly leads to high SFS in my experience playing around with layouts for the past few months, so I settled on DTK
stack, which is a good load for the middle finger to handle.
~ ~ D ~ ~ ~ ~ O U .
~ ~ T ~ ~ M H A E I
~ ~ K ~ ~ ~ L ~ / ,
R
BNZ
I like the idea of having N
on the pinky because they promote inroll with S
, T
, C
and tend to be have lower redirection and scissors especially now that R
is gone (usually N
pinky layouts end up with BR
scissor like in Graphite
and Gallium
).
N
doesn't interact with B
much and with a low-usage key Z
, BNZ
goes to pinky. X
wasn't chosen out of concerns for the interactions with the columns that follow below.
B ~ D ~ ~ ~ ~ O U .
N ~ T ~ ~ M H A E I
Z ~ K ~ ~ ~ L ~ / ,
R
FSV
ST
in-roll sounds like a good idea and S
doesn't have good letters to partner, so I decided on FSV
stack for the ring finger.
B F D ~ ~ ~ ~ O U .
N S T ~ ~ M H A E I
Z V K ~ ~ ~ L ~ / ,
R
Wait a minute!
You may think, "wait a minute! but that creates NV
scissor and awkward DV
!". Yes, I hear you, so there is another variant dusk-vq
that addresses this concern.
What's the trade-off?
Pros:
- no
NV
scissor (involve
) - no
DV
(advice
) - no
b_v
skip scissor (above
) - no
f_v
2u SFS (favorite
)
Cons:
w_v
2u SFS (however
)g_v
2.23u SFS (give
)v__g
2.23u SFS (loving
)rv
andv_r
may be weird for some (service
andvery
).- 6 keys to look after for left index.
PCGWY
Y
is yet another problematic letter as it creates CY
, PY
, GY
SFBS and W_Y
is common enough that I'd like WY
to be 1u apart.
I decided on
B F D P ~ ~ ~ O U .
N S T C Y M H A E I
Z V K G W ~ L ~ / ,
R
because:
-
I want
NG
to be a nice roll and a goodG_T
(-ing
,-ght
,get
,got
). -
C
is usually more common, so it is on the homerow. -
Y
is there for the ease of altingCY
,PY
,YP
and (optionally)GY
. -
W
is underY
becauseW_Y
is common, in addition toYW
SFB. It is not aboveY
becauseW_T
,W__T
,W__K
,TW
andWR
all feel awful. I am okay withP_W
orW_P
2.24u SFS as they are rare. -
P
takes the last good spot and createsPY
andYP
alts.
I don't want to alt!
If you don't want to alt/slide CY
, PY
, YP
, GY
, and WY
, and get deeply annoyed with them. May I suggest that you do
B F D P ~ ~ ~ O U .
N S T C Y M H A E I
Z V K G W ~ L Y / ,
R
Now you have 2 Y
that you can choose to use according to the words in question.
QJX
-
J
goes well with vowel inner top spot becauseJU
accounts for most ofJ
appearances. -
X
does not go well withC
andP
(excel
,expect
), so it goes to vowel inner bottom spot. -
Q
takes the last remaining index spot at consonants side.
B F D P Q J ~ O U .
N S T C Y M H A E I
Z V K G W X L ~ / ,
R
Quote Symbol '
Other layouts commonly have OA'
stack on the middle finger, but after using other layouts that have this stack, I've come to dislike it. Here is why:
-
You'
feels like 2u SFB even if it is 2u SFS. For me,ou
is a roll, so my middle finger tends to not leave for'
until afteru
has been typed. -
don't
andwon't
feel just awful with how common they are. -
Additionally,
a_'
is common too (that's
,can't
,what's
).
For the aforemetioned reasons, I decided to go with
B F D P Q J ' O U .
N S T C Y M H A E I
Z V K G W X L ~ / ,
R
with the intention to alt 'm
and 'll
, both of which are doable for my columnar keyboard. If you do not want to do 'll
alt, I think it is still preferable over OA'
stack. (I do not believe 'll
alt is feasible on rowstag keyboard).
It does create h_'
SFS, but it is about as common as a_'
.
Alternative 1
Embrace the OA'
stack like the layout below shows - all the pros and cons have been explained above.
You may want to swap J~
.
This results in 0.10% lower SFB and 0.29% higher SFS on MonkeyRacer corpus.
B F D P Q J ~ O U .
N S T C Y M H A E I
Z V K G W X L ' / ,
R
Alternative 2
Swap QJ'
.
Keep in mind that it creates
Y'
SFB (They'
)W_'
SFS (We'
)DN'
redirection (don't
)C__'
SFS (can't
)
It results in 0.04% lower SFB and 0.01% lower SFS on Monkeyracer corpus, but it increases redirection by 0.59% on according to Cmini, attributed to t's
and n't
. Additionally, both 't
and t'
do not feel good to me.
B F D P ' Q J O U .
N S T C Y M H A E I
Z V K G W X L ~ / ,
R
Alternative 3
Put '
at both empty spots. Use the bottom '
for 'm
and 'll
.
B F D P Q J ' O U .
N S T C Y M H A E I
Z V K G W X L ' / ,
R
Last Spot Options
It's free real estate. I decided to put underscore _
there because I code in C++
and Rust
often.
Here are some ideas:
;
Y
'
- Repeat Key (creates
LL
outroll)
B F D P Q J ' O U .
N S T C Y M H A E I
Z V K G W X L _ / ,
R
Final Adjustment
One user of Dusk, brownfoxjumps
, mentioned that he was using dusk with BZ
swap. This got me thinking - as Dusk
it is now, words like above
, back
, break
, obvious
, and keyboard
all require whole hand movement due to (skipgram) scissors. If BZ
is swapped, then the only key that would be of concern is the top ring key F
, but B
and F
don't really interact with each other much at all - except for the word before
. b_d
and prob-
still don't require hand movement and feel fine. I decided that swapping BZ
is worth it.
Z F D P Q J ' O U .
N S T C Y M H A E I
B V K G W X L _ / ,
R
With Z
up there, it now raises the question of whether it is worth it to swap XZ
. Personally, I think it is worth it because 2 out of the 3 reasons that I chose Z
instead of X
were that XP
is awkward and the f_x
scissor. With these two reasons no longer applicable, I think it is worth trading the rare 2u pinky SFS (box
) for taking 0.01% lower SFB and 0.05% lower SFS (SHAI corpus) off from the finger with the highest SFS and SFB, and that sweet XP
inroll (expect
, experience
).
X F D P Q J ' O U .
N S T C Y M H A E I
B V K G W Z L _ / ,
R
What about FV
swap?
Some of you may be wondering: why not the following layout? Doesn't it address b_f
and dv
while not losing out much (g_v
but it is no big deal)?
Z V D P Q J ' O U .
N S T C Y M H A E I
B F K G W X L _ / ,
R
I toyed with this idea for a while and came to the conclusion that it is not worth it because of f_nd
, which is quite a lot more common than dv
on dusk while feeling worse than it.
Summary:
Pros
dv
rollb_f
same row
Cons
f_nd
skipgram redirect 2 row jumpxz
forced swap or gettingf_x
skipgram scissorbv
/b_v
2 row jump