logiguard fork: GPUI xdg-activation keyboard-focus serial fix
Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
Single-commit orphan branch: full zed-industries/zed @ 8c74db0 source tree with a 3-file patch applied (no upstream history). Patch (crates/gpui_linux/src/linux/wayland/): - serial.rs: add SerialKind::KeyboardEnter - client.rs: store wl_keyboard.enter serial; add latest_serial_of() - window.rs: activate() uses keyboard-enter serial (Mutter focus gate) Mutter honors window activation only when the token carries the keyboard- focus serial from wl_keyboard.enter; GPUI used a stale mouse-press serial. See docs/tray-window-focus-wayland.md in logiguard. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
125
docs/src/collaboration/channels.md
Normal file
125
docs/src/collaboration/channels.md
Normal file
@@ -0,0 +1,125 @@
|
||||
---
|
||||
title: Channels
|
||||
description: "Persistent collaboration rooms in Zed for sharing projects, voice chat, and real-time code editing."
|
||||
---
|
||||
|
||||
# Channels {#channels}
|
||||
|
||||
Channels are persistent rooms for team collaboration. Each channel can contain shared projects, voice chat, and collaborative notes.
|
||||
|
||||
Channels support:
|
||||
|
||||
- Pairing – each collaborator keeps their own screen, mouse, and keyboard.
|
||||
- Mentoring – jump into someone else's context and help without asking them to hand over control.
|
||||
- Refactoring – multiple people can join the same large refactor in real time.
|
||||
- Ambient awareness – see what teammates are working on without status meetings.
|
||||
|
||||
Each channel usually maps to an ongoing project or workstream.
|
||||
You can see who's in a channel because their avatars appear in the Collaboration Panel.
|
||||
|
||||
Create a channel by clicking the `+` icon next to the `Channels` text in the Collaboration Panel.
|
||||
Create a subchannel by right-clicking an existing channel and selecting `New Subchannel`.
|
||||
|
||||
You can keep both work and side-project channels in the Collaboration Panel.
|
||||
|
||||
Joining a channel adds you to a shared room where you can work on projects together.
|
||||
|
||||
_Join [our channel tree](https://zed.dev/channel/zed-283) to get an idea of how you can organize yours._
|
||||
|
||||
## Inviting People
|
||||
|
||||
By default, channels you create can only be accessed by you.
|
||||
You can invite collaborators by right-clicking and selecting `Manage members`.
|
||||
|
||||
When you have subchannels nested under others, permissions are inherited.
|
||||
For instance, adding people to the top-level channel in your channel tree will automatically give them access to its subchannels.
|
||||
|
||||
Once you have added someone, they can either join your channel by clicking on it in their Collaboration Panel, or you can share the link to the channel so that they can join directly.
|
||||
|
||||
## Voice Chat
|
||||
|
||||
You can mute/unmute your microphone via the microphone icon in the upper right-hand side of the window.
|
||||
|
||||
> **Note:** When joining a channel, Zed automatically shares your microphone with other users in the call, if your OS allows it. To start muted, use the [`mute_on_join`](../reference/all-settings.md#calls) setting.
|
||||
|
||||
## Sharing Projects
|
||||
|
||||
After joining a channel, you can share a project over the channel via the `Share` button in the upper right-hand side of the window.
|
||||
This will allow channel members to edit the code hosted on your machine as though they had it checked out locally.
|
||||
|
||||
When you edit someone else's project, your editor features still work: jump to definition, use AI features, and view diagnostics.
|
||||
For pairing, one person can implement while the other reads and validates nearby code.
|
||||
Because you keep your own local configuration, the session still feels like your normal setup.
|
||||
|
||||
Collaborators can open, edit, and save files, perform searches, and interact with language servers.
|
||||
Guests have a read-only view of the project, including access to language server info.
|
||||
|
||||
### Unsharing a Project
|
||||
|
||||
You can remove a project from a channel by clicking on the `Unshare` button in the title bar.
|
||||
|
||||
Collaborators that are currently in that project will be disconnected from the project and will not be able to rejoin it unless you share it again.
|
||||
|
||||
## Channel Notes
|
||||
|
||||
Each channel has a Markdown notes file associated with it to keep track of current status, new ideas, or to collaborate on building out the design for the feature that you're working on before diving into code.
|
||||
|
||||
This works like a shared Markdown document backed by Zed's collaboration service.
|
||||
|
||||
Open channel notes by clicking the document icon to the right of the channel name in the Collaboration Panel.
|
||||
|
||||
> **Note:** You can view a channel's notes without joining the channel.
|
||||
|
||||
## Following Collaborators
|
||||
|
||||
To follow a collaborator, click on their avatar in the top left of the title bar.
|
||||
You can also cycle through collaborators using {#kb workspace::FollowNextCollaborator} or {#action workspace::FollowNextCollaborator} in the command palette.
|
||||
|
||||
When you join a project, you'll immediately start following the collaborator that invited you.
|
||||
|
||||
When a pane is following a collaborator, it will:
|
||||
|
||||
- follow their cursor and scroll position
|
||||
- follow them to other files in the same project
|
||||
- instantly swap to viewing their screenshare in that pane, if they are sharing their screen and leave the project
|
||||
|
||||
To stop following, simply move your mouse or make an edit via your keyboard.
|
||||
|
||||
### How Following Works
|
||||
|
||||
Following is confined to a particular pane.
|
||||
When a pane is following a collaborator, it is outlined in their cursor color.
|
||||
|
||||
Collaborators in the same project appear in color and include a cursor color.
|
||||
Collaborators in other projects are shown in gray.
|
||||
|
||||
This pane-specific behavior allows you to follow someone in one pane while navigating independently in another and can be an effective layout for some collaboration styles.
|
||||
|
||||
### Following a Terminal
|
||||
|
||||
Following in terminals is not currently supported the same way it is in the editor.
|
||||
As a workaround, collaborators can share their screen and you can follow that instead.
|
||||
|
||||
## Screen Sharing
|
||||
|
||||
Share your screen with collaborators in the current channel by clicking on the `Share screen` (monitor icon) button in the top right of the title bar.
|
||||
If you have multiple displays, you can choose which one to share via the chevron to the right of the monitor icon.
|
||||
|
||||
After you've shared your screen, others can click the `Screen` entry under your name in the Collaboration Panel to open a tab that keeps it visible.
|
||||
If they are following you, Zed will automatically switch between following your cursor in their Zed instance and your screen share, depending on whether you are focused on Zed or another application, like a web browser.
|
||||
|
||||
> **Warning:** Collaborators can see your entire screen when sharing. Stop screen sharing when finished.
|
||||
|
||||
## Livestreaming & Guests
|
||||
|
||||
A channel can also be made public.
|
||||
This allows anyone to join the channel by clicking on the link.
|
||||
|
||||
Guest users in channels can hear and see everything that is happening, and have read-only access to projects and channel notes.
|
||||
|
||||
If you'd like to invite a guest to participate in a channel for the duration of a call, you can do so by right-clicking them in the Collaboration Panel.
|
||||
"Allowing Write Access" will allow them to edit any projects shared into the call, and to use their microphone and share their screen if they wish.
|
||||
|
||||
## Leaving a Call
|
||||
|
||||
You can leave a channel by clicking on the `Leave call` button in the upper right-hand side of the window.
|
||||
29
docs/src/collaboration/contacts-and-private-calls.md
Normal file
29
docs/src/collaboration/contacts-and-private-calls.md
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Contacts and Private Calls
|
||||
description: "Add contacts and start private collaboration sessions in Zed."
|
||||
---
|
||||
|
||||
# Contacts and Private Calls {#contacts}
|
||||
|
||||
Private calls provide ad-hoc collaboration sessions outside of channels. Add contacts to your list and start calls with one or more people.
|
||||
|
||||
## Adding a Contact
|
||||
|
||||
1. In the Collaboration Panel, click the `+` button next to the `Contacts` section
|
||||
1. Search for the contact using their GitHub handle.\
|
||||
_Note: Your contact must be an existing Zed user who has completed the GitHub authentication sign-in flow._
|
||||
1. Your contact will receive a notification.
|
||||
Once they accept, you'll both appear in each other's contact list.
|
||||
|
||||
## Private Calls
|
||||
|
||||
To start a private call:
|
||||
|
||||
1. Click the `...` menu next to an online contact's name in the Collaboration Panel.
|
||||
1. Click `Call <username>`
|
||||
|
||||
Once you've begun a private call, you can add other online contacts by clicking their name in the Collaboration Panel.
|
||||
|
||||
---
|
||||
|
||||
_Private calls work like [channels](./channels.md), without channel-specific features such as channel notes._
|
||||
48
docs/src/collaboration/overview.md
Normal file
48
docs/src/collaboration/overview.md
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
title: Collaboration
|
||||
description: "Real-time collaboration in Zed: share projects, edit code together, and communicate with voice chat."
|
||||
---
|
||||
|
||||
# Collaboration {#collaboration}
|
||||
|
||||
Zed supports real-time multiplayer editing. Multiple people can work in the same project simultaneously, seeing each other's cursors and edits as they happen.
|
||||
|
||||
Open the Collaboration Panel with {#kb collab_panel::ToggleFocus}. You'll need to [sign in](../authentication.md#signing-in) to access collaboration features.
|
||||
|
||||
## Collaboration Panel {#collaboration-panel}
|
||||
|
||||
The Collaboration Panel has two sections:
|
||||
|
||||
1. [Channels](./channels.md): Persistent project rooms for team collaboration, with shared projects and voice chat.
|
||||
2. [Contacts and Private Calls](./contacts-and-private-calls.md): Your contacts list for ad-hoc private sessions.
|
||||
|
||||
> **Warning:** Sharing a project gives collaborators access to your local file system within that project. Only collaborate with people you trust.
|
||||
|
||||
See the [Data and Privacy FAQs](https://zed.dev/faq#data-and-privacy) for more details.
|
||||
|
||||
## Audio Settings {#audio-settings}
|
||||
|
||||
### Selecting Audio Devices
|
||||
|
||||
You can select specific input and output audio devices instead of using system defaults. To configure audio devices:
|
||||
|
||||
1. Open {#kb zed::OpenSettings}
|
||||
2. Navigate to **Collaboration** > **Experimental**
|
||||
3. Use the **Output Audio Device** and **Input Audio Device** dropdowns to select your preferred devices
|
||||
|
||||
Changes take effect immediately. If you select a device that becomes unavailable, Zed falls back to system defaults.
|
||||
|
||||
To test your audio configuration, click **Test Audio** in the same section. This opens a window where you can verify your microphone and speaker work correctly with the selected devices.
|
||||
|
||||
**JSON configuration:**
|
||||
|
||||
```json [settings]
|
||||
{
|
||||
"audio": {
|
||||
"experimental.output_audio_device": "Device Name (device-id)",
|
||||
"experimental.input_audio_device": "Device Name (device-id)"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Set either value to `null` to use system defaults.
|
||||
Reference in New Issue
Block a user