From 0f10eab1ed074cd783fec5184dfeac82807df3dd Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Sat, 10 Mar 2018 14:51:41 +0200 Subject: [PATCH] fix #916,add kwin script to activate launcher menu --- CMakeLists.txt | 1 + kwin_scripts/CMakeLists.txt | 4 ++ .../contents/code/main.js | 45 +++++++++++++++++++ .../metadata.desktop | 19 ++++++++ 4 files changed, 69 insertions(+) create mode 100644 kwin_scripts/CMakeLists.txt create mode 100644 kwin_scripts/activatelattelaunchermenu/contents/code/main.js create mode 100644 kwin_scripts/activatelattelaunchermenu/metadata.desktop diff --git a/CMakeLists.txt b/CMakeLists.txt index bd7b9c990..1d2d38b5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,6 +67,7 @@ include(WriteBasicConfigVersionFile) include(Definitions.cmake) add_subdirectory(liblattedock) +add_subdirectory(kwin_scripts) add_subdirectory(app) add_subdirectory(containmentactions) add_subdirectory(applets) diff --git a/kwin_scripts/CMakeLists.txt b/kwin_scripts/CMakeLists.txt new file mode 100644 index 000000000..8897a67a0 --- /dev/null +++ b/kwin_scripts/CMakeLists.txt @@ -0,0 +1,4 @@ +install( DIRECTORY activatelattelaunchermenu DESTINATION ${DATA_INSTALL_DIR}/kwin/scripts ) + +# service files +install( FILES activatelattelaunchermenu/metadata.desktop DESTINATION ${SERVICES_INSTALL_DIR} RENAME kwin-script-activatelattelaunchermenu.desktop ) diff --git a/kwin_scripts/activatelattelaunchermenu/contents/code/main.js b/kwin_scripts/activatelattelaunchermenu/contents/code/main.js new file mode 100644 index 000000000..7c68e42c9 --- /dev/null +++ b/kwin_scripts/activatelattelaunchermenu/contents/code/main.js @@ -0,0 +1,45 @@ +/* +* Copyright 2018 Michail Vourlakos +* +* This file is part of Latte-Dock +* +* Latte-Dock is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* Latte-Dock is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +*/ + +var registeredBorders = []; + +var activateLauncherMenu = function() { + callDBus("org.kde.lattedock", "/Latte", "org.kde.LatteDock", "activateLauncherMenu"); +} + +function init() { + for (var i in registeredBorders) { + unregisterScreenEdge(registeredBorders[i]); + } + + registeredBorders = []; + + var borders = readConfig("BorderActivate", "").toString().split(","); + for (var i in borders) { + var border = parseInt(borders[i]); + if (isFinite(border)) { + registeredBorders.push(border); + registerScreenEdge(border, activateLauncherMenu); + } + } +} + +options.configChanged.connect(init); + +init(); diff --git a/kwin_scripts/activatelattelaunchermenu/metadata.desktop b/kwin_scripts/activatelattelaunchermenu/metadata.desktop new file mode 100644 index 000000000..9bae8a245 --- /dev/null +++ b/kwin_scripts/activatelattelaunchermenu/metadata.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +Name=Activate Latte Launcher Menu +Comment=Activate Latte Launcher Menu from screen edge +Icon=latte-dock +Type=Service + +X-Plasma-API=javascript +X-Plasma-MainScript=code/main.js +X-KWin-Border-Activate=true +X-KDE-PluginInfo-Author=Michail Vourlakos +X-KDE-PluginInfo-Email=mvourlakos@gmail.com +X-KDE-PluginInfo-Name=activatelattelaunchermenu +X-KDE-PluginInfo-Version=0.1 + +X-KDE-PluginInfo-Depends= +X-KDE-PluginInfo-License=GPL +X-KDE-ServiceTypes=KWin/Script +X-KDE-PluginKeyword=activatelattelaunchermenu +