Commit Graph

358 Commits

Author SHA1 Message Date
Kovid Goyal
2456574992 Wayland: Only rely on keyboard enter/leave events for OS window focus state
GNOME has broken activated==focused assumption GLFW used to make. Also
follows upstream GLFW behavior. c2f0a0ae59

Fixes #8716
2025-06-09 06:52:56 +05:30
Kovid Goyal
abc9b1fc48 ... 2025-05-18 12:06:10 +05:30
Kovid Goyal
82523b14df Wayland: Dont loose keyboard grab when new OS window created 2025-05-18 11:43:41 +05:30
Kovid Goyal
6f689f3221 Work on keyboard grabbing functionality 2025-05-18 11:37:11 +05:30
Jin Liu
4c6c38929b panel kitten: on Wayland, use app-id for the LayerShellV1 namespace parameter
The Wayland LayerShellV1 protocol doesn't allow setting window class/name/role/type/appId.
Instead, it has a `namespace` parameter that we currently hardcode to `kitty`. It
seems suitable to use app-id for this parameter.

Example use case:
kwin use the `namespace` parameter and an undocumented mapping to set window type for
Layer Shell windows. E.g., "dock" maps to NET:Dock. So if we set `app_id dock` in
quick_access_terminal.conf, the panel would be considered a dock, and won't have the
normal scale in/out animation on shown/hidden.
2025-05-15 23:55:48 +08:00
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
6282a46ff1 A new centered panel type that is sized 2025-05-13 16:38:57 +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
9ed6be9272 Quick access terminal: Allow toggling the window to full screen and map using the standard kitty toggle_fullscreen shortcut
Fixes #8626
2025-05-12 15:20:48 +05:30
Kovid Goyal
be9624bbdd Fix px suffix for lines/columns not working 2025-05-02 08:11:49 +05:30
Kovid Goyal
f04fc251bf Start work on full panel support in X11 2025-05-01 15:44:08 +05:30
Kovid Goyal
df052edae8 Wayland: Also set layer shell surface layer when showing surface
Without this on KDE the layer is reset to background.
2025-04-30 06:38:12 +05:30
Kovid Goyal
5abc33bcf2 Layer shell: inform compositor of newly desired window size when changing layer shell config
Without this non-sway compositors dont send a layer shell configure
event after the surface commit.

Fixes #8566
2025-04-23 19:26:13 +05:30
Kovid Goyal
c1b6b4494a Implement starting kitty hidden
Fixes #3466
2025-04-23 08:50:02 +05:30
Kovid Goyal
3c4a8a1e7e Resize OS panels on font size change 2025-04-23 07:43:36 +05:30
Kovid Goyal
ae01cf3c1c Refactor layer shell size callback to support multiple backends 2025-04-23 07:43:36 +05:30
Kovid Goyal
40f18ac507 make kwin bug searchable 2025-04-22 14:57:08 +05:30
Kovid Goyal
dd5401ebed ... 2025-04-22 14:56:39 +05:30
Kovid Goyal
26affb3513 ... 2025-04-22 14:54:23 +05:30
Kovid Goyal
4c0a7223c1 Fix show/hide of OS windows on wayland 2025-04-22 14:53:35 +05:30
Kovid Goyal
8b6a210ac1 Allow specifying --listen-on for panel kitten 2025-04-22 14:29:32 +05:30
Kovid Goyal
22fe41a047 Workaround KDE layer shell bug 2025-04-22 13:46:38 +05:30
Kovid Goyal
fc5fc7c9c4 Remote control: Allow modifying desktop panels and showing/hiding OS Windows using the kitten @ resize-os-window command
Also move the visibility toggle debounce into C code with a per OS
Window timer.

Fixes #8550
2025-04-22 13:34:09 +05:30
Kovid Goyal
c1a9873530 API to set layer shell config for existing window 2025-04-22 11:13:32 +05:30
Kovid Goyal
db5b691545 Show a debug message indicating we are waiting for layer shell configure event 2025-04-22 10:49:44 +05:30
Kovid Goyal
5e2d44ce15 Make passing layer shell config to glfw not use a global variable 2025-04-22 10:45:28 +05:30
Kovid Goyal
85d58de035 kitty can finally natively implement a quake like terminal dropdown
Currently Wayland (except for GNOME as usual) only.
2025-04-21 20:28:56 +05:30
Kovid Goyal
3ce734ce9c launch: Allow creating desktop panels
Now users can use mappings or remote control to popup new desktop panels
on Wayland in addition to new desktop windows.

Fixes #8549
2025-04-21 14:59:31 +05:30
Kovid Goyal
a8693e45ef Nicer error message when running panel kitten on a compositor that does not support layer shell 2025-04-21 13:39:16 +05:30
Kovid Goyal
64b5d2d187 More precise error on resize panel attempt 2025-04-21 12:32:20 +05:30
Kovid Goyal
e2cf1e9185 Dont crash when user attempts to resize panel via remote control
Fixes #8550
2025-04-20 15:19:35 +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
3c57cc02f7 Wayland: panel kitten: Fix incorrect initial font size on compositors such as Hyprland that set scale late in the window creation process
Fixes #8496
2025-03-30 16:19:52 +05:30
Kovid Goyal
2c0bc79be1 Typo causing crash on Waylnd compositors that dont support xdg-toplevel-icon
Fix #8471
2025-03-24 14:23:32 +05:30
Kovid Goyal
b34a88065b Wire up clipboard lost events 2025-03-12 09:26:36 +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
alex-huff
9188d6a664 Wayland: added --edge=center option for panel kitten 2025-03-07 11:11:07 -06:00
alex-huff
a3a5f4fa24 Wayland: Updated anchor for edge=none to be consistent with documentation 2025-03-06 19:35:09 -06:00
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
5e41de9505 ... 2025-01-21 16:43:18 +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
af9e9fbc6f Fix #8138 2024-12-20 08:58:35 +05:30
Robin Carlier
2005069f90 Panel: fix height, exclusive zone flag, better helptext 2024-11-24 10:48:37 +01:00
Robin Carlier
5f1c603220 Panel: add options for margin 2024-11-23 21:07:57 +01:00
Robin Carlier
ce2bcbb92d Panel: add a edge=none option 2024-11-23 21:07:57 +01:00
Robin Carlier
4eb8e6052f Panel: choose the display layer 2024-11-23 21:07:57 +01:00
Kovid Goyal
16c82c7c16 Fix alpha conversion for wayland single pixel buffer 2024-10-20 09:35:28 +05:30
Kovid Goyal
3e8abaac58 ... 2024-08-27 10:30:35 +05:30
Kovid Goyal
68401eddba Wayland: Don't do two stage window creation
We cant make window visible after createwindow has returned because we
want to loop till the compositor fully creates the window and that loop
requires attaching a single pixel buffer to the window surface which
cannot be done once an OpenGL context is created for the window.

As far as I can see the preshow callback is not used on Wayland for
anything, so this should be OK to do.
2024-08-27 10:25:18 +05:30