#include "conf.h"
#include "shl_dlist.h"
+enum kmscon_conf_gpu_selection {
+ KMSCON_GPU_ALL,
+ KMSCON_GPU_AUX,
+ KMSCON_GPU_PRIMARY,
+};
+
struct kmscon_conf_t {
+ /* header information */
+ bool seat_config;
+
/* General Options */
/* show help/usage information */
bool help;
bool debug;
/* disable notices and warnings */
bool silent;
+ /* config directory name */
+ char *configdir;
+ /* listen mode */
+ bool listen;
/* Seat Options */
- /* VT number to run on on seat0 */
+ /* VT number to run on */
char *vt;
/* enter new VT directly */
bool switchvt;
/* Session Options */
/* sessions */
unsigned int session_max;
+ /* allow keyboard session control */
+ bool session_control;
+ /* run terminal session */
+ bool terminal_session;
/* Terminal Options */
/* custom login process */
char **argv;
/* TERM value */
char *term;
+ /* reset environment */
+ bool reset_env;
/* color palette */
char *palette;
/* terminal scroll-back buffer size */
char *xkb_variant;
/* input KBD options */
char *xkb_options;
+ /* input predefined KBD keymap */
+ char *xkb_keymap;
/* keyboard key-repeat delay */
unsigned int xkb_repeat_delay;
/* keyboard key-repeat rate */
struct conf_grab *grab_page_up;
/* page-down grab */
struct conf_grab *grab_page_down;
+ /* zoom-in grab */
+ struct conf_grab *grab_zoom_in;
+ /* zoom-out grab */
+ struct conf_grab *grab_zoom_out;
/* session-next grab */
struct conf_grab *grab_session_next;
/* session-prev grab */
struct conf_grab *grab_session_prev;
+ /* session-dummy grab */
+ struct conf_grab *grab_session_dummy;
/* session-close grab */
struct conf_grab *grab_session_close;
/* terminal-new grab */
bool drm;
/* use 3D hardware-acceleration if available */
bool hwaccel;
- /* use only primary GPU */
- bool primary_gpu_only;
- /* use all GPUs unconditionally */
- bool all_gpus;
- /* frame-rate limit */
- unsigned int fps;
+ /* gpu selection mode */
+ unsigned int gpus;
/* render engine */
char *render_engine;
- /* print rendering engine timing information */
- bool render_timing;
/* Font Options */
/* font engine */
int kmscon_conf_load_seat(struct conf_ctx *ctx, const struct conf_ctx *main,
const char *seat);
+static inline bool kmscon_conf_is_current_seat(struct kmscon_conf_t *conf)
+{
+ return conf && shl_string_list_is(conf->seats, "current");
+}
+
+static inline bool kmscon_conf_is_all_seats(struct kmscon_conf_t *conf)
+{
+ return conf && shl_string_list_is(conf->seats, "all");
+}
+
+static inline bool kmscon_conf_is_single_seat(struct kmscon_conf_t *conf)
+{
+ return conf && !kmscon_conf_is_all_seats(conf) &&
+ shl_string_list_count(conf->seats, true) == 1;
+}
+
#endif /* KMSCON_MAIN_H */