Allows to swap the Fn key and left Control key and other tweaks on Macbook Pro and Apple keyboards in GNU/Linux

Overview

A patched hid-apple kernel module


UPDATE August 2020: swap_fn_leftctrl is now built-in in Linux 5.8 🎉

UPDATE Jun 2020: New feature added (swap_fn_f13_insert) to move fn key to F13 and make fn Insert. Thanks to @smaslennikov!

UPDATE May 2020: Part of the patch (swap_fn_leftctrl) was submitted and probably accepted to the upstream kernel. Thanks to the maintainer Jiri Kosina.

UPDATE Mar 2020: Now it works with Apple Magic Keyboard 2 in both USB and Bluetooth modes. Thanks to @almson!

UPDATE Dec 2019: If one has issues building for Fedora, please take a look at this information

UPDATE Apr 2017: Works on Arch too, for useful information on this proceed here

UPDATE May 2016: DKMS support added (tested on Ubuntu 16.04). Thanks to @almson!

UPDATE Dec 2015: An option to use the right Alt key as right ctrl was added. Thanks to @sami-mw!

UPDATE Oct 2015: The patch was modified for kernel 4.2 and support of Macbook Pro 2015. Thanks to @Aetf!

About

A patched version of hid-apple allows GNU/Linux user to swap the FN and left Control keys and some other mapping tweaks on Macbook Pro, external Apple keyboards and probably other Apple devices.

The patch was created by free5lot under GPL 2 (or later) licence. I hope it'll go to upstream kernel, so more GNU/Linux users could make their keyboards more comfortable for them.

This project was inspired by a similar patch made by JanmanX (Jan Meznik). His patch has the same idea but a bit different realization. I'd like to thank him for solving this problem in the first place and making his solution public.

Problem

This patch was created because Apple keyboards on Macbook Pro and external keyboard models have an awful location of special keys. To make it more habitual and friendly the fn key and left Control key should be swapped.

The swapping of Alt (Option) and Command is already possible without a patch by setting swap_opt_cmd=1 option to hid-apple kernel module in current versions of Linux kernel. More information is available at Ubuntu's help website.

Installation via DKMS (recommended)

You may need to install git and dkms first, e.g. on Ubuntu: sudo apt install git dkms

Clone this repo and go into the source code directory:

git clone https://github.com/free5lot/hid-apple-patched
cd hid-apple-patched

Install module:

sudo dkms add .
sudo dkms build hid-apple/1.0
sudo dkms install hid-apple/1.0

Then, create file /etc/modprobe.d/hid_apple.conf. The following configuration emulates a standard PC layout:

options hid_apple fnmode=2
options hid_apple swap_fn_leftctrl=1
options hid_apple swap_opt_cmd=1
options hid_apple rightalt_as_rightctrl=1
options hid_apple ejectcd_as_delete=1

Finally, apply the new config file:

sudo update-initramfs -u

To (re-)load the module for immediate use, run

sudo modprobe -r hid_apple; sudo modprobe hid_apple

in one go (since the first command will disable your Apple keyboard). Alternatively, run sudo reboot, and the new module should be loaded on reboot.

The advantage of DKMS is that the module is automatically re-built after every kernel upgrade and installation. This method has been tested at least on Ubuntu 14.04 and 16.04.

Note about installation on Mint and some others distros

DKMS config of this repo has option DEST_MODULE_LOCATION set to /extra. That's the place compiled patched module will be placed. Distributions like Ubuntu, Fedora, Suse and some others ignore this parameter and use the proper distribution-specific directory instead. There will be no issues with these distributions. Other distributions like Mint can use DEST_MODULE_LOCATION and may require an extra configuration file to be created by the user to force the use of patched version of hid-apple from /extra instead of original one. In this case a new file /etc/depmod.d/hid-apple.conf should be created which tells depmod to prefer the module in /extra (see man 5 depmod.d):

override hid-apple * extra

The configuration file needs to be there before the module is installed using DKMS. See additional information about it from @bambinodino (who pointed this out) in the issue #67.

Installation on Arch Linux

An AUR package hid-apple-patched-git-dkms is available to automate the above installation steps.

See the ArchWiki for install and configuration instructions specific to Arch Linux.

Configuration

