docs: re-organize documentation
This commit is contained in:
parent
1a9b7146fd
commit
b03cdaa4b7
6 changed files with 717 additions and 160 deletions
161
docs/features.md
Normal file
161
docs/features.md
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
# Features
|
||||
|
||||
## Configuration
|
||||
|
||||
Jay can be configured via
|
||||
|
||||
- a declarative TOML file or
|
||||
- a shared library that gets injected into the compositor.
|
||||
|
||||
See [config.md](config.md) for more details.
|
||||
|
||||
## i3 Look and Feel
|
||||
|
||||
Jay's appearance is based on the default i3 look and feel.
|
||||
|
||||
Colors, sizes, and fonts can be customized.
|
||||
|
||||
## Stability
|
||||
|
||||
Jay has been stable for a long time.
|
||||
Crashes and incorrect behavior in released versions are very rare.
|
||||
|
||||
Jay also aims to be forward and backward compatible for existing setups, allowing you to
|
||||
upgrade or downgrade the compositor without having to adjust your configuration.
|
||||
|
||||
There is a small but growing integration test suite that is used to ensure this.
|
||||
|
||||
## CLI
|
||||
|
||||
Jay has a CLI that can be used to configure the compositor at runtime.
|
||||
|
||||
```
|
||||
~$ jay
|
||||
A wayland compositor
|
||||
|
||||
Usage: jay [OPTIONS] <COMMAND>
|
||||
|
||||
Commands:
|
||||
run Run the compositor
|
||||
generate-completion Generate shell completion scripts for jay
|
||||
log Open the log file
|
||||
set-log-level Sets the log level
|
||||
quit Stop the compositor
|
||||
unlock Unlocks the compositor
|
||||
screenshot Take a screenshot
|
||||
idle Inspect/modify the idle (screensaver) settings
|
||||
run-privileged Run a privileged program
|
||||
seat-test Tests the events produced by a seat
|
||||
portal Run the desktop portal
|
||||
randr Inspect/modify graphics card and connector settings
|
||||
input Inspect/modify input settings
|
||||
help Print this message or the help of the given subcommand(s)
|
||||
|
||||
Options:
|
||||
--log-level <LOG_LEVEL> The log level [default: info] [possible values: trace, debug, info, warn, error]
|
||||
-h, --help Print help
|
||||
```
|
||||
|
||||
## Multi-Monitor Support
|
||||
|
||||
Jay can be used with multiple monitors with hot-plug and hot-unplug support.
|
||||
When a monitor is unplugged, all workspaces are automatically moved one of the remaining
|
||||
monitors.
|
||||
When the monitor is plugged in again, these workspaces are restored.
|
||||
|
||||
## Multi-GPU Support
|
||||
|
||||
Jay can be used with multiple GPUs and monitors connected to different GPUs.
|
||||
One GPU is always used for rendering the desktop.
|
||||
You can change this GPU at runtime.
|
||||
|
||||
## Screen Sharing
|
||||
|
||||
Jay supports screen sharing via xdg-desktop-portal.
|
||||
|
||||
## Screen Locking
|
||||
|
||||
Jay can automatically lock your screen and disable outputs after inactivity.
|
||||
|
||||
## Notifications
|
||||
|
||||
Jay supports the zwlr_layer_shell_v1 protocol used by notification daemons.
|
||||
|
||||
## Fractional Scaling
|
||||
|
||||
Jay supports per-monitor fractional scaling.
|
||||
|
||||
## OpenGL and Vulkan
|
||||
|
||||
Jay can use either OpenGL or Vulkan for rendering.
|
||||
Vulkan offers better performance and memory usage but OpenGL is still provided for
|
||||
older hardware.
|
||||
|
||||
You can change the API at runtime without restarting the compositor.
|
||||
|
||||
## Explicit Sync
|
||||
|
||||
Jay supports explicit sync for compatibility with Nvidia hardware.
|
||||
|
||||
## Clipboard Managers
|
||||
|
||||
Jay supports clipboard managers via `zwlr_data_control_manager_v1`.
|
||||
|
||||
## Privilege Separation
|
||||
|
||||
Jay splits protocols into unprivileged and privileged protocols.
|
||||
By default, applications only have access to unprivileged protocols.
|
||||
|
||||
You can explicitly opt into giving applications access to privileged protocols via the Jay CLI or shortcuts.
|
||||
|
||||
## Protocol Support
|
||||
|
||||
Jay supports the following wayland protocols:
|
||||
|
||||
| Global | Version | Privileged |
|
||||
|-----------------------------------------|:-----------------|------------|
|
||||
| ext_foreign_toplevel_list_v1 | 1 | Yes |
|
||||
| ext_idle_notifier_v1 | 1 | Yes |
|
||||
| ext_session_lock_manager_v1 | 1 | Yes |
|
||||
| org_kde_kwin_server_decoration_manager | 1 | |
|
||||
| wl_compositor | 6[^no_touch] | |
|
||||
| wl_data_device_manager | 3 | |
|
||||
| wl_drm | 2 | |
|
||||
| wl_output | 4 | |
|
||||
| wl_seat | 9 | |
|
||||
| wl_shm | 2 | |
|
||||
| wl_subcompositor | 1 | |
|
||||
| wp_content_type_manager_v1 | 1 | |
|
||||
| wp_cursor_shape_manager_v1 | 1 | |
|
||||
| wp_fractional_scale_manager_v1 | 1 | |
|
||||
| wp_linux_drm_syncobj_manager_v1 | 1 | |
|
||||
| wp_presentation | 1 | |
|
||||
| wp_single_pixel_buffer_manager_v1 | 1 | |
|
||||
| wp_tearing_control_manager_v1 | 1[^no_tearing] | |
|
||||
| wp_viewporter | 1 | |
|
||||
| xdg_activation_v1 | 1 | |
|
||||
| xdg_toplevel_drag_manager_v1 | 1 | |
|
||||
| xdg_wm_base | 6 | |
|
||||
| zwlr_data_control_manager_v1 | 2 | Yes |
|
||||
| zwlr_layer_shell_v1 | 4[^no_exclusive] | Yes |
|
||||
| zwlr_screencopy_manager_v1 | 3 | Yes |
|
||||
| zwp_idle_inhibit_manager_v1 | 1 | |
|
||||
| zwp_linux_dmabuf_v1 | 5 | |
|
||||
| zwp_pointer_constraints_v1 | 1 | |
|
||||
| zwp_primary_selection_device_manager_v1 | 1 | |
|
||||
| zwp_relative_pointer_manager_v1 | 1 | |
|
||||
| zxdg_decoration_manager_v1 | 1 | |
|
||||
| zxdg_output_manager_v1 | 3 | |
|
||||
|
||||
[^no_touch]: Touch input is not supported.
|
||||
[^no_tearing]: Tearing screen updates are not supported.
|
||||
[^no_exclusive]: Exclusive zones are not supported.
|
||||
|
||||
## Missing Features
|
||||
|
||||
The following features are currently not supported but might get implemented in the future:
|
||||
|
||||
- Fine-grained damage tracking.
|
||||
- Touch support.
|
||||
- Tablet support.
|
||||
- Tearing updates of fullscreen games.
|
||||
Loading…
Add table
Add a link
Reference in a new issue