Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Screen Sharing

Jay supports screen sharing via xdg-desktop-portal. Three capture types are available:

  • Window capture – share a single window.
  • Output capture – share an entire monitor.
  • Workspace capture – like output capture, but only a single workspace is shown.

Requirements

PipeWire must be installed and running. Verify with:

~$ systemctl --user status pipewire

Portal Setup

Jay implements its own portal backend for the ScreenCast and RemoteDesktop interfaces. Two configuration files must be installed so that xdg-desktop-portal knows to use Jay’s backend.

If the Repository is Checked Out

~$ sudo cp etc/jay.portal /usr/share/xdg-desktop-portal/portals/jay.portal
~$ sudo cp etc/jay-portals.conf /usr/share/xdg-desktop-portal/jay-portals.conf

If Installed via cargo install

Create the files manually:

~$ sudo tee /usr/share/xdg-desktop-portal/portals/jay.portal > /dev/null << 'EOF'
[portal]
DBusName=org.freedesktop.impl.portal.desktop.jay
Interfaces=org.freedesktop.impl.portal.ScreenCast;org.freedesktop.impl.portal.RemoteDesktop;
EOF
~$ sudo tee /usr/share/xdg-desktop-portal/jay-portals.conf > /dev/null << 'EOF'
[preferred]
default=gtk
org.freedesktop.impl.portal.ScreenCast=jay
org.freedesktop.impl.portal.RemoteDesktop=jay
org.freedesktop.impl.portal.Inhibit=none
org.freedesktop.impl.portal.FileChooser=gtk4
EOF

Restart the Portal

After installing the files, restart the portal service:

~$ systemctl --user restart xdg-desktop-portal

Configuration

workspace-capture

The top-level workspace-capture setting controls whether newly created workspaces can be captured via workspace capture. The default is true:

workspace-capture = false

Set this to false if you want to prevent workspace-level capture by default.

Capture Indicator Colors

When a window is being recorded, its title bar color changes to make the capture visually obvious. You can customize these colors in the [theme] table:

[theme]
captured-focused-title-bg-color = "#900000"
captured-unfocused-title-bg-color = "#5f0000"
  • captured-focused-title-bg-color – background color of focused title bars that are being recorded.
  • captured-unfocused-title-bg-color – background color of unfocused title bars that are being recorded.

The jay portal Command

Jay’s portal backend is normally started automatically when a screen-sharing request comes in via D-Bus activation. If you need to start it manually for debugging purposes:

~$ jay portal

Troubleshooting

If screen sharing does not work:

  1. Verify PipeWire is running: systemctl --user status pipewire
  2. Verify the portal files are installed in /usr/share/xdg-desktop-portal/.
  3. Restart the portal: systemctl --user restart xdg-desktop-portal
  4. Check the Jay log for errors: jay log