install vargarnt + libvirt + kvm on debian 11

I want to run vagrant up on Debian. However I don't want to install VirtualBox and use KVM instead. I kept forgetting which packages I need to install so here we go:

sudo apt install --no-install-recommends \
    bridge-utils \
    busybox \
    dnsmasq-base \
    ebtables \
    libguestfs-tools \
    libvirt-clients \
    libvirt-daemon \
    libvirt-daemon-system \
    netcat-openbsd \
    nfs-kernel-server \
    qemu-kvm \
    vagrant \

I also had to add my user to the libvirt group to make it work smoothly:

sudo adduser $USER libvirt

Then all that's left is to start libvirt and maybe also tell systemd to start it on boot:

sudo systemctl start libvirtd.service
sudo systemctl enable libvirtd.service

That's it vagrant up --provider libvirt should work now.

On a side note: On rare occasion virt-manager is a quite handy tool for working with libvirt VMs. It's also in Debian an can be installed with apt.

use already set up gpg smart-card

When you've got an smart-card which is already set-up with your private key and you'd like to use it with gpg, here's how to get gpg to use it:

  1. make sure scdaemon is installed
  2. import your key gpg --import 1234...asc or fetch it from a key-server gpg --recv-key 1234...
  3. connect your smart card to your computer and run gpg --card-status
  4. check if the key is now available gpg --list-secret-keys

fav Gnome extensions

Gnome comes with hardly any customization options. For the vast majority of users this probably is a good thing. Personally I feel a lot more comfortable and efficient with a couple of customizations. To work efficiently I need to keep a vast amount of windows (~100 at peak times) open at the same time and switch between them with minimal effort.

Here's my current list of Gnome extensions that make using gnome a lot more tolerable for me. I'm running Gnome 3.38 right now and didn't really look into Gnome 40 yet.

  • AlternateTab - because trying to switch though grouped windows steals a lot of time and quite frankly makes me angry. So this is an easy but important UX fix.
  • AppIndicator and KStatusNotifierItem Support - IMHO the most important fix all Gnome users need. It adds a status icon area. Some apps I need to use are only accessible through their status icon. (nextcloud, nitrokey app, etc.) I've tried a lot of status icon area extensions over the years. This is the only one which doesn't bug out. Lucky break.
  • Audio Switcher - I've got a couple of audio sinks (like external sound cards on my docking station, various bluetooth devices) This make switching bewteen them considerably less annoying. It also add a handy microphone volume indicator, so I can always if my microphone is turned on.
  • Frippery Move Clock
    • It's just easier on my eyes, when the clock is not cluttering up the center of my top bar.
  • Impatience - Extension for scaling down animation durations. I'm trying to get some work done here. Watching pretty windows fly across the desktop is fun sometimes, but I'd rather navigate quickly.
  • Vitals - So far my favorite system monitor plugin. It's highly customizable and supports monitoring really a lot of things. You could use it to pin your secondary casing fan speed or your wifi chip temperature to gnomes top bar. I've only pinned the most basic things and still numbers it's tracking are 2 clicks away at most. It has proven itself very useful to me time and again.
  • Workspace Matrix - I use a lot of workspaces and prefer a vertical layout. This makes it feasible.

Disable Gnome 3 file previews

When browsing files in gnome 3 I occasionally hit the space bar by accident. Nautilus the file browser of gnome then tries to display a preview. This is pretty anoying to me for most files already. However when this happens on a video file, the preview feature is totally bugged. It will open a videoplayer which can not be closed again, because every time I close the preview window it will start another one.

It's quite amazing how gnome 3 manages to look good overall, but at the same time add flaws which make using it a genuine pita.

The file preview feature is shipped in a package calle gnome-sushi and I usually fixed my UX by just uninstalling it. On a recent Debian 11 install however removing that package with apt would have also removed gnome alotogether. So I just uninstalled it without touching any dependencies:

sudo dpkg --purge --force-depends gnome-sushi

Sofar it seems to work as expected. I'm not sure if updates will inflict this UX scurge upon me once more.

Download FDroid.apk and verify it with GnuPG

I've been asked several times now how one can get a verified copy of F-Droid. So here's a simple step by step explanation.

Please note that F-Droid recommends to install privileged extension. It enables a seamless app installation and update experience. So installing the APK only makes sense when you can't install F-Droid privileged extension.

Start out by getting F-Droids signing key:

gpg --keyserver keyserver.ubuntu.com --recv-keys 802A9799016112346E1FEFF47A029E54DD5DCE7A

Next let's get the apk and signature file:

wget https://f-droid.org/FDroid.apk
wget https://f-droid.org/FDroid.apk.asc

now, lets verify it:

gpg --verify-files FDroid.apk.asc

Great, it's verified now you can use Bluetooth, ADB or whatever to copy/install the APK to your phone.

