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.
Hello
Definitley compulsory
Could you give noob level instructions for building including only mouse part please?
Many thanks
Greetings Pascal!
Gee… another real comment on my blog, which is not coming from a spam-bot. I hardly look for comments here on my blog, since there are maybe just 10 page-hits/month from bots usually 🙂
Technically I could write up a small summary of how to fetch and compile a version of kmscon using the mouse-cut&paste support.
But it is not easy, meaning you will need to be able to help yourself a bit, if things do not go exactly as I might describe them (you might be on a different Linux distro, the tools installed/available on your system might be slightly different versions and so on).
You should be familiar with the command-line under Linux and the typical tool-chain for software-development (e.g. git revision control, makefile generators a la meson, compilers like gcc or clang, header files etc).
If you can answer ‘yes’ to most of all of these things, than you could probably be able to compile kmscon with my patches with a little guide or how-to.