Adding mouse- and selection-support to kmscon
Table of Contents
Pile up of itches to scratch
The output-rotation is now working as I initially intended, and there is also gyro/accelerometer support in the pipe. But using my version of kmscon daily now, I quickly ran into the issue of missing cut&paste functionality, which one usually gets via gpm, when using the old-school text-console VTs under Linux.
“How hard can it be? Can’t be that much work ;)” whizzes by my mind. I have dealt with nastier things in the past without prior knowledge or preparation. Occasionally I am a magnificent douchebag for having these very thoughts *sigh*
The pieces for non-blocking reading from the kernel’s input-subsystem work… wheeeeee… I could even do multi-touch stuff now with my Apple Wireless Trackpad or the trackpads of my Lenovo laptops. So far no ideas for that though. Coder-art graphics for a mouse-cursor and rubberband-selection are added too… for verification of logic and general functionality. That will not stay. The visual direction I am aiming for you can see here…

… and here…

The hard chunk of work is getting to know libtsm, which is used by kmscon for the terminal-emulator-y things. That I am not so much looking forward to. I’ll probably finish the gyro/accelerometer support first.
Getting back in touch with community
In the meantime I managed to get in contact with Victor Weterhuis from the debian and ubuntu communities. So it will be easier to spread the word, get some feedback and add my patches to proper kmscon-packages in these distros.
I still would like to at least get somebody on the fedora-side of things into the loop. If you read this and are part of the ‘fancy hat’-crowd ;), I gladly help with getting my patches up and running there. I have packages of my version of libtsm and kmscon in copr already.
Should you read this and be part of the SuSE-, Mint-, Arch-, Gentoo- or <your favorite distro>-community and still love fancy fast terminal-emulators… drop me an email.
Design feedback
Finally I invite all GUI/UX/UI folks – with a soft spot for marvelous terminal-emulators – to reach out and provide feedback, make suggestions or tell me how lame non-graphical/non-AI interfaces are these days 🙂 No one presses Ctrl-C, Ctrl-V or the middle mouse-button anymore, everything goes through Chat-GPT, right?!
I am currently using https://aur.archlinux.org/packages/kmscon-patched-git
Your fork seems the future, however!! (chatgpt + kmscon + vim FTW)
Greetings Gustav!
I do not intend to fork kmscon, but rather have my branches/patches go into ‘upstream’ (well, technically aetf’s repo is a fork itself) if possible. Pull-request (against aetf’s kmscon repository) is up (https://github.com/Aetf/kmscon/pull/75). Now just wait an see.
Earlier this year, I contacted Victor ‘viccie30’ Westerhuis, who actually pointed me towards aetf’s repo, because I initially based my patches against the original upstream from dvdhrm. But that repo is dormant for about 9 years already. There are one or two folks, from around aetf’s repo, aware of my patches now.
No matter how fast stuff will move now, the code to the three features I added is available… people can use them in distro-patches or for their own personal use… or just be patient and wait. I do expect some change-requests for my pull-request, once it gets reviewed. There are also some things I want to fix/improve, which I came across during daily usage of it. Nothing major, but rather cosmetic tweaks.
Finally I started a bit of totally pointless – but fun – bling-crap for kmscon. I have some fancy shader-based background effects for it now. This is something that will not make it into a pull-request. I will push it to a separate branch, but it has no place in upstream… it’s purely a “because we can”-thing. I am going to write a blog-post with some screencast about it, once it is a bit more fleshed out.