14#include <phosphortileengine_export.h>
50class NavigationController;
51class PerScreenConfigResolver;
80 Q_PROPERTY(
bool enabled READ isEnabled NOTIFY enabledChanged)
81 Q_PROPERTY(QString algorithm READ algorithm WRITE setAlgorithm NOTIFY algorithmChanged)
90 PhosphorTiles::ITileAlgorithmRegistry* algorithmRegistry, QObject* parent =
nullptr);
96 return m_algorithmRegistry;
138 QSet<
int> desktopsWithActiveState() const override;
145 bool isAutotileScreen(const QString& screenId) const;
154 bool isWindowTracked(const QString& windowId)
const override
160 return m_states.hasWindow(canonicalizeForLookup(windowId));
207 return autotileScreens();
211 setAutotileScreens(screens);
222 return capturedWindowOrder(screenId);
234 return m_context.stickyPinnedDesktop(screenId);
238 return isAutotileFloated(windowId);
242 clearAutotileFloated(windowId);
246 return isWindowTiled(windowId);
254 markAutotileFloated(windowId);
263 return m_autotileScreens;
272 return m_activeScreen;
324 m_crossSurfaceResolver = resolver;
387 return m_context.currentDesktop();
395 return m_context.currentActivity();
415 void setAlgorithm(const QString& algorithmId) override;
437 PhosphorEngine::IPlacementState* stateForScreen(const QString& screenId) override;
438 const
PhosphorEngine::IPlacementState* stateForScreen(const QString& screenId) const override;
459 void saveState() override;
469 void loadState() override;
481 void setPersistenceDelegate(std::function<
void()> saveFn, std::function<
void()> loadFn)
483 m_persistSaveFn = std::move(saveFn);
484 m_persistLoadFn = std::move(loadFn);
514 m_restorePositionPredicate = std::move(predicate);
533 using FloatPredicate = std::function<bool(
const QString& windowId,
const QString& screenId)>;
537 m_floatPredicate = std::move(predicate);
546 return LayoutSupport::Placement;
551 return QStringLiteral(
"autotile");
557 return m_states.keyForWindow(canonicalizeForLookup(windowId)).screenId;
579 void onWindowResized(
const QString& rawWindowId,
const QRect& oldFrame,
const QRect& newFrame,
580 const QString& screenId)
override;
613 std::function<
bool(
const QString& screenId,
int desktop,
const QString& activity)> resolver)
615 m_scrollingModeResolver = std::move(resolver);
685 const QString& windowId);
716 Q_INVOKABLE
void retile(
const QString& screenId = QString())
override;
724 Q_INVOKABLE
void swapWindows(
const QString& windowId1,
const QString& windowId2);
940 Q_INVOKABLE
void focusInDirection(
const QString& direction,
const QString& action = QStringLiteral(
"focus"));
978 std::optional<PhosphorEngine::WindowPlacement>
capturePlacement(
const QString& windowId)
const override;
1004 const QString& screenId = QString())
override;
1064 using IPlacementEngine::windowOpened;
1065 void windowOpened(
const QString& windowId,
const QString& screenId,
int minWidth,
int minHeight)
override;
1077 int minHeight)
override;
1227 return m_dragInsertPreview.has_value();
1237 return m_dragInsertPreview ? m_dragInsertPreview->windowId : QString();
1245 return m_dragInsertPreview ? m_dragInsertPreview->targetScreenId : QString();
1257 return m_dragInsertPreview && m_dragInsertPreview->hadPriorState ? m_dragInsertPreview->priorKey.screenId
1345 void onWindowZoneChanged(
const QString& windowId,
const QString& zoneId);
1346 void onWindowAdded(
const QString& windowId);
1347 void onWindowRemoved(
const QString& windowId);
1348 void onWindowFocused(
const QString& windowId);
1349 void onScreenGeometryChanged(
const QString& screenId);
1353 void connectSignals();
1354 bool insertWindow(
const QString& windowId,
const QString& screenId);
1359 void emitInsertFloatStateSync(
const QString& windowId,
const QString& screenId);
1364 void removeWindow(
const QString& windowId);
1371 QString removeTrackedWindowNoRetile(
const QString& windowId);
1377 void dropClosedWindowFromDragPreview(
const QString& windowId);
1378 bool storeWindowMinSize(
const QString& windowId,
int minWidth,
int minHeight);
1379 bool recalculateLayout(
const QString& screenId);
1380 void applyTiling(
const QString& screenId);
1392 const QRect& newFrame,
const QString& screenId);
1393 bool shouldTileWindow(
const QString& windowId)
const;
1394 QString screenForWindow(
const QString& windowId)
const;
1395 QRect screenGeometry(
const QString& screenId)
const;
1400 bool isKnownScreen(
const QString& screenId)
const;
1436 QStringList& releasedWindows,
bool drainOverflow =
true,
1437 bool clearScreenOrderMaps =
true);
1450 const QString& newScreenId);
1462 void revalidateWindowContext(
const QString& windowId,
const QString& screenId);
1477 return m_context.currentKeyForScreen(screenId);
1487 enum class PropagateScope {
1495 void propagateGlobalSplitRatio(PropagateScope scope = PropagateScope::CurrentContext);
1500 void propagateGlobalMasterCount(PropagateScope scope = PropagateScope::CurrentContext);
1513 void backfillWindows();
1527 void retileScreen(
const QString& screenId);
1538 void scheduleRetileRetry(
const QString& screenId);
1543 void processRetileRetries();
1559 bool cleanupPendingOrderIfResolved(
const QString& screenId);
1560 void schedulePendingOrderTimeout(
const QString& screenId, uint64_t generation);
1568 bool warnIfEmptyWindowId(
const QString& windowId,
const char* operation)
const;
1585 QString canonicalizeWindowId(
const QString& rawWindowId);
1593 void cleanupCanonical(
const QString& anyWindowId);
1602 QString canonicalizeForLookup(
const QString& rawWindowId)
const;
1616 QString currentAppIdFor(
const QString& anyWindowId)
const;
1633 void toggleWindowFloatAs(
const QString& rawWindowId,
const QString& screenId,
const QString& failureAction);
1646 QSet<QString> m_autotileFloatedWindows;
1650 std::function<bool(
const QString& screenId,
int desktop,
const QString& activity)> m_scrollingModeResolver;
1661 QMetaObject::Connection m_appIdResolverHook;
1663 std::unique_ptr<AutotileConfig> m_config;
1664 std::unique_ptr<PerScreenConfigResolver> m_configResolver;
1665 std::unique_ptr<NavigationController> m_navigation;
1666 QTimer m_writeBackGuardTimer;
1667 QTimer m_settingsRetileTimer;
1670 std::function<void()> m_persistSaveFn;
1671 std::function<void()> m_persistLoadFn;
1676 RestorePositionPredicate m_restorePositionPredicate{};
1680 FloatPredicate m_floatPredicate{};
1685 std::optional<MigrationArrival> m_migrationArrival;
1689 bool insertShouldFloat(
const QString& windowId,
const QString& screenId)
const;
1691 QSet<QString> m_autotileScreens;
1692 QString m_algorithmId;
1693 bool m_algorithmEverSet =
false;
1701 bool m_refreshingFromSettings =
false;
1702 QString m_activeScreen;
1718 QSet<PhosphorEngine::TilingStateKey> m_userTunedSplitRatio;
1719 QSet<PhosphorEngine::TilingStateKey> m_userTunedMasterCount;
1727 std::unordered_map<PhosphorEngine::TilingStateKey, StashedScriptState> m_scriptStateStash;
1773 void dropStashedScriptStatesForAlgorithmChange(
const QString& screenId,
const QString& newAlgorithmId);
1775 QHash<QString, QSize> m_windowMinSizes;
1793 QHash<QString, QRect> m_lastAppliedTileRect;
1805 QHash<QString, QString> m_canonicalByInstance;
1818 bool m_isDesktopContextSwitch =
false;
1828 QHash<QString, QStringList> m_pendingInitialOrders;
1829 QHash<QString, uint64_t> m_pendingOrderGeneration;
1835 uint64_t m_pendingOrderSerial = 0;
1851 QSet<QString> m_strictInitialOrderScreens;
1854 OverflowManager m_overflow;
1856 bool m_retiling =
false;
1862 QSet<QString> m_pendingRetileScreens;
1863 bool m_retilePending =
false;
1870 static constexpr int MaxRetileRetries = 3;
1871 static constexpr int RetileRetryIntervalMs = 150;
1872 QTimer m_retileRetryTimer;
1873 QSet<QString> m_retileRetryScreens;
1874 QHash<QString, int> m_retileRetryCount;
1882 QHash<QString, QString> m_pendingFocusByScreen;
1891 QString m_pendingFocusReseedWindowId;
1896 std::optional<DragInsertPreview> m_dragInsertPreview;
1904 void processPendingRetiles();
Definition IAutotileSettings.h:15
Resolves the neighbouring surface — output or virtual desktop — in a direction, for cross-surface win...
Definition ICrossSurfaceResolver.h:21
LayoutSupport
How this engine relates to user-selectable layouts — the entries the layout picker,...
Definition IPlacementEngine.h:964
Definition IWindowRegistry.h:14
Definition IWindowTrackingService.h:34
The two cooperating maps a per-monitor placement engine keeps: a forward map from PlacementStateKey t...
Definition PerScreenStates.h:35
Abstract base class for placement engines.
Definition PlacementEngineBase.h:32
Tracks the "current context" of each screen for a placement engine: the global current virtual deskto...
Definition ScreenContextTracker.h:46
Centralized screen-topology service.
Definition Manager.h:75
Core engine for automatic window tiling.
Definition AutotileEngine.h:78
void snapAllWindows(const PhosphorEngine::NavigationContext &ctx) override
Bring every unmanaged window on the screen back under this engine's placement (zones for snap,...
void setGlobalMasterCount(int count)
Set master count globally (config + every state, every desktop)
QSet< QString > activeScreens() const override
Definition AutotileEngine.h:205
void setCurrentDesktop(int desktop) override
Set the current virtual desktop for per-desktop tiling state.
void promoteToMaster(const QString &windowId)
Promote a window to the master area.
void pruneStatesForActivities(const QStringList &validActivities) override
Prune PhosphorTiles::TilingState entries for activities not in the given set.
bool effectiveSmartGaps(const QString &screenId) const
void pruneStatesForRemovedScreen(const QString &physicalScreenId) override
Prune PhosphorTiles::TilingState entries for a permanently removed monitor.
void updateStickyScreenPins(const std::function< bool(const QString &)> &isWindowSticky) override
Pin screens where all autotiled windows are sticky (on all desktops)
void swapFocusedInDirection(const QString &direction, const PhosphorEngine::NavigationContext &ctx) override
Swap the focused window with the adjacent window.
QString dragInsertPreviewWindowId() const
Get the window ID of the active drag-insert preview, or empty.
Definition AutotileEngine.h:1235
void clearModeSpecificFloatMarker(const QString &windowId) override
Definition AutotileEngine.h:240
void setFocusNewWindows(bool enabled)
QString algorithmId() const override
Definition AutotileEngine.h:248
void retileAfterOperation(const QString &screenId, bool operationSucceeded)
Helper to retile a screen after a window operation.
void decreaseMasterRatio(qreal delta=kDefaultSplitRatioStep) override
Decrease the master area ratio.
void setRestorePositionPredicate(RestorePositionPredicate predicate)
Inject the floated-position-restore gate.
Definition AutotileEngine.h:512
void increaseMasterCount() override
Increase the number of master windows.
std::function< bool(const QString &windowId, const QString &screenId)> FloatPredicate
Predicate deciding whether an opening window should start FLOATING because a "Float this app" rule ma...
Definition AutotileEngine.h:533
void setGlobalSplitRatio(qreal ratio)
Set master ratio globally (config + every state, every desktop)
void purgeFromPendingOrders(const QString &windowId)
Purge windowId from every pending initial order, with full bookkeeping: empty orders drop their gener...
PhosphorEngine::IAutotileSettings * autotileSettings() const
void setFloatPredicate(FloatPredicate predicate)
Definition AutotileEngine.h:535
QStringList tiledWindowOrder(const QString &screenId) const
Get the current tiled window order for a screen.
void reapplyLayout(const PhosphorEngine::NavigationContext &ctx) override
Re-apply the current layout to all managed windows.
bool effectiveRespectMinimumSize(const QString &screenId) const
void applyPerScreenConfig(const QString &screenId, const QVariantMap &overrides) override
void windowFocused(const QString &windowId, const QString &screenId) override
Notify the engine that a window was focused.
void toggleFocusedWindowFloat()
Toggle the focused window between tiled and floating states.
QStringList capturedWindowOrder(const QString &screenId) const
void commitDragInsertPreview() override
Commit the active drag-insert preview.
bool isWindowTiled(const QString &rawWindowId) const override
Check if a window is currently tiled (tracked AND not floating).
QString dragInsertPreviewScreenId() const override
Get the target screen ID of the active drag-insert preview, or empty.
Definition AutotileEngine.h:1243
void moveFocusedToPosition(int position)
Move the focused window to a specific position in the tiling order.
void markAutotileFloated(const QString &rawWindowId)
void refreshConfigFromSettings() override
Re-read all tuning values from the engine's settings interface.
void moveFocusedInDirection(const QString &direction, const PhosphorEngine::NavigationContext &ctx) override
Move the focused window to the adjacent slot.
bool isActiveOnScreen(const QString &screenId) const override
Whether this engine is active on the given screen.
void setSmartGaps(bool enabled)
void setCrossSurfaceResolver(PhosphorEngine::ICrossSurfaceResolver *resolver) override
Inject the cross-surface resolver (neighbouring output / desktop lookup) used by directional navigati...
Definition AutotileEngine.h:322
void setOuterGap(int gap)
int currentDesktop() const noexcept
Get the current virtual desktop tracked by the engine.
Definition AutotileEngine.h:385
void windowOpened(const QString &windowId, const QString &screenId, int minWidth, int minHeight) override
A new window appeared on this engine's screen.
int windowOrderIndexForWindow(const QString &screenId, const QString &windowId) const
The RAW window-order index of windowId on screenId (current desktop; counts floats,...
void windowsTiled(const QString &tileRequestsJson)
Emitted when windows are tiled to new geometries (batch)
void rotateWindowOrder(bool clockwise=true)
Rotate all tiled windows by one position.
void scheduleRetileForScreen(const QString &screenId) override
Schedule a deferred retile for a screen.
void windowMinSizeUpdated(const QString &windowId, int minWidth, int minHeight) override
Update a window's minimum size at runtime.
void pushToEmptyZone(const PhosphorEngine::NavigationContext &ctx) override
Move the focused window to the first empty slot.
void swapWindows(const QString &windowId1, const QString &windowId2)
Swap positions of two tiled windows.
void setInnerGap(int gap)
void toggleFocusedFloat(const PhosphorEngine::NavigationContext &ctx) override
Toggle the focused window between managed and floating.
void setCurrentDesktopForScreen(const QString &screenId, int desktop) override
Set a single screen's current virtual desktop (Plasma 6.7 per-output virtual desktops,...
void focusPrevious()
Focus the previous tiled window.
void clearScreenScheduling(const QString &screenId)
Drop every per-screen SCHEDULING entry for screenId: pending retiles, retile retry state,...
void toggleWindowFloat(const QString &windowId, const QString &screenId) override
Toggle a specific window between tiled and floating states.
bool hasDragInsertPreview() const override
Query whether a drag-insert preview is currently active.
Definition AutotileEngine.h:1225
QStringList managedWindowOrder(const QString &screenId) const override
Capture-on-leave order: the tiled order PLUS minimize-floated windows at their windowOrder positions.
Definition AutotileEngine.h:220
bool isAutotileFloated(const QString &rawWindowId) const
void clearPerScreenConfig(const QString &screenId) override
void setInitialWindowOrder(const QString &screenId, const QStringList &windowIds) override
Pre-seed initial window order for deterministic snapping → autotile transitions.
void setWindowFloat(const QString &windowId, bool shouldFloat, const QString &screenId=QString()) override
Set the floating state of a specific window.
void cycleFocus(bool forward, const PhosphorEngine::NavigationContext &ctx) override
Cycle keyboard focus through managed windows.
void moveFocusedToPosition(int position, const PhosphorEngine::NavigationContext &ctx) override
Move the focused window to the Nth position.
void decreaseMasterCount() override
Decrease the number of master windows.
void noteMasterCountUserTuned(const QString &screenId)
void focusNext()
Focus the next tiled window.
void rotateWindows(bool clockwise, const QString &screenId)
int effectiveInnerGap(const QString &screenId) const
void floatWindow(const QString &windowId)
Float a specific window by its ID (convenience forwarder)
QString algorithm() const noexcept
Get current algorithm ID.
void spanFocusedInDirection(const QString &direction, const PhosphorEngine::NavigationContext &ctx) override
Grow or shrink the focused window's zone span toward the direction: extend into the adjacent zone(s) ...
DragInsertTarget computeDragInsertTargetAtPoint(const QString &screenId, const QPoint &cursorPos) const override
IPlacementEngine drop-target form: wraps the flat index into DragInsertTarget::primary (invalid when ...
void autotileScreensChanged(const QStringList &screenIds, bool isDesktopSwitch)
Emitted when the set of autotile screens changes.
void cancelDragInsertPreview() override
Cancel the active drag-insert preview, restoring the original order.
void focusInDirection(const QString &direction, const QString &action=QStringLiteral("focus"))
Focus the adjacent window in tiling order with OSD feedback.
std::function< bool(const QString &windowId, const QString &screenIdHint)> RestorePositionPredicate
Predicate consulted on reopen to decide whether a FLOATED (untiled) window should have its previous g...
Definition AutotileEngine.h:508
void increaseMasterRatio(qreal delta=kDefaultSplitRatioStep) override
Increase the master area ratio.
bool isWindowManaged(const QString &windowId) const override
Whether the engine considers the window "managed" (eligible for layout operations).
Definition AutotileEngine.h:244
void updatePerScreenOverride(const QString &screenId, const QString &key, const QVariant &value)
int pruneStaleWindows(const QSet< QString > &aliveWindowIds) override
Drop any per-engine bookkeeping for windows not in aliveWindowIds.
void setActiveScreens(const QSet< QString > &screens) override
Definition AutotileEngine.h:209
QString entryWindowForCrossing(const QString &screenId, const QString &direction) const
Cross-mode swap support (queried by the daemon when THIS engine is the target): the tiled window at s...
QString managedFocusedWindow(const QString &screenId) const override
Capture half only.
bool hasPerScreenOverride(const QString &screenId, const QString &key) const
void focusMaster() override
Focus the master window.
void switchFocusBetweenFloatingAndTiling(const QString &screenId) override
Jump focus between the float layer and the tiled layout.
PhosphorTiles::AutotileInsertPosition effectiveInsertPosition(const QString &screenId) const
bool isWindowFloatingInAutotile(const QString &windowId) const
Authoritative per-window autotile float state.
QString dragInsertPreviewPriorScreenId() const override
The screen the previewed window sat on before begin adopted it.
Definition AutotileEngine.h:1255
void setAutotileScreens(const QSet< QString > &screens)
Set which screens use autotile (derived from layout assignments)
void setScrollingModeResolver(std::function< bool(const QString &screenId, int desktop, const QString &activity)> resolver)
Scrolling-mode resolver for windowOpened's cross-screen tile-restore defer term, invoked as (screenId...
Definition AutotileEngine.h:612
void requestPostRetileFocus(const QString &screenId, const QString &windowId)
Request that a window is activated after the given screen's next applyTiling.
void demoteFromMaster(const QString &windowId)
Demote a window from the master area.
void swapFocusedWithMaster() override
Swap the currently focused window with the master window.
QVariantMap perScreenOverrides(const QString &screenId) const override
qreal effectiveSplitRatioStep(const QString &screenId) const override
void setContextGapProvider(std::function< QVariantMap(const QString &screenId)> provider)
void handoffRelease(const QString &windowId) override
Release ownership of a window WITHOUT modifying its geometry.
void restoreFocusedWindow(const PhosphorEngine::NavigationContext &ctx) override
Restore the focused window out of its managed state.
QStringList allFloatingWindows() const
All windows currently floating in autotile across every tracked state.
void focusInDirection(const QString &direction, const PhosphorEngine::NavigationContext &ctx) override
Move keyboard focus to the adjacent window.
int stickyPinnedDesktopForScreen(const QString &screenId) const override
The desktop this engine has pinned this screen to, or 0.
Definition AutotileEngine.h:232
void clearCurrentDesktopForScreen(const QString &screenId) override
Drop a screen's per-output desktop, reverting it to m_context's global desktop.
void notifyAlgorithmWindowAdded(PhosphorTiles::TilingState *state, const QString &screenId, const QString &windowId)
Run the algorithm's onWindowAdded lifecycle hook for a just-inserted window.
PhosphorTiles::TilingAlgorithm * effectiveAlgorithm(const QString &screenId) const
const QString & currentActivity() const noexcept
Get the current activity tracked by the engine.
Definition AutotileEngine.h:393
void noteSplitRatioUserTuned(const QString &screenId)
int effectiveMaxWindows(const QString &screenId) const
LayoutSupport layoutSupport() const override
Autotile algorithms appear as cards in the layout picker / quick slots, so this engine is a placement...
Definition AutotileEngine.h:544
void onWindowResized(const QString &rawWindowId, const QRect &oldFrame, const QRect &newFrame, const QString &screenId) override
Reflow neighbors after a window was interactively resized.
void retile(const QString &screenId=QString()) override
Force retiling of windows.
bool isModeSpecificFloated(const QString &windowId) const override
Definition AutotileEngine.h:236
void rotateWindows(bool clockwise, const PhosphorEngine::NavigationContext &ctx) override
Rotate all managed windows on the screen.
QString engineId() const override
Stable engine identity for HandoffContext.fromEngineId.
Definition AutotileEngine.h:549
void setWindowRegistry(QObject *registry) override
Wire up the shared WindowRegistry.
void reapplyManagedWindowAppearance() override
Re-drive the compositor's per-window appearance (border, hidden title bar) for every window this engi...
void clearAutotileFloated(const QString &rawWindowId)
QRect lastManagedRect(const QString &rawWindowId) const override
The tile rect this engine last emitted for rawWindowId via applyTiling, remembered PAST the window's ...
bool claimCrossScreenReopen(const QString &windowId, const QString &openingScreenId, int minWidth, int minHeight) override
Cross-screen session reclaim (see IPlacementEngine for the base contract).
void setFocusedWindow(const QString &windowId)
Notify the engine that a window has been focused.
QString screenForTrackedWindow(const QString &windowId) const override
Return the screen this engine considers the window to be on, or empty if the window isn't tracked by ...
Definition AutotileEngine.h:555
const QSet< QString > & autotileScreens() const
Get the set of screens currently using autotile.
Definition AutotileEngine.h:261
void unfloatWindow(const QString &windowId)
Unfloat a specific window by its ID (convenience forwarder)
::PhosphorLayout::EdgeGaps effectiveOuterGaps(const QString &screenId) const
void windowClosed(const QString &windowId) override
Notify the engine that a window was closed.
void markModeSpecificFloated(const QString &windowId) override
Definition AutotileEngine.h:252
QString heldScreenForWindow(const QString &windowId) const override
OPTIONAL: the screen this engine genuinely HOLDS the window on IN THE SCREEN'S CURRENT CONTEXT — a ME...
void enabledChanged(bool enabled)
Emitted when the enabled state changes.
void setActiveScreenHint(const QString &screenId) override
Set the active screen hint for keyboard shortcut handlers.
bool isEnabled() const noexcept override
Check if any screen has autotile enabled.
std::optional< int > savedMaxWindowsForAlgorithm(const QString &algorithmId) const override
The user's saved per-algorithm max-windows tuning, if any.
QSize windowMinimumSize(const QString &windowId) const override
The window's client-reported minimum size as last known by this engine, or an UNKNOWN answer when it ...
void updateDragInsertPreview(int insertIndex)
Update the target insert index for the active drag preview.
bool beginDragInsertPreview(const QString &rawWindowId, const QString &screenId) override
Begin a drag-insert preview on screenId, ADOPTING the window when necessary.
void updateDragInsertPreview(const DragInsertTarget &target) override
IPlacementEngine drop-target form: primary is the tiled-only insert index; secondary/newSlot are mean...
int runtimeMaxWindows() const override
Runtime max-windows limit.
std::optional< PhosphorEngine::WindowPlacement > capturePlacement(const QString &windowId) const override
Report windowId's CURRENT placement for persistence, or nullopt if this engine does not manage it.
void handoffReceive(const HandoffContext &ctx) override
Receive ownership of a window from another engine.
void clearPendingInitialOrder(const QString &screenId)
Drop a screen's initial-order seed: the order, its generation counter and its strict marker,...
QString effectiveAlgorithmId(const QString &screenId) const
QString activeScreen() const override
Get the last-focused screen (updated by onWindowFocused)
Definition AutotileEngine.h:270
void swapFocusedInDirection(const QString &direction, const QString &action=QStringLiteral("move"))
Swap the focused window with the adjacent window in tiling order.
void setCurrentActivity(const QString &activity) override
Set the current activity for per-activity tiling state.
void pruneStatesForDesktop(int removedDesktop) override
Prune PhosphorTiles::TilingState and saved floating entries for a removed desktop.
int computeDragInsertIndexAtPoint(const QString &screenId, const QPoint &cursorPos) const
Compute the insert index for a cursor position on an autotile screen.
Handles navigation, focus cycling, and ratio/count adjustments.
Definition NavigationController.h:34
Resolves per-screen configuration overrides for autotiling.
Definition PerScreenConfigResolver.h:41
Abstract contract for a tiling-algorithm registry.
Definition ITileAlgorithmRegistry.h:41
Abstract base class for tiling algorithms.
Definition TilingAlgorithm.h:54
Tracks tiling state for a single screen.
Definition TilingState.h:40
Manual zone-layout registry + per-context assignment store.
Definition LayoutRegistry.h:89
Represents a collection of zones that form a layout.
Definition Layout.h:42
Definition EngineTypes.h:14
constexpr QLatin1String LayoutRegistry("org.plasmazones.LayoutRegistry")
Definition IWindowTrackingService.h:27
Definition AutotileConfig.h:13
Definition AutotileEngine.h:59
AutotileInsertPosition
Definition AutotileConstants.h:191
Definition IWindowTrackingService.h:23
Where a drag-insert preview should place the dragged window, in the TARGET ENGINE's slot vocabulary.
Definition IPlacementEngine.h:543
Context for a cross-engine window handoff.
Definition IPlacementEngine.h:872
Target window + screen for a navigation or lifecycle operation.
Definition NavigationContext.h:18
Identity of a per-screen placement state: a window's placement is scoped to the (screen,...
Definition EngineTypes.h:22
Per-side edge gap values (resolved, non-negative pixel values)
Definition EdgeGaps.h:27
Configuration for autotiling behavior.
Definition AutotileConfig.h:82
Active drag-insert preview state.
Definition AutotileEngineTypes.h:125
An already-managed window ARRIVING in a state via migrateWindowBetweenKeys, with the float state it h...
Definition AutotileEngineTypes.h:32
Script-state bag rescued from a TilingState that a teardown destroys, so a re-created state for the s...
Definition AutotileEngineTypes.h:107