input-remapper icon indicating copy to clipboard operation
input-remapper copied to clipboard

Global profiles + Quick Switching profiles

Open kawazoe opened this issue 2 years ago • 2 comments

As a Tartarus and Naga user, I really like having specific profiles for various applications/games that I use. The main annoyance that I have with input-remapper is that switching profiles, specially across multiple devices, can be tedious. This ticket is for a set of UX improvements that could greatly improve how the application deal with these use cases, as well as enable new use cases.

  1. Global Profiles. I will often have profiles that spans multiple devices. I usually use the same name for them, but having to switch between the various devices to apply those profiles is a chore, specially if this is done often. Ideally, profiles should be at a higher level than devices. In other words, a profile should include multiple devices. This would enable to switch profiles across devices in a much simpler way. There might still be value in having per device profiles, and for this reason, I would distinguish global profiles from device profiles. Maybe global profiles could act as a collection of device profiles that gets injected together, or maybe they could completely replace the concept, or maybe they could simply be a dynamic list built from profiles with the same name across devices (though that one feels like the worst UX of the three).

  2. Quick Switching. With this new Global Profile idea, we now have a nice place to introduce quick switching features. Things like, displaying a picker of global profiles in a notification widget, assigning a keyboard shortcut to switch to a different profile. Quick Switching might require a deeper security re-architecture, which would separate the UI from the injection mechanism so that it wouldn't have to constantly prompt for root access. The first layer of this feature could be done without that refactor as long as the notification widget can display the list of profiles without root access. It would already be useful even if it prompted for root access every time you changed the active profile.

What are your thoughts? Is there more people who switches profiles frequently?

EDIT: I have just noticed that you use discussions, and I completely missed that this was already partly requested before. I still think that global profiles should be do-able without too much trouble. As for Quick Switching, I am not familiar enough with how DEs handle widgets in the status/notification area. Are those independent? What about assigning shortcuts to profiles? I think those two options should still be independent enough to be integrated, without going all the way into window class territory.

Related discussion: https://github.com/sezanzeb/input-remapper/discussions/251

kawazoe avatar Jan 10 '22 22:01 kawazoe

displaying a picker of global profiles in a notification widget

It is absolutely possible that someone would write something like https://github.com/boomshop/pulseeffectstray in a separate github project, which uses https://github.com/sezanzeb/input-remapper/blob/main/readme/usage.md#cli under the hood. Or, instead of using key-mapper-control, by sending their own dbus messages.

which would separate the UI from the injection mechanism

this is already the case. key-mapper-control and key-mapper-gtk talk to the key-mapper-service via dbus

Basically, everyone can absolutely write alternative tools and guis to talk to the daemon to fit specific needs

sezanzeb avatar Jan 11 '22 07:01 sezanzeb

In this case, I think the only thing that should be added into this project is the idea of profiles that spans multiple devices. If it can be triggered via dbus then, this sounds like a win to me!

kawazoe avatar Jan 11 '22 18:01 kawazoe