zed/crates
Roman f62baeda64
gpui: Add Wayland support (#7664)
This PR adds Wayland support to gpui using
[wayland-rs](https://github.com/Smithay/wayland-rs). It is based on
[#7598](https://github.com/zed-industries/zed/pull/7598).

It detects Wayland support at runtime by checking the existence of the
`WAYLAND_DISPLAY` environment variable. If it does not exist or is
empty, the X11 backend will be used. To use the X11 backend in a Wayland
session (for development purposes), you just need to unset
WAYLAND_DISPLAY (`WAYLAND_DISPLAY= cargo run ...`).

At the moment it only creates the window and renders the initial content
provided by `BladeRenderer`, so it can run "Hello world" example.


![image](https://github.com/zed-industries/zed/assets/40907255/1655bc64-4d36-4178-9851-bfe42f03f716)

Todo:
- [x] Add basic Wayland support.
- [x] Add window resizing.
- [x] Add window closing.
- [x] Add window updating.
- [ ] Implement input handling, fractional scaling, and support other
Wayland protocols.
- [ ] Implement all unimplemented todo!(linux).
- [ ] Add window decorations or use custom decorations (like on MacOS).
- [ ] Address other missing functionality.

Release Notes:
- N/A

---------

Co-authored-by: gabydd <gabydinnerdavid@gmail.com>
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2024-02-14 14:50:11 -08:00
..
activity_indicator chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
ai Allow OpenAI API URL to be configured via assistant.openai_api_url (#7552) 2024-02-12 11:37:27 -05:00
assets chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
assistant Allow OpenAI API URL to be configured via assistant.openai_api_url (#7552) 2024-02-12 11:37:27 -05:00
audio chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
auto_update chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
breadcrumbs chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
call revert single channel click (#7738) 2024-02-13 12:53:49 -07:00
channel Fix notes unread status (#7643) 2024-02-09 23:12:26 -07:00
cli Actually fail on clippy failures (#7619) 2024-02-09 10:13:00 -08:00
client Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
clock Clean up Cargo.toml files (#7044) 2024-01-29 23:47:20 -05:00
collab drop columns (#7742) 2024-02-14 14:30:48 -07:00
collab_ui revert single channel click (#7738) 2024-02-13 12:53:49 -07:00
collections gpui: Add Global marker trait (#7095) 2024-01-30 14:08:20 -05:00
color chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
command_palette Don't wait to dispatch commands (#7755) 2024-02-13 21:45:46 -07:00
copilot Add Clojure language support with tree-sitter and LSP (#6988) 2024-02-10 13:28:48 -08:00
copilot_ui Add information to Copilot sign-in UI when disabled (#7496) 2024-02-07 22:28:02 -07:00
db chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
diagnostics chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
editor panics (#7793) 2024-02-14 14:36:40 -07:00
extension Reload extensions more robustly when manually modifying installed extensions directory (#7749) 2024-02-13 16:15:19 -08:00
extensions_ui Fix extension list scrolling and add loading and empty states (#7782) 2024-02-14 12:47:58 -05:00
feature_flags chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
feedback vim: Fix renaming (#7714) 2024-02-12 22:28:26 -07:00
file_finder chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
fs Fix case-only renaming of files (#7768) 2024-02-14 16:00:31 +01:00
fsevent Translate notify::Event to fsevent::Event on linux (#7545) 2024-02-08 08:35:37 -08:00
fuzzy chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
git chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
go_to_line chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
gpui gpui: Add Wayland support (#7664) 2024-02-14 14:50:11 -08:00
gpui_macros Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
install_cli chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
journal chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
language Reload extensions more robustly when manually modifying installed extensions directory (#7749) 2024-02-13 16:15:19 -08:00
language_selector chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
language_tools Add logic for managing language and theme extensions (#7467) 2024-02-07 15:14:50 -05:00
live_kit_client X11: Continuous Presentation (#7762) 2024-02-14 12:24:12 -08:00
live_kit_server Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
lsp Read LSP message headers at once (#7449) 2024-02-09 09:40:50 -08:00
markdown_preview markdown_preview: Improved markdown rendering support (#7345) 2024-02-08 11:19:31 +02:00
media linux: various fixes across the crates to make it compile 2024-02-03 00:06:20 -08:00
menu chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
multi_buffer panics (#7793) 2024-02-14 14:36:40 -07:00
node_runtime chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
notifications chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
outline Avoid another confirmation when submitting/discarding feedback (#7569) 2024-02-08 16:13:54 +02:00
picker chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
plugin chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
plugin_macros Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
plugin_runtime Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
prettier chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
project Add double quote wrap in activate_python_virtual_environment (#7787) 2024-02-14 12:42:06 -08:00
project_panel Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
project_symbols Add logic for managing language and theme extensions (#7467) 2024-02-07 15:14:50 -05:00
quick_action_bar chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
recent_projects chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
refineable Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
release_channel chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
rich_text chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
rope Optimize construction and insertion of large SumTrees (#7731) 2024-02-13 16:24:40 +01:00
rpc Remove environment guards (#7741) 2024-02-13 13:20:14 -07:00
search Fix minor buffer search bar design issues (#7715) 2024-02-13 09:45:24 +01:00
semantic_index Allow OpenAI API URL to be configured via assistant.openai_api_url (#7552) 2024-02-12 11:37:27 -05:00
settings Canonicalize settings to avoid overwriting symlinks (#7632) 2024-02-09 22:31:14 +02:00
snippet Clean up Cargo.toml files (#7044) 2024-01-29 23:47:20 -05:00
sqlez Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
sqlez_macros chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
story chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
storybook chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
sum_tree Optimize construction and insertion of large SumTrees (#7731) 2024-02-13 16:24:40 +01:00
terminal Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
terminal_view Use local player selection color, not cursor, for terminal selection 2024-02-12 10:52:44 -05:00
text Improve panic message for invalid anchors (#7700) 2024-02-12 12:58:30 -08:00
theme Remove themes from the registry when the extension is uninstalled (#7745) 2024-02-13 16:41:34 -05:00
theme_importer theme_importer: Add --output flag for outputting the theme to a file (#7486) 2024-02-07 16:23:36 -05:00
theme_selector chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
ui chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
util Parse version from GitHub tag name instead of release name (#7423) 2024-02-08 15:28:51 -05:00
vcs_menu chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
vim Add netrw bindings for vim (#7757) 2024-02-14 14:38:07 -07:00
welcome chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
workspace Remove environment guards (#7741) 2024-02-13 13:20:14 -07:00
zed v0.124.x dev 2024-02-14 13:10:07 -05:00
zed_actions chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00