From d3ce51a8baa61c055d011d05e1f99ff1bcca09a1 Mon Sep 17 00:00:00 2001 From: Virt <41426325+VirtCode@users.noreply.github.com> Date: Sun, 9 Mar 2025 00:34:07 +0100 Subject: [PATCH 1/2] oops documentation is hard --- wayneko.1 | 8 ++++---- wayneko.c | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/wayneko.1 b/wayneko.1 index eb2016a..e1b151d 100644 --- a/wayneko.1 +++ b/wayneko.1 @@ -17,8 +17,8 @@ wayneko \- Neko on Wayland but with phases .OP \-\-outline\-colour 0xRRGGBB[AA] .OP \-\-type neko|inu|random .OP \-\-idle-sleep seconds -.OP \-\-phase-sleep seconds-seconds -.OP \-\-phase-awake seconds-seconds +.OP \-\-sleep-phase seconds-seconds +.OP \-\-awake-phase seconds-seconds .OP \-\-layer background|bottom|top|overlay .OP \-\-survive\-close .YS @@ -69,7 +69,7 @@ idle. .RE . .P -\fB\-\-phase-awake\fR \fIseconds-seconds\fR +\fB\-\-awake-phase\fR \fIseconds-seconds\fR .RS Set the duration of how long neko will be awake at a time. Takes a minimum and a maximum amount of seconds, separated by a dash. Actual duration will @@ -77,7 +77,7 @@ be drawn uniformly at random between the two values. Defaults to 120-600. .RE . .P -\fB\-\-phase-sleep\fR \fIseconds-seconds\fR +\fB\-\-sleep-phase\fR \fIseconds-seconds\fR .RS Set the duration of how long neko will sleep at a time. Takes a minimum and a maximum amount of seconds, separated by a dash. Actual duration will diff --git a/wayneko.c b/wayneko.c index cb6199b..e52cdbb 100644 --- a/wayneko.c +++ b/wayneko.c @@ -32,9 +32,9 @@ const char usage[] = " --background-colour 0xRRGGBB[AA]\n" " --outline-colour 0xRRGGBB[AA]\n" " --type neko|inu|random\n" - " --idle-sleep num\n" - " --phase-sleep num-num\n" - " --phase-awake num-num\n" + " --idle-sleep seconds\n" + " --sleep-phase seconds-seconds\n" + " --awake-phase seconds-seconds\n" " --layer background|bottom|top|overlay\n" " --survive-close\n" "\n"; From 5777bf2670ad9d5fb4b348815d20cc7c6b346a8e Mon Sep 17 00:00:00 2001 From: Virt <41426325+VirtCode@users.noreply.github.com> Date: Sun, 9 Mar 2025 00:44:32 +0100 Subject: [PATCH 2/2] add option to set what neko is doing at startup --- wayneko.1 | 7 +++++++ wayneko.c | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/wayneko.1 b/wayneko.1 index e1b151d..dce4503 100644 --- a/wayneko.1 +++ b/wayneko.1 @@ -19,6 +19,7 @@ wayneko \- Neko on Wayland but with phases .OP \-\-idle-sleep seconds .OP \-\-sleep-phase seconds-seconds .OP \-\-awake-phase seconds-seconds +.OP \-\-currently awake|asleep|random .OP \-\-layer background|bottom|top|overlay .OP \-\-survive\-close .YS @@ -85,6 +86,12 @@ be drawn uniformly at random between the two values. Defaults to 450-1800. .RE . .P +\fB\-\-currently\fR \fBawake\fR|\fBasleep\fR|\fBrandom\fR +.RS +Set whether neko is currenly (at startup) awake or asleep. +.RE +. +.P \fB\-\-layer\fR \fBbackground\fR|\fBbottom\fR|\fBtop\fR|\fBoverlay\fR .RS Set the layer for the surface. diff --git a/wayneko.c b/wayneko.c index e52cdbb..b83fe09 100644 --- a/wayneko.c +++ b/wayneko.c @@ -35,6 +35,7 @@ const char usage[] = " --idle-sleep seconds\n" " --sleep-phase seconds-seconds\n" " --awake-phase seconds-seconds\n" + " --currently awake|asleep|random\n" " --layer background|bottom|top|overlay\n" " --survive-close\n" "\n"; @@ -1440,6 +1441,7 @@ int main (int argc, char *argv[]) { char* a = get_argument(argc, argv, &i); char* b = a; + if (a == NULL) return EXIT_FAILURE; while (*b != '-' && *b != 0) b++; if (*b == 0) { @@ -1463,6 +1465,7 @@ int main (int argc, char *argv[]) { char* a = get_argument(argc, argv, &i); char* b = a; + if (a == NULL) return EXIT_FAILURE; while (*b != '-' && *b != 0) b++; if (*b == 0) { @@ -1482,6 +1485,28 @@ int main (int argc, char *argv[]) return EXIT_FAILURE; } } + else if ( strcmp(argv[i], "--currently") == 0 ) + { + const char *t = get_argument(argc, argv, &i); + if ( t == NULL ) + return EXIT_FAILURE; + + /* yes, the phases are swapped because the first thing that will happen is a phase change */ + if ( strcmp(t, "awake") == 0 ) + current_phase = PHASE_SLEEP; + else if ( strcmp(t, "asleep") == 0 ) + current_phase = PHASE_AWAKE; + else if ( strcmp(t, "random") == 0 ) + current_phase = rand() % 2 == 0 ? PHASE_SLEEP : PHASE_AWAKE; + else + { + fprintf(stderr, "ERROR: Unknown argument '%s' for flag '--currently'.\n", t); + return EXIT_FAILURE; + } + + if (current_phase == PHASE_AWAKE) + current_neko = NEKO_SLEEP_1; + } else { fprintf(stderr, "ERROR: Unknown option: %s\n", argv[i]);