Skip to content

jmarcelomb/.dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘‹πŸ» Welcome to my .dotfiles rabbit hole!

This is where I'm always tweaking and changing something to have my config feeling like home.

pre-commit.ci status


πŸš€ Quick Setup

Click to expand setup instructions

Clone the repository and initialize submodules:

git clone https://github.com/jmarcelomb/.dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./setup.sh

For macOS systems:

nix run nix-darwin/master#darwin-rebuild -- switch --flake .#mac-mini

For NixOS systems:

sudo nixos-rebuild switch --flake .#konoha

For server configurations (chakra):

sudo nixos-rebuild switch --flake .#chakra

⚑ CLI Tools

Core Terminal Tools

  • 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 cat clone with syntax highlighting.
  • eza - A modern replacement for ls.
  • zoxide - A smarter cd command.
  • 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.

File Management & Editors

  • 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.

Terminal Emulators

  • 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).

macOS Window Management

  • aerospace - i3-like tiling window manager for macOS.
  • sketchybar - A highly customizable macOS status bar replacement.

AI & Development Tools

  • crush - AI-powered CLI tool with GitHub Copilot integration.
  • uv - An extremely fast Python package installer and resolver.

Handy Scripts

  • 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.

Tools I'm keeping an eye on πŸ‘€

  • 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.

🎨 Configuration Highlights

Nix & Home Manager

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

Terminal Experience

  • Fish Shell with enhanced completions, AI integration via ask function, 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)

macOS Integration

  • 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

πŸ’» Shell Setup

I currently use fish and Bash/Zsh with the Starship prompt.

How to set Fish as the Default Shell

echo $(which fish) | sudo tee -a /etc/shells
chsh -s $(which fish)

Install Starship Prompt

Install Starship for a modern, customizable shell prompt:

curl -sS https://starship.rs/install.sh | sh

How to set Zsh as the Default Shell

chsh -s $(which zsh)

πŸ¦€ Rust Setup

Install Rust

Install Rust using Rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

🐍 Python Setup

Install uv

Use uv to manage Python virtual environments and projects:

curl -LsSf https://astral.sh/uv/install.sh | sh

Or install via Cargo:

cargo install --git https://github.com/astral-sh/uv uv

πŸ¦€ Alternative: Manual Rust Tools Installation

If you prefer to install Rust tools manually instead of using Nix/Home Manager:

Installing Rust Tools via Cargo

cargo install bat \
              eza \
              zoxide \
              fd-find \
              ripgrep \
              yazi-build \
              bottom \
              git-delta \
              typos-cli \
              du-dust \
              dysk

Rust Toolchain Management

cargo-update

cargo-update helps keep installed Rust tools up to date:

cargo install cargo-update
cargo install-update -a  # Update all installed programs

cargo-binstall

cargo-binstall installs prebuilt binaries instead of compiling from source:

cargo install cargo-binstall
cargo binstall <package-name>  # Much faster installation

πŸ“ Notes

  • This repository is tailored to my personal development workflow but can be adapted for others.
  • Contributions and suggestions are always welcome!

🌟 Feedback

If you have ideas for improvement, feel free to open an issue or a pull request on GitHub.

version: v1.0.0

About

.dotfiles repository for personal use.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •