Files
notedeck/crates/notedeck
William Casarin ad35547582 refactor: collapse client label settings; drop CLI/settings toggles
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>
2025-08-03 16:16:15 -07:00
..
2025-08-01 08:38:49 -03:00
2025-04-21 13:21:45 -07:00

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