mini-eq 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mini_eq-0.1.1/AGENTS.md +108 -0
- mini_eq-0.1.1/CHANGELOG.md +14 -0
- mini_eq-0.1.1/LICENSE +674 -0
- mini_eq-0.1.1/MANIFEST.in +14 -0
- mini_eq-0.1.1/PKG-INFO +181 -0
- mini_eq-0.1.1/README.md +145 -0
- mini_eq-0.1.1/SECURITY.md +17 -0
- mini_eq-0.1.1/data/io.github.bhack.mini-eq.desktop +12 -0
- mini_eq-0.1.1/data/io.github.bhack.mini-eq.metainfo.xml +48 -0
- mini_eq-0.1.1/docker/ubuntu-24.04-wp04.Dockerfile +18 -0
- mini_eq-0.1.1/docs/performance.md +66 -0
- mini_eq-0.1.1/docs/release.md +130 -0
- mini_eq-0.1.1/docs/screenshots/README.md +9 -0
- mini_eq-0.1.1/docs/screenshots/mini-eq.png +0 -0
- mini_eq-0.1.1/flatpak/patches/wireplumber-0.5.14-tools-disabled-po.patch +23 -0
- mini_eq-0.1.1/io.github.bhack.mini-eq.json +150 -0
- mini_eq-0.1.1/pyproject.toml +65 -0
- mini_eq-0.1.1/setup.cfg +4 -0
- mini_eq-0.1.1/src/mini_eq/__init__.py +5 -0
- mini_eq-0.1.1/src/mini_eq/__main__.py +25 -0
- mini_eq-0.1.1/src/mini_eq/analyzer.py +660 -0
- mini_eq-0.1.1/src/mini_eq/app.py +195 -0
- mini_eq-0.1.1/src/mini_eq/assets/icons/hicolor/128x128/apps/io.github.bhack.mini-eq.png +0 -0
- mini_eq-0.1.1/src/mini_eq/assets/icons/hicolor/256x256/apps/io.github.bhack.mini-eq.png +0 -0
- mini_eq-0.1.1/src/mini_eq/assets/icons/hicolor/512x512/apps/io.github.bhack.mini-eq.png +0 -0
- mini_eq-0.1.1/src/mini_eq/assets/icons/hicolor/64x64/apps/io.github.bhack.mini-eq.png +0 -0
- mini_eq-0.1.1/src/mini_eq/assets/source/mini-eq-generated-icon-original-rgb.png +0 -0
- mini_eq-0.1.1/src/mini_eq/assets/source/mini-eq-generated-icon.png +0 -0
- mini_eq-0.1.1/src/mini_eq/band_fader.py +849 -0
- mini_eq-0.1.1/src/mini_eq/cli.py +45 -0
- mini_eq-0.1.1/src/mini_eq/core.py +758 -0
- mini_eq-0.1.1/src/mini_eq/deps.py +341 -0
- mini_eq-0.1.1/src/mini_eq/desktop_integration.py +112 -0
- mini_eq-0.1.1/src/mini_eq/filter_chain.py +243 -0
- mini_eq-0.1.1/src/mini_eq/filter_glyph.py +106 -0
- mini_eq-0.1.1/src/mini_eq/glib_utils.py +9 -0
- mini_eq-0.1.1/src/mini_eq/gtk_utils.py +16 -0
- mini_eq-0.1.1/src/mini_eq/instance.py +263 -0
- mini_eq-0.1.1/src/mini_eq/routing.py +683 -0
- mini_eq-0.1.1/src/mini_eq/screenshot.py +41 -0
- mini_eq-0.1.1/src/mini_eq/style.css +320 -0
- mini_eq-0.1.1/src/mini_eq/window.py +639 -0
- mini_eq-0.1.1/src/mini_eq/window_analyzer.py +269 -0
- mini_eq-0.1.1/src/mini_eq/window_graph.py +895 -0
- mini_eq-0.1.1/src/mini_eq/window_layout.py +802 -0
- mini_eq-0.1.1/src/mini_eq/window_presets.py +283 -0
- mini_eq-0.1.1/src/mini_eq/wireplumber_backend.py +678 -0
- mini_eq-0.1.1/src/mini_eq/wireplumber_stream_router.py +180 -0
- mini_eq-0.1.1/src/mini_eq.egg-info/PKG-INFO +181 -0
- mini_eq-0.1.1/src/mini_eq.egg-info/SOURCES.txt +70 -0
- mini_eq-0.1.1/src/mini_eq.egg-info/dependency_links.txt +1 -0
- mini_eq-0.1.1/src/mini_eq.egg-info/entry_points.txt +2 -0
- mini_eq-0.1.1/src/mini_eq.egg-info/requires.txt +12 -0
- mini_eq-0.1.1/src/mini_eq.egg-info/top_level.txt +1 -0
- mini_eq-0.1.1/tests/test_mini_eq_analyzer.py +393 -0
- mini_eq-0.1.1/tests/test_mini_eq_app.py +81 -0
- mini_eq-0.1.1/tests/test_mini_eq_cli.py +65 -0
- mini_eq-0.1.1/tests/test_mini_eq_core.py +296 -0
- mini_eq-0.1.1/tests/test_mini_eq_deps.py +87 -0
- mini_eq-0.1.1/tests/test_mini_eq_desktop_integration.py +20 -0
- mini_eq-0.1.1/tests/test_mini_eq_filter_chain.py +104 -0
- mini_eq-0.1.1/tests/test_mini_eq_instance.py +55 -0
- mini_eq-0.1.1/tests/test_mini_eq_routing.py +602 -0
- mini_eq-0.1.1/tests/test_mini_eq_window_analyzer.py +36 -0
- mini_eq-0.1.1/tests/test_mini_eq_wireplumber_backend.py +387 -0
- mini_eq-0.1.1/tests/test_mini_eq_wireplumber_stream_router.py +240 -0
- mini_eq-0.1.1/tools/benchmark_fader_drag.py +415 -0
- mini_eq-0.1.1/tools/check_wireplumber_gi.py +79 -0
- mini_eq-0.1.1/tools/demo_runtime.py +144 -0
- mini_eq-0.1.1/tools/profile_live_app.py +60 -0
- mini_eq-0.1.1/tools/profile_sysprof.py +70 -0
- mini_eq-0.1.1/tools/render_demo_screenshot.py +77 -0
mini_eq-0.1.1/AGENTS.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Agent Guide
|
|
2
|
+
|
|
3
|
+
These notes apply to the whole repository.
|
|
4
|
+
|
|
5
|
+
## Project Context
|
|
6
|
+
|
|
7
|
+
Mini EQ is a small system-wide parametric equalizer for PipeWire desktops. It
|
|
8
|
+
uses GTK/Libadwaita for the UI, WirePlumber for routing and default-output
|
|
9
|
+
monitoring, PipeWire filter-chain with builtin biquad filters for DSP, and the
|
|
10
|
+
PipeWire JACK compatibility layer plus NumPy for spectrum analysis.
|
|
11
|
+
|
|
12
|
+
This is a public-facing repository. Treat every committed file, screenshot,
|
|
13
|
+
artifact, and log snippet as public. Keep user-facing documentation focused on
|
|
14
|
+
using the app, and keep maintainer-only process notes in this file or under
|
|
15
|
+
`docs/`.
|
|
16
|
+
|
|
17
|
+
## Code Map
|
|
18
|
+
|
|
19
|
+
- `src/mini_eq/core.py`: EQ data models, preset JSON, biquad math, APO import.
|
|
20
|
+
- `src/mini_eq/filter_chain.py`: PipeWire filter-chain config generation.
|
|
21
|
+
- `src/mini_eq/wireplumber_backend.py`: WirePlumber GI compatibility layer.
|
|
22
|
+
- `src/mini_eq/wireplumber_stream_router.py`: stream routing helpers.
|
|
23
|
+
- `src/mini_eq/routing.py`: system-wide EQ lifecycle and routing controller.
|
|
24
|
+
- `src/mini_eq/app.py` and `src/mini_eq/window*.py`: GTK/Libadwaita app and UI.
|
|
25
|
+
- `src/mini_eq/analyzer.py`: JACK/NumPy analyzer runtime.
|
|
26
|
+
- `src/mini_eq/screenshot.py` and `tools/render_demo_screenshot.py`: maintainer
|
|
27
|
+
screenshot tooling, not user-facing CLI.
|
|
28
|
+
- `data/`: desktop and AppStream metadata.
|
|
29
|
+
- `io.github.bhack.mini-eq.json`: Flatpak manifest.
|
|
30
|
+
- `tests/`: pytest suite for core behavior and non-visual integration seams.
|
|
31
|
+
|
|
32
|
+
## Development Commands
|
|
33
|
+
|
|
34
|
+
Use the repo virtualenv when it exists:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
.venv/bin/python -m ruff check .
|
|
38
|
+
.venv/bin/python -m ruff format --check .
|
|
39
|
+
.venv/bin/python -m pytest -q
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
For release/package checks:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
appstreamcli validate --no-net data/io.github.bhack.mini-eq.metainfo.xml
|
|
46
|
+
desktop-file-validate data/io.github.bhack.mini-eq.desktop
|
|
47
|
+
.venv/bin/python -m build
|
|
48
|
+
.venv/bin/python -m twine check dist/*
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The app depends on system GI/audio packages that Python packaging cannot
|
|
52
|
+
install: GTK4, Libadwaita, WirePlumber introspection, PipeWire, and PipeWire
|
|
53
|
+
JACK compatibility. Some tests skip automatically when optional runtime tools
|
|
54
|
+
are unavailable.
|
|
55
|
+
|
|
56
|
+
## Change Guidelines
|
|
57
|
+
|
|
58
|
+
- Prefer existing patterns and small, targeted patches.
|
|
59
|
+
- Do not move logic between the large modules just to tidy them; split modules
|
|
60
|
+
only when the user asked for that refactor or the change needs it.
|
|
61
|
+
- Keep WirePlumber 0.4 and 0.5 compatibility in mind. Do not use a newer GI API
|
|
62
|
+
without checking the compatibility layer and tests.
|
|
63
|
+
- Keep the `mini-eq` CLI user-oriented. Maintainer automation belongs in
|
|
64
|
+
`tools/`, `docs/`, or this file.
|
|
65
|
+
- If you add packaged files, update `MANIFEST.in` when they must appear in the
|
|
66
|
+
source distribution.
|
|
67
|
+
- Do not add generated build outputs, local config, cache directories, or
|
|
68
|
+
machine-specific files.
|
|
69
|
+
|
|
70
|
+
## Screenshot Rules
|
|
71
|
+
|
|
72
|
+
The README should show the public screenshot, not instructions for generating
|
|
73
|
+
release assets.
|
|
74
|
+
|
|
75
|
+
Generate the public release screenshot with deterministic demo data:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
PYTHONPATH=src python3 tools/render_demo_screenshot.py docs/screenshots/mini-eq.png
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Do not commit screenshots that show personal device names, Bluetooth device
|
|
82
|
+
names, usernames, hostnames, local paths, or private preset names. Prefer
|
|
83
|
+
`tools/render_demo_screenshot.py` over desktop screenshots because it renders
|
|
84
|
+
only the Mini EQ window from deterministic demo data.
|
|
85
|
+
|
|
86
|
+
## Release And Security
|
|
87
|
+
|
|
88
|
+
Use `docs/release.md` as the release checklist. Before publishing release
|
|
89
|
+
artifacts or changing repository/package visibility, verify the rendered README,
|
|
90
|
+
package URLs, issue tracker, license, screenshots, and AppStream metadata.
|
|
91
|
+
|
|
92
|
+
Before publishing artifacts or changing repository visibility, run a focused
|
|
93
|
+
leak scan:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
git rev-list --count HEAD
|
|
97
|
+
git ls-remote --heads origin
|
|
98
|
+
git ls-remote --tags origin
|
|
99
|
+
leak_pattern='(/home/|/Users/|secret|token|api[_-]?key|github_pat|BEGIN (RSA|OPENSSH|PRIVATE) KEY)'
|
|
100
|
+
git grep -n -I -E "$leak_pattern" HEAD -- . \
|
|
101
|
+
':(exclude)*.png' \
|
|
102
|
+
':(exclude)AGENTS.md' \
|
|
103
|
+
':(exclude)docs/release.md'
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Do not push local scratch branches or local safety tags.
|
|
107
|
+
Do not rewrite public history unless the user explicitly asks for it and accepts
|
|
108
|
+
the impact.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.1 - 2026-04-27
|
|
4
|
+
|
|
5
|
+
- Fix PyPI classifier metadata for package-index publishing.
|
|
6
|
+
- Add production PyPI publishing automation using trusted publishing.
|
|
7
|
+
|
|
8
|
+
## 0.1.0 - 2026-04-26
|
|
9
|
+
|
|
10
|
+
- Initial standalone Mini EQ source package.
|
|
11
|
+
- GTK/Libadwaita system-wide parametric equalizer UI.
|
|
12
|
+
- PipeWire filter-chain builtin biquad processing through WirePlumber.
|
|
13
|
+
- Output routing, default-output following, preset import/export, and analyzer support.
|
|
14
|
+
- Runtime dependency diagnostics through `mini-eq --check-deps`.
|