Posts

Showing posts with the label Linux

From Zero to Killer Neovim on Fedora 42 (Rust-Edition)

Image
 If you want a vanilla-leaning Neovim that feels stock but has full language features, debugging, tests, Git, fuzzy search, completions, keybinding help, AI, statusline, spell-check, and developer fonts —this is it. We’ll use native LSP , Treesitter , lazy.nvim for plugin management, and a short, readable config. Rust is first-class; Python, TypeScript/CDK, and Bash get the same baseline.   1) System prerequisites (Fedora 42) # Core editor + search tools + build deps sudo dnf install -y neovim git ripgrep fd-find curl wget unzip cmake gcc-c++ make python3 python3-pip nodejs npm # Rust toolchain via rustup (recommended) sudo dnf install -y rustup rustup toolchain install stable rustup default stable rustup component add rustfmt clippy # rust-analyzer (prefer rustup component if available; else use Fedora package) rustup component add rust-analyzer || sudo dnf install -y rust-analyzer # Optional: shells/linters/formatters used later sudo dnf install -y shellcheck shfmt ...

Understanding systemd: The Beating Heart of Modern Linux Systems

Image
  If you’re running Fedora — especially its latest stable release — you already have one of the most modern, cutting-edge Linux environments available. And at the center of it all is systemd , the powerful, controversial, and indispensable init system that orchestrates everything from the moment your machine boots to the time you shut it down. This post dives deep into what systemd is, why it matters, how it compares to its predecessors, and—most importantly—how you as a Fedora user can actually use it to control, troubleshoot, and optimize your system. We won’t be creating new services here; instead, we’ll focus on the user side of systemd — the practical commands, structures, and mental models that every Linux power user should master. 1. What Is systemd, and Why Does It Exist? At its core, systemd is the init system — the first userspace process (PID 1) that the Linux kernel starts after boot. Its job is to initialize and manage everything that follows: mounting filesys...

The Hidden Tradeoffs of Staying on the Cutting Edge in Linux

  For years, I lived a dual Linux life: Fedora at home, Ubuntu at work. Fedora’s fast pace, latest kernel, fresh software, and modern tooling made it feel sleek and empowering. Ubuntu, meanwhile, was more utilitarian—a steady workhorse maintained by company IT, with long-term support (LTS) releases and fewer updates overall. But over time, I began to wonder: was Fedora's bleeding-edge approach really giving me more power, or was it just creating more chores? After voicing these thoughts in the Fedora and Ubuntu subreddits and sifting through hundreds of thoughtful replies, I uncovered some critical insights about what it means to run a cutting-edge Linux distro day to day. This post isn't about Fedora vs Ubuntu, or even about which distro is better. It's about the often invisible tradeoffs of living on the edge. Update Frequency: Freedom vs. Fatigue Fedora users proudly point to its freshness: new kernels arrive within weeks, and updates to GNOME, Mesa, GCC, and other ...

Why Manjaro Linux is Loved and Hated: A Personal Reflection

I remember the first time I saw Manjaro Linux. It was sleek, polished, and had an aesthetic that immediately caught my eye. The default themes, the carefully crafted UI elements, and the overall experience felt far more refined than most Linux distributions. It felt like someone had taken the raw power of Arch Linux and actually made it beautiful. That alone made me curious enough to give it a shot. And once I did, I was hooked. For more than two years, Manjaro was my daily driver. It had everything I needed—a rolling release model that meant I always had access to the latest software, a robust set of tools that simplified package management, and enough automation to keep things running smoothly without the frequent tinkering that pure Arch required. Manjaro’s team had done a fantastic job of making Arch’s power more accessible to users like me, who wanted the flexibility of Arch without the painstaking manual setup. It felt like a perfect middle ground. The Features That Made Me St...

Ubuntu vs. Pop!_OS: Choosing the Best Linux Distro for Power Users and Developers

 As a software developer with more than 20 years of experience, I know how frustrating it can be when your operating system gets in the way of productivity. I've used Ubuntu at work for years, and while it's a reliable choice, there are plenty of things about it that just don’t sit right with me. So, when looking at alternatives, Pop!_OS kept coming up as a strong contender. Both distributions share a lot of similarities, but their differences can have a big impact on developer efficiency. Let's break down what really matters when choosing between Ubuntu and Pop!_OS. Ubuntu is the household name of Linux distributions. It’s the go-to for enterprises, servers, and cloud-based environments. Installing it is straightforward, and the LTS releases provide long-term stability that many developers rely on. However, Snap packages are everywhere, and their sluggish performance can be frustrating. Right after installation, I find myself removing Snap completely and setting up Flatpa...

