A carefully crafted development environment that just works (most of the time)
Important
Run the command below only if you've read and fully understood the script.
bash <(curl -fsSL https://raw.githubusercontent.com/fsiraj/dotfiles/main/install.sh)Supported Systems: macOS • Ubuntu • Arch Linux
Slow (and Safe) Start
The install script detects your OS, installs a lot of things, and sets up the dotfiles. Download the script and take a look at the
main()function. The script is modularized so you can comment out any step you don't want. For examplesetup_language_toolsinstalls tooling for Rust and Python. If you don't care about these, you should comment this function call out.Similarly,
install_packageswill install a lot of packages, many of which aren't required, and can be commented out. For example, it installsnodewhich is needed by many Neovim plugins and LSPs, but without it you still get a very usable IDE experience. As another example, it installsghosttybut if you don't want to switch your terminal emulator or if you're working in a remote ssh environment, you should comment it out.You can go a step further and omit the script altogether and use it only as a reference while you manually execute the commands relevant to you. The script is not at all complicated and only exists for convenience as it's quite difficult to track all requirements and dependencies.
⚠️ The script does not backup any existing configs you may have. Please take a look at the contents of.config/in this repo to see which applications may conflict. If you have existing configs for any of those applications, back them up with a different name. For example, if you have a Neovim config already, runmv ~/.config/nvim ~/.config/nvim.bak.
Full IDE experience using popular well-maintained tools, packages, and plugins
- Terminal: Ghostty - Lightning fast GPU-accelerated terminal
- Shell: ZSH - Fast UNIX shell with modern enhancements
- Plugin Manager: zinit - Turbo-charged plugin loading
- Prompt: Oh My Posh - Beautiful, customizable prompt
- Font: JetBrainsMono Nerd Font - Perfect for coding
- Default Theme: GitHub - Clean theme inspired by GitHub's interface
Works perfectly for the 6 themes (and most of their variants) showcased above
Synchronized theming across all applications!
Switch themes instantly using the shell command
themeor Neovim colorscheme picker <space>sc and watch as the entire development environment adapts seamlessly.
Want to add more themes?
Add it to
style.luausing any existing theme as a template. Add an entry toM.colorschemes,M.colorscheme_plugins, andget_palette.
Happy coding! 🎉





