Added comprehensive documentation of the yadm dotfiles management setup: - README.md: Updated goals and status to reflect completed dotfiles setup - yadm-setup-notes.md: Complete process documentation including: * Manual merge strategy preserving Arch Linux functionality * File-by-file configuration changes and optimizations * Submodule management and troubleshooting * Arch-specific adjustments (disabled linuxbrew, performance tuning) * Development environment highlights and security features - arch-linux-setup.md: Marked development environment tasks as completed The dotfiles setup phase is now fully documented with both process details and configuration highlights for future reference. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
95 lines
3.8 KiB
Markdown
95 lines
3.8 KiB
Markdown
# Yadm Dotfiles Setup Notes
|
|
|
|
## Overview
|
|
Successfully configured yadm (Yet Another Dotfiles Manager) to manage personal dotfiles while preserving Arch Linux system functionality.
|
|
|
|
## Setup Process
|
|
|
|
### 1. Initial Yadm Installation and Clone
|
|
- ✅ Installed yadm: `pacman -S yadm`
|
|
- ✅ Cloned personal dotfiles repository: `yadm clone git@gitlab.com:akrejczinger/dotfiles.git`
|
|
- ✅ Created backup of existing dotfiles before merge: `~/dotfiles-backup/20250730_142945/`
|
|
|
|
### 2. Dotfiles Merge Strategy
|
|
Rather than force-overwriting local files, manually merged each configuration file to preserve both:
|
|
- **Arch Linux system functionality** (session management, package integration)
|
|
- **Personal customizations** (themes, keybindings, development tools)
|
|
|
|
### 3. Files Successfully Merged
|
|
|
|
#### Shell Configuration
|
|
- **`.bashrc`**: Enhanced with yadm aliases, functions, and development tools
|
|
- **`.bash_profile`**: Added poetry PATH export
|
|
- **`.bash_logout`**: Replaced with yadm version (console clearing for privacy)
|
|
- **`.zshrc`**: Comprehensive setup with vi-mode, custom functions, 293-line config
|
|
- **`.profile`**: Merged X11/touchpad config with environment setup
|
|
|
|
#### System Integration
|
|
- **`.xinitrc`**: Combined Arch session management with colemak keyboard layout
|
|
- **XFCE configs**: Enhanced window manager settings while preserving customizations
|
|
|
|
### 4. Arch-Specific Optimizations
|
|
- **Linuxbrew disabled**: Commented out in all files (using pacman/AUR instead)
|
|
- **Session management preserved**: Kept Arch's comprehensive xinitrc.d integration
|
|
- **Performance optimizations**: Set `vblank_mode=xpresent` for better AMD graphics performance
|
|
- **Window manager enhancements**: Added `restore_on_move`, `zoom_pointer` features
|
|
|
|
### 5. Submodule Management
|
|
- ✅ Resolved phantom `.config/nvm` submodule reference issue
|
|
- ✅ Successfully initialized all valid submodules:
|
|
- `.config/awesome` - AwesomeWM configuration
|
|
- `.config/nvim` - Neovim setup (updated to latest main branch)
|
|
- `.config/ranger/plugins/ranger_devicons` - File manager icons
|
|
- `.tmux/plugins/tpm` - Tmux Plugin Manager
|
|
|
|
### 6. Configuration Highlights
|
|
|
|
#### Development Tools
|
|
- **Zsh with vi-mode**: Enhanced terminal experience with custom keybindings
|
|
- **Git integration**: Custom functions (`fshow`, `vimgit`) for improved workflow
|
|
- **Archive extraction**: Universal `ex()` function for all archive types
|
|
- **Theme switching**: `light_theme`/`dark_theme` functions
|
|
|
|
#### System Customization
|
|
- **Keyboard**: Colemak layout with custom xmodmap
|
|
- **Theme**: Greybird-dark with Papirus-Maia icons
|
|
- **Font**: Noto Sans 10 with proper font rendering settings
|
|
- **Cursor**: xcursor-breeze theme
|
|
|
|
#### Security & Privacy
|
|
- **Console clearing**: Automatic screen clear on logout
|
|
- **SSH hardening**: Comprehensive security settings documented
|
|
- **Firewall configuration**: Planned fail2ban integration
|
|
|
|
## Current State
|
|
- ✅ All dotfiles merged and committed to yadm repository
|
|
- ✅ Submodules properly initialized and updated
|
|
- ✅ Development environment fully functional
|
|
- ✅ Arch system integration preserved
|
|
- ✅ Personal customizations active
|
|
|
|
## Next Steps
|
|
- Network configuration and static IP setup
|
|
- Dynamic DNS configuration for remote access
|
|
- Self-hosted service deployment preparation
|
|
|
|
## Lessons Learned
|
|
1. **Manual merge approach** was correct - prevented loss of Arch-specific functionality
|
|
2. **Submodule cleanup** required removing phantom references from git index
|
|
3. **Platform-specific adjustments** (disabling linuxbrew) are essential for Arch
|
|
4. **Comprehensive backups** saved the day when conflicts arose
|
|
|
|
## Commands Reference
|
|
```bash
|
|
# Yadm basic operations
|
|
yadm status
|
|
yadm add <file>
|
|
yadm commit -m "message"
|
|
|
|
# Submodule management
|
|
yadm submodule update --init --recursive
|
|
yadm submodule update --remote
|
|
|
|
# Remove phantom submodule
|
|
yadm rm --cached <submodule-path>
|
|
``` |