Skip to content

Native drules format#37

Merged
biodranik merged 1 commit into
masterfrom
ab/native-drules-format
Jun 14, 2026
Merged

Native drules format#37
biodranik merged 1 commit into
masterfrom
ab/native-drules-format

Conversation

@biodranik

Copy link
Copy Markdown
Member

No description provided.

libkomwm.py used protobuf only to serialize drawing rules. Replace it with a
small native binary format plus a canonical text dump, implemented in pure
Python, so style development no longer needs the protobuf module.

- drules.py: protobuf-mimic builder classes (so libkomwm.py barely changes), a
  binary writer/reader, family packing (a style's light/dark variants share one
  structure with per-variant color palettes) and a canonical, reviewable text
  dumper. The wire format matches the C++ reader in the main repo's
  libs/indexer/drules_format.*.
- merge_variants.py: packs single-variant outputs into one family file.
- merge_styles.py: port of the main repo's drules_merge.py (zoom-range union).
- libkomwm.py: import drules instead of drules_struct_pb2; drop the dead circle
  rule and the never-read color x/y; write via the native module.
- Delete the generated drules_struct_pb2.py.

Signed-off-by: Alexander Borsuk <me@alex.bio>
@biodranik biodranik force-pushed the ab/native-drules-format branch from 4bf24b0 to 4349a05 Compare June 14, 2026 23:26
@biodranik biodranik merged commit 32caead into master Jun 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants