Configuración personal para Arch Linux con Hyprland.
Nota: Este repo está diseñado para mi setup específico (GPU AMD, tema TokyoNight). El
install.shte avisa sobre las partes opcionales antes de hacer cualquier cosa.
| Categoría | Herramienta |
|---|---|
| Compositor | Hyprland |
| Terminal | Ghostty + Zellij |
| Shell | Zsh + Oh My Posh |
| Editor | Neovim |
| Bar | Waybar |
| Launcher | nwg-drawer |
| Notificaciones | Dunst |
| File manager | Thunar + Yazi |
| Tema | TokyoNight |
| Cursor | volantes_cursors |
- Arch Linux (o derivado)
- Conexión a internet
- Hyprland no corriendo al momento de instalar (algunos pasos lo requieren)
git clone --recurse-submodules https://github.com/MrUse77/dotfiles.git ~/dotfilesEl flag
--recurse-submoduleses importante. Sin él los plugins de zsh y el config de neovim quedarán como carpetas vacías.
Si ya clonaste sin ese flag:
git submodule update --init --recursivecd ~/dotfiles
bash install.shEl script va a:
- Actualizar el sistema e instalar
base-develygit - Instalar
paru(AUR helper) si no está - Instalar todos los paquetes necesarios (oficiales + AUR)
- Configurar
zshcomo shell por defecto - Instalar fuentes y el cursor theme
- Desplegar los configs con
stow(symlinks hacia~/.config/) - Preguntar si instalar los plugins de Hyprland via
hyprpm - Configurar variables de entorno globales para Qt/GTK/Wayland
- Aplicar temas GTK via
gsettings - Habilitar servicios (
upower,power-profiles-daemon)
- Reiniciar sesión o el sistema
- Abrir
qt5ct→ seleccionar estilo kvantum - Ejecutar
nwg-lookpara confirmar los temas GTK
dotfiles/
├── .config/
│ ├── dunst/ # Notificaciones
│ ├── eww/ # Widgets
│ ├── ghostty/ # Terminal
│ ├── gtk-3.0/ # Tema GTK3
│ ├── gtk-4.0/ # Tema GTK4
│ ├── hypr/ # Hyprland, hyprlock, hyprpaper, hypridle, hyprsunset
│ │ └── scripts/ # Scripts de autostart (toggle-split-monitor, etc.)
│ ├── nvim/ # Config de Neovim (submodule → MrUse77/Nvim-config)
│ ├── nwg-dock-hyprland/
│ ├── nwg-drawer/
│ ├── swaync/
│ ├── waybar/
│ ├── wofi/
│ └── zellij/
├── .zsh_plugins/ # Plugins de zsh (submodules, ver abajo)
├── assets/
│ ├── fonts/ # CaskaydiaCove, CaskaydiaM, Hack Nerd Font
│ └── icons/ # volantes_cursors
├── oh-my-posh/ # Temas de prompt (.omp.json)
├── .zshrc
├── .gtkrc-2.0
└── install.sh
Los configs se despliegan con stow, que crea symlinks desde este repo hacia $HOME.
Esto significa que cualquier cambio que hagas en ~/.config/waybar/config.jsonc, por
ejemplo, en realidad está editando el archivo dentro del repo directamente.
Este repo usa git submodules para manejar repos externos sin duplicar su código.
En vez de copiar el código de un proyecto externo dentro de tu repo, un submodule guarda solo un puntero: la URL del repo y el commit exacto en el que estás parado.
[submodule ".zsh_plugins/zsh-autosuggestions"]
url = https://github.com/zsh-users/zsh-autosuggestions
# git guarda internamente a qué commit apunta
| Path | Repo | Descripción |
|---|---|---|
.config/nvim |
MrUse77/Nvim-config |
Config personal de Neovim |
.zsh_plugins/fzf-tab |
Aloxaf/fzf-tab |
Completado con fzf |
.zsh_plugins/zsh-autosuggestions |
zsh-users/zsh-autosuggestions |
Sugerencias inline |
.zsh_plugins/zsh-history-substring-search |
zsh-users/zsh-history-substring-search |
Búsqueda en historial |
.zsh_plugins/zsh-syntax-highlighting |
zsh-users/zsh-syntax-highlighting |
Highlight de sintaxis |
Inicializar submodules después de clonar sin --recurse-submodules:
git submodule update --init --recursiveActualizar todos los submodules a su último commit:
git submodule update --remote --mergeActualizar solo uno:
git submodule update --remote --merge .zsh_plugins/zsh-autosuggestionsVer en qué commit está cada submodule:
git submodule statusTrabajar en el config de nvim (es un repo independiente):
cd ~/.config/nvim # o ~/dotfiles/.config/nvim, es el mismo archivo via stow
git add .
git commit -m "..."
git push # pushea a MrUse77/Nvim-config, no a dotfilesDespués de hacer cambios en un submodule, el dotfiles repo detecta que el puntero cambió. Para registrarlo:
cd ~/dotfiles
git add .config/nvim
git commit -m "nvim: actualizar a último commit"# Clonar
git clone --recurse-submodules https://github.com/MrUse77/dotfiles.git ~/dotfiles
# Instalar
cd ~/dotfiles && bash install.shcd ~/dotfiles
git pull
git submodule update --recursive # actualiza los submodules al commit que indica el repo
