/karabiner

My Karabiner Elements configuration

Primary LanguageTypeScriptMIT LicenseMIT

Karabiner Elements configuration

This is a fork of mxstbr/karabiner

If you like TypeScript and want your Karabiner configuration maintainable & type-safe, you probably want to use the custom configuration DSL / generator I created in src/rules.ts and src/utils.ts!

Watch the video about this repo:

CleanShot 2024-04-17 at 17 47 16@2x

Watch my interview with Raycast for a deeper dive into how I connect this with Raycast as my personal productivity system:

You probably don't want to use my exact configuration, as it's optimized for my personal style & usage. Best way to go about using this if you want to? Probably delete all the sublayers in src/rules.ts and add your own based on your own needs!

Installation

  1. Install & start Karabiner Elements
  2. Clone this repository
  3. Delete the default ~/.config/karabiner folder
  4. Create a symlink with ln -s ~/Developer/karabiner ~/.config (where ~/Developer/karabiner is your local path to where you cloned the repository)
  5. Restart karabiner_console_user_server with launchctl kickstart -k gui/`id -u`/org.pqrs.karabiner.karabiner_console_user_server

Development

pnpm install

to install the dependencies. (one-time only)

pnpm run build

builds the karabiner.json from the src/rules.ts.

pnpm run dev

watches the TypeScript files and rebuilds whenever they change.

License

Copyright (c) 2022 Maximilian Stoiber, licensed under the MIT license.