This is where I'm always tweaking and changing something to have my config feeling like home.
Click to expand setup instructions
Clone the repository and initialize submodules:
git clone https://github.com/jmarcelomb/.dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./setup.shFor macOS systems:
nix run nix-darwin/master#darwin-rebuild -- switch --flake .#mac-miniFor NixOS systems:
sudo nixos-rebuild switch --flake .#konohaFor server configurations (chakra):
sudo nixos-rebuild switch --flake .#chakra- fish - Smart and user-friendly command line shell with syntax highlighting and autocompletions.
- starship - Fast, customizable prompt for any shell with custom duck icon for Yazi subshells.
- fzf - A general-purpose command-line fuzzy finder.
- tmux - Terminal multiplexer with comprehensive configuration, TPM plugin management, and AI integration.
- bat - A
catclone with syntax highlighting. - eza - A modern replacement for
ls. - zoxide - A smarter
cdcommand. - direnv - Loads and unload environment variables depending on the current directory.
- fd - A fast, user-friendly alternative to
find. - ripgrep - A fast regex-based search tool.
- bottom - A cross-platform system monitor.
- git-delta - A syntax-highlighting pager for Git.
- typos-cli - A source code spell checker.
- du-dust - A more intuitive version of
du. - dysk - A linux utility to get information on filesystems, like df but better.
- yazi - A terminal file manager written in Rust with extensive plugin support.
- neovim - Hyperextensible Vim-based text editor using LazyVim as base with custom plugins (see configuration).
- lazygit - A simple terminal UI for Git.
- ghostty - Fast, feature-rich, and cross-platform terminal emulator (currently using).
- kitty - Cross-platform, fast, feature-rich, GPU-based terminal emulator (previously used).
- alacritty - GPU-accelerated terminal emulator (previously used).
- aerospace - i3-like tiling window manager for macOS.
- sketchybar - A highly customizable macOS status bar replacement.
- crush - AI-powered CLI tool with GitHub Copilot integration.
- uv - An extremely fast Python package installer and resolver.
- ask - AI-powered question answering using llm under the hood.
- ask.fish - Fish shell function for interactive AI conversations with clipboard integration.
- gen_commit_msg - Generates intelligent conventional commit messages using the ask script.
- copy - Puts stdin in the OSC52 register.
- paste - Opens a text input for pasting.
- lpaste - Outputs the last text input from
paste. - git-clone-bare-for-worktrees - Clone repositories using bare repos for Git worktrees.
- television - A blazingly fast general purpose fuzzy finder TUI.
- zellij - A terminal workspace with batteries included (previously used, now using tmux).
- gitui - Blazing fast terminal-ui for Git (complementary to lazygit).
- helix - A modal text editor with built-in LSP support.
- skim - Fuzzy finder in Rust.
- tabiew - A lightweight TUI application to view and query CSV files.
- gpg-tui - Manage your GnuPG keys with ease.
This setup uses Nix with Home Manager for declarative system and user environment management:
- Cross-platform: Supports macOS (nix-darwin), NixOS, and server configurations
- Modular structure: Host-specific configurations with shared common packages
- Automated updates: Auto-upgrade modules for server environments
- Reproducible: Consistent environment across all machines
- Fish Shell with enhanced completions, AI integration via
askfunction, and clipboard utilities - Starship prompt with custom duck icon for Yazi subshells
- Tmux as primary multiplexer with Catppuccin theme, TPM plugin management, AI selection support, and sesh session management
- Yazi file manager with comprehensive plugin ecosystem (git, chmod, starship, lazygit, smart-paste, toggle-pane, fr search)
- AeroSpace tiling window manager with workspace automation
- SketchyBar status bar with workspace indicators and system info
- Homebrew cask management for GUI applications
- System defaults configuration for optimal developer experience
I currently use fish and Bash/Zsh with the Starship prompt.
echo $(which fish) | sudo tee -a /etc/shells
chsh -s $(which fish)Install Starship for a modern, customizable shell prompt:
curl -sS https://starship.rs/install.sh | shchsh -s $(which zsh)Install Rust using Rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shUse uv to manage Python virtual environments and projects:
curl -LsSf https://astral.sh/uv/install.sh | shOr install via Cargo:
cargo install --git https://github.com/astral-sh/uv uvIf you prefer to install Rust tools manually instead of using Nix/Home Manager:
cargo install bat \
eza \
zoxide \
fd-find \
ripgrep \
yazi-build \
bottom \
git-delta \
typos-cli \
du-dust \
dyskcargo-update helps keep installed Rust tools up to date:
cargo install cargo-update
cargo install-update -a # Update all installed programscargo-binstall installs prebuilt binaries instead of compiling from source:
cargo install cargo-binstall
cargo binstall <package-name> # Much faster installation- This repository is tailored to my personal development workflow but can be adapted for others.
- Contributions and suggestions are always welcome!
If you have ideas for improvement, feel free to open an issue or a pull request on GitHub.
version: v1.0.0