# kthibodeaux/.dotfiles architecture

> Architecture diagram of the GitHub repository kthibodeaux/.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/kthibodeaux/.dotfiles
- Repository: https://github.com/kthibodeaux/.dotfiles

## Overview

This repository is a personal dotfiles collection for Fedora Kinoite, combining host bootstrap scripts, KDE Plasma customization, development containers, and symlinked application configurations. A typical setup user runs host-specific setup as needed, configures Plasma in-session, creates development containers when needed, and links the selected dotfile packages into their home directory. The README documents those capabilities, but only selected KDE scripts were sampled; edges for other runtime areas are omitted where no interaction is evidenced.

Main entry points: [`kde/setup.sh`](https://github.com/kthibodeaux/.dotfiles/blob/master/kde/setup.sh) (Plasma setup), [`stow_all`](https://github.com/kthibodeaux/.dotfiles/blob/master/stow_all) (Dotfile linking), [`kde/apply-shortcuts.py`](https://github.com/kthibodeaux/.dotfiles/blob/master/kde/apply-shortcuts.py) (Apply shortcuts), [`kde/panel.js`](https://github.com/kthibodeaux/.dotfiles/blob/master/kde/panel.js) (Panel layout)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["KDE Desktop"]
  node_plasma_setup["Plasma setup<br/>[setup.sh]"]
  node_shortcuts["Apply shortcuts<br/>[apply-shortcuts.py]"]
  node_panel["Panel layout<br/>[panel.js]"]
  node_move_follow["Move and follow<br/>[main.js]"]
  node_move_follow5["Move and follow &#40;5&#41;<br/>[main.js]"]
  node_kde_config["KDE settings"]
end

subgraph group_environment["Host Environment"]
  node_host_bootstrap["Host bootstrap"]
  node_containers["Dev containers"]
end

subgraph group_dotconfigs["User Configurations"]
  node_stow["Dotfile linking"]
  node_nvim["Neovim config<br/>[nvim]"]
  node_tmux["Tmux config"]
  node_gitconfig["Git config"]
end

subgraph group_shelltools["Shell Tools"]
  node_zshconfig["Zsh config"]
  node_bashconfig["Bash config"]
  node_bin_tools["Command helpers"]
end

node_user(("Setup user"))
node_plasma["KDE Plasma"]
node_readme["Setup guide<br/>[README.md]"]

node_user -->|"follows setup"| node_readme
node_user -->|"runs in-session"| node_plasma_setup
node_user -->|"runs linking"| node_stow
node_user -->|"bootstraps host"| node_host_bootstrap
node_user -->|"creates containers"| node_containers
node_plasma_setup -->|"configures"| node_plasma
node_plasma_setup -.->|"applies shortcuts"| node_shortcuts
node_plasma_setup -.->|"sets panel"| node_panel
node_plasma_setup -.->|"installs script"| node_move_follow
node_plasma_setup -.->|"installs script"| node_move_follow5
node_shortcuts -->|"calls D-Bus"| node_plasma
node_panel -->|"evaluated by"| node_plasma
node_move_follow -->|"registers shortcut"| node_plasma
node_move_follow5 -->|"registers shortcut"| node_plasma
node_stow -->|"links package"| node_nvim
node_stow -->|"links package"| node_tmux
node_stow -->|"links package"| node_gitconfig
node_stow -->|"links package"| node_zshconfig
node_stow -->|"links package"| node_bashconfig
node_stow -.->|"links package"| node_bin_tools
node_plasma_setup -->|"configures desktop"| node_kde_config

click node_plasma_setup "https://github.com/kthibodeaux/.dotfiles/blob/master/kde/setup.sh"
click node_shortcuts "https://github.com/kthibodeaux/.dotfiles/blob/master/kde/apply-shortcuts.py"
click node_panel "https://github.com/kthibodeaux/.dotfiles/blob/master/kde/panel.js"
click node_move_follow "https://github.com/kthibodeaux/.dotfiles/blob/master/kde/move-and-follow/contents/code/main.js"
click node_move_follow5 "https://github.com/kthibodeaux/.dotfiles/blob/master/kde/plasma5/move-and-follow/contents/code/main.js"
click node_host_bootstrap "https://github.com/kthibodeaux/.dotfiles/tree/master/host"
click node_containers "https://github.com/kthibodeaux/.dotfiles/tree/master/distrobox"
click node_stow "https://github.com/kthibodeaux/.dotfiles/blob/master/stow_all"
click node_nvim "https://github.com/kthibodeaux/.dotfiles/tree/master/neovim/.config/nvim"
click node_tmux "https://github.com/kthibodeaux/.dotfiles/tree/master/tmux"
click node_gitconfig "https://github.com/kthibodeaux/.dotfiles/tree/master/git"
click node_zshconfig "https://github.com/kthibodeaux/.dotfiles/tree/master/zsh"
click node_bashconfig "https://github.com/kthibodeaux/.dotfiles/tree/master/bash"
click node_bin_tools "https://github.com/kthibodeaux/.dotfiles/tree/master/bin"
click node_kde_config "https://github.com/kthibodeaux/.dotfiles/tree/master/kde"
click node_readme "https://github.com/kthibodeaux/.dotfiles/blob/master/README.md"

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_plasma_setup,node_shortcuts,node_panel,node_move_follow,node_move_follow5,node_kde_config,node_user toneBlue
class node_host_bootstrap,node_containers toneAmber
class node_stow,node_nvim,node_tmux,node_gitconfig toneMint
class node_zshconfig,node_bashconfig,node_bin_tools toneRose
class node_plasma toneIndigo
class node_readme toneTeal
```

## Components

### KDE Desktop

- [Plasma setup](https://github.com/kthibodeaux/.dotfiles/blob/master/kde/setup.sh): `kde/setup.sh`
- [Apply shortcuts](https://github.com/kthibodeaux/.dotfiles/blob/master/kde/apply-shortcuts.py): `kde/apply-shortcuts.py`
- [Panel layout](https://github.com/kthibodeaux/.dotfiles/blob/master/kde/panel.js): `kde/panel.js`
- [Move and follow](https://github.com/kthibodeaux/.dotfiles/blob/master/kde/move-and-follow/contents/code/main.js): `kde/move-and-follow/contents/code/main.js`
- [Move and follow (5)](https://github.com/kthibodeaux/.dotfiles/blob/master/kde/plasma5/move-and-follow/contents/code/main.js): `kde/plasma5/move-and-follow/contents/code/main.js`
- [KDE settings](https://github.com/kthibodeaux/.dotfiles/tree/master/kde): `kde`

### Host Environment

- [Host bootstrap](https://github.com/kthibodeaux/.dotfiles/tree/master/host): `host`
- [Dev containers](https://github.com/kthibodeaux/.dotfiles/tree/master/distrobox): `distrobox`

### User Configurations

- [Dotfile linking](https://github.com/kthibodeaux/.dotfiles/blob/master/stow_all): `stow_all`
- [Neovim config](https://github.com/kthibodeaux/.dotfiles/tree/master/neovim/.config/nvim): `neovim/.config/nvim`
- [Tmux config](https://github.com/kthibodeaux/.dotfiles/tree/master/tmux): `tmux`
- [Git config](https://github.com/kthibodeaux/.dotfiles/tree/master/git): `git`

### Shell Tools

- [Zsh config](https://github.com/kthibodeaux/.dotfiles/tree/master/zsh): `zsh`
- [Bash config](https://github.com/kthibodeaux/.dotfiles/tree/master/bash): `bash`
- [Command helpers](https://github.com/kthibodeaux/.dotfiles/tree/master/bin): `bin`

### Other components

- **Setup user**
- **KDE Plasma**
- [Setup guide](https://github.com/kthibodeaux/.dotfiles/blob/master/README.md): `README.md`

## Connections

- Setup user → Setup guide: follows setup (evidence: `README.md`)
- Setup user → Plasma setup: runs in-session (evidence: `README.md`)
- Setup user → Dotfile linking: runs linking (evidence: `README.md`)
- Setup user → Host bootstrap: bootstraps host (evidence: `README.md`)
- Setup user → Dev containers: creates containers (evidence: `README.md`)
- Plasma setup → KDE Plasma: configures (evidence: `README.md`)
- Plasma setup → Apply shortcuts: applies shortcuts
- Plasma setup → Panel layout: sets panel
- Plasma setup → Move and follow: installs script
- Plasma setup → Move and follow (5): installs script
- Apply shortcuts → KDE Plasma: calls D-Bus (evidence: `kde/apply-shortcuts.py`)
- Panel layout → KDE Plasma: evaluated by (evidence: `kde/panel.js`)
- Move and follow → KDE Plasma: registers shortcut (evidence: `kde/move-and-follow/contents/code/main.js`)
- Move and follow (5) → KDE Plasma: registers shortcut (evidence: `kde/plasma5/move-and-follow/contents/code/main.js`)
- Dotfile linking → Neovim config: links package (evidence: `README.md`)
- Dotfile linking → Tmux config: links package (evidence: `README.md`)
- Dotfile linking → Git config: links package (evidence: `README.md`)
- Dotfile linking → Zsh config: links package (evidence: `README.md`)
- Dotfile linking → Bash config: links package (evidence: `README.md`)
- Dotfile linking → Command helpers: links package
- Plasma setup → KDE settings: configures desktop (evidence: `README.md`)
