mirror of
https://git.sr.ht/~leon_plickat/wayneko
synced 2025-09-19 16:03:22 +02:00
Add sleepiness options
This commit is contained in:
parent
a9bce5e10c
commit
6536ec2ff3
2 changed files with 46 additions and 2 deletions
17
wayneko.1
17
wayneko.1
|
@ -17,6 +17,8 @@ wayneko \- Neko on Wayland
|
|||
.OP \-\-outline\-colour 0xRRGGBB[AA]
|
||||
.OP \-\-type neko|inu|random
|
||||
.OP \-\-idle-sleep seconds
|
||||
.OP \-\-sleepiness num
|
||||
.OP \-\-sleepiness-night num
|
||||
.OP \-\-layer background|bottom|top|overlay
|
||||
.OP \-\-follow\-pointer true|false
|
||||
.OP \-\-survive\-close
|
||||
|
@ -68,6 +70,21 @@ idle.
|
|||
.RE
|
||||
.
|
||||
.P
|
||||
\fB\-\-sleepiness\fR \fInum\fR
|
||||
.RS
|
||||
Set neko's sleepiness as an integer (greater than 0). Higher values make neko
|
||||
more sleepy. Defaults to 4.
|
||||
.RE
|
||||
.
|
||||
.P
|
||||
\fB\-\-sleepiness-night\fR \fInum\fR
|
||||
.RS
|
||||
Set neko's sleepiness at night as an integer (greater than 0). Higher values
|
||||
make neko more sleepy. This setting acts as an additional sleepiness on top of
|
||||
the normal sleepiness. Defaults to 5.
|
||||
.RE
|
||||
.
|
||||
.P
|
||||
\fB\-\-layer\fR \fBbackground\fR|\fBbottom\fR|\fBtop\fR|\fBoverlay\fR
|
||||
.RS
|
||||
Set the layer for the surface.
|
||||
|
|
31
wayneko.c
31
wayneko.c
|
@ -81,6 +81,9 @@ enum zwlr_layer_shell_v1_layer layer = ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM;
|
|||
struct ext_idle_notifier_v1 *idle_notifier = NULL;
|
||||
uint32_t neko_idle_timeout_ms = 180000; /* 3 minutes. */
|
||||
|
||||
int sleepiness = 4;
|
||||
int sleepiness_night = 5;
|
||||
|
||||
struct Seat
|
||||
{
|
||||
struct wl_list link;
|
||||
|
@ -919,7 +922,7 @@ static bool animation_next_state_normal (void)
|
|||
* If the neko is already awake, slightly higher chance to stay awake.
|
||||
*/
|
||||
const bool neko_is_sleeping = current_neko == NEKO_SLEEP_1 || current_neko == NEKO_SLEEP_2;
|
||||
if ( animtation_neko_wants_sleep() && (( neko_is_sleeping && rand() % 5 != 0 ) || ( !neko_is_sleeping && rand() % 2 != 0 )) )
|
||||
if ( animtation_neko_wants_sleep() && (( neko_is_sleeping && rand() % sleepiness_night != 0 ) || ( !neko_is_sleeping && rand() % 2 != 0 )) )
|
||||
{
|
||||
switch (current_neko)
|
||||
{
|
||||
|
@ -1008,7 +1011,7 @@ static bool animation_next_state_normal (void)
|
|||
|
||||
case NEKO_SLEEP_1:
|
||||
case NEKO_SLEEP_2:
|
||||
if ( rand() % 4 == 0 )
|
||||
if ( rand() % sleepiness == 0 )
|
||||
{
|
||||
if ( rand() % 2 == 0 )
|
||||
animation_neko_do_shock();
|
||||
|
@ -1429,6 +1432,30 @@ int main (int argc, char *argv[])
|
|||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
else if ( strcmp(argv[i], "--sleepiness") == 0 )
|
||||
{
|
||||
const char *a = get_argument(argc, argv, &i);
|
||||
int i = atoi(a);
|
||||
if (i != 0)
|
||||
sleepiness = abs(i) + 1;
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "ERROR: Invalid argument '%s' for flag '--sleepiness'.\n", a);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
else if ( strcmp(argv[i], "--sleepiness-night") == 0 )
|
||||
{
|
||||
const char *a = get_argument(argc, argv, &i);
|
||||
int i = atoi(a);
|
||||
if (i != 0)
|
||||
sleepiness_night = abs(i) + 1;
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "ERROR: Invalid argument '%s' for flag '--sleepiness-night'.\n", a);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unknown option: %s\n", argv[i]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue