# soldoestech/hyprv4 architecture

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

## Overview

HyprV4 is a collection of Hyprland desktop configurations, companion UI settings and utilities, with an install script for a fresh Arch system. The main user workflow is installing the setup, starting a configured desktop session, then using its bar, launchers and session controls. The tree and README identify the major desktop components; sampled source confirms the weather scripts fetch wttr.in data and emit Waybar JSON. Internal configuration wiring and installer details are not shown, so those links are omitted.

Main entry points: [`HyprV/waybar/conf`](https://github.com/soldoestech/hyprv4/tree/main/HyprV/waybar/conf) (Bar layouts), [`set-hypr`](https://github.com/soldoestech/hyprv4/blob/main/set-hypr) (Install script), [`HyprV/hyprv.conf`](https://github.com/soldoestech/hyprv4/blob/main/HyprV/hyprv.conf) (HyprV settings), [`HyprV/hypr/hyprland.conf`](https://github.com/soldoestech/hyprv4/blob/main/HyprV/hypr/hyprland.conf) (Compositor config)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Setup"]
  node_installer["Install script"]
  node_hyprvconfig["HyprV settings<br/>[hyprv.conf]"]
end

subgraph group_session["Desktop session"]
  node_hyprland["Hyprland"]
  node_hyprconfig["Compositor config<br/>[hyprland.conf]"]
  node_envconfig["Environment config<br/>[env_var.conf]"]
  node_binds["Key bindings<br/>[media-binds.conf]"]
end

subgraph group_widgets["Desktop utilities"]
  node_waybar["Waybar"]
  node_barconfig["Bar layouts"]
  node_barscripts["Bar actions"]
  node_weather["Weather scripts<br/>[waybar-wttr.py]"]
  node_wofi["Wofi launcher"]
  node_woficonfig["Launcher config"]
  node_mako["Mako notifications"]
  node_makoconfig["Notification config"]
  node_kitty["Kitty terminal"]
  node_kittyconfig["Terminal config<br/>[kitty.conf]"]
end

subgraph group_login["Login and power"]
  node_swaylock["Screen lock"]
  node_swaylockconfig["Lock config"]
  node_wlogout["Logout menu"]
  node_logoutlayout["Logout layout"]
  node_sddm["SDDM login theme<br/>[Main.qml]"]
  node_sddmcomponents["Login components<br/>[LoginForm.qml]"]
end

node_user(("User"))
node_wttr["wttr.in"]
node_externalapps["Desktop applications"]

node_user -->|"runs"| node_installer
node_installer -->|"installs"| node_hyprvconfig
node_user -->|"starts session"| node_hyprland
node_hyprconfig -->|"configures"| node_hyprland
node_envconfig -->|"sets environment"| node_hyprland
node_binds -->|"defines bindings"| node_hyprland
node_hyprvconfig -->|"provides settings"| node_hyprconfig
node_waybar -->|"uses layouts"| node_barconfig
node_barconfig -->|"invokes actions"| node_barscripts
node_weather -->|"fetches forecast"| node_wttr
node_barconfig -.->|"invokes weather"| node_weather
node_wofi -->|"uses settings"| node_woficonfig
node_mako -->|"uses settings"| node_makoconfig
node_kitty -->|"uses settings"| node_kittyconfig
node_swaylock -->|"uses settings"| node_swaylockconfig
node_wlogout -->|"uses layout"| node_logoutlayout
node_sddm -->|"uses components"| node_sddmcomponents
node_hyprland -->|"hosts"| node_waybar
node_hyprland -->|"hosts"| node_wofi
node_hyprland -->|"hosts"| node_mako
node_hyprland -->|"hosts"| node_kitty
node_hyprland -->|"hosts"| node_swaylock
node_hyprland -->|"hosts"| node_wlogout
node_user -->|"uses"| node_externalapps

click node_installer "https://github.com/soldoestech/hyprv4/blob/main/set-hypr"
click node_hyprvconfig "https://github.com/soldoestech/hyprv4/blob/main/HyprV/hyprv.conf"
click node_hyprconfig "https://github.com/soldoestech/hyprv4/blob/main/HyprV/hypr/hyprland.conf"
click node_envconfig "https://github.com/soldoestech/hyprv4/blob/main/HyprV/hypr/env_var.conf"
click node_binds "https://github.com/soldoestech/hyprv4/blob/main/HyprV/hypr/media-binds.conf"
click node_barconfig "https://github.com/soldoestech/hyprv4/tree/main/HyprV/waybar/conf"
click node_barscripts "https://github.com/soldoestech/hyprv4/tree/main/HyprV/waybar/scripts"
click node_weather "https://github.com/soldoestech/hyprv4/blob/main/HyprV/waybar/scripts/waybar-wttr.py"
click node_woficonfig "https://github.com/soldoestech/hyprv4/blob/main/HyprV/wofi/config"
click node_makoconfig "https://github.com/soldoestech/hyprv4/blob/main/HyprV/mako/conf/config"
click node_kittyconfig "https://github.com/soldoestech/hyprv4/blob/main/HyprV/kitty/kitty.conf"
click node_swaylockconfig "https://github.com/soldoestech/hyprv4/blob/main/HyprV/swaylock/config"
click node_logoutlayout "https://github.com/soldoestech/hyprv4/blob/main/HyprV/wlogout/layout"
click node_sddm "https://github.com/soldoestech/hyprv4/blob/main/Extras/sdt/Main.qml"
click node_sddmcomponents "https://github.com/soldoestech/hyprv4/blob/main/Extras/sdt/Components/LoginForm.qml"

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_installer,node_hyprvconfig,node_user toneBlue
class node_hyprland,node_hyprconfig,node_envconfig,node_binds toneAmber
class node_waybar,node_barconfig,node_barscripts,node_weather,node_wofi,node_woficonfig,node_mako,node_makoconfig,node_kitty,node_kittyconfig toneMint
class node_swaylock,node_swaylockconfig,node_wlogout,node_logoutlayout,node_sddm,node_sddmcomponents toneRose
class node_wttr,node_externalapps toneIndigo
```

## Components

### Setup

- [Install script](https://github.com/soldoestech/hyprv4/blob/main/set-hypr): `set-hypr`
- [HyprV settings](https://github.com/soldoestech/hyprv4/blob/main/HyprV/hyprv.conf): `HyprV/hyprv.conf`

### Desktop session

- **Hyprland**
- [Compositor config](https://github.com/soldoestech/hyprv4/blob/main/HyprV/hypr/hyprland.conf): `HyprV/hypr/hyprland.conf`
- [Environment config](https://github.com/soldoestech/hyprv4/blob/main/HyprV/hypr/env_var.conf): `HyprV/hypr/env_var.conf`
- [Key bindings](https://github.com/soldoestech/hyprv4/blob/main/HyprV/hypr/media-binds.conf): `HyprV/hypr/media-binds.conf`

### Desktop utilities

- **Waybar**
- [Bar layouts](https://github.com/soldoestech/hyprv4/tree/main/HyprV/waybar/conf): `HyprV/waybar/conf`
- [Bar actions](https://github.com/soldoestech/hyprv4/tree/main/HyprV/waybar/scripts): `HyprV/waybar/scripts`
- [Weather scripts](https://github.com/soldoestech/hyprv4/blob/main/HyprV/waybar/scripts/waybar-wttr.py): `HyprV/waybar/scripts/waybar-wttr.py`
- **Wofi launcher**
- [Launcher config](https://github.com/soldoestech/hyprv4/blob/main/HyprV/wofi/config): `HyprV/wofi/config`
- **Mako notifications**
- [Notification config](https://github.com/soldoestech/hyprv4/blob/main/HyprV/mako/conf/config): `HyprV/mako/conf/config`
- **Kitty terminal**
- [Terminal config](https://github.com/soldoestech/hyprv4/blob/main/HyprV/kitty/kitty.conf): `HyprV/kitty/kitty.conf`

### Login and power

- **Screen lock**
- [Lock config](https://github.com/soldoestech/hyprv4/blob/main/HyprV/swaylock/config): `HyprV/swaylock/config`
- **Logout menu**
- [Logout layout](https://github.com/soldoestech/hyprv4/blob/main/HyprV/wlogout/layout): `HyprV/wlogout/layout`
- [SDDM login theme](https://github.com/soldoestech/hyprv4/blob/main/Extras/sdt/Main.qml): `Extras/sdt/Main.qml`
- [Login components](https://github.com/soldoestech/hyprv4/blob/main/Extras/sdt/Components/LoginForm.qml): `Extras/sdt/Components/LoginForm.qml`

### Other components

- **User**
- **wttr.in**
- **Desktop applications**

## Connections

- User → Install script: runs
- Install script → HyprV settings: installs
- User → Hyprland: starts session
- Compositor config → Hyprland: configures
- Environment config → Hyprland: sets environment
- Key bindings → Hyprland: defines bindings
- HyprV settings → Compositor config: provides settings
- Waybar → Bar layouts: uses layouts
- Bar layouts → Bar actions: invokes actions
- Weather scripts → wttr.in: fetches forecast
- Bar layouts → Weather scripts: invokes weather
- Wofi launcher → Launcher config: uses settings
- Mako notifications → Notification config: uses settings
- Kitty terminal → Terminal config: uses settings
- Screen lock → Lock config: uses settings
- Logout menu → Logout layout: uses layout
- SDDM login theme → Login components: uses components
- Hyprland → Waybar: hosts
- Hyprland → Wofi launcher: hosts
- Hyprland → Mako notifications: hosts
- Hyprland → Kitty terminal: hosts
- Hyprland → Screen lock: hosts
- Hyprland → Logout menu: hosts
- User → Desktop applications: uses
