38class KWIN_EXPORT
Xkb :
public QObject
42 Xkb(
bool followLocale1 =
false);
44 void setConfig(
const KSharedConfigPtr &config);
45 void setNumLockConfig(
const KSharedConfigPtr &config);
47 void updateModifiers(uint32_t modsDepressed, uint32_t modsLatched, uint32_t modsLocked, uint32_t group);
56 uint32_t scanCode = 0,
57 Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(),
58 bool superAsMeta =
false)
const;
59 Qt::KeyboardModifiers modifiers()
const;
60 Qt::KeyboardModifiers modifiersRelevantForGlobalShortcuts(uint32_t scanCode = 0)
const;
61 bool shouldKeyRepeat(quint32 key)
const;
63 void switchToNextLayout();
64 void switchToPreviousLayout();
67 void setModifierLatched(Qt::KeyboardModifier mod,
bool latched);
68 void setModifierLocked(Qt::KeyboardModifier mod,
bool locked);
87 return m_currentLayout;
92 return m_modifierState;
95 QString layoutName()
const;
96 QString layoutShortName(
int index)
const;
97 quint32 numberOfLayouts()
const;
102 void forwardModifiers();
105 QByteArray keymapContents()
const;
107 std::optional<int> keycodeFromKeysym(
xkb_keysym_t keysym);
119 void applyEnvironmentRules(xkb_rule_names &);
120 xkb_keymap *loadKeymapFromConfig();
121 xkb_keymap *loadDefaultKeymap();
122 xkb_keymap *loadKeymapFromLocale1();
123 void updateKeymap(xkb_keymap *keymap);
124 void createKeymapFile();
125 void updateModifiers();
126 void updateConsumedModifiers(uint32_t key);
127 xkb_context *m_context;
128 xkb_keymap *m_keymap;
129 QStringList m_layoutList;
140 Qt::KeyboardModifiers m_modifiers;
141 Qt::KeyboardModifiers m_consumedModifiers;
143 quint32 m_currentLayout = 0;
147 xkb_compose_table *table =
nullptr;
148 xkb_compose_state *state =
nullptr;
151 KConfigGroup m_configGroup;
152 KSharedConfigPtr m_numLockConfig;
161 QPointer<SeatInterface> m_seat;
162 const bool m_followLocale1;