Permanent configuration is done in file /etc/modprobe.d/hid_apple.conf. The format is one option-value pair per line, like swap_fn_leftctrl=1. After writing to the file, do sudo update-initramfs -u and reboot. Temporary configuration (applies immediately but is lost after rebooting) is possible by writing to virtual files in /sys/module/hid_apple/parameters/, like echo 1 | sudo tee /sys/module/hid_apple/parameters/swap_fn_leftctrl.

These options are from the original mainstream hid-apple module:

  • fnmode - Mode of top-row keys
    • 0 = disabled
    • 1 = normally media keys, switchable to function keys by holding Fn key (Default)
    • 2 = normally function keys, switchable to media keys by holding Fn key
  • swap_opt_cmd - Swap the Option ("Alt") and Command ("Flag") keys
    • 0 = as silkscreened, Mac layout (Default)
    • 1 = swapped, PC layout
  • swap_fn_leftctrl - Swap the Fn and left Control keys
    • 0 = as silkscreened, Mac layout (Default)
    • 1 = swapped, PC layout
  • iso_layout - Enable/Disable hardcoded ISO-layout of the keyboard. Possibly relevant for international keyboard layouts
    • 0 = disabled,
    • 1 = enabled (Default)

And these options were added in the patched version:

  • rightalt_as_rightctrl - Use the right Alt key as a right Ctrl key
    • 0 = as silkscreened, Mac layout (Default)
    • 1 = swapped, PC layout
  • ejectcd_as_delete - Use Eject-CD key as Delete key, if available
    • 0 = disabled (Default)
    • 1 = enabled
  • swap_fn_f13_insert - Swap the Fn and f13 keys, making Fn Insert and f13 Fn. For people who need Insert
    • 0 = disabled (Default),
    • 1 = enabled

Note: swap_fn_f13_insert will be ignored if swap_fn_leftctrl is activated.

Warning regarding Secure Boot (on non-Apple computers)

Some distributions, including Ubuntu 16.04, require that all modules are signed if Secure Boot is enabled. This breaks all third-party modules. There are various work-arounds, the easiest of which is to disable secure boot. This is currently not an issue on Apple computers, because Apple firmware does not support Secure Boot. See issue #23.

Alternative, script-based installation

Build and install via scripts provided:

./build.sh

./install.sh

The script will create /etc/modprobe.d/hid_apple.conf for you, after asking a few questions.

This process needs to be repeated after installing a new kernel, after having booted into the new kernel.

Alternative, makefile-based installation

  1. To build make sure you have the kernel development packages for your distribution installed. For example in Ubuntu these packages are called linux-headers-*, where "*" indicates the version and variant of the kernel.

  2. The default kernel header directory in the Makefile is: /usr/src/linux-headers-$(shell uname -r), it automatically detects and uses the version of running kernel. It works in Ubuntu and a lot of other GNU/Linux distributions, just skip this step if you use them. But if in your distribution the kernel header directory is different from the default one in the Makefile export the correct one:

export LINUX_HEADER_DIR=/path/to/kernel/header/dir
  1. To build:
make
  1. To install:
make install
  1. The install will put the module in the 'extra' sub-directory and the default unpatched module will take priority. To give your newly built module priority create a file '/etc/depmod.d/hid-apple.conf' and add the following line:
override hid_apple * extra

Then run:

sudo depmod -a
  1. And update of initramfs maybe required:
sudo update-initramfs -u

Limitations

Macbook keyboards have no issues nor limitations regarding this patched module. But some External Keyboards (like Magic Keyboard A1255, A1644 and etc.) have a limitation (probably physical) related to the registration of keys from 5-T-G-B column with Fn+Command and Fn+Control being pressed simultaniously. More information can be found in issue #6. There is a workaround - to release the Fn key first in these combinations and it should work fine.

Topicality

A lot of GNU/Linux users of Macbook Pro and/or external (wireless) keyboards face the problem of uncomfortable placement of keys. Here are some topics about swap of fn and left control keys, and all of them are checked unsolved or/and closed.

So this patch is probably essential and desirable by users.

Links and mentions

