# colemanstone/hyprland-config architecture

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

## Overview

This is uBlock Origin Lite, a Manifest V3 browser content blocker. Users configure filtering through extension interfaces; background coordination applies enabled rulesets and filtering modes, while browser-managed request rules and injected scripts block network requests and remove page content. The tree also shows strict-block handling, rule editors, reporting, and element zapper tools. The README is empty, and most implementation files were not sampled, so links between several UI and runtime subsystems are intentionally not asserted; sampled manager dependencies are shown directly.

Main entry points: [`config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ruleset-manager.js`](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ruleset-manager.js) (Ruleset manager), [`config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/background.js`](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/background.js) (Background worker), [`config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/mode-manager.js`](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/mode-manager.js) (Filtering modes), [`config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/scripting-manager.js`](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/scripting-manager.js) (Scripting manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["User interfaces"]
  node_popup["Popup controls<br/>[popup.js]"]
  node_dashboard["Dashboard<br/>[dashboard.js]"]
end

subgraph group_coordination["Background coordination"]
  node_background["Background worker<br/>[background.js]"]
  node_rulesets["Ruleset manager<br/>[ruleset-manager.js]"]
  node_scripting["Scripting manager"]
  node_modes["Filtering modes<br/>[mode-manager.js]"]
end

subgraph group_filtering["Filtering runtime"]
  node_dnr["Request rules<br/>[ruleset-manager.js]"]
  node_rulesdata["Bundled rulesets<br/>[scripting]"]
  node_cosmetic["Page filtering<br/>[scripting]"]
  node_strict["Strict blocking<br/>[strictblock.js]"]
end

subgraph group_support["Configuration and tools"]
  node_config[("Ruleset config<br/>[config.js]")]
  node_storage[("Extension storage<br/>[ext.js]")]
  node_editors["Rule editors<br/>[dnr-editor.js]"]
  node_zapper["Element zapper<br/>[zapper-ui.js]"]
  node_report["Reporting<br/>[report.js]"]
  node_fetch["Extension resources<br/>[fetch.js]"]
end

node_user(("User"))
node_browser{{"Browser APIs"}}
node_webpage(("Web pages"))

node_user -->|"configures"| node_popup
node_user -->|"manages"| node_dashboard
node_popup -->|"sends requests"| node_background
node_dashboard -->|"sends requests"| node_background
node_background -->|"coordinates"| node_rulesets
node_background -->|"coordinates"| node_scripting
node_background -->|"coordinates"| node_modes
node_rulesets -->|"loads details"| node_fetch
node_scripting -->|"loads details"| node_fetch
node_rulesets -->|"saves settings"| node_config
node_rulesets -->|"updates state"| node_storage
node_modes -->|"converts modes"| node_rulesets
node_modes -->|"reads and writes"| node_storage
node_modes -->|"saves settings"| node_config
node_rulesets -->|"updates rules"| node_dnr
node_dnr -->|"registers rules"| node_browser
node_scripting -->|"registers scripts"| node_browser
node_rulesdata -.->|"provides resources"| node_scripting
node_browser -->|"injects scripts"| node_cosmetic
node_cosmetic -->|"filters content"| node_webpage
node_browser -->|"opens block page"| node_strict
node_user -->|"edits rules"| node_editors
node_user -->|"selects elements"| node_zapper
node_user -->|"requests report"| node_report

click node_popup "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/popup.js"
click node_dashboard "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/dashboard.js"
click node_background "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/background.js"
click node_rulesets "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ruleset-manager.js"
click node_scripting "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/scripting-manager.js"
click node_modes "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/mode-manager.js"
click node_dnr "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ruleset-manager.js"
click node_rulesdata "https://github.com/colemanstone/hyprland-config/tree/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/rulesets/scripting"
click node_cosmetic "https://github.com/colemanstone/hyprland-config/tree/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/scripting"
click node_strict "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/strictblock.js"
click node_config "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/config.js"
click node_storage "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ext.js"
click node_editors "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/dnr-editor.js"
click node_zapper "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/zapper-ui.js"
click node_report "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/report.js"
click node_fetch "https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/fetch.js"

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_popup,node_dashboard,node_user,node_browser toneBlue
class node_background,node_rulesets,node_scripting,node_modes toneAmber
class node_dnr,node_rulesdata,node_cosmetic,node_strict toneMint
class node_config,node_storage,node_editors,node_zapper,node_report,node_fetch toneRose
class node_webpage toneIndigo
```

## Components

### User interfaces

- [Popup controls](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/popup.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/popup.js`
- [Dashboard](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/dashboard.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/dashboard.js`

### Background coordination

- [Background worker](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/background.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/background.js`
- [Ruleset manager](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ruleset-manager.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ruleset-manager.js`
- [Scripting manager](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/scripting-manager.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/scripting-manager.js`
- [Filtering modes](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/mode-manager.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/mode-manager.js`

### Filtering runtime

- [Request rules](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ruleset-manager.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ruleset-manager.js`
- [Bundled rulesets](https://github.com/colemanstone/hyprland-config/tree/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/rulesets/scripting): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/rulesets/scripting`
- [Page filtering](https://github.com/colemanstone/hyprland-config/tree/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/scripting): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/scripting`
- [Strict blocking](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/strictblock.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/strictblock.js`

### Configuration and tools

- [Ruleset config](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/config.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/config.js`
- [Extension storage](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ext.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/ext.js`
- [Rule editors](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/dnr-editor.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/dnr-editor.js`
- [Element zapper](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/zapper-ui.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/zapper-ui.js`
- [Reporting](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/report.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/report.js`
- [Extension resources](https://github.com/colemanstone/hyprland-config/blob/main/config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/fetch.js): `config/BraveSoftware/Brave-Browser/Default/Extensions/ddkjiahejlhfcafbddmgiahcphecmpfh/2025.624.1503_0/js/fetch.js`

### Other components

- **User**
- **Browser APIs**
- **Web pages**

## Connections

- User → Popup controls: configures
- User → Dashboard: manages
- Popup controls → Background worker: sends requests
- Dashboard → Background worker: sends requests
- Background worker → Ruleset manager: coordinates
- Background worker → Scripting manager: coordinates
- Background worker → Filtering modes: coordinates
- Ruleset manager → Extension resources: loads details
- Scripting manager → Extension resources: loads details
- Ruleset manager → Ruleset config: saves settings
- Ruleset manager → Extension storage: updates state
- Filtering modes → Ruleset manager: converts modes
- Filtering modes → Extension storage: reads and writes
- Filtering modes → Ruleset config: saves settings
- Ruleset manager → Request rules: updates rules
- Request rules → Browser APIs: registers rules
- Scripting manager → Browser APIs: registers scripts
- Bundled rulesets → Scripting manager: provides resources
- Browser APIs → Page filtering: injects scripts
- Page filtering → Web pages: filters content
- Browser APIs → Strict blocking: opens block page
- User → Rule editors: edits rules
- User → Element zapper: selects elements
- User → Reporting: requests report
