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
Ivan Molodetskikh
49f5402669
Implement window-resize custom-shader
2024-04-21 20:16:54 +04:00
Ivan Molodetskikh
3c6d8062c5
Add variable-refresh-rate flag
2024-04-14 09:37:42 +04:00
Ivan Molodetskikh
1888696567
Reimplement window closing anim in an efficient way
...
- Keep a root surface cache to be accessible in surface destroyed()
- Only snapshot during / right before closing, rather than every frame
- Store textures rather than elements to handle scale and alpha properly
2024-04-10 09:14:04 +04:00
Ivan Molodetskikh
7e0d3d31f7
Update Smithay
2024-04-09 19:06:13 +04:00
Ivan Molodetskikh
83aec41df3
Hide pointer on touch interaction
2024-04-06 10:57:12 -07:00
Ivan Molodetskikh
fe79a6a4e2
Clarify PipeWire error message
2024-03-31 11:36:04 +04:00
Ivan Molodetskikh
9b7ed57d37
Create screenshot directory if it doesn't exist
2024-03-28 20:59:42 +04:00
Ivan Molodetskikh
3091102365
Implement niri msg focused-window
2024-03-28 13:45:24 +04:00
Ivan Molodetskikh
9927c15f68
Replace config transform with ipc
2024-03-27 17:03:17 +04:00
Ivan Molodetskikh
cf87a185a9
Add logical output info and preferred modes to IPC
2024-03-27 14:54:24 +04:00
Ivan Molodetskikh
e276c906bf
Expose more info in DisplayConfig impl
...
Needed for the new xdp-gnome.
2024-03-27 09:46:18 +04:00
Ivan Molodetskikh
5f23d344d5
Make screenshot UI render target-aware
2024-03-24 11:25:48 +04:00
Ivan Molodetskikh
493c8dc890
Implement block-out-from window rule, fix alpha on window screenshots
2024-03-24 10:22:56 +04:00
Ivan Molodetskikh
a16a0f0e52
Implement TouchpadScroll binds
2024-03-23 20:30:45 +04:00
Ivan Molodetskikh
6ba195211b
Rename WheelTracker to ScrollTracker
2024-03-23 20:17:01 +04:00
Ivan Molodetskikh
afaaf36f27
Avoid scroll bind lookup until it is triggered
2024-03-23 19:20:44 +04:00
Ivan Molodetskikh
f1b36b0dce
Send pending configure after recomputing window rules
2024-03-23 18:57:06 +04:00