501 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			501 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | ################################# | ||
|  | #       Shadows       # | ||
|  | ################################# | ||
|  | 
 | ||
|  | 
 | ||
|  | # Enabled client-side shadows on windows. Note desktop windows | ||
|  | # (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, | ||
|  | # unless explicitly requested using the wintypes option. | ||
|  | # | ||
|  | #shadow = false | ||
|  | shadow = true; | ||
|  | 
 | ||
|  | # The blur radius for shadows, in pixels. (defaults to 12) | ||
|  | # shadow-radius = 12 | ||
|  | shadow-radius = 10; | ||
|  | 
 | ||
|  | # The opacity of shadows. (0.0 - 1.0, defaults to 0.75) | ||
|  | shadow-opacity = .6 | ||
|  | 
 | ||
|  | # The left offset for shadows, in pixels. (defaults to -15) | ||
|  | # shadow-offset-x = -15 | ||
|  | shadow-offset-x = -8; | ||
|  | 
 | ||
|  | # The top offset for shadows, in pixels. (defaults to -15) | ||
|  | # shadow-offset-y = -15 | ||
|  | shadow-offset-y = -8; | ||
|  | 
 | ||
|  | # Red color value of shadow (0.0 - 1.0, defaults to 0). | ||
|  | # shadow-red = 0 | ||
|  | 
 | ||
|  | # Green color value of shadow (0.0 - 1.0, defaults to 0). | ||
|  | # shadow-green = 0 | ||
|  | 
 | ||
|  | # Blue color value of shadow (0.0 - 1.0, defaults to 0). | ||
|  | # shadow-blue = 0 | ||
|  | 
 | ||
|  | # Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue) | ||
|  | shadow-color = "#111111" | ||
|  | 
 | ||
|  | # Specify a list of conditions of windows that should have no shadow. | ||
|  | # shadow-exclude = [] | ||
|  | shadow-exclude = [ | ||
|  |   "name = 'Notification'", | ||
|  |   "class_g = 'Conky'", | ||
|  |   "class_g ?= 'Notify-osd'", | ||
|  |   "class_g = 'Cairo-clock'", | ||
|  |   "_GTK_FRAME_EXTENTS@:c" | ||
|  | ]; | ||
|  | 
 | ||
|  | # Specify a list of conditions of windows that should have no shadow painted over, such as a dock window. | ||
|  | # clip-shadow-above = [] | ||
|  | 
 | ||
|  | # Crop shadow of a window fully on a particular monitor to that monitor. This is | ||
|  | # currently implemented using the X RandR extension. | ||
|  | # crop-shadow-to-monitor = false | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################# | ||
|  | #       Fading        # | ||
|  | ################################# | ||
|  | 
 | ||
|  | 
 | ||
|  | # Fade windows in/out when opening/closing and when opacity changes, | ||
|  | #  unless no-fading-openclose is used. | ||
|  | # fading = false | ||
|  | fading = true; | ||
|  | 
 | ||
|  | # Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) | ||
|  | fade-in-step = 0.02 | ||
|  | 
 | ||
|  | # Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) | ||
|  | fade-out-step = 0.02 | ||
|  | 
 | ||
|  | # The time between steps in fade step, in milliseconds. (> 0, defaults to 10) | ||
|  | fade-delta = 4 | ||
|  | 
 | ||
|  | # Specify a list of conditions of windows that should not be faded. | ||
|  | # fade-exclude = [] | ||
|  | 
 | ||
|  | # Do not fade on window open/close. | ||
|  | no-fading-openclose = true | ||
|  | 
 | ||
|  | # Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. | ||
|  | # no-fading-destroyed-argb = false | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################# | ||
|  | #   Transparency / Opacity    # | ||
|  | ################################# | ||
|  | 
 | ||
|  | 
 | ||
|  | # Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) | ||
|  | # inactive-opacity = 1 | ||
|  | inactive-opacity = 0.8; | ||
|  | 
 | ||
|  | # Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) | ||
|  | frame-opacity = 1.0 | ||
|  | #frame-opacity = 0.5; | ||
|  | 
 | ||
|  | # Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows. | ||
|  | #inactive-opacity-override = true | ||
|  | inactive-opacity-override = false; | ||
|  | 
 | ||
|  | # Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) | ||
|  | active-opacity = 0.9 | ||
|  | 
 | ||
