aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-12-11Activate monitors on session unlock (#858)Salman Farooq
So that e.g. unlocking by touching the fingerprint reader powers on the monitors. --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> Co-authored-by: Salman Farooq <46742354+SalmanFarooqShiekh@users.noreply.github.com>
2024-12-09Extract rules.apply_{min,max}_size()Ivan Molodetskikh
2024-12-08layout: Return instead of breakingIvan Molodetskikh
There's no code past this, and we want to break out of all loops.
2024-12-08layout: Return bool from activate_window()Ivan Molodetskikh
Avoid an extra has_window() call.
2024-12-07layout: Ignore more actions during interactive moveIvan Molodetskikh
The interactively moved window is the active window, so this makes sense.
2024-12-07layout: Extract Tile::verify_invariants()Ivan Molodetskikh
2024-12-07layout: Mark accessors as cfg(test)Ivan Molodetskikh
2024-12-01layout: Extract ScrollingSpaceIvan Molodetskikh
Leave the Workspace to do the workspace parts, and extract the scrolling parts into a new file. This is a pre-requisite for things like the floating layer (which will live in a workspace alongside the scrolling layer). As part of this huge refactor, I found and fixed at least these issues: - Wrong horizontal popup unconstraining for a smaller window in an always-centered column. - Wrong workspace switch in focus_up_or_right().
2024-12-01layout: Add a test for windows on other workspace remaining activatedIvan Molodetskikh
2024-12-01layout: Fix windows on other workspaces losing activated stateIvan Molodetskikh
This erroneous check was introduced in interactive move.
2024-12-01layout: Fix possible crash when dropping move on different, animating outputIvan Molodetskikh
2024-12-01layout: Correct variable namesIvan Molodetskikh
2024-12-01layout: Use tiles_mut() in Workspace::clear_unmap_snapshot()Ivan Molodetskikh
2024-12-01layout: Extract Workspace::tiles()Ivan Molodetskikh
2024-11-29Add strict-new-window-focus-policy debug flagIvan Molodetskikh
2024-11-29Activate newly mapped windows with a valid activation tokenChristian Meissl
most of the time the activation token is passed while the window is still unmapped. in this case store the intend to activate the window for later retrieval on map.
2024-11-29xdg: startup activationChristian Meissl
pass an activation token to process spawned through actions
2024-11-29Fix new warningsIvan Molodetskikh
2024-11-29Implement empty-workspace-above-first (#745)FluxTape
* Implement empty-workspace-above-first option * add two failing tests * fix interactive_move_onto_empty_output_ewaf and interactive_move_onto_first_empty_workspace tests * Add two failing ewaf option toggle tests * Fix adding/removing first empty workspace on option toggle * Don't remove first empty workspace if focused * Stop workspace switch when enabling ewaf * layout/monitor: Offset workspace switch on adding workspace above * Fix some initial active workspace ids with ewaf * wiki: Document empty-workspace-above-first --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-11-27layout: Stop workspace switch when moving workspaces to primaryIvan Molodetskikh
Okay, this might be one of the oldest layout issues to have remained uncaught. Well, maybe as I add more randomized tests, I'll catch even more of those.
2024-11-26layout/tests: Add post option update to randomized testIvan Molodetskikh
Will help to catch cases where updating options doesn't update the state correctly.
2024-11-26layout: Fix adjusting for scale for moved tile when reloading configIvan Molodetskikh
2024-11-26layout/tests: Return Layout from check_ops()Ivan Molodetskikh
Cuts down on boilerplate in a few places.
2024-11-26layout: Extract update_options()Ivan Molodetskikh
2024-11-26layout/tests: Allow AddWindowRightOf interactive moved windowIvan Molodetskikh
Guess I forgot this.
2024-11-26layout/tests: Standardize on usize for output id in testsIvan Molodetskikh
2024-11-25Refactor animation timing to use lazy clocksIvan Molodetskikh
2024-11-25Refactor animations to take explicit current timeIvan Molodetskikh
2024-11-23Extract Niri::advance_animations()Ivan Molodetskikh
2024-11-23layout/monitor: Extract add_workspace_bottom()Ivan Molodetskikh
2024-11-23Add interactive_move_onto_empty_output testIvan Molodetskikh
Tests the add_workspace_bottom() in Monitor::add_tile().
2024-11-23pw: Fix potential crash when disconnecting outputIvan Molodetskikh
2024-11-22Focus target window/output on DnDIvan Molodetskikh
In sway, focus-follows-mouse keeps working during DnD, but not in niri. So it can be surprising when you DnD something into another app, but it doesn't get automatically focused. This commit fixes that. Even if the DnD is not validated, or if there's no target surface (e.g. dropped on the niri background), focus the target output, since that's how Firefox's drag-tab-into-new-window works for example.
2024-11-21Add `focus-window-previous` action (#811)Ridan Vandenbergh
* Add `FocusWindowPrevious` action * remove [` * track previous focus in Niri instead of every window --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-11-14Implement layer rules: opacity and block-out-fromIvan Molodetskikh
2024-11-14niri: Extract render_layer()Ivan Molodetskikh
2024-11-14config: Add RegexEq util type instead of manual PartialEqIvan Molodetskikh
2024-11-12Add niri msg layersIvan Molodetskikh
2024-11-12Guard against closed screenshot UI in its bindsIvan Molodetskikh
They can trigger with closed screenshot UI via key repeat.
2024-11-12Add PID to Window IPCIvan Molodetskikh
2024-11-11Change expel-window-from-column to expel the bottom windowIvan Molodetskikh
This way, expel becomes symmetric with consume. This is also how it works in PaperWM. Though, in PaperWM if the expelled window was focused, it will remain focused, while in this commit it is never focused, making it the exact opposite of consume. Use consume-or-expel-window-right for the old expel behavior.
2024-11-11Make consume-or-expel binds more prominentIvan Molodetskikh
I find myself using them much more than regular consume or expel.
2024-11-11Unhide the pointer on scroll events (#797)Ramses
* Unhide the pointer on scroll events Since we reset the surface under the pointer when we hide the pointer (see update_pointer_contents), scroll events don't work when the pointer is hidden. So to make scrolling work, we make sure that we unhide the pointer when a scrolling event occurs. * Update src/input/mod.rs --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-11-10Start interactive move on Mod+TouchIvan Molodetskikh
2024-11-10Fix scrolling not working with missing mouse configIvan Molodetskikh
2024-11-08Lock session right away with no outputsIvan Molodetskikh
2024-11-08Rework output connection to always go through on_output_config_changed()Ivan Molodetskikh
This has the following benefits: 1. connector_connected() is now more closely mirroring connector_disconnected() in that it merely lights up the connector, and doesn't check if the connector should be off from the config. 2. We can use more complex on/off logic that depends on multiple connectors. For example, this commit adds logic to only disable the laptop panel on lid close if there are other connected outputs. We don't want to disable the laptop panel on lid close if it's the only connected output because it causes screen lockers to create their surface from scratch on normal laptop unsuspend, which is undesirable and also confuses some screen lockers.
2024-11-08Only call on_output_config_changed() on lid switchIvan Molodetskikh
We don't need to reload the niri output config.
2024-11-06Add disable-monitor-names debug flagIvan Molodetskikh
2024-11-05layout: Preserve active workspace for removed outputsIvan Molodetskikh