Widget catalogue
How to add a widget — three steps, all of them required
- Paste the command into the room. You need power level 50 (moderator) or above.
- Pin it.
/addwidgetdoes not show the widget by itself. Open room info → Extensions, find the entry (it will be called Custom — Element ignores the widget's real name here) and pin it. - Click “Continue” on the “Using this widget may share data with widgets.ljones.me” prompt. Element blocks the widget from loading until each user approves it, per room. Until you click it the panel stays blank and this server never receives a single request — so a blank widget almost always means this step, not a bug.
Hub self-test
Shows who Element says you are, who the hub proved you are, and the current theme. Use it to verify a deployment.
/addwidget https://widgets.ljones.me/w/hello/?roomId=$matrix_room_id&userId=$matrix_user_id&displayName=$matrix_display_name&deviceId=$org.matrix.msc3819.matrix_device_id&theme=$org.matrix.msc2873.client_theme&lang=$org.matrix.msc2873.client_language&baseUrl=$org.matrix.msc4039.matrix_base_url
Media controls (experimental)
Transport controls for music and movie nights: now playing, scrub bar, skip and queue — without posting bot commands in the room.
/addwidget https://widgets.ljones.me/w/media/?roomId=$matrix_room_id&userId=$matrix_user_id&displayName=$matrix_display_name&deviceId=$org.matrix.msc3819.matrix_device_id&theme=$org.matrix.msc2873.client_theme&lang=$org.matrix.msc2873.client_language&baseUrl=$org.matrix.msc4039.matrix_base_url
Element will ask you to approve these permissions:
- org.matrix.msc2762.receive.state_event:me.ljones.media.player#
- org.matrix.msc2762.receive.state_event:me.ljones.media.queue#
- org.matrix.msc3819.send.to_device:me.ljones.media.command
- org.matrix.msc3819.receive.to_device:me.ljones.media.reply
Troubleshooting a blank widget? See docs/03-gotchas.md §18.