Skip to content

Robrix v1.0.0-beta.6

Choose a tag to compare

@kevinaboos kevinaboos released this 11 Nov 01:42
· 28 commits to main since this release
c6d980e

Lots of new features! An upgraded rooms list with filter bubbles, a nice emoji picker, quick reactions, custom emoji, creating rooms, powerful moderation tools, redesigned link previews, and better virtual keyboard behavior on mobile.

We've been working really hard these past few weeks to close the gap between Robrix and other major clients like Element. We're almost there, and in many respects Robrix is even better! We plan to tackle the biggest missing feature soon: notifications.

By the way, if you don't like some of the new UI behavior or features, most of them are configurable in the Settings screen.

Highlights from this release

  • 🛡️ Powerful moderator tools: report, mute, kick, or ban users
    • Easily find, select, and delete specific messages sent by a user (e.g., for spam)
  • 😀 Full support for picking emoji!
    • A super nice emoji picker with search, skin tones, and recent emoji
    • React quickly by double-tapping/clicking a message, or picking an emoji from the message context menu
    • When writing a message, type a colon : then some letters to instantly search for and input emoji
  • 🎨 Custom emoji (and any MXC URIs) now show up in messages and reactions!
  • 🔍︎ The rooms list uses filter bubbles now instead of categories, plus inverse filters!
    • You can long-press, middle-click, or right-click on a category to exclude it
    • This is super useful, for showing something like "non low priority rooms"
  • ➕ Create new rooms easily from the Add Room screen
  • 🔗 New layout for link previews that works better for images, gifs, and narrow screens
  • 🚪 Full support for leaving spaces (and viewing members of a space)
    • When leaving a space, we show a really nice hierarchical tree view of your joined rooms and subspaces so you can easily select the ones you want to leave
  • 📜 You can now easily open old rooms that were replaced by a newer one
  • ⌨️ On mobile, the soft keyboard now stays open while you scroll, send messages, or pick emoji
  • ↕️ The top and bottom bars are auto-hidden while scrolling, and the bottom bar animates into a neat floating "pill"
  • 🔄 It's easy to tell when your account is being synced: an animated sync bar is shown above the room timeline
    • Plus the rooms list shows a more detailed & accurate sync icon too
  • ✅ Verify other users from their profile, with badges on avatars showing who's verified
  • 🚀 Older Android devices draw text much faster and launch faster

There are tons of other misc UI & UX improvements:

  • Back/Forward navigation buttons are displayed on all devices
  • Easily show or hide the rooms list sidebar with the button in the title bar
  • Redesigned the message input box with more room for text, and easier access to uploading media
  • Space child graphs are cached, so switching between spaces is instant after the first time
  • Read receipts take up less space and are better aligned/displayed
  • The narrower layouts for the rooms list look perfect now
  • Use two-finger trackpad swipes to go back and forward in mobile view mode
  • You can reply to small events like membership or topic changes

And some minor bug fixes:

  • Older Android versions (8 to 10): the soft keyboard no longer covers the message box
  • macOS: the app icon no longer has a double border
  • The rooms list no longer sits empty for a few seconds on slower devices
  • The app is re-drawn immediately now after rotating your phone
  • Rooms list avatars don't briefly flicker while their avatar image is loading

Fixes to the Matrix SDK

  • Replying to state events now works
  • Don't throw away the shortcodes for custom emojis

Downloading and Installing Robrix

macOS

Download and open the .dmg, then drag Robrix to your Applications folder as normal.

iOS and iPadOS

Join the TestFlight beta at https://testflight.apple.com/join/cQPRgdVY.

Android

Download and then sideload Robrix-1.0.0-beta.6-android-aarch64.apk. You'll need to allow installing from unknown sources.

If your Android device is 32-bit (armv8l or armv7), download Robrix-1.0.0-beta.6-android-armv7.apk instead.

Windows 10 and 11

Download and run the installer robrix-1.0.0-beta.6-windows-x86_64.exe.

Linux

Ubuntu or Debian (and similar) distros.

Pick the proper version for your distro and CPU architecture:

Your system File
Ubuntu 24.04+, x86_64 (Intel/AMD) robrix-1.0.0-beta.6-ubuntu-24.04-x86_64.deb
Ubuntu 24.04+, aarch64 (ARM) robrix-1.0.0-beta.6-ubuntu-24.04-arm-aarch64.deb
Ubuntu 22.04, x86_64 (Intel/AMD) robrix-1.0.0-beta.6-ubuntu-22.04-x86_64.deb
Ubuntu 22.04, aarch64 (ARM) robrix-1.0.0-beta.6-ubuntu-22.04-arm-aarch64.deb

