27 September 2026

Kinesis Freestyle Edge RGB Plus Review

As my ~10 year old Microsoft Natural Ergonomic Keyboard 4000 key caps were wearing off and the palm rest was blistering, it was time for a replacement. I wanted an ergonomic mechanical keyboard with tilting for less than $200. Unfortunately, the pickings are slim with those requirements. Basically, my options were the Kinesis Freestyle Edge RGB Plus and Kinesis mWave.

I went with the Freestyle because of the customization and the ability to easily replace key caps, switches, and wrist wrests for longevity. There was also on sale on the refurbished version plus ($159) and 15% off promo code (ARANYA). Shipping was an additional $15.


 Unboxing

  • Shipping box was nice and thick. It was a tight fit in the width and depth so damage in the wrong spot could have been bad. There were some packing peanuts to keep the inner box from moving vertically.
  • Thin brown cardboard box was underwhelming with just some black logos and a sticker with the model number
  • Inside that was a thicker brown cardboard holder for the keyboard and accessories
  • In the box
    • Fully assembled keyboard with wrist rests and tilt kit installed
    • USB-A to USB-C adapter (a nice touch for compatibility)
    • Key cap/switch puller
    • Mac modifier key caps
    • Quick Start Guide
    • Glossy card with review/tech support info


First Impressions

  • Included USB-A to USB-C adapter is a nice touch for compatibility
  • Keyboard has a nice weight to it and a solid feel despite the plastic construction
  • Wrist rests are plush and super soft
  • Braided cords feel great, but they are a little stiff
    • Unfortunately they aren't detachable/replaceable
    • It would be nice if there was more space to wind up the cord connecting the 2 halves
  • LEDs are very bright
    • A single key press to turn on/off the backlight is very convenient
  • Pressing the keys sound and feel good
  • The Gateron Pro Brown tactile keys felt pretty linear to me with little to no feedback. I had to double check the packaging and pulled a key cap to ensure that they were in fact brown

 

Initial Setup

  • 10 degrees of tilt feels about right for me
    • Snapping together the two parts of the lift kit to enable 10 and 15 degree tilt took more effort than I expected
    • This means that switching between 10 and 15 is easy, but to go down to 5, you need to unsnap them
  • Factory Reset
    • Held SmartSet + F12 when plugging in the keyboard for the first time
    • The indicators on the top right flashed 4 times and then the keyboard started up
  • Firmware Update
    • Downloaded keyboard firmware and lighting firmware from: https://gaming.kinesis-ergo.com/fs-edge-rgb-support/#firmware
    • Mounted the V-Drive (keyboard storage)
      • SmartSet + F8 
    • Unzipped and renamed to UPDATE.upd and UPDATE_L.upd and placed in the Keyboard's firmware folder
    • Ejected the keyboard storage via Safely Remove Hardware 
    • Unmounted the keyboard storage
      • SmartSet + F8
    • Installed the keyboard firmware
      • SmartSet + Shift + U
      • Waited for firmware to install and keyboard to reboot (~20 seconds) 
    • Installed the lighting firmware
      • SmartSet + Shift + R
      • Waited for firmware to install and keyboard to reboot(~20 seconds) 

 

 Customization

  • Setup the app 
  • Launching the app
    • Mounted the V-Drive
      • SmartSet + F8
    • Launched the app from the Tools folder
    • Clicked "Configure" on the picture of my keyboard
  • Began customizing the lighting
  • There doesn't seem to be an easy way to lower the brightness of the keys
    • What I ended up doing was just changing each of the 3 RGB values from 255 to 64 to reduce the overall brightness
  • At some point during this, the app froze and the keyboard stopped responding

 

