Ubuntu

A Maintainable Command-Line Workspace on Linux

Published: August 3, 2026 Reading time: 10 min

Most terminal setups begin as a few helpful aliases and end up scattered across a shell profile, a terminal-emulator menu, a font download, and a handful of plugins cloned years ago. That works until you set up a new machine, connect over SSH, or need to find out why a terminal takes three seconds to open. The answer is not a single perfect terminal or shell. A maintainable command-line workspace is a set of small, replaceable layers with clear ownership. You should be able to change your shell without losing your SSH configuration, replace a terminal emulator without rewriting aliases, and bootstrap a new machine without copying your entire home directory. ...

Continue Reading

Ubuntu, Manjaro, and the Linux Desktop I Thought I'd Left Behind

Published: June 3, 2026 Reading time: 12 min

I have not switched back to Kubuntu yet. I am still daily-driving Manjaro KDE on my ASUS Vivobook Pro 15, with Plasma 6.6.5, Wayland, btrfs, and a hybrid Intel Arc + NVIDIA RTX 3050 setup. But I have been running Kubuntu 26.04 LTS in VirtualBox, comparing the two side by side, and asking a question I did not expect to ask again after several happy years on Arch-based rolling release: ...

Continue Reading

Advanced Networking in Linux: VLANs, Bonding, and Bridging

Published: June 21, 2024 Reading time: 13 min

Linux networking becomes much easier to reason about when you treat interfaces as layers. A physical NIC can become part of a bond. A VLAN interface can sit on top of that bond. A bridge can sit on top of the VLAN. The host’s IP address belongs on whichever layer represents the host on that network. This post focuses on three building blocks that often appear together on servers, virtualization hosts, routers, and lab machines: ...

Continue Reading

How Ubuntu Ships Kernels: GA, HWE, Mainline, and DKMS

Published: December 30, 2022 Reading time: 10 min

In 2022 I published this as a Mainline one-liner: add a PPA, mainline --install-latest, reboot. The commands still work. They were never the interesting part. Ubuntu does not have one kernel you “upgrade.” It has a shipping model. GA stays on the version that shipped on day one. HWE rolls forward from interim releases. OEM is a vendor-laptop cadence that is supposed to fold back. Mainline is a set of unofficial builds from kernel.ubuntu.com that Canonical does not support. DKMS is the reason jumping tracks is not free on a laptop. ...

Continue Reading

How Ubuntu Ships Releases: LTS, Interim, and do-release-upgrade

Published: December 30, 2022 Reading time: 11 min

In 2022 I published this as a sed on /etc/apt/sources.list: replace jammy with kinetic, then apt full-upgrade. I have used that pattern on servers. It can work. It is not how Ubuntu ships releases, and the example was the wrong jump — Kinetic was 22.10, an interim, nine months of support, off the LTS track. Ubuntu does not have one “upgrade” command. It has three different operations that people collapse into that word: package updates inside a release, point releases of the same LTS, and a release upgrade to a new codename. do-release-upgrade is the supported path for the third. Rewriting sources by hand is still how I change series. It is a bad default if apt dying halfway through would leave you without a next step. ...

Continue Reading

How To Use Cloudflare WARP On Linux

Published: November 27, 2022 Reading time: 2 min

What is WARP? The Cloudflare WARP client allows individuals and organizations to have a faster, more secure, and more private experience online. The WARP client sits between your device and the Internet, and has several connection modes to better suit different needs. Install Installing Warp Client (aka Cloudflare Zero Trust Client) is so easy, specially if your OS uses AUR. AUR Use your AUR helper to find and install cloudflare-warp-bin, for example I use yay here: ...

Continue Reading

Install and Configure Oh My Zsh and use it in VSCode or Cursor

Published: June 5, 2019 Reading time: 6 min

TL;DR Install zsh, then run the Oh My Zsh installer on Ubuntu, Manjaro, or Arch. Enable the vscode plugin, add Powerlevel10k, and install a Meslo Nerd Font. Periodically git pull custom themes/plugins under $ZSH_CUSTOM — Oh My Zsh’s auto-update does not cover them. Point the VS Code integrated terminal or Cursor IDE terminal at /usr/bin/zsh in settings.json. On Manjaro, also see How to Install Cursor IDE on Manjaro Linux. If you use the simple Bash Terminal in your OS, you may want to give Zsh a try to use a faster and safer terminal with many more features. The simple Bash that exist in the common dist of Linuxes are not changed over years and just received some security fixes, but the community behind Zsh are improving it everyday and bring new useful plugins. ...

Continue Reading

Set a Permanent Custom Resolution on Ubuntu and KDE with xrandr and Xsetup

Published: May 24, 2018 Reading time: 4 min

TL;DR Generate a modeline with cvt, add it with xrandr --newmode / --addmode, then enable it on your output. Session-only changes vanish on reboot and never fix the login screen. On KDE/Kubuntu with SDDM, put the same commands in Xsetup so they run before the greeter. After I switched from GNOME/Unity to KDE, SDDM would not pick up my ultrawide panel. It stuck at Full HD instead of 2560×1080. I had hit the same class of problem earlier on Ubuntu with an older monitor whose native mode never showed up in the display settings. ...

Continue Reading

Google Chrome in Ubuntu keeps detecting network change

Published: July 6, 2017 Reading time: 1 min

Recently I had problem with my Ubuntu, Whenever I tried to open a website my Chromium told me that a Network Change has been detected and after 1-2 reload that sites would load and sometimes failed to load fully. After looking up for that problem, I found out many other people had same problem and it has something to do with “avahi-daemon”. Solution According to the links I found in Ubuntu forums, this problem comes from IPv6 in Ubuntu and disabling that service will fix it, I tried it and it worked: ...

Continue Reading

Test Gnome on Ubuntu and Rescue Back

Published: February 9, 2017 Reading time: 2 min

How it started A few days ago I just decided to give my Ubuntu a new look and experience. I thought KDE is not in a good situation and maybe Gnome 3 is a better option than Unity. The easiest option to try Gnome on Ubuntu (Without a clean install of OS) is to install it as a package: 1 sudo apt-get install ubuntu-gnome-desktop During the install process it asks for Display Manager, you have options to choose, gdm and lightdm, since I want to try Gnome, I select gdm: ...

Continue Reading