Linux

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

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

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

Cross-platform botnet targets SSH-enabled devices

Published: December 12, 2022 Reading time: 1 min

Microsoft researchers found a cross-platform botnet that originates from malicious software downloads on Windows devices & succeeds in propagating to a variety of Linux-based devices by enumerating default credentials on internet-exposed SSH-enabled devices. Microsoft researchers observed that the initial infection points related to the botnet were devices infected through the installation of malicious cracking tools that purport to acquire illegal Windows licenses. The cracking tools contain additional code that downloads and launches a fake version of svchost.exe through a PowerShell command. In some cases, the downloaded file is named svchosts.exe. ...

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