My development setup tools and dotfiles. Fast, minimal, and feature-packed, yet aesthetically pleasing environment optimized for software engineering and devops.
| Tool / Environment | Description |
|---|---|
| OS | NixOS |
| Terminal | WezTerm |
| Multiplexer | tmux |
| Text Editor | neovim |
| Shell | zsh |
| Window Manager | Hyprland |
| Display Manager | tuigreet |
To replicate my setup:
- Install NixOS: Follow the official installation guide.
- Clone this repository.
- Change
hardware-configuration.nixfile for your ownhost. - Run the
nixos-rebuild switch --flake ./command while in the cloned repository directory. - Copy your Pictures folder to your home directory.
git clone https://github.com/sa-akhavani/dotfiles.git && cd dotfiles
sudo nixos-rebuild switch --flake ./
cp -r ./Pictures ~/I was an Ubuntu user for a long time (7+ years) but eventually decided to migrate to Arch Linux. Loved Arch Linux because of the amount of control I had in it. But my os and packages broke multiple times due to updates which was really frustrating. That's why I decided to switch to NixOS and try the declarative approach.
Now that Wayland is becoming stable and lots of people are creating packages for it, Hyprland is an amazing tiling window manager for wayland. It's highly customizablity and native Wayland support significantly enhance my workflow compared to traditional X11 setups.
I chose tuigreet as my display manager, keeping everything minimal.
- ZSH with Oh My ZSH
- Wezterm: a GPU-Accelared cross-platform terminal emulator that supports font ligatures
- Tmux: Highly customizable terminal multiplexer
- My go-to editor is Neovim, a highly customizable and modern vim-based editor.
- I mainly use Neovim but I also other IDEs if I am working on a project with a huge codebase.
- Fix waybar keyboard layout change in multiple keyboards
- Fix tmux continuum plugin issues
- Update tmux status bar
- Use walker app manager instead of fuzzel
- Fix jack 3.5 output not being detected
- Modularize home.nix and move most of it to
modules/programs
I should read this: https://www.bugsnag.com/blog/tmux-and-vim/
While setting up the Spotify client for Linux, I encountered a few quirks. If you're using NetworkManager with iwd together (don't do that:D), you have to stop NetworkManager service to be able to use spotify.
Also, hyprland windows don't have a menu. bar. To toggle offline mode, you can press Ctrl-Shift-o.
I use FiraCode font mainly.
Do not install patched nerdfonts. I install FiraCode alone, then install
Symbols Nerd Font Mono separately from their releases.
check: https://github.com/ryanoasis/nerd-fonts/releases
You need to install ydotool and fusuma and configure them.
If you are using nix-rebuild switch but having issues with path not found for modules that are defined in a relative path and imported in configuration.nix or flake.nix, the issue is that those files are not "commited" or "tracked" in the git repository. Commit or add them and then run the command again!