|  | # Dim inactive windows. (0.0 - 1.0, defaults to 0.0) | ||
|  | inactive-dim = 0 | ||
|  | 
 | ||
|  | # Specify a list of conditions of windows that should never be considered focused. | ||
|  | # focus-exclude = [] | ||
|  | # focus-exclude = [ "class_g = 'Cairo-clock'" ]; | ||
|  | 
 | ||
|  | # Use fixed inactive dim value, instead of adjusting according to window opacity. | ||
|  | # inactive-dim-fixed = 1.0 | ||
|  | 
 | ||
|  | # Specify a list of opacity rules, in the format `PERCENT:PATTERN`, | ||
|  | # like `50:name *= "Firefox"`. picom-trans is recommended over this. | ||
|  | # Note we don't make any guarantee about possible conflicts with other | ||
|  | # programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. | ||
|  | # example: | ||
|  | #  opacity-rule = [ "80:class_g = 'URxvt'" ]; | ||
|  | opacity-rule = [ | ||
|  |   "90:class_g = 'Rofi'", | ||
|  |   "90:class_g = 'Google-chrome'", | ||
|  |   "90:class_g = 'Terminator'", | ||
|  |   "90:class_g = 'Spotify'" | ||
|  | ] | ||
|  | 
 | ||
|  | ################################# | ||
|  | #       Corners       # | ||
|  | ################################# | ||
|  | 
 | ||
|  | # Sets the radius of rounded window corners. When > 0, the compositor will | ||
|  | # round the corners of windows. Does not interact well with | ||
|  | # `transparent-clipping`. | ||
|  | corner-radius = 4 | ||
|  | 
 | ||
|  | 
 | ||
|  | # Exclude conditions for rounded corners. | ||
|  | rounded-corners-exclude = [ | ||
|  |   "window_type = 'dock'", | ||
|  |   "window_type = 'desktop'", | ||
|  |   "class_g = 'Dunst'" | ||
|  | ]; | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################# | ||
|  | #   Background-Blurring     # | ||
|  | ################################# | ||
|  | 
 | ||
|  | 
 | ||
|  | # Parameters for background blurring, see the *BLUR* section for more information. | ||
|  | blur-method = "dual_kawase" | ||
|  | blur-size = 12 | ||
|  | 
 | ||
|  | blur-deviation = true | ||
|  | 
 | ||
|  | blur-strength = 5 | ||
|  | 
 | ||
|  | # Blur background of semi-transparent / ARGB windows. | ||
|  | # Bad in performance, with driver-dependent behavior. | ||
|  | # The name of the switch may change without prior notifications. | ||
|  | # | ||
|  | blur-background = true | ||
|  | 
 | ||
|  | # Blur background of windows when the window frame is not opaque. | ||
|  | # Implies: | ||
|  | #  blur-background | ||
|  | # Bad in performance, with driver-dependent behavior. The name may change. | ||
|  | # | ||
|  | blur-background-frame = false | ||
|  | 
 | ||
|  | 
 | ||
|  | # Use fixed blur strength rather than adjusting according to window opacity. | ||
|  | blur-background-fixed = false | ||
|  | 
 | ||
|  | 
 | ||
|  | # Specify the blur convolution kernel, with the following format: | ||
|  | # example: | ||
|  | #   blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; | ||
|  | # | ||
|  | # blur-kern = "" | ||
|  | blur-kern = "3x3box"; | ||
|  | 
 | ||
|  | # Exclude conditions for background blur. | ||
|  | # blur-background-exclude = [] | ||
|  | blur-background-exclude = [ | ||
|  |   #"window_type = 'dock'", | ||
|  |   #"window_type = 'desktop'", | ||
|  |   "_GTK_FRAME_EXTENTS@:c" | ||
|  | ]; | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################# | ||
|  | #     General Settings    # | ||
|  | ################################# | ||
|  | 
 | ||
|  | # Enable remote control via D-Bus. See the man page for more details. | ||
|  | # dbus = true | ||
|  | 
 | ||
|  | # Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. | ||
|  | # daemon = false | ||
|  | 
 | ||
|  | # Specify the backend to use: `xrender`, `glx`, `egl` or `xr_glx_hybrid`. | ||
|  | # `xrender` is the default one. | ||
|  | # | ||
|  | backend = "glx" | ||
|  | # backend = "xrender"; | ||
|  | 
 | ||
