6 Commits

Author SHA1 Message Date
57b7dc8412 feat: add default config fallback
All checks were successful
CI / build (amd64, usbmakroboard-amd64, linux_amd64) (pull_request) Successful in 1m9s
CI / build (arm64, usbmakroboard-arm64, linux_arm64) (pull_request) Successful in 4m5s
2025-12-27 13:17:00 +01:00
3052bb199f Revert "feat: add default config path"
This reverts commit 6021ec89f5.
2025-12-27 13:12:02 +01:00
e8891983d9 Revert "change default config file name"
This reverts commit eebd03bb4e.
2025-12-27 13:11:59 +01:00
eebd03bb4e change default config file name
All checks were successful
CI / build (amd64, usbmakroboard-amd64, linux_amd64) (pull_request) Successful in 1m9s
CI / build (arm64, usbmakroboard-arm64, linux_arm64) (pull_request) Successful in 4m23s
2025-12-27 13:05:47 +01:00
65bc8e9b18 docs: regarding config 2025-12-27 13:05:47 +01:00
6021ec89f5 feat: add default config path 2025-12-27 13:05:47 +01:00
2 changed files with 17 additions and 2 deletions

View File

@@ -12,7 +12,9 @@ For info that with "EVIOCGRAB" the keyboard events can be consumed exclusively b
## Configuration
The configuration can be
The configuration can be provided by either specifying a config file path via the `-c` parameter. If no parameter is provided, the default config path under `$HOME/.config/UsbMakroBoard.yaml` is used.
Find the config schema in [schemas/config.schema.json](./schemas/config.schema.json) as well as a default config in [config.yaml](./config.yaml).
## Allowing non-root access to the device

View File

@@ -7,6 +7,7 @@
#include <fcntl.h>
#include <linux/input.h>
#include <iostream>
#include <cstdlib>
#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_sinks.h>
#include <yaml-cpp/yaml.h>
@@ -57,7 +58,7 @@ std::pair<int, int> mapKeyEventToRowColumn(int keyEventNumber, const std::unorde
std::string getConfigPathFromCliArguments(int argc, char *argv[])
{
std::string configPath = "config.yaml";
std::string configPath;
int opt;
while ((opt = getopt(argc, argv, "c:")) != -1)
{
@@ -71,6 +72,18 @@ std::string getConfigPathFromCliArguments(int argc, char *argv[])
exit(EXIT_FAILURE);
}
}
if (configPath.empty()) {
const char *home = std::getenv("HOME");
if (home != nullptr) {
configPath = std::string(home) + "/.config/usbMakroBoard.yaml";
}
else {
std::cerr << "HOME environment variable is not set. Exiting.\n";
exit(EXIT_FAILURE);
}
}
return configPath;
}