Of course this is just fetching everything from the internet. So it's essential to really make sure you've fetched the correct key.

systemd service definitions may suck

Today I've added a systemd service definition, but it didn't show up as a service when running systemctl list-units. I took me a while to figure out how to ask systemd if there's anything wrong with my .service file. The easiest way to get infos about broken service files I could find is to run:

systemd-analyze verify my.service

If that doesn't work, make sure the file is in the correct path. (/etc/systemd/system/*.service) Once all typos/bugs/etc. are fixed don't forget to run systemctl daemon-reload to make sure systemd is aware of the new unit.

Install Debian 10 on Lenovo D330-10IGM

I recently helped setting up a cheap used Lenovo D330-10IGM. I realy like compact 10 inch notebook table convertibles like this. Too bad such machines always come with Windows 10 preinstalled. So I of course the first thing I'm going to do is installing my favourite operating system: Debian. This is quite a process and in case I'll need to retrace my steps I'm writing them down here:

  1. Prepare USB Flash-Drive with a Debian Installer
    • download debian installer iso, it's easiest to get an unofficial image with non-free drivers included (https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/). I prefer gnome, but it should work fairly similar with most desktop envirionments.
    • connect a big enough usb drive (the debian image i used required ~4GB)
    • flash it to a usb drive. eg on a debian system you can just run: sudo dd if=~/Downloads/debian-live-10.2.0-amd64-gnome+nonfree.iso of=/dev/yourusbdrive bs=8K
    • optional tip: once dd finishes run sync to wait for the OS to write buffered data to your flash drive
  2. Lets start by disabling Secure Boot and check that USB boot is enabled:
    • make sure your D330 is shut down
    • Press [Volume Up] + [Power] until the backlight comes on. This will bring the machine into UEFI mode.
    • click: BIOS Setup
    • click: Security (on the left side)
    • click: Secure Boot (you want this to be disabled)
    • click: Boot (on the left side)
    • check that USB Boot is set to enbaled
    • click: Save and Exit (lower right)
    • click: yes (to save changes)
  3. Install Debian (gnome):
    • make sure your D330 is shut down
    • plug your usb previously prepared drive in
    • Press [Volume Up] + [Power] until the backlight comes on. This will bring the machine into UEFI mode.
    • click: Boot Menu
    • click: Linpus lite (SanDisk) (I'm using a SanDisk Flash drive, this is probably labeled differently when you try.)
    • select to boot the live version in the bootloader (nevermind that the bootloader is flipped 90°, booting might also take a while)
    • once gnome booted click the activities hot-corner (right top in gnome)
    • click debian installer to start it (usually the first item dock on the left)
    • configure everything to your liking.
    • manual disk setup is currently required, I removed all existing windows partitions and set the partitions it up like this:
      • 1st partition - mount point: /boot, flags: legacy-boot, size: 200MB, fs: ext2
      • 2nd partition - mount point: /boot/efi, flags: boot, site: 55MB, fs: fat32
      • 3rd partition - mount point: /, flags: none, size: the rest of the avialable space, fs: ext4
      • (note: I didn't configure a swap partition because I want the eMMC to last as long as possible)

That's pretty much it. Everything important seems to be working. After waking up from power saving mode both the trackpad and keyboard are not working anymore. A simple workaround is to just disconnect the tablet and re-attach it, so I didn't look any further into this as of now.

extract - display meta-data of files

Occasionally I'm dealing with files that are opaque to me. file helps a lot with getting a rough idea of what I'm looking at. Today I discovered extract though. It's a command line tool like file but it doesn't only guess the file type. It also tries to parse metadata from the file and displays it. For now I tested it with audio and image files and it happily displayed ID3 and EXIF infos. This is quite handy.

install additional language Spell-checks on Debian

Some applications on Debian got spell-checking built in. eg. LibreOffice, vim, etc. There are a couple of libraries for spell-checking packaged for Debian. Sofar I'm aware of three. So this is what I install to make sure I've got German spell-checking available in most applications:

# install de dictionaries for most apps:
sudo apt install aspell-de myspell-de-de hunspell-de-de

# libre office needs some extra love thou:
sudo apt install --install-suggests libreoffice-l10n-de

set bluetooth to disabled by default on debian 10

I'm not sure why Debian developers think it's good to enable bluetooth automatically on boot. I think this is a privacy issue and would prefer bluetooth to be "opt-in". So here's how to make sure bluetooth is turned off by default:

# install tool for disabling bluetooth
# it's a shame debian has no api for this!

sudo apt install rfkill

# setup systemd unit

cat << EOF | sudo bash -c 'cat > /etc/systemd/system/disable-bluetooth-on-startup.service'
Description=Make shure Bluetooth is disabled on system start.

ExecStart=rfkill block bluetooth


# enable systemd unit

sudo systemctl enable disable-bluetooth-on-startup