diff --git a/quicksettings/CMakeLists.txt b/quicksettings/CMakeLists.txt index 2826ea02..b06f04ae 100644 --- a/quicksettings/CMakeLists.txt +++ b/quicksettings/CMakeLists.txt @@ -3,5 +3,6 @@ plasma_install_package(airplanemode org.kde.plasma.airplanemode quicksettings) plasma_install_package(caffeine org.kde.plasma.caffeine quicksettings) +plasma_install_package(keyboardtoggle org.kde.plasma.keyboardtoggle quicksettings) add_subdirectory(nightcolor) add_subdirectory(powermenu) diff --git a/quicksettings/keyboardtoggle/contents/ui/main.qml b/quicksettings/keyboardtoggle/contents/ui/main.qml new file mode 100644 index 00000000..00a09a03 --- /dev/null +++ b/quicksettings/keyboardtoggle/contents/ui/main.qml @@ -0,0 +1,29 @@ +/* + * SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez + * SPDX-FileCopyrightText: 2022 Devin Lin + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +import org.kde.plasma.private.mobileshell 1.0 as MobileShell +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.workspace.keyboardlayout 1.0 as Keyboards + +MobileShell.QuickSetting { + text: i18n("Virtual Keyboard") + icon: "input-keyboard-virtual" + status: enabled ? i18n("On") : + (Keyboards.KWinVirtualKeyboard.available ? i18n("Off") : i18n("Tap to open settings")) + enabled: Keyboards.KWinVirtualKeyboard.enabled && Keyboards.KWinVirtualKeyboard.available + settingsCommand: "plasma-open-settings kcm_mobile_onscreenkeyboard" + + function toggle() { + if (!Keyboards.KWinVirtualKeyboard.available) { + // select a keyboard in the settings (none is likely set) + MobileShell.ShellUtil.executeCommand("plasma-open-settings kcm_virtualkeyboard"); + } else { + Keyboards.KWinVirtualKeyboard.enabled = !enabled; + } + } +} + + diff --git a/quicksettings/keyboardtoggle/metadata.desktop b/quicksettings/keyboardtoggle/metadata.desktop new file mode 100644 index 00000000..00fd4dd0 --- /dev/null +++ b/quicksettings/keyboardtoggle/metadata.desktop @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: 2022 Devin Lin +# SPDX-License-Identifier: GPL-2.0-or-later + +[Desktop Entry] +Name=Virtual Keyboard Toggle +Icon=input-keyboard-virtual + +Type=Service +X-KDE-ServiceTypes=KPackage/GenericQML + +X-KDE-PluginInfo-Author=Devin Lin +X-KDE-PluginInfo-Email=devin@kde.org +X-KDE-PluginInfo-Name=org.kde.plasma.keyboardtoggle +X-KDE-PluginInfo-Version=0.1 +X-KDE-PluginInfo-Website=https://kde.org +X-KDE-PluginInfo-License=GPL + + +