All Projects → jasonrudolph → Keyboard

jasonrudolph / Keyboard

Licence: mit
⌨ Toward a more useful keyboard

Programming Languages

lua
6591 projects
shell
77523 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Keyboard

Dotfiles
Zsh, Karabiner, VS Code, Sublime, Neovim, Nix
Stars: ✭ 634 (-58.34%)
Mutual labels:  productivity, keyboard, hammerspoon
Keyboard
Master of keyboard is master of automation (Key remapper implementation in Swift)
Stars: ✭ 45 (-97.04%)
Mutual labels:  karabiner, keyboard, hammerspoon
mouseable
'Mouseable' is intended to replace a mouse or trackpad.
Stars: ✭ 418 (-72.54%)
Mutual labels:  productivity, keyboard
hammerspoon
Boosts productivity and adds useful features to OSX.
Stars: ✭ 18 (-98.82%)
Mutual labels:  productivity, hammerspoon
Sublimetutor
An interactive in-editor keyboard shortcuts tutorial for Sublime Text 3
Stars: ✭ 336 (-77.92%)
Mutual labels:  productivity, markdown
dotfiles
The config that makes me a productivity whiz 🧙‍♂️
Stars: ✭ 36 (-97.63%)
Mutual labels:  hjkl, hammerspoon
dotfiles
💾 dotfiles for macOS - includes zsh, hyper key, Karabiner, and Phoenix configurations. Installation via dotbot.
Stars: ✭ 41 (-97.31%)
Mutual labels:  karabiner, hammerspoon
Nb
CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script.
Stars: ✭ 3,846 (+152.69%)
Mutual labels:  productivity, markdown
Spacehammer
Hammerspoon config inspired by Spacemacs
Stars: ✭ 280 (-81.6%)
Mutual labels:  keyboard, hammerspoon
Slowquitapps
Add a global delay to Command-Q to stop accidental app quits.
Stars: ✭ 916 (-39.82%)
Mutual labels:  productivity, keyboard
Awesome Hammerspoon
awesome configuration for Hammerspoon.
Stars: ✭ 928 (-39.03%)
Mutual labels:  productivity, hammerspoon
dotfiles
github.com/casprwang/dotfiles
Stars: ✭ 30 (-98.03%)
Mutual labels:  karabiner, hammerspoon
Trackmd
Tools for tracking changes in Markdown format within RStudio
Stars: ✭ 89 (-94.15%)
Mutual labels:  productivity, markdown
keynavish
Control the mouse with the keyboard, on Windows.
Stars: ✭ 59 (-96.12%)
Mutual labels:  productivity, keyboard
Chromium Vim
Vim bindings for Google Chrome.
Stars: ✭ 2,150 (+41.26%)
Mutual labels:  productivity, keyboard
Zettlr
A Markdown Editor for the 21st century.
Stars: ✭ 6,099 (+300.72%)
Mutual labels:  productivity, markdown
Notes
📝 Simple delightful note taking, with more unix and less lock-in.
Stars: ✭ 939 (-38.3%)
Mutual labels:  productivity, markdown
Spaceboard
Pinterest for markdown notes. Made with React, TypeScript, and Next.js.
Stars: ✭ 106 (-93.04%)
Mutual labels:  productivity, markdown
Imgurl
ImgURL是一个简单、纯粹的图床程序,让个人图床多一个选择。
Stars: ✭ 1,474 (-3.15%)
Mutual labels:  markdown
Markdown Viewer
Markdown (.md) file viewer WebExtension for your browser.
Stars: ✭ 109 (-92.84%)
Mutual labels:  markdown

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.

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.

Features

A more useful caps lock key

By repurposing the anachronistic caps lock key, we can make control and escape accessible via the home row.

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

📣 Shout-out to @arbelt and @jasoncodes for the implementation. ⚡️🍻🌟

(S)uper (D)uper Mode

To activate, push the s and d keys simultaneously and hold them down. Now you're in (S)uper (D)uper Mode. It's like a secret keyboard inside your keyboard. (Whoa.) It's optimized for keeping you on the home row, or very close to it. Now you can:

  • Use h / j / k / l for left/down/up/right respectively
  • Use a for option (AKA alt)
  • Use f for command
  • Use space for shift
  • Use a + j / k for page down / page up
  • Use i / o to move to the previous/next tab
  • Use u / p to go to the first/last tab (in most apps)
  • Use a + h / l to move to previous/next word (in most apps)

(S)uper (D)uper Mode Keybindings

