All Projects → qubist → mirrorboard-mac

qubist / mirrorboard-mac

Licence: MIT license
Intuitive one-handed typing on macOS by mirroring the keyboard while spacebar is held

Programming Languages

perl
6916 projects

Projects that are alternatives of or similar to mirrorboard-mac

PianoKeyboard
Piano keyboard view for iOS, in Swift
Stars: ✭ 105 (+262.07%)
Mutual labels:  keyboard
re-pressed
re-pressed is a clojurescript library that handles keyboard events for re-frame applications.
Stars: ✭ 150 (+417.24%)
Mutual labels:  keyboard
fpga-virtual-console
VT220-compatible console on Cyclone IV EP4CE55F23I7
Stars: ✭ 33 (+13.79%)
Mutual labels:  keyboard
rasp vusb
This repo explains how to turn your Raspberry Pi Zero into USB Keyboard and Mouse. Also provides sample code and binaries to control them.
Stars: ✭ 85 (+193.1%)
Mutual labels:  keyboard
BadUSB
Personal implementation of the BadUSB exploit with an Atmel 8-bit AVR ATTiny85 acting as a HID keyboard
Stars: ✭ 63 (+117.24%)
Mutual labels:  keyboard
keymacs
Ergonomic keyboard layout for nonergonomic keyboards.
Stars: ✭ 22 (-24.14%)
Mutual labels:  keyboard
aframe-keyboard
An Aframe component that renders a fully functional 3D keyboard, that works on mobile, desktop browers, and VR headsets!
Stars: ✭ 23 (-20.69%)
Mutual labels:  keyboard
GKey
German Keyboard Layout for TempleOS
Stars: ✭ 20 (-31.03%)
Mutual labels:  keyboard
wc-keyboard
自定义数字键盘, 仿照大众点评闪惠买单的键盘
Stars: ✭ 67 (+131.03%)
Mutual labels:  keyboard
snackymini-keyboard
Snackymini Keyboard
Stars: ✭ 28 (-3.45%)
Mutual labels:  keyboard
keyd
A key remapping daemon for linux.
Stars: ✭ 687 (+2268.97%)
Mutual labels:  keyboard
cAndroid
cAndroid is tool for control your PC by Android phone
Stars: ✭ 23 (-20.69%)
Mutual labels:  keyboard
Fairtris
Clone of the official classic Tetris® game for the NES console, intended for Windows and Linux systems. It implements the original mechanics and includes many regional versions and several RNGs (all in one executable).
Stars: ✭ 30 (+3.45%)
Mutual labels:  keyboard
waffle microdox
Microdox Keyboard Build Guides
Stars: ✭ 19 (-34.48%)
Mutual labels:  keyboard
hillside
Family of split ergonomic keyboards with three rows of five or six keys, aggressive column stagger, a generous thumb arc and most have a partial bottom utility row
Stars: ✭ 101 (+248.28%)
Mutual labels:  keyboard
react-native-awesome-pin
A highly interactive and customisable PIN code screen for React Native.
Stars: ✭ 28 (-3.45%)
Mutual labels:  keyboard
bepo developpeur
Quelques modifications de la disposition clavier Bépo pour la rendre plus adaptée à mon usage. Update Bépo V1.1
Stars: ✭ 20 (-31.03%)
Mutual labels:  keyboard
ukrainian-typographic-keyboard
Combined Ukrainian keyboard layout with typographic symbols
Stars: ✭ 356 (+1127.59%)
Mutual labels:  keyboard
CustomKeyboard
A simple and fast implementation of a custom numeric keypad. There is always a keyboard for you.
Stars: ✭ 20 (-31.03%)
Mutual labels:  keyboard
djinn
Djinn Split Keyboard
Stars: ✭ 685 (+2262.07%)
Mutual labels:  keyboard

mirrorboard-mac

standard-readme compliant GitHub license GitHub stars Twitter

Intuitive one-handed typing on macOS by mirroring the keyboard while spacebar is held

Table of Contents

Background

