# neeeeow/klassik architecture

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

## Overview

Klassik recreates the KDE 3 desktop experience as a Plasma theme: users enable the global theme, which supplies the desktop layout and classic panel; the panel hosts applets for launching applications, managing tasks, and showing the time. Other major branches provide the classic application style, KDE 2 window decoration, color schemes, and wallpapers. The README documents these capabilities; sampled source confirms selected menu, launcher, task-manager, painting, and decoration behavior, but not all subsystem wiring.

Main entry points: [`src/panel`](https://github.com/neeeeow/klassik/tree/master/src/panel) (Panel containment), [`src/applets/taskmanager`](https://github.com/neeeeow/klassik/tree/master/src/applets/taskmanager) (Task manager), [`src/lookandfeel/contents/layouts/org.kde.plasma.desktop-layout.js`](https://github.com/neeeeow/klassik/blob/master/src/lookandfeel/contents/layouts/org.kde.plasma.desktop-layout.js) (Global theme layout), [`src/applets/kmenu/kmenuapplet.cpp`](https://github.com/neeeeow/klassik/blob/master/src/applets/kmenu/kmenuapplet.cpp) (K Menu)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop shell"]
  node_theme["Global theme layout"]
  node_panel["Panel containment"]
  node_layout["Applet layout manager<br/>[LayoutManager.js]"]
  node_panelpaint["Panel background"]
end

subgraph group_applets["Panel applets"]
  node_kmenu["K Menu<br/>[kmenuapplet.cpp]"]
  node_servicemenu["Application menus<br/>[servicemenu.cpp]"]
  node_quicklaunch["Quicklaunch<br/>[quicklaunch_p.cpp]"]
  node_taskmanager["Task manager"]
  node_tasktools["Task interactions<br/>[TaskTools.js]"]
  node_clock["Digital and analog clock<br/>[clock.cpp]"]
  node_lockout["Lock and logout"]
end

subgraph group_visuals["Classic visuals"]
  node_style["Klassik application style<br/>[klassikstyle.cpp]"]
  node_styleplugin["Style plugin"]
  node_painteditem["Qt Quick painting<br/>[painteditem.cpp]"]
  node_schemes["Color schemes"]
  node_wallpapers["Wallpapers"]
end

subgraph group_decoration["Window decoration"]
  node_kde2["KDE 2 decoration<br/>[kde2.cpp]"]
end

node_user(("Desktop user"))
node_launchers["Application launching"]

node_user -->|"enables"| node_theme
node_theme -->|"loads layout"| node_panel
node_panel -->|"manages applets"| node_layout
node_panel -->|"draws background"| node_panelpaint
node_panel -->|"hosts"| node_kmenu
node_panel -->|"hosts"| node_quicklaunch
node_panel -->|"hosts"| node_taskmanager
node_panel -->|"hosts"| node_clock
node_panel -->|"hosts"| node_lockout
node_kmenu -->|"builds menus"| node_servicemenu
node_servicemenu -->|"launches services"| node_launchers
node_quicklaunch -->|"launches apps"| node_launchers
node_taskmanager -->|"uses interactions"| node_tasktools
node_tasktools -->|"requests task actions"| node_taskmanager
node_styleplugin -->|"provides style"| node_style
node_style -->|"supplies active style"| node_painteditem

click node_theme "https://github.com/neeeeow/klassik/blob/master/src/lookandfeel/contents/layouts/org.kde.plasma.desktop-layout.js"
click node_panel "https://github.com/neeeeow/klassik/tree/master/src/panel"
click node_layout "https://github.com/neeeeow/klassik/blob/master/src/panel/LayoutManager.js"
click node_panelpaint "https://github.com/neeeeow/klassik/blob/master/src/panel/panelbackground.cpp"
click node_kmenu "https://github.com/neeeeow/klassik/blob/master/src/applets/kmenu/kmenuapplet.cpp"
click node_servicemenu "https://github.com/neeeeow/klassik/blob/master/src/applets/kmenu/servicemenu.cpp"
click node_quicklaunch "https://github.com/neeeeow/klassik/blob/master/src/applets/quicklaunch/quicklaunch_p.cpp"
click node_taskmanager "https://github.com/neeeeow/klassik/tree/master/src/applets/taskmanager"
click node_tasktools "https://github.com/neeeeow/klassik/blob/master/src/applets/taskmanager/qml/code/TaskTools.js"
click node_clock "https://github.com/neeeeow/klassik/blob/master/src/applets/clock/clock.cpp"
click node_lockout "https://github.com/neeeeow/klassik/tree/master/src/applets/lockout"
click node_style "https://github.com/neeeeow/klassik/blob/master/src/qstyle/klassikstyle.cpp"
click node_styleplugin "https://github.com/neeeeow/klassik/blob/master/src/qstyle/klassikstyleplugin.cpp"
click node_painteditem "https://github.com/neeeeow/klassik/blob/master/src/common/painteditem.cpp"
click node_schemes "https://github.com/neeeeow/klassik/tree/master/src/color-schemes"
click node_wallpapers "https://github.com/neeeeow/klassik/tree/master/src/wallpapers"
click node_kde2 "https://github.com/neeeeow/klassik/blob/master/src/kwin/kde2/kde2.cpp"

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_theme,node_panel,node_layout,node_panelpaint,node_user toneBlue
class node_kmenu,node_servicemenu,node_quicklaunch,node_taskmanager,node_tasktools,node_clock,node_lockout toneAmber
class node_style,node_styleplugin,node_painteditem,node_schemes,node_wallpapers toneMint
class node_kde2 toneRose
class node_launchers toneIndigo
```

## Components

### Desktop shell

- [Global theme layout](https://github.com/neeeeow/klassik/blob/master/src/lookandfeel/contents/layouts/org.kde.plasma.desktop-layout.js): `src/lookandfeel/contents/layouts/org.kde.plasma.desktop-layout.js`
- [Panel containment](https://github.com/neeeeow/klassik/tree/master/src/panel): `src/panel`
- [Applet layout manager](https://github.com/neeeeow/klassik/blob/master/src/panel/LayoutManager.js): `src/panel/LayoutManager.js`
- [Panel background](https://github.com/neeeeow/klassik/blob/master/src/panel/panelbackground.cpp): `src/panel/panelbackground.cpp`

### Panel applets

- [K Menu](https://github.com/neeeeow/klassik/blob/master/src/applets/kmenu/kmenuapplet.cpp): `src/applets/kmenu/kmenuapplet.cpp`
- [Application menus](https://github.com/neeeeow/klassik/blob/master/src/applets/kmenu/servicemenu.cpp): `src/applets/kmenu/servicemenu.cpp`
- [Quicklaunch](https://github.com/neeeeow/klassik/blob/master/src/applets/quicklaunch/quicklaunch_p.cpp): `src/applets/quicklaunch/quicklaunch_p.cpp`
- [Task manager](https://github.com/neeeeow/klassik/tree/master/src/applets/taskmanager): `src/applets/taskmanager`
- [Task interactions](https://github.com/neeeeow/klassik/blob/master/src/applets/taskmanager/qml/code/TaskTools.js): `src/applets/taskmanager/qml/code/TaskTools.js`
- [Digital and analog clock](https://github.com/neeeeow/klassik/blob/master/src/applets/clock/clock.cpp): `src/applets/clock/clock.cpp`
- [Lock and logout](https://github.com/neeeeow/klassik/tree/master/src/applets/lockout): `src/applets/lockout`

### Classic visuals

- [Klassik application style](https://github.com/neeeeow/klassik/blob/master/src/qstyle/klassikstyle.cpp): `src/qstyle/klassikstyle.cpp`
- [Style plugin](https://github.com/neeeeow/klassik/blob/master/src/qstyle/klassikstyleplugin.cpp): `src/qstyle/klassikstyleplugin.cpp`
- [Qt Quick painting](https://github.com/neeeeow/klassik/blob/master/src/common/painteditem.cpp): `src/common/painteditem.cpp`
- [Color schemes](https://github.com/neeeeow/klassik/tree/master/src/color-schemes): `src/color-schemes`
- [Wallpapers](https://github.com/neeeeow/klassik/tree/master/src/wallpapers): `src/wallpapers`

### Window decoration

- [KDE 2 decoration](https://github.com/neeeeow/klassik/blob/master/src/kwin/kde2/kde2.cpp): `src/kwin/kde2/kde2.cpp`

### Other components

- **Desktop user**
- **Application launching**

## Connections

- Desktop user → Global theme layout: enables
- Global theme layout → Panel containment: loads layout
- Panel containment → Applet layout manager: manages applets
- Panel containment → Panel background: draws background
- Panel containment → K Menu: hosts
- Panel containment → Quicklaunch: hosts
- Panel containment → Task manager: hosts
- Panel containment → Digital and analog clock: hosts
- Panel containment → Lock and logout: hosts
- K Menu → Application menus: builds menus
- Application menus → Application launching: launches services
- Quicklaunch → Application launching: launches apps
- Task manager → Task interactions: uses interactions
- Task interactions → Task manager: requests task actions
- Style plugin → Klassik application style: provides style
- Klassik application style → Qt Quick painting: supplies active style
