No description
  • C# 97.7%
  • Python 1.7%
  • Shell 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-22 22:56:44 +02:00
docs/design docs: plán redesignu UI + referenční návrh 2026-07-21 17:58:34 +02:00
handoff chore: F12 — integrace redesignu 2026-07-22 19:13:57 +02:00
scripts feat: pět barevných palet s výběrem v nastavení 2026-07-22 22:55:05 +02:00
src/MatrixClient feat: pět barevných palet s výběrem v nastavení 2026-07-22 22:55:05 +02:00
.gitignore feat: Windows olm.dll (mingw cross-build, staticky slinkovaná) — win-x64 kompletní; publish ověřen 2026-07-07 13:30:42 +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 chore: F12 — integrace redesignu 2026-07-22 19:13:57 +02:00
MatrixClient.sln feat: v0.1 Matrix Avalonia client — login, room list, chat 2026-06-30 19:35:36 +02:00
PUBLISHING.md feat: zvýrazňování kódu na TextMate gramatikách (TextMateSharp) 2026-07-22 20:24:08 +02:00
README.md docs: zminka o vyvoji s pomoci AI 2026-07-22 22:56:44 +02:00
REDESIGN_PLAN.md docs: odložené vylepšení relací (přejmenování, hromadný výběr, filtr) 2026-07-21 20:21:05 +02:00
TESTING.md feat: enhance message timeline and channel list UX 2026-07-16 16:24:02 +02:00

MatrixClient

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, reakce, edity, 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.

Š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.

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

Build a spuštění

dotnet run --project src/MatrixClient

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/
└── MatrixClient/

Self-contained build

dotnet publish src/MatrixClient -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/MatrixClient/
├── 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
TESTING.md Jak se testuje
PUBLISHING.md Sestavení distribuovatelných buildů
REDESIGN_PLAN.md Plán redesignu UI

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.