Skip to content

callmarx/dotfiles

Repository files navigation

Dotfiles

License Contributor Covenant Conventional Commits pt-br love

A curated set of my personal configuration files (dotfiles) for Arch-based systems, designed to be managed with GNU Stow. This setup currently targets an Omarchy-based environment, but most pieces work on any Arch install.

Table of contents

Quickstart

Prerequisites:

  • Arch-based distro (or Omarchy)
  • git and stow installed
  • yay available if you want to install AUR packages
sudo pacman -S --needed git stow

Clone and enter this repository:

git clone https://github.com/callmarx/dotfiles.git ~/dotfiles
cd ~/dotfiles

Omarchy customization

I use Omarchy to bootstrap the machine. See the official docs for getting started:

Common customizations I do:

  1. Remove apps/packages I don't use
# Example: remove gnome-keyring
omarchy-pkg-remove
# or directly via yay:
yay -Rs gnome-keyring

# Example: remove bundled web apps (twitter, youtube, etc.)
omarchy-webapp-remove
  1. Install a couple of extra packages
# via Omarchy helper
omarchy-pkg-install
# or directly via yay:
yay -S google-chrome # `rocm-smi-lib` for AMD GPU required by `btop`

Packages required by my dotfiles

## Bash customization and local bin (via mise):
sudo pacman -S usage # mise and starship packages is installed by omarchy

Apply dotfiles with GNU Stow

Stow manages symlinks from this repo into your $HOME. I typically back up existing configs first.

cd ~/dotfiles

# Backup any existing configs (optional but recommended)
mv ~/.config/alacritty ~/.config/alacritty.bkp 2>/dev/null
mv ~/.bashrc ~/.bashrc.bkp 2>/dev/null
mv ~/.bash_profile ~/.bash_profile.bkp 2>/dev/null
mv ~/.config/starship.toml ~/.config/starship.toml.bkp 2>/dev/null
mv ~/.gitconfig ~/.gitconfig.bkp 2>/dev/null
mv ~/.config/hypr ~/.config/hypr.bkp 2>/dev/null
mv ~/.config/nvim ~/.config/nvim.bkp 2>/dev/null
mv ~/.config/mise ~/.config/mise.bkp 2>/dev/null
mv ~/.config/mpv ~/.config/mpv.bkp 2>/dev/null
mv ~/.claude ~/.claude.bkp 2>/dev/null

# Stow the modules you want
stow alacritty
stow bash
stow claude-code
stow git
stow hypr
stow lazyvim
stow mise
stow mpv
stow steam
stow tmux

Unstow (remove symlinks)

If you want to remove symlinks created by Stow (without deleting your files), use -D:

# From the repo root
cd ~/dotfiles
stow -D lazyvim
stow -D hypr
# ...and so on for any module you want to detach

About each module:

  1. Alacritty: setup is under alacritty/.config/alacritty/. Customizes font (JetBrainsMono Nerd Font), padding, keybindings, and imports the current Omarchy theme.

  2. Bash (customized with Starship): setup is under bash/. I use bash with starship. Note: As noted above in Packages required by my dotfiles, ensure starship is installed.

  3. Claude Code: setup is under claude-code/.claude/. Global Claude Code config — includes CLAUDE.md (instructions), custom skills (skills/), and persistent memory (memory/). Stow it to place at ~/.claude/.

  4. Git: setup is under git/. General configuration:

  • enables colored output,
  • sets develop as the default branch,
  • wires a commit message template inspired by Conventional Commits.
  1. Hyprland: setup is under hypr/.config/hypr/.

  2. Neovim (LazyVim): setup is under lazyvim/. After stowing:

# Optional: clear all local Neovim plugins/data before first run
rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
# After setup mise (described below):
gem install neovim # for ruby support in Neovim
yay -S tree-sitter-cli-git # official tree-sitter-cli package is often outdated
  1. mise (tool version manager): setup is under mise/.config/mise/. This setup uses mise for managing tool versions.
  • Global tools and versions are defined in ~/dotfiles/mise/.config/mise/config.toml.
  • As noted above in Packages required by my dotfiles, ensure mise and usage are installed.
# Install the declared tools
mise install
  1. mpv: setup is under mpv/.config/mpv/.

  2. Steam: setup is under steam/. Custom .desktop files for Steam and games, placed in ~/.local/share/applications/.

  3. tmux: setup is under tmux/. Install tmux and TPM, then stow:

sudo pacman -S tmux
mkdir -p ~/.config/tmux/plugins
# Plugin manager
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm

# Stow the tmux config
cd ~/dotfiles
stow tmux

NOTE: Inside tmux, install plugins (tmux-resurrect, tmux-continuum, etc.) with prefix + I (with my prefix will be CTRL+\ + I or CTRL+b + I)

Other tools and setups

Lazygit and Lazydocker

I'm using Lazygit and lazydocker for quick terminal-based git and docker management. These tools are installed by default with Omarchy, but if you need to install them manually:

sudo pacman -S lazygit lazydocker

Note: if you keep a personal Lazygit config, symlink it into ~/.config/lazygit/config.yml. I personally use the default configuration.

Cedilla with US keyboard layout

This is my personal workaround to type "ç" on an English (US, international with dead keys) keyboard layout. Please apply with caution and be aware that system files may be overwritten by updates.

  1. Set your system keyboard layout to: English (US, international with dead keys).

For Hyprland, edit ~/.config/hypr/hyprland.conf or ~/.config/hypr/input.conf:

# Example for Brazilian and US keyboard layouts
input {
  kb_layout = br, us
  kb_variant = abnt2,intl
  kb_options = compose:caps,grp:alt_space_toggle
}
  1. Edit the GTK immodules caches (paths vary by distro/versions):
sudo vim /usr/lib/gtk-3.0/3.0.0/immodules.cache
sudo vim /usr/lib/gtk-2.0/2.10.0/immodules.cache

Change the line:

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa"

To:

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"
  1. Replace "ć" with "ç" and "Ć" with "Ç" in /usr/share/X11/locale/en_US.UTF-8/Compose:
sudo cp /usr/share/X11/locale/en_US.UTF-8/Compose /usr/share/X11/locale/en_US.UTF-8/Compose.bak
sed 's/ć/ç/g' < /usr/share/X11/locale/en_US.UTF-8/Compose | sed 's/Ć/Ç/g' > Compose
sudo mv Compose /usr/share/X11/locale/en_US.UTF-8/Compose
  1. Reboot the computer.

Optional: clear Neovim plugins

If you want a clean Neovim start:

rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim

License

This project is available as open source under the MIT license. See LICENSE.

Code of conduct

I am committed to providing a friendly, safe, and welcoming environment for all. Please read and respect the Code of Conduct.

About

Meus arquivos ponto :p

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors