# alrra/dotfiles architecture

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

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

## Overview

This repository provides a reusable macOS dotfiles setup: a user runs the setup script, which downloads the dotfiles and applies configuration, software installations, and macOS preferences. The README documents these capabilities and the main dispatch relationships; source excerpts were unavailable, so internal script-to-script calls are not inferred.

Main entry points: [`src/os/setup.sh`](https://github.com/alrra/dotfiles/blob/main/src/os/setup.sh) (Setup script), [`src/os/create_symbolic_links.sh`](https://github.com/alrra/dotfiles/blob/main/src/os/create_symbolic_links.sh) (Create symlinks), [`src/os/installs/vim.sh`](https://github.com/alrra/dotfiles/blob/main/src/os/installs/vim.sh) (Vim installer), [`src/os/update_content.sh`](https://github.com/alrra/dotfiles/blob/main/src/os/update_content.sh) (Content updater)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Setup and updates"]
  node_setup_script["Setup script<br/>[setup.sh]"]
  node_updater["Content updater<br/>[update_content.sh]"]
end

subgraph group_configuration["User configuration"]
  node_symlink_script["Create symlinks"]
  node_git_config["Git configuration"]
  node_shell_config["Shell configuration"]
  node_tmux_config["tmux configuration"]
  node_vim_config["Vim configuration"]
  node_local_config["Local config files"]
end

subgraph group_software["Software installation"]
  node_install_main["Install dispatcher<br/>[main.sh]"]
  node_mac_install["macOS installs"]
  node_vim_install["Vim installer<br/>[vim.sh]"]
  node_vscodium_install["VSCodium installer<br/>[vscodium.sh]"]
  node_vim_plugins["Vim plugins"]
end

subgraph group_preferences["macOS preferences"]
  node_mac_preferences["macOS preferences"]
end

node_user(("User"))
node_dotfiles_source(("Dotfiles source"))

node_user -->|"runs"| node_setup_script
node_setup_script -->|"downloads"| node_dotfiles_source
node_user -->|"runs"| node_updater
node_setup_script -->|"sets up links"| node_symlink_script
node_symlink_script -->|"links"| node_git_config
node_symlink_script -->|"links"| node_shell_config
node_symlink_script -->|"links"| node_tmux_config
node_symlink_script -->|"links"| node_vim_config
node_setup_script -->|"creates"| node_local_config
node_setup_script -->|"installs tools"| node_install_main
node_setup_script -->|"sets preferences"| node_mac_preferences
node_setup_script -->|"installs plugins"| node_vim_install
node_setup_script -->|"installs plugins"| node_vscodium_install
node_vim_install -->|"installs"| node_vim_plugins

click node_setup_script "https://github.com/alrra/dotfiles/blob/main/src/os/setup.sh"
click node_updater "https://github.com/alrra/dotfiles/blob/main/src/os/update_content.sh"
click node_symlink_script "https://github.com/alrra/dotfiles/blob/main/src/os/create_symbolic_links.sh"
click node_git_config "https://github.com/alrra/dotfiles/tree/main/src/git"
click node_shell_config "https://github.com/alrra/dotfiles/tree/main/src/shell"
click node_tmux_config "https://github.com/alrra/dotfiles/tree/main/src/tmux"
click node_vim_config "https://github.com/alrra/dotfiles/tree/main/src/vim"
click node_local_config "https://github.com/alrra/dotfiles/blob/main/src/os/create_local_config_files.sh"
click node_install_main "https://github.com/alrra/dotfiles/blob/main/src/os/installs/main.sh"
click node_mac_install "https://github.com/alrra/dotfiles/tree/main/src/os/installs/macos"
click node_vim_install "https://github.com/alrra/dotfiles/blob/main/src/os/installs/vim.sh"
click node_vscodium_install "https://github.com/alrra/dotfiles/blob/main/src/os/installs/macos/vscodium.sh"
click node_vim_plugins "https://github.com/alrra/dotfiles/tree/main/src/vim/vim/pack/minpac/start"
click node_mac_preferences "https://github.com/alrra/dotfiles/tree/main/src/os/preferences/macos"

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_setup_script,node_updater,node_user toneBlue
class node_symlink_script,node_git_config,node_shell_config,node_tmux_config,node_vim_config,node_local_config toneAmber
class node_install_main,node_mac_install,node_vim_install,node_vscodium_install,node_vim_plugins toneMint
class node_mac_preferences toneRose
class node_dotfiles_source toneIndigo
```

## Components

### Setup and updates

- [Setup script](https://github.com/alrra/dotfiles/blob/main/src/os/setup.sh): `src/os/setup.sh`
- [Content updater](https://github.com/alrra/dotfiles/blob/main/src/os/update_content.sh): `src/os/update_content.sh`

### User configuration

- [Create symlinks](https://github.com/alrra/dotfiles/blob/main/src/os/create_symbolic_links.sh): `src/os/create_symbolic_links.sh`
- [Git configuration](https://github.com/alrra/dotfiles/tree/main/src/git): `src/git`
- [Shell configuration](https://github.com/alrra/dotfiles/tree/main/src/shell): `src/shell`
- [tmux configuration](https://github.com/alrra/dotfiles/tree/main/src/tmux): `src/tmux`
- [Vim configuration](https://github.com/alrra/dotfiles/tree/main/src/vim): `src/vim`
- [Local config files](https://github.com/alrra/dotfiles/blob/main/src/os/create_local_config_files.sh): `src/os/create_local_config_files.sh`

### Software installation

- [Install dispatcher](https://github.com/alrra/dotfiles/blob/main/src/os/installs/main.sh): `src/os/installs/main.sh`
- [macOS installs](https://github.com/alrra/dotfiles/tree/main/src/os/installs/macos): `src/os/installs/macos`
- [Vim installer](https://github.com/alrra/dotfiles/blob/main/src/os/installs/vim.sh): `src/os/installs/vim.sh`
- [VSCodium installer](https://github.com/alrra/dotfiles/blob/main/src/os/installs/macos/vscodium.sh): `src/os/installs/macos/vscodium.sh`
- [Vim plugins](https://github.com/alrra/dotfiles/tree/main/src/vim/vim/pack/minpac/start): `src/vim/vim/pack/minpac/start`

### macOS preferences

- [macOS preferences](https://github.com/alrra/dotfiles/tree/main/src/os/preferences/macos): `src/os/preferences/macos`

### Other components

- **User**
- **Dotfiles source**

## Connections

- User → Setup script: runs
- Setup script → Dotfiles source: downloads
- User → Content updater: runs
- Setup script → Create symlinks: sets up links
- Create symlinks → Git configuration: links
- Create symlinks → Shell configuration: links
- Create symlinks → tmux configuration: links
- Create symlinks → Vim configuration: links
- Setup script → Local config files: creates
- Setup script → Install dispatcher: installs tools
- Setup script → macOS preferences: sets preferences
- Setup script → Vim installer: installs plugins
- Setup script → VSCodium installer: installs plugins
- Vim installer → Vim plugins: installs
