Skip to content

Deduplicate unproto frames and theme support#43

Open
elafargue wants to merge 6 commits intomfncooper:mainfrom
elafargue:dedupe-ui
Open

Deduplicate unproto frames and theme support#43
elafargue wants to merge 6 commits intomfncooper:mainfrom
elafargue:dedupe-ui

Conversation

@elafargue
Copy link
Copy Markdown

@elafargue elafargue commented Apr 13, 2026

This PR implements two features: deduplication of unproto "UI" frames, and themeing support:

Deduplication

This adds an option to avoid printing out identical frames coming in from different repeaters/nodes, but show the repeated nodes in a different color so that the user can easily tell there were multiple frames. This is configurable in "Setup".

The new behavior, when enabled, works like this:

  • If the same UI packet is received multiple times, it is displayed only once, but with the color of each heard repeater changing as packets come in, and an overall received count at the end of the line, before the time stamp.

This makes UI "chat" a lot more pleasant, and does not lose any information - you actually get a much better visual indication of the nodes or repeaters you heard directly.

Note that this only works entirely on recent (1.8) versions of Direwolf where there is a proper indication of path with "" next to node callsigns as they repeat the frame. Older versions will work fine but won't be able to colorize the "heard" repeaters because Direwolf didn't add the "" until recently.

Themes

A simple change to enable theming the UI, along with a couple of examples of how to use it (as well a documentation update).

Color support

The last addition is support for color output whenever a BBS is sending terminal color codes.

Other

Also smaller change: allow pressing "Disconnect" while a connection is in progress.

This is all tested and working.

a different color.

Allow aborting a connection when connecting instead of just timing out.
Example themes are included in `themes`
@elafargue elafargue changed the title Deduplicate unproto frames Deduplicate unproto frames and theme support Apr 15, 2026
This supports ANSI 16 color and 24bit colors, and overrides the
default inbound text colors (obviously) when color codes are present.

As far as I can tell the only way to do this is to do manual parsing
of the color codes because the underlying library doesn't support
this natively. The end result is not so bad imho.
at the end, the last incoming line was not displayed. This commit fixes
that behavior.
display the data as early as possible without waiting for a
newline (CR, LF, etc). This is especially needed in case color
escape sequence are broken across frames.
that if one instance is heard as repeated (with a "*"), we don't accidentally
set all the instances as repeated, only the correct ones.
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.

1 participant