# scottleeroberts/.dotfiles architecture

> Architecture diagram of the GitHub repository scottleeroberts/.dotfiles, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/scottleeroberts/.dotfiles
- Repository: https://github.com/scottleeroberts/.dotfiles

## Overview

This repository is a personal dotfiles collection with setup automation for fresh Ubuntu and legacy Arch-based systems. The main user workflow is to run the platform setup script, which installs tools and configures the machine, then deploys the dotfiles and selects ZSH. The deployed configuration covers the shell, desktop environment, editor, terminal, and development tools. The README documents these setup relationships, but no source excerpts were provided, so internal calls and configuration-level interactions are not asserted.

Main entry points: [`stow_all`](https://github.com/scottleeroberts/.dotfiles/blob/develop/stow_all) (Dotfile deployment), [`setup-ubuntu.sh`](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup-ubuntu.sh) (Ubuntu setup), [`setup-arch.sh`](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup-arch.sh) (Arch setup), [`setup_steps/version_managers.sh`](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/version_managers.sh) (Version managers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Machine setup"]
  node_ubuntu_setup["Ubuntu setup<br/>[setup-ubuntu.sh]"]
  node_arch_setup["Arch setup<br/>[setup-arch.sh]"]
  node_package_steps["Package installation<br/>[apt_packages.sh]"]
  node_version_steps["Version managers"]
  node_docker_steps["Docker setup<br/>[docker_setup.sh]"]
  node_stow["Dotfile deployment"]
  node_claude_steps["Claude configuration<br/>[claude_config.sh]"]
  node_shell_steps["Shell setup<br/>[shell.sh]"]
end

subgraph group_desktop["Desktop environment"]
  node_desktop_configs["Window manager and UI<br/>[config]"]
  node_rofi_config["Application launcher<br/>[config.rasi]"]
  node_dunst_config["Notifications<br/>[dunstrc]"]
end

subgraph group_developer["Developer environment"]
  node_nvim_config["Neovim<br/>[init.lua]"]
  node_git_config["Git settings<br/>[.gitconfig]"]
  node_tmux_config["Terminal multiplexer<br/>[.tmux.conf]"]
  node_terminal_config["Terminal emulator<br/>[alacritty.toml]"]
  node_claude_config["Claude Code settings<br/>[claude_config.sh]"]
end

subgraph group_shell["Shell environment"]
  node_zsh_config["ZSH configuration<br/>[.zshrc]"]
end

node_user(("Machine owner"))
node_package_manager["APT packages"]
node_homebrew["Homebrew tools"]

node_user -->|"runs Ubuntu setup"| node_ubuntu_setup
node_user -->|"runs Arch setup"| node_arch_setup
node_ubuntu_setup -->|"installs APT packages"| node_package_manager
node_ubuntu_setup -->|"installs tools"| node_homebrew
node_ubuntu_setup -->|"sets up managers"| node_version_steps
node_ubuntu_setup -->|"configures Docker"| node_docker_steps
node_ubuntu_setup -->|"deploys dotfiles"| node_stow
node_ubuntu_setup -->|"clones configuration"| node_claude_steps
node_ubuntu_setup -->|"selects ZSH"| node_shell_steps
node_stow -.->|"deploys configurations"| node_desktop_configs
node_stow -.->|"deploys configuration"| node_nvim_config
node_stow -.->|"deploys configuration"| node_git_config
node_stow -.->|"deploys configuration"| node_tmux_config
node_stow -.->|"deploys configuration"| node_terminal_config
node_stow -.->|"deploys configuration"| node_zsh_config
node_stow -.->|"deploys configuration"| node_rofi_config
node_stow -.->|"deploys configuration"| node_dunst_config

click node_ubuntu_setup "https://github.com/scottleeroberts/.dotfiles/blob/develop/setup-ubuntu.sh"
click node_arch_setup "https://github.com/scottleeroberts/.dotfiles/blob/develop/setup-arch.sh"
click node_package_steps "https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/apt_packages.sh"
click node_version_steps "https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/version_managers.sh"
click node_docker_steps "https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/docker_setup.sh"
click node_stow "https://github.com/scottleeroberts/.dotfiles/blob/develop/stow_all"
click node_claude_steps "https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/claude_config.sh"
click node_shell_steps "https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/shell.sh"
click node_desktop_configs "https://github.com/scottleeroberts/.dotfiles/blob/develop/i3/.config/i3/config"
click node_rofi_config "https://github.com/scottleeroberts/.dotfiles/blob/develop/rofi/.config/rofi/config.rasi"
click node_dunst_config "https://github.com/scottleeroberts/.dotfiles/blob/develop/dunst/.config/dunst/dunstrc"
click node_nvim_config "https://github.com/scottleeroberts/.dotfiles/blob/develop/neovim/.config/nvim/init.lua"
click node_git_config "https://github.com/scottleeroberts/.dotfiles/blob/develop/git/.gitconfig"
click node_tmux_config "https://github.com/scottleeroberts/.dotfiles/blob/develop/tmux/.tmux.conf"
click node_terminal_config "https://github.com/scottleeroberts/.dotfiles/blob/develop/alacritty/.config/alacritty/alacritty.toml"
click node_zsh_config "https://github.com/scottleeroberts/.dotfiles/blob/develop/zsh/.zshrc"
click node_claude_config "https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/claude_config.sh"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ubuntu_setup,node_arch_setup,node_package_steps,node_version_steps,node_docker_steps,node_stow,node_claude_steps,node_shell_steps toneBlue
class node_desktop_configs,node_rofi_config,node_dunst_config toneAmber
class node_nvim_config,node_git_config,node_tmux_config,node_terminal_config,node_claude_config toneMint
class node_zsh_config toneRose
class node_user,node_package_manager,node_homebrew toneIndigo
```

## Components

### Machine setup

- [Ubuntu setup](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup-ubuntu.sh): `setup-ubuntu.sh`
- [Arch setup](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup-arch.sh): `setup-arch.sh`
- [Package installation](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/apt_packages.sh): `setup_steps/apt_packages.sh`
- [Version managers](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/version_managers.sh): `setup_steps/version_managers.sh`
- [Docker setup](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/docker_setup.sh): `setup_steps/docker_setup.sh`
- [Dotfile deployment](https://github.com/scottleeroberts/.dotfiles/blob/develop/stow_all): `stow_all`
- [Claude configuration](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/claude_config.sh): `setup_steps/claude_config.sh`
- [Shell setup](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/shell.sh): `setup_steps/shell.sh`

### Desktop environment

- [Window manager and UI](https://github.com/scottleeroberts/.dotfiles/blob/develop/i3/.config/i3/config): `i3/.config/i3/config`
- [Application launcher](https://github.com/scottleeroberts/.dotfiles/blob/develop/rofi/.config/rofi/config.rasi): `rofi/.config/rofi/config.rasi`
- [Notifications](https://github.com/scottleeroberts/.dotfiles/blob/develop/dunst/.config/dunst/dunstrc): `dunst/.config/dunst/dunstrc`

### Developer environment

- [Neovim](https://github.com/scottleeroberts/.dotfiles/blob/develop/neovim/.config/nvim/init.lua): `neovim/.config/nvim/init.lua`
- [Git settings](https://github.com/scottleeroberts/.dotfiles/blob/develop/git/.gitconfig): `git/.gitconfig`
- [Terminal multiplexer](https://github.com/scottleeroberts/.dotfiles/blob/develop/tmux/.tmux.conf): `tmux/.tmux.conf`
- [Terminal emulator](https://github.com/scottleeroberts/.dotfiles/blob/develop/alacritty/.config/alacritty/alacritty.toml): `alacritty/.config/alacritty/alacritty.toml`
- [Claude Code settings](https://github.com/scottleeroberts/.dotfiles/blob/develop/setup_steps/claude_config.sh): `setup_steps/claude_config.sh`

### Shell environment

- [ZSH configuration](https://github.com/scottleeroberts/.dotfiles/blob/develop/zsh/.zshrc): `zsh/.zshrc`

### Other components

- **Machine owner**
- **APT packages**
- **Homebrew tools**

## Connections

- Machine owner → Ubuntu setup: runs Ubuntu setup (evidence: `README.md`)
- Machine owner → Arch setup: runs Arch setup (evidence: `README.md`)
- Ubuntu setup → APT packages: installs APT packages (evidence: `README.md`)
- Ubuntu setup → Homebrew tools: installs tools (evidence: `README.md`)
- Ubuntu setup → Version managers: sets up managers (evidence: `README.md`)
- Ubuntu setup → Docker setup: configures Docker (evidence: `README.md`)
- Ubuntu setup → Dotfile deployment: deploys dotfiles (evidence: `README.md`)
- Ubuntu setup → Claude configuration: clones configuration (evidence: `README.md`)
- Ubuntu setup → Shell setup: selects ZSH (evidence: `README.md`)
- Dotfile deployment → Window manager and UI: deploys configurations
- Dotfile deployment → Neovim: deploys configuration
- Dotfile deployment → Git settings: deploys configuration
- Dotfile deployment → Terminal multiplexer: deploys configuration
- Dotfile deployment → Terminal emulator: deploys configuration
- Dotfile deployment → ZSH configuration: deploys configuration
- Dotfile deployment → Application launcher: deploys configuration
- Dotfile deployment → Notifications: deploys configuration
