48 Commits

Author SHA1 Message Date
lbonn
3bec3fac59 Wayland: remove some dead code
Found with Codacy https://app.codacy.com/gh/davatorium/rofi/pull-requests/2099
2025-02-20 19:08:45 +01:00
lbonn
183b0b5d75 Wayland: fix key repeat rate
Fixes #81
2025-02-16 19:35:07 +01:00
lbonn
fab79016fb Fix a shadowing warning 2025-01-05 14:01:36 +01:00
lbonn
d88b475bad [Wayland] Add missing methods in wl_data_device_listener 2024-06-24 23:26:56 +02:00
lbonn
93ad86da10 [Wayland] Fix touchpad scrolling
Magic values were determined empirically...

Fixes #134
2024-06-07 00:14:29 +02:00
Samuel Dionne-Riel
b04bedca44 wayland/display: Fix mmap use
> From version 7 onwards, the fd must be mapped with MAP_PRIVATE by the recipient, as MAP_SHARED may fail.

 - https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_keyboard

Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
2024-05-05 21:05:47 +02:00
lbonn
47ae31eb5d [Wayland] Fix CodeQL overflow warning 2024-03-06 11:54:20 +01:00
lbonn
d8ba203f6e [Wayland] Handle clipboard pasting more securely
Only receive clipboard offers when pasting instead of storing the data
indefinitely.

This is also more performant by default as it is not doing unnecessary
work.
2024-03-06 10:19:24 +01:00
lbonn
37b8e9fb99 [Wayland] Fix axis events handling
This was very buggy, we were counting the events twice...

* always use pointer frame, it's available since v5
* drop axis handler
* use axis_discrete or axis_120 (v >= 8) instead
* fail on some protocol minimum version checks
* simplify output protocol version check

Fixes #120
2024-03-01 11:27:45 +01:00
lbonn
2a8380f260 [Config] Rename global-kbindings to global-kb 2024-02-28 12:02:53 +01:00
lbonn
0cec298f91 [Wayland] Make bindings inhibitor opt-in
Fixes #119
2024-02-28 09:29:04 +01:00
lbonn
d53738170c [Wayland] Inhibit compositor shortcuts
... with the dedicated wayland protocol.

This way, rofi can re-use compositor bindings. The canonical example is
window switching with Alt-Tab.
2024-02-27 14:09:18 +01:00
lbonn
d2ad9fe828 [Wayland] Fix remaining non-strict C prototypes 2024-02-27 13:34:41 +01:00
Aleksei Bavshin
cb6fd22118 [WaylandWindow] Unmap surface before sending activation request
Fixes lbonn/rofi#117
2024-02-26 19:32:40 +01:00
Aleksei Bavshin
b88dddd1a1 [Wayland] Compositor-side cursors via cursor-shape-v1 2024-01-08 16:08:01 +01:00
Aleksei Bavshin
8f259ce9b0 [Wayland] Cursor types support 2024-01-08 16:08:01 +01:00
Aleksei Bavshin
1592525edb [Wayland] Clear frame_cb after destroying resources 2024-01-08 16:08:01 +01:00
Aleksei Bavshin
5bc2f09241 Re-indent Wayland sources with clang-format 2024-01-07 14:02:17 +01:00
lbonn
2520c1ea16 [Wayland] Fix crash during layer shell destruction
Rofi will no longer crash if the current output is disconnected but
will respawn on the next output chosen by the compositor

Fixes #50
2024-01-06 16:30:19 +01:00
Aleksei Bavshin
8ea79da037 [Wayland] Implement config.dpi support.
The correct value of `config.dpi` is required to support physical units
in the themes (e.g. `mm` `in sidebar-v2`).
2024-01-05 17:10:52 +01:00
Aleksei Bavshin
ecdd2b2347 [Wayland] Support -m/-monitor <name>.
Defer layer surface creation until we read the configuration and know
the value of `config.monitor`. Wait for Wayland output details and try
to select a matching output by name.

Numeric values of -5..n are intentionally not supported, because
* the order of `wl_output` globals is not defined and may change between
  sessions
* the best we can do for -5..-1 is to let the compositor decide

`wid:` in theory can be emulated via `xdg-foreign`, but that requires a
regular `xdg_toplevel` instead of a layer surface.
2024-01-05 17:10:52 +01:00
Aleksei Bavshin
22ec839f27 [Wayland] Print monitor layout 2024-01-05 17:10:52 +01:00
Aleksei Bavshin
53d99c49ad [Wayland] Support wl_output version 4.
- Double-buffer the properties.
 - Fetch name, geometry and transform properties - we need these to
   calculate DPI and to implement `monitor` configuration field.
