i meant changing the little tact buttons on the kvm pcb to actual switches (would not be part of the matrix) though they would be regular switches & keycaps and look like part of the regular keyboard.
Ah, I see. The idea to have better buttons - perhaps a dedicated one - for the switching operation sounds good. If I have to build my own keyboard in the end it might be a good idea to include such a key. In order to avoid having to debounce it, I might include it into the matrix instead of using an existing key combination.
the trackpoint is part of the keyboard, not a separate mouse.
On the physical level, that's correct - the trackpoint doesn't look like a mouse, and it's screwed into the keyboard. But on the relevant electronic/protocol level, according to the information I was able to locate about trackpoints (version IV - earlier ones are diffrent), they're ps/2 mice. The controller (i.e. a teensy running QMK) cannot even distinguish if what is connected to it is a "normal" ps/2 mouse or a trackpoint. It can only figure out if it's a simple 2-button-mouse or if it supports scrollwheel and up to 5 buttons as well. Perhaps there's some additional protocol placed on top of ps/2 for calibration, but...that doesn't seem likely as the trackpoint has no further function and people having included one in their keyboards didn't complain about missing functionality.
modules are usually connected via i2c to the keyboards micro controller.
i2c is certainly useful and most likely used in many computer/microcontroller environments, and it might come into play if two microcontrollers need to talk to each other (i.e. when I need a second one for a second USB port), but in the end it's just another bus/protocol - just like ps/2 or USB are - a clock and a data line, and devices communicate using those. The trackpoints of intrest either have no control logic at all (the older ones) or are ps/2 mice.
the trackpoint module may be ps/2, but the controller is just reading the output from the module and including it in it's usb reporting. (afaik).
In the end, yes. "Just" seems a bit simplifying in this case. The controller needs to talk to the ps/2 device as a host, initialize the device, process the information gained to some degree, talk to the other "side" (usb) and send the information there.
you could use regular mouse keys instead of trackpoint. though, i believe those keycodes can be stripped off in some kvms.
Using mouse keys on the keyboard definitely sounds intresting. I tried to implement them when experimenting with a software side filter (make caps lock toggle to a new layer and use hjkl cursor keys), but the mouse keys didn't work there yet. Maybe I failed to do some initialization. The keyboard used for tests was a ps/2 keyboard connected through an adapter directly to an USB port.
https://beta.docs.qmk.fm/using-qmk/advanced-keycodes/feature_mouse_keys
https://beta.docs.qmk.fm/using-qmk/software-features/feature_pointing_device
https://beta.docs.qmk.fm/using-qmk/hardware-features/feature_ps2_mouse
Thank you for those links. I somehow ended up with the wrong adress when I first looked.
The (for me) relevant part seems to be located in tmk_core/protocol/, and there in particular the files regarding ps2 and usb. In theory that is all that is needed. Of course qmk/tmk is not prepared to handle a second mouse. It is only prepared to talk to one mouse which can be connected using diffrent features of the microcontroller (UART, interrupt, busywait). Talking to a second mouse will require code changes. And then that information gained about movements of the second mouse needs to be passed on to the USB host. suicidal_orange confirmed already that one USB device can include two mice, so that ought in theory to be possible.
V-USB also sits in that folder but most likely won't be usable directly alongside hardware USB. QMK/TMK have been developped for one USB device at a time, not two. I'm not sure if both can be made usable simultaneously. And even if they can: Microcontrollers don't have infinite ressources. While the I/O-pins are plentiful at i.e. a teensy, it still doesn't seem to have more than one UART or one USB. The amount of interrupts is also limited.
https://www.tex-design.com.tw/us-en/products.php?cid=17
Yes, the Tex Yoda is very close to what I'd like to have, but lacking so many keys. With shipping and tax, it may end up costing close to 400 euro. For that it'd have to be perfect...
https://ultimatehackingkeyboard.com/
Thanks! I've seen that as well. It's definitely an intresting concept. I'm just not looking for a split keyboard.
https://promethium.keyboard.id/
Looks like another split keyboard with very few keys. I'm not ready for that yet I'm afraid.
- https://github.com/gzeronet/teensy-trackpoint-tmk-keyboard
Yes, that's more like it, although it's small like the tex yoda. There's also
this version that looks pretty intresting. Perhaps for a keyboard to carry around? But then it'd want to have a Pi inside as well.
i'd say a good starting point would be getting/making a qmk based keyboard of your choice (could even be a simple macropad) and see how/what it's reporting and what features work & what doesn't with the kvm's you have on hand.
- try mouse keys
- try a trackpoint or other pointing device
- see how the kvm reacts to qmk
That's very good advice, thank you! Experimenting with mouse keys might be easiest as that can be done in software (I hope). A thinkpad keyboard with trackpoint is on its way to me. When that one arrives, I can at least try to talk to it via arduino and ps/2 (just need to gather enough courage to remove the trackpoint from the poor still working keyboard..).
Another intresting step might be to experiment with V-USB. QMK/TMK makes use of that one as well if there isn't hardware USB support. Connecting a single ps/2 device and converting it to USB (like what the cheap converters do) might be helpful in learning. For my purposes, I'd have to input 3 ps/2 devices (keyboard, mouse, mouse) and use V-USB at the same time...might be too much for a small microcontroller (not enough interrupts?).
there's also a qmk based trackball and a qmk based mouse. both based around the PMW3360 optical sensor.
That also sounds intresting. But what does a trackball need QMK for? AFAIK trackballs are mostly inverted mice? Experimenting with one and seeing how well I get along might also be of intrest in general.
your project looks like an awful steep climb....
Yes, I'm afraid so...but that's what I'd really love to have :-)