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 ~/.tmux.conf ~/.tmux.conf.bkp 2>/dev/null

# Stow the modules you want
stow alacritty
stow bash
stow git
stow hypr
stow lazyvim
stow mise
stow mpv
stow tmux
# Optional isolated Neovim profile
# stow scratch-nvim

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. Neovim (LazyVim): setup is under lazyvim/. After stowing:
# Optional: clear all local Neovim plugins/data before first run
rm -rf ~/.local/share/nvim/*
  1. Hyprland: setup is under ./hypr/.config.

  2. mpv: setup is under ./mpv/.config/.

  3. tmux: setup is under ./tmux/. Install tmux and plugins:

sudo pacman -S tmux
mkdir -p ~/.tmux/plugins
# Plugin manager
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Theme (pinned)
git clone -b v2.1.3 https://github.com/catppuccin/tmux.git ~/.tmux/plugins/catppuccin

# Then stow the tmux config (if you haven't yet)
cd ~/dotfiles
stow tmux
  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. 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.

  2. 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. (optional) Scratch Neovim A separate, isolated Neovim profile for testing or demos lives under scratch-nvim/.

To use it:

  1. stow it to create ~/.config/scratch-nvim:
cd ~/dotfiles
stow scratch-nvim
  1. Use NVIM_APPNAME to run it
NVIM_APPNAME=scratch-nvim nvim

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.

Zettelkasten (zk) notes

I use zk for a Zettelkasten-style note system, often alongside Neovim.

Install:

sudo pacman -S zk bat

Helpful resources:

Cedilla with US keyboard layout

This is my personal workaround to type "ç" on an English (US, international with dead keys) layout. Please apply with caution, as 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/*

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

No packages published