<commit_before>---
title: "Keychron K2: Linux Setup"
date: 2021-12-11T20:59:21-05:00
---

I recently purchased a [Keychron K2](https://www.keychron.com/products/keychron-k2-wireless-mechanical-keyboard) mechanical keyboard. It is a 75% keyboard that has bluetooth. This article describes some quality-of-life improvements to use it with a Linux system.

**Note**: Tested on Arch Linux only.

<!--more-->

## Kernel Module

Keychron keyboards are recognized out-of-the-box as Apple keyboards on Linux systems.

The corresponding kernel module is `hid_apple`.

```shell
$ modinfo hid_apple
```

Ensure the module is loaded within the initram for setups that use LUKS:

```shell<commit_msg>cleanup: move note after <!--more--> blurb<commit_after>---
title: "Keychron K2: Linux Setup"
date: 2021-12-11T20:59:21-05:00
---

I recently purchased a [Keychron K2](https://www.keychron.com/products/keychron-k2-wireless-mechanical-keyboard) mechanical keyboard. It is a 75% keyboard that has bluetooth. This article describes some quality-of-life improvements to use it with a Linux system.

<!--more-->

**Note**: Tested on Arch Linux only.

## Kernel Module

Keychron keyboards are recognized out-of-the-box as Apple keyboards on Linux systems.

The corresponding kernel module is `hid_apple`.

```shell
$ modinfo hid_apple
```

Ensure the module is loaded within the initram for setups that use LUKS:

```shell
{'fraction_non_alphanumeric': 0.11119030648610122, 'fraction_numerical': 0.03278688524590164, 'mean_word_length': 4.358778625954199, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7543707', 'n_tokens_mistral': 458, 'n_tokens_neox': 421, 'n_words': 164}