Different keyboard layouts on different laptops bring different annoyances. But there is one key that annoys me on any keyboard: CAPS LOCK. There is literally no reason for that key to exist. And yes, I am using literally appropriately here. The only appropriate action is to get rid of it.
If you’re running any systemd-enabled Linux distribution that is easy enough. My approach is as follows:
Congrats, your keyboard is now treating CapsLock as F15 (aka the highest F key you can assign keyboard shortcuts too in Gnome settings). Of course, you can select and other key of your liking. For that, you can take a look at SystemD GitHub for ideas. Of course, setting it to nothing (i.e., reserved) is a valid choice as well.
PS: If you want to limit change to just your laptop (e.g., if you’re propagating changes via Ansible and you don’t want to touch your desktop), you can check content of /sys/class/dmi/id/modalias for your computer IDs. Then you can limit your input appropriately. For example, limiting change to my Framework 13 laptop would look something like this:
PPS: In case Caps Lock is not 3a key on your computer, you might need to adjust files appropriately. To figure out which key it is, run evtest. When you press Caps Lock, you’ll get something like this:
-------------- SYN_REPORT ------------
type 4 (EV_MSC), code 4 (MSC_SCAN), value 3a
type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Value you want is after MSC_SCAN.
PPPS: Another way to debug keyboard is by using libinput (part of libinput-tools package):
sudo libinput debug-events --show-keycodes
PPPPS: And yes, you can remap other keys too. F1 is my second “favorite”, close after Caps Lock.
While I use Linux as the primary OS of choice on my Framework Laptop, I still need Windows from time to time. And yes, a virtual machine is usually sufficient, but there is one scenario where Windows is much better - gaming.
First of all, this setup is not limited to the Framework Expansion Card. You can get it working on pretty much any USB these days. However, there is a difference between “can” and “should”. Most notably, most USB drives out there will not actually give you enough raw speed to comfortably use Windows. You need something with a bit more umph, and both Framework expansion SSD cards fit this nicely.
The trick in getting it all done is using Rufus and installing Windows in To Go mode. This retains much of the normal Windows behavior, but it also improves handling of what is essentially just a USB drive (e.g., you can unplug it during running). Default Rufus settings are actually good here, just make sure to select “Windows To Go” and everything else will be as normal.
Lastly, while I do love encryption, TPIM is a slight annoyance in many scenarios where you might end up moving your installation around. Thus, while TPIM is available on the Framework laptop, I wanted my BitLocker not to make any use of it. I found editing Group Policy settings using these steps works for me.
Open gpedit.msc.
Navigate to Computer Configuration → Administrative Templates → Windows Components → BitLocker Drive Encryption → Operating System Drives.
Require additional authentication at startup:
Enabled.
Allow BitLocker without a compatible TPM: Checked (was already)
Configure TPM startup: Do not allow TPM
Configure TPM startup PIN: Require startup PIN with TPM
Configure TPM startup key: Do not allow startup key with TPM
Configure TPM startup key and PIN: Do not allow startup key and PIN with TPM
Allow enhanced PINs for startup:
Enabled
Configure use of passwords for operating system drives:
Enabled
Configure password complexity for operating system drives: Allow password complexity (already)
From time to time I play Unreal Tournament 2004 with my kids. Aging game, being older than either of them, is not an obstacle to having fun. However, the inability to host a networked game is. As Windows updates and firewall rules change, we end up figuring out who gets to host the game every few months. Well, no more!
To solve my issues, I decided to go with Laclede’s LAN Unreal Tournament 2004 Dedicated Freeplay Server. This neat docker package has everything you need to host games on Linux infrastructure and, as often happens with docker, is trivial to run. If this is what you need, stop reading and start gaming.
But I wanted to go a small step further and set up this server to run on Kubernetes. Surprisingly, I didn’t find any YAML to do the same, so I decided to prepare one myself.
PS: While the server image has been available for a while now and it seems that nobody minds, I would consider downloading an image copy, just in case.
Based on list of wireless cards supported on Linux, I decided to buy Comfast CF-953AX as it should have been supported since Linux kernel 5.19. And HWE kernel on Ubuntu 22.04 LTS brings me right there. With only the source of that card being AliExpress, it took some time for it to arrive. All that wait for nothing to happen once I plugged it in.
In order to troubleshoot the issue, I first checked my kernel, and it was at the expected version.
Linux 5.19.0-38-generic #39~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC
Then I checked with lsusb my devices, and there it was.
Bus 002 Device 003: ID 3574:6211 MediaTek Inc. Wireless_Device
However, checking for network using lshw -C network showed nothing. As always, looking stuff up on the Internet brought a bit more clarity to the issue. Not only the driver wasn’t loaded but the USB VID:PID combination was unrecognized. The solution was simple enough: load the driver and teach it the new VID:POD combination.
Every time I reinstall Ubuntu, I am faced with the same issue. Whenever I press Ctrl+. in Visual Studio Code, I get an underscored letter “e” instead of the expected refactoring menu. And it takes me a while to remember the solution: running ibus-setup and removing emoji keyboard shortcuts.
However, there is also a scriptable solution. Just use gsettings and remove hotkeys from the command line.
gsettings set org.freedesktop.ibus.panel.emoji hotkey "[]"
gsettings set org.freedesktop.ibus.panel.emoji unicode-hotkey "[]"