Troubleshooting

  • Initial efforts 
    • Tried unplugging and re-plugging in the keyboard, but it still wouldn't respond
    • Tried the factory reset, which would flash the indicator lights, but wouldn't respond after that
    • Tried rebooting the PC
    • Tried leaving the keyboard unplugged for several minutes
    • Tried leaving the keyboard plugged in for several minutes
    • Tried with and without the USB-A to USB-C adapter
    • All  with no luck
  • Looked at the Kinesis website for additional troubleshooting steps 
  • Created a ticket with Kinesis support
  • Googled the issue and found a Reddit thread with some additional things to try
  • What worked for me
    • Held SmartSet + Right Spacebar when plugging in the keyboard got the basic keyboard functions working
    • SmartSet + Ctrl + Shift + F to format the keyboard
    • Waited for the previous step to complete
    • Unplugged and plugged the keyboard back in
    • Mounted the V-Drive
      • SmartSet + F8
    • Opened up "This PC" and renamed the removable storage to "FS EDGE RGB"
    • Ejected the keyboard storage via Safely Remove Hardware
    • Unmounted the V-Drive
      • SmartSet + F8
    • Unplugged and plugged the keyboard back in
    • It began working like normal so I went back to customizing the lighting 

 

Overall Thoughts

I am happy with my purchase because of the following:

  • the flexibility to put the keyboards at any angle that I want
  • the sound and feel of typing on it
  • one keypress to turn the backlights on and off
  • the extensive customizability
  • near instant switching with my KVM

The only nitpicks that I have are the lack of brightness control and the right spacebar makes a different noise then the other keys when pressing on the left side.


Appendix

Sources

Official troubleshooting response:

If that doesn’t seem to work, try a Rescue Command. This will force the keyboard to ignore the v-drive on boot, and if it works after doing the command, it will indicate corruption in the V-Drive. Unplug the keyboard, hold [SmartSet+RightSpaceBar], plug in the keyboard, release [SmartSet+RightSpaceBar] after a second or so, give it a moment. Test.

If it works normally after a rescue command, it is recommended you reformat the V-Drive. See below:

1.         Perform the rescue command.
2.         Perform the self-format command, [SmartSet+shift+ctrl+f]. Give it about 20 seconds to complete
3.         Unplug the keyboard, plug it back in
4.         Mount the V-Drive, rename it to “FS EDGE RGB”
5.         Make any desired programming changes, save
6.         Eject the V-Drive, dismount.
7.         Done! Test. 😊


16 August 2026

Proxmox 8 to 9 upgrade

As the Proxmox 8 EOL was coming up fast (2026-08-31), I needed to do the upgrade.


Prepare for Upgrade

 Ran pve8to9 and then pve8to9 --full

  • suggested to install intel-microcode
  • added non-free and non-free-firmware to /etc/apt/sources.list
  • apt update
  • apt install intel-microcode


Ensured Proxmox 8 was up to date

  • apt update
  • apt dist-upgrade
  • pveversion


Perform the Upgrade

Replace bookworm with trixie

  • sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
  • Add a proxmox.sources:

cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

  • Remove outdated Proxmox source (may not exist on your system)
    • rm /etc/apt/sources.list.d/pve-install-repo.list


Ensure the apt sources changes worked

  • apt update


Perform the upgrade (recommend doing ti from ssh shell and not Proxmox web shell)

  • apt dist-upgrade


Reboot

  • shutdown -r now


After install cleanup

Comment out the Enterprise source and test it:

  • /etc/apt/sources.list.d/pve-enterprise.sources
  • apt update


Migrate to the new .sources format:

  • apt modernize-sources
  • apt update


Appendix

Sources





02 August 2026

Sending ZFS backups to another server

After migrating back to my Lenovo server, it didn't have enough drive bays for my backup drives. So I needed to use the Dell as the backup destination.

Two servers:

  • Primary: this is the main server where the primary copy of the data exists (Lenovo)
  • Secondary: this is the backup server where we will send the data to a read-only copy (Dell)


Setup SSH

On the primary server, create ssh key pair (if you already have a key pair feel free to use that):

  • ssh-keygen -t ed25519 -C "root@primary"
    • -C is just a comment to allow for easier identification, so feel free to change, but make sure you also change where it is used later
  • cat id_ed25519.pub
    • We will need this output for saving the key


