Programming Noob Question


I’ve been using Linux in a kind of fun, exploratory way for over 10 years, primarily Ubuntu and other Debian systems. However, there is one thing keeping it from being my daily driver, which I am seriously thinking about making it as Windows and Mac both continue to take more and more rights away while charging more and more.

It’s a small, weird thing. I need a way to easily input special keys without using multiple combinations. Something like what comes built-in in MacOS or the program Holdkey in Windows - where if you hold any key down for a certain amount of time, it pops up with other similar, less common characters for you to select.

I’m willing to code this myself (I’m guessing it would have to be in C++), but I don’t even know where to begin (I’ve created some web-apps with PHP/MySQL). I need it to be able to run in the background and work on any program I have open where I input text. Can someone direct me to some resources and tell me even just the name of the “type” of program this would be so that I can begin teaching myself how to code something like this?


I believe that I am an advanced user, and I definitely know that I’m not a programmer. Yet, I decided to comment here because what folows may be useful (hopefully).

On Linux, if you hold CtrlShiftU, then release these keys, type the four-digit unicode of the desired character and then either press Space or Enter (on Macs: return), you get such character.

E.g. if you hold CtrlShiftU, then release these keys, type 00BA and then either press Space or Enter (on Macs: return), you get the º character.

Most Linux programmers use Python as their preferred language, specially if they want to create snippets and other tiny utilities that run along with the Linux distro’s GUI to improve the user’s experience. If you run a command such as:

find . -type f -name \*.py

…you are likely going to find a lot of Python scripts in your Linux distro.

Examples of Python scripts developed to facilitate keyboard access to special characters can be found here and here.

Since you mentioned that you’re a Ubuntu and Debian-based Linux distro user, if you decide to go with Python I recommend reading this article.

Pycharm Pro facilitates remote development, works with databases and supports different web technologies. Pycharm Edu has a simpler interface and detects Python during its installation. It seems that PyCharm Edu is preferred for your case.

Linux Config also hosts an introductory article to Python programming.

Thanks, Yuri.

I am actively trying to avoid the combination inputs as you describe at the beginning of your answer - I use way, way to many to memorize all of them and it is time consuming. Your second example on Python scripts is the closest to what I’m looking for, though not quite. But I might can make-do with it, at least until I can figure it out.

I’m putting a picture of what exactly I’m looking for, and hope perhaps python can do it as well. The main difference is every key on the keyboard is hotkeyed to bring up options in the same family if held for 1 whole second. So, if I hold “a” I get the options shown in the image, all related to the letter a, like ä æ α, etc. There are 9 options for the 9 numbers. Just hold 1 second, press the corresponding number, and off I go. This is true for every letter - so holding e brings up things like ë ε é etc. And s š § etc.

This is both incredibly fast and intuitive and requires no memorization. When you write Fantasy novels with conlangs, you use all these characters a lot to guide readers for pronunciation - but it’s also helpful in my day job of technical writing when looking for special characters.

Thanks for the start of where to look though. If I can figure out how to bring up a different list for each key hold and then make the selection with another key press instead of mouse click, the second example might be a good launch point.