Tmux Commands & Key Bindings: A Quick Guide

  Tmux is an incredibly powerful terminal multiplexer, but if you don’t use it often, remembering all the key bindings and commands can be challenging. This guide provides a quick but comprehensive refresher on some of the most useful, yet often overlooked, commands to improve your efficiency when working with Tmux. Basic Must-Know Commands Before diving into lesser-known tricks, here are some essential tmux commands that everyone should know: Start a new session: tmux Detach from session: Ctrl-b d List all sessions: tmux ls Attach to a session: tmux attach -t <session_name> Kill a session: tmux kill-session -t <session_name> Less-Known but Incredibly Useful Tmux Commands 1. Quickly Rename a Session Instead of struggling to remember which session is which: tmux rename-session -t old_name new_name Or using a shortcut: Ctrl-b $ → Prompts to rename the session. 2. Copy & Paste in Tmux Without a Mouse Enter Copy Mode: Ctrl-b [ Start selection: Spa...

Screen vs. Tmux: Which One Should You Use for Remote SSH Sessions?

When working with remote Linux hosts, maintaining persistent sessions, running commands in parallel, and protecting workflows from network interruptions are essential skills. Two of the most popular tools for handling these challenges are GNU Screen and Tmux . While both provide similar functionality, Tmux is the better option in 2024 , and here’s why. What Are Screen and Tmux? GNU Screen Screen is a terminal multiplexer that allows users to create multiple shell sessions, detach them, and reattach later. It has been around since the 1980s and is a lightweight way to keep terminal sessions persistent. Tmux Tmux, or Terminal Multiplexer, is a more modern and feature-rich alternative to Screen. It allows users to create, manage, and organize multiple terminal sessions with enhanced flexibility and usability. Feature Comparison: Screen vs. Tmux Feature Screen Tmux Persistent Sessions ✅ ✅ Window/Pane Management ❌ ✅ Split Terminal Views ❌ ✅ Configuratio...

Efficiently Managing Multiple Linux Hosts: SSH, File Transfers, and Automation

Managing operations across multiple Linux hosts, especially when some are inaccessible from the public internet, can be challenging. This requires efficient SSH workflows, file transfers, and automation techniques to simplify the work while ensuring security and reliability. Whether you're working with remote servers, embedded devices, or air-gapped systems, this guide will help streamline your workflow. 1. Establishing Efficient SSH Workflows Using SSH Agent for Seamless Authentication Typing passwords or passphrases repeatedly can slow down operations. Use the SSH agent to cache credentials securely: eval $(ssh-agent) ssh-add ~/.ssh/id_rsa # Add your private key This allows seamless authentication across multiple hops. SSH Config for Quick Access Instead of remembering long SSH commands, configure ~/.ssh/config : Host server1 HostName 192.168.1.100 User myuser IdentityFile ~/.ssh/id_rsa ProxyJump jumphost Now, you can simply connect using: ssh server...

Best Computer Hardware Companies Selling Systems with Linux Support

  1. System76 Overview: System76 is one of the most prominent Linux-focused computer manufacturers. They design and sell laptops, desktops, and servers specifically optimized for Linux. Quality: Known for premium build quality and sleek designs. Price Range: Mid to high-end. Laptops start around $1,000, while desktops and servers can go much higher depending on configurations. Customer Feedback: System76 receives high praise for customer support, pre-installed Linux distributions, and community engagement. Supported Distributions: Ships with their custom Pop!_OS (based on Ubuntu) or Ubuntu itself. Highlights and Caveats: System76's unique contribution to open-source hardware design stands out, particularly with their Thelio desktops. These systems feature innovative airflow management and the Thelio Io open hardware SATA controller, emphasizing their commitment to hardware transparency. However, their custom drivers and firmware updates are tailored specifically for Pop!_OS,...