2007-04-29 17:35:43 +00:00
|
|
|
<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
|
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
|
|
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
2013-01-11 11:41:27 +00:00
|
|
|
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
|
2007-04-29 17:35:43 +00:00
|
|
|
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
|
2013-01-24 14:25:34 +00:00
|
|
|
<kcfgfile arg="true" />
|
2013-01-11 11:41:27 +00:00
|
|
|
<group name="MouseBindings">
|
|
|
|
<entry name="CommandTitlebarWheel" type="String">
|
2019-09-14 08:58:12 +00:00
|
|
|
<default>Nothing</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="CommandAllKey" type="String">
|
2020-05-06 09:17:44 +00:00
|
|
|
<default>Meta</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="CommandAllWheel" type="String">
|
|
|
|
<default>Nothing</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandActiveTitlebar1" type="String">
|
|
|
|
<default>Raise</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandActiveTitlebar2" type="String">
|
2019-09-14 08:58:12 +00:00
|
|
|
<default>Nothing</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="CommandActiveTitlebar3" type="String">
|
|
|
|
<default>Operations menu</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandInactiveTitlebar1" type="String">
|
|
|
|
<default>Activate and raise</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandInactiveTitlebar2" type="String">
|
2019-09-14 08:58:12 +00:00
|
|
|
<default>Nothing</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="CommandInactiveTitlebar3" type="String">
|
|
|
|
<default>Operations menu</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandWindow1" type="String">
|
|
|
|
<default>Activate, raise and pass click</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandWindow2" type="String">
|
|
|
|
<default>Activate and pass click</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandWindow3" type="String">
|
|
|
|
<default>Activate and pass click</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandWindowWheel" type="String">
|
|
|
|
<default>Scroll</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandAll1" type="String">
|
|
|
|
<default>Move</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandAll2" type="String">
|
|
|
|
<default>Toggle raise and lower</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CommandAll3" type="String">
|
|
|
|
<default>Resize</default>
|
|
|
|
</entry>
|
|
|
|
</group>
|
|
|
|
<group name="ElectricBorders">
|
|
|
|
<entry name="Top" type="String">
|
|
|
|
<default>None</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="TopRight" type="String">
|
|
|
|
<default>None</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="Right" type="String">
|
|
|
|
<default>None</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="BottomRight" type="String">
|
|
|
|
<default>None</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="Bottom" type="String">
|
|
|
|
<default>None</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="BottomLeft" type="String">
|
|
|
|
<default>None</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="Left" type="String">
|
|
|
|
<default>None</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="TopLeft" type="String">
|
|
|
|
<default>None</default>
|
|
|
|
</entry>
|
|
|
|
</group>
|
|
|
|
<group name="Windows">
|
|
|
|
<entry name="CondensedTitle" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="FocusPolicy" type="Enum">
|
2013-01-24 13:17:19 +00:00
|
|
|
<choices name="KWin::Options::FocusPolicy">
|
2013-01-11 11:41:27 +00:00
|
|
|
<choice name="ClickToFocus"/>
|
|
|
|
<choice name="FocusFollowsMouse"/>
|
|
|
|
<choice name="FocusUnderMouse"/>
|
|
|
|
<choice name="FocusStrictlyUnderMouse"/>
|
|
|
|
</choices>
|
2013-01-24 13:17:19 +00:00
|
|
|
<default>Options::ClickToFocus</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="NextFocusPrefersMouse" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="SeparateScreenFocus" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ActiveMouseScreen" type="Bool">
|
2021-04-22 19:05:59 +00:00
|
|
|
<default>true</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="RollOverDesktops" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="FocusStealingPreventionLevel" type="Int">
|
|
|
|
<default>1</default>
|
|
|
|
<min>0</min>
|
|
|
|
<max>4</max>
|
|
|
|
</entry>
|
|
|
|
<entry name="Placement" type="Enum">
|
2013-01-24 13:17:19 +00:00
|
|
|
<choices name="KWin::Placement::Policy">
|
2013-01-11 11:41:27 +00:00
|
|
|
<choice name="NoPlacement"/>
|
|
|
|
<choice name="Default"/>
|
|
|
|
<choice name="Unknown"/>
|
|
|
|
<choice name="Random"/>
|
|
|
|
<choice name="Smart"/>
|
|
|
|
<choice name="Cascade"/>
|
|
|
|
<choice name="Centered"/>
|
|
|
|
<choice name="ZeroCornered"/>
|
|
|
|
<choice name="UnderMouse"/>
|
|
|
|
<choice name="OnMainWindow"/>
|
|
|
|
<choice name="Maximizing"/>
|
|
|
|
</choices>
|
Use "Centered" window placement by default
The current "Minimize Overlapping" window placement tends to position
windows in locations that seem completely random, typically in a screen
corner. It is doing this because, true to its name, it is trying to
avoid overlapping other windows as much as possible. However in practice
this is rarely helpful. When the user opens a new window, it's because
they want to use it, and positioning the window far from where the
user is likely to be looking is counter-productive. This is even more
true on today's large and wide displays, where placing the window in a
corner may position it entirely outside the user's current field of
vision. We get bug reports about this exact issue for notifications
(which always appear in a corner by default) by users of such screens.
For notifications, this can be justifiable because notifications are
designed to be ignorable; app windows on the other hand, are not.
As a result, I commonly see Plasma users open windows and then
immediately, reflexively grab the window's titlebar and drag it to the
center of the screen. I have seen my wife do this. I have seen every
YouTube reviewer of Plasma do this. I have even see fellow KDE
developers at sprints do this. It seems like quite a common impulse
to want a newly-opened window to appear in the center of the screen,
which is where the user is likely to already be looking.
Thankfully, KWin already has a window placement mode that does this
automatically: "Centered". Accordingly, this commit changes the default
KWin window placement mode from "Minimize Overlapping" to "Centered".
No kconf migration script is provided because this is a better default
for most people in most cases, and existing users are highly likely to
appreciate this change.
2021-11-09 19:50:59 +00:00
|
|
|
<default>Placement::Centered</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="AutoRaise" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="AutoRaiseInterval" type="Int">
|
2013-01-24 13:17:19 +00:00
|
|
|
<default>750</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="DelayFocusInterval" type="Int">
|
2013-01-24 13:17:19 +00:00
|
|
|
<default>300</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="ShadeHover" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ShadeHoverInterval" type="Int">
|
|
|
|
<default>250</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ClickRaise" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="BorderSnapZone" type="Int">
|
|
|
|
<default>10</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="WindowSnapZone" type="Int">
|
|
|
|
<default>10</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="CenterSnapZone" type="Int">
|
|
|
|
<default>0</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="SnapOnlyWhenOverlapping" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ElectricBorders" type="Int">
|
|
|
|
<default>0</default>
|
|
|
|
</entry>
|
2013-02-09 23:26:30 +00:00
|
|
|
<entry name="ElectricBorderDelay" type="Int">
|
2013-01-11 11:41:27 +00:00
|
|
|
<default>150</default>
|
|
|
|
</entry>
|
2013-02-09 23:26:30 +00:00
|
|
|
<entry name="ElectricBorderCooldown" type="Int">
|
2013-01-11 11:41:27 +00:00
|
|
|
<default>350</default>
|
|
|
|
</entry>
|
2013-02-09 23:26:30 +00:00
|
|
|
<entry name="ElectricBorderPushbackPixels" type="Int">
|
2013-01-11 11:41:27 +00:00
|
|
|
<default>1</default>
|
|
|
|
</entry>
|
2013-02-09 23:26:30 +00:00
|
|
|
<entry name="ElectricBorderMaximize" type="Bool">
|
2013-01-11 11:41:27 +00:00
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
2013-02-09 23:26:30 +00:00
|
|
|
<entry name="ElectricBorderTiling" type="Bool">
|
2013-01-11 11:41:27 +00:00
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ElectricBorderCornerRatio" type="Double">
|
|
|
|
<default>0.25</default>
|
|
|
|
<min>0.0</min>
|
|
|
|
<max>1.0</max>
|
|
|
|
</entry>
|
|
|
|
<entry name="TitlebarDoubleClickCommand" type="String">
|
|
|
|
<default>Maximize</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="MaximizeButtonLeftClickCommand" type="String">
|
|
|
|
<default>Maximize</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="MaximizeButtonMiddleClickCommand" type="String">
|
2020-05-14 05:28:37 +00:00
|
|
|
<default>Maximize (vertical only)</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="MaximizeButtonRightClickCommand" type="String">
|
2020-05-14 05:28:37 +00:00
|
|
|
<default>Maximize (horizontal only)</default>
|
2013-01-11 11:41:27 +00:00
|
|
|
</entry>
|
|
|
|
<entry name="KillPingTimeout" type="Int">
|
|
|
|
<default>5000</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="HideUtilityWindowsForInactive" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="InactiveTabsSkipTaskbar" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="AutogroupSimilarWindows" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="AutogroupInForeground" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="BorderlessMaximizedWindows" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
</group>
|
|
|
|
<group name="Compositing">
|
|
|
|
<entry name="Backend" type="String">
|
|
|
|
<default>OpenGL</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="Enabled" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="GLTextureFilter" type="Int">
|
|
|
|
<default>2</default>
|
|
|
|
<min>-1</min>
|
|
|
|
<max>2</max>
|
|
|
|
</entry>
|
|
|
|
<entry name="GLStrictBinding" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="GLLegacy" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="HiddenPreviews" type="Int">
|
|
|
|
<default>5</default>
|
|
|
|
<min>4</min>
|
|
|
|
<max>6</max>
|
|
|
|
</entry>
|
2014-04-22 07:30:08 +00:00
|
|
|
<entry name="GLPlatformInterface" type="String">
|
|
|
|
<default>glx</default>
|
|
|
|
</entry>
|
2016-08-26 06:56:42 +00:00
|
|
|
<entry name="WindowsBlockCompositing" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
Introduce RenderLoop
At the moment, our frame scheduling infrastructure is still heavily
based on Xinerama-style rendering. Specifically, we assume that painting
is driven by a single timer, etc.
This change introduces a new type - RenderLoop. Its main purpose is to
drive compositing on a specific output, or in case of X11, on the
overlay window.
With RenderLoop, compositing is synchronized to vblank events. It
exposes the last and the next estimated presentation timestamp. The
expected presentation timestamp can be used by effects to ensure that
animations are synchronized with the upcoming vblank event.
On Wayland, every outputs has its own render loop. On X11, per screen
rendering is not possible, therefore the platform exposes the render
loop for the overlay window. Ideally, the Scene has to expose the
RenderLoop, but as the first step towards better compositing scheduling
it's good as is for the time being.
The RenderLoop tries to minimize the latency by delaying compositing as
close as possible to the next vblank event. One tricky thing about it is
that if compositing is too close to the next vblank event, animations
may become a little bit choppy. However, increasing the latency reduces
the choppiness.
Given that, there is no any "silver bullet" solution for the choppiness
issue, a new option has been added in the Compositing KCM to specify the
amount of latency. By default, it's "Medium," but if a user is not
satisfied with the upstream default, they can tweak it.
2020-11-19 08:52:29 +00:00
|
|
|
<entry name="LatencyPolicy" type="Enum">
|
|
|
|
<choices name="KWin::LatencyPolicy">
|
|
|
|
<choice name="LatencyExtremelyLow" value="ExtremelyLow"/>
|
|
|
|
<choice name="LatencyLow" value="Low"/>
|
|
|
|
<choice name="LatencyMedium" value="Medium"/>
|
|
|
|
<choice name="LatencyHigh" value="High"/>
|
|
|
|
<choice name="LatencyExtremelyHigh" value="ExtremelyHigh"/>
|
|
|
|
</choices>
|
|
|
|
<default>LatencyMedium</default>
|
|
|
|
</entry>
|
2020-11-28 15:12:38 +00:00
|
|
|
<entry name="RenderTimeEstimator" type="Enum">
|
|
|
|
<choices name="KWin::RenderTimeEstimator">
|
|
|
|
<choice name="RenderTimeEstimatorMinimum" value="Minimum"/>
|
|
|
|
<choice name="RenderTimeEstimatorMaximum" value="Maximum"/>
|
|
|
|
<choice name="RenderTimeEstimatorAverage" value="Average"/>
|
|
|
|
</choices>
|
|
|
|
<default>RenderTimeEstimatorMaximum</default>
|
|
|
|
</entry>
|
2013-01-11 11:41:27 +00:00
|
|
|
</group>
|
2013-01-31 07:26:06 +00:00
|
|
|
<group name="TabBox">
|
|
|
|
<entry name="ShowDelay" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="DelayTime" type="Int">
|
|
|
|
<default>90</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="DesktopMode" type="UInt">
|
|
|
|
<default>1</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ActivitiesMode" type="UInt">
|
|
|
|
<default>1</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ApplicationsMode" type="UInt">
|
|
|
|
<default>0</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="MinimizedMode" type="UInt">
|
|
|
|
<default>0</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ShowDesktopMode" type="UInt">
|
|
|
|
<default>0</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="MultiScreenMode" type="UInt">
|
|
|
|
<default>0</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="SwitchingMode" type="UInt">
|
|
|
|
<default>0</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ShowOutline" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="ShowTabBox" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="HighlightWindows" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="LayoutName" type="String">
|
|
|
|
<default>thumbnails</default>
|
|
|
|
</entry>
|
2020-10-20 20:15:46 +00:00
|
|
|
<entry name="MoveMinimizedWindowsToEndOfTabBoxFocusChain" type="Bool">
|
|
|
|
<default>false</default>
|
|
|
|
</entry>
|
2013-01-31 07:26:06 +00:00
|
|
|
</group>
|
2019-09-25 13:31:48 +00:00
|
|
|
<group name="KDE">
|
|
|
|
<entry name="AnimationDurationFactor" type="Double">
|
|
|
|
<default>1</default>
|
|
|
|
<min>0</min>
|
|
|
|
</entry>
|
|
|
|
</group>
|
2020-12-23 00:41:47 +00:00
|
|
|
<group name="Wayland">
|
|
|
|
<entry name="InputMethod" type="Path" />
|
2021-05-07 07:27:54 +00:00
|
|
|
<entry name="DoubleTapWakeup" type="Bool">
|
|
|
|
<default>true</default>
|
|
|
|
</entry>
|
2020-12-23 00:41:47 +00:00
|
|
|
</group>
|
2020-08-27 09:05:28 +00:00
|
|
|
<group name="Xwayland">
|
|
|
|
<entry name="XwaylandCrashPolicy" type="Enum">
|
|
|
|
<choices name="KWin::XwaylandCrashPolicy">
|
|
|
|
<choice name="Stop"/>
|
|
|
|
<choice name="Restart"/>
|
|
|
|
</choices>
|
|
|
|
<default>XwaylandCrashPolicy::Restart</default>
|
|
|
|
</entry>
|
|
|
|
<entry name="XwaylandMaxCrashCount" type="UInt">
|
|
|
|
<default>3</default>
|
|
|
|
</entry>
|
|
|
|
</group>
|
2007-04-29 17:35:43 +00:00
|
|
|
</kcfg>
|