Element
Element is the flagship Matrix client, offering the most complete feature set and serving as the reference implementation for the protocol.
Installation
Web
Just visit app.element.io - no installation needed.
Desktop
Download from element.io/download:
# Linux (Flatpak)
flatpak install flathub im.riot.Riot
# Linux (Debian/Ubuntu)
sudo apt install element-desktop
# macOS (Homebrew)
brew install --cask element
# Windows (winget)
winget install Element.Element
Mobile
- Android: Google Play | F-Droid
- iOS: App Store
Essential Settings
Enable Labs Features
Unlock experimental features for power users:
- Settings → Labs
- Enable features like:
- Threads (if not default)
- Voice broadcast
- Rich text editor
- Video rooms
Labs features may be unstable. Enable at your own risk.
Customize Appearance
Settings → Appearance:
| Setting | Recommendation |
|---|---|
| Theme | Match system / Dark |
| Message layout | Modern for features, IRC for density |
| Show avatars | Personal preference |
| Big emoji | Enable for fun |
Optimize Performance
Settings → Preferences:
- Enable hardware acceleration - Better performance
- Reduce animations - Faster feel
- Show read receipts - Disable if slow
Keyboard Shortcuts
Master these for efficiency:
Navigation
| Shortcut | Action |
|---|---|
Ctrl/Cmd + K | Quick room switcher |
Ctrl/Cmd + ↑/↓ | Navigate rooms |
Alt + ↑/↓ | Navigate unread rooms |
Ctrl/Cmd + , | Settings |
Messaging
| Shortcut | Action |
|---|---|
Enter | Send message |
Shift + Enter | New line |
↑ | Edit last message |
Ctrl/Cmd + E | Toggle emoji picker |
Tab | Autocomplete @mention |
Actions
| Shortcut | Action |
|---|---|
Ctrl/Cmd + Shift + U | Upload file |
Ctrl/Cmd + / | Show all shortcuts |
Escape | Close dialog/exit edit |
Advanced Features
Threads
Organize conversations within rooms:
- Hover over a message
- Click the Thread icon
- Start a threaded discussion
Use threads in busy rooms to keep discussions focused without cluttering the main timeline.
Spaces
Create hierarchical community structures:
- Click + next to Spaces
- Create a Space
- Add rooms and sub-spaces
- Invite members
Space Hierarchy Example:
🏢 My Organization
├── 📋 General
├── 💻 Engineering
│ ├── #frontend
│ ├── #backend
│ └── #devops
└── 🎉 Social
├── #random
└── #gaming
Voice & Video
Start calls directly in rooms:
- 1:1 calls: Click video/phone icon in DM
- Group calls: Start Jitsi widget or native call
- Video rooms: Persistent call rooms (Labs feature)
Widgets
Add interactive elements to rooms:
- Click Room Info (i) → Add widgets
- Choose from:
- Jitsi - Video conferencing
- Etherpad - Collaborative notes
- YouTube - Watch together
- Custom - Any URL
Message Formatting
Element supports rich text:
**bold** → bold
*italic* → italic
~~strikethrough~~ → strikethrough
`code` → inline code
> quote → blockquote
Code blocks with syntax highlighting:
```javascript
const hello = "world";
```
Security Best Practices
Cross-Signing Setup
- Settings → Security & Privacy
- Complete "Set up Secure Backup"
- Save your recovery key securely
Device Verification
Verify all your devices:
- Log in on new device
- Verify from existing device (emoji/QR)
- All verified devices are trusted
Session Management
Regularly review active sessions:
- Settings → Security & Privacy
- Where you're signed in
- Remove unrecognized devices
Integrations
Bots & Bridges
Integrate external services:
- Room Settings → Integrations
- Add bots like:
- Hookshot - GitHub, GitLab, JIRA
- RSS Bot - Feed notifications
- Reminder Bot - Scheduled messages
Custom Integrations Manager
For self-hosted setups:
Settings → General → Integration Manager
Change to your own Dimension or other integration manager.
Troubleshooting
Sync Issues
"Unable to decrypt" errors:
- Check if key backup is set up
- Request keys from other sessions
- Verify your devices
Slow sync:
- Leave unused rooms
- Clear cache: Settings → Help → Clear cache
- Try a different homeserver
Performance Problems
High memory usage:
- Close Element and restart
- Disable some Labs features
- Use Element Web instead of Desktop
Slow room loading:
- Room may be very large
- Consider using a native client
- Report to Element team
Login Issues
Can't log in:
- Verify server URL
- Check username format (@user:server)
- Reset password if needed
Next: Alternative Clients →