On the secondary server, create our backup user and give it the public key:

  • Install sudo
    • apt install sudo -y
  • Add the pveadmin user
    • adduser pveadmin
    • usermod -aG sudo pveadmin
    • # Allow pveadmin to run certain commands without prompting for password so use visudo to add the line
    • visudo
      • pveadmin ALL=(ALL) NOPASSWD: /usr/sbin/zfs list *, /usr/sbin/zfs receive *, /usr/sbin/zpool scrub *
  • Switch to the pveadmin user and add our ssh key
    • su - pveadmin
    • mkdir ~/.ssh
    • chmod 700 ~/.ssh
    • # Change the below to your key
    • echo "ssh-ed25519 ABCD1234... root@primary" >> ~/.ssh/authorized_keys
    • chmod 600 ~/.ssh/authorized_keys
    • exit
  • Test the ssh from primary to secondary and save the fingerprint
    • ssh pveadmin@secondary


Send the backups

  • Send over our initial data (use disown to prevent user disconnections from stopping job)
    • zfs send -R --raw rpool/data@backup-20260323 | ssh pveadmin@secondary "sudo zfs receive -o readonly=on backup-pool/data" 2>errors.log & disown
  • Send over incremental data
    • zfs send -R --raw -I rpool/data@backup-20260323 rpool/data@backup-20260401 | ssh pveadmin@secondary "sudo zfs receive backup-pool/data" 2>errors.log & disown


Automate the backups

  • Added a remote argument to my backup.sh script


Scripts

remote-backup.sh

#!/bin/sh

if [ $# -ne 3 ] ; then
  echo "Requires 3 args source, destination, and user@host"
  exit 1
fi

src=$1
dest=$2
remote=$3

snaplist=$(zfs list -t snapshot $src)
if [ $? -ne 0 ] ; then
  echo "No snapshots found for $src"
  exit 1
fi

bkpsnap=$(ssh ${remote} "sudo zfs list -t snapshot $dest 2>&1")
incremental=$?

if [ $incremental -eq 0 ] ; then
  incsnap=$(echo "$bkpsnap" | tail -n 1 | cut -f1 -d" " | cut -f2 -d"@")
  snap=$(echo "$snaplist" | grep "$incsnap" -A 1 | tail -n 1 | cut -f1 -d" " | cut -f2 -d"@")

  if [ "$incsnap" = "$snap" ] ; then
    echo "Backup is already up to date"
    exit 1
  fi

  echo "Sending incremental snap $src@$snap on top of $dest@$incsnap"
  echo "zfs send -R --raw -I $src@$incsnap $src@$snap | ssh ${remote} \"sudo zfs receive $dest\""
  zfs send -R --raw -I $src@$incsnap $src@$snap | ssh ${remote} "sudo zfs receive $dest"
else
  snap=$(echo "$snaplist" | tail -n +2 | head -n 1 | cut -f1 -d" " | cut -f2 -d"@")
  echo "Sending initial snap $src@$snap to $dest"
  echo "zfs send -R --raw $src@$snap | ssh ${remote} \"sudo zfs receive -o readonly=on $dest\""
  zfs send -R --raw $src@$snap | ssh ${remote} "sudo zfs receive -o readonly=on $dest"
fi

echo "Complete\n"


Appendix

Sources


11 July 2026

Soundcore Sport X20 review

My LG tones (HBS-730) had several different issues:

  • I had to glue one of the earbuds back together
  • It would randomly power cycle itself while I was listening to music
  • Battery indicator only had High, Medium, and Charge Soon and most of the time it was on medium so it was hard to tell when it needed charged
  • Earbuds would work themselves out while doing yard work
I found a good replacement in the Soundcore Sport X20 (by Anker) for $55.99 (plus tax)


Review

I overall like the earbuds and the negatives are largely nitpicks, but they could be deal breakers for others

Pros

  • Comfortable fit
  • Ear hooks keep them in place while mowing
  • Noise Cancelling/Isolation works well
    • Next door neighbor's electric mower could not be heard
    • Cut the noise of my electric mower in about half
    • Didn't really silence electric string trimmer
  • Battery life seems good so far with 2 hours of yard work leaving the earbuds with 80% remaining
  • Battery life indicator is in 10% increments (but is software only)
  • Case LED turns red when it needs charged
  • Supports Bluetooth multipoint (pairs to 2 devices at the same time, but only audio from one at a time)
  • IP68 water/sweat resistance

Cons

  • Earbuds lost Bluetooth connection once while mowing
  • No way to turn off the earbuds without placing in case
  • Only one button per earbud
    • Default controls work well enough for me
    • Single press to play/pause
    • While music is off long press to toggle pass-through/noise cancelling
  • Lack of AptX Support (likely causes higher latency)

Other Thoughts

  • Had to add a -100ms Bluetooth delay for audio in VLC for audio/video to sync

Update: 2026-09-13:

  • There are 1 set of ear tips preinstalled (M) and 4 in the package (XS, S, L, XL)
  • Swapping out the M for the S, resulted in not quite as good of a seal, but solved the issue of the buds pushing themselves out


Appendix

Sources


05 July 2026

Local Audio Streaming

My significant other wanted a local streaming option where they could control the songs. So I started adding our music to Jellyfin.


Rip a CD

Install abcde and its requirements:

  • sudo apt-get install abcde eyed3 lame flac id3v2


Modify abcde with the latest patch:


The options I use with abcde:

  • -o
    • output types
    • flac (lossless audio)
    • mp3 (small portable version)
  • -p
    • leading 0s on track numbers
  • -G
    • get album art
  • -B
    • embed album art
  • -V
    • verbose
  • -N
    • don't prompt
  • -d
    • CD/DVD/Bluray device to use


Create a ripcd.sh script to automate the rip:

  • cd Music
  • echo -e '#!/usr/bin/sh\n\nabcde -o flac,mp3 -p -G -B -V -N -d "$@"\n' >> ripcd.sh


Run the rip:

  • cd Music
  • sh ripcd.sh /dev/sr0


If you only want to rip a specific track:

  • cd Music
  • sh ripcd.sh /dev/sr0 1


Add Album to Jellyfin

Add a Library of Music type

Jellyfin was doubling up tracks as it listed both the flac and mp3. To solve this, I created a .ignore file that contained *.mp3 and placed it in each album folder that had this issue


Appendix

Sources


Patch:

From 5437ee1345d6c0fddee0edc65b32af43fe493922 Mon Sep 17 00:00:00 2001
From: Gerard Lanois <gerard@lanois.com>
Date: Thu, 16 Feb 2023 22:56:29 -0800
Subject: [PATCH] #1 Omit genre ID 255 (no genre).
---
 abcde | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/abcde b/abcde
index b53593a..2f06a43 100755
--- a/abcde
+++ b/abcde
@@ -912,10 +912,13 @@ do_tag ()
  ${COMMENTOUTPUT:+--comment "$COMMENTOUTPUT"} \
  );;
  esac
