NixOS

System Configuration and Package Management

  1. NixOS enables users to define their entire system configuration in a single file, allowing for easy management and reproducible setups across different machines.

  2. The Nix package manager supports multiple versions of packages coexisting without conflicts through isolated environments and per-user installations.

Development and Containerization

  1. NixOS supports containerization and virtualization technologies like Docker and QEMU, facilitating isolated environments for software testing and development.

Release Model and Stability

  1. NixOS follows a rolling release model while allowing users to pin specific package versions, balancing access to latest software with stability for production systems.

Target Audience and Use Cases

  1. NixOS is particularly suitable for developers and system administrators managing complex software environments, due to its focus on reproducibility and reliability.

Here is the set up:

OS: NixOS (Nix) WM: Hyprland (C++) Bar: Waybar (written in C++). I'll try out here soon hyprpanel, but it's written in TS and I guess it’s bloated because there are reports of freezing and lagging... but it sure is pretty. Launcher: Rofi-wayland (C) Terminal: foot (C). I like alacritty and have heard good things about wezterm, plus they’re written in Rust and I’m obviously a rust fanboy now… but I have no GPU on this machine so can’t even use their GPU acceleration. But I'll try out wezterm at some point. Fetch: Nitch (C). Because I like the way it looks - gonna write my own fetcher in Rust though, just for fun. Lock: Hyprlock (C++) Dock: nwg-dock-hyprland (Python) File Manager: Yazi (Rust) and Thunar (C). One is terminal, one is GUI, respectively. Shell: zsh (C) with starship (Rust). Text Editor: Base Neovim (Lua). Just base because I’m not diving into it just yet. When I do, I’ll do just as much research as I’ve done for this video - a lot. But I’ve seen things about nixCats, nvchad, nixvim… don’t know the difference but I’ll cross that bridge when I get there. IDE: VS Code & JetBrains. I'll do this setup in the next video, plus everything setup for Java dev, Rust dev, and whatever else I need to setup. I'd like to get Neovim to a spot where it can replace these, but I'll need a lot of plugins to make it as convenient as my typical IDEs, or close to it. PDF Reader: Zathura (C). Supports vim keybinds. TTY: no DM, but setup TTY to auto-start Hyprland on login. But maybe SDDM if I want to later. Scratchpad: pyprland (Python) Animated Wallpapers: swww (Rust) Browser: Firefox. I'll look into Ladybird and maybe Zen. Idk if it really matters or if I really care. Discord-Client: vesktop (JS/Electron, oof.) Clipboard Tools: cliphist for history (Go) and wl-clipboard for basic clipboard operations (C) Screenshots: grimblast (Bash)

Leave a comment

Please note, comments need to be approved before they are published.