SUMMARY Some most popular tablets have the ability to switch modes of the touch ring or the touch strip. Bassed on the mode the shortcut assigned to the touch ring changes so that use can choose which shortcut to use depending on the situation. For example in mode 1 user can have zoom in and zoom out shortcuts mapped to the touch ring and in mode 2 they can have shortcut to resize the brush. This helps the artists to quickly utilise multiple shortcuts in the same touch ring without the need to take away the hand from the tablet. Libinput too supports this. here is the documentation for it - https://wayland.freedesktop.org/libinput/doc/latest/tablet-support.html#tablet-pad-modes If you want to read more here is the description page of the touch ring on wacom website. - https://101.wacom.com/UserHelp/en/TouchRing.htm notice there is a diagram showing 4 different modes shown by a led indicator besides the touch ring.
Having different button assignments depending on the mode is something we can do. It seems like you are also asking for *changing* the current mode from Plasma, e.g. via a shortcut. As far as I can tell libinput does not allow changing the mode, i.e. it is read-only. I don't know whether this is a limitation from libinput or the underlying drivers/hardware
I don't personally need/use the mode switch thingy, but if necessary I have a tablet that supports this and I can test changes when they are made.
FYI this is being worked on at https://invent.kde.org/plasma/kwin/-/merge_requests/7348
https://invent.kde.org/plasma/kwin/-/merge_requests/7348 is mostly unrelated to this. Currently the situation is this: On Wayland input from pad buttons, rings, and strips is forwarded to the active application like any input. Applications then can make use of that input to trigger actions, zoom, scroll, whatever they like. Unfortunately there seem to be very few applications that make use of this ability, probably in large part because as far as I know it's not possible to do the same on X11. The only application I remember seeing making use of pad buttons directly is GIMP. The information about what modes are available and which one is active is also sent to applications, so applications can perform different actions depending on the mode. This was a bit broken in KWin, https://invent.kde.org/plasma/kwin/-/merge_requests/6951 fixed it. Global rebinding of pad buttons in Systemsettings has been possible for a while, but currently it doesn't allow rebinding depending on the mode. Implementing that wouldn't be very hard. Suggestions on how to represent this in the UI would be welcome. Globally rebinding rings and strips is not currently possible, but could be implemented. If implemented it could be implemented in a way that allows rebinding per mode. What https://invent.kde.org/plasma/kwin/-/merge_requests/7348 does is adding support for a new kind of input: dials. Dials are very similar to rings, but they differ in how they report their input. Rings transmit an absolute angle value (0-360 degrees) while dials only report relative values similar to scroll wheels. https://invent.kde.org/plasma/kwin/-/merge_requests/7348 adds that dial events are forwarded to applications, just like buttons, rings, and strips are. https://invent.kde.org/plasma/kwin/-/merge_requests/3512 has code to rebind dials to scroll events, and could be extended to also cover rings and strips. That said IMO we should be pushing applications towards natively supporting buttons, rings, strips, and dials, since they are in a much better position to make use of the events as good as possible than globally rebinding them to pointer events