# ivanpavlak/winux architecture

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

- Interactive diagram: https://gitdiagram.com/ivanpavlak/winux
- Repository: https://github.com/ivanpavlak/winux

## Overview

WinuX is a PowerShell dotfiles and Windows environment configurator. Its documented main flow is a user-triggered bootstrap that applies machine-aware configuration, provisions software and settings, and can be rerun for repair. Separate workflows manage repositories, application workspaces, window layouts, themes, WSL, and AI skills. The README documents these capabilities, but sampled source is limited to Firefox preferences and native window helpers, so links between runtime subsystems are conservative.

Main entry points: [`Windows/PowerShell/Modules/Bootstrap/Functions/Resolve-BootstrapSteps.ps1`](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/Resolve-BootstrapSteps.ps1) (Bootstrap steps), [`Windows/PowerShell/Modules/Bootstrap/Functions/Bootstrap.ps1`](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/Bootstrap.ps1) (Bootstrap), [`Windows/PowerShell/Modules/Application/Functions/Invoke-ObsidianWorkspaceLoad.ps1`](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Application/Functions/Invoke-ObsidianWorkspaceLoad.ps1) (Workspace loading), [`Windows/PowerShell/Modules/Application/Functions/Install-WingetApps.ps1`](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Application/Functions/Install-WingetApps.ps1) (Application installs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Bootstrap and Configuration"]
  node_bootstrap["Bootstrap<br/>[Bootstrap.ps1]"]
  node_configuration["Configuration<br/>[Configuration.psd1]"]
  node_machine["Machine profiles"]
  node_steps["Bootstrap steps"]
end

subgraph group_provision["System Provisioning"]
  node_packages["Package managers"]
  node_apps["Application installs"]
  node_system["System settings"]
  node_symlinks["Dotfile links"]
  node_repositories["Repository updates"]
end

subgraph group_workflows["Workflows and Applications"]
  node_application["Application launch"]
  node_project["Project runner<br/>[Run-Project.ps1]"]
  node_workspace["Workspace loading"]
  node_windows["Window management<br/>[WindowNative.cs]"]
  node_theme["System theming"]
  node_wsl["WSL setup<br/>[Configure-WSL.ps1]"]
end

subgraph group_extensions["Integrations"]
  node_ai["AI skill deployment"]
end

node_user(("WinuX user"))
node_windows_os["Windows"]
node_package_sources["Package sources"]

node_user -->|"starts"| node_bootstrap
node_bootstrap -->|"uses settings"| node_configuration
node_bootstrap -->|"detects profile"| node_machine
node_bootstrap -->|"resolves steps"| node_steps
node_steps -->|"selects managers"| node_packages
node_steps -->|"provisions apps"| node_apps
node_steps -->|"applies settings"| node_system
node_steps -->|"links dotfiles"| node_symlinks
node_steps -->|"updates repos"| node_repositories
node_user -->|"runs projects"| node_project
node_user -->|"loads workspace"| node_workspace
node_workspace -->|"opens applications"| node_application
node_workspace -->|"positions windows"| node_windows
node_user -->|"sets theme"| node_theme
node_user -->|"provisions WSL"| node_wsl
node_user -->|"deploys skills"| node_ai
node_system -->|"configures"| node_windows_os
node_apps -->|"installs from"| node_package_sources
node_repositories -->|"clones or updates"| node_package_sources

click node_bootstrap "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/Bootstrap.ps1"
click node_configuration "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Configuration.psd1"
click node_machine "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/DetermineMachineType.ps1"
click node_steps "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/Resolve-BootstrapSteps.ps1"
click node_packages "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/Resolve-PackageManagers.ps1"
click node_apps "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Application/Functions/Install-WingetApps.ps1"
click node_system "https://github.com/ivanpavlak/winux/tree/master/Windows/PowerShell/Modules/System"
click node_symlinks "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Configuration/Functions/Add-SymbolicLink.ps1"
click node_repositories "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Git/Functions/Update-Repositories.ps1"
click node_application "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Application/Functions/Start-Application.ps1"
click node_project "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Helper/Functions/Run-Project.ps1"
click node_workspace "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Application/Functions/Invoke-ObsidianWorkspaceLoad.ps1"
click node_windows "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Window/WindowNative.cs"
click node_theme "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/System/Functions/Set-SystemTheme.ps1"
click node_wsl "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/System/Functions/Configure-WSL.ps1"
click node_ai "https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/AI/Functions/Deploy-AiSkills.ps1"

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_bootstrap,node_configuration,node_machine,node_steps,node_user toneBlue
class node_packages,node_apps,node_system,node_symlinks,node_repositories toneAmber
class node_application,node_project,node_workspace,node_windows,node_theme,node_wsl toneMint
class node_ai toneRose
class node_windows_os,node_package_sources toneIndigo
```

## Components

### Bootstrap and Configuration

- [Bootstrap](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/Bootstrap.ps1): `Windows/PowerShell/Modules/Bootstrap/Functions/Bootstrap.ps1`
- [Configuration](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Configuration.psd1): `Windows/PowerShell/Configuration.psd1`
- [Machine profiles](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/DetermineMachineType.ps1): `Windows/PowerShell/Modules/Bootstrap/Functions/DetermineMachineType.ps1`
- [Bootstrap steps](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/Resolve-BootstrapSteps.ps1): `Windows/PowerShell/Modules/Bootstrap/Functions/Resolve-BootstrapSteps.ps1`

### System Provisioning

- [Package managers](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Bootstrap/Functions/Resolve-PackageManagers.ps1): `Windows/PowerShell/Modules/Bootstrap/Functions/Resolve-PackageManagers.ps1`
- [Application installs](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Application/Functions/Install-WingetApps.ps1): `Windows/PowerShell/Modules/Application/Functions/Install-WingetApps.ps1`
- [System settings](https://github.com/ivanpavlak/winux/tree/master/Windows/PowerShell/Modules/System): `Windows/PowerShell/Modules/System`
- [Dotfile links](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Configuration/Functions/Add-SymbolicLink.ps1): `Windows/PowerShell/Modules/Configuration/Functions/Add-SymbolicLink.ps1`
- [Repository updates](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Git/Functions/Update-Repositories.ps1): `Windows/PowerShell/Modules/Git/Functions/Update-Repositories.ps1`

### Workflows and Applications

- [Application launch](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Application/Functions/Start-Application.ps1): `Windows/PowerShell/Modules/Application/Functions/Start-Application.ps1`
- [Project runner](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Helper/Functions/Run-Project.ps1): `Windows/PowerShell/Modules/Helper/Functions/Run-Project.ps1`
- [Workspace loading](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Application/Functions/Invoke-ObsidianWorkspaceLoad.ps1): `Windows/PowerShell/Modules/Application/Functions/Invoke-ObsidianWorkspaceLoad.ps1`
- [Window management](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/Window/WindowNative.cs): `Windows/PowerShell/Modules/Window/WindowNative.cs`
- [System theming](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/System/Functions/Set-SystemTheme.ps1): `Windows/PowerShell/Modules/System/Functions/Set-SystemTheme.ps1`
- [WSL setup](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/System/Functions/Configure-WSL.ps1): `Windows/PowerShell/Modules/System/Functions/Configure-WSL.ps1`

### Integrations

- [AI skill deployment](https://github.com/ivanpavlak/winux/blob/master/Windows/PowerShell/Modules/AI/Functions/Deploy-AiSkills.ps1): `Windows/PowerShell/Modules/AI/Functions/Deploy-AiSkills.ps1`

### Other components

- **WinuX user**
- **Windows**
- **Package sources**

## Connections

- WinuX user → Bootstrap: starts
- Bootstrap → Configuration: uses settings
- Bootstrap → Machine profiles: detects profile
- Bootstrap → Bootstrap steps: resolves steps
- Bootstrap steps → Package managers: selects managers
- Bootstrap steps → Application installs: provisions apps
- Bootstrap steps → System settings: applies settings
- Bootstrap steps → Dotfile links: links dotfiles
- Bootstrap steps → Repository updates: updates repos
- WinuX user → Project runner: runs projects
- WinuX user → Workspace loading: loads workspace
- Workspace loading → Application launch: opens applications
- Workspace loading → Window management: positions windows
- WinuX user → System theming: sets theme
- WinuX user → WSL setup: provisions WSL
- WinuX user → AI skill deployment: deploys skills
- System settings → Windows: configures
- Application installs → Package sources: installs from
- Repository updates → Package sources: clones or updates
