Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
c99aa23
Add AGENTS.md and SPLASH.md to help with Makepad 2.0 codegen
kevinaboos Feb 21, 2026
c7db47e
[no ci] WIP first pass on refactor to Splash / Makepad 2.0
kevinaboos Feb 21, 2026
3bde77c
Avatar in sidebar is working, not much else
kevinaboos Feb 22, 2026
81bdee3
more progress, got some SVG icons showing. Definitely still needs imp…
kevinaboos Feb 22, 2026
e8f0be7
more progress but nothing visually major
kevinaboos Feb 23, 2026
7daca46
Fix tooltip/callouttooltip (upstreamed). Fix Icon/IconRotated
kevinaboos Feb 25, 2026
271a9e3
SpaceLobby and things are working, just not yet fully drawn.
kevinaboos Feb 25, 2026
dd32106
improve/restore SpacesBar functionality. Still not working fully.
kevinaboos Feb 25, 2026
4061fa2
Fix Avatar to use new our newly-fixed CircleView shader
kevinaboos Feb 26, 2026
c9e3b4e
Use new `SolidView` to replace `View`s that set a bg color in `draw_bg`
kevinaboos Feb 26, 2026
246eda6
Fix usage of view-deref widgets to use SolidView/RoundedView
kevinaboos Feb 26, 2026
e639d96
LoginScreen done
kevinaboos Feb 26, 2026
e87640f
Fix all modals to properly override the inner content (instead of rep…
kevinaboos Feb 26, 2026
aff3b7b
fix one modal override that slipped through
kevinaboos Feb 26, 2026
0fc2293
Fix shaders, at least in the way i think they should be done
kevinaboos Feb 27, 2026
5c1325a
more shader experimentation. Still not beating the shader errors...
kevinaboos Feb 27, 2026
1cd981b
fix various things, including context menu positioning
kevinaboos Feb 27, 2026
35e38ed
working on user profile pane, animation is borked
kevinaboos Feb 28, 2026
76ea0dd
fix animators. UserProfileSlidingPane is nearly working 100%
kevinaboos Feb 28, 2026
75f9c92
fix animation in UserProfileSlidingPane
kevinaboos Feb 28, 2026
1eab36b
Fix UserProfileSlidingPane background color fade
kevinaboos Feb 28, 2026
0f2e1d7
WIP, in the midst of fixing all script_apply_eval calls
kevinaboos Mar 2, 2026
b4dd50e
Properly fix all script_apply_eval calls to use `+:` ojb override syntax
kevinaboos Mar 2, 2026
2150426
Fix saving/restoring of RoomScreen state using new Widget::child* fun…
kevinaboos Mar 3, 2026
1fa4d54
Minor fixes to SpaceLobbyScreen, but not complete.
kevinaboos Mar 4, 2026
e7acd22
update makepad to get icon fixes. Fix rooms list header wrap
kevinaboos Mar 4, 2026
00ffb9d
Fix SpaceLobby finally!
kevinaboos Mar 5, 2026
fab33e5
use `ids!()` macro in space lobby
kevinaboos Mar 5, 2026
5c905f9
extract ExpandArrow into own widget, use it in CollapsibleHeader
kevinaboos Mar 5, 2026
6157217
Round corners of ExpandArrow
kevinaboos Mar 5, 2026
65365fe
cleanup ExpandArrow, make it look nice in SpaceLobbyScreen and Collap…
kevinaboos Mar 5, 2026
e47c811
Restore animation interpolation in ExpandArrow
kevinaboos Mar 5, 2026
0ec0c97
fix alignment of various widgets
kevinaboos Mar 5, 2026
8038ec6
Fix collapsible header missing unread badge
kevinaboos Mar 5, 2026
d4e972c
loads of fixes, primarily layout, text input styling, etc
kevinaboos Mar 6, 2026
ccc4200
fix backgrounds not taking effect in widgets that splat in `SolidView`
kevinaboos Mar 6, 2026
440c5e0
typos
kevinaboos Mar 6, 2026
15eed81
fix hover/focus on empty TextInput colors (in upstream makepad)
kevinaboos Mar 6, 2026
ce4af8b
fix navigation bar size to accommodate larger window chrome buttons o…
kevinaboos Mar 6, 2026
9952575
fix new message context menu
kevinaboos Mar 6, 2026
d2a7636
fix bouncing dots animation
kevinaboos Mar 7, 2026
6b7bd43
fix event source modal
kevinaboos Mar 7, 2026
cfd8edd
making progress on dock themeing, not yet complete.
kevinaboos Mar 7, 2026
eddad1b
update makepad with new `#[uid]` attribute, and new app structure
kevinaboos Mar 9, 2026
450197e
fix all child ID path issues
kevinaboos Mar 9, 2026
f122594
Fix myriad dock issues, such as styling, hide tab bar, etc
kevinaboos Mar 10, 2026
298fa00
fix reply previews in regular `Message`. `CondensedMessage` still not…
kevinaboos Mar 13, 2026
26a9dc6
fix CondensedMessage and CondensedImageMessage
kevinaboos Mar 13, 2026
94eedfc
Fix html links (was missing URL initialization), and reply preview bg…
kevinaboos Mar 13, 2026
76bc253
Fix reaction buttons
kevinaboos Mar 13, 2026
3831ed4
Fix jump to bottom button, remove unused IconButton custom widget
kevinaboos Mar 14, 2026
f13058a
remove shader warning about jump to bottom button
kevinaboos Mar 14, 2026
adf0305
ImageViewer works again, but not fully
kevinaboos Mar 14, 2026
882f7ce
more partial imageviewer fixes
kevinaboos Mar 14, 2026
1556a78
ImageViewer: rotation works. Panning and scroll-to-zoom do not work.
kevinaboos Mar 14, 2026
8644d44
Update makepad to get our SVG parsing fixes
kevinaboos Mar 16, 2026
a60166f
Fix mobile view mode (adaptiveview + Stack nav)
kevinaboos Mar 16, 2026
6fc6dab
fix hot reload for top-level app and login screen. Adjust rooms sideb…
kevinaboos Mar 16, 2026
0eec209
restore proper usage of Cx globals. Fix ProfileIcon spacing
kevinaboos Mar 16, 2026
d02c2e1
fix navigation tab bar to have HomeTab button selected by default on …
kevinaboos Mar 17, 2026
fed3e6c
fix popup notification
kevinaboos Mar 17, 2026
5e1eaa0
improve styling of popup notification, primarily the close button
kevinaboos Mar 17, 2026
c7d0b57
Fix all missing LiveHook --> ScripHook impls that were missing from t…
kevinaboos Mar 18, 2026
8b1d0dc
update makepad to fix more issues
kevinaboos Mar 18, 2026
2b81531
fix rooms entry list colors
kevinaboos Mar 18, 2026
cabd171
refactor utility functions into `utils`
kevinaboos Mar 18, 2026
54c9543
Adjust Html formatting to look much better
kevinaboos Mar 19, 2026
62afaa0
Restore text input functionality with mock MentionableTextInput (we'l…
kevinaboos Mar 19, 2026
0e81aaa
restore functionality to save/restore dock state from persistent storage
kevinaboos Mar 19, 2026
1d0b7a4
Fix show more/fewer link preview buttons
kevinaboos Mar 19, 2026
8ea4536
Standardize the styling of all RobrixIconButtons variants
kevinaboos Mar 20, 2026
c32163f
Fix hover states for buttons in a fetched room preview in AddRoom pane
kevinaboos Mar 20, 2026
a2e7d98
slightly enlarge popup notification font size
kevinaboos Mar 20, 2026
09154c1
Fix join/leave room modal styling of buttons
kevinaboos Mar 20, 2026
9f41358
Improve button re-styling code for JoinLeaveRoomModal (and others)
kevinaboos Mar 20, 2026
7f915fe
make image viewer a regular modal again.
kevinaboos Mar 20, 2026
ecb0339
Consistently fix all wrapping/ellipsis usage (no longer in draw_text …
kevinaboos Mar 20, 2026
e957f84
Button hover/focus state clean up, plus other misc fixes
kevinaboos Mar 20, 2026
70b2dca
restore custom icons for positive/negative confirmation modals
kevinaboos Mar 20, 2026
21c7c8e
restore max-relative height for RoomInputBar components
kevinaboos Mar 20, 2026
cd7c9c9
cleanup redundant script widget names in login_screen
kevinaboos Mar 20, 2026
ec266b2
other misc cleanup
kevinaboos Mar 20, 2026
3aa0b7c
restore notice font colors (for bot messages), and more missing stuff
kevinaboos Mar 20, 2026
721aee4
Merge branch 'main' into migrate_to_makepad_2.0
kevinaboos Mar 20, 2026
2e7e83e
clippy fixes
kevinaboos Mar 20, 2026
7a5271b
update makepad again
kevinaboos Mar 20, 2026
ece4bbb
switch to makepad fork with windows build fixes
kevinaboos Mar 20, 2026
f6c45a3
Gracefully handle expired login tokens, allow re-login
kevinaboos Mar 21, 2026
62b399f
restore window chrome and title bar on windows
kevinaboos Mar 21, 2026
32e695c
hide window title bar / caption bar on macOS
kevinaboos Mar 21, 2026
997f4fc
Add our new makepad fixes for drawing/svgs
kevinaboos Mar 21, 2026
01e5da8
update to yet another makepad fork with cargo-makepad android NDK ins…
kevinaboos Mar 21, 2026
acfdef3
trying cargo makepad fix for android CI on linux host
kevinaboos Mar 21, 2026
7f14c2e
update to makepad with our latest fixes
kevinaboos Mar 21, 2026
c4306bf
fix positive/negative confirmation modal styling and buttons
kevinaboos Mar 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
732 changes: 732 additions & 0 deletions AGENTS.md

Large diffs are not rendered by default.

943 changes: 444 additions & 499 deletions Cargo.lock

Large diffs are not rendered by default.

59 changes: 39 additions & 20 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
[package]
name = "robrix"
authors = [
"Kevin Boos <kevinaboos@gmail.com>",
"Robius Project Maintainers",
]
authors = ["Kevin Boos <kevinaboos@gmail.com>", "Robius Project Maintainers"]
description = "A Matrix chat client written using Makepad + Robius app dev framework in Rust."
documentation = "https://docs.rs/robrix"
edition = "2024" ## mostly just to allow let-chains
edition = "2024" ## mostly just to allow let-chains
homepage = "https://robius.rs/"
keywords = ["matrix", "chat", "client", "robius", "makepad"]
license = "MIT"
readme = "README.md"
categories = [ "gui" ]
categories = ["gui"]
repository = "https://github.com/project-robius/robrix"
version = "0.0.1-pre-alpha-4"
metadata.makepad-auto-version = "zqpv-Yj-K7WNVK2I8h5Okhho46Q="
Expand All @@ -21,6 +18,7 @@ makepad-widgets = { git = "https://github.com/makepad/makepad", branch = "dev",
makepad-code-editor = { git = "https://github.com/makepad/makepad", branch = "dev" }



## Including this crate automatically configures all `robius-*` crates to work with Makepad.
robius-use-makepad = "0.1.1"
robius-open = { git = "https://github.com/project-robius/robius" }
Expand All @@ -36,24 +34,37 @@ chrono = "0.4"
clap = { version = "4.0.16", features = ["derive"] }
crossbeam-channel = "0.5.10"
crossbeam-queue = "0.3.8"
eyeball = { version = "0.8.8", features = ["tracing"] } # same as matrix-sdk-ui
eyeball-im = { version = "0.8.0", features = ["tracing"] } # same as matrix-sdk-ui
imbl = { version = "6.1.0", features = ["serde"] } # same as matrix-sdk-ui
eyeball = { version = "0.8.8", features = ["tracing"] } # same as matrix-sdk-ui
eyeball-im = { version = "0.8.0", features = [ "tracing" ] } # same as matrix-sdk-ui
imbl = { version = "6.1.0", features = ["serde"] } # same as matrix-sdk-ui
futures-util = "0.3"
hashbrown = { version = "0.16", features = ["raw-entry"] }
htmlize = "1.0.5"
indexmap = "2.6.0"
imghdr = "0.7.0"
linkify = "0.10.0"
matrix-sdk-base = { git = "https://github.com/matrix-org/matrix-rust-sdk", branch = "main" }
matrix-sdk = { git = "https://github.com/matrix-org/matrix-rust-sdk", branch = "main", default-features = false, features = [ "e2e-encryption", "automatic-room-key-forwarding", "markdown", "sqlite", "rustls-tls", "bundled-sqlite", "sso-login" ] }
matrix-sdk-ui = { git = "https://github.com/matrix-org/matrix-rust-sdk", branch = "main", default-features = false, features = [ "rustls-tls" ] }
matrix-sdk = { git = "https://github.com/matrix-org/matrix-rust-sdk", branch = "main", default-features = false, features = [
"e2e-encryption",
"automatic-room-key-forwarding",
"markdown",
"sqlite",
"rustls-tls",
"bundled-sqlite",
"sso-login",
] }
matrix-sdk-ui = { git = "https://github.com/matrix-org/matrix-rust-sdk", branch = "main", default-features = false, features = [
"rustls-tls",
] }
## Use the same ruma version as what's specified in matrix-sdk's Cargo.toml.
## Enable a few extra features:
## * "compat-optional" feature to allow missing body field in m.room.tombstone event.
## * "compat-unset-avatar" feature to allow deleting the user's avatar to work properly.
## * Note: we need a feature like "compat-unset-display-name" to unset display names, but that doesn't exist yet.
ruma = { version = "0.14.1", features = ["compat-optional", "compat-unset-avatar"] }
ruma = { version = "0.14.1", features = [
"compat-optional",
"compat-unset-avatar",
] }
rand = "0.8.5"
rangemap = "1.5.0"
sanitize-filename = "0.6"
Expand All @@ -70,7 +81,10 @@ url = "2.5.0"
## Commit "f0bc4625dcd729e07e4a36257df2f1d94c81cef4" is the most recent one without the invalid change to pin serde to 1.0.219.
## See my issue here: <https://github.com/openwallet-foundation-labs/tsp/issues/237>.
## However, that commit doesn't build.... yikes. So we have to use a slightly older commit in the "rev" field below.
tsp_sdk = { git = "https://github.com/openwallet-foundation-labs/tsp.git", rev = "1cd0cc9442e144ad7c01ccd30daffbb3a52c0f20", optional = true, features = ["async", "resolve"] }
tsp_sdk = { git = "https://github.com/openwallet-foundation-labs/tsp.git", rev = "1cd0cc9442e144ad7c01ccd30daffbb3a52c0f20", optional = true, features = [
"async",
"resolve",
] }
quinn = { version = "0.11", default-features = false, optional = true }
## We only include this such that we can specify the prebuilt-nasm features,
## which is required to build this on Windows x86_64 without having to install NASM separately.
Expand Down Expand Up @@ -137,7 +151,7 @@ askar-storage = { git = "https://github.com/openwallet-foundation/askar.git" }
## and then we won't need to patch ruma-events anymore.
## But that is a significant amount of work, so for now we just patch ruma-events.
##
ruma = { git = "https://github.com/project-robius/ruma.git", branch = "tsp"}
ruma = { git = "https://github.com/project-robius/ruma.git", branch = "tsp" }


[package.metadata.docs.rs]
Expand All @@ -158,7 +172,7 @@ lto = "thin"
[profile.distribution]
inherits = "release"
codegen-units = 1
lto = "fat"
lto = "fat"

## For very fast compilation, not for creating an actual high-quality executable.
## This is primarily useful for CI builds.
Expand All @@ -171,13 +185,15 @@ strip = true
debug-assertions = false



## Configuration for `cargo packager`
[package.metadata.packager]
product_name = "Robrix"
identifier = "org.robius.robrix"
category = "SocialNetworking"
authors = ["Project Robius <contact@robius.rs>", "Kevin Boos <kevinaboos@gmail.com>"]
authors = [
"Project Robius <contact@robius.rs>",
"Kevin Boos <kevinaboos@gmail.com>",
]
publisher = "robius"
license_file = "LICENSE-MIT"
copyright = "Copyright 2023-202, Project Robius"
Expand Down Expand Up @@ -221,7 +237,10 @@ robius-packaging-commands before-each-package \
"""

deep_link_protocols = [
{ schemes = ["robrix", "matrix"], role = "viewer" }, ## `name` is left as default
{ schemes = [
"robrix",
"matrix",
], role = "viewer" }, ## `name` is left as default
]

[package.metadata.packager.deb]
Expand All @@ -231,10 +250,10 @@ section = "utils"

[package.metadata.packager.macos]
minimum_system_version = "11.0"
frameworks = [ ]
frameworks = []
info_plist_path = "./packaging/Info.plist"
entitlements = "./packaging/Entitlements.plist"
signing_identity = "Developer ID Application: AppChef Inc. (SFVQ5V48GD)"
signing_identity = "Developer ID Application: GOSIM FOUNDATION LTD. (HMX6XGJZ3R)"


## Configuration for `cargo packager`'s generation of a macOS `.dmg`.
Expand Down
Loading
Loading