📣 Shout-out to Karabiner's Simultaneous vi Mode for providing the inspiration for (S)uper (D)uper Mode. :neckbeard:

Window Layout Mode

Quickly arrange and resize windows in common configurations, using keyboard shortcuts that are on or near the home row. (Or, feel free to choose your own keyboard shortcuts.)

Default keybindings

Use control + s to turn on Window Layout Mode. Then, use any shortcut below to make windows do your bidding. For example, to send the window left, hit control + s, and then hit h.

  • Use h to send window left (left half of screen)
  • Use j to send window down (bottom half of screen)
  • Use k to send window up (top half of screen)
  • Use l to send window right (right half of screen)
  • Use shift + h to send window to left 40% of screen
  • Use shift + l to send window to right 60% of screen
  • Use i to send window to upper left quarter of screen
  • Use o to send window to upper right quarter of screen
  • Use , to send window to lower left quarter of screen
  • Use . to send window to lower right quarter of screen
  • Use space to send window to center of screen
  • Use enter to resize window to fill the screen
  • Use n to send window to the next monitor
  • Use to send window to the monitor on the left (if there is one)
  • Use to send window to the monitor on the right (if there is one)
  • Use control + s to exit Window Layout Mode without moving any windows

Window Layout Mode Keybindings (1) Window Layout Mode Keybindings (2)

Choose your own keybindings

Window Layout Mode ships with the default keybindings above, but you're welcome to personalize this setup. See hammerspoon/windows-bindings-defaults.lua for instructions on configuring shortcuts to your personal taste.

Markdown Mode

Perform common Markdown-formatting tasks anywhere that you're editing text (e.g., in a GitHub comment, in your editor, in your email client).

Use control + m to turn on Markdown Mode. Then, use any shortcut below to perform an action. For example, to format the selected text as bold in Markdown, hit control + m, and then b.

  • Use b to wrap the currently-selected text in double asterisks ("B" for "Bold")

    Example: **selection**

  • Use c to wrap the currently-selected text in backticks ("C" for "Code")

    Example: `selection`

  • Use i to wrap the currently-selected text in single asterisks ("I" for "Italic")

    Example: *selection*

  • Use s to wrap the currently-selected text in double tildes ("S" for "Strikethrough")

    Example: ~~selection~~

  • Use l to convert the currently-selected text to an inline link, using a URL from the clipboard ("L" for "Link")

    Example: [selection](clipboard)

  • Use control + m to exit Markdown Mode without performing any actions

Hyper key for quickly launching apps

macOS doesn't have a native hyper key. But thanks to Karabiner-Elements, we can create our own. In this setup, we'll use the right option key as our hyper key.

With a new modifier key defined, we open a whole world of possibilities. I find it especially useful for providing global shortcuts for launching apps.

Choose your own apps

Hyper Mode ships with the default keybindings below, but you'll likely want to personalize this setup. See hammerspoon/hyper-apps-defaults.lua for instructions on configuring shortcuts to launch your most commonly-used apps.

Default app keybindings

  • hyper + a to open iTunes ("A" for "Apple Music")
  • hyper + b to open Google Chrome ("B" for "Browser")
  • hyper + c to open Slack ("C for "Chat")
  • hyper + d to open Remember The Milk ("D" for "Do!" ... or "Done!")
  • hyper + e to open Atom ("E" for "Editor")
  • hyper + f to open Finder ("F" for "Finder")
  • hyper + g to open Mailplane ("G" for "Gmail")
  • hyper + s to open Slack ("S" for "Slack")
  • hyper + t to open iTerm2 ("T" for "Terminal")

Miscellaneous goodness

  • Use control + - (dash) to split iTerm2 panes horizontally
  • Use control + | (pipe) split iTerm2 panes vertically
  • Use control + h / j / k / l to move left/down/up/right by one pane in iTerm2
  • Use control + u to delete to the start of the line
  • Use control + ; to delete to the end of the line
  • Use option + h / l to delete the previous/next word

Dependencies

This setup is honed and tested with the following dependencies.

Installation

  1. Grab the bits

    git clone https://github.com/jasonrudolph/keyboard.git ~/.keyboard
    
    cd ~/.keyboard
    
    script/setup
  2. Enable accessibility to allow Hammerspoon to do its thing [screenshot]

  3. You'll be prompted to allow Karabiner-Elements to load its kernel extension, followed by a flurry of prompts related to input monitoring. Follow the prompts to upgrade your life.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].