Click a tile to pick it, scroll to move the selection. Hovering does not move the selection: the keyboard keeps that, and a click acts on whatever is under the cursor instead. A click on the margin, on a gap, or on an empty cell of a ragged last row does nothing. Tiles are already subsurfaces, so a click on a thumbnail identifies its tile by which surface the event arrived on — no hit-testing needed. Only the chrome around them (padding, labels, gaps) needs Layout::hit, which inverts the same maths elem() lays out with, and is tested against it. Picking waits for press and release on the same tile, so sliding off a tile before letting go is not a pick. wp_cursor_shape_v1 sets the pointer shape, which spares us a cursor theme and libwayland-cursor; without it the cursor keeps whatever shape the window underneath gave it. It is optional — a compositor without it just gets whatever shape was already there.
19 lines
490 B
TOML
19 lines
490 B
TOML
[package]
|
|
name = "wl-pick"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
description = "A live grid of window and display previews, for picking one"
|
|
license = "MIT"
|
|
|
|
[dependencies]
|
|
wayland-client = "0.31"
|
|
wayland-protocols = { version = "0.32", features = ["client", "staging", "unstable"] }
|
|
wayland-protocols-wlr = { version = "0.3", features = ["client"] }
|
|
memmap2 = "0.9"
|
|
rustix = { version = "1", features = ["fs", "mm", "shm"] }
|
|
swayipc = "4"
|
|
cosmic-text = "0.19"
|
|
|
|
[profile.release]
|
|
strip = true
|