Comments
  • Added option to move fn key to F13 and make fn Insert.

    Added option to move fn key to F13 and make fn Insert.

    Should be pretty self explanatory. At first tried to do it sanely, but your swapping tactic was a lot easier to break into submission. Thanks for making this thing!

    opened by smaslennikov 29
  • Ctrl-Shift-T not working

    Ctrl-Shift-T not working

    When swapping ~~Left-Shift~~ Left-Ctrl with FN, CTRL-SHIFT-T combination is not being registered. Using the original patch supplied in this repository (hid-apple.c.original_(kernel_3.16.0-28), the combination works.

    I first noticed it when trying to reopen last opened tab in Chrome, but verified in some other programs. You might want to get some better readings using "xev".

    Free5lot has a much better understanding of the module, but I figure it is a problem with the mechanical part of the keyboard, and not the patch itself, and thus, can't be solved. (@free5lot, please verify :) )

    Also, the key-combination is not working either on my version of this patch.

    not hid-apple-patched 
    opened by JanmanX 27
  • Swapping fn key & left Ctrl not working on Magic Keyboard (Apple Keyboard 2)

    Swapping fn key & left Ctrl not working on Magic Keyboard (Apple Keyboard 2)

    Title says it all... Talking about this guy https://www.apple.com/shop/product/MLA22LL/A/magic-keyboard-us-english

    This patch doesn't seem to work with the new Magic Keyboard.

    My config looks like this:

    options hid_apple fnmode=1
    options hid_apple swap_fn_leftctrl=1
    options hid_apple swap_opt_cmd=1
    options hid_apple rightalt_as_rightctrl=1
    options hid_apple ejectcd_as_delete=1
    

    I tried installing via all 3 methods btw (DKMS, ./install.sh, & makefile) & rebooting after each.

    bug help wanted 
    opened by jonnyasmar 25
  • How do I get my system to use the patched version of hid-apple (Arch)

    How do I get my system to use the patched version of hid-apple (Arch)

    I've installed this patch via AUR (hid-apple-patched-git-dkms) (CC @Aetf)

    That included this config file (/etc/depmod.d/hid-apple-patched.conf):

    override hid-apple * extra
    

    As well as (/etc/modprobe.d/hid_apple_pclayout.conf):

    options hid_apple fnmode=2
    options hid_apple swap_fn_leftctrl=1
    options hid_apple swap_opt_cmd=1
    options hid_apple rightalt_as_rightctrl=1
    options hid_apple ejectcd_as_delete=1
    

    I ran sudo depmod -a and sudo mkinitcpio -p linux and rebooted.

    Immediately the command and opt keys were swapped, and my F keys worked without having to hold fn, which is great. All the other options were ignored though, my fn key and control keys are not swapped. I can't set these settings under /proc, I just get access denied, even though I'm root.

    That makes sense because apparently not all options are available:

     $ ls /sys/module/hid_apple/parameters/
    fnmode  iso_layout  swap_opt_cmd
    

    Is this because my system is using the built-in version of hid-apple rather than the patched one? How can I know which one is being used?

    (I'm using the wireless magic keyboard via Bluetooth, but I'm guessing that's not relevant.)

    Here's the relevant lines from dmesg:

    [Jul15 10:51] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
    [  +0.000004] Bluetooth: HIDP socket layer initialized
    [  +1.084478] hid-generic 0005:004C:0267.0003: unknown main item tag 0x0
    [  +0.000117] input: Magic Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:2/0005:004C:0267.0003/input/input34
    [  +0.000382] input: Magic Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:2/0005:004C:0267.0003/input/input35
    [  +0.000268] hid-generic 0005:004C:0267.0003: input,hidraw2: BLUETOOTH HID v1.00 Keyboard [Magic Keyboard] on 9c:b6:d0:e7:e9:4c
    [  +0.006218] hid_apple: unknown parameter 'swap_fn_leftctrl' ignored
    [  +0.000003] hid_apple: unknown parameter 'rightalt_as_rightctrl' ignored
    [  +0.000003] hid_apple: unknown parameter 'ejectcd_as_delete' ignored
    [  +0.146013] apple 0005:004C:0267.0003: unknown main item tag 0x0
    [  +0.000135] input: Magic Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:2/0005:004C:0267.0003/input/input36
    [  +0.000524] apple 0005:004C:0267.0003: input,hidraw2: BLUETOOTH HID v1.00 Keyboard [Magic Keyboard] on 9c:b6:d0:e7:e9:4c
    

    Some system and version info:

     $ pacman -Qs hid
    local/hid-apple-patched-git-dkms 20171118.c92cc98-1
        Allows to swap the Fn key and left Control key on Macbook Pro and Apple keyboards in GNU/Linux (DKMS)
    
     $ uname -a
    Linux carbon 5.1.16-arch1-1-ARCH #1 SMP PREEMPT Wed Jul 3 20:23:07 UTC 2019 x86_64 GNU/Linux
    
     $ cat /etc/*-release
    NAME="Arch Linux"
    PRETTY_NAME="Arch Linux"
    ID=arch
    BUILD_ID=rolling
    ANSI_COLOR="0;36"
    HOME_URL="https://www.archlinux.org/"
    DOCUMENTATION_URL="https://wiki.archlinux.org/"
    SUPPORT_URL="https://bbs.archlinux.org/"
    BUG_REPORT_URL="https://bugs.archlinux.org/"
    LOGO=archlinux
    
    opened by Hubro 19
  • It stopped working after a few times of suspend and reboot

    It stopped working after a few times of suspend and reboot

    I was so excited that it worked after installation using the DKMS way. But after a few times of suspend and reboot it stopped working - the keys recovered to their original status... Now rebooting the system does not change anything.

    $ uname -a Linux ThinkCentre-M910t 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

    The keyboard is Apple Magic 2.

    stale 
    opened by libreoscar 19
  • Only getting the default options after patch install.

    Only getting the default options after patch install.

    $ uname -a Linux name 5.6.11-arch1-1 #1 SMP PREEMPT Wed, 06 May 2020 17:32:37 +0000 x86_64 GNU/Linux Keyboard: Apple magic keyboard 2 (A1644)

    1- I installed the hid-apple-patch through Arch AUR. 2- Ran sudo mkinitcpio -p linux 3- Rebooted But still only have these three options available: $ ls /sys/module/hid_apple/parameters/ fnmode iso_layout swap_opt_cmd

    In hid_apple.conf the options are all in: cat /etc/modprobe.d/hid_apple.conf options hid_apple fnmode=2 options hid_apple swap_fn_leftctrl=0 options hid_apple swap_opt_cmd=1 options hid_apple rightalt_as_rightctrl=1 options hid_apple ejectcd_as_delete=1

    I don't get any output from dkms status. I'm I missing something?

    help wanted info 
    opened by luis-alves 18
  • Ubuntu 16.04, make install leads to ssl error

    Ubuntu 16.04, make install leads to ssl error

    root@geekbook:/home/ryan/Development/hid-apple-patched# export LINUX_HEADER_DIR=/usr/src/linux-headers-4.4.0-22-generic/
    
    root@geekbook:/home/ryan/Development/hid-apple-patched# make
    make -C /usr/src/linux-headers-4.4.0-22-generic/ M=/home/ryan/Development/hid-apple-patched modules
    make[1]: Entering directory '/usr/src/linux-headers-4.4.0-22-generic'
      Building modules, stage 2.
      MODPOST 1 modules
    make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-22-generic'
    
    root@geekbook:/home/ryan/Development/hid-apple-patched# make install
    make -C /usr/src/linux-headers-4.4.0-22-generic/ M=/home/ryan/Development/hid-apple-patched modules_install
    make[1]: Entering directory '/usr/src/linux-headers-4.4.0-22-generic'
      INSTALL /home/ryan/Development/hid-apple-patched/hid-apple.ko
    At main.c:222:
    - SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
    - SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
    sign-file: certs/signing_key.pem: No such file or directory
      DEPMOD  4.4.0-22-generic
    make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-22-generic'
    
    root@geekbook:/home/ryan/Development/hid-apple-patched# 
    

    Anything obviously wrong with what I'm doing here?

    opened by hickeroar 18
  • iso_layout not working when the keyboard is connected via Bluetooth

    iso_layout not working when the keyboard is connected via Bluetooth

    I've successfully installed the driver using DKMS, but the parameter iso_layout doesn't take any effect. For example, ejectcd_as_delete works (not in all the input fields and applications, but at least the standard eject is not appearing every time that I missclick).

    Anyway, when I connect the keyboard via usb, iso_layout is used. I can see it because the mapping of the >< key is correct.

    Please, let me know if I can provide any debugging information.

    I just got the Keyboard and I haven't updated the firmware because I don't have a Mac right now.

    bug invalid not hid-apple-patched 
    opened by daquinons 17
  • Option rightalt-as-rightctrl doesn't work

    Option rightalt-as-rightctrl doesn't work

    MacBook11,4 with hid_apple.conf:

    options hid_apple fnmode=2
    options hid_apple swap_opt_cmd=1
    options hid_apple swap_fn_leftctrl=1
    options hid_apple rightalt_as_rightctrl=1
    options hid_apple ejectcd_as_delete=0
    
    help wanted 
    opened by almson 12
  • DKMS support

    DKMS support

    DKMS support would be very handy.

    Here is a dkms.conf file that seems to work:

    MAKE="make LINUX_HEADER_DIR=/usr/src/linux-headers-${kernelver}"
    BUILT_MODULE_NAME=hid-apple
    DEST_MODULE_LOCATION='/kernel/drivers/hid'
    PACKAGE_NAME=hid-apple
    PACKAGE_VERSION=1.0
    REMAKE_INITRD=yes
    AUTOINSTALL=yes
    

    To install, save the dkms.conf file into the source code folder, and:

    sudo dkms add .
    sudo dkms build hid-apple/1.0
    sudo dkms install hid-apple/1.0
    

    The instructions to override hid_apple * extra are not needed.

    enhancement 
    opened by almson 11
  • Step by step instructions for Manjaro linux / Arch linux?

    Step by step instructions for Manjaro linux / Arch linux?

    It seems the instructions for Manjaro/Arch are different compared to the Ubuntu instructions in the README of the repo. I have a new Apple Magic Keyboard 2 and so far I haven't able to figure out how to get the patch to work. The Arch wiki Apple Keyboard is useful but difficult to parse for newbies.

    I've installed the AUR package hid-apple-patched-git-dkms, which already creates the configuration file /etc/modprobe.d/hid_apple_pclayout.conf making the instructions in the README unnecessary. The command sudo update-initramfs -u doesn't work in Manjaro/Arch, it seems mkinitcpio is the equivalent utility.

    The Arch wiki mentions: After installation the change is not picked up by the kernel immediately. The simplest way is to just reboot your system and the new behavior should be in effect. This doesn't seem to be the case for my system. Several times I have tried installing the patch and rebooting which doesn't seem to cause the key changes. I've tried booting in 5.3 and 5.4 kernel versions, in 4.19 the keyboard doesn't seem to be working at all due to missing hid_apple drivers.

    This is the part of the wiki where I get lost: Note: Do not forget to include the configuration file in initramfs otherwise it will not work automatically after boot. Refer to Mkinitcpio#BINARIES and FILES or Mkinitcpio#HOOKS (the hook you might need is called modconf about how to do that).

    When I open the configuration file /etc/mkinitcpio.conf, I can see an empty BINARIES=() configuration array. Am I supposed to put something here?

    I've tried running: sudo modprobe -r hid_apple; sudo modprobe hid_apple to no avail. And I've also tried running sudo depmod -a and sudo mkinitcpio -p linux54 and rebooted afterwards, which also didn't seem to work. It seems it made the /sys/module/hid_apple directory disappear.

    When I run dkms status I can see the following information:

    hid-apple-patched, 20191222.536e16a, 4.14.160-1-MANJARO, x86_64: installed
    hid-apple-patched, 20191222.536e16a, 4.19.91-1-MANJARO, x86_64: installed
    hid-apple-patched, 20191222.536e16a, 5.3.18-1-MANJARO, x86_64: installed
    hid-apple-patched, 20191222.536e16a, 5.4.6-2-MANJARO, x86_64: installed
    

    Anyhow, I'm lost, can someone point me in the right direction with clear step by step instructions?

    duplicate 
    opened by hyperfocus1337 10
  • Apple Keyboard with Touch ID 2021 Product ID not included

    Apple Keyboard with Touch ID 2021 Product ID not included

    I wasn't able to get my keyboard to work until I added these lines:

    hid-apple.c

                    .driver_data = APPLE_HAS_FN },
            { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021),
                    .driver_data = APPLE_HAS_FN },
    +       { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_TOUCH_ID_2021),
    +               .driver_data = APPLE_HAS_FN },
    +       { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_TOUCH_ID_2021),
    +               .driver_data = APPLE_HAS_FN },
            { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI),
                    .driver_data = APPLE_HAS_FN },
            { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI),
    

    hid-ids.h

     #define USB_DEVICE_ID_APPLE_MAGICTRACKPAD      0x030e
     #define USB_DEVICE_ID_APPLE_MAGICTRACKPAD2     0x0265
     #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c
    +#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_TOUCH_ID_2021 0x029f
     #define USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI      0x020e
     #define USB_DEVICE_ID_APPLE_FOUNTAIN_ISO       0x020f
     #define USB_DEVICE_ID_APPLE_GEYSER_ANSI        0x0214
    

    I noticed that the device was being loaded with hid-generic in dmesg logs until I rebuilt the module with these lines added.

    Also, not sure if this is the correct way to do it but in order to get the module to load at boot, I added hid_apple the /etc/modules file. Otherwise, I'd have to run sudo modprobe -r hid_apple; sudo modprobe hid_apple after logging in.

    This is the exact product in question: https://www.apple.com/shop/product/MMMR3LL/A/magic-keyboard-with-touch-id-and-numeric-keypad-for-mac-models-with-apple-silicon-us-english-black-keys

    opened by Woz4tetra 1
  • Keyboard Disabled Fedora 34

    Keyboard Disabled Fedora 34

    After I ran this comment from the github page: sudo modprobe -r hid_apple; sudo modprobe hid_apple

    I thought running this with the ; would reenable the keyboard.

    My keyboard was disabled, how do I turn it back on?

    opened by Lucrecious 4
  • M1 Macbook air support planned?

    M1 Macbook air support planned?

    I tried this with M1 macbook air and it did not work. I'd love to have it. I'm interested in learning how to write kernel modules if you have leads on where to start, but I'm not sure when I'd get to it.

    opened by gronka 2
  • Help Logitech Mx Keys for Mac

    Help Logitech Mx Keys for Mac

    Hi, It's probably not to right place to ask but I have a Logitech Mx Keys for Mac (connected with a unifying usb dongle), but hid_apple module does not seem to recognize it as an Apple keyboard, so I cannot switch the cmd and option keys. Any idea how I can add it to the list of Apple keyboards so this module works? Maybe modifying the hid-ids.h file? Thanks

    question not-apple 
    opened by getzze 1
  • Help Magic Keyboard Touch ID and Ubuntu 21.10

    Help Magic Keyboard Touch ID and Ubuntu 21.10

    I simply don't know how to configure it. The module is installed via the first instructions in the Readme.md and I have reboot.

    The module is not even loaded:

    lsmod | grep hid
    hid_magicmouse         20480  0
    hidp                   32768  2
    bluetooth             663552  42 btrtl,hidp,btintel,btbcm,bnep,btusb,rfcomm
    mac_hid                16384  0
    hid_generic            16384  0
    usbhid                 61440  0
    hid                   135168  4 hidp,usbhid,hid_generic,hid_magicmouse
    

    If I do a modprobe it looks fine but I think the module is not used as I cannot identify any change in the keyboard usage:

    sudo modprobe -v hid_apple
    insmod /lib/modules/5.13.0-21-generic/updates/dkms/hid-apple.ko fnmode=2 swap_opt_cmd=1 rightalt_as_rightctrl=1 ejectcd_as_delete=1 swap_fn_f13_insert=1 
    

    I have a Magic Keyboard with Touch ID together with a magic mouse and I am running Ubuntu 21.10 on a PC.

    Any hint is appreciated!

    opened by cue108 4
  • Magic keyboard 2021 - lock button

    Magic keyboard 2021 - lock button

    Hi! I have the problem with new keyboard model A2450. I added new product id as you can see in my PR #77. I want to use lock button as a "delete" key but i don't know how to define new key in hid-apple module source.

    I tried to map this key with setkeycodes but it doesn't work. xev returns its keycode 160.

    opened by d0nth4x 2
Owner
Zakhar Semenov
Zakhar Semenov
Selective user space swap (kubernetes swap / kubeswap)

BigMaac ?? ?? ( Big Malloc Access And Calloc ) because sometimes a happy meal is not big enough BigMaac can be used in userspace (e.g. inside Kubernet

Misko 12 Dec 9, 2022
JeVois-Pro People Counter : Implement people counter on JeVois-Pro Deep Learning Smart Camera

JeVois-Pro People Counter Refer to the OpenCV People Counter article to implement a people counter on the JeVois-Pro Deep Learning Smart Camera. First

On-Device AI Co., Ltd. 1 Nov 10, 2021
Left hand gaming keypad with a 3D printed case

GameHand Left-hand gaming keypad with a 3D printed case Case files KiCAD PCB files Gerbers for PCB production JLCPCB BOM JLCPCB CPL This work is licen

null 16 Jul 22, 2022
CVE-2021-24084 Windows Local Privilege Escalation Left officially unpatched since 2020. Hence, its still a zero day

WindowsMDM-LPE-0Day Works best on Windows 11 CVE-2021-24084 Windows Local Privilege Escalation Left officially unpatched since 2020. Hence, its still

Exploit Blizzard 35 Nov 9, 2022
Various tweaks for Beat Saber.

AikaTweaks Various tweaks for Beat Saber. Credits zoller27osu, Sc2ad and jakibaki - beatsaber-hook raftario Lauriethefish and danrouse for this templa

Aika 21 Apr 25, 2022
Various UI tools/tweaks.

Various UI tools/tweaks.

null 90 Dec 14, 2022
Single-header VMT hook class using vfptr swap method

Single-header C++ VMT hooking (vfptr swap) Supports RAII Unit tested with Catch2 Tested on x86/x64, MSVC and Clang/LLVM VMT size calculation Windows-o

shavit 6 Dec 11, 2022
A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Using Pro-micro control.

N.A.G.E.K.I. A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Using Pro-micro control. 中文版

NanaNana 39 Dec 8, 2022
A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Using Pro-micro control.

N.A.G.E.K.I. PLEASE CHECK Main Project A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Us

NanaNana 11 Dec 30, 2021
split89 keyboard - a 3d printed 89 key split TKL keyboard base powered by ATmega32U4 Pro Micro controllers with QMK Configurator support.

split89 keyboard - a 3d printed 89 key split TKL keyboard base powered by ATmega32U4 Pro Micro controllers with QMK Configurator support. This keyboar

null 54 Jan 7, 2023
IDA Pro key checker tool

IDA Key Checker IDA Pro (6.x-7.x) key checker tool Usage A list of available options can be retrieved using: ida_key_checker --help Arguments: Option

null 58 Dec 26, 2022
Layouts for ergo keyboards

Watchman’s Layouts is a layout for ergo keyboards with 42 keys, such as: corne / jian / jorne / jorian / quasi 42 / centromere / chimera ergo 42 / moo

null 29 Dec 27, 2022
A custom OLED animation for QMK keyboards

superloop This animation is made for 32x128 pixel 1-bit OLED displays. Info This repository is a lightweight clone of the crkdb:default QMK configurat

hexcowboy 28 Nov 28, 2022
Björn Kalkbrenner 37 Dec 18, 2022
QMK keymaps for "all" my keyboards

keymaps Setup Install qmk package for arch and set it up. yay qmk qmk setup Build Steps to build keymap and flash it from arch. qmk new-keymap -kb mec

Aditya Rohan 1 Oct 27, 2021
STM32 board to reuse (some) old laptop keyboards

Keystroke32 STM32F103 based board to transform (some) old laptop keyboards into proper USB keyboards. If you like laptop keyboards in general or just

null 3 Oct 24, 2022
Apple cctools and ld64 port for Linux, *BSD and macOS

Apple cctools and ld64 port for Linux, *BSD and macOS

Thomas Pöchtrager 642 Dec 30, 2022
My experiments with Linux for the Apple M1 platform, based on Asahi and Corellium patches

Linux kernel ============ There are several guides for kernel developers and users. These guides can be rendered in a number of formats, like HTML an

Danny Lin 9 Oct 24, 2021
Allows you to easily control via MQTT any Micronova equiped pellet stove. (MCZ, Extraflame, Laminox, and many others brands!)

micronova_controller Kits are available on Tindie! Currently out of stock. V2 will be in stock soon! Here is an overview of the additions: possibility

Philibert Cheminot 37 Dec 19, 2022