Linux

Articles about Linux on omid.dev — guides, topics, and notes from the field.

Linux VXLAN and Why CNI Exists

Published: September 10, 2026 Reading time: 8 min

Part 3 kept everything on one machine: namespaces as workloads, veth as cables, bridge or macvlan or ipvlan as the attachment. That is enough for a single Docker host. Two hosts do not share a broadcast domain just because both run Linux. Something has to carry Ethernet (or IP) across the real network between them. VXLAN is one common way to do that. CNI is something else entirely: a contract so Kubernetes (and other runtimes) can plug a pod into whatever network architecture you chose. ...

Continue Reading

Linux Network Namespaces and Virtual Links

Published: September 4, 2026 Reading time: 9 min

Part 1 built Layer 2 stacks on a host. Part 2 moved packets between IP networks. Both assumed one network stack: one set of interfaces, routes, and firewall rules. This post isolates whole stacks on the same machine. A network namespace is a private view of networking. A veth pair is a cable between views. A bridge, macvlan, or ipvlan is how those cables join a shared domain or a parent NIC. ...

Continue Reading

Linux as a Router: Forwarding, Policy Routing, and nftables

Published: September 1, 2026 Reading time: 9 min

In VLANs, Bonding, and Bridging, the host stayed inside one or more Layer 2 domains: bonds for uplinks, VLANs for separation, bridges for VMs. That stack answers “who shares this Ethernet segment?” This post answers a different question: how does a Linux box move packets between IP networks? That is routing — forwarding, policy routing when you have more than one path, and nftables rules that decide what is allowed to cross. ...

Continue Reading

The HDMI Port Was Keeping NVIDIA Awake

Published: August 23, 2026 Reading time: 12 min

Command & Conquer Generals: Zero Hour is not a demanding game in 2026. On the internal panel of this ASUS Vivobook Pro 15, it stays quiet. Plug the same laptop into an old 1080p HDMI monitor, launch the same Wine/Lutris game with no prime-run, and the chassis warms up. The fans come on. Unplug the monitor, and it cools down again. That is a bad mental model if you assume “old game = Intel GPU = cool laptop.” On a hybrid machine, who renders the frames and who owns the physical connector are two different questions. My native HDMI port is wired to NVIDIA. As long as that monitor is connected, the RTX 3050 has to stay in the display path — even when Mesa Intel Arc is doing all the actual drawing. ...

Continue Reading

The AUR Is Frozen: Inside Arch's Third Supply-Chain Attack Wave

Published: August 10, 2026 Reading time: 9 min

If you fired up yay -Syu over the past week and noticed your AUR packages silently refusing to update, you’re not imagining it — and it isn’t a bug in your helper. As of August 1, 2026, Arch Linux disabled all pushes to the Arch User Repository, meaning maintainers could no longer publish updates, new versions, or fixes to the community package collection that most of us rely on daily. The AUR stayed up and readable, but writes were locked down while the project fought off its third supply-chain attack since June. ...

Continue Reading

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

Local AI on Manjaro: Ollama, Aider, and Cline Without Another Subscription

Published: June 30, 2026 Reading time: 16 min

In How to Stretch Cursor Pro Further, I argued for treating Cursor as the execution layer and routing planning, research, and cheap thinking elsewhere. Ollama got a few paragraphs — enough to explain why local models belong in the pipeline, not enough to actually set them up. This post is the missing piece: install Ollama on Manjaro, pick models for your hardware, and connect local agents that can read your repo, edit files, and run commands without sending code to a cloud API. ...

Continue Reading

How to Stretch Cursor Pro Further: A Split AI Workflow

Published: June 29, 2026 Reading time: 23 min

I use Cursor every day across a lot of codebases — not just one repo. At work that is mostly a large Angular/Nx monorepo plus many smaller web projects. At home it is broader still: playground companion repos tied to omid.dev articles, browser demos on playground.omid.dev, Rust/WASM experiments, Linux tooling, and whatever the next post needs. Agent mode, multi-file refactors, and inline edits are genuinely faster than doing the same work by hand on any of them. ...

Continue Reading

How I Learned My Linux Machine Has Been Compressing Memory for Years Without Me Knowing

Published: June 16, 2026 Reading time: 12 min

I’ve been using Linux for more than 15 years. I’ve administered servers, tuned kernels, experimented with filesystems, and read countless articles about swap, virtual memory, caching, and performance. I started with Ubuntu 4.x, spent years on Arch-based distributions, and today most of my work happens on Manjaro and Kubuntu. So I was surprised when I stumbled upon a feature that had apparently been helping my system for years without me realizing it: zswap. ...

Continue Reading

Building a Tiny Linux App to Explain Desktop Stutter

Published: June 4, 2026 Reading time: 13 min

I wanted an excuse to build a small real Linux app. Not a shell script. Not a giant desktop application. Not a kernel module. Just a focused program that talks to Linux through the interfaces the system already exposes, gives that data a shape, and presents it as something a normal desktop user can run. Desktop stutter turned out to be a good excuse. My own machine is not slow: modern CPU, fast NVMe storage, plenty of RAM, KDE Plasma on Wayland, and a current kernel. Most of the time it feels excellent. Then, once in a while, the pointer hesitates, a window animation misses a beat, audio gets a tiny crackle, or the browser pauses while a package update or build is running. ...

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

How to Install Cursor IDE on Manjaro Linux

Published: May 29, 2026 Reading time: 3 min

Cursor is distributed for Linux as an AppImage, which works well on Manjaro because you do not need to wait for a package in the official repositories or the AUR. Before writing this post, I tried installing Cursor from the AUR, but it was not stable enough for me. I also did not love the extra Electron dependency, although that was not the main reason I moved away from that method. At the time of writing, there is no official Snap release, no official Manjaro or Arch package for Cursor either. ...

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

Advanced Shell Scripting Techniques: Automating Complex Tasks with Bash

Published: June 19, 2024 Reading time: 6 min

Bash scripting, a cornerstone of Unix and Linux system administration, offers powerful tools to automate repetitive tasks, streamline workflows, and handle complex operations. For those already comfortable with basic scripting, diving into advanced techniques can unlock new levels of efficiency and capability. This post will explore advanced shell scripting techniques in Bash, focusing on script optimization, robust error handling, and automating complex system administration tasks. Script Optimization Optimization is crucial for ensuring that your scripts run efficiently, especially when dealing with large datasets or intensive tasks. Here are some key techniques to optimize your Bash scripts. ...

Continue Reading

Linux Malware targets WordPress and common Plugins

Published: January 15, 2023 Reading time: 2 min

Doctor Web has discovered a malicious Linux program that hacks websites based on a WordPress CMS. It exploits 30 vulnerabilities in a number of plugins and themes for this platform. If sites use outdated versions of such add-ons, lacking crucial fixes, the targeted webpages are injected with malicious JavaScripts. As a result, when users click on any area of an attacked page, they are redirected to other sites. What they can do? Upon their command, it is able to perform the following actions: ...

Continue Reading

Search