Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
Language: Cpp
Standard: c++20

ColumnLimit: 160
IndentWidth: 4

AllowShortBlocksOnASingleLine: Never
AllowShortFunctionsOnASingleLine: Inline
AllowShortLambdasOnASingleLine: Empty

AlignAfterOpenBracket: Align
AllowAllArgumentsOnNextLine: true
AlignEscapedNewlines: LeftWithLastLine
AlignOperands: AlignAfterOperator
AlignTrailingComments: false

BreakBeforeBinaryOperators: All
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: true
AfterEnum: true
AfterExternBlock: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
BreakTemplateDeclarations: Yes

AccessModifierOffset: -4
IndentAccessModifiers: false

IncludeBlocks: Merge
FixNamespaceComments: false

AllowAllConstructorInitializersOnNextLine: true
BinPackArguments: false
IndentCaseLabels: true
SpaceAfterTemplateKeyword: false

PenaltyBreakAssignment: 10000
PenaltyBreakBeforeFirstCallParameter: 0
PenaltyBreakOpenParenthesis: 10000
PenaltyBreakScopeResolution: 10000
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ if(NOT INPUTACTIONS_OVERRIDE_CORE)
add_subdirectory(lib/core)
endif()
add_subdirectory(lib/libinput-cpp)
add_subdirectory(src/ipc)
add_subdirectory(src/common)
add_subdirectory(src/client)
add_subdirectory(src/daemon)
2 changes: 1 addition & 1 deletion lib/core
Submodule core updated 60 files
+1 −1 lib/libevdev-cpp
+12 −4 src/CMakeLists.txt
+15 −5 src/libinputactions/InputActionsMain.cpp
+0 −3 src/libinputactions/InputActionsMain.h
+55 −0 src/libinputactions/actions/WindowActivateAction.cpp
+41 −0 src/libinputactions/actions/WindowActivateAction.h
+2 −12 src/libinputactions/config/ConfigIssue.cpp
+0 −10 src/libinputactions/config/ConfigIssue.h
+58 −12 src/libinputactions/config/ConfigLoader.cpp
+6 −2 src/libinputactions/config/parsers/core.cpp
+0 −78 src/libinputactions/dbus/DBusInterfaceBase.cpp
+58 −13 src/libinputactions/dbus/MainDBusInterface.cpp
+17 −5 src/libinputactions/dbus/MainDBusInterface.h
+67 −0 src/libinputactions/globals.h
+13 −0 src/libinputactions/handlers/TriggerHandler.cpp
+8 −0 src/libinputactions/handlers/TriggerHandler.h
+47 −0 src/libinputactions/helpers/QDBusConnection.cpp
+34 −0 src/libinputactions/helpers/QDBusConnection.h
+6 −6 src/libinputactions/input/backends/InputBackend.h
+1 −44 src/libinputactions/interfaces/CursorShapeProvider.h
+2 −0 src/libinputactions/interfaces/Window.h
+5 −0 src/libinputactions/interfaces/WindowProvider.cpp
+5 −0 src/libinputactions/interfaces/WindowProvider.h
+2 −1 src/libinputactions/interfaces/implementations/DBusNotificationManager.cpp
+3 −3 src/libinputactions/interfaces/implementations/FileConfigProvider.cpp
+6 −6 src/libinputactions/scripting/FunctionWrapper.h
+1 −1 src/libinputactions/scripting/JSFunctionAction.cpp
+1 −1 src/libinputactions/scripting/JSFunctionCondition.cpp
+9 −4 src/libinputactions/scripting/Promise.cpp
+5 −1 src/libinputactions/scripting/Promise.h
+83 −27 src/libinputactions/scripting/ScriptingEngine.cpp
+30 −15 src/libinputactions/scripting/ScriptingEngine.h
+6 −5 src/libinputactions/scripting/modules/Module.cpp
+45 −0 src/libinputactions/scripting/modules/Module.h
+16 −9 src/libinputactions/scripting/modules/core/CoreModule.cpp
+12 −10 src/libinputactions/scripting/modules/core/CoreModule.h
+45 −0 src/libinputactions/scripting/modules/core/StoredVariableWrapper.cpp
+47 −0 src/libinputactions/scripting/modules/core/StoredVariableWrapper.h
+175 −0 src/libinputactions/scripting/modules/core/VariableRegistryWrapper.cpp
+67 −0 src/libinputactions/scripting/modules/core/VariableRegistryWrapper.h
+40 −0 src/libinputactions/scripting/modules/core/VariableWrapper.cpp
+51 −0 src/libinputactions/scripting/modules/core/VariableWrapper.h
+36 −0 src/libinputactions/scripting/modules/desktop/DesktopModule.cpp
+36 −0 src/libinputactions/scripting/modules/desktop/DesktopModule.h
+39 −0 src/libinputactions/scripting/modules/fs/FSModule.cpp
+36 −0 src/libinputactions/scripting/modules/fs/FSModule.h
+2 −2 src/libinputactions/scripting/modules/fs/File.cpp
+2 −2 src/libinputactions/scripting/modules/fs/File.h
+51 −0 src/libinputactions/scripting/modules/main/MainModule.cpp
+45 −0 src/libinputactions/scripting/modules/main/MainModule.h
+4 −9 src/libinputactions/scripting/modules/main/Script.cpp
+11 −8 src/libinputactions/scripting/modules/main/Script.h
+2 −2 src/libinputactions/variables/TypedVariable.h
+1 −2 src/libinputactions/variables/Variable.cpp
+1 −5 src/libinputactions/variables/Variable.h
+1 −0 src/libinputactions/variables/VariableOperations.cpp
+13 −6 src/libinputactions/variables/VariableRegistry.h
+5 −0 tests/libinputactions/Test.cpp
+2 −0 tests/libinputactions/Test.h
+7 −0 tests/libinputactions/config/parsers/triggers/TestStrokeTriggerCoreNodeParser.cpp
2 changes: 1 addition & 1 deletion lib/libinput-cpp
11 changes: 8 additions & 3 deletions src/client/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,26 @@ pkg_search_module(WAYLAND_CLIENT REQUIRED wayland-client)

