Inspired by eevee/rc, this repository contains my personal dotfiles for quickly reconstructing my local environment after system updates, upgrades, or physical machine replacements.
See docs/ directory for full environment setups, including:
- Hyprland - Wayland compositor with custom configurations
- i3 - X11 window manager setup (both Arch and Ubuntu variants)
- Waybar - Status bar configuration for Wayland
- i3status - Status bar for i3wm
- Zsh - Primary shell with custom configuration
- Bash - Secondary shell configuration
- Alacritty & Kitty - Terminal emulator configs
- Tmux - Terminal multiplexer with custom theme
- Neovim - Editor configuration (including custom Omarchy variant)
- Git - Global git configuration with platform-specific variants
- Vim - Fallback editor configuration
- EditorConfig - Consistent coding styles
- Ranger - File manager configuration
- Dunst - Notification daemon
- Picom - X11 compositor
- SXHKD - Simple X hotkey daemon
- Walker - Application launcher
- PostgreSQL - psql configuration
- Network Manager DNS and WiFi settings
- X11 touchpad configuration
- ThinkPad ACPI configuration
- Custom scripts and utilities in
bin/
-
Clone this repository to your home directory:
git clone https://github.com/rafaelbernard/dotfiles ~/.dotfiles cd ~/.dotfiles
-
Run the installation script:
./install
-
Platform-specific setup:
- For Arch Linux: Additional configurations in
arch/directory - For Ubuntu: Specific configs in
ubuntu/directory
- For Arch Linux: Additional configurations in
.
├── .config/ # Application configurations
│ ├── hypr/ # Hyprland wayland compositor
│ ├── waybar/ # Wayland status bar
│ ├── i3/ # i3 window manager
│ ├── alacritty/ # Terminal emulator
│ ├── nvim/ # Neovim editor
│ └── ...
├── arch/ # Arch Linux specific configs
├── ubuntu/ # Ubuntu specific configs
├── bin/ # Custom scripts and utilities
├── etc/ # System configuration files
├── docs/ # Documentation and setup guides
├── install # Main installation script
└── README.md # This file
install- Main installation scriptbin/platform.sh- Platform detection utilitybin/check-dns- DNS checking utilitybin/toggle-wifi-systemd.sh- WiFi management scriptbin/link-dotfiles- Safely link selected .config entries into ~/.config with backups, and a few custom links outside.config.
Use bin/link-dotfiles to create symlinks from this repo to your home directory.
The script:
- Explicitly manages a curated set of entries under
.config(see theentriesarray inside the script). - Uses a single link_entry function that accepts a source directory, destination directory, and entry name, so it works for both
.configitems and custom locations. - Skips items that are already correctly linked.
- Backs up existing files/dirs/symlinks by renaming them with a
.bkp.<timestamp>suffix before linking. - Ensures destination parent directories exist.
Usage:
# Preview actions without making changes
DRY_RUN=1 bin/link-dotfiles
# Perform the linking
bin/link-dotfilesCustom links example (already included by default):
- Source in repo: tmux/
- Destination on system: ~/tmux
Notes:
- You can extend the managed lists by editing the
entriesarray insidebin/link-dotfiles, and add additional calls to link_entry for custom mappings (e.g., link_entry "$DOTFILES_DIR" "$HOME" "mydir"). - The script is idempotent; running it multiple times is safe.
Development tool preferences and quality/velocity tools are documented in dev.md.
See LICENSE file for details.