Back from the exhibition

WRITTEN_BY David REVOY - - 4 comments
I'm back from the exhibition, the workshops and the signing session in Plérin, France: what an amazing trip it was! 💜 Thank you all for helping to make it such an amazing weekend. I feel 10 years younger. 😃 Photo: the signed album of [@Yahiko](https://framapiaf.org/@Yahiko) on Mastodon , thanks for sharing the photo!

At the exhibition

WRITTEN_BY David REVOY - - 42 comments
I'm speechless 🤯 The print at the exhibition feels so big in real. I'm super happy sitting in the corner of my illustration. Tomorrow, signing session!

How a kernel update broke my stylus... Need help!

WRITTEN_BY David REVOY - - 128 comments
### What's the problem? In short, after a Linux kernel update (6.5.8-200.fc.x86_64 on Fedora KDE), I can't use the top button of my pen on my tablet. This is really affecting my digital painting workflow! Right-clicking on the pen is an essential part of my workflow. Right-click on a layer in Krita to get the menu, right-click while using the Transform tool to get the transformation options, right-click on the canvas to get the pop-up palette! ...And I'm not even talking about how difficult it is to handle files and the D.E. without right-clicking. And if that makes you smile, imagine someone hardcoding the behaviour of your main device like the right-click on your mouse or touchpad (or anything else you have been using for more than 20 years) to something completely useless, and pushing it through kernel updates. And the icing on the cake, they left you with no user tool to change it back. That's where I am now, and you can probably understand why I decided to write a blog post about it. Because my ability to use my tablet and thus continue my webcomic Pepper&Carrot under Linux is now tied to an older kernel, 6.4.15-200.fc38.x86_64, until a kernel developer fixes this situation. [![](data/images/blog/2023/2023-11-01_linux-kernel-broke-my-stylus_grub_net.jpg)](data/images/blog/2023/2023-11-01_linux-kernel-broke-my-stylus_grub_net.jpg) _Grub page at startup: I now have to select the second kernel to escape the bug.._ ### What happened? **Context:** My [XPPen 24 Artist Pro](https://www.davidrevoy.com/article842/review-xp-pen-artist-24-pro-on-linux) is my [default tablet](https://framapiaf.org/@davidrevoy/111161467977046626) for productivity since April 2023. This tablet doesn't have a proper tablet driver under GNU/Linux. But it works thanks to a generic driver in the Linux kernel for the Uc-Logic/Ugee device; that is the name of the digitiser inside the tablet, the circuit board if you prefer. I also top this with some code from the [Digimend-Kernel-Module](https://github.com/DIGImend/digimend-kernel-drivers). It requires a set of X11 rules and tweaks that I document in [my review](https://www.davidrevoy.com/article842/review-xp-pen-artist-24-pro-on-linux), but once that is done, you can customise the stylus buttons using the xsetwacom command line tool. Unfortunately, in the newer Linux kernel of my distribution (6.5.8-200.fc.x86_64), there were some new commits that affected the behaviour of this [generic hid-input.c driver](https://github.com/torvalds/linux/blob/master/drivers/hid/hid-input.c). I don't know where it came from, but it was decided to hardcode a behaviour for styluses to have an 'eraser mode' instead of a 'right-click' on the second (top) button of the stylus. For reference, here is the default on GNU/Linux, and has been since at least 2009 when I started drawing with it: * Button 1 (pen tip) = left mouse click; to select, to draw, etc... * Button 2 (down, on the side of the pen) = a middle mouse button, for panning the canvas or scrolling pages. * Button 3 (at the top of the pen) = a right click, for context menus. [![](data/images/blog/2023/2023-11-01_linux-kernel-broke-my-stylus_xp-pen-artist-pro24_net.jpg)](data/images/blog/2023/2023-11-01_linux-kernel-broke-my-stylus_xp-pen-artist-pro24_net.jpg) _The stylus of the XP-Pen Artist Pro 24, with the location of the second button underlined._ ### Where did the idea come from to map an eraser mode to a stylus button? I can only speculate about this, but as far as I know, this type of behaviour was introduced by Microsoft for their Surfaces device on Ms Windows as a probable workaround for being too cheap to put an eraser on the other end of the stylus. These Surfaces were aimed at business people and, as you can imagine, the pen was not intended to be used for drawing, but for signing documents or annotating PDFs. A side button eraser made sense to them. But what about right-clicking, you might ask? Well, these are 'touch' devices; the user could always use their finger with a long press and trigger a contextual right-click menu. Soon after, I think Lenovo, HP and other tablet PC manufacturers were quick to imitate this new behaviour as brave sheep, and also to save some money on making styluses without a proper eraser on the other side. So I can understand why a kernel developer thought it would be a good idea to bring this to GNU/Linux devices. Except they didn't just add it as a feature. It was forcing the behaviour on all users of the generic driver at the lowest possible level. So I've lost my right-click on the second button of my stylus. And my device doesn't have a "touch mode". Worse, **ironically** it even forces this behaviour on the stylus of [my newer XPPEN 16 Artist Pro (Gen2)](https://framapiaf.org/@davidrevoy/111318263108091568) that I'm testing. Brace yourself: a stylus with a real eraser... This left me speechless. [![](data/images/blog/2023/2023-11-01_linux-kernel-broke-my-stylus_xp-pen-artist-pro-16-gen2_net.jpg)](data/images/blog/2023/2023-11-01_linux-kernel-broke-my-stylus_xp-pen-artist-pro-16-gen2_net.jpg) _The bug even affects stylus with an Eraser device, as on this stylus of the XP-Pen Artist Pro 16 (Gen2)._ ### Can't you just customise a button on your Linux system? This is the best part: no, **you can't.** Because you see, instead of just sending a single event that could later be customised by a CLI tool like xsetwacom, a desktop environment like kcm-tablet Plasma Panel, or even a udev rule; this kind of behaviour is hardcoded in, so the button sends too many events to map to anything. The button doesn't trigger a key, it switches the whole device to something else when pressed. From my understanding; forcing this behaviour for the Uc-logic/Ugee generic tablet has been done for a long time; but a "bug" kept the stylus of my XPPEN Artist 24 Pro out of it, and [this commit probably fixed it in the worst for me.](https://github.com/torvalds/linux/commit/276e14e6c3993317257e1787e93b7166fbc30905) I now know it is there for a long time, because even with the "old" kernel, my newer XPPen 16 Pro (gen2) also reacts this way. And no tools can fix it now. Are we doomed to have an eraser on the second key? Or is there anything else we can do? **Please help if you can**.


