// This file is generated by kconfig_compiler_kf6 from kwin.kcfg.
// All changes you do to this file will be lost.
#ifndef KWIN_SETTINGS_H
#define KWIN_SETTINGS_H

#include "options.h"

#include <qglobal.h>
#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

#include <config-kwin.h>

namespace KWin {

class Settings : public KConfigSkeleton
{
  public:
    class EnumXwaylandEavesdrops
    {
      public:
      enum type { None, Modifiers, Combinations, All, COUNT };
    };

    Settings( KSharedConfig::Ptr config = KSharedConfig::openConfig() );
    ~Settings() override;

    /**
      Get CommandTitlebarWheel
    */
    QString commandTitlebarWheel() const
    {
      return mCommandTitlebarWheel;
    }

    /**
      Is CommandTitlebarWheel Immutable
    */
    bool isCommandTitlebarWheelImmutable() const
    {
      return isImmutable( QStringLiteral( "CommandTitlebarWheel" ) );
    }

    /**
      Get CommandAllKey
    */
    QString commandAllKey() const
    {
      return mCommandAllKey;
    }

    /**
      Is CommandAllKey Immutable
    */
    bool isCommandAllKeyImmutable() const
    {
      return isImmutable( QStringLiteral( "CommandAllKey" ) );
    }

    /**
      Get CommandAllWheel
    */
    QString commandAllWheel() const
    {
      return mCommandAllWheel;
    }

    /**
      Is CommandAllWheel Immutable
    */
    bool isCommandAllWheelImmutable() const
    {
      return isImmutable( QStringLiteral( "CommandAllWheel" ) );
    }

    /**
      Get CommandActiveTitlebar1
    */
    QString commandActiveTitlebar1() const
    {
      return mCommandActiveTitlebar1;
    }

    /**
      Is CommandActiveTitlebar1 Immutable
    */
    bool isCommandActiveTitlebar1Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandActiveTitlebar1" ) );
    }

    /**
      Get CommandActiveTitlebar2
    */
    QString commandActiveTitlebar2() const
    {
      return mCommandActiveTitlebar2;
    }

