{"id":20382056,"url":"https://github.com/razobeckett/dotfiles","last_synced_at":"2025-09-23T21:32:17.877Z","repository":{"id":214188103,"uuid":"735566586","full_name":"RazoBeckett/dotfiles","owner":"RazoBeckett","description":"My dotfiles -- Powered by Yadm \u0026 Ansible","archived":false,"fork":false,"pushed_at":"2025-01-12T08:29:00.000Z","size":6762,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-12T09:28:42.067Z","etag":null,"topics":["ansible","ansible-playbook","archlinux","archlinux-ansible","archlinux-automatic","archlinux-dotfiles","configuration-files","dotfiles","dotfiles-automation","yadm"],"latest_commit_sha":null,"homepage":"https://yadm.io/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RazoBeckett.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-25T11:32:17.000Z","updated_at":"2025-01-12T08:29:04.000Z","dependencies_parsed_at":"2024-01-30T18:53:49.684Z","dependency_job_id":"39891465-970b-4cdc-9eff-fdc269f2bb10","html_url":"https://github.com/RazoBeckett/dotfiles","commit_stats":null,"previous_names":["razobeckett/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RazoBeckett%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RazoBeckett%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RazoBeckett%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RazoBeckett%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RazoBeckett","download_url":"https://codeload.github.com/RazoBeckett/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234004674,"owners_count":18764494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-playbook","archlinux","archlinux-ansible","archlinux-automatic","archlinux-dotfiles","configuration-files","dotfiles","dotfiles-automation","yadm"],"created_at":"2024-11-15T02:16:16.923Z","updated_at":"2025-09-23T21:32:17.871Z","avatar_url":"https://github.com/RazoBeckett.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://archlinux.org\"\u003e\u003cimg width=150 height=50 align=right src=\"https://archlinux.org/static/logos/archlinux-logo-light-1200dpi.7ccd81fd52dc.png\"\u003e\u003c/a\u003e\n\n# 🏠 RazoBeckett's Dotfiles\n\n[![GitHub repo size](https://img.shields.io/github/repo-size/RazoBeckett/dotfiles)](#)\n[![YADM](https://img.shields.io/badge/managed%20with-YADM-blueviolet)](https://yadm.io/)\n[![Ansible](https://img.shields.io/badge/automated%20with-Ansible-red)](https://ansible.com/)\n\n\u003e My personal dotfiles managed with [YADM](https://yadm.io/) and automated with Ansible\n\n## 📋 Overview\n![DOTFILES-FACE-2025-06-10_14-28](https://github.com/user-attachments/assets/5d808485-9f64-4026-b45c-ba953be29f80)\n\n\nThis repository contains my personal configuration files (dotfiles) for various applications and tools I use in my development environment. These dotfiles are managed using YADM for easy synchronization across machines, with system bootstrapping automated through Ansible playbooks.\n\n**Note**: This repository includes configurations for various programs and tools that I've experimented with over time. Not all configurations represent my current active setup - some are from tools I've tried and configured but may not actively use anymore.\n\n## 🖥️ Current Setup\n\n### Primary Environment\n- **Terminal**: [Alacritty](https://alacritty.org/) with custom keybindings for tmux integration\n- **Browser**: [Zen Browser](https://zen-browser.app/) as primary browser\n- **Window Manager**: [DWM (Custom Build)](https://github.com/razobeckett/dwm/#readme) for X11\n- **Wayland Compositor**: [Hyprland](https://hyprland.org/) for Wayland sessions\n- **Shell**: ZSH with custom configuration and plugins\n- **Terminal Multiplexer**: Tmux with custom keybindings and session management\n\n### Key Features\n- **Seamless Tmux Integration**: Custom keybindings in Alacritty for effortless tmux usage\n- **Smart Session Management**: Using [sesh](https://github.com/joshmedeski/sesh/#readme) for quick tmux session switching\n- **Fuzzy Finding**: Extensive FZF integration for file navigation and command history\n- **Modern CLI Tools**: Replacements for traditional UNIX tools (bat, eza, fd, ripgrep, etc.)\n\n## 🛠️ What's Included\n\n### Shell Configuration\n- **ZSH** (`.config/zsh/.zshrc`): Custom shell with plugins, history, and completion\n- **Bash** (`.bashrc`): Fallback shell configuration\n- **Modular Shell Scripts** (`.config/shellrc/`): Shared configurations for aliases, functions, exports, and FZF tricks\n\n### Terminal Setup\n- **Alacritty** (`.config/alacritty/`): Main terminal with tmux-optimized keybindings\n- **Kitty** (`.config/kitty/`): Alternative terminal configuration\n- **WezTerm** (`.config/wezterm/`): Lua-based terminal configuration\n- **Tmux** (`.config/tmux/`): Terminal multiplexer with custom keybindings and appearance\n\n### Window Management\n- **DWM Config**: [Custom DWM build](https://github.com/razobeckett/dwm/#readme) configurations\n- **Hyprland** (`.config/hypr/`): Wayland compositor with custom keybindings\n- **Picom** (`.config/picom/`): X11 compositor for transparency and effects\n\n### Development Tools\n- **Starship** (`.config/starship.toml`): Modern, fast shell prompt\n- **Sesh** (`.config/sesh/`): Tmux session manager with predefined sessions\n- **Git Configuration**: Version control setup and aliases\n\n### System Automation\n- **YADM Bootstrap** (`.config/yadm/bootstrap`): Automated setup script\n- **Ansible Playbooks** (`.config/yadm/ansible/`): System configuration automation\n  - Package installation for Arch Linux and Debian-based systems\n  - System security hardening\n  - User environment setup\n\n## 🚀 Installation\n\n### Prerequisites\n- [YADM](https://yadm.io/) for dotfiles management\n- [Ansible](https://www.ansible.com/) for system automation (installed automatically by bootstrap)\n\n### Quick Setup\n1. **Install YADM**:\n   ```bash\n   # Arch Linux\n   sudo pacman -S yadm\n   \n   # Ubuntu/Debian\n   sudo apt install yadm\n   \n   # macOS\n   brew install yadm\n   ```\n\n2. **Clone and Setup**:\n   ```bash\n   yadm clone https://github.com/RazoBeckett/dotfiles.git\n   yadm bootstrap\n   ```\n\nThe bootstrap script will automatically:\n- Install Ansible if not present\n- Run the appropriate playbook for your system\n- Install essential packages and tools\n- Set up the development environment\n\n### Manual Installation (Without Bootstrap)\nIf you prefer to install manually or the bootstrap fails:\n\n```bash\nyadm clone https://github.com/RazoBeckett/dotfiles.git\n\n# For Arch Linux users\ncd ~/.config/yadm/ansible\nansible-playbook -K -i \"localhost,\" -c local setup.yml\n\n# Install individual components as needed\n```\n\n## ⚙️ Configuration Highlights\n\n### Tmux Workflow\nMy tmux configuration is optimized for development workflow:\n- **Session Management**: Quick switching with `sesh` and `tmux-sessionizer`\n- **Custom Keybindings**: Terminal-integrated keybindings for seamless usage\n- **Smart Splits**: Automatic path preservation and intelligent sizing\n- **File Navigation**: Integrated [yazi](https://github.com/sxyazi/yazi/#readme) file manager\n\n### ZSH Environment\n- **Plugin System**: Autosuggestions, syntax highlighting, and fzf-tab\n- **Smart Completion**: Enhanced tab completion with fuzzy matching\n- **History Management**: Optimized history with deduplication\n- **Vi Mode**: Vim-like editing with visual indicators\n\n### Development Environment\n- **Modern CLI Tools**: \n  - `bat` instead of `cat`\n  - `eza` instead of `ls`\n  - `fd` instead of `find`\n  - `ripgrep` instead of `grep`\n  - `zoxide` instead of `cd`\n- **Fuzzy Finding**: FZF integration for files, commands, and directories\n- **Smart Navigation**: Quick project switching with tmux-sessionizer\n\n### Editor Setup (external, *not included*)\n- **Neovim**: Modern IDE-like experience with:\n  - Custom configuration from [razobeckett/nvim](https://github.com/razobeckett/nvim/#readme)\n  - LSP integration for code intelligence\n  - Plugin management and optimizations\n  - Custom keymaps and workflows\n\n## 🔄 Keeping Up-to-date\n\n### Managing Changes\n```bash\n# Check status\nyadm status\n\n# Add changes\nyadm add .\n\n# Commit changes\nyadm commit -m \"Update configuration\"\n\n# Push to repository\nyadm push\n\n# Pull changes on another machine\nyadm pull\n```\n\n### Updating System Packages\nThe Ansible playbooks can be re-run to update system packages:\n```bash\ncd ~/.config/yadm/ansible\nansible-playbook -K -i \"localhost,\" -c local setup.yml\n```\n\n## 📝 Notes\n\n### Bootstrap Status\n⚠️ **Alpha State**: The bootstrap automation is functional but not fully polished. It successfully installs and configures the basic environment, but some refinements are still needed. This is mainly due to my laziness in completing the Ansible playbook, even though it works for the essential setup.\n\n### Configuration Philosophy\n- **Modular Design**: Configurations are split into logical modules for easy maintenance\n- **Cross-Platform**: Support for [Arch Linux](https://archlinux.org), [Debian](https://www.debian.org/)-based systems, and [macOS](https://en.wikipedia.org/wiki/MacOS)\n- **Experimental Configs**: Some configurations are from tools I've experimented with - not all represent my current active setup\n\n## 🙏 Acknowledgments\n\nSpecial thanks to the creators and maintainers of these amazing tools that make my workflow possible:\n\n- **[Neovim](https://neovim.io/)** - hyperextensible Vim-based text editor\n- **[sesh](https://github.com/joshmedeski/sesh)** - Fast tmux session manager\n- **[tmux-sessionizer](https://github.com/ThePrimeagen/.dotfiles)** - Project-based tmux session creation (script by [ThePrimeagen](https://twitch.tv/theprimeagen)\n- **[starship](https://starship.rs/)** - Cross-shell prompt\n- **[zoxide](https://github.com/ajeetdsouza/zoxide)** - Smarter cd command\n- **[fzf](https://github.com/junegunn/fzf)** - Command-line fuzzy finder\n- **[direnv](https://direnv.net/)** - Environment variable manager\n- **[YADM](https://yadm.io/)** - Yet Another Dotfiles Manager\n- **[vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator)** - Seamless navigation between vim and tmux\n- **[tmux-sessionx](https://github.com/omerxx/tmux-sessionx)** - Enhanced tmux session management\n\nAnd to the broader open-source community for inspiration and countless hours of development that make these tools possible.\n\n## 📜 License\n\nThis project is open source and available under the [UNLICENSE](UNLICENSE).\n\n---\n\n*Feel free to explore, adapt, and make these configurations your own. Happy hacking! 🚀*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frazobeckett%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frazobeckett%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frazobeckett%2Fdotfiles/lists"}