|  | # Use higher precision during rendering, and apply dither when presenting the | ||
|  | # rendered screen. Reduces banding artifacts, but might cause performance | ||
|  | # degradation. Only works with OpenGL. | ||
|  | dithered-present = false; | ||
|  | 
 | ||
|  | # Enable/disable VSync. | ||
|  | # vsync = false | ||
|  | vsync = true; | ||
|  | 
 | ||
|  | # Try to detect WM windows (a non-override-redirect window with no | ||
|  | # child that has 'WM_STATE') and mark them as active. | ||
|  | # | ||
|  | # mark-wmwin-focused = false | ||
|  | mark-wmwin-focused = false; | ||
|  | 
 | ||
|  | # Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. | ||
|  | # mark-ovredir-focused = false | ||
|  | mark-ovredir-focused = false; | ||
|  | 
 | ||
|  | # Try to detect windows with rounded corners and don't consider them | ||
|  | # shaped windows. The accuracy is not very high, unfortunately. | ||
|  | # | ||
|  | # detect-rounded-corners = false | ||
|  | detect-rounded-corners = true; | ||
|  | 
 | ||
|  | # Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers | ||
|  | # not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows. | ||
|  | # | ||
|  | # detect-client-opacity = false | ||
|  | detect-client-opacity = true; | ||
|  | 
 | ||
|  | # Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, | ||
|  | # rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, | ||
|  | # provided that the WM supports it. | ||
|  | # | ||
|  | use-ewmh-active-win = true | ||
|  | 
 | ||
|  | # Unredirect all windows if a full-screen opaque window is detected, | ||
|  | # to maximize performance for full-screen windows. Known to cause flickering | ||
|  | # when redirecting/unredirecting windows. | ||
|  | # | ||
|  | # unredir-if-possible = false | ||
|  | 
 | ||
|  | # Delay before unredirecting the window, in milliseconds. Defaults to 0. | ||
|  | # unredir-if-possible-delay = 0 | ||
|  | 
 | ||
|  | # Conditions of windows that shouldn't be considered full-screen for unredirecting screen. | ||
|  | # unredir-if-possible-exclude = [] | ||
|  | 
 | ||
|  | # Use 'WM_TRANSIENT_FOR' to group windows, and consider windows | ||
|  | # in the same group focused at the same time. | ||
|  | # | ||
|  | # detect-transient = false | ||
|  | detect-transient = true; | ||
|  | 
 | ||
|  | # Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same | ||
|  | # group focused at the same time. This usually means windows from the same application | ||
|  | # will be considered focused or unfocused at the same time. | ||
|  | # 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too. | ||
|  | # | ||
|  | # detect-client-leader = false | ||
|  | 
 | ||
|  | # Resize damaged region by a specific number of pixels. | ||
|  | # A positive value enlarges it while a negative one shrinks it. | ||
|  | # If the value is positive, those additional pixels will not be actually painted | ||
|  | # to screen, only used in blur calculation, and such. (Due to technical limitations, | ||
|  | # with use-damage, those pixels will still be incorrectly painted to screen.) | ||
|  | # Primarily used to fix the line corruption issues of blur, | ||
|  | # in which case you should use the blur radius value here | ||
|  | # (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, | ||
|  | # with a 5x5 one you use `--resize-damage 2`, and so on). | ||
|  | # May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. | ||
|  | # | ||
|  | # resize-damage = 1 | ||
|  | 
 | ||
|  | # Specify a list of conditions of windows that should be painted with inverted color. | ||
|  | # Resource-hogging, and is not well tested. | ||
|  | # | ||
|  | # invert-color-include = [] | ||
|  | 
 | ||
|  | # GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. | ||
|  | # Might cause incorrect opacity when rendering transparent content (but never | ||
|  | # practically happened) and may not work with blur-background. | ||
|  | # My tests show a 15% performance boost. Recommended. | ||
|  | # | ||
|  | glx-no-stencil = true | ||
|  | 
 | ||
|  | # GLX backend: Avoid rebinding pixmap on window damage. | ||
|  | # Probably could improve performance on rapid window content changes, | ||
|  | # but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). | ||
|  | # Recommended if it works. | ||
|  | # | ||
|  | # glx-no-rebind-pixmap = false | ||
|  | 
 | ||
|  | # Disable the use of damage information. | ||
|  | # This cause the whole screen to be redrawn every time, instead of the part of the screen | ||
|  | # has actually changed. Potentially degrades the performance, but might fix some artifacts. | ||
|  | # The opposing option is use-damage | ||
|  | # | ||
|  | # no-use-damage = false | ||
|  | use-damage = true; | ||
|  | 
 | ||
