Skip to content

Commit edc1b0e

Browse files
committed
Add avatar support and incremental sync for improved visual recognition and network efficiency
- Implemented circular avatars for rooms and DMs with persistent local caching. - Added support for fetching and caching thumbnails from MXC URLs. - Enhanced sync logic to use incremental updates via `since` tokens, reducing network usage. - Introduced `_fetchWhoAmI` and `_loadAvatar` methods to manage user and avatar data. - Updated menu rendering to display avatars and encryption icons alongside room names. - Improved UI feedback with a spinner for loading avatars and initial sync state. - Extended `stylesheet.css` for new avatar and lock icon styling. - Updated README to document added avatar functionality and optimized incremental sync.
1 parent af7003e commit edc1b0e

File tree

3 files changed

+380
-44
lines changed

3 files changed

+380
-44
lines changed

README.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,39 +36,38 @@ This extension supports GNOME Shell `45` -> `49`.
3636

3737
## Features
3838

39-
- **Real-time Monitoring**: Uses Matrix Sync API for instant message notifications.
39+
- **Real-time Monitoring**: Uses optimized Matrix Incremental Sync (Long Polling) for instant notifications with minimal network traffic.
40+
- **Persistent Avatar Cache**: Room and user avatars are cached locally for fast loading and reduced data usage.
4041
- **Unread Indicators**: Displays unread message counts for rooms in the GNOME panel.
4142
- **Quick Access**: Direct access to your Matrix rooms from the top panel.
42-
- **Modern UI**: Built with native GNOME Shell components (St, Adwaita) for a seamless experience.
43+
- **QR Code Generation**: Easily share room/user links via generated QR codes directly from the menu.
44+
- **Modern UI**: Built with native GNOME Shell components (St, Adwaita) and circular avatars for a seamless, modern experience.
4345
- **Matrix.to Integration**: One-click room opening using universal Matrix links.
4446
- **Security Indicator**: Visual feedback (lock icon) for rooms with end-to-end encryption (E2EE) enabled.
4547
- **Direct Client Integration**: Open rooms directly in Element or Fractal.
4648
- **Intelligent Filtering**: Automatically displays only relevant rooms, prioritizing unread messages and favorites.
49+
- **Incremental Sync**: Optimized network usage with `since` token support.
50+
- **Avatar Support**: Circular avatars with persistent local caching.
51+
- **QR Code Sharing**: Integrated QR generator for room IDs.
4752

4853
## Configuration
4954

5055
Open the extension settings to configure:
5156
- **Homeserver URL**: Your Matrix homeserver (e.g., `https://matrix.org`).
5257
- **Access Token**: Your Matrix account's access token.
53-
- **Sync Interval**: Frequency of updates (default 10s).
58+
- **Sync Interval**: Frequency of updates (optimized for long polling).
59+
- **Client Type**: Choose between Web, Element, or Fractal.
60+
- **QR Code**: Enable or disable QR code sharing.
5461

5562
## 🚀 Roadmap
5663

5764
The goal of this project is to provide an ultra-lightweight navigation layer for the Matrix network, prioritizing productivity and quick access over message display.
5865

59-
#### Next up
60-
- Quick Identification (Avatars): Implement and cache room/user avatars in the dropdown for faster visual recognition.
61-
62-
### 🛠️ Phase 1: Navigation Fundamentals (V1.1 – Completed)
63-
- **Direct Client Integration**: Future support for additional clients like FluffyChat.
64-
- **Intelligent Filtering**: Optimization and advanced rule sets.
65-
66-
### 🔍 Phase 2: "Search & Access" Turbo
66+
### 🔍 Phase 1: "Search & Access" Turbo
6767
- **GNOME Overview Integration**: Access rooms directly from the system's central search (Super key) using an asynchronous cache.
68-
- **Quick Identification (Avatars)**: Caching room-specific icons in the dropdown menu for faster visual recognition.
6968
- **SOCKS5 Proxy Support**: Secure network access support for digital nomads and corporate users.
7069

71-
### ⚖️ Phase 3: Scalability and Stability
70+
### ⚖️ Phase 2: Scalability and Stability
7271
- **Multi-Account Support**: Monitor multiple Matrix accounts and homeservers simultaneously in a single interface.
7372
- **Offline Cache**: Room list availability and searchability even without a network connection.
7473
- **DND Integration**: Synchronization with GNOME's "Do Not Disturb" mode.

0 commit comments

Comments
 (0)