Alt layout writeup!
As mentioned, I've used the Colemak layout for 18 years or so. Before that, I used the Dvorak layout for some years.
There's an abundance of newer layouts, keeping less QWERTY similarity and using more metrics than Colemak.
Differences of priority lead to different ideal choices. Some example points:
J
is very rare in English but less so in Spanish.My feeling is that Colemak is very good for nearly everyone, as a "sweet spot" of priorities.
If really set on venturing past Colemak, you could try out Gralmak.
It's actually really hard to assess a new layout fairly, unless you're an expert – and even if you are one.
Casuanoob at the Cmk Discord about assessing a new layout
Introducing the next step, for those who really really want it:
As you see from the BigBag front and other pages, the base layout is only the beginning. Extend, special dead keys and ergo mods are my main thing. And I'm having such a great time of it!
There is no undisputed king of keyboard layouts, and there won't be. You get to a point where individual preference and usage patterns start to matter more than objective aspects, and then you can't agree on a one-layout-fits-all. I believe we're already about there, pretty much. New tech may yet change typing, but as it stands the main barrier to speed is mental load so a really good development should make it simpler, not more complex.
[Box: A Quest For The Gral] Ah well, finally my curiosity got the better of me, and as a result I did end up trying out one of the newer layouts. Feels really odd after having typed on Colemak for 18 years, I can tell you!
I've nearly reached my Colemak speed on Gralmak which is my Graphite variant now, so I feel that I have an idea of what it's about.
So far, my main impression is that both Gralmak and Colemak are good, and I won't be getting any substantial gains from the switch – apart from a satisfied curiosity and the fun and pain of trying something new.
Colemak-DH is a good and well thought-out layout. So is Graphite. The latter takes some factors into consideration that weren't yet considered back in 2014. Fine. But I honestly don't feel major quality-of-life differences (yet?).
They both have their stronger and weaker points. Some musings:
Graphite has some delightful n-grams. More than Colemak, it uses all three rows without much scissoring.
Colemak has a nice flow to it and some delightful home row rolls, but also some sticky spots here and there.
Colemak does of course have more redirects than Graphite. Notable examples are YOU, and WAS. More rolls makes for more redirects.
Typing YOU
isn't great on either, it's just a little easier on Graphite.
O;I
) on Colemak, and a lateral stretch (QWERTY HIO
) on Graphite/Gralmak.Writing PHY
is worse on Graphite. I'm a phycisist, so I know. Every layout has some words that don't agree well with it.
For some awkward bigrams, alt-fingering helps a lot. Colemak KN KL
and Graphite SC SW PH
are good examples. This takes time to learn well.
Others just have to be tanked, pretty much.
UE/EU
is a bad SFB pair on both layouts – and on several other good layouts, too.You will get used to a number of weakish spots with time and experience, as long as they aren't too common.
If you start overthinking such weak spots though, I believe you won't be able to judge a layout fairly. I think this happens to many.
After learning the layout for a while, I felt that Graphite has more lateral stretching than Colemak-DH?
YO AY AK
, and for Cmk-DH ME KE EM
.ME EM
is uncomfortable, but KE
isn't bad. ME EM
by sliding the ring finger in solves the issue.YO AY AK
making them quite acceptable.It won't matter to all, but Colemak is still easier to learn with more QWERTY and shortcut similarities.
Colemak keeping ZXCV in place is an asset to some, and so is the Tarmak learning method for gradual learning.
Using the Gralmak variant though, the bottom row goes ZXMCV and that's really no worse than Colemak-DH's ZXCDV.
As for Graphite vs the very similar Gallium, I've tried both.
CV
vs WZ
on the upper vs lower row.SC
bigram easier, but now I'm on board with Graphite keeping W
on top and CV
on the lower row.Gralmak vs even newer layouts:
MattMc's fun decision tree on Cmk-DH vs Vanilla (with other stuff thrown in). Show it on the layers-main page.
Convo w/ A-Brick on figure captions:
under the image, with .
Tabidots with an insight on why Keybr's progress algorithm is bad, on Reddit:
https://www.reddit.com/r/typing/comments/1lz2h84/comment/n2zxjc6/ It's based on your reaction time to the target key. This is especially important for non-home-row keys, because the algorithm will usually generate many words that start with the target key as well (so word + space + pause + word = no bueno). Your accuracy and speed for the rest does not matter.
I realized this when I got stuck on P doing Colemak. Now that I've completed all the keys, I feel that this algorithm actually leads to bad habits because I stopped caring about accuracy just to unlock the next key. (And for a while I also got used to the fact the keybr simply ignores errors after the first one and freezes the cursor, so when you make a mistake you aren't "penalized" by having to press Backspace like you are IRL).
[Sock_pup alias Nimi who develops Typecelerate commented:]
You can cheat the algorithm by carefully approaching the
That should tell you everything pretty much.
Platform box for Sequencing? And Modifiers?
DOWNLOADS
definitely should be boxed. But the Mac one doesn't show up?!More likeable links?
Updated online analyzers:
https://oxey.dev/playground/ (Oxey's Playground)
https://layouts.wiki/ (AKL DataBase)
https://cyanophage.github.io/ (Cyanophage's analyzer)
https://galileoblues.github.io/Keysolve2/ (GalileoBlues' KeySolve2)
Keysolve 2 KeyMap for analyzing layouts without the / , .
part mattering:
b l d w q j f o u '
n r t s g y h a e i
z x m c v k p \ [ ]
q w f p b j l u y ' a r s t g m n e i o z x c d v k h \ [ ]
Locale variants:
Contrast Compose to DKs.
Dictionary: Explain SFB, Curl/Angle/Wide, inward/outward/mixed rolls
Make Image2 and Image3 posts for the Image topic (topic 111)
In tarmak.html, cannibalize part of the BIG BAG? HALP! section for a main page overview?
Functionality allowing links to a specific platform box with platform specified? As in page.html#anchor?platform=win
.
Make it so that clicking the text PLATFORMS
shows the how-to screen again (only seen initially now).
More likeable links:
More consistent page and anchor naming
More consistent file naming
training > learning-training
too? At least, tarmak-intro > learning-tarmak
and tarmak > tarmak-steps
?More FAQ's so there's one for nearly everything
☑ Format them as spoilers. With the question as header: 🤔 ❓ "
Flesh out the Monkeytype learning section: Colors, settings tips
Make bookmark links for page chapters, and add them to the menus. Example: DK mappings; Variants.
Update all content image links to local res/ locs. Replace Dropbox links with res/. Replace res/img/.
Add a smaller 'Platforms' menu to every platform-box.
Make a Co browser tab (fav)icon
Implement Jekyll in order to remove duplicating code!
Switch the places of the menu and Platforms icons so that when opening the menu, the icon doesn't have to move all across the screen -> increases animation smoothness.
Implement platform boxes at the appropriate places.
Fix the popup that shows during the first website visit.
Better alignment of images and text around them.
Change the style of spoilers so that they're more visible.
Change font to 'Open Sans' for easier-on-the-eyes reading.
Additional padding at the bottom of 'code' blocks.
Smaller logo.
Implement SASS/LESS for easier reading of the styles code.
Keep original image sizes.
Fix class names
Make an imgtxt class with italic and a line break after it? For image subtexts.
Validate html and css files
Rework the 'Platforms' menu visualisation.
A little more air before headings, in the style sheets? And a style for large text, without air.
Updated everything to the new DH standard (formerly DHm) from the old DHk. Images, explanations.
platform=
syntax?These notes were in the symbols/colemak file, regarding Colemak_eD:
// NOTE:
// - Missing: U017F long s; chevrons; horizconnector; wynn/yogh; some African
// d-tail; turned Cc/Ee++; latin epsilon/gamma (Berber); italic v;
// - Rare/dropped: U25CA lozenge (Mac; rare); kra (deprecated Inuktitut & IPA);
// union/intersection/includedin; integral (need a science/math deadkey; use esh in a pinch);
// numerosign (mostly Cyrillic; use N + masc.); squareroot (unworkable); function (use hook-f);
// U1E9E Capital German SS (disputed); U2033/U2032 double-/prime (cheat w/ acute/doubleacute?!)
// U2639/U263A/U27E8/27E9 sadface/smilingface/brackets (poorly implemented)
// - Oddly placed?: 'notsign'/'division' (placed by shape/association)?
// TODO: Compose/deadkeys: ligatures (fi/fl/ij); fractions/superior/subscripts; latin/IPA/currencies
// - For Currency: U2044 solidus/shilling; yen
// - For IPA/Latin: U026A/028F SmCap-I/Y; U0251/0252 script-a/turned-script-a; U0283 esh
// U028A lat-upsilon; U027E r-flap; U0294 glottal stop; U025C turned open e
// TODO: Make dead_stroke (for d/g/h/l/i/u) work!? Missing in compose files?
// Also, l-tilde, s/c/j/z/schwa hook?
// TODO: Unused dead_keys: iota, voiced_sound, semivoiced_sound
// (could enhance them like Colemak user 'ghen' suggests, for keys 3/4/5?):
// TODO: A Maths/science dead key? Latin/IPA? Greek? (Currency exists)
// TODO: Add superior/subscript # to dead_acute/grave; fractions to slash/stroke!?
// NB: This happens in the compose files under X11/locale, of which there are legion. :(
// Can one get away with changing only the various iso8859-# ones? Or just en_US.UTF-8 ?
// Since this lies outside the xkb folder, I might just post the code and where to paste it?
// TODO: For extra dead key mappings, could dead_abovering and dead_doubleacute be augmented?
// Make sure dead_hook has rhotic hooks for schwa and turned epsilon!
// Similarly with smallcap letters and their turned counterparts?
// TODO: Add IPA (broad English?) somewhere. Too few free slots, so it'll have to be by dead_keys.
// TODO: Phonetic 'colemak_curl' layouts with Curl-DH (it's best to rewire the whole layout in this case).
// DONE: Add Greek, Kyrillic and Hebrew phonetic Colemak layouts (nice for group 'switch' layout).
// DONE: Update the Tarmak and Mirrored layouts when Colemak[eD] is changed, using search-replace.
These notes are fairly old and outdated by now. They still contain some interesting elements.
• https://developer.mozilla.org/ - documentation for everything that has to do with HTML and CSS
• tag=element – the most used tags are:
<p> - paragraph
<p class="italic">
<a href="https://your.url"> - link
<a class="underlined">
<div class="quote">
<b>, <strong> - bold
<i>, <em> - italic
<img src="content/images/img.png" class="img-small"> ('alt' attribute is optional - displays when image cannot be displayed)
<img class="left"....
ul - unordered list
ol - ordered list (1,2,3/a,b,c)
<ul class="disc">
<ul class="circle">
<span> - separates a text so you can style it, for example if you want part of a sentence to be crossed with a line, go
<span class="linethrough">
• <!-- comment -->
• Spoiler template:
<div class="spoiler">
<p><span>Spoiler:</span></p>
<div class="spoiler-body">
SPOILER CONTENT HERE
</div>
</div>
• Platform box template:
<div class="platform-content">
<p>
</p><p>
</p>
</div>
• To display the characters '<' and '>', use < and > so that they're not interpreted as parts of a tag
• For blocks of code use <pre><code>...</code><pre> and remove all indentation(tabs) left of the code in between these tags
because the tabs will be shown as these tags format literally every space, tab and new line.
[Note: This is a copy of my Evernote document "Jekyll and Ruby"]
Check Linux (Ubuntu), Ruby and Jekyll versions:
lsb_release -a
jekyll -v && ruby -v
As of 2023-02, GitHub pages have these dependencies: Jekyll 3.9.3; Ruby 2.7.4 https://pages.github.com/versions/
Install Jekyll with Ruby on Windows WSL Bash using the Brightbox repo, Gem and Bundler:
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-add-repository ppa:brightbox/ruby-ng && sudo apt-get update
sudo apt-get install ruby2.7 ruby2.7-dev build-essential dh-autoreconf
echo 'export GEM_HOME=$HOME/gems/' >> ~/.bashrc && echo 'export PATH="$PATH:$HOME/gems/bin"' >> ~/.bashrc
source ~/.bashrc
gem update && gem install jekyll bundler && bundler update
• WSL can be a little stupid as to which Ruby version it uses, so it may be best to be specific as above.
• Using apt-get install bundler
on WSL installed an outdated Ruby version (1.9.1) so I guess I shouldn't do that!
• Turns out it was because the WSL Ubuntu hadn't been updated in ages.
To avoid permission errors on the gem commands (write permission for /var/lib/gems/2.6.0/): Using sudo gem seems to work but isn't recommended! Instead, add this to your ~/.bashrc file, as shown above:
export GEM_HOME=$HOME/gems
export PATH=$HOME/gems/bin:$PATH
Now, go to the web root folder in the BigBagKbdTrix repo (not repo root but docs!) and build with Jekyll:
source ~/.bashrc
jekyll build
jekyll serve --watch
• I didn't need bundle exec
in front of the jekyll commands.
• At a later point, there was a version mismatch between the Gemfile (with GitHub Pages settings) and local installs.
• When that happened, using bundle exec jekyll
etc worked.
When you see 'Server running...', you should be able to browse the site locally on 127.0.0.1: http://localhost:4000/
Word has it, GitHub Pages don't support Jekyll v4+? So edit your Gemfile for realistic local builds:
# This will help ensure the proper Jekyll version is running.
# gem "jekyll", "~> 4.2.0"
...
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
gem "github-pages", group: :jekyll_plugins
GitHub Pages don't use either Gemfile nor Gemfile.lock, but their own Jekyll settings. So these files are relevant for local builds only.
gem install github-pages
"A simple Ruby Gem to bootstrap dependencies for setting up and maintaining a local Jekyll environment in sync with GitHub Pages". Sounds useful. I couldn't install it because of some incompatible library
error, though...