I upgraded to Ubuntu 23.10 on my laptop last night. It took less than 20 minutes, and so far everything has just worked.
This is the kind of user experience I want on all my devices, and also the kind of experience I strive to deliver to others.
Musings on computers, music, travel and other such things.
I upgraded to Ubuntu 23.10 on my laptop last night. It took less than 20 minutes, and so far everything has just worked.
This is the kind of user experience I want on all my devices, and also the kind of experience I strive to deliver to others.
After over 3 years of mostly remote working I very interested in seeing how other people set their home offices up for maximum productivity. I’ve made a lot of changes since the start of 2020, and I suspect many other people have as well. I had intentions a while ago to make a long list of people who have inspired me with their setups, but have only just got around to posting that list (which I will likely add to later).
Hopefully looking at these again will inspire me to consider if there are any changes I need to make to how I work.
I have been experimenting with NixOS for a few weeks, and whilst I’m not ready to run it on my main machine, I think I could if I had to. These notes are all the things I had to search, or experiment with, and are largely here for my reference, although if they help someone else then that is great.
# Enable the GNOME Desktop Environment.
services.xserver.displayManager.gdm.enable = true;
# services.xserver.desktopManager.gnome.enable = true;
# Enable i3
services.xserver.windowManager.i3.enable = true;
# Configure keymap in X11
services.xserver = {
layout = "gb";
xkbVariant = "";
};
# Configure console keymap
console.keyMap = "uk";
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Allow QMK to write to keyboards
hardware.keyboard.qmk.enable = true;
# needed for store VS Code auth token
services.gnome.gnome-keyring.enable = true;
# List packages installed in system profile.
environment.systemPackages = with pkgs; [
git
featherpad
pandoc
dropbox
dmenu
feh
i3lock
kitty
i3blocks
arandr
scrot
xautolock
barrier
imagemagick
neofetch
zathura
pcmanfm
htop
blueman
cowsay
fortune
shellcheck
abiword
rhythmbox
brasero
sound-juicer
transmission
byobu
tmux
screen
qmk
networkmanagerapplet
protonvpn-gui
protonvpn-cli
protonmail-bridge
unixbench
zerotierone
zoom-us
caffeine-ng
copyq
vscode
];
#!/bin/sh
# Standard error mitigation
set -euo pipefail
# Replace existing config
cd /etc/nixos/
sudo mv configuration.nix configuration.nix.old
# download new config
sudo wget https://raw.githubusercontent.com/teknostatik/nixos/master/configuration.nix
# Test
sudo nixos-rebuild test
# Deploy
sudo nixos-rebuild switch --upgrade
# Clean up and then go home
nix-collect-garbage -d
cd $HOME
The Cantor is a 42-key split mechanical keyboard with an aggressive stagger. I have built a few of these, both for my own use and to sell.
This is what we need to build a Cantor:
All the example code in this guide will be assuming that the Vial firmware will be used. It requires having a working installation of the vial-qmk
github repository.
Flash each controller to test they work, and to define which controller belongs to which side of the keyboard.
Firstly test that your firmware compiles:
qmk compile -kb cantor -km vial
Then flash each controller in turn:
qmk flash -kb cantor -km vial --bootloader dfu-util-split-left
qmk flash -kb cantor -km vial --bootloader dfu-util-split-right
If you get the message Waiting for USB serial port - reset your controller now (Ctrl+C to cancel)
you will need to bridge BOOT0 to VCC (via BOOT0 button or jumper), short RESET to GND (via RESET button or jumper), and then let go of the BOOT0 bridge.
Once you have done this then label the controllers so you are absolutely sure which is which.
If QMK encounters errors it will let you know. Fix any errors before proceeding to the next step.
These steps will get us a PCB that we can test:
Plug the keyboard into a computer, and short every single socket to test that the right key codes are sent. I use QMK Configurator to test this.
If anything is awry, fix it before soldering switches.
Press each switch into the PCB, and ensure they are straight. Then solder each one in turn.
Once the switches are soldered, repeat the same tests as before. If any switches do not work, or behave oddly (repeated keys, excessive chatter etc.) then resolder them.
Apply 5-6 rubber feet to the bottom of each half of the PCB, and then add keycaps.
The Ferris Sweep is a 34-key split board with an aggressive stagger. I have built a few of these, both for my own use and to sell.
This is what we need to build a Ferris Sweep:
All the example code in this guide will be assuming that the Vial firmware will be used. It requires having a working installation of the vial-qmk
github repository.
Flash each controller to test they work, and to define which controller belongs to which side of the keyboard.
Firstly test that your firmware compiles:
qmk compile -kb ferris/sweep -km vial
Then flash each controller in turn:
qmk flash -kb ferris/sweep -km vial --bootloader avrdude-split-left
qmk flash -kb ferris/sweep -km vial --bootloader avrdude-split-right
If you get the message Waiting for USB serial port - reset your controller now (Ctrl+C to cancel)
you will need to Short RST to GND quickly in order to flash the controller.
qmk flash -c -kb ferris/sweep -km vial -e CONVERT_TO=elite_pi --bootloader uf2-split-left
qmk flash -c -kb ferris/sweep -km vial -e CONVERT_TO=elite_pi --bootloader uf2-split-right
qmk flash -c -kb ferris/sweep -km vial -e CONVERT_TO=promicro_rp2040 --bootloader uf2-split-left
qmk flash -c -kb ferris/sweep -km vial -e CONVERT_TO=promicro_rp2040 --bootloader uf2-split-right
Once you have done this then label the controllers so you are absolutely sure which is which.
If QMK encounters errors it will let you know. Fix any errors before proceeding to the next step.
These steps will get us a PCB that we can test:
Plug the keyboard into a computer, and short every single socket to test that the right key codes are sent. I use QMK Configurator to test this.
If anything is awry, fix it before soldering switches.
Press each switch into the PCB, and ensure they are straight. Then solder each one in turn.
Once the switches are soldered, repeat the same tests as before. If any switches do not work, or behave oddly (repeated keys, excessive chatter etc.) then re-solder them.
Apply 5-6 rubber feet to the bottom of each half of the PCB, and then add keycaps.
I often download albums that have been made freely available, and then end up buying the record anyway. It’s definitely a way I have discovered new music for a while, and very rarely leads to me not giving the artist money for something, even if it is not that particular record.
Here is list of music currently available on a pay-what-you-want basis. It’s accurate as of 30th September 2023, but I do intend on trying to keep this as up to date as possible. For the first three sections it’s worth looking directly on their Bandcamp pages, and even if things change, then there is always something on offer.
This is my favourite record label right now, and I own a fair few of these on vinyl or cassette. If you don’t care about having a physical copy then you can pay whatever you want for these.
Another favourite that I own a fair few records from.
The band that started me on this quest often add/remove things from they pay-what-you-want list, but these are the ones that seem to be on it the most. If you do find physical copies of this music then just buy it, because they don’t stick around for long.
A selection of other things that I have enjoyed and would definitely like to own on vinyl at some point.