Skip to content

jmarcelomb/.dotfiles

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

Clone the repository and initialize submodules:

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

⚡ CLI Tools

Tools I currently use:

  • fzf - A general-purpose command-line fuzzy finder.
  • zellij - A terminal workspace with batteries included.
  • 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.
  • yazi - A terminal file manager written in Rust.
  • 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.
  • lazygit - A simple terminal UI for Git.

Handy scripts:

  • copy - Puts stdin in the OSC52 register.
  • paste - Opens a text input for pasting.
  • lpaste - Outputs the last text input from paste.
  • gen_commit_msg - Uses local Ollama or generate to standard output commit messages from git diff.

Tools I'm keeping an eye on 👀:

It is possible to install all current Rust tools via Cargo:

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

Alacritty

cargo install alacritty

cargo-update

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

Install it via Cargo:

cargo install cargo-update

Update all installed Rust programs:

cargo install-update -a

cargo-binstall

If you prefer not to compile Rust programs from source, cargo-binstall installs prebuilt binaries.

Example:

cargo binstall zellij

Install it via Cargo:

cargo install cargo-binstall

I'm still testing it out, but gitui could be a potential lazygit replacement, making it possible to install almost everything using Cargo:

cargo install gitui

💻 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 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

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