kmscon: reorganize configuration items

This just rearranges all options so they are logically grouped and in the
same order at all places. It also changes the internal variable for
"--fbdev" from "use_fbdev" to "fbdev" so all variables have the same name
as the option-names.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
David Herrmann 2012-10-18 13:45:49 +02:00
parent 18b0011d55
commit 35d7cc33ec
3 changed files with 86 additions and 56 deletions

View File

@ -57,7 +57,7 @@ static void print_help()
"\t%1$s -h [options]\n"
"\t%1$s -l [options] -- /bin/sh [sh-arguments]\n"
"\n"
"You can prefix boolean options with \"no-\" to negate it. If an argument is\n"
"You can prefix boolean options with \"no-\" to negate them. If an argument is\n"
"given multiple times, only the last argument matters if not otherwise stated.\n"
"\n"
"General Options:\n"
@ -65,11 +65,16 @@ static void print_help()
"\t-v, --verbose [off] Print verbose messages\n"
"\t --debug [off] Enable debug mode\n"
"\t --silent [off] Suppress notices and warnings\n"
"\t-s, --switchvt [off] Automatically switch to VT\n"
"\n"
"Seat Options:\n"
"\t --vt <vt-number> [auto] Select which VT to run on on seat0\n"
"\t-s, --switchvt [off] Automatically switch to VT\n"
"\t --seats <list,of,seats> [seat0] Select seats or pass 'all' to make\n"
"\t kmscon run on all seats\n"
"\n"
"Session Options:\n"
"\t --session-max <max> [50] Maximum number of sessions\n"
"\n"
"Terminal Options:\n"
"\t-l, --login [/bin/sh]\n"
"\t Start the given login process instead\n"
@ -86,15 +91,7 @@ static void print_help()
"\t --sb-size <num> [1000]\n"
"\t Size of the scrollback-buffer in lines\n"
"\n"
"Video Options:\n"
"\t --fbdev [off] Use fbdev instead of DRM\n"
"\t --dumb [off] Use dumb DRM instead of hardware-\n"
"\t accelerated DRM devices\n"
"\t --fps [50] Limit frame-rate\n"
"\t --render-engine <eng> [-] Console renderer\n"
"\t --render-timing [off] Print renderer timing information\n"
"\n"
"Input Device Options:\n"
"Input Options:\n"
"\t --xkb-layout <layout> [us] Set XkbLayout for input devices\n"
"\t --xkb-variant <variant> [-] Set XkbVariant for input devices\n"
"\t --xkb-options <options> [-] Set XkbOptions for input devices\n"
@ -103,6 +100,7 @@ static void print_help()
"\t --xkb-repeat-rate <msecs> [50]\n"
"\t Delay between two key-repeats in ms\n"
"\n"
"Grabs / Keyboard-Shortcuts:\n"
"\t --grab-scroll-up <grab> [<Shift>Up]\n"
"\t Shortcut to scroll up\n"
"\t --grab-scroll-down <grab> [<Shift>Down]\n"
@ -120,8 +118,13 @@ static void print_help()
"\t --grab-terminal-new <grab> [<Ctrl><Alt>Return]\n"
"\t Create new terminal session\n"
"\n"
"Session Options:\n"
"\t --session-max <max> [50] Maximum number of sessions\n"
"Video Options:\n"
"\t --fbdev [off] Use fbdev instead of DRM\n"
"\t --dumb [off] Use dumb DRM instead of hardware-\n"
"\t accelerated DRM devices\n"
"\t --fps [50] Limit frame-rate\n"
"\t --render-engine <eng> [-] Console renderer\n"
"\t --render-timing [off] Print renderer timing information\n"
"\n"
"Font Options:\n"
"\t --font-engine <engine> [pango]\n"
@ -269,21 +272,34 @@ static struct conf_grab def_grab_terminal_new =
CONF_SINGLE_GRAB(SHL_CONTROL_MASK | SHL_ALT_MASK, XKB_KEY_Return);
struct conf_option options[] = {
/* Global Options */
CONF_OPTION_BOOL('h', "help", aftercheck_help, &kmscon_conf.help, false),
CONF_OPTION_BOOL('v', "verbose", NULL, &kmscon_conf.verbose, false),
CONF_OPTION_BOOL(0, "debug", aftercheck_debug, &kmscon_conf.debug, false),
CONF_OPTION_BOOL(0, "silent", NULL, &kmscon_conf.silent, false),
CONF_OPTION_BOOL(0, "fbdev", NULL, &kmscon_conf.use_fbdev, false),
CONF_OPTION_BOOL(0, "dumb", NULL, &kmscon_conf.dumb, false),
CONF_OPTION_UINT(0, "fps", NULL, &kmscon_conf.fps, 50),
CONF_OPTION_STRING(0, "render-engine", NULL, &kmscon_conf.render_engine, NULL),
CONF_OPTION_BOOL(0, "render-timing", NULL, &kmscon_conf.render_timing, false),
/* Seat Options */
CONF_OPTION(0, 0, "vt", &conf_vt, NULL, &kmscon_conf.vt, NULL),
CONF_OPTION_BOOL('s', "switchvt", NULL, &kmscon_conf.switchvt, false),
CONF_OPTION_STRING_LIST(0, "seats", aftercheck_seats, &kmscon_conf.seats, def_seats),
/* Session Options */
CONF_OPTION_UINT(0, "session-max", NULL, &kmscon_conf.session_max, 50),
/* Terminal Options */
CONF_OPTION_BOOL('l', "login", aftercheck_login, &kmscon_conf.login, false),
CONF_OPTION_STRING('t', "term", NULL, &kmscon_conf.term, "xterm-256color"),
CONF_OPTION_STRING(0, "palette", NULL, &kmscon_conf.palette, NULL),
CONF_OPTION_UINT(0, "sb-size", NULL, &kmscon_conf.sb_size, 1000),
/* Input Options */
CONF_OPTION_STRING(0, "xkb-layout", NULL, &kmscon_conf.xkb_layout, "us"),
CONF_OPTION_STRING(0, "xkb-variant", NULL, &kmscon_conf.xkb_variant, ""),
CONF_OPTION_STRING(0, "xkb-options", NULL, &kmscon_conf.xkb_options, ""),
CONF_OPTION_UINT(0, "xkb-repeat-delay", NULL, &kmscon_conf.xkb_repeat_delay, 250),
CONF_OPTION_UINT(0, "xkb-repeat-rate", NULL, &kmscon_conf.xkb_repeat_rate, 50),
/* Grabs / Keyboard-Shortcuts */
CONF_OPTION_GRAB(0, "grab-scroll-up", NULL, &kmscon_conf.grab_scroll_up, &def_grab_scroll_up),
CONF_OPTION_GRAB(0, "grab-scroll-down", NULL, &kmscon_conf.grab_scroll_down, &def_grab_scroll_down),
CONF_OPTION_GRAB(0, "grab-page-up", NULL, &kmscon_conf.grab_page_up, &def_grab_page_up),
@ -292,17 +308,19 @@ struct conf_option options[] = {
CONF_OPTION_GRAB(0, "grab-session-prev", NULL, &kmscon_conf.grab_session_prev, &def_grab_session_prev),
CONF_OPTION_GRAB(0, "grab-session-close", NULL, &kmscon_conf.grab_session_close, &def_grab_session_close),
CONF_OPTION_GRAB(0, "grab-terminal-new", NULL, &kmscon_conf.grab_terminal_new, &def_grab_terminal_new),
CONF_OPTION_STRING(0, "xkb-layout", NULL, &kmscon_conf.xkb_layout, "us"),
CONF_OPTION_STRING(0, "xkb-variant", NULL, &kmscon_conf.xkb_variant, ""),
CONF_OPTION_STRING(0, "xkb-options", NULL, &kmscon_conf.xkb_options, ""),
CONF_OPTION_UINT(0, "xkb-repeat-delay", NULL, &kmscon_conf.xkb_repeat_delay, 250),
CONF_OPTION_UINT(0, "xkb-repeat-rate", NULL, &kmscon_conf.xkb_repeat_rate, 50),
/* Video Options */
CONF_OPTION_BOOL(0, "fbdev", NULL, &kmscon_conf.fbdev, false),
CONF_OPTION_BOOL(0, "dumb", NULL, &kmscon_conf.dumb, false),
CONF_OPTION_UINT(0, "fps", NULL, &kmscon_conf.fps, 50),
CONF_OPTION_STRING(0, "render-engine", NULL, &kmscon_conf.render_engine, NULL),
CONF_OPTION_BOOL(0, "render-timing", NULL, &kmscon_conf.render_timing, false),
/* Font Options */
CONF_OPTION_STRING(0, "font-engine", NULL, &kmscon_conf.font_engine, "pango"),
CONF_OPTION_UINT(0, "font-size", NULL, &kmscon_conf.font_size, 12),
CONF_OPTION_STRING(0, "font-name", NULL, &kmscon_conf.font_name, "monospace"),
CONF_OPTION_UINT(0, "font-dpi", NULL, &kmscon_conf.font_ppi, 96),
CONF_OPTION_UINT(0, "session-max", NULL, &kmscon_conf.session_max, 50),
CONF_OPTION_STRING_LIST(0, "seats", aftercheck_seats, &kmscon_conf.seats, def_seats),
};
int kmscon_load_config(int argc, char **argv)

View File

@ -36,43 +36,57 @@
#include "conf.h"
struct kmscon_conf_t {
/* General Options */
/* show help/usage information */
bool help;
/* exit application after parsing options */
bool exit;
/* enable debug messages */
bool debug;
/* enable verbose info messages */
bool verbose;
/* enable debug messages */
bool debug;
/* disable notices and warnings */
bool silent;
/* Seat Options */
/* VT number to run on on seat0 */
char *vt;
/* enter new VT directly */
bool switchvt;
/* use framebuffers instead of DRM */
bool use_fbdev;
/* use dumb DRM devices */
bool dumb;
/* render engine */
char *render_engine;
/* seats */
char **seats;
/* true if \seats is "all" */
bool all_seats;
/* input KBD layout */
char *xkb_layout;
char *xkb_variant;
char *xkb_options;
unsigned int xkb_repeat_delay;
unsigned int xkb_repeat_rate;
/* Session Options */
/* sessions */
unsigned int session_max;
/* TERM value */
char *term;
/* Terminal Options */
/* custom login process */
bool login;
/* argv for login process */
char **argv;
/* TERM value */
char *term;
/* color palette */
char *palette;
/* terminal scroll-back buffer size */
unsigned int sb_size;
/* Input Options */
/* input KBD layout */
char *xkb_layout;
/* input KBD variant */
char *xkb_variant;
/* input KBD options */
char *xkb_options;
/* keyboard key-repeat delay */
unsigned int xkb_repeat_delay;
/* keyboard key-repeat rate */
unsigned int xkb_repeat_rate;
/* Grabs / Keyboard-Shortcuts */
/* scroll-up grab */
struct conf_grab *grab_scroll_up;
/* scroll-down grab */
@ -90,13 +104,19 @@ struct kmscon_conf_t {
/* terminal-new grab */
struct conf_grab *grab_terminal_new;
/* seats */
char **seats;
bool all_seats;
/* sessions */
unsigned int session_max;
/* Video Options */
/* use framebuffers instead of DRM */
bool fbdev;
/* use dumb DRM devices */
bool dumb;
/* frame-rate limit */
unsigned int fps;
/* render engine */
char *render_engine;
/* print rendering engine timing information */
bool render_timing;
/* Font Options */
/* font engine */
char *font_engine;
/* font size */
@ -105,14 +125,6 @@ struct kmscon_conf_t {
char *font_name;
/* font ppi (overrides per monitor PPI) */
unsigned int font_ppi;
/* color palette */
char *palette;
/* frame-rate limit */
unsigned int fps;
/* print rendering engine timing information */
bool render_timing;
};
extern struct kmscon_conf_t kmscon_conf;

View File

@ -202,7 +202,7 @@ static int app_seat_add_video(struct app_seat *seat,
unsigned int mode;
struct app_video *vid;
if (kmscon_conf.use_fbdev) {
if (kmscon_conf.fbdev) {
if (type != UTERM_MONITOR_FBDEV &&
type != UTERM_MONITOR_FBDEV_DRM) {
log_info("ignoring video device %s on seat %s as it is not an fbdev device",