The "top vs bottom" client label setting was cluttering the UI and
codebase with toggles that added little value. This consolidates client
label handling into one option, removes unused CLI/settings knobs, and
makes NoteView’s API consistent and fluent. Result: fewer knobs, less
branching, and a clearer, more predictable UI.
Now client labels are only shown in one place: selected notes.
- Drop `--show-client` arg in notedeck and `--show-note-client=top|bottom`
args in notedeck_columns
- Remove `NotedeckOptions::ShowClient` and related CLI parsing
- Delete `ShowSourceClientOption` enum, settings UI, and
`SettingsAction::SetShowSourceClient`
- Collapse `NoteOptions::{ClientNameTop, ClientNameBottom}` into a single
`NoteOptions::ClientName`
- Add `NoteOptions::{Framed, UnreadIndicator}`
- Move “framed” and unread indicator into flags (no more ad‑hoc bools)
- Add new NoteView builder methods: `.client_name()`, `.frame()`,
`.unread_indicator()`, and `.selected_style()`
- CLI flags for showing client labels have been removed
- `ClientNameTop`/`ClientNameBottom` replaced with `ClientName`
- API using `framed` or `show_unread_indicator` booleans must now use
the new flag setters
Signed-off-by: William Casarin <jb55@jb55.com>
Notedeck
Notedeck is a shared Rust library that provides the core functionality for building Nostr client applications. It serves as the foundation for various Notedeck applications like notedeck_chrome, notedeck_columns, and notedeck_dave.
Overview
The Notedeck crate implements common data types, utilities, and logic used across all Notedeck applications. It provides a unified interface for interacting with the Nostr protocol, managing accounts, handling note data, and rendering UI components.
Key features include:
- Nostr Protocol Integration: Connect to relays, subscribe to events, publish notes
- Account Management: Handle user accounts, keypairs, and profiles
- Note Handling: Cache and process notes efficiently
- UI Components: Common UI elements and styles
- Image Caching: Efficient image and GIF caching system
- Wallet Integration: Lightning wallet support with zaps functionality
- Theme Support: Customizable themes and styles
- Storage: Persistent storage for settings and data
Applications
This crate serves as the foundation for several Notedeck applications:
- notedeck_chrome - The browser chrome, manages a toolbar for switching between different clients
- notedeck_columns - A column-based Nostr client interface
- notedeck_dave - A nostr ai assistant
License
GPLv2