Tuple for Linux is currently in alpha and under active development. The client is primarily command-line driven.
To install, visit the Linux install page for the latest download command and architecture options.
Join the Slack channel to provide feedback, report bugs, and ask questions.
Display server support
Tuple runs natively on both X11 and Wayland. The client automatically detects your session type using the XDG_SESSION_TYPE environment variable.
All core features, including screen sharing, the drawing overlay, and UI windows, work on both display servers.
Current feature set
The Tuple client on Linux is extremely barebones at the moment. We’ll be working hard to flesh it out in the coming weeks — your patience is appreciated!
What works
- Logging in and running Tuple as a daemon — you’ll appear available for your contacts / teammates
- Receiving an incoming direct call
- Starting a call
- Joining a call via a URL
- Hearing (and being heard by) others using the system default audio device
- Viewing a shared screen
- Sharing your own screen
- Viewing drawing annotations on a shared screen
- Drawing on the shared screen
- Remotely controlling someone else’s screen
- Drawing on the shared screen
- Initiating a direct call from the command line
- Listing and managing contacts and favorites
- Muting and unmuting your microphone
Not yet implemented
- UI for making calls, managing contacts, and settings (everything is done via the command line for now)
- Being remotely controlled while sharing
- Viewing text or highlight click annotations on the shared screen
- Changing audio devices
- Sharing or viewing webcams
Commands
| Command | Description |
|---|
tuple login | Initiates the login process. Outputs a URL to log in via the web; the last step emits an authorization code to be used in tuple auth. |
tuple auth $AUTH_CODE | Authorizes the local Tuple client. Takes the code emitted via the web login flow as its only parameter. |
tuple logout | Logs you out of Tuple. |
tuple call | Starts a direct call with one of your contacts. Lists your favorited contacts who are currently online and prompts you to pick one. |
tuple new | Starts a new call and automatically adds you as a participant. Prints the URL of the call to the console so you can share it with others. |
tuple end | Ends the current call if it’s just you and one other person; leaves the call if others are still on it (or you’re in a room). |
tuple join $CALL_URL | Joins a call that’s in progress (or a room). Takes the URL of the call or room as its only parameter. |
tuple ls | Lists your contacts. |
tuple favorite $USER_ID | Favorites a contact. |
tuple unfavorite $USER_ID | Removes a contact from your favorites. |
tuple share | Starts sharing your entire viewable display — not just one monitor. |
tuple unshare | Stops sharing your screen. |
tuple mute | Mutes your microphone during a call. |
tuple unmute | Unmutes your microphone during a call. |
tuple on | Starts running the Tuple daemon. The daemon also starts automatically when most other commands are run (including auth, new, and join). |
tuple off | Stops the Tuple daemon. |
tuple ui | Displays a simple debugging UI. |
tuple settings | Lists all settings. |
tuple set $name $value | Sets the setting named $name to the given $value. |
Settings
| Setting | Type | Values | Description |
|---|
host-overlay | bool | 0, 1 | Enables the “host overlay”, which is where annotations are drawn. Transparency doesn’t work correctly with certain window managers / compositors, which can cause this window to render incorrectly. Use this setting to disable it if needed. |
capture | enum | auto, x11, portal | Controls which screen capture mechanism Tuple uses. auto selects the best method for your session type. x11 forces X11 capture. portal forces the XDG Desktop Portal (PipeWire) capture used on Wayland. |
Screen capture methods
You can also cycle through capture mechanisms during a call by clicking the capture button in the call UI. The button appears next to the screen share button and displays the current capture mechanism (auto, x11, or portal). Clicking it cycles to the next option.
Fonts
Tuple runs fc-match sans-serif:fontformat=TrueType to find your system’s “sans-serif” font.
Troubleshooting screen capture
If screen capture fails, Tuple displays an error popup with details about what went wrong. You can dismiss the popup by clicking Dismiss or pressing Enter.
Common causes of screen capture failures on Linux include:
- Wayland: The XDG Desktop Portal or PipeWire service is not running. Make sure
xdg-desktop-portal and pipewire are installed and active on your system.
- X11: Tuple could not query screen information. Verify that your X11 display server is running and accessible.
If the error persists, check the log file for additional details and share them with the team in the Slack channel.
Logs
Tuple logs to:
$XDG_DATA_HOME/tuple/0/log.txt
If the $XDG_DATA_HOME environment variable is not set, logs are written to:
$HOME/.local/share/tuple/0/log.txt
These are useful to include in any bug reports.