+ if [ "${GENREID}" != 255 ]; then
+     addopts+=( -G "$GENREID" )
+ fi
  run_command "tagtrack-$OUTPUT-$1" nice $ENCNICE $TAGGER $TAGGEROPTS \
  -A "$DALBUM" \
  -a "$TRACKARTIST" -t "$TRACKNAME" \
- -G "$GENREID" -n "${TRACKNUM:-$1}" \
+ -n "${TRACKNUM:-$1}" \
  ${TRACKNUM:+-N "$TRACKS"} \
  "${addopts[@]}" \
  "${ABCDETEMPDIR}/track$1.$OUTPUT"

03 April 2026

Minecraft for Chromebook Sign-in Issues

Minecraft for Chromebook would constantly give me the following error when trying to sign in with my Microsoft account and password:

Please retry with a different device or other authentication method


The Issue

Turns out that it doesn't support password + 2 factor authentication


The Fix

To login, I had to temporarily disable 2 factor:

I was then able to sign in to Minecraft. However, instead of prompting for a password, it texted me a code.

I then re-enabled 2 factor authentication where Microsoft tried to get me to use their authentication app.


Appendix

Sources



01 April 2026

Lenovo Chromebook Plus 14" OLED Review

My 2020 HP Chromebook X360 14c was annoying me with the following behaviors:

  • the trackpad would like to get stuck in a clicked state
  • the fan would spin up at random times and be quite noisy
  • chrome would lag doing some simple tasks like opening an email in gmail
