Skip to content

Instantly share code, notes, and snippets.

View plembo's full-sized avatar

Phil Lembo plembo

  • Raleigh-Durham, NC
View GitHub Profile
@plembo
plembo / lmdnotes.md
Last active September 13, 2026 15:15
Linux Malware Detector
@plembo
plembo / killx11ubuntudesktop.md
Last active January 27, 2026 13:59
KIll X11 server under Ubuntu desktop keyboard shortcut

Keyboard shortcut to kill X11 server under Ubuntu desktop

The decision to disable/change the venerable Ctrl-Alt-Backspace keyboard shortcut for killing the X server in the Ubuntu/Gnome desktop has been a persistently unwise one.

At least for now, the most straighforward way to restore it is to install gnome-tweaks. Then go to:

Keyboard & Mouse > Additional Layout Options > Key sequence to kill the X server

Ctrl+Alt+Backspace: checked

References:

@plembo
plembo / notesondnsforandroid.md
Last active September 13, 2026 15:16
Notes on DNS for Android

Notes on local DNS for Android

Recent releases of Android famously ignore/bypass any local (i.e., self-hosted) nameserver passed along by DHCP or specified in a wifi profile, in favor of Google's own public nameservers. The only other option is to enable "Private DNS" (DNS over HTTPS, or DoH) in the global network settings for your devices. The stated reason for this are easy to understand: to avoid compromising security or privacy when connecting to random wifi networks. But we all know there's more to it than that. The most charitable explanation would be that Google (and others, including Mozilla) is fixated on getting everyone on DoH, even at the cost of frustrating we few peasants who want to run our own local DNS. Let them eat cake.

There are a few alternatives available to those of us who would like to address local hosts and services on our home networks by name, rather than IP address:

  1. Apple mDNS. Like Microsoft's legacy WINS, mDNS still isn't very reliable and won't work for hosts and device
@plembo
plembo / useicsp.md
Last active September 13, 2026 15:17
icsp ics to tsv converter in bash

icsp: a ICS to TSV converter

Alexandre Lotte, the author of icsp describes it as a "Small, fast and simple command-line tool to conver calendar exports (.ics files) into TSV/CSV files for easy analysis and usage in broader use-cases."

And so it is.

I had accidentally imported a holiday calendar into my default Proton Calendar, when I realized two very horrible things: (1) I had no backup; and (2) no one really provides tools for removing entries from calendars in bulk. Later, I would add "Proton Calendar doesn't have a versioning system". But then, no one else does either.

I was screwed.

A few minutes (OK, about a half hour) of searching the Internet, and I found icsp: which turned out to be everything its author wrote that it is.

@plembo
plembo / onenonrootpodman.md
Last active September 13, 2026 15:17
One non-root podman user to rule them all

One (non-root) podman account to rule them all

NOTE: This was written while experimenting with using podman in lieu of docker. But please be aware that not all docker solutions are compatible with podman, and some may still require root even under podman.

Going rootless is one of the main reasons for switching to podman. But if you're running shared services on server for internal users and don't want a separate account for each app, creating a special (non-privileged) account for all pods may be the answer.

This work was done on Ubuntu 22.04 LTS using the shipping Ubuntu package for podman (podman-3.4.4+ds1-1ubuntu1).

Prerequisites

Install podman and enable the podman.socket service (I'm using the version in my distro's official repository):

@plembo
plembo / autopodonreboot.md
Last active September 13, 2026 15:17
Automatically start pod on reboot

Auto start podman containers on reboot as systemd services

NOTE: This was written while I was experimenting with using podman in lieu of docker, something I'm now looking at again. Not all docker images work with podman, so be prepared to struggle with the system and to engage in many fruitless Internet searches.

Intro

OK, so who knew podman containers won't automatically start on reboot? Yeah. Me neither.

Found out after a family member complained about getting a 500 error when trying to reach a PiGallery2 instance I had set up on the home server.

Fixing this is easy, as detailed in Pratham Patel's "How to Autostart Podman Containers?" over on Linux Handbook: A systemd servic

@plembo
plembo / fixdockautohide.md
Last active September 13, 2026 15:17
fix dock will not reappear after auto-hide ubuntu 22.04 desktop

Fix dock won't reappear after auto-hide

Running Ubuntu 22.04 LTS with Ubuntu Desktop on X11.

Problem

After setting dock (dash to dock extension) to auto-hide, it won't reappear if any app is full screen.

Solution

Turn off "require-pressure-to-show" in dconf settings for dock.

  1. Open dconf-editor and go to org > gnome > shell > exensions > dash-to-dock
@plembo
plembo / fixphantomdisplayubu.md
Last active September 13, 2026 15:18
phantom unknown display in ubuntu with nvidia

Workaround for "Phantom Unknown Display"

UPDATE: According to the Ubuntu bug history cited below, this problem was fixed with an update of ubuntu-drivers-common on September 10, 2024. After removing the workaround udev rule and verifying the package was updated on my system, I confirmed that the troublesome behavior didn't return for me. That said, at least one other person has advised that they're still experiencing it even with the workaround.

Got bit by Ubuntu Linux bug #2060268 on the latest kernel update for 22.04 LTS (6.8.0-40-generic).

As in the bug report (and many forum posts across the Internet) this appears to be due to a collision between the simpledrm kernel module and NVIDIA drivers. The symptom is a nonexistent display device being assigned as card0. The practical effect is to throw off any previous configuration of the display system (display 1 becoming display 2, display 2 becoming display 3). As a result, customization

@plembo
plembo / tpmsecbootwinkvm.md
Last active September 13, 2026 15:18
KVM libvirt qemu tpm secure boot Windows install

TPM and Secure Boot for Windows 11 guests on KVM

The latest KVM on Ubuntu Desktop 22.04 supports both TPM2.0 and Secure Boot for Windows 11 guests. To use it you'll need to make sure the ovmf package is installed.

If using Virtual Machine Manager (VMM, or virt-manager) to install Windows 11 from a Microsoft iso, be sure to check "Customize configuration before install" before clicking on the "Finish" button. While VMM will automatically detect the operating system version and customize many things, including TPM, it will not choose the correct setting for Secure Boot.

When you get to the VM's configuration screen in VMM, you'll find that a TPM vNone device has already been added. Setting up Secure Boot properly will require manually selecting the correct firmware. To do that:

  1. Select Overview
@plembo
plembo / virgl3d-ubuntu.md
Last active September 13, 2026 15:18
3d acceleration for Linux guests in KVM on Ubuntu Desktop

VirGL for Linux KVM guests on Ubuntu Desktop

NOTE: Please don't ask for help here, it was a miracle that I got it to work at all. Seek answers in the usual places (yes, even Stackoverflow knows more than I do).

The question: How can I get 3d accelerated graphics for Linux guests in KVM without using PCI passthrough?

The short answer is: Use VirGL. The long answer is more complicated, because the VirGL project has had slow but steady progress towards actually working reliably, but the degree to which any given Linux distribution (or related driver project) is in sync has varied greatly over time. Even if it works right now, today, on your machine, it might not tomorrow. Note that even when it works, graphics performance is mediocre to downright painful.

Tested on Ubuntu Desktop 22.04.04 LTS with qemu-kvm, in an "Ubuntu on Xorg" session (not Wayland). Linux quests must have spice-vdagent installed (Ubuntu installs this by default). The hardware is a AMD 5600G d