Kovid Goyal
0f1362524b
Store more information about axis events from Wayland
2026-01-01 13:25:30 +05:30
Kovid Goyal
2ffa8cd7c2
Apparently gamma22 gives incorrect colors or at least colors different from rendering without color management. srgb transfer function gives expected colors.
2025-07-31 19:07:28 +05:30
Kovid Goyal
caa654b6b8
Also track needed color manager features
2025-07-31 18:53:24 +05:30
Kovid Goyal
d37bd7afcf
Create the sRGB colorspace description we need
2025-07-31 18:30:47 +05:30
Kovid Goyal
fe860d170f
Track that the compositor supports the sRGB primary
2025-07-31 15:39:55 +05:30
Kovid Goyal
46114c251b
Create the color manager object for a window surface
2025-07-31 15:24:21 +05:30
Kovid Goyal
8762576a5b
Also track support for extlinear transfer function
2025-07-31 15:12:26 +05:30
Kovid Goyal
d0a862bedb
Get the color manager capabilities from the compositor
2025-07-31 15:09:18 +05:30
Kovid Goyal
f04e963683
Bind the wayland color manager interface
2025-07-31 14:37:42 +05:30
Kovid Goyal
6f689f3221
Work on keyboard grabbing functionality
2025-05-18 11:37:11 +05:30
Kovid Goyal
8017945551
Wayland: Add support for the xdg-toplevel-tag protocol
...
Now you can use --name or its alias --os-window-tag to set the tag.
2025-05-15 09:35:42 +05:30
Kovid Goyal
88f4c829eb
Improve handling of output names
...
Now can use panel --output-name list to list available outputs.
Also, --output-name works on macOS
2025-05-13 15:29:37 +05:30
Kovid Goyal
c1b6b4494a
Implement starting kitty hidden
...
Fixes #3466
2025-04-23 08:50:02 +05:30
Kovid Goyal
5d2e258c35
Wayland: When the compositor supports the xdg-system-bell protocol use it to play the default bell sound
2025-04-16 15:48:51 +05:30
Kovid Goyal
49092f5a94
Add new wayland top level state enum values
2025-04-09 19:23:27 +05:30
Kovid Goyal
3b8e0e209b
Wayland: Allow overriding the kitty OS Window icon on compositors that implement the xdg-toplevel-icon protocol
2025-03-10 12:32:03 +05:30
Kovid Goyal
0c47f81187
Remove special casing for Hyprland
...
Hyprland has now been fixed to send only a single fractional scale
event, so no need for special casing it.
2025-01-22 18:53:46 +05:30
Kovid Goyal
0527db876b
Wayland niri: Fix 250ms delay on startup when using scale 1
...
We special case Hyprland, hopefully the special casing can be removed
once https://github.com/hyprwm/Hyprland/issues/9126 is fixed.
Fixes #8236
2025-01-21 16:40:32 +05:30
Kovid Goyal
7346aca56d
Function to probe for Wayland compositor name
...
Maybe needed to workaround #8236
2025-01-21 15:10:07 +05:30
Kovid Goyal
1ff74b86dc
Wayland GNOME: Workaround bug in mutter causing double tap on titlebar to not always work
...
Fixes #8054
2024-11-18 08:46:17 +05:30
Kovid Goyal
627360e5ad
Bind the idle inhibit protocol even though it is currently unused
2024-08-27 11:32:06 +05:30
Kovid Goyal
d7902f6b24
Wayland GNOME: Fix a small rendering artifact when docking a window at a screen edge or maximizing it
...
For some reason destroying the shadow surfaces causes mutter to render one of them at its old relative position. So workaround by not destroying the surfaces, modern mutter anyway seems to hide them when the window is docked.
Fixes #7701
2024-08-07 13:34:10 +05:30
Kovid Goyal
190566be8e
Wayland: Fix specifying the output name for the panel kitten not working
...
Fixes #7573
2024-06-25 12:53:37 +05:30
Kovid Goyal
88aa4d1de3
Revert 72272ab4fe
...
Apparently NVIDIA drivers dont handle this well. Sigh.
Go back to calling wl_egl_window_resize() before resizing the
framebuffer instead of before swapping in the resized framebuffer.
Logically, these should be equivalent, but...
Wayland is such an ongoing disaster.
Fixes #7493 (I hope).
2024-06-02 19:24:00 +05:30
Kovid Goyal
8c7994c0ac
Dont call wl_egl_window_resize on every swap
2024-04-24 10:04:06 +05:30
Kovid Goyal
72272ab4fe
Remove need for context switching
...
Call wl_egl_window_resize just buffer swapping buffers at which point
the context is already correct.
Also might workaround bugs in the NVIDIA driver: https://github.com/NVIDIA/egl-wayland/issues/52
2024-04-24 09:27:02 +05:30
Kovid Goyal
8d1b0e54af
Use double for wayland float calculation
2024-04-19 22:23:01 +05:30
Kovid Goyal
ac4eef7eb3
Another try at pointer frame support on Wayland
...
This time I think I got the wheel handling correct. At least works with
my wheel mouse.
2024-04-08 19:07:52 +05:30
Kovid Goyal
8fc96c5bd7
Make the debug logging functions consistent
...
They now all output the same format of:
[time since program start] msg
2024-04-08 12:53:55 +05:30
Kovid Goyal
d392aba64d
Wayland CSD: Dont render window shadows for docked windows
2024-04-08 10:59:03 +05:30
Kovid Goyal
d630b3d8a7
Change the maximize icon to restore when window is maximized
2024-04-08 09:36:38 +05:30
Kovid Goyal
bf60321466
Use individual surfaces for corner and bar shadows
...
Simplifies a bunch of code and also gives us the option at a later date
to turn off some shadows selectively when the window is in a tiled
state.
2024-04-07 22:28:41 +05:30
Kovid Goyal
5b1fdc34eb
Wire up the buttons
2024-04-06 14:58:31 +05:30
Kovid Goyal
60cb0fa650
Move CSD pointer handling code into CSD file
2024-04-06 12:49:07 +05:30
Kovid Goyal
235b8dc2e4
Assume all capabilities on compositors that dont support reporting of capabilities
2024-04-06 10:59:28 +05:30
Kovid Goyal
4f6faddbab
Implement rendering of window control buttons in CSD
...
They still need to be wired up
2024-04-06 08:32:07 +05:30
Kovid Goyal
f51c2f08a5
DRYer
2024-04-04 19:11:21 +05:30
Kovid Goyal
b3197e4498
Wayland: Add fractional scale support to CSD
2024-04-04 11:25:17 +05:30
Kovid Goyal
b4bba99678
Use single pixel buffer protocol for more efficient temp buffer creation
2024-04-04 09:00:33 +05:30
Kovid Goyal
5a62bbdd33
Revert "Wayland: Add support for pointer frame events. Code taken with thanks from SDL"
...
This reverts commit 506be129e1 .
Seems to have broken wheel scrolling and I lake the time/interest to
debug why. Since this commit didnt actually solve any real issue revert
it for now. Revisit in the future when I have more bandwidth.
Fix #7287
2024-03-31 20:33:58 +05:30
Kovid Goyal
506be129e1
Wayland: Add support for pointer frame events. Code taken with thanks from SDL
2024-03-28 15:32:59 +05:30
Kovid Goyal
a40a36d191
Wayland: Remove the 120ms penalty from waiting for window creation
...
When showing the window we loop in the wayland backend using a
temporary buffer of blank pixels to force the compositor to finish
setting up the top level surface pronto.
TODO: Set the color of the temmporary buffer to the background color
2024-03-26 15:40:13 +05:30
Kovid Goyal
adf5917325
Wayland: Only launch child after OS Window achieves its final size
...
Avoids a bunch of SIGIWNCH during child startup as not all programs
handle these correctly. Sadly adds about 0.1 seconds of latency to
startup. Will have to look into reducing that. The Wayland protocol is
*so badly* designed.
2024-03-26 12:48:45 +05:30
Kovid Goyal
2edd332759
Flag to indicate that we expect scale from compositor
2024-03-26 10:41:40 +05:30
Kovid Goyal
fe5ccc144b
Finish glfw side support for layer shell
2024-03-24 20:48:20 +05:30
Kovid Goyal
707e69a794
Start work on wayland layer shell support
2024-03-24 20:48:20 +05:30
Kovid Goyal
1c9f9a74e8
Wayland KDE: Add support for background_blur under kwin using a kwin private Wayland protocol
2024-03-22 13:41:44 +05:30
Kovid Goyal
83468535dd
Implement support for preferred buffer scale
2024-03-21 20:53:36 +05:30
Kovid Goyal
55115058d2
Scale pointer axis events by effective scale
2024-03-21 20:53:36 +05:30
Kovid Goyal
776bfa3d7e
Basic fractional scale protocol works
2024-03-21 20:53:36 +05:30