summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2025-12-05 15:40:03 +0000
committerGitHub <noreply@github.com>2025-12-05 15:40:03 +0000
commit016eb7a23db54cb33ed722f682c7171027a91945 (patch)
tree47e9a200d1048a2a4d6b10fe7eae0bee4822c0a5 /src/main.cpp
parentec6756f961b5b6b12a53ec0387632e4495529f28 (diff)
start: init start-hyprland and safe mode (#12484)
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 3e21c965..ed436934 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -68,7 +68,8 @@ int main(int argc, char** argv) {
std::string configPath;
std::string socketName;
int socketFd = -1;
- bool ignoreSudo = false, verifyConfig = false;
+ bool ignoreSudo = false, verifyConfig = false, safeMode = false;
+ int watchdogFd = -1;
if (argc > 1) {
std::span<char*> args{argv + 1, sc<std::size_t>(argc - 1)};
@@ -152,6 +153,23 @@ int main(int argc, char** argv) {
} else if (value == "--verify-config") {
verifyConfig = true;
continue;
+ } else if (value == "--safe-mode") {
+ safeMode = true;
+ continue;
+ } else if (value == "--watchdog-fd") {
+ if (std::next(it) == args.end()) {
+ help();
+ return 1;
+ }
+
+ try {
+ watchdogFd = std::stoi(*std::next(it));
+ it++;
+ } catch (...) {
+ std::println(stderr, "[ ERROR ] Invalid fd for watchdog fd");
+ help();
+ return 1;
+ }
} else {
std::println(stderr, "[ ERROR ] Unknown option '{}' !", value);
help();
@@ -193,6 +211,10 @@ int main(int argc, char** argv) {
reapZombieChildrenAutomatically();
+ if (watchdogFd > 0)
+ g_pCompositor->setWatchdogFd(watchdogFd);
+ if (safeMode)
+ g_pCompositor->m_safeMode = true;
g_pCompositor->initServer(socketName, socketFd);
if (verifyConfig)