Skip to content

RazoBeckett/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 RazoBeckett's Dotfiles

GitHub repo size YADM Ansible

My personal dotfiles managed with YADM and automated with Ansible

πŸ“‹ Overview

DOTFILES-FACE-2025-06-10_14-28

This 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.

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.

πŸ–₯️ Current Setup

Primary Environment

  • Terminal: Alacritty with custom keybindings for tmux integration
  • Browser: Zen Browser as primary browser
  • Window Manager: DWM (Custom Build) for X11
  • Wayland Compositor: Hyprland for Wayland sessions
  • Shell: ZSH with custom configuration and plugins
  • Terminal Multiplexer: Tmux with custom keybindings and session management

Key Features

  • Seamless Tmux Integration: Custom keybindings in Alacritty for effortless tmux usage
  • Smart Session Management: Using sesh for quick tmux session switching
  • Fuzzy Finding: Extensive FZF integration for file navigation and command history
  • Modern CLI Tools: Replacements for traditional UNIX tools (bat, eza, fd, ripgrep, etc.)

πŸ› οΈ What's Included

Shell Configuration

  • ZSH (.config/zsh/.zshrc): Custom shell with plugins, history, and completion
  • Bash (.bashrc): Fallback shell configuration
  • Modular Shell Scripts (.config/shellrc/): Shared configurations for aliases, functions, exports, and FZF tricks

Terminal Setup

  • Alacritty (.config/alacritty/): Main terminal with tmux-optimized keybindings
  • Kitty (.config/kitty/): Alternative terminal configuration
  • WezTerm (.config/wezterm/): Lua-based terminal configuration
  • Tmux (.config/tmux/): Terminal multiplexer with custom keybindings and appearance

Window Management

  • DWM Config: Custom DWM build configurations
  • Hyprland (.config/hypr/): Wayland compositor with custom keybindings
  • Picom (.config/picom/): X11 compositor for transparency and effects

Development Tools

  • Starship (.config/starship.toml): Modern, fast shell prompt
  • Sesh (.config/sesh/): Tmux session manager with predefined sessions
  • Git Configuration: Version control setup and aliases

System Automation

  • YADM Bootstrap (.config/yadm/bootstrap): Automated setup script
  • Ansible Playbooks (.config/yadm/ansible/): System configuration automation
    • Package installation for Arch Linux and Debian-based systems
    • System security hardening
    • User environment setup

πŸš€ Installation

Prerequisites

  • YADM for dotfiles management
  • Ansible for system automation (installed automatically by bootstrap)

Quick Setup

  1. Install YADM:

    # Arch Linux
    sudo pacman -S yadm
    
    # Ubuntu/Debian
    sudo apt install yadm
    
    # macOS
    brew install yadm
  2. Clone and Setup:

    yadm clone https://github.com/RazoBeckett/dotfiles.git
    yadm bootstrap

The bootstrap script will automatically:

  • Install Ansible if not present
  • Run the appropriate playbook for your system
  • Install essential packages and tools
  • Set up the development environment

Manual Installation (Without Bootstrap)

If you prefer to install manually or the bootstrap fails:

yadm clone https://github.com/RazoBeckett/dotfiles.git

# For Arch Linux users
cd ~/.config/yadm/ansible
ansible-playbook -K -i "localhost," -c local setup.yml

# Install individual components as needed

βš™οΈ Configuration Highlights

Tmux Workflow

My tmux configuration is optimized for development workflow:

  • Session Management: Quick switching with sesh and tmux-sessionizer
  • Custom Keybindings: Terminal-integrated keybindings for seamless usage
  • Smart Splits: Automatic path preservation and intelligent sizing
  • File Navigation: Integrated yazi file manager

ZSH Environment

  • Plugin System: Autosuggestions, syntax highlighting, and fzf-tab
  • Smart Completion: Enhanced tab completion with fuzzy matching
  • History Management: Optimized history with deduplication
  • Vi Mode: Vim-like editing with visual indicators

Development Environment

  • Modern CLI Tools:
    • bat instead of cat
    • eza instead of ls
    • fd instead of find
    • ripgrep instead of grep
    • zoxide instead of cd
  • Fuzzy Finding: FZF integration for files, commands, and directories
  • Smart Navigation: Quick project switching with tmux-sessionizer

Editor Setup (external, not included)

  • Neovim: Modern IDE-like experience with:
    • Custom configuration from razobeckett/nvim
    • LSP integration for code intelligence
    • Plugin management and optimizations
    • Custom keymaps and workflows

πŸ”„ Keeping Up-to-date

Managing Changes

# Check status
yadm status

# Add changes
yadm add .

# Commit changes
yadm commit -m "Update configuration"

# Push to repository
yadm push

# Pull changes on another machine
yadm pull

Updating System Packages

The Ansible playbooks can be re-run to update system packages:

cd ~/.config/yadm/ansible
ansible-playbook -K -i "localhost," -c local setup.yml

πŸ“ Notes

Bootstrap Status

⚠️ 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.

Configuration Philosophy

  • Modular Design: Configurations are split into logical modules for easy maintenance
  • Cross-Platform: Support for Arch Linux, Debian-based systems, and macOS
  • Experimental Configs: Some configurations are from tools I've experimented with - not all represent my current active setup

πŸ™ Acknowledgments

Special thanks to the creators and maintainers of these amazing tools that make my workflow possible:

And to the broader open-source community for inspiration and countless hours of development that make these tools possible.

πŸ“œ License

This project is open source and available under the UNLICENSE.


Feel free to explore, adapt, and make these configurations your own. Happy hacking! πŸš€