This meant I was in the market for a new laptop.


Use Case

I mainly use the laptop for browsing the web, light gaming (eg. Minecraft), and VNCing into my server. I will also occasionally stream games from my desktop.


Criteria

Current Laptop specs

  • HP Chromebook 14C-CA0053DX
  • i3-10110U 2 cores and 4 threads
  • 8 GiB of memory
  • 14" 16:9 aspect ratio screen

Requirements

  • USB-C on either side for easy charging
  • Backlit keyboard
  • 14" 16:10 aspect ratio screen
  • at least 16 GiB of RAM
Preferred
  • No fan noise
  • 2-in-1 (for versatility)
  • Touchscreen
  • Long battery life


Top Choices

I chose the first one as it felt like the best fit for my requirements.


First Impressions

Packaging was superb and felt premium

  • Came wrapped in brown shrink wrap
  • The outside box was a standard brown box with the laptop specs on the side
  • Inside contained the charger in a brown box and a second shrink wrapped box containing the laptop suspended in the middle by cardboard packing spacers
  • The inside box contained the laptop inside a cloth feeling bag
  • Opening the laptop there was a pamphlet and cloth screen protector inside

Looks

  • The seashell color is a tasteful mix of gold and silver
  • Minimal logos on the cover
    • A centered reflective "Lenovo" logo
    • A printed "chromebook plus" on the top left

In hand feel

  • Laptop is lighter (2.75 vs 3.64 pounds) and thinner (0.62 vs 0.7 inches) than my previous, likely due to not being a 2-in-1
  • It is slightly deeper (8.63 vs 8.11 inches) and slightly less wide (12.37 vs 12.6 inches) than my previous
  • Top is metal and feels very rigid
  • Bottom while plastic also feels rigid and the waves on the bottom help make the laptop feel like it has more grip when carrying closed
  • Keyboard has a little bit of deck flex, but I don't notice it during normal usage
  • Originally the hinge was too tight to open the laptop with one-hand, but it is slowly getting better


Setup and Initial thoughts

Setup was fairly smooth

  • I had to plug the laptop in before it would turn on
  • Connected to WiFi
  • Updated the laptop
  • Logged in to Google account
  • Answered the simple setup questions

General Usage

  • Resumes from sleep before the screen is all the way open
  • Fingerprint reader works fast
  • Keyboard feels great to type on
  • Screen is nice and bright for indoor usage and I don't see any screen door effect unless I put my face inches from the screen
    • Side Note: I hate that they call 1920x1200 a 2K screen
  • Battery life is appearing to be excellent as right now it is at 57% and predicting between 7-9 hours (with screen at about 40%)
  • Minecraft plays well, but I can't get a FPS number


Other

Testing

  • ChromeOS built-in CPU test
    • CPU throttles quickly, but remains at 2.3 GHz even at nearly 100 C
    • During the test the UI does become laggy
    • After the test is complete the CPU temp drops quickly
  • Geekbench 6
    • Geekbench 6.6.0 for Android AArch64
    • For some reason the fastest core was disabled on my first set of runs
      • Single-Core scores: 1023, 1027, 1109, 1155
      • Multi-Core scores: 6536, 6482, 6500, 6467
    • After rebooting, the cores were properly detected
      • Single-Core scores: 2541, 2540, 2527
      • Multi-Cores scores: 7789, 7890, 7846
    • For reference, the Core i3-10110U
      • Single-Core scores: 1151, 1093, 1201
      • Multi-Core scores: 2011, 2049, 2071


Updates

  • 2026-04-15
    • PS4 Dualshock will not pair correctly
      • It just turns solid white and then will turn off after ~10s
      • Connecting via USB also does not work (Volume controls will pop-up, but not recognize inputs)
    • Occasionally, after resuming from sleep Linux will hang
  • 2026-08-16
    • Touchpad occasionally reacts slowly when clicked and moving the mouse like scrubbing through a movie. Lifting my fingers and restarting the click and drag normally resolves it.
    • Linux apps stopped having focus follow them. Eg. Launch xtigervnc by clicking on the icon in my shelf and the focus will still be on the previous window

Appendix

Sources