Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using the same config for several keyboards #17

Open
jbriales opened this issue Sep 29, 2022 · 8 comments
Open

Using the same config for several keyboards #17

jbriales opened this issue Sep 29, 2022 · 8 comments

Comments

@jbriales
Copy link

Is it possible to use the same configuration for several input devices?

Ideally sth like:

  • I list Keyboards A and B in config.toml
  • I have Keyboards A and B connected, run evremap mapper config.toml and it starts acting on both A and B

If the above was possible, I wonder how connecting/disconnecting either of A/B would affect the process?

@ChenKS12138
Copy link

SGTM.

@ChenKS12138
Copy link

I have the same question, and it seems worked to use GNU parallel to work with several input devices.

[Service]
WorkingDirectory=/
ExecStart=parallel --retries -1 /usr/bin/evremap remap {}; sleep 5 ::: /etc/evremap/evremap-k2-cable.toml /etc/evremap/evremap-k2-bth.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

@KSaiAkshit
Copy link

I am just running two services, evremap1 and evremap2, one for external keyboard and another for laptop. The parallel's trick didn't work for me though.

@wez
Copy link
Owner

wez commented Jul 10, 2023

I think this is a reasonable feature request. I don't currently have time to work on this myself though.

@M8850
Copy link

M8850 commented Mar 22, 2024

I can work on this. I just need to be told specificaly briefly how to do it the optimal way (so it can be added to the project).

Im the guy who did the GUI for the config files for fun.

wez added a commit that referenced this issue Jun 9, 2024
The device name is now optional in the config, and a `--device-name` CLI
parameter allows specifying the device name that will be used.

This allows using the same configuration file with multiple devices,
provided that the devices are known up front.

Note that you will need to spawn one evremap process per device
to remap multiple devices at the same time.

Thanks to @innovate-invent for making a first pass at this:
closes: #59

refs: #17
@wez
Copy link
Owner

wez commented Jun 9, 2024

FWIW, it is now possible in main to override the device_name and/or phys via the command line.
A single evremap process instantiation can still only process events from a single matching device.

Handling events from multiple devices in the same process needs a bit more thought; if we can avoid that, it will help keep things simpler overall.

@stephanlamoureux
Copy link

stephanlamoureux commented Jul 5, 2024

I am just running two services, evremap1 and evremap2, one for external keyboard and another for laptop. The parallel's trick didn't work for me though.

this isn't working for me, are your service files identical except pointing to different toml files? My first service starts but the second one will not.

edit: Added an ExecStartPre=/bin/sleep 5 to the second service and all is well. You saved the day for me, I can't get the VIA app to work but now it's doing what I need 🍻

Except I needed to add a third service since the wired/wireless are separate. I can't hot swap between wired/wireless and need to reboot if I want the remapping to take effect when switching between wired/wireless but I'll take it.

@robertsbd
Copy link

Just thought I would comment that after reading and needing the same solution the separate file approach worked well for me.

I have two toml files (evremap_int.toml & evremap_ext.toml), one for each of the keyboards. I then have two .service files (evremap_int.service and evremap_ext.service), with the internal service file pointing at the internal .toml file and likewise for the external file.

Then I enable and start up the two services with "sudo systemctl enable" and "sydo systemctl start".

I can confirm this works for me.

But all I want is the easiest way to remap my capslock to control without breaking the disable while typing functionality assoicated with a trackpad. evremap acheves this so thankyou! The other remapper I tried broke my disable while typing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants