No description
  • C# 95.1%
  • Python 1.9%
  • Shell 1.8%
  • PowerShell 1.1%
  • Batchfile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-08 19:06:04 +02:00
handoff docs: aktualizace FEATURES/README/PUBLISHING na stav v1.3.0 + úklid odkazů 2026-08-02 13:19:40 +02:00
packaging fix: build skript pro VM sám o sobě spolkl každou chybu 2026-07-31 11:00:20 +02:00
scripts chore: release-full.sh připomene chybějící changelog soubor 2026-08-02 11:53:56 +02:00
src/Nexum chore: verze 1.4.0 2026-08-08 19:06:04 +02:00
tools feat: podpisový nástroj a release skript pro autoupdate 2026-07-30 15:50:22 +02:00
.gitignore chore: interní plánovací dokumenty a brand assety pryč z gitu 2026-08-02 13:19:20 +02:00
AUDIT_FIXES.md fix: full audit backlog (29/29) + live-testing round — unread system, threads, media, DRY cleanup 2026-07-19 12:01:50 +02:00
FEATURES.md docs: aktualizace FEATURES/README/PUBLISHING na stav v1.3.0 + úklid odkazů 2026-08-02 13:19:40 +02:00
Nexum.sln feat: podpisový nástroj a release skript pro autoupdate 2026-07-30 15:50:22 +02:00
PUBLISHING.md docs: aktualizace FEATURES/README/PUBLISHING na stav v1.3.0 + úklid odkazů 2026-08-02 13:19:40 +02:00
README.md docs: aktualizace FEATURES/README/PUBLISHING na stav v1.3.0 + úklid odkazů 2026-08-02 13:19:40 +02:00

Nexum

Desktopový klient pro Matrix — Avalonia UI, C# / .NET 10, běží na Linuxu, Windows i macOS.

Postavený nad vlastním MatrixSDK. Cílem je funkční parita s Elementem a UX blízké Discordu.

Co umí

Komunikace Místnosti a spaces, DM, vlákna (s náhledem poslední odpovědi), reakce, edity s historií úprav, odpovědi, mazání, připnuté zprávy, hlasování (MSC3381), captions (MSC2530), přeposílání, markdown se zvýrazněním syntaxe, autocomplete (@lidi, :emoji, #místnosti), slash příkazy, emoji picker (vlastní emoji přes MSC2545, jumbo emoji, plná Unicode 17.0 sada), samolepky, animované GIFy.

Šifrování E2EE oběma směry, SAS verifikace zařízení, cross-signing, záloha klíčů, SSSS recovery klíč, šifrované přílohy, lokální vyhledávání v E2EE historii.

Hovory a média 1:1 audio hovory (WebRTC přes SIPSorcery, TURN z homeserveru), hlasové zprávy (MSC3245) s waveformem, sdílení polohy (MSC3488), náhledy médií, přehrávání videa.

Ovládání a UX Quick switcher (Ctrl+K), skok na datum (MSC3030), skok na zprávu, read receipts, typing indikátory, notifikace, multi-account, vlastní status a presence, export chatu do HTML, cache zpráv.

Vzhled Volitelná akcentní barva, barvy jmen uživatelů (i po jednotlivcích), hover toolbar u zpráv, member list s online-first řazením, tmavý motiv.

Jazyky Čeština a angličtina, přepínatelné za běhu.

Aktualizace Automatické aktualizace na Linuxu i Windows — detekce nové verze z Forgejo releases, ed25519 podpis, stabilní/testovací kanál v Nastavení. Na Windows navíc instalátor (Nexum-Setup.msi, WiX).

Podrobný rozpad včetně porovnání s Elementem a Cinny je ve FEATURES.md.

Build a spuštění

dotnet run --project src/Nexum

Potřebuješ .NET 10 SDK. Repozitář počítá s tím, že MatrixSDK leží vedle něj ve stejném pracovním adresáři — projekt se na něj odkazuje relativní cestou:

claude-workspace/
├── MatrixSDK/
└── Nexum/

Self-contained build

dotnet publish src/Nexum -r linux-x64 -c Release

Podporované RID: linux-x64, win-x64, osx-x64, osx-arm64. Detaily k publikování jsou v PUBLISHING.md.

Nativní závislosti

Většina se veze z NuGetu a nevyžaduje systémovou instalaci — SDL2 (zvuk), Oniguruma (zvýrazňování syntaxe), libsodium (krypto), LibVLC (video).

Výjimka je libolm, které se stahuje zvlášť (OlmDownloader) a musí ležet vedle aplikace. Bez něj klient nastartuje, ale E2EE nepojede.

Struktura

src/Nexum/
├── Views/        okna a panely (AXAML)
├── ViewModels/   MVVM přes CommunityToolkit.Mvvm
├── Services/     Matrix vrstva, úložiště, audio, video, cache
├── Models/       datové modely
└── Assets/       styly, motivy, i18n

Dokumentace

Soubor Obsah
FEATURES.md Rozpad funkcí a porovnání s ostatními klienty
PUBLISHING.md Sestavení distribuovatelných buildů

Vývoj s pomocí AI

Tenhle projekt vzniká ve spolupráci s AI — konkrétně s Claude (Anthropic) přes Claude Code. Píšu to rovnou do README, protože pro někoho je to podstatná informace a nemá ji dolovat z commit historie.

Není to náhoda ani zkratka: projekt je zároveň můj způsob, jak se naučit pracovat s AI a s AI agenty. Ta část je pro mě stejně důležitá jako výsledný kód.

Stav

Osobní projekt v aktivním vývoji. Zatím bez licence — pokud bys to chtěl použít, ozvi se.