|  | # Use X Sync fence to sync clients' draw calls, to make sure all draw | ||
|  | # calls are finished before picom starts drawing. Needed on nvidia-drivers | ||
|  | # with GLX backend for some users. | ||
|  | # | ||
|  | # xrender-sync-fence = false | ||
|  | 
 | ||
|  | # GLX backend: Use specified GLSL fragment shader for rendering window | ||
|  | # contents. Read the man page for a detailed explanation of the interface. | ||
|  | # | ||
|  | # window-shader-fg = "default" | ||
|  | 
 | ||
|  | # Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar | ||
|  | # to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg. | ||
|  | # | ||
|  | # window-shader-fg-rule = [ | ||
|  | #   "my_shader.frag:window_type != 'dock'" | ||
|  | # ] | ||
|  | 
 | ||
|  | # Force all windows to be painted with blending. Useful if you | ||
|  | # have a glx-fshader-win that could turn opaque pixels transparent. | ||
|  | # | ||
|  | # force-win-blend = false | ||
|  | 
 | ||
|  | # Do not use EWMH to detect fullscreen windows. | ||
|  | # Reverts to checking if a window is fullscreen based only on its size and coordinates. | ||
|  | # | ||
|  | # no-ewmh-fullscreen = false | ||
|  | 
 | ||
|  | # Dimming bright windows so their brightness doesn't exceed this set value. | ||
|  | # Brightness of a window is estimated by averaging all pixels in the window, | ||
|  | # so this could comes with a performance hit. | ||
|  | # Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) | ||
|  | # | ||
|  | # max-brightness = 1.0 | ||
|  | 
 | ||
|  | # Make transparent windows clip other windows like non-transparent windows do, | ||
|  | # instead of blending on top of them. | ||
|  | # | ||
|  | # transparent-clipping = false | ||
|  | 
 | ||
|  | # Specify a list of conditions of windows that should never have transparent | ||
|  | # clipping applied. Useful for screenshot tools, where you need to be able to | ||
|  | # see through transparent parts of the window. | ||
|  | # | ||
|  | # transparent-clipping-exclude = [] | ||
|  | 
 | ||
|  | # Set the log level. Possible values are: | ||
|  | #  "trace", "debug", "info", "warn", "error" | ||
|  | # in increasing level of importance. Case doesn't matter. | ||
|  | # If using the "TRACE" log level, it's better to log into a file | ||
|  | # using *--log-file*, since it can generate a huge stream of logs. | ||
|  | # | ||
|  | # log-level = "debug" | ||
|  | log-level = "warn"; | ||
|  | 
 | ||
|  | # Set the log file. | ||
|  | # If *--log-file* is never specified, logs will be written to stderr. | ||
|  | # Otherwise, logs will to written to the given file, though some of the early | ||
|  | # logs might still be written to the stderr. | ||
|  | # When setting this option from the config file, it is recommended to use an absolute path. | ||
|  | # | ||
|  | # log-file = "/path/to/your/log/file" | ||
|  | 
 | ||
|  | # Show all X errors (for debugging) | ||
|  | # show-all-xerrors = false | ||
|  | 
 | ||
|  | # Write process ID to a file. | ||
|  | # write-pid-path = "/path/to/your/log/file" | ||
|  | 
 | ||