### Update: **2023-11-09:** It works! Benjamin Tissoires made a solution. I tested it and I'm no longer locked to a kernel, [you can know more about it on the Mailing list](https://lore.kernel.org/all/7wmtNlKuYResf5cFQ7M2QTalzIUtw0I6ohvPcz69Jo1c8flezyIlnJu1IwAgXhJ-u0NlRL3IV7HnL0Kza6fVBqd7X7jhc-Z6QCi3oqHEvpY=@protonmail.com/). The solution solves the issue for the two devices I have. **2023-11-07:** You can follow [the discussion on the Linux kernel mailing list here](https://lore.kernel.org/all/nycvar.YFH.7.76.2311012033290.29220@cbobk.fhfr.pm/). **2023-11-01:** (Additional technical infos) Here are two evtest screenshots of the two devices with the newer kernel while performing a top button on the stylus (click to enlarge). [![](data/images/blog/2023/2023-11-01_linux-kernel-broke-my-stylus_evtest-compare.jpg)](data/images/blog/2023/2023-11-01_linux-kernel-broke-my-stylus_evtest-compare.jpg)

Review of a new tablet soon!

WRITTEN_BY David REVOY - - 40 comments
XP-Pen sent me their new Artist Pro 16 (Gen2): they were curious if I could get it to work under Gnu/Linux without their proprietary driver. Result: after a long evening of trial and error, tweaking Digimend/X11/xsetwacom, almost everything works now. 🎉 Of course, the deal is that if it works, I have to document it like I did with the Artist 24 Pro. So expect it soon™. Btw, this one will stay on my desk: I had a serious crush on it while testing: super low latency & low parallax. 😍
CLASSIFIED_IN : Uncategorized - TAGS : news, cc-by

