The Binding of ... i3:
======================


I have two typing modes. I tried to assign a number to each key based on how much effort it takes to press it, given the current typing mode/hand posture. This effort scale is goes from 0 to 5 and increases exponentially in discomfort. I can tolerate 0-2 without thinking about it. 3 and above is unacceptable with the long term usage.

* The keys with solid lines around them denote resting states.
* Empty keys represent 0.

Homo erectus mode:
=================
    .............___.............     ..................................
    : 1 :   :   |   |   : 2 : 2 :     :   :   :   :   :   :   :        :
    :...:.._:_..!___!_..:...:...:   ..:...:...:...:...:...:...:........:
    :     |   |   |   |   : 1 :     :   :   :   :   :   :   :   :      :
    :_____!___!...!___!...:...:.    :.__|___|___:_..:...:...:...:.     :
    |      |   :   :   :   : 1 :     |   |   |   |   :   :   :   :     :
    !______!...:...:...:...:...:   ..!___!___!___!...:...:...:...:.....:
    :    : 2 : 2 : 1 : 1 : 1 :     :   :   :   :   :   :   :           :
    :....:...:.._:___:...:...:...  :...:...:...:...:...:...:...........:
    :   : 2 :   |   |                          : 2 : 3 : 3 :   :   :   : 
    :...:...:...!___!............      ........:...:...:...:''':''':''':
                                                           :...:...:...:

    This mode is when I'm seated erect; the fingers of the left hand point toward the screen, and the left thumb is tethered on the Alt key. The right hand is either free to hover all of the right half of the keyboard, or is tethered to the trackpoint like a pleb. It's quite all right, there isn't much to say about it. It's also not that common.


    
On-the-whale-mode:
=================
    ..............................................................
    : 1 :   :   ;   :   : 1 : 2 : 2 : 1 : 1 : 2 : 3 : 3 :    3   :
    :...:.._:__.:.._:___:__.:...:...:...:...:...:...:...:........:
    :     |   |   |   |   |   :   :   :   :   :   : 1 : 2 :      :
    :.....!___!...!___!___!...:.__:___:___:___:_..:...:...:.  3  :
    :  2   : 1 : 1 :   :   :   |   |   |   |   |   : 1 : 2 :     :
    :......:...:...:...:.._:__.!___!___!___!___!...:...:...:.....:
    : 5  : 3 : 2 : 1 :   |   |   : 1 : 2 : 2 : 3 : 3 :     5     :
    :....:.._:___:...:...!___!...:...:.__:__.:...:...:...........:
    :   : 3 | 1 |   :                    | 1 | 2 : 3 :   :   :   :
    :...:...!___!...:..................__!__.!...:...:''':''':''':
                                                     :...:...:...:

    
    This mode is for fine tuned zeila, and involves terrible posture:

    * Left hand is placed unusually: the palm rests on the edge, the fingers are at an acute angle to the rows.
    * Right hand is tethered strongly to the homerow.
        
        ** Left thumb naturally rests on Alt_L, but since Win is the chief modifier, it rests on it, in a contrived manner. Hence the base cost of 1, on even a resting position.
        ** Left shift is not just an opportunity cost: it is PHYSICALLY painful to use the left thumb to activate it. 

        (also: there's a key next it that I have never touched before today. It prints < and >!)
    
    


Computing the cost:
===================

I did this only for the Zeos mode.

Used a very primitive formula: 
Cost = (sum of individual key costs) * frequency multiplier; where:

=========================
|  Freq   |  multiplier |
========================|
|  vhigh  |      4      |
|   high  |      3      |
|    med  |      2      |
|    low  |      1      |
 -----------------------
    
|====================================================================================|
|     Key Combo   |  Freq  |   Cost   | modified |  Cost*   |  d   |  Used for       |
|=====================================|==============================================|
| Win + Shft+ Q   | vhigh  |    24    |  Win + Q |     4    | 20   | kill screen     |
| Ctrl + T        | vhigh  |    20    |     T    |     0    | 20   | new tab/window  |
| Shft + O        | vhigh  |    20    |     OO   |     0    | 20   | open in new tab |
| :               | vhigh  |    16    |     '    |     1    | 15 * | command mode    |
| Ctrl + W        | vhigh  |    12    |     DD   |     0    | 12   | kill tab        |
| Win +  D        | vhigh  |     4    |          |          |      | dmenu           |
|-----------------|--------|----------|----------|----------|------|-----------------|
| Win + Shft+ Tab |  high  |    18    |  Win + ` |     2    | 16   | prev window/tab |
| Win +  Tab      |  high  |     3    |          |          |      | next window/tab |
| Shft + H/L      |  high  |    15    | Alt+H/L  |     1    | 14   | hist back/fwd   |
| Win +  Enter    |  high  |    12    |          |          |      | new terminal    |
| Ctrl + I/O      |  high  |     9    |          |          |      | cycle CSS       |
| Ctrl +Shft+ Tab |  high  |    24    | Ctrl + ` |     4    | 20** | prev tab        |
| Ctrl + Tab      |  high  |     9    |          |          |      | nex tab         |
| Win + H/L       |  high  |     3    |          |          |      | focus left/right|
| Shft + J/K      |  high  |    10    | Alt+J/K  |     1    |  9   | tab left/right  |
|-----------------|--------|----------|----------|----------|------|-----------------|
| Win +  1/2/3    |  med   |     1    |          |          |      | workspace 1/2/3 |
| Shft + N        |  med   |    12    |          |          |      | prev search     |
| Shft + G        |  med   |    10    |          |          |      | end of file     |
| Shft + R        |  med   |    10    |          |          |      | replace mode    |
|-----------------|--------|----------|----------|----------|------|-----------------|
| Win +  V        |  low   |     3    |          |          |      | tile splitting  |
| Ctrl + `        |  low   |     4    |          |          |      | qutebr. tabbed  |
| Win +  J/K      |  low   |     3    |          |          |      | focus up/down   | 
| Ctrl V          |  low   |     3    |          |          |      | visual mod      |
| Win +  W/S/E    |  low   |     1    |          |          |      | tiling mode     |
 ------------------------------------------------------------======-------------------
                                               Net Pain Gain: 146 
                                                             ======  

* I also mapped \ to : for padding.
** This absurdly high number does not really hold, the heft hand is untethered to activate this combo. (but it's still high)


Most Sensible changes: 
======================
* Modified bindings with a Shift in them (ex: using a Backtick instead, and ' instead of :)
* Modified bindings with a Ctrl in them.
* (qutebrowser) rebounnd old/discarded bindings to 'message-error' showing the new keybinding to use. Might help me assimilate the changes.

(while it is in the spirit of tiling WMs to eliminate Ctrl/Alt/Win+Tab completely, their onehandedness has been really useful from time to time.)

Hinting with words:
===================
* I don't touch type, but I am reasonably fast with typing out words.
* The default hinting is non-intuitive: the same link, when hinted after scrolling below takes a different form.
* I am superslow with hints like 'kkg': I have to process a lot before I can type it.
* Changing the hints to words seems to have fixed both these issues.


NO TABS FOR YOU:
================

I activated the 'tabs_are_windows' flag in qutebrowser; the tab handling is now left to the tiling WM. I use i3's tabbed mode, where every program is occupies the whole screen (like a webpage), and switching between programs is like switching between browser tabs.  This is very nice for interleaving different programs together and makes for good workflows where I'd like everything I use to have full screen estate. (for example: qutebrowser cannot run jupyter, which runs its own keybindings; a nice workflow is to have a reference webpage in qutebrowser,FF running Jupyter, and a terminal with a texteditor as tabs ***)

Shift + H/J/K/L was the qutebrowser default for tab-switching and history. It took me two days of trying to be too clever before I swapped Shift with Alt doing the exact same functions. (Alt +J/K now has to be done by i3 instead).
A crucial realization was that WMs *need* a modifier; else they are conflicted with programs expecting a text input.

( There was a major hassle that very suspiciously doesn't seem to be a problem now. i3 does not have a way of cycling through the windows in a workspace. I have to switch focus to the right to simulate Shift + J/K functionality. i3's default Win + J/K switches focus up and down ... I can't even explain. I probably arrived at the the solution by mental exhaustion. The quagmire might get resurrected if I think about it.)

I could try swapping Alt and Win with xcape/xmodmap; but I am wary of such solutions. I have, in essence, changed some of the key keybindings to use an Alt instead of a Win. And I've tried to avoid Shifts at all costs. I should think of some clever mapping for Caps Lock, which I hardly use. It does have a penalty of 2, so I should use it for single-key high expense events like Esc or F12; or even a Shift.

Two things I miss in this setup:

* Switching to a window, like Alt + [Num]. I can switch to workspaces this way, but not for the tiles in a workspace.
* Undoing closed windows seems to be an ongoing issue with qutebrowser; and I every page I have open is a window now.



I considered all of the following during the process:

* I could adjust, to vanilla keybindings
* I could customize everything on the fly.
* I could customize after putting a lot of thought and effort into the process.
* I could correct the keyboard layout.
* I could try a different Window Manager.
* I could try to learn to type properly and give up my pidgin typing.
* I could correct my posture. (NEVER)
* I could go back to having a tabbed browser.
* I could use the MacBook.
* I could go back to LXQt / the trackpoint. 

The last one seems the likeliest.