My dev setup
Sep 12, 2026 - ⧖ 2.0 minI'm a software developer and I love Linux and the terminal. Here's how I set things up
Overview
- Homebrew to manage global applications
- Just to run common commands
- Nushell as the user shell
- Mise to manage project-specific applications and commands
- Git + LazyGit for project management
- Neovim + Lazyvim to edit text (sometimes Helix instead)
- Midnight Commander for file management
- Gum to make scripting easier
- Zellij for terminal multiplexing
Setup
To do this you need user access (not root) on any Linux system. It also works in containers. I recommend Debian Stable but this should work for any distro.
- Install requirements
curlandgit - Install Homebrew
- Create a file in your home folder called
.Brewfile - Add the following to this
.Brewfile:
brew "mise"
brew "just"
brew "nu"
brew "gum"
brew "nvim"
brew "helix"
brew "mc"
brew "lazygit"
brew "zellij"
brew "fd"
brew "ripgrep"
- Run
brew bundle --global - Update
.bashrcto supportbrewandmise
Optionally, to use nushell:
- Update
config nuto supportbrewandmise - Remember to run
nuwhen you want Nushell
How does this actually work?
Let's say I want to start a new Java project.
cd ~/Projects
mise exec maven -- mvn archetype:generate
# follow maven's instructions to make "my-java-project"
cd my-java-project
touch mise.toml
mise use java
mise use maven
Now I have the folder my-java-project, and when I enter it I automatically get Java and Maven added to my dev environment. Once I leave the folder, no more Java or Maven. This means I can work on different Java projects without juggling Java versions.
mise exec is like npx in that I can run tools without installing them. This lets me set up pretty much anything without adding it to my global dev environment. I can do the above with uv or poetry for a Python project.
What about IDE support?
If I'm using Neovim with LazyVim I just have to use it's built in tool Mason to install whatever LSP servers I want. For Java that would be jdtls. For Python that would be basedpython + ruff + ty
If I'm using Helix I can install these LSP servers through Homebrew and Helix just picks them up.
More info
Over time I will make posts going into detail on why I do things this way, and why I picked this solution over others. Until then, this is a nice start.