Skip to content

Commit

Permalink
TMK/USB updates
Browse files Browse the repository at this point in the history
* Tried to get the BBoT platform pages up to date on the latest TMK repo updates
  • Loading branch information
DreymaR committed Nov 6, 2023
1 parent e110890 commit a71135c
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 77 deletions.
40 changes: 19 additions & 21 deletions docs/platforms/ergo-mods-tmk.html
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
<!-- Angle/Wide -->
<div class="platform-content" id="pfct-AngleWide">
<p>
I've implemented the ZXCVB_ 'Angle' shift for ISO keyboards both separately and as part of the AngleWide(ISO/Slash) mod that I use myself. For ANSI boards I've made an implementation of the 'Angle(Z)' shift (moving the Z key to the middle) and a Wide(ANSI/Quote) mod as well as the combination of these. Also the 'A-Wing' mod to get the Angle and right pinky benefits without messing with the Z position (but at other costs such as left pinky stretches; I'm not a fan myself).
</p><p>
Colemak-DH requires by default a special Angle(Wide) variant in which the V is kept in its original position so that only ZXC and B move; B then gets remapped to D by the mod itself. See below.
I've implemented the ZXCVB_ 'Angle' shift for ISO keyboards both separately and as part of the AngleWide-ISO mod that I use myself. For ANSI boards I've made an implementation of the 'Angle(Z)' shift (moving the Z key to the middle) and a Wide-ANSI mod as well as the combination of these. Also the 'A-Wing' mod to get the Angle and right pinky benefits without messing with the Z position (but at other costs such as left pinky stretches; I'm not a fan myself).
</p><p>
To use one of these, define the Unimap layout constant in my keymap (.c) file:
</p>

<pre><code>
* Edit '_########' in the UNIMAPLAYOUT definiton below to choose ergonomic Curl/Angle/Wide keyboard mods:
* _UNMODDED - Standard Unimap format for all keyboard and converter types (w/o F13-24; this one is without ergo mods)
* _ISO__A__ (w/ Curl-DH: _ISO_CA__) - ISO/Int Angle (the simple lower left half-row shift)
* _ISO__AW_ (w/ Curl-DH: _ISO_CAW_) - ISO/Int Angle-Wide(/)
* _ISO_CAWS - ISO/Int Curl-Angle-Wide(/)-Sym (more accessible apostrophe and hyphen/minus)
* _ANS__A__ (w/ Curl-DH: _ANS_CA__) - ANSI/US Angle(Z)
* _ANS__AW_ (w/ Curl-DH: _ANS_CAW_) - ANSI/US Angle(Z)-Wide(')
* _ANSAWING ( Curl-DH: N/A ) - ANSI/US A-Wing
*
* Select a Curl(DH) or non-Curl ergo model, or plain unmodded Unimap. For Curl(DH), you also need to set CURLMOD.
* NOTE: These map layouts affect all layouts. So for instance the CAWS map will affect both Colemak and Extend.
Edit '_########' in the UNIMAPLAYOUT definiton below to choose ergonomic Curl/Angle/Wide keyboard mods:
_NOMODS - Standard Unimap format for all keyboard and converter types (w/o F13-24; this one is without ergo mods)
_ISO_A_ - ISO/Int Angle (the simple lower left half-row shift)
_ISO_AW - ISO/Int Angle-Wide(/)
_ANS_A_ - ANSI/US Angle(Z)
_ANS_AW - ANSI/US Angle(Z)-Wide(')
_AWINGA - ANSI/US A-Wing Angle (rarely used)

Select an ergo modded keymap, or the plain unmodded Unimap. Note that these maps affect all layouts and layers.
For Curl(DH), you also need to set CURLMOD. For Sym mods, set SYMBOLKEYS according to keymap.
To get, say, the Colemak-CAWS (CurlAngleWideSym) layout on ISO/ANSI, use the _###_AW keymap with
ACTIVELAYOUT 5, CURLMOD 1 and SYMBOLKEYS 2/3 settings below. And CAPSBEHAVIOR 1 for Extend, of course!
</code></pre>

<p>
Expand All @@ -34,23 +33,22 @@
</p>

<pre><code>
* The CURLMOD options for Colemak and Tarmak layouts are:
* 0: No Curl - vanilla Colemak/Tarmak
* 1: The 2017 Curl(DHk) ergo mod, bringing the D and H keys down to comfortable bottom-row positions (QWERTY C/M)
* 2: SteveP99's original Curl(DHm) ergo mod, bringing D/H down but M to the home row. DH standard since Oct 2020.
The CURLMOD options for Colemak and Tarmak layouts are:
0: No Curl - "vanilla" Colemak/Tarmak
1: SteveP99's original Curl(DHm) ergo mod, bringing D/H down but M to the home row. DH standard since Oct 2020.
...
#define CURLMOD 1
#define CURLMOD 1 /* CURL_DH */
</code></pre>

<p>
This switch only affects Colemak layouts, including the four Tarmak layouts and Mirrored Colemak. Make sure you use a CurlAngle or CurlAngleWide keymap type such as <i>UNIMAP_AWIZXCBV</i> with it (optional for Tarmak1).
This switch only affects Colemak layouts, including the four Tarmak layouts and Mirrored Colemak. It also effects a V-B swap for Extend, so the Ctrl+V shortcut is kept.
</p>
</div>

<!-- Sym -->
<div class="platform-content" id="pfct-Sym">
<p>
The "Sym" symbol key mod hasn't been fully implemented in my TMK files. There's a model for CAWS-ISO that may serve as a template if you want another combo. But note that models affect Extend layers and other layouts too! So you may be better off just editing the layout definitions directly instead.
The Symbol key mods are selected with the SYMBOLKEYS setting. The Sym mod depends on your keymap, so select the right one depending on your Wide mod and board type.
</p>
</div>

Expand Down
10 changes: 5 additions & 5 deletions docs/platforms/index-tmk.html
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
<div class="platform-content" id="pfct-Index">
<br><h4>Controllers Platform Info</h4>
<p>
Much of the BigBag is implemented for controllers in the <a href="https://github.com/DreymaR/BigBagKbdTrixTMK"><b>Big Bag for TMK</b></a> repository on GitHub.
Much of the BigBag is implemented for controllers in the <a href="https://github.com/DreymaR/BigBagKbdTrixTMK"><b>Big Bag for TMK/USB</b></a> repository on GitHub.
</p><p>
In the following I will explain what a <b>QUICKIE USB-2-USB device</b> is, and what I've managed to implement on <b><a href="https://geekhack.org/index.php?topic=69169.0">Hasu's USB to USB keyboard converter</a></b> using his <b><a href="https://github.com/tmk/tmk_keyboard">TMK Keyboard Firmware Collection</a></b> toolkit.
</p><p>
If you're eager to get started before reading the details, you may jump directly to the <a href="https://github.com/DreymaR/BigBagKbdTrixTMK/blob/master/docs/README.md"><b>Big Bag for TMK README</b></a> (or its predecessor, the <a href="https://forum.colemak.com/topic/2158-dreymars-big-bag-of-keyboard-tricks-usb2usb-edition/"><b>Colemak Forum BigBag for TMK topic</b></a>). Both of these contain sections describing <b>Download and Install</b>, <b>Keymap Configuration</b> and <b>Device Flashing</b> for the TMK Big Bag repository.
If you're eager to get started before reading further, you may jump directly to the <a href="https://github.com/DreymaR/BigBagKbdTrixTMK/blob/master/docs/README.md"><b>Big Bag for TMK README</b></a>. Among other info, it contains sections describing <b>Download and Install</b>, <b>Keymap Configuration</b> and <b>Device Flashing</b>.
</p>
<br><img alt="USB2USB x3" src="res/usb/USB2USB-x3_YangDigi_GeekHack-Topic80421_GadOE.jpg"/>
<p class="img-text">
<a href="https://geekhack.org/index.php?topic=80421">GeekHack user yangdigi</a>'s comparison of USB-2-USB devices: Arduino Leonardo-type, Hasu's device and his own Pro Micro device. Scale: Hasu's device is about 6 cm (2") long.
</p>
<p>
Look at those beauties, heh. I've decided to call this kind of device a <b>QUICKIE</b> (QWERTY USB In, Colemak Key Input Emulated)! ;-) More proper names are "<b>USB-2-USB</b>" or "<b>USB to USB converter</b>" device, as you may of course use it for non-Colemak layouts (and as my name is silly).
Look at those beauties, heh. I've decided to call this kind of device a <b>QUICKIE</b> (QWERTY USB In, Colemak Key Input Emulated)! More proper names are "<b>USB-2-USB</b>" or "<b>USB to USB converter</b>" device, as you may of course use it for non-Colemak layouts (and as my name is quite silly).
</p><p>
This non-OS-specific solution doesn't have the full power of layout installs, but it's very interesting. A USB-to-USB device that plugs between the keyboard and whatever you're connecting your keyboard to, provides an XKB/Win/Mac/what-have-you independent solution that can accommodate many of my tricks! For people having to deal with zealous IT security rules, this may be the only solution short of getting an expensive remappable keyboard. It could let you type Colemak+Extend to, say, a PlayStation or other device where you can't control the layout directly. It could let you pair code using Colemak+Extend while your mate uses QWERTY (poor thing!) on the same computer. And it could be fun to make one yourself if you're adventurous and DIY oriented!
</p><p>
Expand Down Expand Up @@ -43,13 +43,13 @@
</li><li>
The Extend layers and switch keys are options that should work with nearly any existing layout
</li><li>
The Curl(DH) mod for Colemak layouts uses a separate switch (together with CurlAngle keymaps)
The Curl(DH) mod for Colemak layouts and SymbolKey modifications use separate modular switches
</li><li>
Mirrored Colemak and Tarmak (transitional Colemak) are separate layouts.
</li>
</ul>

<p><br>
Freedom of choice through <b>modularity</b> is an ideal in the DreymaR world, as it is in Linux. :-)
Freedom of choice through <b>modularity</b> is an ideal in the DreymaR world, as it is in Linux.
</p>
</div>
63 changes: 32 additions & 31 deletions docs/platforms/layers-main-tmk.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,27 @@
<p><span>TMK Extend1 diagram:</span></p>
<div class="spoiler-body">
<pre><code>
DreymaR's Extend1 layer:
* ,----. ,-------------------. ,-------------------. ,-------------------.
* |Caps| |MPly|MPrv|MNxt|MStp| |Mute|VolD|VolU|MSel| |WHom|WSch|MyCm|Calc|
* `----' `-------------------' `-------------------' `-------------------'
* ,-------------------------------------------------------------------------.
* | ?? | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| F11| F12| Pause |
* |-------------------------------------------------------------------------|
* | |Esc |Wh_U|WBak|WFwd|Ms_U|PgUp|Home| Up |End |Del |Esc |Ins | App |
* |-------------------------------------------------------------------------|
* |*Ext1* |Alt |Wh_D|Shft|Ctrl|Ms_D|PgDn|Left|Down|Rght|BSpc|App |WFav|PScr |
* |-------------------------------------------------------------------------|
* | |Wh_L| ^Z | ^X | ^C | ^V |Btn1|Btn2|Btn3|Ms_L|Ms_R|Wh_R| |
* |-------------------------------------------------------------------------|
* | | |Ext1 | Return | | | | |
* `-------------------------------------------------------------------------'
DreymaR's Extend1 layer:
,----˛ ,-------------------˛ ,-------------------˛ ,-------------------˛
|Caps| |MPly|MPrv|MNxt|MStp| |Mute|VolD|VolU|MSel| |WHom|WSch|MyCm|Calc|
`----´ `-------------------´ `-------------------´ `-------------------´
,-------------------------------------------------------------------------˛
| ?? | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| F11| F12| Pause |
|-------------------------------------------------------------------------|
| |Esc |Wh_U|WBak|WFwd|Ms_U|PgUp|Home| Up |End |Del |Esc |Ins | App |
|-------------------------------------------------------------------------|
|*Ext1* |Alt |Wh_D|Shft|Ctrl|Ms_D|PgDn|Left|Down|Rght|BSpc|App |WFav|PScr |
|-------------------------------------------------------------------------|
| |Wh_L| ^Z | ^X | ^C | ^V |Btn1|Btn2|Btn3|Ms_L|Ms_R|Wh_R| Ext2 |
|-------------------------------------------------------------------------|
| | | | Return | | | | Ext3 |
`-------------------------------------------------------------------------´
</code></pre>
</div>
</div><br>

<p>
To use the Extend layers, define the CAPSBEHAVIOR constant to 1. This'll make CapsLock the Extend modifier. You may change it to another key by editing the active layout or keymap; see the <b><a href="https://forum.colemak.com/post/18410/#p18410">Configuration</a></b> post below.
To use the Extend layers, define the CAPSBEHAVIOR constant to 1. This'll make CapsLock the Extend modifier. You may change it to another key by editing the active layout or keymap; see the <a href="https://github.com/DreymaR/BigBagKbdTrixTMK/blob/master/docs/README.md"><b>Big Bag for TMK README</b></a>.
</p><p>
<b>NOTE: Superstacking Extend modifiers</b> doesn't always work for me. Instead of Ctrl+Shift+Left, pressing Caps+S+T+N gave me ST key strokes. Oddly enough, it works with either Phys-Shift + Extend-Ctrl as well as Phys-RCtrl + Extend-Shift (Shift+Caps+T+N or RCtrl+Caps+S+N work) but not with physical LCtrl. This leads me to believe that the limitation is my keyboards' scan matrix, but it happened on all my boards. Other users didn't have this problem...?
</p>
Expand All @@ -54,21 +54,21 @@
<p><span>TMK Extend2 diagram:</span></p>
<div class="spoiler-body">
<pre><code>
DreymaR's Extend2 layer:
* ,----. ,-------------------. ,-------------------. ,-------------------.
* | | |MPau|MRwd|MFFd|Ejct| |WRef|BriD|BriU|Slep| |www |Mail|App3|App4|
* `----' `-------------------' `-------------------' `-------------------'
* ,-------------------------------------------------------------------------.
* | ?? | ! | @ | # | $ | % | ^ | P7 | P8 | P9 | P* | P- | = | |
* |-------------------------------------------------------------------------|
* | |Home| Up |End |Del |Esc |PgUp| P4 | P5 | P6 | P+ | ( | ) | |
* |-------------------------------------------------------------------------|
* |*Ext2* |Left|Down|Rght|BSpc|NLck|PgDn| P1 | P2 | P3 |PEnt| ' | , | |
* |-------------------------------------------------------------------------|
* | | | ^Z | ^X | ^C | ^V |Btn1| : | P0 | P0 | P. | P/ | |
* |-------------------------------------------------------------------------|
* | | | | |Ext2 | | | |
* `-------------------------------------------------------------------------'
DreymaR's Extend2 layer:
,----˛ ,-------------------˛ ,-------------------˛ ,-------------------˛
| | |MPau|MRwd|MFFd|Ejct| |WRef|BriD|BriU|Slep| |www |Mail|App3|App4|
`----´ `-------------------´ `-------------------´ `-------------------´
,-------------------------------------------------------------------------˛
| ?? | ! | @ | # | $ | % | ^ | P7 | P8 | P9 | P* | P- | = | |
|-------------------------------------------------------------------------|
| |Home| Up |End |Del |Esc |PgUp| P4 | P5 | P6 | P+ | ( | ) | |
|-------------------------------------------------------------------------|
|*Ext2* |Left|Down|Rght|BSpc|NLck|PgDn| P1 | P2 | P3 |PEnt| ' | , | |
|-------------------------------------------------------------------------|
| | | ^Z | ^X | ^C | ^V |Btn1| : | P0 | P0 | P. | P/ | Ext2 |
|-------------------------------------------------------------------------|
| | | | | | | | Ext3 |
`-------------------------------------------------------------------------´
</code></pre>
</div>
</div>
Expand All @@ -78,4 +78,5 @@
For the NumPad layer, remember that the NumLock state influences what you get. There's a NumLock key easily accessible in the layer.
</p>
</div>

<!-- DeadKeys -->
39 changes: 20 additions & 19 deletions docs/platforms/tarmak-intro-tmk.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,27 @@
<p>
The Tarmak progressions work modularly with the AngleWide ergo mods.
</p><p>
If you want to learn the brilliant Colemak-DH variant using a Tarmak progression, that's possible too! You just have to learn a CurlAngle mod before or with the 2nd Tarmak step which also gets tweaked a little so it moves B instead of G. The right-hand swaps (Hmk) should ideally be learnt in conjunction with Tarmak1-Curl because that moves K, but for SteveP's old variant I've deferred the HM swap to the last step. It could go wherever you like as it's separate, so feel free to edit the layout file if you desire.
If you want to learn the brilliant Colemak-DH variant using a Tarmak progression, that's possible too! You just have to learn a CurlAngle mod before or with the 2nd Tarmak step which also gets tweaked a little so it moves B instead of G. The H-M right-hand swap is deferred to the last step. As it's a standalone key swap though, it could go anywhere you like really, so feel free to edit the layout file if you so desire. You may want to do this swap separately from other changes, in the Tarmak spirit.
</p>

<pre><code>
* Tarmak2 - Transitional Colemak (ET)
* ,-----------------------------------------------------------.
* | | q| w| F| r| G| y| u| i| o| p| | | |
* |-----------------------------------------------------------|
* | | a| s| d| T| *J| h| N| E| l| ;| | |
* |-----------------------------------------------------------|
* | | z| x| c| v| b| K| m| | | | |
* `-----------------------------------------------------------'
* Tarmak2 - Transitional Colemak (ET)
* ,-----------------------------------------------------------˛
* | | q| w| F| r| G| y| u| i| o| p| | | |
* |-----------------------------------------------------------|
* | | a| s| d| T| *J| h| N| E| l| ;| | |
* |-----------------------------------------------------------|
* | | z| x| c| v| b| K| m| | | | |
* `-----------------------------------------------------------´

* Tarmak2-Curl(DHk) - Transitional Colemak-Curl-DHk (ET)
* ,-----------------------------------------------------------.
* | | q| w| F| r| B| y| u| i| o| p| | | |
* |-----------------------------------------------------------|
* | | a| s| d| T| g| K| N| E| l| ;| | |
* |-----------------------------------------------------------|
* | | z| x| c| *J| v| _| M| H| | | | |
* `-----------------------------------------------------------'
* Tarmak2-Curl(DH) - Transitional Colemak-Curl-DH (ET)
* ,-----------------------------------------------------------˛
* | | q| w| F| r| B| y| u| i| o| p| | | |
* |-----------------------------------------------------------|
* | | a| s| d| T| g| h| N| E| l| ;| | |
* |-----------------------------------------------------------|
* | | z| x| c| *J| v| _| K| m| | | | |
* `-----------------------------------------------------------´
</code></pre>
</div>

Expand All @@ -35,9 +35,10 @@
<li>
These are little hardware devices that plug between your keyboard and computer or whatever you type to. They're fully OS independent.
</li><li>
See the <a href="https://forum.colemak.com/viewtopic.php?id=2158">Big Bag of Tricks (USB-2-USB)</a> topic, and links therein.
See the <a href="https://github.com/DreymaR/BigBagKbdTrixTMK"><b>Big Bag of Tricks for TMK (USB-2-USB)</b></a> repo, its
<a href="https://github.com/DreymaR/BigBagKbdTrixTMK/blob/master/docs/README.md"><b>README</b></a>, and links therein.
</li><li>
GitHub user <a href="https://github.com/professor">professor</a> has an <a href="https://github.com/professor/ArduinoKeymapper">Arduino Keymapper repo</a> that includes Tarmak.
GitHub user <a href="https://github.com/professor">professor</a> made an <a href="https://github.com/professor/ArduinoKeymapper">Arduino Keymapper repo</a> that includes Tarmak and Colemak. I haven't checked in on it for years though, so I don't know whether it still works.
</li>
</ul>
</div>
Loading

0 comments on commit a71135c

Please sign in to comment.