summaryrefslogtreecommitdiff
path: root/users/callum/readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'users/callum/readme.md')
-rw-r--r--users/callum/readme.md99
1 files changed, 0 insertions, 99 deletions
diff --git a/users/callum/readme.md b/users/callum/readme.md
deleted file mode 100644
index 24b71038b6..0000000000
--- a/users/callum/readme.md
+++ /dev/null
@@ -1,99 +0,0 @@
-A keymap for 34 keys with 4 layers and no mod-tap.
-
-![](https://raw.githubusercontent.com/callum-oakley/keymap/master/keymap.svg)
-
-## Details
-
-- Hold `sym` to activate the symbols layer.
-- Hold `nav` to activate the navigation layer.
-- Hold `sym` and `nav` together to activate the numbers layer.
-- The home row modifiers are oneshot so that it's possible to modify the
- keys on the base layer, where there are no dedicated modifiers.
-- `swap win` sends `cmd-tab` for changing focus in macOS but holds `cmd`
- between consecutive presses.
-- `swap lang` behaves similarly but sends `ctrl-space`, for changing input
- language in macOS.
-
-## Oneshot modifiers
-
-The home row modifiers can either be held and used as normal, or if no other
-keys are pressed while a modifier is down, the modifier will be queued and
-applied to the next non-modifier keypress. For example to type `shift-cmd-t`,
-type `sym-o-n` (or `nav-a-t`), release, then hit `t`.
-
-You can and should hit chords as fast as you like because there are no timers
-involved.
-
-Cancel unused modifiers by tapping `nav` or `sym`.
-
-### Userspace oneshot implementation
-
-For my usage patterns I was hitting stuck modifiers frequently with [`OSM`][]
-(maybe related to [#3963][]?). I'd like to try to help fix this in QMK proper,
-but implementing oneshot mods in userspace first was:
-
-1. Fun.
-2. A good exploration of how I think oneshot mods should work without timers.
-
-So in the meantime, this [userspace oneshot implementation][] is working well
-for me.
-
-## Swapper
-
-`swap win` sends `cmd-tab`, but holds `cmd` between consecutive keypresses.
-`cmd` is released when some other key is hit or released. For example
-
- nav down, swap win, swap win, nav up -> cmd down, tab, tab, cmd up
- nav down, swap win, enter -> cmd down, tab, cmd up, enter
-
-`swap lang` sends `ctrl-space` to swap input languages in macOS and behaves
-similarly.
-
-[Swapper implementation.][]
-
-## Why no mod-tap?
-
-[Mod-tap][] seems to be by far the most popular tool among users of tiny
-keyboards to answer the question of where to put the modifiers, and in the
-right hands it can clearly work brilliantly, but I've always found myself error
-prone and inconsistent with it.
-
-With dedicated modifiers, there are three ways one might type `ctrl-c`:
-
- ctrl down, ctrl up, c down, c up
- ctrl down, c down, ctrl up, c up
- ctrl down, c down, c up, ctrl up
-
-Basically, you never have to worry about the keyups, as long as the keydowns
-occur in the correct order. Similarly, there are three ways one might type
-`ac`:
-
- a down, a up, c down, c up
- a down, c down, a up, c up
- a down, c down, c up, a up
-
-Replace `a` with `ctrl` and this is exactly what we had before! So if we want
-to put `a` and `ctrl` on the same key we have a problem, because without
-considering timing these sequences become ambiguous. So let's consider timing.
-
-The solution to the ambiguity that QMK employs is to configure the
-`TAPPING_TERM` and consider a key held rather than tapped if it is held for
-long enough. My problem with this is that it forces you to slow down to use
-modifiers. By its very nature the tapping term must be longer than the longest
-you would ever hold a key while typing on the slowest laziest Sunday afternoon.
-I'm not typing at 100% speed at all times, but when I am, having to think about
-timing and consciously slow down for certain actions never fails to trip me up.
-
-So alas, mod-tap is not for me -- but if it works for you, more power to you.
-:)
-
-* * *
-
-[My github][]
-
-[`OSM`]: /docs/one_shot_keys.md
-[#3963]: https://github.com/qmk/qmk_firmware/issues/3963
-[userspace oneshot implementation]: oneshot.c
-[swapper implementation.]: swapper.c
-[Mod-tap]: https://github.com/qmk/qmk_firmware/blob/master/docs/mod_tap.md
-[My github]: https://github.com/callum-oakley