A collection of configuration files, guides, and resources to help macOS users remap their keyboards using Karabiner-Elements.
- Windows Keyboard Compatibility: Seamlessly remap Windows keyboard keys to macOS equivalents (e.g.,
Ctrl
→Command
,Alt
→Option
). - Predefined Profiles: Ready-made configurations for popular keyboard models and layouts.
- Custom Keybinding: Easily create your own key remaps for a more personalized experience.
- Advanced Features: Dual-role keys, app-specific mappings, and conditional remaps for even more customization.
- Download and install Karabiner-Elements from the official website.
- Follow the installation prompts provided on the website.
-
Open the following URL in your browser to import the configuration directly into Karabiner-Elements:
karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/Strong-Foundation/Karabiner-Elements-Remapping/main/config/windows-keyboard.json
-
This action will launch Karabiner-Elements and automatically import the configuration file.
-
Navigate to the Complex Modifications tab in Karabiner-Elements, and enable the imported rule(s).
Karabiner-Elements-Remapping/
│
├── .github/ # GitHub workflows and CI/CD configuration
│ └── workflows
│ └── build-jsonnet.yml # Workflow for automating JSONNET compilation
├── .gitignore # Git ignore file
├── License.md # License for the repository
├── Readme.md # This file
├── config/ # Compiled JSON configuration files for Karabiner-Elements
│ └── windows-keyboard.json # The file imported by Karabiner-Elements
├── jsonnet/ # JSONNET files used to generate configuration JSON
│ └── windows-mac-remap.jsonnet # JSONNET file that generates the `windows-keyboard.json`
└── scripts/ # Helper scripts for build and automation
└── build-jsonnet.sh # Script to generate the JSON file from the JSONNET source
Instead of manually writing complex JSON configuration rules, we use JSONNET, a data-templating language, to generate the final configuration file (windows-keyboard.json
).
- The
windows-mac-remap.jsonnet
file defines the remap rules. - The
build-jsonnet.sh
script compiles this JSONNET file into a final JSON format. - The compiled
windows-keyboard.json
can then be imported into Karabiner-Elements.
To regenerate the JSON file from the JSONNET template, you can run the build-jsonnet.sh
script.
Contributions are welcome! If you have a custom key remap or improvement, feel free to submit a pull request or open an issue.
- Fork this repository.
- Create a new branch for your changes:
git checkout -b feature/my-custom-remap
- Commit your changes and push to your fork:
git commit -m "Add remap for XYZ keyboard" git push origin feature/my-custom-remap
- Submit a pull request to merge your changes into the main repository.
This repository is licensed under the MIT License. You are free to use, modify, and distribute the configurations as needed.
If you encounter issues or have questions:
- Open an Issue.
- Visit the Karabiner-Elements discussion forum.
Happy remapping! 🎉