    /**
      Is CommandActiveTitlebar2 Immutable
    */
    bool isCommandActiveTitlebar2Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandActiveTitlebar2" ) );
    }

    /**
      Get CommandActiveTitlebar3
    */
    QString commandActiveTitlebar3() const
    {
      return mCommandActiveTitlebar3;
    }

    /**
      Is CommandActiveTitlebar3 Immutable
    */
    bool isCommandActiveTitlebar3Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandActiveTitlebar3" ) );
    }

    /**
      Get CommandInactiveTitlebar1
    */
    QString commandInactiveTitlebar1() const
    {
      return mCommandInactiveTitlebar1;
    }

    /**
      Is CommandInactiveTitlebar1 Immutable
    */
    bool isCommandInactiveTitlebar1Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandInactiveTitlebar1" ) );
    }

    /**
      Get CommandInactiveTitlebar2
    */
    QString commandInactiveTitlebar2() const
    {
      return mCommandInactiveTitlebar2;
    }

    /**
      Is CommandInactiveTitlebar2 Immutable
    */
    bool isCommandInactiveTitlebar2Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandInactiveTitlebar2" ) );
    }

    /**
      Get CommandInactiveTitlebar3
    */
    QString commandInactiveTitlebar3() const
    {
      return mCommandInactiveTitlebar3;
    }

    /**
      Is CommandInactiveTitlebar3 Immutable
    */
    bool isCommandInactiveTitlebar3Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandInactiveTitlebar3" ) );
    }

    /**
      Get CommandWindow1
    */
    QString commandWindow1() const
    {
      return mCommandWindow1;
    }

    /**
      Is CommandWindow1 Immutable
    */
    bool isCommandWindow1Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandWindow1" ) );
    }

    /**
      Get CommandWindow2
    */
    QString commandWindow2() const
    {
      return mCommandWindow2;
    }

    /**
      Is CommandWindow2 Immutable
    */
    bool isCommandWindow2Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandWindow2" ) );
    }

    /**
      Get CommandWindow3
    */
    QString commandWindow3() const
    {
      return mCommandWindow3;
    }

    /**
      Is CommandWindow3 Immutable
    */
    bool isCommandWindow3Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandWindow3" ) );
    }

    /**
      Get CommandWindowWheel
    */
    QString commandWindowWheel() const
    {
      return mCommandWindowWheel;
    }

    /**
      Is CommandWindowWheel Immutable
    */
    bool isCommandWindowWheelImmutable() const
    {
      return isImmutable( QStringLiteral( "CommandWindowWheel" ) );
    }

    /**
      Get CommandAll1
    */
    QString commandAll1() const
    {
      return mCommandAll1;
    }

    /**
      Is CommandAll1 Immutable
    */
    bool isCommandAll1Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandAll1" ) );
    }

    /**
      Get CommandAll2
    */
    QString commandAll2() const
    {
      return mCommandAll2;
    }

    /**
      Is CommandAll2 Immutable
    */
    bool isCommandAll2Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandAll2" ) );
    }

    /**
      Get CommandAll3
    */
    QString commandAll3() const
    {
      return mCommandAll3;
    }

    /**
      Is CommandAll3 Immutable
    */
    bool isCommandAll3Immutable() const
    {
      return isImmutable( QStringLiteral( "CommandAll3" ) );
    }

    /**
      Get DoubleClickBorderToMaximize
    */
    bool doubleClickBorderToMaximize() const
    {
      return mDoubleClickBorderToMaximize;
    }

    /**
      Is DoubleClickBorderToMaximize Immutable
    */
    bool isDoubleClickBorderToMaximizeImmutable() const
    {
      return isImmutable( QStringLiteral( "DoubleClickBorderToMaximize" ) );
    }

    /**
      Get Top
    */
    QString top() const
    {
      return mTop;
    }

    /**
      Is Top Immutable
    */
    bool isTopImmutable() const
    {
      return isImmutable( QStringLiteral( "Top" ) );
    }

    /**
      Get TopRight
    */
    QString topRight() const
    {
      return mTopRight;
    }

    /**
      Is TopRight Immutable
    */
    bool isTopRightImmutable() const
    {
      return isImmutable( QStringLiteral( "TopRight" ) );
    }

    /**
      Get Right
    */
    QString right() const
    {
      return mRight;
    }

    /**
      Is Right Immutable
    */
    bool isRightImmutable() const
    {
      return isImmutable( QStringLiteral( "Right" ) );
    }

    /**
      Get BottomRight
    */
    QString bottomRight() const
    {
      return mBottomRight;
    }

    /**
      Is BottomRight Immutable
    */
    bool isBottomRightImmutable() const
    {
      return isImmutable( QStringLiteral( "BottomRight" ) );
    }

    /**
      Get Bottom
    */
    QString bottom() const
    {
      return mBottom;
    }

    /**
      Is Bottom Immutable
    */
    bool isBottomImmutable() const
    {
      return isImmutable( QStringLiteral( "Bottom" ) );
    }

    /**
      Get BottomLeft
    */
    QString bottomLeft() const
    {
      return mBottomLeft;
    }

    /**
      Is BottomLeft Immutable
    */
    bool isBottomLeftImmutable() const
    {
      return isImmutable( QStringLiteral( "BottomLeft" ) );
    }

    /**
      Get Left
    */
    QString left() const
    {
      return mLeft;
    }

    /**
      Is Left Immutable
    */
    bool isLeftImmutable() const
    {
      return isImmutable( QStringLiteral( "Left" ) );
    }

    /**
      Get TopLeft
    */
    QString topLeft() const
    {
      return mTopLeft;
    }

    /**
      Is TopLeft Immutable
    */
    bool isTopLeftImmutable() const
    {
      return isImmutable( QStringLiteral( "TopLeft" ) );
    }

    /**
      Get CondensedTitle
    */
    bool condensedTitle() const
    {
      return mCondensedTitle;
    }

    /**
      Is CondensedTitle Immutable
    */
    bool isCondensedTitleImmutable() const
    {
      return isImmutable( QStringLiteral( "CondensedTitle" ) );
    }

    /**
      Get FocusPolicy
    */
    KWin::Options::FocusPolicy focusPolicy() const
    {
      return static_cast<KWin::Options::FocusPolicy>(mFocusPolicy);
    }

    /**
      Is FocusPolicy Immutable
    */
    bool isFocusPolicyImmutable() const
    {
      return isImmutable( QStringLiteral( "FocusPolicy" ) );
    }

    /**
      Get NextFocusPrefersMouse
    */
    bool nextFocusPrefersMouse() const
    {
      return mNextFocusPrefersMouse;
    }

    /**
      Is NextFocusPrefersMouse Immutable
    */
    bool isNextFocusPrefersMouseImmutable() const
    {
      return isImmutable( QStringLiteral( "NextFocusPrefersMouse" ) );
    }

    /**
      Get SeparateScreenFocus
    */
    bool separateScreenFocus() const
    {
      return mSeparateScreenFocus;
    }

    /**
      Is SeparateScreenFocus Immutable
    */
    bool isSeparateScreenFocusImmutable() const
    {
      return isImmutable( QStringLiteral( "SeparateScreenFocus" ) );
    }

    /**
      Get RollOverDesktops
    */
    bool rollOverDesktops() const
    {
      return mRollOverDesktops;
    }

    /**
      Is RollOverDesktops Immutable
    */
    bool isRollOverDesktopsImmutable() const
    {
      return isImmutable( QStringLiteral( "RollOverDesktops" ) );
    }

    /**
      Get PerOutputVirtualDesktops
    */
    bool perOutputVirtualDesktops() const
    {
      return mPerOutputVirtualDesktops;
    }

    /**
      Is PerOutputVirtualDesktops Immutable
    */
    bool isPerOutputVirtualDesktopsImmutable() const
    {
      return isImmutable( QStringLiteral( "PerOutputVirtualDesktops" ) );
    }

    /**
      Get FocusStealingPreventionLevel
    */
    int focusStealingPreventionLevel() const
    {
      return mFocusStealingPreventionLevel;
    }

    /**
      Is FocusStealingPreventionLevel Immutable
    */
    bool isFocusStealingPreventionLevelImmutable() const
    {
      return isImmutable( QStringLiteral( "FocusStealingPreventionLevel" ) );
    }

    /**
      Get Placement
    */
    KWin::PlacementPolicy placement() const
    {
      return static_cast<KWin::PlacementPolicy>(mPlacement);
    }

    /**
      Is Placement Immutable
    */
    bool isPlacementImmutable() const
    {
      return isImmutable( QStringLiteral( "Placement" ) );
    }

    /**
      Get ActivationDesktopPolicy
    */
    KWin::Options::ActivationDesktopPolicy activationDesktopPolicy() const
    {
      return static_cast<KWin::Options::ActivationDesktopPolicy>(mActivationDesktopPolicy);
    }

    /**
      Is ActivationDesktopPolicy Immutable
    */
    bool isActivationDesktopPolicyImmutable() const
    {
      return isImmutable( QStringLiteral( "ActivationDesktopPolicy" ) );
    }

    /**
      Get AutoRaise
    */
    bool autoRaise() const
    {
      return mAutoRaise;
    }

    /**
      Is AutoRaise Immutable
    */
    bool isAutoRaiseImmutable() const
    {
      return isImmutable( QStringLiteral( "AutoRaise" ) );
    }

    /**
      Get AutoRaiseInterval
    */
    int autoRaiseInterval() const
    {
      return mAutoRaiseInterval;
    }

    /**
      Is AutoRaiseInterval Immutable
    */
    bool isAutoRaiseIntervalImmutable() const
    {
      return isImmutable( QStringLiteral( "AutoRaiseInterval" ) );
    }

    /**
      Get DelayFocusInterval
    */
    int delayFocusInterval() const
    {
      return mDelayFocusInterval;
    }

    /**
      Is DelayFocusInterval Immutable
    */
    bool isDelayFocusIntervalImmutable() const
    {
      return isImmutable( QStringLiteral( "DelayFocusInterval" ) );
    }

    /**
      Get ClickRaise
    */
    bool clickRaise() const
    {
      return mClickRaise;
    }

    /**
      Is ClickRaise Immutable
    */
    bool isClickRaiseImmutable() const
    {
      return isImmutable( QStringLiteral( "ClickRaise" ) );
    }

    /**
      Get BorderSnapZone
    */
    int borderSnapZone() const
    {
      return mBorderSnapZone;
    }

    /**
      Is BorderSnapZone Immutable
    */
    bool isBorderSnapZoneImmutable() const
    {
      return isImmutable( QStringLiteral( "BorderSnapZone" ) );
    }

    /**
      Get WindowSnapZone
    */
    int windowSnapZone() const
    {
      return mWindowSnapZone;
    }

    /**
      Is WindowSnapZone Immutable
    */
    bool isWindowSnapZoneImmutable() const
    {
      return isImmutable( QStringLiteral( "WindowSnapZone" ) );
    }

    /**
      Get CenterSnapZone
    */
    int centerSnapZone() const
    {
      return mCenterSnapZone;
    }

    /**
      Is CenterSnapZone Immutable
    */
    bool isCenterSnapZoneImmutable() const
    {
      return isImmutable( QStringLiteral( "CenterSnapZone" ) );
    }

    /**
      Get SnapOnlyWhenOverlapping
    */
    bool snapOnlyWhenOverlapping() const
    {
      return mSnapOnlyWhenOverlapping;
    }

    /**
      Is SnapOnlyWhenOverlapping Immutable
    */
    bool isSnapOnlyWhenOverlappingImmutable() const
    {
      return isImmutable( QStringLiteral( "SnapOnlyWhenOverlapping" ) );
    }

    /**
      Get ElectricBorders
    */
    int electricBorders() const
    {
      return mElectricBorders;
    }

    /**
      Is ElectricBorders Immutable
    */
    bool isElectricBordersImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorders" ) );
    }

    /**
      Get ElectricBorderDelay
    */
    int electricBorderDelay() const
    {
      return mElectricBorderDelay;
    }

    /**
      Is ElectricBorderDelay Immutable
    */
    bool isElectricBorderDelayImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderDelay" ) );
    }

    /**
      Get ElectricBorderCooldown
    */
    int electricBorderCooldown() const
    {
      return mElectricBorderCooldown;
    }

    /**
      Is ElectricBorderCooldown Immutable
    */
    bool isElectricBorderCooldownImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderCooldown" ) );
    }

    /**
      Get ElectricBorderPushbackPixels
    */
    int electricBorderPushbackPixels() const
    {
      return mElectricBorderPushbackPixels;
    }

    /**
      Is ElectricBorderPushbackPixels Immutable
    */
    bool isElectricBorderPushbackPixelsImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderPushbackPixels" ) );
    }

    /**
      Get ElectricBorderMaximize
    */
    bool electricBorderMaximize() const
    {
      return mElectricBorderMaximize;
    }

    /**
      Is ElectricBorderMaximize Immutable
    */
    bool isElectricBorderMaximizeImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderMaximize" ) );
    }

    /**
      Get ElectricBorderAllScreenCorner
    */
    bool electricBorderAllScreenCorner() const
    {
      return mElectricBorderAllScreenCorner;
    }

    /**
      Is ElectricBorderAllScreenCorner Immutable
    */
    bool isElectricBorderAllScreenCornerImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderAllScreenCorner" ) );
    }

    /**
      Get ElectricBorderTiling
    */
    bool electricBorderTiling() const
    {
      return mElectricBorderTiling;
    }

    /**
      Is ElectricBorderTiling Immutable
    */
    bool isElectricBorderTilingImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderTiling" ) );
    }

    /**
      Get ElectricBorderCornerRatio
    */
    double electricBorderCornerRatio() const
    {
      return mElectricBorderCornerRatio;
    }

    /**
      Is ElectricBorderCornerRatio Immutable
    */
    bool isElectricBorderCornerRatioImmutable() const
    {
      return isImmutable( QStringLiteral( "ElectricBorderCornerRatio" ) );
    }

    /**
      Get TitlebarDoubleClickCommand
    */
    QString titlebarDoubleClickCommand() const
    {
      return mTitlebarDoubleClickCommand;
    }

    /**
      Is TitlebarDoubleClickCommand Immutable
    */
    bool isTitlebarDoubleClickCommandImmutable() const
    {
      return isImmutable( QStringLiteral( "TitlebarDoubleClickCommand" ) );
    }

    /**
      Get MaximizeButtonLeftClickCommand
    */
    QString maximizeButtonLeftClickCommand() const
    {
      return mMaximizeButtonLeftClickCommand;
    }

    /**
      Is MaximizeButtonLeftClickCommand Immutable
    */
    bool isMaximizeButtonLeftClickCommandImmutable() const
    {
      return isImmutable( QStringLiteral( "MaximizeButtonLeftClickCommand" ) );
    }

    /**
      Get MaximizeButtonMiddleClickCommand
    */
    QString maximizeButtonMiddleClickCommand() const
    {
      return mMaximizeButtonMiddleClickCommand;
    }

    /**
      Is MaximizeButtonMiddleClickCommand Immutable
    */
    bool isMaximizeButtonMiddleClickCommandImmutable() const
    {
      return isImmutable( QStringLiteral( "MaximizeButtonMiddleClickCommand" ) );
    }

    /**
      Get MaximizeButtonRightClickCommand
    */
    QString maximizeButtonRightClickCommand() const
    {
      return mMaximizeButtonRightClickCommand;
    }

    /**
      Is MaximizeButtonRightClickCommand Immutable
    */
    bool isMaximizeButtonRightClickCommandImmutable() const
    {
      return isImmutable( QStringLiteral( "MaximizeButtonRightClickCommand" ) );
    }

    /**
      Get KillPingTimeout
    */
    int killPingTimeout() const
    {
      return mKillPingTimeout;
    }

    /**
      Is KillPingTimeout Immutable
    */
    bool isKillPingTimeoutImmutable() const
    {
      return isImmutable( QStringLiteral( "KillPingTimeout" ) );
    }

    /**
      Get InactiveTabsSkipTaskbar
    */
    bool inactiveTabsSkipTaskbar() const
    {
      return mInactiveTabsSkipTaskbar;
    }

    /**
      Is InactiveTabsSkipTaskbar Immutable
    */
    bool isInactiveTabsSkipTaskbarImmutable() const
    {
      return isImmutable( QStringLiteral( "InactiveTabsSkipTaskbar" ) );
    }

    /**
      Get AutogroupSimilarWindows
    */
    bool autogroupSimilarWindows() const
    {
      return mAutogroupSimilarWindows;
    }

    /**
      Is AutogroupSimilarWindows Immutable
    */
    bool isAutogroupSimilarWindowsImmutable() const
    {
      return isImmutable( QStringLiteral( "AutogroupSimilarWindows" ) );
    }

    /**
      Get AutogroupInForeground
    */
    bool autogroupInForeground() const
    {
      return mAutogroupInForeground;
    }

    /**
      Is AutogroupInForeground Immutable
    */
    bool isAutogroupInForegroundImmutable() const
    {
      return isImmutable( QStringLiteral( "AutogroupInForeground" ) );
    }

    /**
      Get BorderlessMaximizedWindows
    */
    bool borderlessMaximizedWindows() const
    {
      return mBorderlessMaximizedWindows;
    }

    /**
      Is BorderlessMaximizedWindows Immutable
    */
    bool isBorderlessMaximizedWindowsImmutable() const
    {
      return isImmutable( QStringLiteral( "BorderlessMaximizedWindows" ) );
    }

    /**
      Get InteractiveWindowMoveEnabled
    */
    bool interactiveWindowMoveEnabled() const
    {
      return mInteractiveWindowMoveEnabled;
    }

    /**
      Is InteractiveWindowMoveEnabled Immutable
    */
    bool isInteractiveWindowMoveEnabledImmutable() const
    {
      return isImmutable( QStringLiteral( "InteractiveWindowMoveEnabled" ) );
    }

    /**
      Get PictureInPictureHomeCorner
    */
    Qt::Corner pictureInPictureHomeCorner() const
    {
      return static_cast<Qt::Corner>(mPictureInPictureHomeCorner);
    }

    /**
      Is PictureInPictureHomeCorner Immutable
    */
    bool isPictureInPictureHomeCornerImmutable() const
    {
      return isImmutable( QStringLiteral( "PictureInPictureHomeCorner" ) );
    }

    /**
      Get PictureInPictureMargin
    */
    int pictureInPictureMargin() const
    {
      return mPictureInPictureMargin;
    }

    /**
      Is PictureInPictureMargin Immutable
    */
    bool isPictureInPictureMarginImmutable() const
    {
      return isImmutable( QStringLiteral( "PictureInPictureMargin" ) );
    }

    /**
      Get OverlayVirtualKeyboardOnWindows
    */
    bool overlayVirtualKeyboardOnWindows() const
    {
      return mOverlayVirtualKeyboardOnWindows;
    }

    /**
      Is OverlayVirtualKeyboardOnWindows Immutable
    */
    bool isOverlayVirtualKeyboardOnWindowsImmutable() const
    {
      return isImmutable( QStringLiteral( "OverlayVirtualKeyboardOnWindows" ) );
    }

    /**
      Get CornerBarrier
    */
    bool cornerBarrier() const
    {
      return mCornerBarrier;
    }

    /**
      Is CornerBarrier Immutable
    */
    bool isCornerBarrierImmutable() const
    {
      return isImmutable( QStringLiteral( "CornerBarrier" ) );
    }

    /**
      Get EdgeBarrier
    */
    int edgeBarrier() const
    {
      return mEdgeBarrier;
    }

    /**
      Is EdgeBarrier Immutable
    */
    bool isEdgeBarrierImmutable() const
    {
      return isImmutable( QStringLiteral( "EdgeBarrier" ) );
    }

    /**
      Get RemainActiveOnFullscreen
    */
    bool remainActiveOnFullscreen() const
    {
      return mRemainActiveOnFullscreen;
    }

    /**
      Is RemainActiveOnFullscreen Immutable
    */
    bool isRemainActiveOnFullscreenImmutable() const
    {
      return isImmutable( QStringLiteral( "RemainActiveOnFullscreen" ) );
    }

    /**
      Get TouchTarget
    */
    int touchTarget() const
    {
      return mTouchTarget;
    }

    /**
      Is TouchTarget Immutable
    */
    bool isTouchTargetImmutable() const
    {
      return isImmutable( QStringLiteral( "TouchTarget" ) );
    }

    /**
      Get Backend
    */
    QString backend() const
    {
      return mBackend;
    }

    /**
      Is Backend Immutable
    */
    bool isBackendImmutable() const
    {
      return isImmutable( QStringLiteral( "Backend" ) );
    }

    /**
      Get Enabled
    */
    bool enabled() const
    {
      return mEnabled;
    }

    /**
      Is Enabled Immutable
    */
    bool isEnabledImmutable() const
    {
      return isImmutable( QStringLiteral( "Enabled" ) );
    }

    /**
      Get LastFailureTimestamp
    */
    int lastFailureTimestamp() const
    {
      return mLastFailureTimestamp;
    }

    /**
      Is LastFailureTimestamp Immutable
    */
    bool isLastFailureTimestampImmutable() const
    {
      return isImmutable( QStringLiteral( "LastFailureTimestamp" ) );
    }

    /**
      Get AllowTearing
    */
    bool allowTearing() const
    {
      return mAllowTearing;
    }

    /**
      Is AllowTearing Immutable
    */
    bool isAllowTearingImmutable() const
    {
      return isImmutable( QStringLiteral( "AllowTearing" ) );
    }

    /**
      Get DelayTime
    */
    int delayTime() const
    {
      return mDelayTime;
    }

    /**
      Is DelayTime Immutable
    */
    bool isDelayTimeImmutable() const
    {
      return isImmutable( QStringLiteral( "DelayTime" ) );
    }

    /**
      Get DesktopMode
    */
    uint desktopMode() const
    {
      return mDesktopMode;
    }

    /**
      Is DesktopMode Immutable
    */
    bool isDesktopModeImmutable() const
    {
      return isImmutable( QStringLiteral( "DesktopMode" ) );
    }

    /**
      Get ActivitiesMode
    */
    uint activitiesMode() const
    {
      return mActivitiesMode;
    }

    /**
      Is ActivitiesMode Immutable
    */
    bool isActivitiesModeImmutable() const
    {
      return isImmutable( QStringLiteral( "ActivitiesMode" ) );
    }

    /**
      Get ApplicationsMode
    */
    uint applicationsMode() const
    {
      return mApplicationsMode;
    }

    /**
      Is ApplicationsMode Immutable
    */
    bool isApplicationsModeImmutable() const
    {
      return isImmutable( QStringLiteral( "ApplicationsMode" ) );
    }

    /**
      Get MinimizedMode
    */
    uint minimizedMode() const
    {
      return mMinimizedMode;
    }

    /**
      Is MinimizedMode Immutable
    */
    bool isMinimizedModeImmutable() const
    {
      return isImmutable( QStringLiteral( "MinimizedMode" ) );
    }

    /**
      Get ShowDesktopMode
    */
    uint showDesktopMode() const
    {
      return mShowDesktopMode;
    }

    /**
      Is ShowDesktopMode Immutable
    */
    bool isShowDesktopModeImmutable() const
    {
      return isImmutable( QStringLiteral( "ShowDesktopMode" ) );
    }

    /**
      Get MultiScreenMode
    */
    uint multiScreenMode() const
    {
      return mMultiScreenMode;
    }

    /**
      Is MultiScreenMode Immutable
    */
    bool isMultiScreenModeImmutable() const
    {
      return isImmutable( QStringLiteral( "MultiScreenMode" ) );
    }

    /**
      Get SwitchingMode
    */
    uint switchingMode() const
    {
      return mSwitchingMode;
    }

    /**
      Is SwitchingMode Immutable
    */
    bool isSwitchingModeImmutable() const
    {
      return isImmutable( QStringLiteral( "SwitchingMode" ) );
    }

    /**
      Get ShowOutline
    */
    bool showOutline() const
    {
      return mShowOutline;
    }

    /**
      Is ShowOutline Immutable
    */
    bool isShowOutlineImmutable() const
    {
      return isImmutable( QStringLiteral( "ShowOutline" ) );
    }

    /**
      Get ShowTabBox
    */
    bool showTabBox() const
    {
      return mShowTabBox;
    }

    /**
      Is ShowTabBox Immutable
    */
    bool isShowTabBoxImmutable() const
    {
      return isImmutable( QStringLiteral( "ShowTabBox" ) );
    }

    /**
      Get HighlightWindows
    */
    bool highlightWindows() const
    {
      return mHighlightWindows;
    }

    /**
      Is HighlightWindows Immutable
    */
    bool isHighlightWindowsImmutable() const
    {
      return isImmutable( QStringLiteral( "HighlightWindows" ) );
    }

    /**
      Get LayoutName
    */
    QString layoutName() const
    {
      return mLayoutName;
    }

    /**
      Is LayoutName Immutable
    */
    bool isLayoutNameImmutable() const
    {
      return isImmutable( QStringLiteral( "LayoutName" ) );
    }

    /**
      Get AnimationDurationFactor
    */
    double animationDurationFactor() const
    {
      return mAnimationDurationFactor;
    }

    /**
      Is AnimationDurationFactor Immutable
    */
    bool isAnimationDurationFactorImmutable() const
    {
      return isImmutable( QStringLiteral( "AnimationDurationFactor" ) );
    }

    /**
      Get InputMethod
    */
    QString inputMethod() const
    {
      return mInputMethod;
    }

    /**
      Is InputMethod Immutable
    */
    bool isInputMethodImmutable() const
    {
      return isImmutable( QStringLiteral( "InputMethod" ) );
    }

    /**
      Get DoubleTapWakeup
    */
    bool doubleTapWakeup() const
    {
      return mDoubleTapWakeup;
    }

    /**
      Is DoubleTapWakeup Immutable
    */
    bool isDoubleTapWakeupImmutable() const
    {
      return isImmutable( QStringLiteral( "DoubleTapWakeup" ) );
    }

    /**
      Get EnablePrimarySelection
    */
    bool enablePrimarySelection() const
    {
      return mEnablePrimarySelection;
    }

    /**
      Is EnablePrimarySelection Immutable
    */
    bool isEnablePrimarySelectionImmutable() const
    {
      return isImmutable( QStringLiteral( "EnablePrimarySelection" ) );
    }

    /**
      Get XwaylandCrashPolicy
    */
    KWin::XwaylandCrashPolicy xwaylandCrashPolicy() const
    {
      return static_cast<KWin::XwaylandCrashPolicy>(mXwaylandCrashPolicy);
    }

    /**
      Is XwaylandCrashPolicy Immutable
    */
    bool isXwaylandCrashPolicyImmutable() const
    {
      return isImmutable( QStringLiteral( "XwaylandCrashPolicy" ) );
    }

    /**
      Get XwaylandMaxCrashCount
    */
    uint xwaylandMaxCrashCount() const
    {
      return mXwaylandMaxCrashCount;
    }

    /**
      Is XwaylandMaxCrashCount Immutable
    */
    bool isXwaylandMaxCrashCountImmutable() const
    {
      return isImmutable( QStringLiteral( "XwaylandMaxCrashCount" ) );
    }

    /**
      Get XwaylandEavesdrops
    */
    EnumXwaylandEavesdrops::type xwaylandEavesdrops() const
    {
      return static_cast<EnumXwaylandEavesdrops::type>(mXwaylandEavesdrops);
    }

    /**
      Is XwaylandEavesdrops Immutable
    */
    bool isXwaylandEavesdropsImmutable() const
    {
      return isImmutable( QStringLiteral( "XwaylandEavesdrops" ) );
    }

    /**
      Get XwaylandEavesdropsMouse
    */
    bool xwaylandEavesdropsMouse() const
    {
      return mXwaylandEavesdropsMouse;
    }

    /**
      Is XwaylandEavesdropsMouse Immutable
    */
    bool isXwaylandEavesdropsMouseImmutable() const
    {
      return isImmutable( QStringLiteral( "XwaylandEavesdropsMouse" ) );
    }

    /**
      Get XwaylandEisNoPrompt
    */
    bool xwaylandEisNoPrompt() const
    {
      return mXwaylandEisNoPrompt;
    }

    /**
      Is XwaylandEisNoPrompt Immutable
    */
    bool isXwaylandEisNoPromptImmutable() const
    {
      return isImmutable( QStringLiteral( "XwaylandEisNoPrompt" ) );
    }

    /**
      Get XwaylandEisNoPromptApps
    */
    QStringList xwaylandEisNoPromptApps() const
    {
      return mXwaylandEisNoPromptApps;
    }

    /**
      Is XwaylandEisNoPromptApps Immutable
    */
    bool isXwaylandEisNoPromptAppsImmutable() const
    {
      return isImmutable( QStringLiteral( "XwaylandEisNoPromptApps" ) );
    }

  protected:

    // MouseBindings
    QString mCommandTitlebarWheel;
    QString mCommandAllKey;
    QString mCommandAllWheel;
    QString mCommandActiveTitlebar1;
    QString mCommandActiveTitlebar2;
    QString mCommandActiveTitlebar3;
    QString mCommandInactiveTitlebar1;
    QString mCommandInactiveTitlebar2;
    QString mCommandInactiveTitlebar3;
    QString mCommandWindow1;
    QString mCommandWindow2;
    QString mCommandWindow3;
    QString mCommandWindowWheel;
    QString mCommandAll1;
    QString mCommandAll2;
    QString mCommandAll3;
    bool mDoubleClickBorderToMaximize;

    // ElectricBorders
    QString mTop;
    QString mTopRight;
    QString mRight;
    QString mBottomRight;
    QString mBottom;
    QString mBottomLeft;
    QString mLeft;
    QString mTopLeft;

    // Windows
    bool mCondensedTitle;
    int mFocusPolicy;
    bool mNextFocusPrefersMouse;
    bool mSeparateScreenFocus;
    bool mRollOverDesktops;
    bool mPerOutputVirtualDesktops;
    int mFocusStealingPreventionLevel;
    int mPlacement;
    int mActivationDesktopPolicy;
    bool mAutoRaise;
    int mAutoRaiseInterval;
    int mDelayFocusInterval;
    bool mClickRaise;
    int mBorderSnapZone;
    int mWindowSnapZone;
    int mCenterSnapZone;
    bool mSnapOnlyWhenOverlapping;
    int mElectricBorders;
    int mElectricBorderDelay;
    int mElectricBorderCooldown;
    int mElectricBorderPushbackPixels;
    bool mElectricBorderMaximize;
    bool mElectricBorderAllScreenCorner;
    bool mElectricBorderTiling;
    double mElectricBorderCornerRatio;
    QString mTitlebarDoubleClickCommand;
    QString mMaximizeButtonLeftClickCommand;
    QString mMaximizeButtonMiddleClickCommand;
    QString mMaximizeButtonRightClickCommand;
    int mKillPingTimeout;
    bool mInactiveTabsSkipTaskbar;
    bool mAutogroupSimilarWindows;
    bool mAutogroupInForeground;
    bool mBorderlessMaximizedWindows;
    bool mInteractiveWindowMoveEnabled;
    int mPictureInPictureHomeCorner;
    int mPictureInPictureMargin;
    bool mOverlayVirtualKeyboardOnWindows;

    // EdgeBarrier
    bool mCornerBarrier;
    int mEdgeBarrier;

    // ScreenEdges
    bool mRemainActiveOnFullscreen;
    int mTouchTarget;

    // Compositing
    QString mBackend;
    bool mEnabled;
    int mLastFailureTimestamp;
    bool mAllowTearing;

    // TabBox
    int mDelayTime;
    uint mDesktopMode;
    uint mActivitiesMode;
    uint mApplicationsMode;
    uint mMinimizedMode;
    uint mShowDesktopMode;
    uint mMultiScreenMode;
    uint mSwitchingMode;
    bool mShowOutline;
    bool mShowTabBox;
    bool mHighlightWindows;
    QString mLayoutName;

    // KDE
    double mAnimationDurationFactor;

    // Wayland
    QString mInputMethod;
    bool mDoubleTapWakeup;
    bool mEnablePrimarySelection;

    // Xwayland
    int mXwaylandCrashPolicy;
    uint mXwaylandMaxCrashCount;
    int mXwaylandEavesdrops;
    bool mXwaylandEavesdropsMouse;
    bool mXwaylandEisNoPrompt;
    QStringList mXwaylandEisNoPromptApps;
};

}

#endif

