aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-10-01config/input: add cursor sectionKirill Chibisov
This should allow users to configure theme and size for the cursor, as well as automatically set `XCURSOR_THEME` and `XCURSOR_SIZE` env variables.
2023-10-01Make default cursor respect output scaleIvan Molodetskikh
First part of https://github.com/YaLTeR/niri/issues/16
2023-10-01protocols: add IME protocolsKirill Chibisov
This commit adds support for the `input_method_v2`, `text_input_v3`, and `virtual_keyboard`. The implementation follows the one in the anvil and catacomb, but those protocols are mostly enabled and forget type of things. Fixes #22.
2023-10-01Make find_window_and_output() accept non-mut selfIvan Molodetskikh
2023-09-30Compute view offset relative to anim targetIvan Molodetskikh
This enables quickly tapping focus right-left to keep typing in the current window while showing the next window. Resolves https://github.com/YaLTeR/niri/issues/26
2023-09-30Refactor frame schedulingIvan Molodetskikh
Combine the redraw state variables into one enum, and refactor to get rid of the requirement that a VBlank must queue a subsequent redraw. Also fix the bug where ongoing animations that produced no damage could stall the redrawing.
2023-09-30Make output position configurableIvan Molodetskikh
Implements https://github.com/YaLTeR/niri/issues/14
2023-09-30input: Simplify logic when cursor is outside outputsIvan Molodetskikh
2023-09-30Make pipewire / xdp-gnome-screencast optionalIvan Molodetskikh
2023-09-30Disable RUST_LIB_BACKTRACE if unsetIvan Molodetskikh
When building on nightly, this is required to disable the costly anyhow backtraces.
2023-09-30Use non-fancy miette hookIvan Molodetskikh
Cuts down our dependencies a bit. We only use miette due to knuffel so it makes sense.
2023-09-30Update SmithayIvan Molodetskikh
2023-09-29Avoid unnecessary configures for xdg-decorationIvan Molodetskikh
They actually break some clients like Tracy for some unknown to me reason.
2023-09-29Extract initial_configure_sentIvan Molodetskikh
2023-09-29Change send_initial_configure_if_needed to accept ToplevelSurfaceIvan Molodetskikh
2023-09-29Throttle frame callbacks to once per monitor refreshIvan Molodetskikh
Under some circumstances, the compositor can get into a commit-frame callback busy loop with a client. For example, if a client redraws on frame callbacks, but the resulting frame has empty damage (e.g. the damaged part of the client is outside the monitor). Or if the client simply commits with empty damage (looking at you, Firefox). This behavior is compliant with the Wayland specification and with the intended idea of frame callbacks, but causes a lot of unnecessary CPU usage in the client and the compositor. To solve this problem, this commit introduces frame callback throttling. Every surface may only receive a single frame callback in one monitor refresh cycle. If a surface commits resulting in no KMS frame submission, a timer is created, that will fire at the predicted would- be-VBlank time, and send the accumulated frame callbacks. This way, a surface that redraws on frame callbacks will not notice any change in frame callback delivery, if its commits suddenly stop producing KMS updates.
2023-09-28layout: Add communicate op to testsIvan Molodetskikh
2023-09-28layout: Refresh windows tooIvan Molodetskikh
This will send output enter/leave to new popups.
2023-09-27shell: add support for kde server decorationsKirill Chibisov
This should provide server side decorations for the gtk3 applications, like firefox.
2023-09-27layout: Use actual working area on workspace creationIvan Molodetskikh
Fixes https://github.com/YaLTeR/niri/issues/19
2023-09-27Update primary selection focusIvan Molodetskikh
2023-09-27Send pointer.frame() after pointer.button()Ivan Molodetskikh
2023-09-27layout: Add more ops for proptest to play withIvan Molodetskikh
2023-09-27layout: Add randomized testIvan Molodetskikh
2023-09-27Fix test nameIvan Molodetskikh
2023-09-27Fix layer-shell render layeringIvan Molodetskikh
2023-09-26Implement primary selectonIvan Molodetskikh
Firefox clipboard doesn't always work without it.
2023-09-26Fix panic when the last window on previous workspace is closedIvan Molodetskikh
2023-09-26Extract check_opsIvan Molodetskikh
2023-09-26Fix panic when adding previously-removed output sometimesIvan Molodetskikh
2023-09-26Fix verify_invariants() assertsIvan Molodetskikh
2023-09-26Add layer shell exclusive zone supportIvan Molodetskikh
2023-09-26Add initial config hot reloadingIvan Molodetskikh
2023-09-26Add prefer-no-csd optionIvan Molodetskikh
2023-09-26tty: Take metadata by valueIvan Molodetskikh
2023-09-26Make focus ring configurableIvan Molodetskikh
2023-09-26Skip rendering when backend is inactiveIvan Molodetskikh
2023-09-26Avoid unwraps in more placesIvan Molodetskikh
2023-09-26tty: Add more trace spansIvan Molodetskikh
2023-09-26tty: Extract other event handlers into functionsIvan Molodetskikh
2023-09-26tty: Avoid panicks in the vblank callbackIvan Molodetskikh
2023-09-26tty: Extract on_vblank()Ivan Molodetskikh
2023-09-26Use new tracy-client new_leak() methodsIvan Molodetskikh
I added them to avoid the use of internal module and leaks when tracing is disabled.
2023-09-26Remove obsolete commentIvan Molodetskikh
2023-09-26Remove LoopDataIvan Molodetskikh
The calloop Smithay update finally lets me do this.
2023-09-26Update SmithayIvan Molodetskikh
2023-09-24Add focus ringsIvan Molodetskikh
2023-09-24layout: Focus prev column when removing just created columnIvan Molodetskikh
This works similar to tabs in Firefox: when you create a tab and then close it without focusing any other tabs, the focus returns to the previously-focused tab, rather than the usual next tab. The logic is that in this case, the new tab was likely transient, and the user wants to get right back to what they were doing. In niri's case, this also serves as a workaround for wl-clipboard spawning and destroying a window, messing up the focus.
2023-09-24layout: Preserve active column when column to the left is removedIvan Molodetskikh
2023-09-21Add spawn-at-startup config optionIvan Molodetskikh
Fixes https://github.com/YaLTeR/niri/issues/12