HotkeyAutoExecute is a simple single-window tool that lets you manage a list of frequently used hotkeys, of which one is repeatedly executed in configurable intervals.
That was the TLDR blurp, and now let’s get into the details. This tool scratches an itch I had in 2020 when I wanted to simplify the process of taking game screenshots for my reviews. During intense gameplay moments, it is difficult to focus on the game and press a keyboard shortcut to take an image of on-screen action. Therefore, I hacked something that would do the job but was not quite baked to be open-sourced as an application. I have changed that now, and boy, was it more complicated than I would have liked.
In a blog post in 2020, I described how to utilize the WinAPI SendInput() function to emulate hotkey presses to automatically take game screenshots for my video game reviews. While I intended to create a simple GUI application to do the task, I ended up with only a hack because of a massive boulder that Windows threw in my way. Or after me, chasing me down a narrow path.
Forget the boulder.
(Although it would be a fitting metaphor to describe Windows: tall, fat, and destructive to user privacy.)
I wanted a simple input field where the user can press a key sequence that will be executed repeatedly at an interval. Qt conveniently provides QKeySequenceEdit for this purpose, and when I tried to insert the Xbox Game Bar hotkey, it did not register. Well, it did, in that Windows took a screenshot. But it was not recorded by the widget. Windows seems to intercept and eat the key presses. That was when I decided to just hard-code my needs and call it a day.
Two years later, I figured that it was about damn time to fix this, and this is where I ran into issues with the translation of key codes from QKeySequenceEdit and QKeySequence to native Windows virtual key codes.
I am trying to write video game reviews after I have finished a game
and I like to add some impressions in the form of screenshots to the
reviews. There is one problem though: sometimes it is impossible to
press the keyboard shortcut to capture a screenshot because the game
requires my full attention – and all my fingers. Therefore, I miss
out on a lot of action sequences. What does a programmer do in such a
situation? Write a tool that scratches the itch.
Recently at work, when copying an application from our internal
Docker Registry to Azure, I ran into the following error in my WSL
Login at docker..com
Error saving credentials: error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`
ERROR: source registry login failed
The easiest fix I found was to install the gnupg2 and pass packages.
sudo apt install gnupg2 pass
One important thing to note regarding security: the output
mentioned storing the credentials in plain text as a result somewhere
in the WSL user’s /home directory. If you are very conscious about where
passwords are stored, do not use this solution or remove the password
file afterwards. That’s good enough for me at the moment, I just needed
to get this to work somehow.
It has been roughly a month since I switched from using Windows 10 as my main operating system to Linux. The reasons for that have all been detailed in The Switching Windows to Linux Experiment blog post. Now I will share a few of the experiences I have made during the first month (it’s been that long already) and what I think about how well it is going.
Let me address the elefant in the room first, the distribution. I think that is likely the first question you, the reader, would ask. The short answer is Pop!_OS by System76.
If you are a user of any form of computer and care one bit about your sanity, then you probably have a backup strategy. Otherwise, if all hell breaks loose and your whole computer burns to ash or the hard drive melts to a heap of metal, turning it into an ugly door stop, you’ll likely be kinda angry, maybe slightly pissed, your pulse most definitely at 180, that you’ve lost all your data. I’d certainly be, especially about all my pictures of all the festivals and places I’ve been to.
(And maybe some family 😅)
But, to be honest, I’ve been a bit lazy about backups for some time now. I do have copies of all my important files, but that’s not a backup. It’s a copy. A backup lets you go back in time and get an older version of a file or folder, not just the most recent one that has been synced.
So why is it, that I’m not as diligent as I should be? There are a few factors in that equation. It’s laziness for one, knowledge that I do have at least one copy, the fact that I haven’t had any data loss so far and stinginess. Why the latter? Up until now, being a Windows user (not any more though, on my main machine), I was relying on Acronis True Image, a commercial backup software. However, the version that I own – 2014, I think – stopped being reliable in one of the past Windows 10 versions. I simply don’t want to spend the money any more.
I’m not here to tell you that I have changed my mind on that. No. I’m, of course, coding my own solution. Why wouldn’t I? Everything is done multiple times in the Open Source community.
While I was grooming my unicorn on Crazy-Talk Island I read on the Internet about a thing called Windows 10. Curious as I am, I went out to watch the huge presentation on Jan, 21 where Microsoft officially unveiled the mobile version of Windows 10 and the cool hardware stuff. There’s also a very nice set of videos by Scott Hanselman on YouTube that show the changes from version to version.
Actually I’m very much aware of Windows 10 since the beginning, as a developer I’d be crazy not to, so I registered as a Windows Insider yesterday and downloaded the technical preview build 10041. Here’s a summary of my first impressions. Read More »
Windows 8 wasn’t all too well received, hardly a secret if you follow the tech press, neither by customers nor by businesses. There are a few folks who like it but they are, like those Windows Phone enthusiasts (that really do exist), a very minor minority (without report).
About a year ago, I started using Windows 8.1 as my main operating system (which I’ve written about a few months later). Before, it was just a necessity to get the Soundblaster audio card to work. However, going through the same positional-sound problem again after upgrading from 8.0 to 8.1, I’m sure using Windows 8 fixed the problem by accident. Creative’s drivers are just a bulk load of crap, as they’ve always been. Had I not had the iMac as a work computer at that time, I’m not sure I would’ve installed Windows 8 instead of 7, but rather gotten rid of the Soundblaster Z. If you’ve read the post about the sound card, you know I was one of the many people that had an axe to grind with this OS. Read More »
What started out as a reasonable decision at the beginning of 2014 now reached its climax with the Surface Pro 3: switching away from Apple, in every regard, and move to the Microsoft platform. First the PC, then the phone and lastly the tablet. Since having a Windows based PC is nothing unusual (although I might be one of the few that actually came to like Windows 8 – just as I was one of the few that liked Vista over XP; what does that say about me?) and the Surface is still too new to write about it in any meaningful way, that only leaves us with the phone. Read More »
In part 1 I explained what finally made me replace my iPhone with a Nokia Lumia device. This little write-up describes the basic functionality of communicating with contacts, including managing contacts, instant messaging and e-mail. Read More »
As I have already mentioned in a previous post (8th paragraph), the Windows Phone platform had me hooked since day one. There was something to it that made it more interesting than iOS or Android. However, at that time the competition had been more mature – not only the OS but also the devices – and therefore I chose a Samsung (from now on called Copyshop) Galaxy S2 as my first smartphone. Android seemed the best fit back then (around 3 years ago), simply because of all the possibilities this platform offered on a technical level (I’m a programmer, that’s how I think). As it turned out, I basically used none of those things I found so interesting (like widgets) but rather tried to get a vanilla Android experience without the Copyshop bloatware – not to mention regular software updates.
With Windows 8 now finally released, there comes a new generation of hardware with a strong emphasis on the input device – the fingers. Touch as we know and love today has been around in common perception since the release of the first iPhone which was in 2007. The first smartphone like phone was actually released in 1994 by IBM, the IBM Simon. Based on todays standards you can imagine this wasn’t a device one would call “a beauty”. In fact, the Wikipedia page lists the form factor as “brick”. From a current point of view you probably wouldn’t want to use and play around with such a type of touch interface.