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

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!

  • 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.

  • 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.

  • 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
    
  • 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.

  • 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?

  • Ubuntu 16.04, make install leads to ssl error

    Ubuntu 16.04, make install leads to ssl error

    [email protected]:/home/ryan/Development/hid-apple-patched# export LINUX_HEADER_DIR=/usr/src/linux-headers-4.4.0-22-generic/
    
    [email protected]:/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'
    
    [email protected]:/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'
    
    [email protected]:/home/ryan/Development/hid-apple-patched# 
    

    Anything obviously wrong with what I'm doing here?

  • 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.

  • 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
    
  • 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.

  • 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?

  • 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.

  • 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

  • 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!

  • 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.

  • Keychron connected via bluetooth not working

    Keychron connected via bluetooth not working

    Hi, when trying to use my k2 via bluetooth my Pop-os just use hid-generic instead of the hid-apple version I installed.

    It's installed

    [email protected]:~$ sudo dkms status [sudo] password for paulogr: hid-apple, 1.0, 5.4.0-7634-generic, x86_64: installed

    But my OS set hid-generic as driver

    [email protected]:~$ dmesg | grep -i bluetooth [ 8.971118] hid-generic 0005:05AC:024F.0005: input,hidraw4: BLUETOOTH HID v1.1b Keyboard [Keychron K2] on 0c:7a:15:fa:47:08

    Could someone help me?

    Thanks

Selective user space swap (kubernetes swap / kubeswap)
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

Jul 12, 2022
JeVois-Pro People Counter : Implement people counter on JeVois-Pro Deep Learning Smart Camera
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

Nov 10, 2021
Left hand gaming keypad with a 3D printed case
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

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

Aug 31, 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

Apr 25, 2022
Various UI tools/tweaks.

Various UI tools/tweaks.

Sep 16, 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

Mar 22, 2022
A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Using Pro-micro control.
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. 中文版

Sep 20, 2022
A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Using Pro-micro control.
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

Dec 30, 2021
Layouts for ergo keyboards
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

Sep 19, 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

Sep 24, 2022
Sep 16, 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

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

Jan 10, 2022
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.

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

Aug 7, 2022
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

Aug 23, 2022
Apple cctools and ld64 port for Linux, *BSD and macOS

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

Sep 16, 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

Oct 24, 2021
emily - GNU/Linux applications and scripts launcher.

emily emily - GNU/Linux applications and scripts launcher. For What? Firstly emily has been maden as a replacement for i3-dmenu, because i don't like

May 13, 2022