Download and open that file in the Software Center (or App Center), or run this in your terminal:

sudo apt install ./robrix-1.0.0-beta.6-ubuntu-24.04-x86_64.deb  ## the ./ part is required

Arch Linux.

Download robrix-1.0.0beta.6-1-x86_64.pkg.tar.zst on x86_64 or robrix-1.0.0beta.6-1-aarch64.pkg.tar.zst on ARM, then run:

sudo pacman -U robrix-1.0.0beta.6-1-x86_64.pkg.tar.zst     ## x86_64
sudo pacman -U robrix-1.0.0beta.6-1-aarch64.pkg.tar.zst    ## Arch Linux ARM and Asahi

Note that the robrix_1.0.0-beta.6_x86_64.tar.gz and robrix_1.0.0-beta.6_aarch64.tar.gz files are just published for use with community-maintained AUR packages (see robrix-bin and robrix-git in that package manager). We can't guarantee they are correct or up-to-date.

AppImage (for any Linux).

Download robrix-1.0.0-beta.6-x86_64.AppImage on x86_64 or robrix-1.0.0-beta.6-aarch64.AppImage on ARM, and then run:

chmod +x robrix-1.0.0-beta.6-x86_64.AppImage
./robrix-1.0.0-beta.6-x86_64.AppImage

What changed in Robrix since the last release

