summaryrefslogtreecommitdiffstats
path: root/x11vnc/options.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/options.c')
-rw-r--r--x11vnc/options.c310
1 files changed, 310 insertions, 0 deletions
diff --git a/x11vnc/options.c b/x11vnc/options.c
new file mode 100644
index 0000000..6646aac
--- /dev/null
+++ b/x11vnc/options.c
@@ -0,0 +1,310 @@
+/* -- options.c -- */
+
+#define _X11VNC_OPTIONS_H
+#include "x11vnc.h"
+
+/*
+ * variables for the command line options
+ */
+int debug = 0;
+
+char *use_dpy = NULL; /* -display */
+char *auth_file = NULL; /* -auth/-xauth */
+char *visual_str = NULL; /* -visual */
+char *logfile = NULL; /* -o, -logfile */
+int logfile_append = 0;
+char *flagfile = NULL; /* -flag */
+char *passwdfile = NULL; /* -passwdfile */
+char *blackout_str = NULL; /* -blackout */
+int blackout_ptr = 0;
+char *clip_str = NULL; /* -clip */
+int use_solid_bg = 0; /* -solid */
+char *solid_str = NULL;
+char *solid_default = "cyan4";
+
+char *wmdt_str = NULL; /* -wmdt */
+
+char *speeds_str = NULL; /* -speeds TBD */
+
+char *rc_rcfile = NULL; /* -rc */
+int rc_rcfile_default = 0;
+int rc_norc = 0;
+int got_norc = 0;
+int opts_bg = 0;
+
+#ifndef VNCSHARED
+int shared = 0; /* share vnc display. */
+#else
+int shared = 1;
+#endif
+#ifndef FOREVER
+int connect_once = 1; /* disconnect after first connection session. */
+#else
+int connect_once = 0;
+#endif
+int got_connect_once = 0;
+int deny_all = 0; /* global locking of new clients */
+#ifndef REMOTE_DEFAULT
+#define REMOTE_DEFAULT 1
+#endif
+int accept_remote_cmds = REMOTE_DEFAULT; /* -noremote */
+int query_default = 0;
+int safe_remote_only = 1; /* -unsafe */
+int priv_remote = 0; /* -privremote */
+int more_safe = 0; /* -safer */
+#ifndef EXTERNAL_COMMANDS
+#define EXTERNAL_COMMANDS 1
+#endif
+#if EXTERNAL_COMMANDS
+int no_external_cmds = 0; /* -nocmds */
+#else
+int no_external_cmds = 1; /* cannot be turned back on. */
+#endif
+int started_as_root = 0;
+int host_lookup = 1;
+char *users_list = NULL; /* -users */
+char *allow_list = NULL; /* for -allow and -localhost */
+char *listen_str = NULL;
+char *allow_once = NULL; /* one time -allow */
+char *accept_cmd = NULL; /* for -accept */
+char *afteraccept_cmd = NULL; /* for -afteraccept */
+char *gone_cmd = NULL; /* for -gone */
+#ifndef VIEWONLY
+#define VIEWONLY 0
+#endif
+int view_only = VIEWONLY; /* clients can only watch. */
+char *allowed_input_view_only = NULL;
+char *allowed_input_normal = NULL;
+char *allowed_input_str = NULL;
+char *viewonly_passwd = NULL; /* view only passwd. */
+char **passwd_list = NULL; /* for -passwdfile */
+int begin_viewonly = -1;
+int inetd = 0; /* spawned from inetd(1) */
+#ifndef FILEXFER
+#define FILEXFER 1
+#endif
+int filexfer = FILEXFER;
+int first_conn_timeout = 0; /* -timeout */
+int flash_cmap = 0; /* follow installed colormaps */
+int shift_cmap = 0; /* ncells < 256 and needs shift of pixel values */
+int force_indexed_color = 0; /* whether to force indexed color for 8bpp */
+int launch_gui = 0; /* -gui */
+
+int use_modifier_tweak = 1; /* use the shift/altgr modifier tweak */
+int use_iso_level3 = 0; /* ISO_Level3_Shift instead of Mode_switch */
+int clear_mods = 0; /* -clear_mods (1) and -clear_keys (2) */
+int nofb = 0; /* do not send any fb updates */
+char *raw_fb_str = NULL; /* used under -rawfb */
+char *pipeinput_str = NULL; /* -pipeinput [tee,reopen,keycodes:]cmd */
+char *pipeinput_opts = NULL;
+FILE *pipeinput_fh = NULL;
+int pipeinput_tee = 0;
+
+unsigned long subwin = 0x0; /* -id, -sid */
+int subwin_wait_mapped = 0;
+
+int debug_xevents = 0; /* -R debug_xevents:1 */
+int debug_xdamage = 0; /* -R debug_xdamage:1 or 2 ... */
+int debug_wireframe = 0;
+int debug_tiles = 0;
+int debug_grabs = 0;
+
+int xtrap_input = 0; /* -xtrap for user input insertion */
+int xinerama = 0; /* -xinerama */
+int xrandr = 0; /* -xrandr */
+char *xrandr_mode = NULL;
+char *pad_geometry = NULL;
+time_t pad_geometry_time = 0;
+int use_snapfb = 0;
+
+int use_xrecord = 0;
+int noxrecord = 0;
+
+char *client_connect = NULL; /* strings for -connect option */
+char *client_connect_file = NULL;
+int vnc_connect = 1; /* -vncconnect option */
+
+int show_cursor = 1; /* show cursor shapes */
+int show_multiple_cursors = 0; /* show X when on root background, etc */
+char *multiple_cursors_mode = NULL;
+int cursor_pos_updates = 1; /* cursor position updates -cursorpos */
+int cursor_shape_updates = 1; /* cursor shape updates -nocursorshape */
+int use_xwarppointer = 0; /* use XWarpPointer instead of XTestFake... */
+int show_dragging = 1; /* process mouse movement events */
+#ifndef WIREFRAME
+#define WIREFRAME 1
+#endif
+int wireframe = WIREFRAME; /* try to emulate wireframe wm moves */
+/* shade,linewidth,percent,T+B+L+R,t1+t2+t3+t4 */
+char *wireframe_str = NULL;
+char *wireframe_copyrect = NULL;
+#ifndef WIREFRAME_COPYRECT
+#define WIREFRAME_COPYRECT 1
+#endif
+#if WIREFRAME_COPYRECT
+char *wireframe_copyrect_default = "always";
+#else
+char *wireframe_copyrect_default = "never";
+#endif
+int wireframe_in_progress = 0;
+
+/* T+B+L+R,tkey+presist_key,tmouse+persist_mouse */
+char *scroll_copyrect_str = NULL;
+#ifndef SCROLL_COPYRECT
+#define SCROLL_COPYRECT 1
+#endif
+char *scroll_copyrect = NULL;
+#if SCROLL_COPYRECT
+#if 1
+char *scroll_copyrect_default = "always"; /* -scrollcopyrect */
+#else
+char *scroll_copyrect_default = "keys";
+#endif
+#else
+char *scroll_copyrect_default = "never";
+#endif
+char *scroll_key_list_str = NULL;
+KeySym *scroll_key_list = NULL;
+
+#ifndef SCALING_COPYRECT
+#define SCALING_COPYRECT 1
+#endif
+int scaling_copyrect0 = SCALING_COPYRECT;
+int scaling_copyrect = SCALING_COPYRECT;
+
+int scrollcopyrect_min_area = 60000; /* minimum rectangle area */
+int debug_scroll = 0;
+double pointer_flush_delay = 0.0;
+double last_scroll_event = 0.0;
+int max_scroll_keyrate = 0;
+double max_keyrepeat_time = 0.0;
+char *max_keyrepeat_str = NULL;
+char *max_keyrepeat_str0 = "4-20";
+int max_keyrepeat_lo = 1, max_keyrepeat_hi = 40;
+
+char **scroll_good_all = NULL;
+char **scroll_good_key = NULL;
+char **scroll_good_mouse = NULL;
+char *scroll_good_str = NULL;
+char *scroll_good_str0 = "##Nomatch";
+/* "##Firefox-bin," */
+/* "##Gnome-terminal," */
+/* "##XTerm", */
+
+char **scroll_skip_all = NULL;
+char **scroll_skip_key = NULL;
+char **scroll_skip_mouse = NULL;
+char *scroll_skip_str = NULL;
+char *scroll_skip_str0 = "##Soffice.bin,##StarOffice";
+/* "##Konsole," * no problems, known heuristics do not work */
+
+char **scroll_term = NULL;
+char *scroll_term_str = NULL;
+char *scroll_term_str0 = "term";
+
+char* screen_fixup_str = NULL;
+double screen_fixup_V = 0.0;
+double screen_fixup_C = 0.0;
+double screen_fixup_X = 0.0;
+
+#ifndef NOREPEAT
+#define NOREPEAT 1
+#endif
+int no_autorepeat = NOREPEAT; /* turn off autorepeat with clients */
+int no_repeat_countdown = 2;
+int watch_bell = 1; /* watch for the bell using XKEYBOARD */
+int sound_bell = 1; /* actually send it */
+int xkbcompat = 0; /* ignore XKEYBOARD extension */
+int use_xkb_modtweak = 0; /* -xkb */
+#ifndef SKIPDUPS
+#define SKIPDUPS 0
+#endif
+int skip_duplicate_key_events = SKIPDUPS;
+char *skip_keycodes = NULL;
+int sloppy_keys = 0;
+#ifndef ADDKEYSYMS
+#define ADDKEYSYMS 1
+#endif
+int add_keysyms = ADDKEYSYMS; /* automatically add keysyms to X server */
+
+char *remap_file = NULL; /* -remap */
+char *pointer_remap = NULL;
+/* use the various ways of updating pointer */
+#ifndef POINTER_MODE_DEFAULT
+#define POINTER_MODE_DEFAULT 2
+#endif
+int pointer_mode = POINTER_MODE_DEFAULT;
+int pointer_mode_max = 4;
+int single_copytile = 0; /* use the old way copy_tiles() */
+int single_copytile_orig = 0;
+int single_copytile_count = 0;
+int tile_shm_count = 0;
+
+int using_shm = 1; /* whether mit-shm is used */
+int flip_byte_order = 0; /* sometimes needed when using_shm = 0 */
+/*
+ * waitms is the msec to wait between screen polls. Not too old h/w shows
+ * poll times of 10-35ms, so maybe this value cuts the idle load by 2 or so.
+ */
+int waitms = 30;
+double wait_ui = 2.0;
+double slow_fb = 0.0;
+int wait_bog = 1;
+int defer_update = 30; /* deferUpdateTime ms to wait before sends. */
+int got_defer = 0;
+int got_deferupdate = 0;
+
+int screen_blank = 60; /* number of seconds of no activity to throttle */
+ /* down the screen polls. zero to disable. */
+int no_fbu_blank = 30; /* nap if no client updates in this many secs. */
+int take_naps = 1; /* -nap/-nonap */
+int naptile = 4; /* tile change threshold per poll to take a nap */
+int napfac = 4; /* time = napfac*waitms, cut load with extra waits */
+int napmax = 1500; /* longest nap in ms. */
+int ui_skip = 10; /* see watchloop. negative means ignore input */
+
+int watch_selection = 1; /* normal selection/cutbuffer maintenance */
+int watch_primary = 1; /* more dicey, poll for changes in PRIMARY */
+char *sel_direction = NULL; /* "send" or "recv" for one-way */
+
+char *sigpipe = NULL; /* skip, ignore, exit */
+
+/* visual stuff for -visual override or -overlay */
+VisualID visual_id = (VisualID) 0;
+int visual_depth = 0;
+
+/* for -overlay mode on Solaris/IRIX. X server draws cursor correctly. */
+int overlay = 0;
+int overlay_cursor = 1;
+
+/* tile heuristics: */
+double fs_frac = 0.75; /* threshold tile fraction to do fullscreen updates. */
+int tile_fuzz = 2; /* tolerance for suspecting changed tiles touching */
+ /* a known changed tile. */
+int grow_fill = 3; /* do the grow islands heuristic with this width. */
+int gaps_fill = 4; /* do a final pass to try to fill gaps between tiles. */
+
+int debug_pointer = 0;
+int debug_keyboard = 0;
+
+int quiet = 0;
+
+/* threaded vs. non-threaded (default) */
+#if LIBVNCSERVER_HAVE_LIBPTHREAD && defined(X11VNC_THREADED)
+int use_threads = 1;
+#else
+int use_threads = 0;
+#endif
+
+/* info about command line opts */
+int got_rfbport = 0;
+int got_alwaysshared = 0;
+int got_nevershared = 0;
+int got_cursorpos = 0;
+int got_pointer_mode = -1;
+int got_noviewonly = 0;
+int got_wirecopyrect = 0;
+int got_scrollcopyrect = 0;
+int got_noxkb = 0;
+int got_nomodtweak = 0;
+
OpenPOWER on IntegriCloud