keychron_capable

Keychron Capable

Enables a Linux system to accept input from a Keychron keyboard's function keys row.

Example of manual process:

  1. set the keyboard to Windows mode using the side switch

  2. hold Fn + X + L for 4 seconds to set the function key row to fn mode

  3. ensure the hid_apple module is loaded

    sudo modprobe hid_apple
    
    # load at boot
    echo 'hid_apple' | sudo tee /etc/modules-load.d/keychron.conf
    
  4. configure the keyboard's fn mode:

    echo 0 | sudo tee /sys/module/hid_apple/parameters/fnmode
    
    # load at boot
    echo 'options hid_apple fnmode=0' | sudo tee /etc/modprobe.d/keychron.conf
    

Requirements

The changes this role makes:

  • only work on (and are only applied to) a Linux system
  • will work better if you are using a Keychron keyboard

Role Variables

Variable Type Default value Description
auto_enable boolean true Enable all Bluetooth controllers as soon as they are found
fast_connectable boolean true Enable fast reconnect via Bluetooth
fn_mode integer 0 Default fn keys behavior: 0 = multimedia, 1 = use last setting, 2 = function
module_name string hid_apple Module to load
module_file_name string keychron.conf File name for module loading on boot; will be put into /etc/modules-load.d
module_params_file_name string same as module_file_name File name for module configuration; will be put into /etc/modprobe.d
tune_bluetooth boolean false Tune Bluetooth settings

Dependencies

None.

Example Playbook

- hosts: workstation
  roles:
    - role: keychron_capable
      tags:
        - keyboard
        - keychron
      vars:
        tune_bluetooth: true
        fast_connectable: false
        fn_mode: 2
        module_file_name: hid_apple.conf

License

MIT

Sources

About

Enable the function row of a Keychron keyboard to be used on a linux system

Install
ansible-galaxy install mcereda/ansible-role-keychron-capable
GitHub repository
License
mit
Downloads
29