|  | # Window type settings | ||
|  | # | ||
|  | # 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: | ||
|  | #   "unknown", "desktop", "dock", "toolbar", "menu", "utility", | ||
|  | #   "splash", "dialog", "normal", "dropdown_menu", "popup_menu", | ||
|  | #   "tooltip", "notification", "combo", and "dnd". | ||
|  | # | ||
|  | # Following per window-type options are available: :: | ||
|  | # | ||
|  | #   fade, shadow::: | ||
|  | #   Controls window-type-specific shadow and fade settings. | ||
|  | # | ||
|  | #   opacity::: | ||
|  | #   Controls default opacity of the window type. | ||
|  | # | ||
|  | #   focus::: | ||
|  | #   Controls whether the window of this type is to be always considered focused. | ||
|  | #   (By default, all window types except "normal" and "dialog" has this on.) | ||
|  | # | ||
|  | #   full-shadow::: | ||
|  | #   Controls whether shadow is drawn under the parts of the window that you | ||
|  | #   normally won't be able to see. Useful when the window has parts of it | ||
|  | #   transparent, and you want shadows in those areas. | ||
|  | # | ||
|  | #   clip-shadow-above::: | ||
|  | #   Controls whether shadows that would have been drawn above the window should | ||
|  | #   be clipped. Useful for dock windows that should have no shadow painted on top. | ||
|  | # | ||
|  | #   redir-ignore::: | ||
|  | #   Controls whether this type of windows should cause screen to become | ||
|  | #   redirected again after been unredirected. If you have unredir-if-possible | ||
|  | #   set, and doesn't want certain window to cause unnecessary screen redirection, | ||
|  | #   you can set this to `true`. | ||
|  | # | ||
|  | wintypes: | ||
|  | { | ||
|  |   tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; | ||
|  |   dock = { shadow = false; clip-shadow-above = true; } | ||
|  |   dnd = { shadow = false; } | ||
|  |   popup_menu = { opacity = 0.8; } | ||
|  |   dropdown_menu = { opacity = 0.8; } | ||
|  | }; | ||
|  | 
 | ||
|  | ################################# | ||
|  | #     Animation Settings    # | ||
|  | ################################# | ||
|  | 
 | ||
|  | animations = ( | ||
|  |   { | ||
|  |     triggers = ["close", "hide"]; | ||
|  |     opacity = { | ||
|  |       curve = "linear"; | ||
|  |       duration = 0.1; | ||
|  |       start = "window-raw-opacity-before"; | ||
|  |       end = 0; | ||
|  |     }; | ||
|  |     blur-opacity = "opacity"; | ||
|  |     shadow-opacity = "opacity"; | ||
|  |   }, | ||
|  |   { | ||
|  |     triggers = ["open", "show"]; | ||
|  |     opacity = { | ||
|  |       curve = "cubic-bezier(0,1,1,1)"; | ||
|  |       duration = 0.3; | ||
|  |       start = 0; | ||
|  |       end = "window-raw-opacity"; | ||
|  |     }; | ||
|  |     blur-opacity = "opacity"; | ||
|  |     shadow-opacity = "opacity"; | ||
|  |     offset-x = "(1 - scale-x) / 2 * window-width"; | ||
|  |     offset-y = "(1 - scale-y) / 2 * window-height"; | ||
|  |     scale-x = { | ||
|  |       curve = "cubic-bezier(0,1.3,1,1)"; | ||
|  |       duration = 0.3; | ||
|  |       start = 0.6; | ||
|  |       end = 1; | ||
|  |     }; | ||
|  |     scale-y = "scale-x"; | ||
|  |     shadow-scale-x = "scale-x"; | ||
|  |     shadow-scale-y = "scale-y"; | ||
|  |     shadow-offset-x = "offset-x"; | ||
|  |     shadow-offset-y = "offset-y"; | ||
|  |   }, | ||
|  |   { | ||
|  |     triggers = ["geometry"] | ||
|  |     scale-x = { | ||
|  |       curve = "cubic-bezier(0,0,0,1.28)"; | ||
|  |       duration = 0.22; | ||
|  |       start = "window-width-before / window-width"; | ||
|  |       end = 1; | ||
|  |     } | ||
|  |     scale-y = { | ||
|  |       curve = "cubic-bezier(0,0,0,1.28)"; | ||
|  |       duration = 0.22; | ||
|  |       start = "window-height-before / window-height"; | ||
|  |       end = 1; | ||
|  |     } | ||
|  |     offset-x = { | ||
|  |       curve = "cubic-bezier(0,0,0,1.28)"; | ||
|  |       duration = 0.22; | ||
|  |       start = "window-x-before - window-x"; | ||
|  |       end = 0; | ||
|  |     } | ||
|  |     offset-y = { | ||
|  |       curve = "cubic-bezier(0,0,0,1.28)"; | ||
|  |       duration = 0.22; | ||
|  |       start = "window-y-before - window-y"; | ||
|  |       end = 0; | ||
|  |     } | ||
|  | 
 | ||
|  |     shadow-scale-x = "scale-x"; | ||
|  |     shadow-scale-y = "scale-y"; | ||
|  |     shadow-offset-x = "offset-x"; | ||
|  |     shadow-offset-y = "offset-y"; | ||
|  |   } | ||
|  | ) | ||
|  | 
 |