Giter VIP home page Giter VIP logo

keyboard's Introduction

Toward a more useful keyboard

Steve Losh's Modern Space Cadet is an inspiration. It opened my eyes to the fact that there's a more useful keyboard hidden inside the vanilla QWERTY package that most of us have tolerated for all these years. This repo represents my nascent quest to unleash that more useful keyboard.

At first, this might sound no different than the typical Emacs/Vim/<Every-Other-Editor> tweakfest. But it is. I'm not talking about honing my editor-of-choice. I'm not talking about pimping out my shell. I want a more useful keyboard everywhere. Whether I'm in my editor, in the terminal, in the browser, or in Keynote, I want a more useful keyboard.

And ideally, I want the same (more useful) keyboard in every app. Ubiquitous keyboarding. Muscle memory. Don't make me think.

How do I go to the beginning of the line in this app? The same way I go to the beginning of the line in every app! Don't make me think.

How do I go to the top of the file/screen/page in this app? The same way I... Well, you get the point.

Some assembly required

In its current state, my more-useful keyboard is built on top of a few tools, and some custom keymappings for those tools (all of which are described below). Where possible, this repo houses the configuration files that power my more-useful keyboard. In the places where the customization requires manual steps, I describe those steps.

Below you'll find a step-by-step guide for building this more-useful keyboard from scratch.

More useful (for me)

cus·tom·ize (verb): to modify or build according to individual or personal specifications or preference [dictionary.com]

Any customization is, by definition, personal. While I find that these customizations yield a more-useful keyboard for me, they might not feel like a win for you.

These customizations currently provide a fraction of what I want from my more-useful keyboard. I find it to be a very useful fraction, but I don't consider it complete by any means.

Here's what it provides so far:

KeyRemap4MacBook Change Key Configuration

Dependencies

This setup is honed and tested with the following dependencies.

The Setup

Grab the bits

git clone https://github.com/jasonrudolph/keyboard.git

cd keyboard

mkdir -p ~/Library/Application\ Support/KeyRemap4MacBook

# Prepare custom settings for KeyRemap4MacBook
ln -s $PWD/keyremap4macbook/private.xml \
  ~/Library/Application\ Support/KeyRemap4MacBook/private.xml

Install the apps

Put control and escape on the home row

Goals

  • Tap caps lock for escape
  • Hold caps lock for control

Making it happen

  1. Launch PCKeyboardHack.
  2. Enable the "Change Caps Lock" option, and map caps lock to keycode 80. (80 is F19. I don't have a physical F19 key, so this setting will not conflict with any existing keys.) [screenshot]
  3. Launch KeyRemap4MacBook.
  4. In the "Change Key" tab, enable the "F19 to Escape/Control" option. [screenshot]
  5. In the "Key Repeat" tab, change the "[Key Overlaid Modifier] Timeout" to 300ms. (As recommended by Steve Losh, I find that this avoids accidentally triggering escape when you meant to trigger control.) [screenshot]

Unleash (S)uper (D)uper mode

Goals

  • Enable navigation (up/down/left/right) via the home row
  • Enable word navigation (option+left/right) via the home row
  • Enable other commonly-used actions on or near the home row

Making it happen

  1. Launch KeyRemap4MacBook.
  2. In the "Change Key" tab, enable the "(S)uper (D)uper Mode" option. [screenshot]

TODO

keyboard's People

Contributors

jasonrudolph avatar

Watchers

James Cloos avatar Omar Nouhi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.