add_executable(inputactions-client
gnome/GNOMEClient.cpp
input/EvdevVirtualKeyboard.cpp
input/EvdevVirtualMouse.cpp
input/StandaloneInputBackend.cpp
input/StandaloneInputDevice.cpp
interfaces/DBusEnvironmentStateProvider.cpp
plasma/PlasmaClient.cpp
wayland/WaylandClient.cpp
wayland/WaylandProtocol.cpp
wayland/WaylandProtocolManager.cpp
wayland/WlrForeignToplevelManagementV1.cpp
Client.cpp
ClientDBusInterface.cpp
ClientMessageHandler.cpp
ClientHandler.cpp
main.cpp
)

target_compile_options(inputactions-client PUBLIC -fexceptions)
target_link_libraries(inputactions-client PRIVATE
libinput-cpp
libinputactions
libinputactions-standalone-ipc
libinputactions-standalone-common
${WAYLAND_CLIENT_LIBRARIES}
)
target_include_directories(inputactions-client PRIVATE
Expand Down
59 changes: 4 additions & 55 deletions src/client/Client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,11 @@
*/

#include "Client.h"
#include "ClientDBusInterface.h"
#include <QCoreApplication>
#include <libinputactions/globals.h>
#include <libinputactions/helpers/QThread.h>
#include <libinputactions/helpers/Session.h>
#include <libinputactions-standalone-ipc/MessageSocketConnection.h>
#include <libinputactions-standalone-ipc/messages.h>
#include <libinputactions-standalone-common/ipc/MessageSocketConnection.h>

namespace InputActions
{

Client::Client()
: m_dbusInterface(this)
, m_currentTty(SessionHelpers::currentTty())
{
}

Client::~Client() = default;

void Client::start()
{
m_connectionRetryTimer = new QTimer(this);
Expand All @@ -45,53 +31,23 @@ void Client::start()
auto socket = new QLocalSocket(this);
m_connection = new MessageSocketConnection(socket, this);

connect(&configProvider, &ConfigProvider::configChanged, this, &Client::onConfigChanged);
connect(socket, &QLocalSocket::connected, this, &Client::onConnected);
connect(socket, &QLocalSocket::errorOccurred, this, &Client::onErrorOccurred);
connect(socket, &QLocalSocket::disconnected, this, &Client::onDisconnected);
connect(m_connection, &MessageSocketConnection::messageReceived, this, &Client::messageReceived);
socket->connectToServer(INPUTACTIONS_IPC_SOCKET_PATH);
}

MessageSocketConnection *Client::socketConnection() const
{
return m_connection;
}

void Client::onConnected()
{
m_connectionRetryTimer->stop();
Q_EMIT connected();
QThreadHelpers::runOnThread(QThreadHelpers::mainThread(), [this]() {
HandshakeRequestMessage handshakeRequest;
if (const auto response = m_connection->sendMessageAndWaitForResponse(handshakeRequest); !response->success()) {
qCritical().noquote().nospace() << "Handshake failed: " << response->error();
QCoreApplication::exit(-1);
return;
}

BeginSessionRequestMessage beginSessionRequest;
beginSessionRequest.setTty(m_currentTty);
if (const auto response = m_connection->sendMessageAndWaitForResponse(beginSessionRequest)) {
if (!response->success()) {
qCritical().noquote().nospace() << "Daemon rejected request to begin session: " << response->error();
QCoreApplication::exit(-1);
return;
}
} else {
qCritical() << "Daemon did not reply to session begin request";
QCoreApplication::exit(-1);
return;
}

LoadConfigRequestMessage configRequest;
configRequest.setConfig(configProvider.currentConfig());
m_connection->sendMessageAndWaitForResponse(configRequest);
});
Q_EMIT connected(m_connection);
}

void Client::onDisconnected()
{
m_connectionRetryTimer->start();
Q_EMIT disconnected();
}

void Client::onErrorOccurred(QLocalSocket::LocalSocketError error)
Expand All @@ -100,13 +56,6 @@ void Client::onErrorOccurred(QLocalSocket::LocalSocketError error)
m_connectionRetryTimer->start();
}

void Client::onConfigChanged(const QString &config)
{
LoadConfigRequestMessage request;
request.setConfig(config);
m_connection->sendMessage(request);
}

void Client::connectToDaemon()
{
m_connection->socket()->connectToServer(INPUTACTIONS_IPC_SOCKET_PATH);
Expand Down
19 changes: 3 additions & 16 deletions src/client/Client.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,12 @@

#pragma once

#include "ClientDBusInterface.h"
#include <QLocalSocket>
#include <QObject>
#include <libinputactions/interfaces/implementations/FileConfigProvider.h>

namespace InputActions
{

class ClientDBusInterface;
class Message;
class MessageSocketConnection;

Expand All @@ -35,33 +32,23 @@ class Client : public QObject
Q_OBJECT

public:
Client();
~Client() override;

Q_INVOKABLE void start();
MessageSocketConnection *socketConnection() const;

FileConfigProvider configProvider;

signals:
void connected();
void messageReceived(std::shared_ptr<Message> message);
void connected(MessageSocketConnection *connection);
void disconnected();
void messageReceived(std::shared_ptr<const Message> message);

private slots:
void onConnected();
void onDisconnected();
void onErrorOccurred(QLocalSocket::LocalSocketError error);
void onConfigChanged(const QString &config);

private:
void connectToDaemon();

MessageSocketConnection *m_connection;
QTimer *m_connectionRetryTimer{};

ClientDBusInterface m_dbusInterface;

QString m_currentTty;
};

}
114 changes: 0 additions & 114 deletions src/client/ClientDBusInterface.cpp

This file was deleted.

Loading