
My Development Workspace: Arch Linux, Hyprland, and a Tailored Neovim Stack
A breakdown of my daily driver workspace — running Omarchy Linux on Hyprland, polyglot version management with mise, and an optimized LazyVim setup for React, TypeScript, Tailwind, and PHP.
A fast, distraction-free environment is the foundation of high-leverage engineering. Over the years, my setup has converged on a simple principle: zero cognitive friction, keyboard-driven navigation, and sub-second feedback loops.
Here is an architectural tour of my daily driver workspace — from the operating system and tiling window manager to my tailored Neovim configuration.
1. The Foundation: Omarchy Linux & Hyprland
I run Omarchy Linux, a streamlined Arch Linux-based distribution that provides rolling-release packages with zero unnecessary background services.
Why Hyprland?
For the desktop session, I rely on Hyprland, a dynamic tiling Wayland compositor.
- Fluid Workspaces: Instant switching between workspaces without animation stutter.
- Tiling Efficiency: Code on the left, browser and terminal splits on the right, arranged automatically without manual window dragging.
- Clean Aesthetic: Native Wayland tearing support for low-latency input, subtle blur/borders, and minimal visual noise.
Everything runs on Wayland with native clipboard integration via wl-clipboard and OSC 52 fallbacks for remote sessions.
2. Polyglot Runtime Management with mise
Instead of managing separate version tools like nvm, pyenv, gvm, or sdkman, I manage all developer runtimes using mise.
With mise, every project defines its exact runtimes in a clean .mise.toml or mise.toml:
- Node.js: LTS and current versions for web and tooling.
- Go: Fast CLI scripting and backend testing tools.
- Java: Temurin JDK for enterprise test suites and automation.
- Python & uv: Lightning-fast package management and scripting.
mise executes with virtually zero shell startup latency compared to legacy shims.
3. The Core Editor: Neovim Built on LazyVim
My primary editor is Neovim (v0.12+), configured through LazyVim and tracked in my public repository: halowahyudi/nvim-config.
Interface & Philosophy
- Colorscheme: Minimalist themes with transparent background integration that blend directly into the terminal aesthetic.
- Docked File Explorer: Neo-tree docked cleanly on the right side rather than the left, preserving standard left-to-right eye focus on code buffers.
- Floating Terminal: Integrated with
nvzone/floatermvia<C-p>for instant command execution without disrupting window splits. - Clean UI: Bufferline tab bar disabled in favor of buffer pickers and quick fuzzy jumping.
4. Specialized Language Tooling
My daily engineering stack spans full-stack web applications, APIs, and security tooling. The Neovim configuration is tuned for four core domains:
Tailwind CSS IntelliSense & Visual Feedback
- LSP:
tailwindcss-language-servervia Mason for auto-completion and linting. - Live Color Highlights: Powered by
mini.hipatterns, rendering real-time background color swatches on Tailwind color classes (e.g.,bg-blue-500,text-emerald-400). - Modern React Class Matching: Configured with custom regex patterns for utility functions like
cn(),cva(), andcx()commonly used in modern component systems (such as shadcn/ui). - Template Support: Seamlessly enabled across React (
.jsx,.tsx), HTML, and PHP / Blade templates.
ReactJS & TypeScript
- TypeScript LSP: High-performance type inference and refactoring via
vtsls. - Auto Closing & Renaming Tags:
nvim-ts-autotagautomatically pairs and updates HTML/JSX tag closures in real time. - Emmet Expansion:
emmet-language-serverfor expanding complex tag hierarchies in seconds. - Auto-Formatting & Linting: Format-on-save powered by
conform.nvimwith Prettier, paired withvscode-eslint-language-server.
PHP Intelligence
- Intelephense LSP: Fast indexing, parameter hints, symbol lookups, and jump-to-definition.
- Syntax Parsing: Treesitter parsers for PHP and HTML AST highlighting.
- Code Standards: Automatic formatting and diagnostics via
php-cs-fixerandphpcs.
5. Reproducibility & Open Source
All configuration files are version-controlled and public:
- Neovim Config: github.com/halowahyudi/nvim-config
To replicate the editor setup anywhere:
# Clone config
git clone https://github.com/halowahyudi/nvim-config.git ~/.config/nvim
# Launch Neovim (plugins and LSPs sync automatically)
nvim
Keeping the workspace lightweight and modular keeps compile times low, memory footprints negligible, and focus where it matters: building and securing software.