Large exhibition in Plérin, France.

WRITTEN_BY David REVOY - - 97 comments
Last June, during the [Saint-Brieuc signing session](https://www.davidrevoy.com/article974/signing-session-and-exhibition-at-bulle-a-croquer-festival-saint-brieuc), the director of "Bulles à Croquer" festival proposed a big and amazing project: a Pepper&Carrot exhibition on the scale of a supermarket for the fall 2023. Of course I accepted! So over the last monthes, the Bulles à Croquer comic festival and E. Leclerc Plérin teamed up to create a very large exhibition. I could hardly believe it at first 😅 and I quickly felt a bit overwhelmed by the size of the exhibition. Not by the amount of work: Bulles à Croquer almost handled everything on their own, but it felt a bit surreal to get many of my artworks printed in big dedicated exhibition. 😇 The exhibition starts today and there are a large number of giant prints of Pepper&Carrot (illustrations and comic pages) that were made to decorate the hall of the supermarket (dozens of illustrations and comic pages). The exhibition aims to immerse visitors in the world of Pepper & Carrot and my illustrations. I only have two photo samples right now done during the preparation, but I'll try to take more when I visit on start November. It's about 700km from my home, so I haven't visited it yet. Update : I have received new photos from the ongoing exhibition! It's a total of 70 huge prints that have been displayed in the supermarket. 🤩 I made a montage to share them with you: [![](data/images/blog/2023/2023-10-23_expo-leclerc-plerin-saint-brieuc1.jpg)](data/images/blog/2023/2023-10-23_expo-leclerc-plerin-saint-brieuc1.jpg) _The cover of the third comic book, a large print on the floor._ [![](data/images/blog/2023/2023-10-25_exhibition_photo_a_couloir_net.jpg)](data/images/blog/2023/2023-10-25_exhibition_photo_a_couloir_net.jpg) _The hall (click to enlarge)._ [![](data/images/blog/2023/2023-10-25_exhibition_photo_b_pilonnes_net.jpg)](data/images/blog/2023/2023-10-25_exhibition_photo_b_pilonnes_net.jpg) _Montage of the artworks on pillar (click to enlarge)._ [![](data/images/blog/2023/2023-10-25_exhibition_photo_c_various_net.jpg)](data/images/blog/2023/2023-10-25_exhibition_photo_c_various_net.jpg) _Various places (click to enlarge)._ [![](data/images/blog/2023/2023-10-25_exhibition_photo_d_various_net.jpg)](data/images/blog/2023/2023-10-25_exhibition_photo_d_various_net.jpg) _Comic pages, and the info at entrance. (click to enlarge)._ About my participation to the exhibition, many illustrations required quality upgrades to the source files and some remakes. For example, check out the [new A2 size high quality of "Powerfull"](https://www.peppercarrot.com/0_sources/0ther/book-publishing/hi-res/2023-10-17_Powerful.png), a 7000px large upscale done without AI for the upscaling; but with [GMIC](https://gmic.eu/) upscaling filters and manual overpainting. This will be printed and sold at the event, a high quality numbered print. All my updates were merged in the gallery https://www.peppercarrot.com/en/artworks/artworks.html with their sources, so it will benefit future projects as well. **DATES:** - **From today until 11 November 2023:** The exhibition. - **Saturday 28 October:** a potion magic contest for kids (8 to 12y/o), by chief Jean-Jacques Monfort, restaurant Brut. - **Friday 3 November:** I'll be around for **a drawing workshop** and **digital painting demonstration**. - **Saturday 4 November:** I'll be also there for a book signing session. The event is **free** and organised by [Bulles à croquer](https://www.bullesacroquer.net/), but a registration is necessary for the activities, please register at webmestre@bullesacroquer.net **ADRESS:** E. Leclerc Zac du Plateau, 2, rue du Grand Quartier 22190 Plérin **LINKS:** - https://www.bullesacroquer.net/un-monde-magique-exposition-david-revoy/ - https://www.letelegramme.fr/agenda/ateliers/cotes-d-armor/plerin-22190/concours-de-potions-magiques-sur-inscrition-1977874.php (PS: poster and big map under to locate roughly Plérin in France). [![](data/images/blog/2023/2023-10-23_expo-leclerc-plerin-saint-brieuc3.jpg)](data/images/blog/2023/2023-10-23_expo-leclerc-plerin-saint-brieuc3.jpg) [![](data/images/blog/2023/2023-10-23_expo-leclerc-plerin-saint-brieuc4.png)](data/images/blog/2023/2023-10-23_expo-leclerc-plerin-saint-brieuc4.png)

cat=$((cat+1)) 😺

WRITTEN_BY David REVOY - - 59 comments
I'm back from the vet this morning with an official adoption for Geuloush. He is a fully-grown male cat who has probably been abandoned by his former owners in the summer. 😡 We put notices around our house in search of them, but failed to get any feedback. The poor thing was starving and in bad shape. After a month of care, he is now loving and healthy. 💜 He'll be neutered soon. He is an exact copy of Miolek our number 3 , the photo above shows that very well.

Current workspace setup

WRITTEN_BY David REVOY - - 86 comments
A photo of my desk with three monitors; one on the desk is a pen display tablet (a Xppen Artist Pro 24) with customised shortcut written in white using nail polish. The tablet has a keyboard using a CinTweak keyboard holder. The keyboard is the classic flat from Dell. I have also a little bluetooth gamepad with key customised (by 8bitdo). On the foreground, a Blahaj shark plushies is wearing headphones. On the canvas, a study I made two weeks ago and on other monitors Mastodon in multi column 'deck' mode. Same, two weeks ago when I took this shot. The last monitor has Dolphin the file explorer of KDE Plasma Fedora, IRC, Clementine to listen musique. A terminal windows is around, I was updating the monitor calibration with argyllcms using command line interface

Random portrait while beta-testing

WRITTEN_BY David REVOY - - 15 comments
Painting on Sunday in autopilot mode to relax while beta testing. [source here](https://www.peppercarrot.com/en/viewer/misc__2023-09-14_Random-Portrait_by-David-Revoy.html)

Potato and Tonka

WRITTEN_BY David REVOY - - 15 comments
A grayscale study ✏️ [source file](https://www.peppercarrot.com/en/viewer/misc__2023-09-11_Potato-and-Tonka_by-David-Revoy.html)

Just Found You

WRITTEN_BY David REVOY - - 33 comments
A new digital painting, the result to [a poll](https://framapiaf.org/@davidrevoy/110990392034809958) I posted two days ago to select a color palette. Thank you if you participated to it, the palette was a good choice! [![](data/images/blog/2023/2023-09-02_palette-poll-on-mastodon.jpg)](data/images/blog/2023/2023-09-02_palette-poll-on-mastodon.jpg) [Sources and High-Resolution](https://www.peppercarrot.com/en/viewer/misc__2023-09-03_Just-Found-You_by-David-Revoy.html)

How to customise a USB numeric keypad under GNU/Linux?

WRITTEN_BY David REVOY - - 95 comments
Something that relaxes me after hours of painting or drawing is doing DIY projects. It's always very rewarding for me to hack, repair or customise existing hardware. Today I'm going to show you how I turned a cheap USB numeric keypad (also known as a numeric keypad, number pad, numpad, 10-key...) into a pad that I use for my digital painting shortcuts when I'm using my display pen tablet or when I'm painting on the go with my laptop. I bought this from a local computer shop for just 5€, a very good deal as this type of device usually sells for between 13€ and 30€. The build quality is a little bulky, the cable is thin and of poor quality, but in the shop I noticed that the keys felt good to press and weren't too noisy (they weren't even in sealed boxes). At this price, it wasn't much of a risk to try it out on a DIY project. In this tutorial, I'll describe what commands and steps I used to create this project: remap the key on Linux, and paint the keys. **Disclaimer:** This modification has limitations. You won't get a professional macro pad with these steps. The hack can only change one key to another. For example, you can't put `Ctrl+Z` on a single key. You'll have to find a key for `Ctrl` and another for `Z`. [The duckyPad](https://www.tindie.com/products/dekuNukem/duckypad-do-it-all-mechanical-macropad/) looks like a perfect solution (I never tried it) if you want something more advanced. It is also a different budget: around 100€. The project I propose on this page will cost 1/10th of that, and sometimes even less, because you can reuse a device like the one you find around you. In fact, it's not uncommon to find these accessories unused in the cupboards of many computer users. Also, your device should work. This guide is not intended to solve the problem of broken keypads or keypads without drivers under GNU/Linux. Let's start! ## 1. Find how the computer identify your keypad. The `lsusb` command line in a terminal should list your device among the full list of your other USB-powered devices. If you have trouble finding its name, unplug it, relist with lsusb and compare the two lists. My device is marketed under the brand name 'Mobility Lab', but thanks to the lsusb comparison we can see that it has a different name under the hood: > Bus 001 Device 004: ID 04d9:1203 Holtek Semiconductor, Inc. Keyboard Hello 'Holtek'. But that name is not really important. What we are looking for is the number `04d9:1203`. This number is unique to the product, so unless you have exactly the same keyboard as me (or one with the same circuit board), you'll have a different one. Write it down somewhere, this is the number plate of our device. ## 2. List all the scancodes of your keys Each button also has a special identifier. These are called scancodes. To list them, we need to install a tool. On Fedora, I do that: sudo dnf install evtest (If you're on Debian/Ubuntu/Mint, replace dnf with apt, the package will probably have the same name). Then run it, with sudo administrator privileges: sudo evtest Evtest will list all your USBs and ask you to select a target. Here you can see mine at event3, 4 and 5. I had the clue thanks to the 04d9:1203 lsusb identifier. > /dev/input/event2: Samson Technologies Samson Meteor Mic Consumer Control > /dev/input/event20: HD-Audio Generic Rear Mic > /dev/input/event21: HD-Audio Generic Line > /dev/input/event22: HD-Audio Generic Line Out > /dev/input/event23: HD-Audio Generic Front Headphone > /dev/input/event3: HID 04d9:1203 > /dev/input/event4: HID 04d9:1203 System Control > /dev/input/event5: HID 04d9:1203 Consumer Control > /dev/input/event6: Dell KB216 Wired Keyboard > /dev/input/event7: Dell KB216 Wired Keyboard System Control > /dev/input/event8: Dell KB216 Wired Keyboard Consumer Control > /dev/input/event9: UGTABLET 24 inch PenDisplay Mouse > Select the device event number [0-23]: After selecting a device (e.g. 3), Evtest will begin to 'listen' to the keystroke and give detailed feedback on each keystroke. Here is a paragraph for a single key press. > Event: time 1693422668.703634, type 17 (EV_LED), code 0 (LED_NUML), value 0 > Event: time 1693422668.703634, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7005f > Event: time 1693422668.703634, type 1 (EV_KEY), code 46 (KEY_C), value 1 > Event: time 1693422668.703634, -------------- SYN_REPORT ------------ In this paragraph we are only looking for the `MSC_SCAN` value. For our key it is `7005f`. Make a note of all the MSC_SCAN values for your keyboard keys. If some keys return nothing, also check if your device had other evtest entries (mine has 3). You'll find them this way (e.g. this was the case for my calculator key, alone on event5). I also have the `00` key on the bottom of my device, which is a special key. It has a hardcoded behaviour: it types the number `0` twice. If I replace `0` with anything, this key just repeats it twice. I'll just do the best I can to avoid the use of this key. [![](data/images/blog/2023/2023-08-31_numpad-diy-hack_001_net.jpg)](data/images/blog/2023/2023-08-31_numpad-diy-hack_001_net.jpg) _The keypad with the scancodes written on top of the keys (click to enlarge)._ ## 3. Assign custom keycodes to your device Start by making a plan or sketch of your future keyboard layout; it's not easy, and it's a good idea to do this with a pencil and eraser, as you may change your mind during the design process. To apply our plan, we'll create a new file at `/etc/udev/hwdb.d/95-custom-keypad.hwdb` (use your editor with administrator privileges, in my case: `sudo micro /etc/udev/hwdb.d/95-custom-keypad.hwdb`). The filename is flexible: - `95-` = you can use any two-digit number to start your filename. It's used to sort the configuration files. - `custom-keypad` = your custom description of your device, lower case, no spaces (you can replace it with the - separator). - `.hwdb` = the extension, mandatory. Here is the content I put in this file: ``` evdev:input:b0003v04D9p1203* KEYBOARD_KEY_70029=0x29 # [Esc] => [²] KEYBOARD_KEY_c0192=0x02 # [Calculator] => [&1] KEYBOARD_KEY_7002b=0x03 # [Tab] => [é2] KEYBOARD_KEY_7002e=0x04 # [=] => ["3"] KEYBOARD_KEY_70053=0x2b # [Numlock on/off] => [*] KEYBOARD_KEY_70054=0x10 # [/] => [a](q) KEYBOARD_KEY_70055=0x11 # [*] => [z](w) KEYBOARD_KEY_7002a=0x12 # [Backspace] => [e] KEYBOARD_KEY_7005f=0x1f # [7] => [s] KEYBOARD_KEY_70060=0x2f # [8] => [v] KEYBOARD_KEY_70061=0x15 # [9] => [y] KEYBOARD_KEY_70056=0x14 # [-] => [t] KEYBOARD_KEY_7005c=0x38 # [4] => [Alt] KEYBOARD_KEY_7005d=0x1e # [5] => [q](a) KEYBOARD_KEY_7005e=0x2e # [6] => [c] KEYBOARD_KEY_70057=delete # [+] => [Del] KEYBOARD_KEY_70059=0x2a # [1] => [LShift] KEYBOARD_KEY_7005a=0x56 # [2] => [<] KEYBOARD_KEY_7005b=0x2c # [3] => [w](z) KEYBOARD_KEY_70058=0x1c # [Enter] => [Enter] KEYBOARD_KEY_70062=0x1d # [0 => [LCtrl] KEYBOARD_KEY_70063=0x39 # [.] => [spacebar] ``` The first line targets the device: - `b0003` = 0003 stands for USB device. - `v04D9` = first value of lsusb identifier, but capitalised and with a leading v. - `p1203` = last value of lsusb identifier, but capitalised and with a leading p. - `*` = wildcard to match any other number after it. Then we have an incremented list of key definitions. It uses the syntax: `KEYBOARD_KEY_= #`. About the scancodes, we should have the whole list thanks to evtest. The target keycode can be keywords from [this list](https://hal.freedesktop.org/quirk/quirk-keymap-list.txt) or [Qwerty scancode in this type of visual](https://kbdlayout.info/KBDUS/scancodes). Just prefix the scancode with `0x` and keep it in lower case. (e.g. Y = 15 => `0x15`). Note that all changes will be made from the perspective of a Qwerty keyboard, so if you enter the keycode for 'a' on an Azerty, you'll get a 'q'. When you are done, save, quit and refresh the system with this command line: sudo systemd-hwdb update && sleep 2 && sudo udevadm trigger The keyboard should work, but it is normal to have to make adjustments and go through several loops of editing and testing. ## 4. Customize your keypad This part is entirely up to you. A simple suggestion for your project: draw on sticky paper labels and plastify them with clear tape, no need to sand the keys or anything. For my part, I decided to experiment and paint the key with coloured nail polish. This varnish (acetone based) is very strong when dry and resistant to key presses. But it's also super thick and sticky and it's very difficult to make thin lines or details. To clean the keys, I sanded them in two passes: 320 grit to remove the letter, then 400 grit to smooth them. I had a can of black spray paint around, so I applied a thin coat, as sanding the keys turned them a dull dark grey. [![](data/images/blog/2023/2023-08-31_numpad-diy-hack_002_net.jpg)](data/images/blog/2023/2023-08-31_numpad-diy-hack_002_net.jpg) _Sanding and coating with black paint._ My guideline was to make each key visually unique and not take the thing too seriously. I had a lot of fun! But I was often frustrated because my lines were very thick and wobbly and I was constantly fighting against the drying time and the lack of control. [![](data/images/blog/2023/2023-08-31_numpad-diy-hack_003_net.jpg)](data/images/blog/2023/2023-08-31_numpad-diy-hack_003_net.jpg) _While painting the keys._ Finally, here's how I use the keyboard. [![](data/images/blog/2023/2023-08-31_numpad-diy-hack_004_net.jpg)](data/images/blog/2023/2023-08-31_numpad-diy-hack_004_net.jpg) _The final result with notes on how to use the customisation._ I wish you lots of fun with your own future projects! ## Your customised keypads: I'll post here photos of your keypads (with authorizations). **2023-09-10: Kathy Murdoch's "kapelloboard"** ([original post here](https://speedlines.stctp.zone/@kapellosaur/111040233391165069)) [![](data/images/blog/2023/2023-09-10_kathy-murdoch-s-keypad.jpg)](data/images/blog/2023/2023-09-10_kathy-murdoch-s-keypad.jpg) ## Sources: - https://www.freedesktop.org/software/systemd/man/hwdb.html : the manpage, a bit crude, but with tips. - https://wiki.archlinux.org/title/Map_scancodes_to_keycodes : a solid tutorial with really cool links to go further. - https://github.com/systemd/systemd/blob/main/hwdb.d/60-keyboard.hwdb : A massive hwdb file full of possible syntax example. - https://www.youtube.com/watch?v=D0gTkPAkFIs : Nail painting art for beginners. --- ## Other methods from the comments: ### GUI method via Input-Remapper: Moini [posted a link](https://framapiaf.org/@Moini/110985754777836488) to the free/libre and open source software [Input-Remapper](https://github.com/sezanzeb/input-remapper). I have tested it and it was easy to install following the instructions in the [README](https://github.com/sezanzeb/input-remapper/blob/main/README.md#installation). This tool has a graphical user interface and will detect all your USB devices: your keyboard, gamepads, mouse and tablet. It can also enter macros and complex input (e.g. shortcuts such as `Ctrl+Z`). You can also assign multiple presets to the same device. On the downside, you always have to have the software installed and running (or the systemd daemon), and if your device has a feature for going to sleep (or disconnecting from Bluetooth, or simply not being powered on), you'll have to reopen Input-Remapper and press 'Apply' after the device has come back from sleep. If the whole system goes to sleep, the connection might have difficulties to reconnect. That's why I stopped using it after the excitement of the first few days of test. My keypad wasn't always plug and play and I had to go in a series of menus and clciks to get it ready again (something that I don't experience with the hwdb method described in the article). That's why I'll continue to prefer my method and have moved this part to the footer of the article as a note. But Input-remaper is easy and your best option if you need complex shortcut or macros. Read the basic [Usage tutorial](https://github.com/sezanzeb/input-remapper/blob/main/readme/usage.md) section of the documentation and then the [Examples](https://github.com/sezanzeb/input-remapper/blob/main/readme/examples.md). You'll save a lot of time and your imagination will open up to the many possibilities this software has to offer.