From 6aa26582f63c13e32dd0191015550a2d1eade7e6 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sat, 3 Dec 2022 15:56:07 +0000 Subject: added hyprctl switchxkblayout --- hyprctl/main.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'hyprctl/main.cpp') diff --git a/hyprctl/main.cpp b/hyprctl/main.cpp index 516a3080..0d8dc5d0 100644 --- a/hyprctl/main.cpp +++ b/hyprctl/main.cpp @@ -37,15 +37,23 @@ commands: setcursor getoption cursorpos + switchxkblayout flags: -j -> output in JSON --batch -> execute a batch of commands, separated by ';' )#"; -void request(std::string arg) { +void request(std::string arg, int minArgs = 0) { const auto SERVERSOCKET = socket(AF_UNIX, SOCK_STREAM, 0); + const auto ARGS = std::count(arg.begin(), arg.end(), ' '); + + if (ARGS < minArgs) { + std::cout << "Not enough arguments, expected at least " << minArgs; + return; + } + if (SERVERSOCKET < 0) { std::cout << "Couldn't open a socket (1)"; return; @@ -316,6 +324,7 @@ int main(int argc, char** argv) { else if (fullRequest.contains("/reload")) request(fullRequest); else if (fullRequest.contains("/getoption")) request(fullRequest); else if (fullRequest.contains("/cursorpos")) request(fullRequest); + else if (fullRequest.contains("/switchxkblayout")) request(fullRequest, 2); else if (fullRequest.contains("/output")) exitStatus = outputRequest(argc, argv); else if (fullRequest.contains("/setcursor")) exitStatus = setcursorRequest(argc, argv); else if (fullRequest.contains("/dispatch")) exitStatus = dispatchRequest(argc, argv); -- cgit v1.2.3