Karabiner & Goku: Next step is Hyper mode (Mac)

In a earlier post, I setup Karabiner with Goku to map Cmd-Ctrl-w to a series of custom keystrokes.

Why not make this even easier?

Enter “hyper” mode, which is the idea of making ANY key on your keyboard act like the Ctrl key. Basically, this is making a regular key like the “a” key a modifier key (a key to be held-down), but a regular “a” when the key is typed normally.

Based on @nikitavoloboev’s karabiner.edn file, I started with a very small config and now slowly adding more keyboard shortcuts/macros.

Here’s a simple ~/.config/karabiner.edn that makes the ‘a’ key behave like a SHIFT key, but only for the letter ‘y’. And, if you hold-down ‘a’ and tap ‘h’, it types out “Hi”:

  :simlayers {
    :a-mode {:key :a}
  :main [{:des "a-key (launch apps, for example)"
    :rules [:a-mode
      [:y :!Sy]
      [:h [:!Sh :i]]

Don’t forget, to make it active (update karabiner.json) by running Goku. Or use ‘gokuw’, which will always watch for changes to your karabiner.edn:
$ goku

This means, the “a” key, used as a modifier key, can be mapped to another 40+ other keys to do 40 more custom keystrokes.
Then the “b” key in the same way, can give you another 40 more custom keystrokes.
Then the “c” key… and so on.
Even the SPACEBAR can be turned into a modifier key!

That’s a lot of new keyboard shortcuts.

When you want to add another modifier to karabiner.edn (a new “layer”), do something like this:

  :simlayers {
    :a-mode {:key :a}
    :d-mode {:key :d}
  :main [
    {:des "a-key (stuff for vim)"
      :rules [:a-mode
          ;; complete a ctag
          [:y [:!Tx :!Tclose_bracket]]

          ;; c-x, c-p complete prev word
          [:u [:!Tx :!Tp]]

          ;; c-x, c-l complete whole line
          [:i [:!Tx :!Tl]]
    {:des "d-key (dpkg)"
      :rules [:d-mode
        [:y :!Sy]
        [:p [:d :p :k :g :spacebar :hyphen :l]]


Simplify keystrokes with Karabiner and Goku (Mac keyboard macros)

Keyboard macros using Karabiner and goku

Good for making hard key sequences like ctrl-x, ctrl-] (vim completion mode) easier.

Karabiner can control almost everything keyboard-related at a low-level.
But Karabiner “Complex modifications” / “rules” are hard to configure in json, so use goku (a DSL) to write the rules in shorthand and generate the karabiner rules.

Look at your current karabiner config. Maybe save a backup:
less ~/.config/karabiner/karabiner.json

Install goku:
brew install yqrashawn/goku/goku
brew services start goku

Create the default goku .edn file, write your rules in goku format:

vi ~/.config/karabiner.edn

File contents:

donn-mbp:~ donn$ cat ~/.config/karabiner.edn
{:main [{:des "vim completion mode"
  :rules [
    ;; c-x, c-] complete tag
    [:!QWt [:!Tx :!Tclose_bracket]]

    ;; c-x, c-p complete prev word
    [:!QWw [:!Tx :!Tp]]

    ;; c-x, c-l complete whole line
    [:!QWe [:!Tx :!Tl]]

in the above, when Cmd-Ctrl-t is pressed: The app sees Ctrl-x Ctrl-]
which is vim completion-mode (ctrl-x) to complete a ctag (ctrl-])
!QW means right-cmd and right-ctrl keys are required.

Cmd-Ctrl was chosen because it works well with my Kinesis Advantage2 keyboard

How to find more symbols for special keys like ‘close_bracket’?
Search the goku source code for: grave_accent_and_tilde
(which was used in the official goku tutorial)

Run goku to translate the rules in the .edn file to karabiner json (this will update karabiner.json):
$ goku

No need to restart Karabiner to pick-up the new rule 🙂

Now from vim insert-mode, type cmd-ctrl-w to autocomplete previous word(s), which is easier than ctrl-x, ctrl-p, at least on a Kinesis keyboard.

Goku (has a tutorial with a reference of modifiers “left ctrl” to goku character-code “T”):


Next step: For something more advanced and more powerful, see my post about Karabiner “hyper” mode


XBOX Original Softmod, Hard Drive Upgrade, Clock Capacitor (2019)

Games / disc archive

Games archived at archive.org

Softmodding in 2019

99% of how to softmod is in MrMario’s video. But you don’t need to download and build Rocky5 softmodding tool from source as done in the video. Instead, you can download the prebuilt “Xbox Softmodding Tool.zip” file and “Extras” .iso disc image (link is in the official github docs). Burn the Extras .iso to DVD-R with Imgburn and low write speed (eg. 2x or 4x).

Remove clock capacitor

Figure out what version xbox you have. Eg. 1.0, 1.4, 1.6.
v1.6 does NOT need to have the Clock Capacitor removed. Softmod dashboard will also display the xbox version. So will the “xbox info.txt” file when you save your eeprom backup to a safe storage location.

Hard disk upgrade

Hard drive compatibility chart. The Crucial 500GB SSD (CT500MX500SSD1Z) looks promising, $65 amazon.

Get the PATA IDE to SATA converter with two large capacitors near the IDE connector and slave/master jumper near the power connector. One user recommends the one made by Startech with red PCB [sold on Amazon and Startech website], instead of the ones with green PCB. Youtubers report green ones working fine. Youtuber reporting Startech throughput is higher/faster.

How long should the 80-wire IDE ribbon cable be?
At least 24 inches is recommended. https://www.reddit.com/r/originalxbox/comments/7j3pj5/ide_40_vs_80/

What size hard drive can I install?
Partitions F: and G: can each be sized up to 1TB, so a 2TB disk is generally the max. With a 1TB drive, you can assign the majority of the disk (about 1TB, because C: and other partitions use some of the space) to F: and have no G:
See also the FAQ

Should I use a SSD instead of spinning platters HDD?
Some mixed opinion and 3rd hand reports, but seems either SSD or HDD will work. The biggest factor is the favorable low-cost of a 1TB or 2TB HDD, not SSD performance (IDE-to-SATA converter board is probably the bottleneck). https://www.reddit.com/r/originalxbox/comments/8bilp3/solidstate_drive_to_futureproof_your_xbox/

Disc drive

Replacement drive belts: Search ebay for:
xbox drive (belt,band)
5 belts for $1.08
Approx 1″ diameter

Hardmod: Flashing the TSOP

Howto (2017)

Hexen 2018 disc image