Ivan Molodetskikh
921ed63204
Add LayerSurface to PointerFocus
2024-07-06 18:17:48 +04:00
Ivan Molodetskikh
1da99f4003
Implement focus-follows-mouse max-scroll-amount
2024-07-05 20:53:11 +04:00
Ivan Molodetskikh
de6caec685
Recompute current pointer focus for focus-follows-mouse
...
Fixes https://github.com/YaLTeR/niri/issues/377 .
2024-07-05 10:13:50 +04:00
Salman Farooq
d3aebdbec4
Implement key repeat for compositor binds
2024-07-05 08:40:25 +03:00
Ivan Molodetskikh
9dcc9160b3
Put Outputs config into a dedicated struct
2024-07-05 07:35:01 +03:00
tet
43df7fad46
Implement wlr-output-management protocol
...
fix: wlr_output_management use WeakOutput
2024-07-05 07:35:01 +03:00
Ivan Molodetskikh
d2087a2cd9
Add output ID tracking
2024-07-05 07:35:01 +03:00
Ivan Molodetskikh
4d60eae82e
Fix blocked-out + popups and rounded corners window screencasts
2024-06-28 12:35:12 +04:00
Ivan Molodetskikh
a43f30b7f5
Ignore compositor opacity for window screencasts
...
When using opacity as unfocused indicator, it will show up on the
screencast, which is undesired.
This is not a problem for window screen*shot*s where the window is
focused.
2024-06-28 10:39:36 +04:00
Ivan Molodetskikh
88f7b08e56
Add transparency support to window screencasts
...
Turns out it needed to be in a separate pod.
2024-06-28 10:39:35 +04:00
Ivan Molodetskikh
dc92d80b9f
Implement initial window screencasting
2024-06-28 10:39:35 +04:00
Ivan Molodetskikh
40aff3a094
Implement org/gnome/shell/Introspect/GetWindows
2024-06-28 10:39:35 +04:00
Ivan Molodetskikh
589e5a600c
Keep screencast running through size changes
2024-06-21 11:05:28 +03:00
Ivan Molodetskikh
cb0ebd35ce
Make tablet without specific output map to union of outputs
2024-06-19 23:02:45 +03:00
Ivan Molodetskikh
986f2c14ab
Make scale use FloatOrInt
2024-06-18 14:01:34 +03:00
Ivan Molodetskikh
8425493ef5
Allow scale below 1
2024-06-18 14:01:34 +03:00
Ivan Molodetskikh
33b5beaeee
Round scale to closest representable
2024-06-18 14:01:34 +03:00
Ivan Molodetskikh
1dae45c58d
Refactor layout to fractional-logical
...
Lets borders, gaps, and everything else stay pixel-perfect even with
fractional scale. Allows setting fractional border widths, gaps,
struts.
See the new wiki .md for more details.
2024-06-18 14:01:28 +03:00
Ivan Molodetskikh
997119c443
Enable fractional scaling
2024-06-18 12:23:50 +03:00
Ivan Molodetskikh
3c63be6261
Implement our own TextureBuffer/RenderElement
...
Supports fractional texture scale + has some getters.
2024-06-10 18:08:00 +03:00
Ivan Molodetskikh
e3406ac255
Signal fractional scale to clients
...
Doesn't do anything yet because we don't bind the fractional scale
manager and don't allow fractional scales.
2024-06-10 18:08:00 +03:00
Peter Collingbourne
bc3d6cac80
Implement xdg_activation_v1
...
Fixes #30 .
2024-06-10 18:06:34 +03:00
Ujp8LfXBJ6wCPR
af6d84a7f8
Fix typos ( #429 )
...
* Fix typos reported by "typos" crate
https://github.com/crate-ci/typos
* Ignore typo datas -> data
See https://github.com/crate-ci/typos?tab=readme-ov-file#false-positives
for more configureability.
---------
Co-authored-by: Carl Hjerpe <git@hjerpe.xyz >
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2024-06-09 10:50:22 +00:00
rustysec
36d3e70f11
Implement niri msg workspaces
2024-05-17 10:33:00 +03:00
Ivan Molodetskikh
ae63773737
Update Smithay and other deps
2024-05-16 18:00:28 +04:00
Ivan Molodetskikh
cbfc682f9a
Implement at-startup window rule
2024-05-16 12:27:09 +04:00
Gergely Nagy
eb9bbe3352
Implement named workspaces
...
This is an implementation of named, pre-declared workspaces. With this
implementation, workspaces can be declared in the configuration file by
name:
```
workspace "name" {
open-on-output "winit"
}
```
The `open-on-output` property is optional, and can be skipped, in which
case the workspace will open on the primary output.
All actions that were able to target a workspace by index can now target
them by either an index, or a name. In case of the command line, where
we do not have types available, this means that workspace names that
also pass as `u8` cannot be switched to by name, only by index.
Unlike dynamic workspaces, named workspaces do not close when they are
empty, they remain static. Like dynamic workspaces, named workspaces are
bound to a particular output. Switching to a named workspace, or moving
a window or column to one will also switch to, or move the thing in
question to the output of the workspace.
When reloading the configuration, newly added named workspaces will be
created, and removed ones will lose their name. If any such orphaned
workspace was empty, they will be removed. If they weren't, they'll
remain as a dynamic workspace, without a name. Re-declaring a workspace
with the same name later will create a new one.
Additionally, this also implements a `open-on-workspace "<name>"` window
rule. Matching windows will open on the given workspace (or the current
one, if the named workspace does not exist).
Signed-off-by: Gergely Nagy <niri@gergo.csillger.hu >
2024-05-16 01:24:34 -07:00
Ivan Molodetskikh
df36eac25b
Fix render elements looking off on screenshots
2024-05-15 20:09:49 +04:00
Ivan Molodetskikh
5335ef454b
Implement custom shader for window-open
2024-05-15 19:38:29 +04:00
Ivan Molodetskikh
9004c83954
Implement custom shader for window-close anim
2024-05-12 09:52:36 +04:00
Ivan Molodetskikh
bc29256b9d
Implement Mod+MMB view offset gesture
2024-05-11 14:02:37 +04:00
Ivan Molodetskikh
beba87354a
Group input-related things in a subfolder
2024-05-11 13:21:05 +04:00
Ivan Molodetskikh
2fd9a03bd7
Stop confining the pointer during resize grab
2024-05-11 09:26:49 +04:00
Ivan Molodetskikh
9dfa121b8e
Implement interactive mouse resizing
2024-05-10 20:23:08 +04:00
Ivan Molodetskikh
ed2b6d3894
Mark screen transition texture transparent
2024-05-08 08:21:15 +04:00
Ivan Molodetskikh
47925948a3
Add trace span to do_screen_transition
2024-05-08 08:21:04 +04:00
Ivan Molodetskikh
5248e53499
Implement do-screen-transition action
2024-05-07 22:19:11 +04:00
Ivan Molodetskikh
96823eea38
Make output name matching case-insensitive
2024-05-05 12:55:57 +04:00
Ivan Molodetskikh
2e4a2e13b1
Make missing scale = automatic selection
...
That was the intention, but I missed it before.
2024-05-05 12:39:20 +04:00
Ivan Molodetskikh
65b9c74f62
Implement niri msg output
2024-05-05 10:19:47 +04:00
Ivan Molodetskikh
73cc0079d6
Split update_render_elements() from advance_animations()
...
advance_animations() is called from places like input, whereas
update_render_elements() is strictly for rendering.
2024-05-04 11:10:02 +04:00
Ivan Molodetskikh
8ab50f9d1c
shader_element: Store program type instead of shader
2024-05-03 21:23:32 +04:00
Ivan Molodetskikh
1a8d6b1f1d
Add a semi-working debug-toggle-damage binding
2024-05-03 10:33:31 +04:00
Ivan Molodetskikh
c6d64dae7a
Add debug-toggle-opaque-regions
2024-05-02 17:52:06 +04:00
Ivan Molodetskikh
8d99e3c015
Add disable-direct-scanout debug flag
2024-04-25 22:10:52 +04:00
Ivan Molodetskikh
9df71bcb5d
Add fixme comment
2024-04-25 08:48:35 +04:00
Ivan Molodetskikh
04c5b9ad74
Only give keyboard focus to exclusive layer-shell surfaces
...
Workaround until we properly support on-demand.
See: https://github.com/YaLTeR/niri/issues/308
2024-04-25 08:43:37 +04:00
Ivan Molodetskikh
dc1d2b706c
Implement ideal scale factor guessing
2024-04-24 12:26:59 +04:00
Kirill Chibisov
279659ac90
Unconstrain InputMethod's PopupSurface
...
Make IME popup to be visible inside the parent and not obscure the
text input rectangle region.
Fixes https://github.com/YaLTeR/niri/issues/221
2024-04-23 00:09:42 -07:00
Ivan Molodetskikh
d4bed70884
Advertise Abgr8888 and Xbgr8888 in shm
2024-04-22 17:47:12 +04:00