# Karabiner-Elements
**Repository Path**: wynnhowe/Karabiner-Elements
## Basic Information
- **Project Name**: Karabiner-Elements
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Unlicense
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-19
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[](https://github.com/pqrs-org/Karabiner-Elements/actions)
[](https://github.com/pqrs-org/Karabiner-Elements/blob/master/LICENSE.md)
# Karabiner-Elements
Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra or later.
## Download
You can download Karabiner-Elements from [official site](https://karabiner-elements.pqrs.org/).
### Old releases
You can download previous versions of Karabiner-Elements from [here](https://karabiner-elements.pqrs.org/docs/releasenotes/).
## Supported systems
- macOS Catalina (10.15)
- macOS Big Sur (11.0)
## Usage
## Donations
If you would like to contribute financially to the development of Karabiner Elements, donations can be made via
---
## For developers
### How to build
System requirements to build Karabiner-Elements:
- macOS 10.15+
- Xcode 12+
- Command Line Tools for Xcode
- xz (`brew install xz`)
- [XcodeGen](https://github.com/yonaskolb/XcodeGen)
- CMake (`brew install cmake`)
#### Steps
1. Get source code by executing a following command in Terminal.app.
```shell
git clone --depth 1 https://github.com/pqrs-org/Karabiner-Elements.git
cd Karabiner-Elements
git submodule update --init --recursive --depth 1
```
2. Find your codesign identity if you have one.
(Skip this step if you don't have your codesign identity.)
```shell
security find-identity -p codesigning -v | grep 'Developer ID Application'
```
The result is as follows.
```text
1) 8D660191481C98F5C56630847A6C39D95C166F22 "Developer ID Application: Fumihiko Takayama (G43BCU2T37)"
```
Your codesign identity is `8D660191481C98F5C56630847A6C39D95C166F22` in the above case.
3. Set environment variable to use your codesign identity.
(Skip this step if you don't have your codesign identity.)
```shell
export PQRS_ORG_CODE_SIGN_IDENTITY=8D660191481C98F5C56630847A6C39D95C166F22
```
4. Find your codesign identity for installer signing if you have one.
(Skip this step if you don't have your codesign identity.)
```shell
security find-identity -p basic -v | grep 'Developer ID Installer'
```
The result is as follows.
```text
1) C86BB5F7830071C7B0B07D168A9A9375CC2D02C5 "Developer ID Installer: Fumihiko Takayama (G43BCU2T37)"
```
Your codesign identity is `C86BB5F7830071C7B0B07D168A9A9375CC2D02C5` in the above case.
5. Set environment variable to use your codesign identity for installer signing.
(Skip this step if you don't have your codesign identity.)
```shell
export PQRS_ORG_INSTALLER_CODE_SIGN_IDENTITY=C86BB5F7830071C7B0B07D168A9A9375CC2D02C5
```
6. Build a package by executing a following command in Terminal.app.
```shell
make package
```
The `make` script will create a redistributable **Karabiner-Elements-VERSION.dmg** in the current directory.
#### Note: About pre-built binaries in the source tree
Karabiner-Elements uses some pre-built binaries in the source tree.
- `src/vendor/Karabiner-DriverKit-VirtualHIDDevice/dist/Karabiner-DriverKit-VirtualHIDDevice-*.dmg`
Above `make package` command does not rebuild these binaries.
(These binaries will be copied in the distributed package.)
If you want to rebuild these binaries, you have to build them manually.
Please follow the instruction of these projects.