KWin
Loading...
Searching...
No Matches
options.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 1999, 2000 Matthias Ettrich <ettrich@kde.org>
6 SPDX-FileCopyrightText: 2003 Lubos Lunak <l.lunak@kde.org>
7 SPDX-FileCopyrightText: 2012 Martin Gräßlin <m.graesslin@kde.org>
8
9 SPDX-License-Identifier: GPL-2.0-or-later
10*/
11
12#pragma once
13
14#include "core/renderloop.h"
15#include "main.h"
16
17#include <KConfigWatcher>
18
19namespace KWin
20{
21
22// Whether to keep all windows mapped when compositing (i.e. whether to have
23// actively updated window pixmaps).
25 // The normal mode with regard to mapped windows. Hidden (minimized, etc.)
26 // and windows on inactive virtual desktops are not mapped, their pixmaps
27 // are only their icons.
29 // Like normal mode, but shown windows (i.e. on inactive virtual desktops)
30 // are kept mapped, only hidden windows are unmapped.
32 // All windows are kept mapped regardless of their state.
34};
35
42
50
58 PlacementNone, // not really a placement
59 PlacementDefault, // special, means to use the global default
60 PlacementUnknown, // special, means the function should use its default
68};
69
70class Settings;
71
72class KWIN_EXPORT Options : public QObject
73{
74 Q_OBJECT
76 Q_ENUM(PlacementPolicy)
77 Q_PROPERTY(FocusPolicy focusPolicy READ focusPolicy WRITE setFocusPolicy NOTIFY focusPolicyChanged)
78 Q_PROPERTY(XwaylandCrashPolicy xwaylandCrashPolicy READ xwaylandCrashPolicy WRITE setXwaylandCrashPolicy NOTIFY xwaylandCrashPolicyChanged)
79 Q_PROPERTY(int xwaylandMaxCrashCount READ xwaylandMaxCrashCount WRITE setXwaylandMaxCrashCount NOTIFY xwaylandMaxCrashCountChanged)
80 Q_PROPERTY(bool nextFocusPrefersMouse READ isNextFocusPrefersMouse WRITE setNextFocusPrefersMouse NOTIFY nextFocusPrefersMouseChanged)
85 Q_PROPERTY(bool clickRaise READ isClickRaise WRITE setClickRaise NOTIFY clickRaiseChanged)
89 Q_PROPERTY(bool autoRaise READ isAutoRaise WRITE setAutoRaise NOTIFY autoRaiseChanged)
93 Q_PROPERTY(int autoRaiseInterval READ autoRaiseInterval WRITE setAutoRaiseInterval NOTIFY autoRaiseIntervalChanged)
97 Q_PROPERTY(int delayFocusInterval READ delayFocusInterval WRITE setDelayFocusInterval NOTIFY delayFocusIntervalChanged)
101 Q_PROPERTY(bool shadeHover READ isShadeHover WRITE setShadeHover NOTIFY shadeHoverChanged)
105 Q_PROPERTY(int shadeHoverInterval READ shadeHoverInterval WRITE setShadeHoverInterval NOTIFY shadeHoverIntervalChanged)
109 Q_PROPERTY(bool separateScreenFocus READ isSeparateScreenFocus WRITE setSeparateScreenFocus NOTIFY separateScreenFocusChanged)
110 Q_PROPERTY(bool activeMouseScreen READ activeMouseScreen WRITE setActiveMouseScreen NOTIFY activeMouseScreenChanged)
111 Q_PROPERTY(PlacementPolicy placement READ placement WRITE setPlacement NOTIFY placementChanged)
112 Q_PROPERTY(ActivationDesktopPolicy activationDesktopPolicy READ activationDesktopPolicy WRITE setActivationDesktopPolicy NOTIFY activationDesktopPolicyChanged)
113 Q_PROPERTY(bool focusPolicyIsReasonable READ focusPolicyIsReasonable NOTIFY focusPolicyIsResonableChanged)
117 Q_PROPERTY(int borderSnapZone READ borderSnapZone WRITE setBorderSnapZone NOTIFY borderSnapZoneChanged)
121 Q_PROPERTY(int windowSnapZone READ windowSnapZone WRITE setWindowSnapZone NOTIFY windowSnapZoneChanged)
125 Q_PROPERTY(int centerSnapZone READ centerSnapZone WRITE setCenterSnapZone NOTIFY centerSnapZoneChanged)
129 Q_PROPERTY(bool snapOnlyWhenOverlapping READ isSnapOnlyWhenOverlapping WRITE setSnapOnlyWhenOverlapping NOTIFY snapOnlyWhenOverlappingChanged)
133 Q_PROPERTY(bool rollOverDesktops READ isRollOverDesktops WRITE setRollOverDesktops NOTIFY rollOverDesktopsChanged)
137 Q_PROPERTY(int focusStealingPreventionLevel READ focusStealingPreventionLevel WRITE setFocusStealingPreventionLevel NOTIFY focusStealingPreventionLevelChanged)
138 Q_PROPERTY(KWin::Options::WindowOperation operationTitlebarDblClick READ operationTitlebarDblClick WRITE setOperationTitlebarDblClick NOTIFY operationTitlebarDblClickChanged)
139 Q_PROPERTY(KWin::Options::WindowOperation operationMaxButtonLeftClick READ operationMaxButtonLeftClick WRITE setOperationMaxButtonLeftClick NOTIFY operationMaxButtonLeftClickChanged)
140 Q_PROPERTY(KWin::Options::WindowOperation operationMaxButtonMiddleClick READ operationMaxButtonMiddleClick WRITE setOperationMaxButtonMiddleClick NOTIFY operationMaxButtonMiddleClickChanged)
141 Q_PROPERTY(KWin::Options::WindowOperation operationMaxButtonRightClick READ operationMaxButtonRightClick WRITE setOperationMaxButtonRightClick NOTIFY operationMaxButtonRightClickChanged)
142 Q_PROPERTY(MouseCommand commandActiveTitlebar1 READ commandActiveTitlebar1 WRITE setCommandActiveTitlebar1 NOTIFY commandActiveTitlebar1Changed)
143 Q_PROPERTY(MouseCommand commandActiveTitlebar2 READ commandActiveTitlebar2 WRITE setCommandActiveTitlebar2 NOTIFY commandActiveTitlebar2Changed)
144 Q_PROPERTY(MouseCommand commandActiveTitlebar3 READ commandActiveTitlebar3 WRITE setCommandActiveTitlebar3 NOTIFY commandActiveTitlebar3Changed)
145 Q_PROPERTY(MouseCommand commandInactiveTitlebar1 READ commandInactiveTitlebar1 WRITE setCommandInactiveTitlebar1 NOTIFY commandInactiveTitlebar1Changed)
146 Q_PROPERTY(MouseCommand commandInactiveTitlebar2 READ commandInactiveTitlebar2 WRITE setCommandInactiveTitlebar2 NOTIFY commandInactiveTitlebar2Changed)
147 Q_PROPERTY(MouseCommand commandInactiveTitlebar3 READ commandInactiveTitlebar3 WRITE setCommandInactiveTitlebar3 NOTIFY commandInactiveTitlebar3Changed)
148 Q_PROPERTY(MouseCommand commandWindow1 READ commandWindow1 WRITE setCommandWindow1 NOTIFY commandWindow1Changed)
149 Q_PROPERTY(MouseCommand commandWindow2 READ commandWindow2 WRITE setCommandWindow2 NOTIFY commandWindow2Changed)
150 Q_PROPERTY(MouseCommand commandWindow3 READ commandWindow3 WRITE setCommandWindow3 NOTIFY commandWindow3Changed)
151 Q_PROPERTY(MouseCommand commandWindowWheel READ commandWindowWheel WRITE setCommandWindowWheel NOTIFY commandWindowWheelChanged)
152 Q_PROPERTY(MouseCommand commandAll1 READ commandAll1 WRITE setCommandAll1 NOTIFY commandAll1Changed)
153 Q_PROPERTY(MouseCommand commandAll2 READ commandAll2 WRITE setCommandAll2 NOTIFY commandAll2Changed)
154 Q_PROPERTY(MouseCommand commandAll3 READ commandAll3 WRITE setCommandAll3 NOTIFY commandAll3Changed)
155 Q_PROPERTY(uint keyCmdAllModKey READ keyCmdAllModKey WRITE setKeyCmdAllModKey NOTIFY keyCmdAllModKeyChanged)
159 Q_PROPERTY(bool condensedTitle READ condensedTitle WRITE setCondensedTitle NOTIFY condensedTitleChanged)
163 Q_PROPERTY(bool electricBorderMaximize READ electricBorderMaximize WRITE setElectricBorderMaximize NOTIFY electricBorderMaximizeChanged)
167 Q_PROPERTY(bool electricBorderTiling READ electricBorderTiling WRITE setElectricBorderTiling NOTIFY electricBorderTilingChanged)
171 Q_PROPERTY(float electricBorderCornerRatio READ electricBorderCornerRatio WRITE setElectricBorderCornerRatio NOTIFY electricBorderCornerRatioChanged)
172 Q_PROPERTY(bool borderlessMaximizedWindows READ borderlessMaximizedWindows WRITE setBorderlessMaximizedWindows NOTIFY borderlessMaximizedWindowsChanged)
176 Q_PROPERTY(int killPingTimeout READ killPingTimeout WRITE setKillPingTimeout NOTIFY killPingTimeoutChanged)
180 Q_PROPERTY(bool hideUtilityWindowsForInactive READ isHideUtilityWindowsForInactive WRITE setHideUtilityWindowsForInactive NOTIFY hideUtilityWindowsForInactiveChanged)
181 Q_PROPERTY(int compositingMode READ compositingMode WRITE setCompositingMode NOTIFY compositingModeChanged)
182 Q_PROPERTY(bool useCompositing READ isUseCompositing WRITE setUseCompositing NOTIFY useCompositingChanged)
183 Q_PROPERTY(int hiddenPreviews READ hiddenPreviews WRITE setHiddenPreviews NOTIFY hiddenPreviewsChanged)
189 Q_PROPERTY(int glSmoothScale READ glSmoothScale WRITE setGlSmoothScale NOTIFY glSmoothScaleChanged)
190 Q_PROPERTY(bool glStrictBinding READ isGlStrictBinding WRITE setGlStrictBinding NOTIFY glStrictBindingChanged)
196 Q_PROPERTY(bool glStrictBindingFollowsDriver READ isGlStrictBindingFollowsDriver WRITE setGlStrictBindingFollowsDriver NOTIFY glStrictBindingFollowsDriverChanged)
197 Q_PROPERTY(GlSwapStrategy glPreferBufferSwap READ glPreferBufferSwap WRITE setGlPreferBufferSwap NOTIFY glPreferBufferSwapChanged)
198 Q_PROPERTY(KWin::OpenGLPlatformInterface glPlatformInterface READ glPlatformInterface WRITE setGlPlatformInterface NOTIFY glPlatformInterfaceChanged)
199 Q_PROPERTY(bool windowsBlockCompositing READ windowsBlockCompositing WRITE setWindowsBlockCompositing NOTIFY windowsBlockCompositingChanged)
200 Q_PROPERTY(bool allowTearing READ allowTearing WRITE setAllowTearing NOTIFY allowTearingChanged)
201public:
202 explicit Options(QObject *parent = nullptr);
203 ~Options() override;
204
205 void updateSettings();
206
242 Q_ENUM(FocusPolicy)
243
244 FocusPolicy focusPolicy() const
245 {
246 return m_focusPolicy;
247 }
249 {
250 return m_nextFocusPrefersMouse;
251 }
252
254 {
255 return m_xwaylandCrashPolicy;
256 }
258 {
259 return m_xwaylandMaxCrashCount;
260 }
262 {
263 return m_xwaylandEavesdrops;
264 }
265
270 bool isClickRaise() const
271 {
272 return m_clickRaise;
273 }
274
278 bool isAutoRaise() const
279 {
280 return m_autoRaise;
281 }
282
287 {
288 return m_autoRaiseInterval;
289 }
290
295 {
296 return m_delayFocusInterval;
297 }
298
302 bool isShadeHover() const
303 {
304 return m_shadeHover;
305 }
306
311 {
312 return m_shadeHoverInterval;
313 }
314
319 {
320 return m_separateScreenFocus;
321 }
322
323 bool activeMouseScreen() const
324 {
325 return m_activeMouseScreen;
326 }
327
329 {
330 return m_placement;
331 }
332
334 {
335 return m_focusPolicy == ClickToFocus || m_focusPolicy == FocusFollowsMouse;
336 }
337
343 Q_ENUM(ActivationDesktopPolicy)
344
345 ActivationDesktopPolicy activationDesktopPolicy() const
346 {
347 return m_activationDesktopPolicy;
348 }
349
353 int borderSnapZone() const
354 {
355 return m_borderSnapZone;
356 }
357
361 int windowSnapZone() const
362 {
363 return m_windowSnapZone;
364 }
365
369 int centerSnapZone() const
370 {
371 return m_centerSnapZone;
372 }
373
378 {
379 return m_snapOnlyWhenOverlapping;
380 }
381
386 {
387 return m_rollOverDesktops;
388 }
389
396 {
397 return m_focusStealingPreventionLevel;
398 }
399
425 Q_ENUM(WindowOperation)
426
427 WindowOperation operationTitlebarDblClick() const
428 {
429 return OpTitlebarDblClick;
430 }
432 {
433 return opMaxButtonLeftClick;
434 }
436 {
437 return opMaxButtonRightClick;
438 }
440 {
441 return opMaxButtonMiddleClick;
442 }
443 WindowOperation operationMaxButtonClick(Qt::MouseButtons button) const;
444
476 Q_ENUM(MouseCommand)
477
487 Q_ENUM(MouseWheelCommand)
488
489 MouseCommand operationTitlebarMouseWheel(int delta) const
490 {
491 return wheelToMouseCommand(CmdTitlebarWheel, delta);
492 }
494 {
495 return wheelToMouseCommand(CmdAllWheel, delta);
496 }
497
499 {
500 return CmdActiveTitlebar1;
501 }
503 {
504 return CmdActiveTitlebar2;
505 }
507 {
508 return CmdActiveTitlebar3;
509 }
511 {
512 return CmdInactiveTitlebar1;
513 }
515 {
516 return CmdInactiveTitlebar2;
517 }
519 {
520 return CmdInactiveTitlebar3;
521 }
523 {
524 return CmdWindow1;
525 }
527 {
528 return CmdWindow2;
529 }
531 {
532 return CmdWindow3;
533 }
535 {
536 return CmdWindowWheel;
537 }
539 {
540 return CmdAll1;
541 }
543 {
544 return CmdAll2;
545 }
547 {
548 return CmdAll3;
549 }
551 {
552 return CmdAllWheel;
553 }
554 uint keyCmdAllModKey() const
555 {
556 return CmdAllModKey;
557 }
558 Qt::KeyboardModifier commandAllModifier() const
559 {
560 switch (CmdAllModKey) {
561 case Qt::Key_Alt:
562 return Qt::AltModifier;
563 case Qt::Key_Meta:
564 return Qt::MetaModifier;
565 default:
566 Q_UNREACHABLE();
567 }
568 }
569
570 static WindowOperation windowOperation(const QString &name, bool restricted);
571 static MouseCommand mouseCommand(const QString &name, bool restricted);
572 static MouseWheelCommand mouseWheelCommand(const QString &name);
573
577 bool condensedTitle() const;
578
584 {
585 return electric_border_maximize;
586 }
592 {
593 return electric_border_tiling;
594 }
599 {
600 return electric_border_corner_ratio;
601 }
602
604 {
605 return borderless_maximized_windows;
606 }
607
611 int killPingTimeout() const
612 {
613 return m_killPingTimeout;
614 }
615
620 {
621 return m_hideUtilityWindowsForInactive;
622 }
623
627 double animationTimeFactor() const;
628
629 //----------------------
630 // Compositing settings
632 {
633 return m_compositingMode;
634 }
636 {
637 m_compositingMode = mode;
638 }
639 // Separate to mode so the user can toggle
640 bool isUseCompositing() const;
641
642 // General preferences
644 {
645 return m_hiddenPreviews;
646 }
647 // OpenGL
648 // 1 = yes,
649 // 2 = try trilinear when transformed; else 1,
650 // -1 = auto
651 int glSmoothScale() const
652 {
653 return m_glSmoothScale;
654 }
655
656 // Settings that should be auto-detected
657 bool isGlStrictBinding() const
658 {
659 return m_glStrictBinding;
660 }
662 {
663 return m_glStrictBindingFollowsDriver;
664 }
666 {
667 return m_glPlatformInterface;
668 }
669
671 CopyFrontBuffer = 'c',
672 PaintFullScreen = 'p',
673 ExtendDamage = 'e',
674 AutoSwapStrategy = 'a',
675 };
676 Q_ENUM(GlSwapStrategy)
677 GlSwapStrategy glPreferBufferSwap() const
678 {
679 return m_glPreferBufferSwap;
680 }
681
683 {
684 return m_windowsBlockCompositing;
685 }
686
687 QStringList modifierOnlyDBusShortcut(Qt::KeyboardModifier mod) const;
688 bool allowTearing() const;
689
690 // setters
691 void setFocusPolicy(FocusPolicy focusPolicy);
692 void setXwaylandCrashPolicy(XwaylandCrashPolicy crashPolicy);
693 void setXwaylandMaxCrashCount(int maxCrashCount);
694 void setXwaylandEavesdrops(XwaylandEavesdropsMode mode);
695 void setNextFocusPrefersMouse(bool nextFocusPrefersMouse);
696 void setClickRaise(bool clickRaise);
697 void setAutoRaise(bool autoRaise);
698 void setAutoRaiseInterval(int autoRaiseInterval);
699 void setDelayFocusInterval(int delayFocusInterval);
700 void setShadeHover(bool shadeHover);
701 void setShadeHoverInterval(int shadeHoverInterval);
702 void setSeparateScreenFocus(bool separateScreenFocus);
703 void setActiveMouseScreen(bool activeMouseScreen);
704 void setPlacement(PlacementPolicy placement);
705 void setActivationDesktopPolicy(ActivationDesktopPolicy activationDesktopPolicy);
706 void setBorderSnapZone(int borderSnapZone);
707 void setWindowSnapZone(int windowSnapZone);
708 void setCenterSnapZone(int centerSnapZone);
709 void setSnapOnlyWhenOverlapping(bool snapOnlyWhenOverlapping);
710 void setRollOverDesktops(bool rollOverDesktops);
711 void setFocusStealingPreventionLevel(int focusStealingPreventionLevel);
712 void setOperationTitlebarDblClick(WindowOperation operationTitlebarDblClick);
713 void setOperationMaxButtonLeftClick(WindowOperation op);
714 void setOperationMaxButtonRightClick(WindowOperation op);
715 void setOperationMaxButtonMiddleClick(WindowOperation op);
716 void setCommandActiveTitlebar1(MouseCommand commandActiveTitlebar1);
717 void setCommandActiveTitlebar2(MouseCommand commandActiveTitlebar2);
718 void setCommandActiveTitlebar3(MouseCommand commandActiveTitlebar3);
719 void setCommandInactiveTitlebar1(MouseCommand commandInactiveTitlebar1);
720 void setCommandInactiveTitlebar2(MouseCommand commandInactiveTitlebar2);
721 void setCommandInactiveTitlebar3(MouseCommand commandInactiveTitlebar3);
722 void setCommandWindow1(MouseCommand commandWindow1);
723 void setCommandWindow2(MouseCommand commandWindow2);
724 void setCommandWindow3(MouseCommand commandWindow3);
725 void setCommandWindowWheel(MouseCommand commandWindowWheel);
726 void setCommandAll1(MouseCommand commandAll1);
727 void setCommandAll2(MouseCommand commandAll2);
728 void setCommandAll3(MouseCommand commandAll3);
729 void setKeyCmdAllModKey(uint keyCmdAllModKey);
730 void setCondensedTitle(bool condensedTitle);
731 void setElectricBorderMaximize(bool electricBorderMaximize);
732 void setElectricBorderTiling(bool electricBorderTiling);
733 void setElectricBorderCornerRatio(float electricBorderCornerRatio);
734 void setBorderlessMaximizedWindows(bool borderlessMaximizedWindows);
735 void setKillPingTimeout(int killPingTimeout);
736 void setHideUtilityWindowsForInactive(bool hideUtilityWindowsForInactive);
737 void setCompositingMode(int compositingMode);
738 void setUseCompositing(bool useCompositing);
739 void setHiddenPreviews(int hiddenPreviews);
740 void setGlSmoothScale(int glSmoothScale);
741 void setGlStrictBinding(bool glStrictBinding);
742 void setGlStrictBindingFollowsDriver(bool glStrictBindingFollowsDriver);
743 void setGlPreferBufferSwap(char glPreferBufferSwap);
744 void setGlPlatformInterface(OpenGLPlatformInterface interface);
745 void setWindowsBlockCompositing(bool set);
746 void setAllowTearing(bool allow);
747
748 // default values
750 {
751 return MaximizeOp;
752 }
754 {
755 return MaximizeOp;
756 }
758 {
759 return HMaximizeOp;
760 }
762 {
763 return VMaximizeOp;
764 }
766 {
767 return MouseRaise;
768 }
770 {
771 return MouseNothing;
772 }
774 {
775 return MouseOperationsMenu;
776 }
778 {
779 return MouseActivateAndRaise;
780 }
782 {
783 return MouseNothing;
784 }
786 {
787 return MouseOperationsMenu;
788 }
790 {
791 return MouseActivateRaiseAndPassClick;
792 }
794 {
795 return MouseActivateAndPassClick;
796 }
798 {
799 return MouseActivateAndPassClick;
800 }
802 {
803 return MouseNothing;
804 }
806 {
807 return MouseUnrestrictedMove;
808 }
810 {
811 return MouseToggleRaiseAndLower;
812 }
814 {
815 return MouseUnrestrictedResize;
816 }
818 {
819 return MouseWheelNothing;
820 }
822 {
823 return MouseWheelNothing;
824 }
826 {
827 return Qt::Key_Alt;
828 }
834 {
835 return true;
836 }
842 {
843 return 2;
844 }
846 {
847 return true;
848 }
850 {
851 return true;
852 }
854 {
855 return AutoSwapStrategy;
856 }
858 {
859 return kwinApp()->shouldUseWaylandForCompositing() ? EglPlatformInterface : GlxPlatformInterface;
860 }
862 {
863 return XwaylandCrashPolicy::Restart;
864 }
866 {
867 return 3;
868 }
870 {
871 return None;
872 }
874 {
875 return ActivationDesktopPolicy::SwitchToOtherDesktop;
876 }
880 void loadConfig();
881 void reparseConfiguration();
882
883 //----------------------
884Q_SIGNALS:
885 // for properties
906 void rollOverDesktopsChanged(bool enabled);
945
946private:
947 void setElectricBorders(int borders);
948 void syncFromKcfgc();
949 std::unique_ptr<Settings> m_settings;
950 KConfigWatcher::Ptr m_configWatcher;
951
952 FocusPolicy m_focusPolicy;
953 bool m_nextFocusPrefersMouse;
954 bool m_clickRaise;
955 bool m_autoRaise;
956 int m_autoRaiseInterval;
957 int m_delayFocusInterval;
958 bool m_shadeHover;
959 int m_shadeHoverInterval;
960 bool m_separateScreenFocus;
961 bool m_activeMouseScreen;
962 PlacementPolicy m_placement;
963 ActivationDesktopPolicy m_activationDesktopPolicy;
964 int m_borderSnapZone;
965 int m_windowSnapZone;
966 int m_centerSnapZone;
967 bool m_snapOnlyWhenOverlapping;
968 bool m_rollOverDesktops;
969 int m_focusStealingPreventionLevel;
970 int m_killPingTimeout;
971 bool m_hideUtilityWindowsForInactive;
972 XwaylandCrashPolicy m_xwaylandCrashPolicy;
973 int m_xwaylandMaxCrashCount;
974 XwaylandEavesdropsMode m_xwaylandEavesdrops;
975
976 CompositingType m_compositingMode;
977 bool m_useCompositing;
978 HiddenPreviews m_hiddenPreviews;
979 int m_glSmoothScale;
980 // Settings that should be auto-detected
981 bool m_glStrictBinding;
982 bool m_glStrictBindingFollowsDriver;
983 GlSwapStrategy m_glPreferBufferSwap;
984 OpenGLPlatformInterface m_glPlatformInterface;
985 bool m_windowsBlockCompositing;
986
987 WindowOperation OpTitlebarDblClick;
988 WindowOperation opMaxButtonRightClick = defaultOperationMaxButtonRightClick();
989 WindowOperation opMaxButtonMiddleClick = defaultOperationMaxButtonMiddleClick();
990 WindowOperation opMaxButtonLeftClick = defaultOperationMaxButtonRightClick();
991
992 // mouse bindings
993 MouseCommand CmdActiveTitlebar1;
994 MouseCommand CmdActiveTitlebar2;
995 MouseCommand CmdActiveTitlebar3;
996 MouseCommand CmdInactiveTitlebar1;
997 MouseCommand CmdInactiveTitlebar2;
998 MouseCommand CmdInactiveTitlebar3;
999 MouseWheelCommand CmdTitlebarWheel;
1000 MouseCommand CmdWindow1;
1001 MouseCommand CmdWindow2;
1002 MouseCommand CmdWindow3;
1003 MouseCommand CmdWindowWheel;
1004 MouseCommand CmdAll1;
1005 MouseCommand CmdAll2;
1006 MouseCommand CmdAll3;
1007 MouseWheelCommand CmdAllWheel;
1008 uint CmdAllModKey;
1009
1010 bool electric_border_maximize;
1011 bool electric_border_tiling;
1012 float electric_border_corner_ratio;
1013 bool borderless_maximized_windows;
1014 bool condensed_title;
1015
1016 bool m_allowTearing = true;
1017
1018 QHash<Qt::KeyboardModifier, QStringList> m_modifierOnlyShortcuts;
1019
1020 MouseCommand wheelToMouseCommand(MouseWheelCommand com, int delta) const;
1021};
1022
1023extern KWIN_EXPORT Options *options;
1024
1025} // namespace
1026
void shadeHoverIntervalChanged()
MouseWheelCommand commandAllWheel() const
Definition options.h:550
int autoRaiseInterval() const
Definition options.h:286
void activeMouseScreenChanged()
void glStrictBindingChanged()
MouseCommand commandInactiveTitlebar1() const
Definition options.h:510
static MouseCommand defaultCommandActiveTitlebar1()
Definition options.h:765
void electricBorderMaximizeChanged()
MouseCommand commandAll3() const
Definition options.h:546
void operationMaxButtonMiddleClickChanged()
void xwaylandCrashPolicyChanged()
OpenGLPlatformInterface glPlatformInterface() const
Definition options.h:665
int delayFocusInterval() const
Definition options.h:294
static MouseCommand defaultCommandWindow3()
Definition options.h:797
static WindowOperation defaultOperationTitlebarDblClick()
Definition options.h:749
static int defaultXwaylandMaxCrashCount()
Definition options.h:865
void rollOverDesktopsChanged(bool enabled)
int windowSnapZone() const
Definition options.h:361
bool isHideUtilityWindowsForInactive() const
Definition options.h:619
void placementChanged()
static MouseCommand defaultCommandInactiveTitlebar3()
Definition options.h:785
XwaylandEavesdropsMode xwaylandEavesdrops() const
Definition options.h:261
bool isShadeHover() const
Definition options.h:302
static CompositingType defaultCompositingMode()
Definition options.h:829
void commandActiveTitlebar1Changed()
void glSmoothScaleChanged()
void centerSnapZoneChanged()
@ MouseUnrestrictedResize
Definition options.h:460
@ MouseActivateRaiseAndMove
Definition options.h:457
@ MouseUnrestrictedMove
Definition options.h:456
@ MouseActivateRaiseAndPassClick
Definition options.h:453
@ MouseActivateAndPassClick
Definition options.h:454
@ MousePreviousDesktop
Definition options.h:468
@ MouseActivateAndRaise
Definition options.h:450
@ MouseOperationsMenu
Definition options.h:448
@ MouseActivateAndLower
Definition options.h:451
@ MouseToggleRaiseAndLower
Definition options.h:449
@ MouseActivateRaiseAndUnrestrictedMove
Definition options.h:458
Qt::KeyboardModifier commandAllModifier() const
Definition options.h:558
static MouseCommand defaultCommandAll3()
Definition options.h:813
static MouseCommand defaultCommandWindowWheel()
Definition options.h:801
@ UnrestrictedMoveOp
Definition options.h:405
@ UnrestrictedResizeOp
Definition options.h:407
@ ApplicationRulesOp
Definition options.h:423
@ SetupWindowShortcutOp
Definition options.h:422
void shadeHoverChanged()
static int defaultGlSmoothScale()
Definition options.h:841
void commandActiveTitlebar3Changed()
MouseCommand commandAll2() const
Definition options.h:542
bool windowsBlockCompositing() const
Definition options.h:682
int focusStealingPreventionLevel() const
Definition options.h:395
static GlSwapStrategy defaultGlPreferBufferSwap()
Definition options.h:853
void autoRaiseIntervalChanged()
void useCompositingChanged()
int centerSnapZone() const
Definition options.h:369
static MouseCommand defaultCommandWindow2()
Definition options.h:793
static bool defaultGlStrictBindingFollowsDriver()
Definition options.h:849
void electricBorderTilingChanged()
WindowOperation operationMaxButtonMiddleClick() const
Definition options.h:439
static uint defaultKeyCmdAllModKey()
Definition options.h:825
static MouseCommand defaultCommandActiveTitlebar2()
Definition options.h:769
static HiddenPreviews defaultHiddenPreviews()
Definition options.h:837
void operationMaxButtonLeftClickChanged()
void keyCmdAllModKeyChanged()
bool activeMouseScreen() const
Definition options.h:323
MouseCommand commandActiveTitlebar1() const
Definition options.h:498
static bool defaultUseCompositing()
Definition options.h:833
void borderlessMaximizedWindowsChanged()
void condensedTitleChanged()
static OpenGLPlatformInterface defaultGlPlatformInterface()
Definition options.h:857
void commandWindow1Changed()
bool isAutoRaise() const
Definition options.h:278
bool isClickRaise() const
Definition options.h:270
bool isGlStrictBindingFollowsDriver() const
Definition options.h:661
void xwaylandEavesdropsChanged()
void compositingModeChanged()
static bool defaultGlStrictBinding()
Definition options.h:845
static MouseCommand defaultCommandAll2()
Definition options.h:809
void focusPolicyChanged()
int glSmoothScale() const
Definition options.h:651
XwaylandCrashPolicy xwaylandCrashPolicy() const
Definition options.h:253
ActivationDesktopPolicy
Definition options.h:338
@ SwitchToOtherDesktop
Definition options.h:339
@ BringToCurrentDesktop
Definition options.h:340
void commandWindow2Changed()
void commandActiveTitlebar2Changed()
void commandAll2Changed()
void operationTitlebarDblClickChanged()
void commandInactiveTitlebar1Changed()
void animationSpeedChanged()
bool focusPolicyIsReasonable()
Definition options.h:333
int killPingTimeout() const
Definition options.h:611
MouseCommand commandWindow2() const
Definition options.h:526
static MouseCommand defaultCommandInactiveTitlebar2()
Definition options.h:781
static ActivationDesktopPolicy defaultActivationDesktopPolicy()
Definition options.h:873
void commandWindowWheelChanged()
static MouseCommand defaultCommandInactiveTitlebar1()
Definition options.h:777
@ MouseWheelShadeUnshade
Definition options.h:480
@ MouseWheelMaximizeRestore
Definition options.h:481
@ MouseWheelAboveBelow
Definition options.h:482
@ MouseWheelPreviousNextDesktop
Definition options.h:483
@ MouseWheelChangeOpacity
Definition options.h:484
@ MouseWheelRaiseLower
Definition options.h:479
bool electricBorderMaximize() const
Definition options.h:583
void activationDesktopPolicyChanged()
PlacementPolicy placement() const
Definition options.h:328
MouseCommand operationWindowMouseWheel(int delta) const
Definition options.h:493
MouseCommand commandWindowWheel() const
Definition options.h:534
void configChanged()
static XwaylandEavesdropsMode defaultXwaylandEavesdrops()
Definition options.h:869
int shadeHoverInterval()
Definition options.h:310
void electricBorderCornerRatioChanged()
void windowSnapZoneChanged()
MouseCommand commandAll1() const
Definition options.h:538
CompositingType compositingMode() const
Definition options.h:631
void killPingTimeoutChanged()
static WindowOperation defaultOperationMaxButtonLeftClick()
Definition options.h:753
static MouseCommand defaultCommandAll1()
Definition options.h:805
bool electricBorderTiling() const
Definition options.h:591
void nextFocusPrefersMouseChanged()
MouseCommand commandInactiveTitlebar2() const
Definition options.h:514
void commandAll1Changed()
void delayFocusIntervalChanged()
static WindowOperation defaultOperationMaxButtonMiddleClick()
Definition options.h:761
void commandAll3Changed()
void borderSnapZoneChanged()
static XwaylandCrashPolicy defaultXwaylandCrashPolicy()
Definition options.h:861
void xwaylandMaxCrashCountChanged()
void glStrictBindingFollowsDriverChanged()
static MouseWheelCommand defaultCommandTitlebarWheel()
Definition options.h:817
bool isRollOverDesktops() const
Definition options.h:385
static MouseCommand defaultCommandActiveTitlebar3()
Definition options.h:773
void commandInactiveTitlebar3Changed()
MouseCommand commandInactiveTitlebar3() const
Definition options.h:518
void commandWindow3Changed()
void focusPolicyIsResonableChanged()
MouseCommand commandWindow3() const
Definition options.h:530
bool isSnapOnlyWhenOverlapping() const
Definition options.h:377
int xwaylandMaxCrashCount() const
Definition options.h:257
void clickRaiseChanged()
bool borderlessMaximizedWindows() const
Definition options.h:603
uint keyCmdAllModKey() const
Definition options.h:554
HiddenPreviews hiddenPreviews() const
Definition options.h:643
WindowOperation operationMaxButtonLeftClick() const
Definition options.h:431
void operationMaxButtonRightClickChanged()
static MouseWheelCommand defaultCommandAllWheel()
Definition options.h:821
void glPlatformInterfaceChanged()
bool isGlStrictBinding() const
Definition options.h:657
void windowsBlockCompositingChanged()
static WindowOperation defaultOperationMaxButtonRightClick()
Definition options.h:757
void commandInactiveTitlebar2Changed()
MouseCommand commandActiveTitlebar2() const
Definition options.h:502
MouseCommand commandWindow1() const
Definition options.h:522
bool isNextFocusPrefersMouse() const
Definition options.h:248
void hiddenPreviewsChanged()
void hideUtilityWindowsForInactiveChanged()
WindowOperation operationMaxButtonRightClick() const
Definition options.h:435
void allowTearingChanged()
void focusStealingPreventionLevelChanged()
void glPreferBufferSwapChanged()
void autoRaiseChanged()
bool isSeparateScreenFocus() const
Definition options.h:318
@ FocusFollowsMouse
Definition options.h:224
int borderSnapZone() const
Definition options.h:353
void snapOnlyWhenOverlappingChanged()
void separateScreenFocusChanged(bool)
static MouseCommand defaultCommandWindow1()
Definition options.h:789
float electricBorderCornerRatio() const
Definition options.h:598
MouseCommand commandActiveTitlebar3() const
Definition options.h:506
void setCompositingMode(CompositingType mode)
Definition options.h:635
Q_DECLARE_METATYPE(KWin::SwitchEvent::State)
XwaylandEavesdropsMode
Definition options.h:36
@ All
Definition options.h:40
@ AllKeysWithModifier
Definition options.h:39
@ None
Definition options.h:37
@ NonCharacterKeys
Definition options.h:38
PlacementPolicy
Definition options.h:57
@ PlacementZeroCornered
Definition options.h:64
@ PlacementUnderMouse
Definition options.h:65
@ PlacementMaximizing
Definition options.h:67
@ PlacementRandom
Definition options.h:61
@ PlacementOnMainWindow
Definition options.h:66
@ PlacementCentered
Definition options.h:63
@ PlacementUnknown
Definition options.h:60
@ PlacementSmart
Definition options.h:62
@ PlacementDefault
Definition options.h:59
@ PlacementNone
Definition options.h:58
OpenGLPlatformInterface
Definition globals.h:42
@ EglPlatformInterface
Definition globals.h:45
@ GlxPlatformInterface
Definition globals.h:44
CompositingType
Definition globals.h:28
@ OpenGLCompositing
Definition globals.h:37
Options * options
Definition main.cpp:73
XwaylandCrashPolicy
Definition options.h:46
@ Stop
Definition options.h:47
@ Restart
Definition options.h:48
HiddenPreviews
Definition options.h:24
@ HiddenPreviewsNever
Definition options.h:28
@ HiddenPreviewsAlways
Definition options.h:33
@ HiddenPreviewsShown
Definition options.h:31
#define explicit