A Quick Explanation of My Dev Tools

January 16th, 2026 — DevTools

TLDR: I use a bare git repo to manage my dotfiles across Neovim, Tmux, and Ghostty

The configuration files my for development tools are separated into their corresponding dot folder name.

Installation

To copy my config files, I use a bare clone. This is different than standard cloning because it ensures theres no working tree in your cloned repo. Essentially, your root directory won’t be cluttered with the .git folder.

  1. Clone the repo as a “bare” repository into a hidden folder in your home directory:
git clone --bare https://github.com/juancruzfl/dotfiles.git $HOME/.dotfiles
  1. Define a temporary alias to manage the repo:
alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
  1. Checkout the files to your home directory:
config checkout

Note: If you get an error here about overwritting files, most likely about your bashrc file, backup your default config and run the command again. Ex: mv -b ~/.bashrc ~/.bashrc.backup

Neovim

The neovim folder is organized within a lua folder. Generally, this makes it much easier for me to edit and add plugins. It is possible to remove all the contents in this file and just have all files within the nvim directory but things start to get messy when you have dozens of different config files for different plugins.

Neovim - Walkthrough

The first portion of the plugin.lua file sets up lazy.nvim. My plugins are all located in that table. They include:

  • colorscheme
  • treesitter
  • portable package manager
  • lsp’s
  • file explorers (netrw is set by default but oil.nvim is included for easy setup)
  • harpoon
  • flash
  • lazygit
  • supermaven and many more..

I decided to use mason for my package manager (for now). To install lsp’s, run the :MasonInstall {lsp name} or the :Mason command to see the menu of available lsp’s. Lsp’s will automatically be configured because of the function in the mason-lsp-config.nvim table. If you aren’t able to find the appropriate lsp for your use case, you can always write you own or find it in the collections of lsp config in nvim-lspconfig.

Tmux

The tmux.conf file is the only thing I have setup for tmux. There are some configurations I plan on adding

Tmux - Walkthrough

The first portion of the file is focused on changing the default tmux key-bindings. Then, the colorscheme follows and lastly the plugins are included. The comments provide specification as to what exactly is in each section.

Ghostty

The Ghostty folder just contains some ui layout tweaks with some shortcuts. I do plan on utilizing a lot of the features that Ghostty provides but this is what I have for now.

If you’re curious as to why I chose these tools, my laptop couldn’t handle VSCode and Cursor. They both used too much of my cpu and memory. I do suspect it was because of certain extensions but I just ended up trying something new that stuck. Skill issues :/