diff --git a/CMakeLists.txt b/CMakeLists.txt index bd7b9c99..1d2d38b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,78 +1,79 @@ project(lattedock) cmake_minimum_required(VERSION 3.0 FATAL_ERROR) set(CMAKE_CXX_STANDARD 14) set(VERSION 0.7.78) set(AUTHOR "Michail Vourlakos, Smith Ar") set(EMAIL "mvourlakos@gmail.com, audoban@openmailbox.org") set(WEBSITE "https://github.com/psifidotos/Latte-Dock") set(BUG_ADDRESS "https://github.com/psifidotos/Latte-Dock/issues") set(FAQS "https://github.com/psifidotos/Latte-Dock/wiki/F.A.Q.") set(QT_MIN_VERSION "5.7.0") set(KF5_MIN_VERSION "5.38.0") set(KF5_LOCALE_PREFIX "") find_package(ECM ${KF5_MIN_VER} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED NO_MODULE COMPONENTS DBus Gui Qml Quick) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Activities Archive CoreAddons Crash DBusAddons Declarative GlobalAccel I18n IconThemes NewStuff Notifications Plasma PlasmaQuick Wayland WindowSystem XmlGui) find_package(X11 REQUIRED) set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries" URL "http://www.x.org" TYPE OPTIONAL PURPOSE "Required for building the X11 based workspace") if(X11_FOUND) find_package(XCB MODULE REQUIRED COMPONENTS XCB RANDR EVENT) set_package_properties(XCB PROPERTIES TYPE REQUIRED) find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS X11Extras) if(NOT X11_SM_FOUND) message(FATAL_ERROR "\nThe X11 Session Management (SM) development package could not be found. \nPlease install libSM.\n") endif(NOT X11_SM_FOUND) endif() if(X11_FOUND AND XCB_XCB_FOUND) set(HAVE_X11 ON) endif() include(ECMQMLModules) ecm_find_qmlmodule(QtQuick 2.7) ecm_find_qmlmodule(QtQuick.Layouts 1.3) ecm_find_qmlmodule(QtQuick.Controls 1.4) ecm_find_qmlmodule(QtQuick.Controls.Styles.Plasma 2.0) ecm_find_qmlmodule(QtGraphicalEffects 1.0) ecm_find_qmlmodule(org.kde.kquickcontrolsaddons 2.0) ecm_find_qmlmodule(org.kde.plasma.core 2.0) ecm_find_qmlmodule(org.kde.plasma.components 2.0) include(CheckIncludeFiles) include(CMakePackageConfigHelpers) include(ECMOptionalAddSubdirectory) include(ECMQtDeclareLoggingCategory) include(KDECMakeSettings) #include(KDECompilerSettings NO_POLICY_SCOPE) include(KDEInstallDirs) include(KDEPackageAppTemplates) include(WriteBasicConfigVersionFile) include(Definitions.cmake) add_subdirectory(liblattedock) +add_subdirectory(kwin_scripts) add_subdirectory(app) add_subdirectory(containmentactions) add_subdirectory(applets) add_subdirectory(containment) add_subdirectory(icons) add_subdirectory(plasmoid) add_subdirectory(shell) ki18n_install(${CMAKE_CURRENT_BINARY_DIR}/po) diff --git a/kwin_scripts/CMakeLists.txt b/kwin_scripts/CMakeLists.txt new file mode 100644 index 00000000..8897a67a --- /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 00000000..7c68e42c --- /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 00000000..9bae8a24 --- /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 +