From 9b121447b9355b5262d4cd17794f01bef7e54c6b Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Thu, 20 Dec 2018 23:42:38 +0000 Subject: [PATCH] Remove a couple of unwanted options * -d: because the standard way is to use $DISPLAY * no-name-pixmap: undocumented debugging option * -S: debugging option, not very useful Signed-off-by: Yuxuan Shui --- man/compton.1.asciidoc | 6 ------ src/argparse.c | 47 +++++++++++++++--------------------------- src/common.h | 9 -------- src/compton.c | 35 +++---------------------------- src/dbus.c | 18 ++++++++++++---- src/dbus.h | 2 +- 6 files changed, 35 insertions(+), 82 deletions(-) diff --git a/man/compton.1.asciidoc b/man/compton.1.asciidoc index 7d48a43..028a67d 100644 --- a/man/compton.1.asciidoc +++ b/man/compton.1.asciidoc @@ -22,9 +22,6 @@ OPTIONS *-h*, *--help*:: Get the usage text embedded in program code, which may be more up-to-date than this man page. -*-d* 'DISPLAY':: - Display to be managed. - *-r*, *--shadow-radius*='RADIUS':: The blur radius for shadows, in pixels. (defaults to 12) @@ -73,9 +70,6 @@ OPTIONS *-b*, *--daemon*:: Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. -*-S*:: - Enable synchronous X operation (for debugging). - *--log-level*:: Set the log level. Possible values are "TRACE", "DEBUG", "INFO", "WARN", "ERROR", in increasing level of importance. Case doesn't matter. diff --git a/src/argparse.c b/src/argparse.c index e7ad3c7..5e55813 100644 --- a/src/argparse.c +++ b/src/argparse.c @@ -23,9 +23,6 @@ static attr_noret void usage(int ret) { "usage: compton [options]\n" "Options:\n" "\n" - "-d display\n" - " Which display should be managed.\n" - "\n" "-r radius\n" " The blur radius for shadows. (default 12)\n" "\n" @@ -78,9 +75,6 @@ static attr_noret void usage(int ret) { "-b\n" " Daemonize process.\n" "\n" - "-S\n" - " Enable synchronous operation (for debugging).\n" - "\n" "--show-all-xerrors\n" " Show all X errors (for debugging).\n" "\n" @@ -482,18 +476,17 @@ void get_cfg(session_t *ps, int argc, char *const *argv, bool first_pass) { (o = getopt_long(argc, argv, shortopts, longopts, &longopt_idx))) { if (256 == o) ps->o.config_file = strdup(optarg); - else if ('d' == o) - ps->o.display = strdup(optarg); - else if ('S' == o) - ps->o.synchronize = true; - else if (314 == o) + else if ('d' == o) { + log_warn("-d will be ignored, please use the DISPLAY " + "environment variable"); + } else if (314 == o) ps->o.show_all_xerrors = true; else if (318 == o) { printf("%s\n", COMPTON_VERSION); exit(0); - } else if (320 == o) - ps->o.no_name_pixmap = true; - else if ('?' == o || ':' == o) + } else if (320 == o) { + log_warn("--no-name-pixmap will be ignored"); + } else if ('?' == o || ':' == o) usage(1); } @@ -577,11 +570,9 @@ void get_cfg(session_t *ps, int argc, char *const *argv, bool first_pass) { case 'e': ps->o.frame_opacity = atof(optarg); break; case 'z': log_warn("clear-shadow is removed, shadows are automatically " - "cleared now. " - "If you want to prevent shadow from been cleared under " - "certain types of windows, " - "you can use the \"full-shadow\" per window type " - "option."); + "cleared now. If you want to prevent shadow from been " + "cleared under certain types of windows, you can use " + "the \"full-shadow\" per window type option."); break; case 'n': case 'a': @@ -629,14 +620,12 @@ void get_cfg(session_t *ps, int argc, char *const *argv, bool first_pass) { case 271: // --alpha-step log_warn("--alpha-step has been removed, compton now tries to " - "make use" - " of all alpha values"); + "make use of all alpha values"); break; case 272: log_warn("use of --dbe is deprecated"); break; case 273: log_warn("--paint-on-overlay has been removed, and is enabled " - "when " - "possible"); + "when possible"); break; P_CASEBOOL(274, sw_opti); P_CASEBOOL(275, vsync_aggressive); @@ -717,9 +706,8 @@ void get_cfg(session_t *ps, int argc, char *const *argv, bool first_pass) { case 305: // --shadow-exclude-reg ps->o.shadow_exclude_reg_str = strdup(optarg); - log_warn("--shadow-exclude-reg is deprecated. " - "You are likely better off using --shadow-exclude " - "anyway"); + log_warn("--shadow-exclude-reg is deprecated. You are likely " + "better off using --shadow-exclude anyway"); break; case 306: // --paint-exclude @@ -742,10 +730,9 @@ void get_cfg(session_t *ps, int argc, char *const *argv, bool first_pass) { P_CASEBOOL(316, force_win_blend); case 317: ps->o.glx_fshader_win_str = strdup(optarg); - log_warn("--glx-fshader-win is being deprecated, and might be" - " removed in the future. If you really need this " - "feature, please report" - " an issue to let us know"); + log_warn("--glx-fshader-win is being deprecated, and might be " + "removed in the future. If you really need this " + "feature, please report an issue to let us know"); break; case 321: { enum log_level tmp_level = string_to_log_level(optarg); diff --git a/src/common.h b/src/common.h index 7d50946..fb4e465 100644 --- a/src/common.h +++ b/src/common.h @@ -399,11 +399,6 @@ typedef struct options_t { char *config_file; /// Path to write PID to. char *write_pid_path; - /// The display name we used. NULL means we are using the value of the - /// DISPLAY environment variable. - char *display; - /// Safe representation of display name. - char *display_repr; /// The backend in use. enum backend backend; /// Whether to sync X drawing to avoid certain delay issues with @@ -458,10 +453,6 @@ typedef struct options_t { Window benchmark_wid; /// A list of conditions of windows not to paint. c2_lptr_t *paint_blacklist; - /// Whether to avoid using xcb_composite_name_window_pixmap(), for debugging. - bool no_name_pixmap; - /// Whether to work under synchronized mode for debugging. - bool synchronize; /// Whether to show all X errors. bool show_all_xerrors; /// Whether to avoid acquiring X Selection. diff --git a/src/compton.c b/src/compton.c index 0679fe0..bc28d93 100644 --- a/src/compton.c +++ b/src/compton.c @@ -2569,7 +2569,6 @@ session_init(session_t *ps_old, int argc, char **argv) { .reg_win = None, .o = { .config_file = NULL, - .display = NULL, .backend = BKEND_XRENDER, .glx_no_stencil = false, #ifdef CONFIG_OPENGL @@ -2578,7 +2577,6 @@ session_init(session_t *ps_old, int argc, char **argv) { .mark_wmwin_focused = false, .mark_ovredir_focused = false, .fork_after_register = false, - .synchronize = false, .detect_rounded_corners = false, .resize_damage = 0, .unredir_if_possible = false, @@ -2741,7 +2739,7 @@ session_init(session_t *ps_old, int argc, char **argv) { // Open Display if (!ps->dpy) { - ps->dpy = XOpenDisplay(ps->o.display); + ps->dpy = XOpenDisplay(NULL); if (!ps->dpy) { log_fatal("Can't open display."); exit(1); @@ -2752,9 +2750,6 @@ session_init(session_t *ps_old, int argc, char **argv) { const xcb_query_extension_reply_t *ext_info; XSetErrorHandler(xerror); - if (ps->o.synchronize) { - XSynchronize(ps->dpy, 1); - } ps->scr = DefaultScreen(ps->dpy); ps->root = RootWindow(ps->dpy, ps->scr); @@ -2806,8 +2801,7 @@ session_init(session_t *ps_old, int argc, char **argv) { xcb_composite_query_version(ps->c, XCB_COMPOSITE_MAJOR_VERSION, XCB_COMPOSITE_MINOR_VERSION), NULL); - if (!ps->o.no_name_pixmap - && reply && (reply->major_version > 0 || reply->minor_version >= 2)) { + if (reply && (reply->major_version > 0 || reply->minor_version >= 2)) { ps->has_name_pixmap = true; } free(reply); @@ -2833,27 +2827,6 @@ session_init(session_t *ps_old, int argc, char **argv) { xcb_discard_reply(ps->c, xcb_xfixes_query_version(ps->c, XCB_XFIXES_MAJOR_VERSION, XCB_XFIXES_MINOR_VERSION).sequence); - // Build a safe representation of display name - { - char *display_repr = DisplayString(ps->dpy); - if (!display_repr) - display_repr = "unknown"; - display_repr = strdup(display_repr); - - // Convert all special characters in display_repr name to underscore - { - char *pdisp = display_repr; - - while (*pdisp) { - if (!isalnum(*pdisp)) - *pdisp = '_'; - ++pdisp; - } - } - - ps->o.display_repr = display_repr; - } - // Second pass get_cfg(ps, argc, argv, false); @@ -3002,7 +2975,7 @@ session_init(session_t *ps_old, int argc, char **argv) { // Initialize DBus. We need to do this early, because add_win might call dbus functions if (ps->o.dbus) { #ifdef CONFIG_DBUS - cdbus_init(ps); + cdbus_init(ps, DisplayString(ps->dpy)); if (!ps->dbus_data) { ps->o.dbus = false; } @@ -3160,8 +3133,6 @@ session_destroy(session_t *ps) { free(ps->o.config_file); free(ps->o.write_pid_path); - free(ps->o.display); - free(ps->o.display_repr); free(ps->o.logpath); for (int i = 0; i < MAX_BLUR_PASS; ++i) { free(ps->o.blur_kerns[i]); diff --git a/src/dbus.c b/src/dbus.c index ab4285d..2e3c5ba 100644 --- a/src/dbus.c +++ b/src/dbus.c @@ -85,7 +85,7 @@ cdbus_callback_watch_toggled(DBusWatch *watch, void *data); * Initialize D-Bus connection. */ bool -cdbus_init(session_t *ps) { +cdbus_init(session_t *ps, const char *uniq) { auto cd = cmalloc(struct cdbus_data); cd->dbus_service = NULL; @@ -117,7 +117,18 @@ cdbus_init(session_t *ps) { // Request service name { // Build service name - char *service = mstrjoin3(CDBUS_SERVICE_NAME, ".", ps->o.display_repr); + size_t service_len = strlen(CDBUS_SERVICE_NAME)+strlen(uniq)+2; + char *service = ccalloc(service_len, char); + snprintf(service, service_len, "%s.%s", CDBUS_SERVICE_NAME, uniq); + + // Make a valid dbus name by converting non alphanumeric characters to underscore + char *tmp = service + strlen(CDBUS_SERVICE_NAME)+1; + while (*tmp) { + if (!isalnum(*tmp)) { + *tmp = '_'; + } + tmp++; + } cd->dbus_service = service; // Request for the name @@ -1001,7 +1012,6 @@ cdbus_process_opts_get(session_t *ps, DBusMessage *msg) { } cdbus_m_opts_get_do(config_file, cdbus_reply_string); - cdbus_m_opts_get_do(display_repr, cdbus_reply_string); cdbus_m_opts_get_do(write_pid_path, cdbus_reply_string); cdbus_m_opts_get_do(mark_wmwin_focused, cdbus_reply_bool); cdbus_m_opts_get_do(mark_ovredir_focused, cdbus_reply_bool); @@ -1018,7 +1028,7 @@ cdbus_process_opts_get(session_t *ps, DBusMessage *msg) { cdbus_m_opts_get_do(redirected_force, cdbus_reply_enum); cdbus_m_opts_get_do(stoppaint_force, cdbus_reply_enum); cdbus_m_opts_get_do(logpath, cdbus_reply_string); - cdbus_m_opts_get_do(synchronize, cdbus_reply_bool); + cdbus_m_opts_get_stub(synchronize, cdbus_reply_bool, false); cdbus_m_opts_get_do(refresh_rate, cdbus_reply_int32); cdbus_m_opts_get_do(sw_opti, cdbus_reply_bool); diff --git a/src/dbus.h b/src/dbus.h index c534ac2..d60b47e 100644 --- a/src/dbus.h +++ b/src/dbus.h @@ -26,7 +26,7 @@ static inline const char *cdbus_repr_msgtype(DBusMessage *msg) { /** * Initialize D-Bus connection. */ -bool cdbus_init(session_t *ps); +bool cdbus_init(session_t *ps, const char *uniq_name); /** * Destroy D-Bus connection.