Compare commits

..

2 commits

Author SHA1 Message Date
5777bf2670 add option to set what neko is doing at startup 2025-03-09 00:44:32 +01:00
d3ce51a8ba oops documentation is hard 2025-03-09 00:34:07 +01:00
2 changed files with 39 additions and 7 deletions

View file

@ -17,8 +17,9 @@ 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 \-\-currently awake|asleep|random
.OP \-\-layer background|bottom|top|overlay
.OP \-\-survive\-close
.YS
@ -69,7 +70,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 +78,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
@ -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.

View file

@ -32,9 +32,10 @@ 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"
" --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]);