Click here to view the full list
  • Ensure our own profile will eventually be fetched if it fails at first by @kevinaboos in #1249
  • Make sure the rooms list is always populated and drawn on startup by @kevinaboos in #1250
  • Hide the rooms list's top bar (header) and bottom nav bar while scrolling by @kevinaboos in #1251
  • Also hide the top/bottom bars upon scroll in Settings & AddRoom screens by @kevinaboos in #1252
  • Add a light/dark theme button to the login screen by @kevinaboos in #1254
  • Don't show the "hold Shift" tips on iOS and Android by @kevinaboos in #1255
  • Show more buttons to clear the current room/space filter by @kevinaboos in #1256
  • allow verifying another user from their user profile pane by @kevinaboos in #1257
  • Show the verification status of other users on avatars and messages by @kevinaboos in #1258
  • Use styling from Makepad toggles to make them purple when enabled by @kevinaboos in #1259
  • Reorder the Encryption Settings section above Room Directories by @kevinaboos in #1260
  • Cache space graphs in the app's cache dir for instant per-space rooms lists by @kevinaboos in #1261
  • Use FxHash for faster hashing of hashmaps/sets that matter by @kevinaboos in #1262
  • Fix Robrix icon on macOS being double-bordered by @kevinaboos in #1264
  • [Makepad] try to draw text faster on older Android devices by @kevinaboos in #1265
  • docs: add OpenMandriva Lx build instructions by @RiPetitor in #1266
  • ci: run unit tests after clippy by @RiPetitor in #1267
  • LazyView: a wrapper to only build a widget once it's actually shown by @kevinaboos in #1270
  • Show a space's lobby screen after joining it (not the RoomScreen) by @kevinaboos in #1271
  • Do less work per-frame while scrolling thru a room or typing by @kevinaboos in #1272
  • Show a sync indicator bar at the top of a room in mobile view mode by @kevinaboos in #1273
  • Refactor room/space navigation into HomeScreen by @kevinaboos in #1274
  • Show a loading spinner while waiting for user verification to start by @kevinaboos in #1275
  • Support two-finger trackpad swipe to go back or forward by @kevinaboos in #1276
  • [Makepad] only render bouncing dots at 30 hz by @kevinaboos in #1277
  • Rooms list: keep old replaced rooms so we can open them (by choice) by @kevinaboos in #1279
  • Show a room creation card at the top (with a link to its older room) by @kevinaboos in #1280
  • Show tombstoned icon in room tabs and room headers by @kevinaboos in #1281
  • [Makepad] misc fixes: dock tab size, hover out, portallist scroll by @kevinaboos in #1282
  • Add an emoji picker to the message input via the mentionable popup by @kevinaboos in #1283
  • Add quick reaction buttons to the message context menu by @kevinaboos in #1284
  • ALlow double-tap/click on a message for a quick reaction by @kevinaboos in #1285
  • Exclude our new emoji shortcode list from typos checking by @kevinaboos in #1286
  • clippy fix by @kevinaboos in #1287
  • Don't sync recent emoji so frequently; add setting to disable it by @kevinaboos in #1288
  • Speed up CI by doing better caching of build results by @kevinaboos in #1289
  • Moderation: report, delete others' messages, kick, ban, mute by @kevinaboos in #1290
  • Support leaving a top-level space with a modal for leaving child rooms by @kevinaboos in #1291
  • Add moderation slash commands: kick, ban, and unban by @kevinaboos in #1292
  • [Makepad] when scrolling dont' try to do partial repaints on Android by @kevinaboos in #1293
  • minor perf: skip drawing invisible backgrounds in the room timeline by @kevinaboos in #1294
  • [Makepad] preserve animator state on rotation so we don't need manual state mgmt by @kevinaboos in #1295
  • Ensure all popups are within safe areas; fix emoji picking on mobile by @kevinaboos in #1296
  • Open context menus towards the middle of the window/screen by @kevinaboos in #1297
  • [Makepad] keep a dropdown's selected item on rotation by @kevinaboos in #1298
  • Moderation: support removing a user's messages from a room by @kevinaboos in #1299
  • [Makepad] allow drawing scroll bars outside of a view's content by @kevinaboos in #1300
  • Refactor tree of rooms for use in leave space modal and space lobby by @kevinaboos in #1301
  • Make all checkboxes match the tinted select all/none buttons in modals by @kevinaboos in #1302
  • Leave space modal: ask for confirmation, and use a larger modal by @kevinaboos in #1303
  • CI: speed up builds that are trying to install/cache stuff unnecessarily by @kevinaboos in #1304
  • Only show invite buttons if the user can actually invite others by @kevinaboos in #1305
  • Emoji picker: make emoji bigger, show tooltips, scrollable categories by @kevinaboos in #1306
  • Treat small state events like messages: support replies and context menus by @kevinaboos in #1307
  • Spaces: show members, linkify all topics, save/restore lobby state by @kevinaboos in #1308
  • Ensure text inputs in modals always show above the virtual kbd by @kevinaboos in #1310
  • Show MXC URI images / custom emoji, both inline and in reactions by @kevinaboos in #1311
  • Show custom emoji reaction shortcodes/names. Open MXC URIs in image viewer by @kevinaboos in #1312
  • Implement creating rooms by @kevinaboos in #1313
  • Create room modal: make topic input multiline, don't submit on Enter by @kevinaboos in #1314
  • Use filter bubbles instead of fixed category headers in the rooms list by @kevinaboos in #1315
  • Redesign link previews to better use the width of the room screen by @kevinaboos in #1316
  • Animate filter bubbles as they're selected by @kevinaboos in #1317
  • Makepad text input allow scroll on them, and virtual kbd can stay up during touch scroll by @kevinaboos in #1318
  • [Makepad] tapping the send message button doesn't hide the virtual keyboard by @kevinaboos in #1319
  • [Makepad] keep showing the virtual/soft kbd when scrolling by @kevinaboos in #1320
  • Reposition context menus and tooltips after the virtual keyboard moves by @kevinaboos in #1321
  • Shrink the room screen above the virtual keyboard instead of panning it up by @kevinaboos in #1322
  • Fix small edge cases in the new room screen + virtual keyboard approach by @kevinaboos in #1323
  • reinstate separate max height for link previews by @kevinaboos in #1324
  • open context menus below the click/long-press, unless they don't fit by @kevinaboos in #1325
  • don't hide the virtual kbd when tapping the emoji button by @kevinaboos in #1326
  • put the rooms list status and clear filter button on one line by @kevinaboos in #1327
  • Add a filter bubble for showing rooms you're a mod/admin/creator of by @kevinaboos in #1328
  • Filter bubbles: long-press, middle-click, or right-click a bubble to inverse/exclude it by @kevinaboos in #1329
  • Add a sidebar/sidepane button to collapse/expand the rooms list by @kevinaboos in #1330
  • use better icons for the room pane move/re-dock buttons by @kevinaboos in #1331
  • change the rooms list toggle button to a directional icon by @kevinaboos in #1332
  • Group back, forward, and rooms list toggle button together by @kevinaboos in #1333
  • use an overlapped design for read receipts that is more space efficient by @kevinaboos in #1334
  • Try to fit read receips on the same line, wrap if they can't by @kevinaboos in #1335
  • Add Room: maintain scroll position when going back from a room preview by @kevinaboos in #1336
  • Apply the same bottom shadow to the rooms list header on desktop view mode by @kevinaboos in #1337
  • Make title bar buttons bigger, both in the caption bar and above rooms list by @kevinaboos in #1338
  • also make the room pane buttons a bit bigger, and evently spaced by @kevinaboos in #1339
  • Clean up the two narrower layouts of rooms list entries by @kevinaboos in #1341
  • Link previews: hide redundant link text. Show loading spinner and absence indicator by @kevinaboos in #1342
  • make the narrower rooms list layouts perfect, including the explore space button by @kevinaboos in #1343
  • Show room names on hover if they're hidden/truncated, fix explore space button by @kevinaboos in #1344
  • Ensure the message context menu stays locked in position when kbd is hidden by @kevinaboos in #1345
  • a few small tweaks to text labels, settings, dock button hovers by @kevinaboos in #1346
  • release version 1.0.0-beta.6 by @kevinaboos in #1347
  • make sure toggle labels wrap (makepad) by @kevinaboos in #1348
  • minor text changes to settings screen and edited indicator by @kevinaboos in #1349
  • Room input bar redesign by @kevinaboos in #1350
  • minor fixes to avatar drawing by @kevinaboos in #1351

