Files
riverguile/src/seat.h
2025-03-18 10:03:47 +00:00

41 lines
802 B
C

#ifndef RIVERGUILE_SEAT_H
#define RIVERGUILE_SEAT_H
#include <stdbool.h>
#include <wayland-client.h>
#include <libguile.h>
#include "river-status-unstable-v1.h"
struct SeatStatus {
struct wl_output *focused_output;
char *focused_view_title;
char *mode;
};
struct Seat
{
struct wl_list link;
struct wl_seat *wl_seat;
struct zriver_seat_status_v1 *status_monitor;
uint32_t name;
struct wl_list idles;
struct SeatStatus status;
};
struct Idle
{
struct Seat *seat;
struct wl_list link;
struct ext_idle_notification_v1 *idle_notification;
SCM handler;
uint32_t ms;
};
struct Seat *seat_create (struct wl_seat *wl_seat, uint32_t name);
void seat_status_init(struct Seat *seat);
void seat_destroy (struct Seat *seat);
bool seat_add_idle (struct Seat *seat, SCM proc, uint32_t ms);
#endif