Inspired by Randall Munroe of xkcd and informed by many others across the internet, I've created an implementation of this concept for macOS.

Karabiner-Elements powers this. It's a wonderful piece of software that's completely free, open source, and great for any type of keyboard modification you might want to do on a Mac.

Install

  1. Download and install Karabiner-Elements
  2. Open this URL in your browser to import the mirrorboard-mac complex modification into karabiner: karabiner://karabiner/assets/complex_modifications/import?url=https://github.com/qubist/mirrorboard-mac/raw/master/mirrorboard-mac.json You can also download the JSON file of the complex modification from this repo and import it manually by adding it to ~/.config/karabiner/assets/complex_modifications
  3. Open the Karabiner-Elements Preferences window, and enable (or add and enable) the mirrorboard-mac rule in the Complex Modifications tab.

Your keyboard should now be mirror-able! Test it out by holding the spacebar and typing something.

Extra configuration

I found that having the spacebar output a space only on key-up was manageable, but awkward at times. Here's how to make a keyboard shortcut that could toggle the keyboard mirroring functionality on and off:

  1. In the Karabiner-Elements Preferences window, Remove the mirrorboard-mac modification we added in step 3 of the installation. Don't worry, it'll still be installed, it's just no longer enabled. We'll add it back soon enough.
  2. Go to the Misc tab and turn the "Show profile name in menu bar" option on. (Strictly you don't need to do this, but it will be how we can see whether mirroring is on or off.)
  3. Next, we need to create two profiles that we can switch between to enable and disable mirroring.

If you're only using Karabiner-Elements for this, go to the Profile tab and create a new profile.

If you also use Karabiner-Elements for things besides mirrorboard-mac, you'll need to duplicate your profile so you don't lose your other modifications when switching mirroring on and off. There's no way to do this in the GUI, so you'll have to open the file karabiner.json in ~/.config/karabiner/ and copy-and-paste to duplicate the the item inside the first set of curly braces after "profiles": Now you should have two profiles that are exactly the same, either empty or both containing duplicate copies of your pre-existing Karabiner-Elements configuration. Name one "Mirroring" and one "Default" or something like that. I have mine named "␣●" and "␣○" so that they take up less space on my menu bar. 4. Now, add the mirrorboard-mac modification back to one of your profiles.

At this stage, we can enable and disable keyboard mirroring by selecting between our two profiles from the display in the menu bar. But this isn't enough!

  1. We want a keyboard shortcut that can toggle between our two profiles. To do this, we need to create an Automator automation. Open Automator and create a new automation: File > New. Choose "Service" and set Service recieves to "no input" in "any application". Then add the action "Run Shell Script". Select /usr/bin/perl in the list of Shells and then enter this Perl script into the text field. Then replace all the all-caps sections starting with YOUR_ with your own data.

  2. Test if this is working by hitting Run. This should toggle between your profiles! Save it if it's working.

  3. Now go into System Preferences > Keyboard > Shortcuts > Services. If you scroll to near the bottom, you should see the Automation you just made as an item there under the "General" heading. Select it and add a shortcut of your choosing.

  4. Go to System Preferences > Security & Privacy > Privacy and add Automator to the list of apps that are allowed to control your computer.

  5. Done! Your keyboard shortcut should now toggle between mirrorboard-mac being enabled and being disabled.

Usage

Hold space while typing to mirror the keyboard.

Notes

The keyboard layout in the Karabiner-Elements modification file is set up for ANSI keyboards. It should be easy to modify for ISO keyboards.

It also should be compatible with many, many keyboard layouts like the ones you can choose from and switch between in System Preferences. For example, I use the Dvorak keyboard layout by adding the Dvorak Input Source in system preferences. With no modifications, this Karabiner-Elements modification still works for me. This is because Karabiner-Elements reads inputs, and modifies them, directly from the keyboard, before they are transformed by layouts you've applied through System Preferences (see this in action by switching to an alternate layout through System Preferences, opening Karabiner-EventViewer, and watching all your keystrokes match up with what's written on your keyboard).

Contribute

Pull requests are accepted.

License

MIT License

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].