# maxpoww/standard-os architecture

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

- Interactive diagram: https://gitdiagram.com/maxpoww/standard-os
- Repository: https://github.com/maxpoww/standard-os

## Overview

This repository configures a Standard-OS Nix desktop environment, with window-management, shell UI, system services, and notification tooling. The notification workflow is the clearest runtime path in the sampled source: applications send notifications over D-Bus; the daemon captures metadata and the active Hyprland window, stores active notifications, and appends a bounded JSONL history. The tree and plans indicate additional desktop capabilities, but their implementation and wiring were not sampled, so those branches are shown without speculative connections.

Main entry points: [`home/notif-os-daemon/src/notifications.rs`](https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/notifications.rs) (Freedesktop interface), [`home/notif-os-daemon/src/main.rs`](https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/main.rs) (Notification daemon), [`home/notif-os-daemon/src/notifos.rs`](https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/notifos.rs) (NotifOS extension), [`configuration.nix`](https://github.com/maxpoww/standard-os/blob/main/configuration.nix) (Host configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_system["System configuration"]
  node_nixroot["Host configuration<br/>[configuration.nix]"]
  node_systemmodules["System modules"]
  node_homemodules["Home modules"]
end

subgraph group_desktop["Desktop experience"]
  node_hypr["Hyprland setup"]
  node_waybar["Waybar shell<br/>[waybar.nix]"]
  node_rofi["Rofi launcher<br/>[rofi.nix]"]
  node_canvas["Widgets canvas<br/>[widgets-canvas.nix]"]
end

subgraph group_notifications["Notifications"]
  node_notifdaemon["Notification daemon<br/>[main.rs]"]
  node_freedesktop["Freedesktop interface<br/>[notifications.rs]"]
  node_notifapi["NotifOS extension<br/>[notifos.rs]"]
  node_notifstore[("Active notification store<br/>[store.rs]")]
  node_journal[("Notification journal<br/>[journal.rs]")]
  node_notifmenu["Notification menu"]
end

subgraph group_services["Background services"]
  node_brightness["Brightness service"]
  node_weather["Weather service<br/>[weather-daemon.nix]"]
  node_pomodoro["Pomodoro service"]
  node_landscape["Landscape view<br/>[landscape-snap.nix]"]
end

node_user(("Desktop user"))
node_application(("Desktop applications"))
node_sessionbus(("Session D-Bus"))
node_hyprctl(("Hyprland control"))

node_nixroot -->|"configures"| node_systemmodules
node_nixroot -->|"configures"| node_homemodules
node_user -->|"uses"| node_hypr
node_user -->|"uses"| node_waybar
node_user -->|"uses"| node_rofi
node_user -->|"uses"| node_canvas
node_application -->|"sends notifications"| node_sessionbus
node_sessionbus -->|"dispatches calls"| node_notifdaemon
node_notifdaemon -->|"serves interface"| node_freedesktop
node_notifdaemon -->|"serves interface"| node_notifapi
node_freedesktop -->|"queries window"| node_hyprctl
node_freedesktop -->|"inserts or removes"| node_notifstore
node_freedesktop -->|"appends and prunes"| node_journal
node_notifapi -->|"lists or removes"| node_notifstore
node_notifapi -->|"emits signals"| node_freedesktop
node_notifmenu -.->|"reads notification API"| node_sessionbus
node_brightness -.->|"supports controls"| node_user
node_weather -.->|"provides weather"| node_user
node_pomodoro -.->|"provides timer"| node_user
node_landscape -.->|"provides view"| node_user

click node_nixroot "https://github.com/maxpoww/standard-os/blob/main/configuration.nix"
click node_systemmodules "https://github.com/maxpoww/standard-os/tree/main/modules"
click node_homemodules "https://github.com/maxpoww/standard-os/tree/main/home/modules"
click node_hypr "https://github.com/maxpoww/standard-os/blob/main/home/modules/hyprland-config.nix"
click node_waybar "https://github.com/maxpoww/standard-os/blob/main/home/modules/waybar.nix"
click node_rofi "https://github.com/maxpoww/standard-os/blob/main/home/modules/rofi.nix"
click node_canvas "https://github.com/maxpoww/standard-os/blob/main/home/modules/widgets-canvas.nix"
click node_notifdaemon "https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/main.rs"
click node_freedesktop "https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/notifications.rs"
click node_notifapi "https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/notifos.rs"
click node_notifstore "https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/store.rs"
click node_journal "https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/journal.rs"
click node_notifmenu "https://github.com/maxpoww/standard-os/blob/main/home/scripts/notif-menu"
click node_brightness "https://github.com/maxpoww/standard-os/blob/main/home/modules/brightness-daemon.nix"
click node_weather "https://github.com/maxpoww/standard-os/blob/main/home/modules/weather-daemon.nix"
click node_pomodoro "https://github.com/maxpoww/standard-os/blob/main/home/modules/pomodoro-daemon.nix"
click node_landscape "https://github.com/maxpoww/standard-os/blob/main/home/modules/landscape-snap.nix"

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_nixroot,node_systemmodules,node_homemodules,node_user toneBlue
class node_hypr,node_waybar,node_rofi,node_canvas toneAmber
class node_notifdaemon,node_freedesktop,node_notifapi,node_notifstore,node_journal,node_notifmenu toneMint
class node_brightness,node_weather,node_pomodoro,node_landscape toneRose
class node_application,node_sessionbus,node_hyprctl toneIndigo
```

## Components

### System configuration

- [Host configuration](https://github.com/maxpoww/standard-os/blob/main/configuration.nix): `configuration.nix`
- [System modules](https://github.com/maxpoww/standard-os/tree/main/modules): `modules`
- [Home modules](https://github.com/maxpoww/standard-os/tree/main/home/modules): `home/modules`

### Desktop experience

- [Hyprland setup](https://github.com/maxpoww/standard-os/blob/main/home/modules/hyprland-config.nix): `home/modules/hyprland-config.nix`
- [Waybar shell](https://github.com/maxpoww/standard-os/blob/main/home/modules/waybar.nix): `home/modules/waybar.nix`
- [Rofi launcher](https://github.com/maxpoww/standard-os/blob/main/home/modules/rofi.nix): `home/modules/rofi.nix`
- [Widgets canvas](https://github.com/maxpoww/standard-os/blob/main/home/modules/widgets-canvas.nix): `home/modules/widgets-canvas.nix`

### Notifications

- [Notification daemon](https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/main.rs): `home/notif-os-daemon/src/main.rs`
- [Freedesktop interface](https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/notifications.rs): `home/notif-os-daemon/src/notifications.rs`
- [NotifOS extension](https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/notifos.rs): `home/notif-os-daemon/src/notifos.rs`
- [Active notification store](https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/store.rs): `home/notif-os-daemon/src/store.rs`
- [Notification journal](https://github.com/maxpoww/standard-os/blob/main/home/notif-os-daemon/src/journal.rs): `home/notif-os-daemon/src/journal.rs`
- [Notification menu](https://github.com/maxpoww/standard-os/blob/main/home/scripts/notif-menu): `home/scripts/notif-menu`

### Background services

- [Brightness service](https://github.com/maxpoww/standard-os/blob/main/home/modules/brightness-daemon.nix): `home/modules/brightness-daemon.nix`
- [Weather service](https://github.com/maxpoww/standard-os/blob/main/home/modules/weather-daemon.nix): `home/modules/weather-daemon.nix`
- [Pomodoro service](https://github.com/maxpoww/standard-os/blob/main/home/modules/pomodoro-daemon.nix): `home/modules/pomodoro-daemon.nix`
- [Landscape view](https://github.com/maxpoww/standard-os/blob/main/home/modules/landscape-snap.nix): `home/modules/landscape-snap.nix`

### Other components

- **Desktop user**
- **Desktop applications**
- **Session D-Bus**
- **Hyprland control**

## Connections

- Host configuration → System modules: configures
- Host configuration → Home modules: configures
- Desktop user → Hyprland setup: uses
- Desktop user → Waybar shell: uses
- Desktop user → Rofi launcher: uses
- Desktop user → Widgets canvas: uses
- Desktop applications → Session D-Bus: sends notifications
- Session D-Bus → Notification daemon: dispatches calls
- Notification daemon → Freedesktop interface: serves interface
- Notification daemon → NotifOS extension: serves interface
- Freedesktop interface → Hyprland control: queries window
- Freedesktop interface → Active notification store: inserts or removes
- Freedesktop interface → Notification journal: appends and prunes
- NotifOS extension → Active notification store: lists or removes
- NotifOS extension → Freedesktop interface: emits signals
- Notification menu → Session D-Bus: reads notification API
- Brightness service → Desktop user: supports controls
- Weather service → Desktop user: provides weather
- Pomodoro service → Desktop user: provides timer
- Landscape view → Desktop user: provides view