2024-01-05 17:10:52 +01:00
ddmetz
78888dd80d hover select 2023-11-30 10:36:47 +01:00
Wim Looman
5cd1e3ca2b Pass the xkb group (a.k.a. layout) to nk_bindings
The `group` is used by xkb to support switching between multiple
layouts, without telling `nk_bindings` about this rofi always sees key
presses as if they're in the first layout.
2023-10-11 21:24:16 +02:00
lbonn
7c79169309 Wayland: fix wayland-only mode again 2023-09-24 01:57:11 +02:00
MoetaYuko
0b223c16f3 Wayland: Apply scaling to cursor surface
Loading cursor theme and creating cursor surface are postponed to
wayland_pointer_enter because we don't know the display scale in the
early wayland_display_setup.

Partially fixes #45
2023-07-23 14:10:10 +02:00
lbonn
fd764eb036 Wayland: fix NULL pointer access 2023-02-11 16:46:44 +01:00
lbonn
f8bec1453c Wayland: real fullscreen support
See #64
2023-02-11 00:12:21 +01:00
waicool20
fd0ef6bc15 Fix for segfault after updating to KDE 5.26 2022-10-19 02:08:29 +02:00
lbonn
f2e08e7425 wayland: fix some compiler warnings 2022-08-24 00:03:58 +02:00
Jakub Jirutka
e963c3174a [Wayland] Implement partial support for offset properties on window
...using zwlr_layer_surface_v1::set_margin. It's only partial because
surface margin has effect only when the the window is located on edge of
the screen, not in center. Also the anchor property is not implemented,
the anchor point is always the edge of the window corresponding to the
location property.
2021-10-16 12:54:27 +02:00
sporif
083a88fa39 Fix cursor size
Default to a size of 24 pixels
Use the environment variable XCURSOR_SIZE if it's set
2021-10-15 13:57:01 +02:00
Quantum
06da4cf24c Implement async clipboard support for Wayland
This uses GIOChannels and the Glib event loop to read the file descriptor
in an asynchronous fashion.
2021-09-30 21:27:34 +02:00
lbonn
2a68677b6a Initial clipboard support for wayland
Using wl_data and primary_selection protocols
2021-09-06 15:34:53 +02:00
lbonn
6baa463264 Merge commit '954fc728b29d3c63a09a84870f29b57640062966' into wayland
Formatting changes only
2021-09-06 13:01:37 +02:00
lbonn
deb9330a0d Merge commit '1a1dc7282f5ed010af874398b5b3d70ea7cda8e8' into wayland 2021-09-06 13:00:57 +02:00
lbonn
7d4c5e8bd9 Run indenter 2020-11-25 19:10:26 +01:00
lbonn
87b48ce755 Revert "Use TOP layer instead of OVERLAY on Wayland"
This reverts commit dc1b15945a.

Given the current options, it's probably better to show rofi on top of
lock screens than not show it on top of full screen windows.

Discussion:
https://github.com/lbonn/rofi/issues/12
https://github.com/lbonn/rofi/issues/7
2020-10-18 21:26:10 +02:00
lbonn
74a157c644 wayland: set anchors on both size when auto-sizing
See https://github.com/swaywm/wlroots/pull/2422,
https://github.com/swaywm/sway/pull/5712
2020-10-12 19:06:43 +02:00
lbonn
33fbefdb8d Account for no active view state in various callbacks 2020-09-02 16:19:44 +02:00
lbonn
d3e96f2762 Run indenter 2020-09-02 16:03:49 +02:00
lbonn
dc1b15945a Use TOP layer instead of OVERLAY on Wayland
Overlay is reserved for lock screens and similar programs.

Fixes #7
2020-08-14 17:20:21 +02:00
lbonn
04d2a7a73d wayland: High DPI support 2020-07-24 19:30:02 +02:00
lbonn
17b4265a5f Put most of view implementation in common 2020-07-24 19:30:02 +02:00
lbonn
98a9635173 Make xcb and wayland implementations coexist 2020-07-24 19:30:02 +02:00
lbonn
97ea1c6d0b Continue work on wayland mode
- Fix mouse support
- Handle key repeats
- Positioning
- Fix periodic count updates
2020-07-24 19:30:02 +02:00
lbonn
7d94413675 Display something on wayland with layer shell
Based on sardemff7 previous wayland attempt
2020-07-24 19:30:02 +02:00