animations added, picom upstreamed yshui/next
This commit is contained in:
@@ -306,6 +306,12 @@ typedef struct options {
|
||||
|
||||
// Enable fading for prev tag
|
||||
bool enable_fading_prev_tag;
|
||||
|
||||
/// A list of conditions of windows to which transparent clipping
|
||||
/// should not apply
|
||||
c2_lptr_t *transparent_clipping_blacklist;
|
||||
|
||||
bool dithered_present;
|
||||
} options_t;
|
||||
|
||||
extern const char *const BACKEND_STRS[NUM_BKEND + 1];
|
||||
|
||||
486
src/options.c
486
src/options.c
@@ -179,6 +179,15 @@ static const struct picom_option picom_options[] = {
|
||||
"you want to attach a debugger to picom"},
|
||||
{"no-ewmh-fullscreen" , no_argument , 803, NULL , "Do not use EWMH to detect fullscreen windows. Reverts to checking if a "
|
||||
"window is fullscreen based only on its size and coordinates."},
|
||||
{"animations" ,no_argument , 804, NULL , "Enable/disable animations."},
|
||||
{"animation-stiffness-in-tag" , required_argument, 805, NULL , "Animation speed in current tag (float)."},
|
||||
{"animation-stiffness-tag-change", required_argument, 806, NULL , "Animation speed when tag changes (change to a new desktop)."},
|
||||
{"animation-dampening" , required_argument, 807, NULL , "Animation dampening ratio (spring dampening as an example)."},
|
||||
{"animation-window-mass" , required_argument, 808, NULL , "Animation window mass (lower mass makes animations bumpy)."},
|
||||
{"animation-clamping" , no_argument , 809, NULL , "Enable/disable animation clamping. Disabling increases performance"},
|
||||
{"animation-for-open-window" , required_argument, 810, NULL , "Set animation for opening window (Check sample.conf for options)."},
|
||||
{"animation-for-transient-window", required_argument, 811, NULL , "Set animation for transient (child) windows."},
|
||||
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -246,375 +255,6 @@ void print_help(const char *help, size_t indent, size_t curr_indent, size_t line
|
||||
* Print usage text.
|
||||
*/
|
||||
static void usage(const char *argv0, int ret) {
|
||||
#define WARNING_DISABLED " (DISABLED AT COMPILE TIME)"
|
||||
static const char *usage_text =
|
||||
"picom (" PICOM_VERSION ")\n"
|
||||
"Please report bugs to https://github.com/yshui/picom\n\n"
|
||||
"usage: %s [options]\n"
|
||||
"Options:\n"
|
||||
"\n"
|
||||
"-r radius\n"
|
||||
" The blur radius for shadows. (default 12)\n"
|
||||
"\n"
|
||||
"-o opacity\n"
|
||||
" The translucency for shadows. (default .75)\n"
|
||||
"\n"
|
||||
"-l left-offset\n"
|
||||
" The left offset for shadows. (default -15)\n"
|
||||
"\n"
|
||||
"-t top-offset\n"
|
||||
" The top offset for shadows. (default -15)\n"
|
||||
"\n"
|
||||
"-I fade-in-step\n"
|
||||
" Opacity change between steps while fading in. (default 0.028)\n"
|
||||
"\n"
|
||||
"-O fade-out-step\n"
|
||||
" Opacity change between steps while fading out. (default 0.03)\n"
|
||||
"\n"
|
||||
"-D fade-delta-time\n"
|
||||
" The time between steps in a fade in milliseconds. (default 10)\n"
|
||||
"\n"
|
||||
"-m opacity\n"
|
||||
" The opacity for menus. (default 1.0)\n"
|
||||
"\n"
|
||||
"-c\n"
|
||||
" Enabled client-side shadows on windows.\n"
|
||||
"\n"
|
||||
"-C\n"
|
||||
" Avoid drawing shadows on dock/panel windows.\n"
|
||||
"\n"
|
||||
"-z\n"
|
||||
" Zero the part of the shadow's mask behind the window.\n"
|
||||
"\n"
|
||||
"-f\n"
|
||||
" Fade windows in/out when opening/closing and when opacity\n"
|
||||
" changes, unless --no-fading-openclose is used.\n"
|
||||
"\n"
|
||||
"-F\n"
|
||||
" Equals to -f. Deprecated.\n"
|
||||
"\n"
|
||||
"--animations\n"
|
||||
" Run animations for window geometry changes (movement and scaling).\n"
|
||||
"\n"
|
||||
"--animation-for-open-window\n"
|
||||
" Which animation to run when opening a window.\n"
|
||||
" Must be one of `none`, `fly-in`, `zoom`,\n"
|
||||
" `slide-down`, `slide-up`, `slide-left`, `slide-right`\n"
|
||||
" (default: none).\n"
|
||||
"\n"
|
||||
"--animation-for-transient-window\n"
|
||||
" Which animation to run when opening a transient window.\n"
|
||||
" Must be one of `none`, `fly-in`, `zoom`,\n"
|
||||
" `slide-down`, `slide-up`, `slide-left`, `slide-right`\n"
|
||||
" (default: none).\n"
|
||||
"\n"
|
||||
"--animation-stiffness\n"
|
||||
" Stiffness (a.k.a. tension) parameter for animation (default: 200.0).\n"
|
||||
"\n"
|
||||
"--animation-dampening\n"
|
||||
" Dampening (a.k.a. friction) parameter for animation (default: 25.0).\n"
|
||||
"\n"
|
||||
"--animation-window-mass\n"
|
||||
" Mass parameter for animation (default: 1.0).\n"
|
||||
"\n"
|
||||
"--animation-clamping\n"
|
||||
" Whether to clamp animations (default: true)\n"
|
||||
"\n"
|
||||
"--animation-exclude condition\n"
|
||||
" Exclude conditions for animation.\n"
|
||||
"\n"
|
||||
"-i opacity\n"
|
||||
" Opacity of inactive windows. (0.1 - 1.0)\n"
|
||||
"\n"
|
||||
"-e opacity\n"
|
||||
" Opacity of window titlebars and borders. (0.1 - 1.0)\n"
|
||||
"\n"
|
||||
"-G\n"
|
||||
" Don't draw shadows on DND windows\n"
|
||||
"\n"
|
||||
"-b\n"
|
||||
" Daemonize process.\n"
|
||||
"\n"
|
||||
"--show-all-xerrors\n"
|
||||
" Show all X errors (for debugging).\n"
|
||||
"\n"
|
||||
"--config path\n"
|
||||
" Look for configuration file at the path. Use /dev/null to avoid\n"
|
||||
" loading configuration file."
|
||||
#ifndef CONFIG_LIBCONFIG
|
||||
WARNING_DISABLED
|
||||
#endif
|
||||
"\n\n"
|
||||
"--write-pid-path path\n"
|
||||
" Write process ID to a file.\n"
|
||||
"\n"
|
||||
"--shadow-color color\n"
|
||||
" Color of shadow, as a hex RGB string (defaults to #000000)\n"
|
||||
"\n"
|
||||
"--shadow-red value\n"
|
||||
" Red color value of shadow (0.0 - 1.0, defaults to 0).\n"
|
||||
"\n"
|
||||
"--shadow-green value\n"
|
||||
" Green color value of shadow (0.0 - 1.0, defaults to 0).\n"
|
||||
"\n"
|
||||
"--shadow-blue value\n"
|
||||
" Blue color value of shadow (0.0 - 1.0, defaults to 0).\n"
|
||||
"\n"
|
||||
"--inactive-opacity-override\n"
|
||||
" Inactive opacity set by -i overrides value of _NET_WM_WINDOW_OPACITY.\n"
|
||||
"\n"
|
||||
"--inactive-dim value\n"
|
||||
" Dim inactive windows. (0.0 - 1.0, defaults to 0)\n"
|
||||
"\n"
|
||||
"--active-opacity opacity\n"
|
||||
" Default opacity for active windows. (0.0 - 1.0)\n"
|
||||
"\n"
|
||||
"--corner-radius value\n"
|
||||
" Sets the radius of rounded window corners. When > 0, the compositor\n"
|
||||
" will round the corners of windows. (defaults to 0).\n"
|
||||
"\n"
|
||||
"--rounded-corners-exclude condition\n"
|
||||
" Exclude conditions for rounded corners.\n"
|
||||
"\n"
|
||||
"--mark-wmwin-focused\n"
|
||||
" Try to detect WM windows and mark them as active.\n"
|
||||
"\n"
|
||||
"--shadow-exclude condition\n"
|
||||
" Exclude conditions for shadows.\n"
|
||||
"\n"
|
||||
"--fade-exclude condition\n"
|
||||
" Exclude conditions for fading.\n"
|
||||
"\n"
|
||||
"--mark-ovredir-focused\n"
|
||||
" Mark windows that have no WM frame as active.\n"
|
||||
"\n"
|
||||
"--no-fading-openclose\n"
|
||||
" Do not fade on window open/close.\n"
|
||||
"\n"
|
||||
"--no-fading-destroyed-argb\n"
|
||||
" Do not fade destroyed ARGB windows with WM frame. Workaround of bugs\n"
|
||||
" in Openbox, Fluxbox, etc.\n"
|
||||
"\n"
|
||||
"--shadow-ignore-shaped\n"
|
||||
" Do not paint shadows on shaped windows. (Deprecated, use\n"
|
||||
" --shadow-exclude \'bounding_shaped\' or\n"
|
||||
" --shadow-exclude \'bounding_shaped && !rounded_corners\' instead.)\n"
|
||||
"\n"
|
||||
"--detect-rounded-corners\n"
|
||||
" Try to detect windows with rounded corners and don't consider\n"
|
||||
" them shaped windows. Affects --shadow-ignore-shaped,\n"
|
||||
" --unredir-if-possible, and possibly others. You need to turn this\n"
|
||||
" on manually if you want to match against rounded_corners in\n"
|
||||
" conditions.\n"
|
||||
"\n"
|
||||
"--detect-client-opacity\n"
|
||||
" Detect _NET_WM_WINDOW_OPACITY on client windows, useful for window\n"
|
||||
" managers not passing _NET_WM_WINDOW_OPACITY of client windows to frame\n"
|
||||
" windows.\n"
|
||||
"\n"
|
||||
"--vsync\n"
|
||||
" Enable VSync\n"
|
||||
"\n"
|
||||
"--use-ewmh-active-win\n"
|
||||
" Use _NET_WM_ACTIVE_WINDOW on the root window to determine which\n"
|
||||
" window is focused instead of using FocusIn/Out events.\n"
|
||||
"\n"
|
||||
"--unredir-if-possible\n"
|
||||
" Unredirect all windows if a full-screen opaque window is\n"
|
||||
" detected, to maximize performance for full-screen windows.\n"
|
||||
"\n"
|
||||
"--unredir-if-possible-delay ms\n"
|
||||
" Delay before unredirecting the window, in milliseconds.\n"
|
||||
" Defaults to 0.\n"
|
||||
"\n"
|
||||
"--unredir-if-possible-exclude condition\n"
|
||||
" Conditions of windows that shouldn't be considered full-screen\n"
|
||||
" for unredirecting screen.\n"
|
||||
"\n"
|
||||
"--focus-exclude condition\n"
|
||||
" Specify a list of conditions of windows that should always be\n"
|
||||
" considered focused.\n"
|
||||
"\n"
|
||||
"--inactive-dim-fixed\n"
|
||||
" Use fixed inactive dim value.\n"
|
||||
"\n"
|
||||
"--max-brightness\n"
|
||||
" Dims windows which average brightness is above this threshold.\n"
|
||||
" Requires --no-use-damage.\n"
|
||||
" Default: 1.0 or no dimming.\n"
|
||||
"\n"
|
||||
"--detect-transient\n"
|
||||
" Use WM_TRANSIENT_FOR to group windows, and consider windows in\n"
|
||||
" the same group focused at the same time.\n"
|
||||
"\n"
|
||||
"--detect-client-leader\n"
|
||||
" Use WM_CLIENT_LEADER to group windows, and consider windows in\n"
|
||||
" the same group focused at the same time. This usually means windows\n"
|
||||
" from the same application will be considered focused or unfocused at\n"
|
||||
" the same time. WM_TRANSIENT_FOR has higher priority if\n"
|
||||
" --detect-transient is enabled, too.\n"
|
||||
"\n"
|
||||
"--blur-method\n"
|
||||
" The algorithm used for background bluring. Available choices are:\n"
|
||||
" 'none' to disable, 'gaussian', 'box' or 'kernel' for custom\n"
|
||||
" convolution blur with --blur-kern.\n"
|
||||
" Note: 'gaussian' and 'box' is not supported by --legacy-backends.\n"
|
||||
"\n"
|
||||
"--blur-size\n"
|
||||
" The radius of the blur kernel for 'box' and 'gaussian' blur method.\n"
|
||||
"\n"
|
||||
"--blur-deviation\n"
|
||||
" The standard deviation for the 'gaussian' blur method.\n"
|
||||
"\n"
|
||||
"--blur-strength\n"
|
||||
" The strength level of the 'dual_kawase' blur method.\n"
|
||||
"\n"
|
||||
"--blur-background\n"
|
||||
" Blur background of semi-transparent / ARGB windows. Bad in\n"
|
||||
" performance. The switch name may change without prior\n"
|
||||
" notifications.\n"
|
||||
"\n"
|
||||
"--blur-background-frame\n"
|
||||
" Blur background of windows when the window frame is not opaque.\n"
|
||||
" Implies --blur-background. Bad in performance. The switch name\n"
|
||||
" may change.\n"
|
||||
"\n"
|
||||
"--blur-background-fixed\n"
|
||||
" Use fixed blur strength instead of adjusting according to window\n"
|
||||
" opacity.\n"
|
||||
"\n"
|
||||
"--blur-kern matrix\n"
|
||||
" Specify the blur convolution kernel, with the following format:\n"
|
||||
" WIDTH,HEIGHT,ELE1,ELE2,ELE3,ELE4,ELE5...\n"
|
||||
" The element in the center must not be included, it will be forever\n"
|
||||
" 1.0 or changing based on opacity, depending on whether you have\n"
|
||||
" --blur-background-fixed.\n"
|
||||
" A 7x7 Gaussian blur kernel looks like:\n"
|
||||
" --blur-kern "
|
||||
"'7,7,0.000003,0.000102,0.000849,0.001723,0.000849,0.000102,0.000003,0."
|
||||
"000102,0.003494,0.029143,0.059106,0.029143,0.003494,0.000102,0.000849,0."
|
||||
"029143,0.243117,0.493069,0.243117,0.029143,0.000849,0.001723,0.059106,0."
|
||||
"493069,0.493069,0.059106,0.001723,0.000849,0.029143,0.243117,0.493069,0."
|
||||
"243117,0.029143,0.000849,0.000102,0.003494,0.029143,0.059106,0.029143,0."
|
||||
"003494,0.000102,0.000003,0.000102,0.000849,0.001723,0.000849,0.000102,0."
|
||||
"000003'\n"
|
||||
" Up to 4 blur kernels may be specified, separated with semicolon, for\n"
|
||||
" multi-pass blur.\n"
|
||||
" May also be one the predefined kernels: 3x3box (default), 5x5box,\n"
|
||||
" 7x7box, 3x3gaussian, 5x5gaussian, 7x7gaussian, 9x9gaussian,\n"
|
||||
" 11x11gaussian.\n"
|
||||
"\n"
|
||||
"--blur-background-exclude condition\n"
|
||||
" Exclude conditions for background blur.\n"
|
||||
"\n"
|
||||
"--resize-damage integer\n"
|
||||
" Resize damaged region by a specific number of pixels. A positive\n"
|
||||
" value enlarges it while a negative one shrinks it. Useful for\n"
|
||||
" fixing the line corruption issues of blur. May or may not\n"
|
||||
" work with --glx-no-stencil. Shrinking doesn't function correctly.\n"
|
||||
"\n"
|
||||
"--invert-color-include condition\n"
|
||||
" Specify a list of conditions of windows that should be painted with\n"
|
||||
" inverted color. Resource-hogging, and is not well tested.\n"
|
||||
"\n"
|
||||
"--opacity-rule opacity:condition\n"
|
||||
" Specify a list of opacity rules, in the format \"PERCENT:PATTERN\",\n"
|
||||
" like \'50:name *= \"Firefox\"'. picom-trans is recommended over\n"
|
||||
" this. Note we do not distinguish 100%% and unset, and we don't make\n"
|
||||
" any guarantee about possible conflicts with other programs that set\n"
|
||||
" _NET_WM_WINDOW_OPACITY on frame or client windows.\n"
|
||||
"\n"
|
||||
"--shadow-exclude-reg geometry\n"
|
||||
" Specify a X geometry that describes the region in which shadow\n"
|
||||
" should not be painted in, such as a dock window region.\n"
|
||||
" Use --shadow-exclude-reg \'x10+0-0\', for example, if the 10 pixels\n"
|
||||
" on the bottom of the screen should not have shadows painted on.\n"
|
||||
"\n"
|
||||
"--clip-shadow-above condition\n"
|
||||
" Specify a list of conditions of windows to not paint a shadow over,\n"
|
||||
" such as a dock window.\n"
|
||||
"\n"
|
||||
"--xinerama-shadow-crop\n"
|
||||
" Crop shadow of a window fully on a particular Xinerama screen to the\n"
|
||||
" screen.\n"
|
||||
"\n"
|
||||
"--backend backend\n"
|
||||
" Choose backend. Possible choices are xrender, glx, and\n"
|
||||
" xr_glx_hybrid."
|
||||
#ifndef CONFIG_OPENGL
|
||||
" (GLX BACKENDS DISABLED AT COMPILE TIME)"
|
||||
#endif
|
||||
"\n\n"
|
||||
"--glx-no-stencil\n"
|
||||
" GLX backend: Avoid using stencil buffer. Might cause issues\n"
|
||||
" when rendering transparent content. My tests show a 15%% performance\n"
|
||||
" boost.\n"
|
||||
"\n"
|
||||
"--glx-no-rebind-pixmap\n"
|
||||
" GLX backend: Avoid rebinding pixmap on window damage. Probably\n"
|
||||
" could improve performance on rapid window content changes, but is\n"
|
||||
" known to break things on some drivers (LLVMpipe, xf86-video-intel,\n"
|
||||
" etc.).\n"
|
||||
"\n"
|
||||
"--no-use-damage\n"
|
||||
" Disable the use of damage information. This cause the whole screen to\n"
|
||||
" be redrawn everytime, instead of the part of the screen that has\n"
|
||||
" actually changed. Potentially degrades the performance, but might fix\n"
|
||||
" some artifacts.\n"
|
||||
"\n"
|
||||
"--xrender-sync-fence\n"
|
||||
" Additionally use X Sync fence to sync clients' draw calls. Needed\n"
|
||||
" on nvidia-drivers with GLX backend for some users.\n"
|
||||
"\n"
|
||||
"--force-win-blend\n"
|
||||
" Force all windows to be painted with blending. Useful if you have a\n"
|
||||
" --glx-fshader-win that could turn opaque pixels transparent.\n"
|
||||
"\n"
|
||||
"--dbus\n"
|
||||
" Enable remote control via D-Bus. See the D-BUS API section in the\n"
|
||||
" man page for more details."
|
||||
#ifndef CONFIG_DBUS
|
||||
WARNING_DISABLED
|
||||
#endif
|
||||
"\n\n"
|
||||
"--benchmark cycles\n"
|
||||
" Benchmark mode. Repeatedly paint until reaching the specified cycles.\n"
|
||||
"\n"
|
||||
"--benchmark-wid window-id\n"
|
||||
" Specify window ID to repaint in benchmark mode. If omitted or is 0,\n"
|
||||
" the whole screen is repainted.\n"
|
||||
"\n"
|
||||
"--monitor-repaint\n"
|
||||
" Highlight the updated area of the screen. For debugging the xrender\n"
|
||||
" backend only.\n"
|
||||
"\n"
|
||||
"--debug-mode\n"
|
||||
" Render into a separate window, and don't take over the screen. Useful\n"
|
||||
" when you want to attach a debugger to picom\n"
|
||||
"\n"
|
||||
"--no-ewmh-fullscreen\n"
|
||||
" Do not use EWMH to detect fullscreen windows. Reverts to checking\n"
|
||||
" if a window is fullscreen based only on its size and coordinates.\n"
|
||||
"\n"
|
||||
"--transparent-clipping\n"
|
||||
" Make transparent windows clip other windows like non-transparent windows\n"
|
||||
" do, instead of blending on top of them\n"
|
||||
"\n"
|
||||
"--transparent-clipping-exclude condition\n"
|
||||
" Specify a list of conditions of windows that should never have\n"
|
||||
" transparent clipping applied. Useful for screenshot tools, where you\n"
|
||||
" need to be able to see through transparent parts of the window.\n"
|
||||
"\n"
|
||||
"--window-shader-fg shader\n"
|
||||
" Specify GLSL fragment shader path for rendering window contents. Does\n"
|
||||
" not work when `--legacy-backends` is enabled.\n"
|
||||
"\n"
|
||||
"--window-shader-fg-rule shader:condition\n"
|
||||
" Specify GLSL fragment shader path for rendering window contents using\n"
|
||||
" patterns. Pattern should be in the format of `SHADER_PATH:PATTERN`,\n"
|
||||
" similar to `--opacity-rule`. `SHADER_PATH` can be \"default\", in which\n"
|
||||
" case the default shader will be used. Does not work when\n"
|
||||
" `--legacy-backends` is enabled.\n";
|
||||
FILE *f = (ret ? stderr : stdout);
|
||||
fprintf(f, "picom (%s)\n", PICOM_VERSION);
|
||||
fprintf(f, "Standalone X11 compositor\n");
|
||||
@@ -671,114 +311,6 @@ static void usage(const char *argv0, int ret) {
|
||||
}
|
||||
|
||||
static const char *shortopts = "D:I:O:r:o:m:l:t:i:e:hscnfFCazGb";
|
||||
static const struct option longopts[] = {
|
||||
{"help", no_argument, NULL, 'h'},
|
||||
{"config", required_argument, NULL, 256},
|
||||
{"shadow-radius", required_argument, NULL, 'r'},
|
||||
{"shadow-opacity", required_argument, NULL, 'o'},
|
||||
{"shadow-offset-x", required_argument, NULL, 'l'},
|
||||
{"shadow-offset-y", required_argument, NULL, 't'},
|
||||
{"fade-in-step", required_argument, NULL, 'I'},
|
||||
{"fade-out-step", required_argument, NULL, 'O'},
|
||||
{"fade-delta", required_argument, NULL, 'D'},
|
||||
{"menu-opacity", required_argument, NULL, 'm'},
|
||||
{"shadow", no_argument, NULL, 'c'},
|
||||
{"clear-shadow", no_argument, NULL, 'z'},
|
||||
{"fading", no_argument, NULL, 'f'},
|
||||
{"inactive-opacity", required_argument, NULL, 'i'},
|
||||
{"frame-opacity", required_argument, NULL, 'e'},
|
||||
{"daemon", no_argument, NULL, 'b'},
|
||||
{"shadow-red", required_argument, NULL, 257},
|
||||
{"shadow-green", required_argument, NULL, 258},
|
||||
{"shadow-blue", required_argument, NULL, 259},
|
||||
{"inactive-opacity-override", no_argument, NULL, 260},
|
||||
{"inactive-dim", required_argument, NULL, 261},
|
||||
{"mark-wmwin-focused", no_argument, NULL, 262},
|
||||
{"shadow-exclude", required_argument, NULL, 263},
|
||||
{"mark-ovredir-focused", no_argument, NULL, 264},
|
||||
{"no-fading-openclose", no_argument, NULL, 265},
|
||||
{"shadow-ignore-shaped", no_argument, NULL, 266},
|
||||
{"detect-rounded-corners", no_argument, NULL, 267},
|
||||
{"detect-client-opacity", no_argument, NULL, 268},
|
||||
{"refresh-rate", required_argument, NULL, 269},
|
||||
{"vsync", optional_argument, NULL, 270},
|
||||
{"sw-opti", no_argument, NULL, 274},
|
||||
{"vsync-aggressive", no_argument, NULL, 275},
|
||||
{"use-ewmh-active-win", no_argument, NULL, 276},
|
||||
{"respect-prop-shadow", no_argument, NULL, 277},
|
||||
{"unredir-if-possible", no_argument, NULL, 278},
|
||||
{"focus-exclude", required_argument, NULL, 279},
|
||||
{"inactive-dim-fixed", no_argument, NULL, 280},
|
||||
{"detect-transient", no_argument, NULL, 281},
|
||||
{"detect-client-leader", no_argument, NULL, 282},
|
||||
{"blur-background", no_argument, NULL, 283},
|
||||
{"blur-background-frame", no_argument, NULL, 284},
|
||||
{"blur-background-fixed", no_argument, NULL, 285},
|
||||
{"dbus", no_argument, NULL, 286},
|
||||
{"logpath", required_argument, NULL, 287},
|
||||
{"invert-color-include", required_argument, NULL, 288},
|
||||
{"opengl", no_argument, NULL, 289},
|
||||
{"backend", required_argument, NULL, 290},
|
||||
{"glx-no-stencil", no_argument, NULL, 291},
|
||||
{"benchmark", required_argument, NULL, 293},
|
||||
{"benchmark-wid", required_argument, NULL, 294},
|
||||
{"blur-background-exclude", required_argument, NULL, 296},
|
||||
{"active-opacity", required_argument, NULL, 297},
|
||||
{"glx-no-rebind-pixmap", no_argument, NULL, 298},
|
||||
{"glx-swap-method", required_argument, NULL, 299},
|
||||
{"fade-exclude", required_argument, NULL, 300},
|
||||
{"blur-kern", required_argument, NULL, 301},
|
||||
{"resize-damage", required_argument, NULL, 302},
|
||||
{"glx-use-gpushader4", no_argument, NULL, 303},
|
||||
{"opacity-rule", required_argument, NULL, 304},
|
||||
{"shadow-exclude-reg", required_argument, NULL, 305},
|
||||
{"paint-exclude", required_argument, NULL, 306},
|
||||
{"xinerama-shadow-crop", no_argument, NULL, 307},
|
||||
{"unredir-if-possible-exclude", required_argument, NULL, 308},
|
||||
{"unredir-if-possible-delay", required_argument, NULL, 309},
|
||||
{"write-pid-path", required_argument, NULL, 310},
|
||||
{"vsync-use-glfinish", no_argument, NULL, 311},
|
||||
{"xrender-sync-fence", no_argument, NULL, 313},
|
||||
{"show-all-xerrors", no_argument, NULL, 314},
|
||||
{"no-fading-destroyed-argb", no_argument, NULL, 315},
|
||||
{"force-win-blend", no_argument, NULL, 316},
|
||||
{"glx-fshader-win", required_argument, NULL, 317},
|
||||
{"version", no_argument, NULL, 318},
|
||||
{"no-x-selection", no_argument, NULL, 319},
|
||||
{"log-level", required_argument, NULL, 321},
|
||||
{"log-file", required_argument, NULL, 322},
|
||||
{"use-damage", no_argument, NULL, 323},
|
||||
{"no-use-damage", no_argument, NULL, 324},
|
||||
{"no-vsync", no_argument, NULL, 325},
|
||||
{"max-brightness", required_argument, NULL, 326},
|
||||
{"transparent-clipping", no_argument, NULL, 327},
|
||||
{"blur-method", required_argument, NULL, 328},
|
||||
{"blur-size", required_argument, NULL, 329},
|
||||
{"blur-deviation", required_argument, NULL, 330},
|
||||
{"blur-strength", required_argument, NULL, 331},
|
||||
{"shadow-color", required_argument, NULL, 332},
|
||||
{"corner-radius", required_argument, NULL, 333},
|
||||
{"rounded-corners-exclude", required_argument, NULL, 334},
|
||||
{"clip-shadow-above", required_argument, NULL, 335},
|
||||
{"window-shader-fg", required_argument, NULL, 336},
|
||||
{"window-shader-fg-rule", required_argument, NULL, 337},
|
||||
{"transparent-clipping-exclude", required_argument, NULL, 338},
|
||||
{"legacy-backends", no_argument, NULL, 733},
|
||||
{"monitor-repaint", no_argument, NULL, 800},
|
||||
{"diagnostics", no_argument, NULL, 801},
|
||||
{"debug-mode", no_argument, NULL, 802},
|
||||
{"no-ewmh-fullscreen", no_argument, NULL, 803},
|
||||
{"animations", no_argument, NULL, 804},
|
||||
{"animation-stiffness-in-tag", required_argument, NULL, 805},
|
||||
{"animation-stiffness-tag-change", required_argument, NULL, 806},
|
||||
{"animation-dampening", required_argument, NULL, 807},
|
||||
{"animation-window-mass", required_argument, NULL, 808},
|
||||
{"animation-clamping", no_argument, NULL, 809},
|
||||
{"animation-for-open-window", required_argument, NULL, 810},
|
||||
{"animation-for-transient-window", required_argument, NULL, 811},
|
||||
// Must terminate with a NULL entry
|
||||
{NULL, 0, NULL, 0},
|
||||
};
|
||||
|
||||
/// Get config options that are needed to parse the rest of the options
|
||||
/// Return true if we should quit
|
||||
|
||||
@@ -1917,8 +1917,8 @@ static session_t *session_init(int argc, char **argv, Display *dpy,
|
||||
.alpha_picts = NULL,
|
||||
.fade_time = 0L,
|
||||
.animation_time = 0L,
|
||||
.ignore_head = NULL,
|
||||
.ignore_tail = NULL,
|
||||
.pending_reply_head = NULL,
|
||||
.pending_reply_tail = NULL,
|
||||
.quit = false,
|
||||
|
||||
.expose_rects = NULL,
|
||||
@@ -2715,6 +2715,7 @@ static void session_destroy(session_t *ps) {
|
||||
ev_timer_stop(ps->loop, &ps->unredir_timer);
|
||||
ev_timer_stop(ps->loop, &ps->fade_timer);
|
||||
ev_timer_stop(ps->loop, &ps->animation_timer);
|
||||
ev_timer_stop(ps->loop, &ps->dpms_check_timer);
|
||||
ev_idle_stop(ps->loop, &ps->draw_idle);
|
||||
ev_prepare_stop(ps->loop, &ps->event_check);
|
||||
ev_signal_stop(ps->loop, &ps->usr1_signal);
|
||||
|
||||
Reference in New Issue
Block a user