Posts
Wireless keyboard disconnects when idle for ~2 minutes
I'm on Bazzite Linux 42 and was having some trouble with my 2.4GHz wireless keyboard disconnecting, so I decided to replace it. The new one is having similar issues despite being a different brand (new: XVX, old: Royal Kludge), so I suspect the culprit may actually have been software all along. I have a 2.4GHz wireless mouse connected to the same system that is generally reliable, so I don't believe it's an issue of 2.4GHz interference. The keyboards work well when connected to my Mac, so I don't believe it's faulty hardware.
This keyboard has one feature that may be helpful in troubleshooting: it flashes an LED when it’s trying to reconnect. (The previous one had no indicator.) I can clearly see that, after the keyboard has been idle for a bit, it starts trying to reconnect again. I suspected a power management issue, but I believe I’ve disabled that. I started with a rule in /etc/udev/rules.d/:
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1038", ATTR{idProduct}=="1830", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0c45", ATTR{idProduct}=="fefe", TEST=="power/control", ATTR{power/control}="on"
(These rules disable power management for both keyboard and mouse, just in case.) I got the IDs with lsusb. I’m assuming the part of the ID before the colon is the vendor ID and the part after is the product ID.
That didn’t seem to help at all, so I tried disabling USB power management with rpm-ostree kargs --append-if-missing="usbcore.autosuspend=-1". That made the problem better, but now it just seems to take longer (a couple of minutes) for the keyboard to lose connectivity. Also, now when it loses connectivity, it seems even disconnecting and reconnecting the dongle doesn't always fix it.
Anyone have ideas what I might try from here?
Backups: Am I doing this right?
I'm in the process of setting up backups for my home server, and I feel like I'm swimming upstream. It makes me think I'm just taking the wrong approach.
I'm on a shoestring budget at the moment, so I won't really be able to implement a 3-2-1 strategy just yet. I figure the most bang for my buck right now is to set up off-site backups to a cloud provider. I first decided to do a full-system backup in the hopes I could just restore it and immediately be up and running again. I've seen a lot of comments saying this is the wrong approach, although I haven't seen anyone outline exactly why.
I then decided I would instead cherry-pick my backup locations instead. Then I started reading about backing up databases, and it seems you can't just back up the data directory (or file in the case of SQLite) and call it good. You need to dump them first and backup the dumps.
So, now I'm configuring a docker-db-backup container to back each one of them up, finding database containers and SQLite databases and configuring a backup job for each one. Then, I hope to drop all of those dumps into a single location and back that up to the cloud. This means that, if I need to rebuild, I'll have to restore the containers' volumes, restore the backups, bring up new containers, and then restore each container's backup into the new database. It's pretty far from my initial hope of being able to restore all the files and start using the newly restored system.
Am I going down the wrong path here, or is this just the best way to do it?
Updates vs. version pinning in Docker-based homelab
I'm running a Docker-based homelab that I manage primarily via Portainer, and I'm struggling with how to handle container updates. At first, I had all containers pulling latest, but I thought maybe this was a bad idea as I could end up updating a container without intending to. So, I circled back and pinned every container image in my docker-compose files.
Then I started looking into how to handle updates. I've heard of Watchtower, but I noticed the Linuxserver.io images all recommend not running Watchtower and instead using Diun. In looking into it, I learned it will notify you of updates based on the tag you're tracking for the container, meaning it will never do anything for my containers pinned to a specific version. This made me think maybe I've taken the wrong approach.
What is the best practice here? I want to generally try to keep things up to date, but I don't want to accidentally break things. My biggest fear about tracking latest is that I make some other change in a docker-compose and update the stack which pulls latest for all the container in that stack and breaks some of them with unintended updates. Is this a valid concern, and if so, how can I overcome it?
[SOLVED] No HDR option in Bazzite/KDE after connecting computer directly to display
I am running Bazzite 40 on a system with an RTX 4080. Up until yesterday, I was connecting computer -> Samsung HW-Q900C soundbar -> Samsung Q90C TV. I learned that the soundbar doesn't have HDMI 2.1 ports which is why I hadn't been able to get 120Hz, so I changed my setup to computer -> TV + soundbar -> TV (eARC).
Now, I do have 120Hz, but I lost a bunch of other options in my display settings, including HDR. The only options I can set there now are resolution, orientation, refresh rate, and scale. I suspect this is an issue with the TV communicating its capabilities in a way the OS doesn't understand, but I'm not sure how to fix or work around it. Can anyone suggest a fix? Is there a setting I can change on the TV or maybe an app I can run on the computer to manually set the TV's capabilities?
Update: Just discovered kscreen-doctor. Here's the output:
Output: 445 HDMI-0
enabled
connected
priority 1
HDMI
Modes: 446:3840x2160@60! 447:4096x2160@120 448:4096x2160@100 449:4096x2160@60 450:4096x2160@50 451:4096x2160@30 452:4096x2160@24 453:4096x2160@24 454:3840x2160@144 455:3840x2160@120* 456:3840x2160@100 457:3840x2160@60 458:3840x2160@50 459:3840x2160@30 460:3840x2160@25 461:3840x2160@24 462:3840x1600@144 463:3840x1600@120 464:3840x1600@60 465:3840x1080@144 466:3840x1080@120 467:3840x1080@60 468:2560x1440@120 469:2560x1080@144 470:2560x1080@120 471:2560x1080@60 472:1920x1080@144 473:1920x1080@120 474:1920x1080@100 475:1920x1080@60 476:1920x1080@60 477:1920x1080@50 478:1920x1080@30 479:1920x1080@25 480:1920x1080@24 481:1680x1050@60 482:1600x900@60 483:1440x900@60 484:1280x1024@75 485:1280x1024@60 486:1280x800@60 487:1280x720@60 488:1280x720@60 489:1280x720@50 490:1152x864@75 491:1024x768@75 492:1024x768@70 493:1024x768@60 494:800x600@75 495:800x600@72 496:800x600@60 497:720x576@50 498:720x480@60 499:640x480@75 500:640x480@73 501:640x480@60
Geometry: 0,0 3840x2160
Scale: 1
Rotation: 1
Overscan: 0
Vrr: incapable
RgbRange: unknown
HDR: incapable
Wide Color Gamut: incapable
ICC profile: incapable
Color profile source: incapable
SOLUTION: Turns out this was my goof. I was trying to set up auto-login on my user account. In doing so, I set it to automatically log in to Plasma (X11) instead of Plasma (Wayland). Odd that the default option in that dropdown is not the one you’re currently using, but 🤷♂️.
What I’m now trying to figure out is why I can’t set auto-login for Plasma (Wayland). The Apply button is disabled. 🤔
Thanks to everyone who shared ideas.
Keyboard customization in profile not working until manually sourced
I have a little one-line keyboard customization in my ~/.profile that is intended to make my caps lock key function as escape when pressed or ctrl when held.
# Map Caps Lock to Esc/Ctrl
setxkbmap -option 'caps:ctrl_modifier' && xcape -e 'Control_L=Escape;Caps_Lock=Escape'
It works… but only if I manually run source ~/.profile. The weird thing is that it kinda works without the manual intervention, but the caps lock also activates. This does not happen after manually sourcing.
I thought this file was automatically sourced at login. If that's the case, shouldn't the customization work automatically without the file having to be manually sourced? Is there some service that needs to be running before this command fires that is not yet running when the file is automatically sourced? Struggling to understand what's happening here… 🤔
Dealing with games that just won't run on Linux
How are people coping with games that just won't run on Linux (aside from leaving them behind)? Do you dual boot Windows? Virtualize? What's your strategy for this?
This will be extremely rare for me since I don't play a lot of competitive stuff, but I'd love to find a solution. I have a large library, and it's bound to happen from time to time.
Why do most gaming laptops have vents on the bottom?
If you're using the laptop as intended (i.e., on your lap), wouldn't those be almost entirely blocked?