Changes we made to Makepad since the last release

As always, a significant amount of our effort is spent upstreaming improvements & fixes into Makepad, such that Robrix and everyone else benefits from them.

Click here to expand the full list of Makepad changes that are relevant to Robrix
  • Android: older phones draw text much faster, and the screen only repaints the parts that changed. (makepad#1420, plus more PRs coming soon)
  • Android: first launch is faster on older phones, and shows a "Compiling shaders" screen instead of a long white one. (makepad#1418 and makepad#1432)
  • Android 8 to 10: the soft keyboard no longer covers the bottom of the app and any text box there. (makepad#1431)
  • Text can be drawn a simpler way that's faster on older devices, which is what Robrix's new "Use simpler text rendering" setting does. (makepad#1427)
  • Scrolling no longer hides the soft keyboard, only a tap does, and the screen doesn't jump under your finger during a press. (makepad#1433 and makepad#1442)
  • On phones and tablets, a drag that starts on a text box scrolls instead of focusing it, and a multiline text box scrolls its own text first. (makepad#1446)
  • On phones and tablets, touching a list while it bounces only stops it, and a slightly shaky tap on an item still counts as a tap. (makepad#1409)
  • Text boxes in dialogs move above the soft keyboard, and part of a window can shrink above it while the rest stays put. (makepad#1408, makepad#1434, and makepad#1441)
  • iOS: a text box no longer loses its text on your first keystroke after leaving a username or password field. (makepad#1440)
  • Tall text boxes can center their text vertically, placeholder text stays on one line, and apps can tell whether you or the app focused a text box. Robrix's new message box uses all three. (PR coming soon)
  • Rotating your phone no longer resets toggles, checkboxes, or a dropdown's selection. (makepad#1410 and makepad#1429)
  • macOS and Wayland: two-finger trackpad swipes go back and forward in stack navigation. (makepad#1438)
  • Big grids of emoji stay smooth, since the text atlas grows when it fills up instead of constantly resetting. (PR coming soon)
  • Small animations like typing dots can run at a lower frame rate, which uses less CPU and battery. (makepad#1428)
  • Drawing, scrolling, and handling input are a bit faster, thanks to faster widget lookups and less wasted work. (makepad#1380, makepad#1416, makepad#1417, and makepad#1426)
  • An image can be only as wide as its aspect ratio needs, which link previews of pictures and GIFs use. (makepad#1403)
  • A list or scrolling view that gets much shorter while scrolled near its end now shows its last items right away. (makepad#1407 and makepad#1439)
  • A list's fling can be stopped, so jumping it somewhere new, like to an emoji category, doesn't leave it drifting. (makepad#1406)
  • A view can smoothly scroll to a spot, which Robrix uses to scroll Add Rooms and Settings back to the top. (PR coming soon)
  • A clicked list item no longer stays highlighted after the mouse leaves it. (makepad#1415)
  • A toggle or checkbox can wrap a long label onto more lines, with its box lined up with the first line. (PR coming soon)
  • Smaller changes: buttons fade out of their hover color without a gray flash, disabled checkboxes ignore clicks, a crowded tab bar keeps the selected tab in view, and scroll bars can sit beside a view instead of covering it. (makepad#1411, makepad#1412, makepad#1425, and makepad#1430)
  • A widget can sit at the end of a text block's last line, which is how Robrix fits read receipts there. (makepad#1413)
  • So Robrix can move onto the newest version of Makepad, we also brought over the fixes it relies on, like Android's clipboard, keyboard types, and status bar icons, and Wayland's mouse back and forward buttons. (makepad#1414, makepad#1419, makepad#1421, makepad#1422, makepad#1423, makepad#1424, makepad#1435, makepad#1436, makepad#1437, makepad#1443, makepad#1444, and makepad#1445)

New Contributors

Full Changelog: v1.0.0-beta.5...v1.0.0-beta.6