Skip to content

fsiraj/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 

Repository files navigation

✨ Minimal, Fast, Beautiful

A carefully crafted development environment that just works (most of the time)

🐙 GitHub - Clean theme inspired by GitHub's interface Screenshot 2025-10-04 at 10 39 22 PM
🌙 Tokyo Night - Dark theme inspired by Tokyo's neon lights Screenshot 2025-10-04 at 10 37 59 PM
☕ Catppuccin Mocha - Soothing pastel theme Screenshot 2025-10-04 at 10 37 23 PM
🌹 Rosé Pine - All natural pine, faux fur and a bit of soho vibes Screenshot 2025-10-04 at 10 38 39 PM
❄️ Nord - Arctic, north-bluish color palette Screenshot 2025-10-04 at 10 39 49 PM
🌲 Everforest - Forest-inspired green theme Screenshot 2025-10-04 at 10 40 22 PM

🚀 Quick Start

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 example setup_language_tools installs tooling for Rust and Python. If you don't care about these, you should comment this function call out.

Similarly, install_packages will install a lot of packages, many of which aren't required, and can be commented out. For example, it installs node which is needed by many Neovim plugins and LSPs, but without it you still get a very usable IDE experience. As another example, it installs ghostty but 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, run mv ~/.config/nvim ~/.config/nvim.bak.

🛠️ What's Included

Full IDE experience using popular well-maintained tools, packages, and plugins

💻 Terminal & Shell

  • 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

Development

  • Editor: Neovim - The hyperextensible Vim-based text editor
    • Plugin Manager: Lazy - Modern plugin manager
  • Multiplexing: tmux - Terminal workspace management
  • Plugin Manager: tpm - Tmux plugin manager

🔧 Languages

  • Python: uv - Ultra-fast Python package installer and resolver
  • Rust: rustup - The Rust toolchain installer
  • JavaScript: nodejs - An unfortunate dependency

🎨 Theming

  • Font: JetBrainsMono Nerd Font - Perfect for coding
  • Default Theme: GitHub - Clean theme inspired by GitHub's interface

🌈 Theme System

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 theme or Neovim colorscheme picker <space>sc and watch as the entire development environment adapts seamlessly.

Want to add more themes?

Add it to style.lua using any existing theme as a template. Add an entry to M.colorschemes, M.colorscheme_plugins, and get_palette.


Happy coding! 🎉

About

✨ Minimal, Fast, Beautiful

Resources

Stars

Watchers

Forks

Contributors