diff options
Diffstat (limited to 'dot_config/picom.conf')
-rw-r--r-- | dot_config/picom.conf | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/dot_config/picom.conf b/dot_config/picom.conf new file mode 100644 index 0000000..2ec14a9 --- /dev/null +++ b/dot_config/picom.conf | |||
@@ -0,0 +1,230 @@ | |||
1 | # Thank you code_nomad: http://9m.no/ꪯ鵞 | ||
2 | # and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton | ||
3 | # and picom Github: https://github.com/yshui/picom | ||
4 | ################################# | ||
5 | # | ||
6 | # Backend | ||
7 | # | ||
8 | ################################# | ||
9 | |||
10 | # Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. | ||
11 | # `xrender` is the default one. | ||
12 | # GLX backend is typically much faster but depends on a sane driver. | ||
13 | #backend = "xrender"; | ||
14 | backend = "glx"; | ||
15 | #backend = "xr_glx_hybrid" | ||
16 | |||
17 | ################################# | ||
18 | # | ||
19 | # GLX backend | ||
20 | # | ||
21 | ################################# | ||
22 | |||
23 | # GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. | ||
24 | # Might cause incorrect opacity when rendering transparent content (but never | ||
25 | # practically happened) and may not work with blur-background. | ||
26 | # My tests show a 15% performance boost. Recommended. | ||
27 | glx-no-stencil = true; | ||
28 | |||
29 | # GLX backend: Use MESA_copy_sub_buffer to do partial screen update. | ||
30 | # My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. | ||
31 | # May break VSync and is not available on some drivers. | ||
32 | # glx-use-copysubbuffermesa = true; | ||
33 | |||
34 | # GLX backend: Avoid rebinding pixmap on window damage. | ||
35 | # Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe). | ||
36 | # Recommended if it works. | ||
37 | # glx-no-rebind-pixmap = true; | ||
38 | |||
39 | # Disable the use of damage information. | ||
40 | # This cause the whole screen to be redrawn everytime, instead of the part of the screen | ||
41 | # has actually changed. Potentially degrades the performance, but might fix some artifacts. | ||
42 | # The opposing option is use-damage | ||
43 | # no-use-damage = false | ||
44 | # use-damage = true; | ||
45 | |||
46 | # Use X Sync fence to sync clients' draw calls, to make sure all draw | ||
47 | # calls are finished before picom starts drawing. Needed on nvidia-drivers | ||
48 | # with GLX backend for some users. | ||
49 | xrender-sync-fence = false; | ||
50 | |||
51 | # GLX backend: GLX buffer swap method we assume. | ||
52 | # Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1). | ||
53 | # undefined is the slowest and the safest, and the default value. | ||
54 | # copy is fastest, but may fail on some drivers, | ||
55 | # 2-6 are gradually slower but safer (6 is still faster than 0). | ||
56 | # Usually, double buffer means 2, triple buffer means 3. | ||
57 | # buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers. | ||
58 | # Useless with --glx-use-copysubbuffermesa. | ||
59 | # Partially breaks --resize-damage. | ||
60 | # Defaults to undefined. | ||
61 | #glx-swap-method = "undefined"; | ||
62 | |||
63 | ################################# | ||
64 | # | ||
65 | # Shadows | ||
66 | # | ||
67 | ################################# | ||
68 | |||
69 | # Enabled client-side shadows on windows. | ||
70 | shadow = false; | ||
71 | # The blur radius for shadows. (default 12) | ||
72 | shadow-radius = 5; | ||
73 | # The left offset for shadows. (default -15) | ||
74 | shadow-offset-x = -5; | ||
75 | # The top offset for shadows. (default -15) | ||
76 | shadow-offset-y = -5; | ||
77 | # The translucency for shadows. (default .75) | ||
78 | shadow-opacity = 0.5; | ||
79 | |||
80 | # Set if you want different colour shadows | ||
81 | # shadow-red = 0.0; | ||
82 | # shadow-green = 0.0; | ||
83 | # shadow-blue = 0.0; | ||
84 | |||
85 | # The shadow exclude options are helpful if you have shadows enabled. Due to the way picom draws its shadows, certain applications will have visual glitches | ||
86 | # (most applications are fine, only apps that do weird things with xshapes or argb are affected). | ||
87 | # This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher. | ||
88 | shadow-exclude = [ | ||
89 | "! name~=''", | ||
90 | "name = 'Notification'", | ||
91 | "name = 'Plank'", | ||
92 | "name = 'Docky'", | ||
93 | "name = 'Kupfer'", | ||
94 | "name = 'xfce4-notifyd'", | ||
95 | "name *= 'VLC'", | ||
96 | "name *= 'compton'", | ||
97 | "name *= 'picom'", | ||
98 | "name *= 'Chromium'", | ||
99 | "name *= 'Chrome'", | ||
100 | "class_g = 'Conky'", | ||
101 | "class_g = 'Kupfer'", | ||
102 | "class_g = 'Synapse'", | ||
103 | "class_g ?= 'Notify-osd'", | ||
104 | "class_g ?= 'Cairo-dock'", | ||
105 | "class_g ?= 'Xfce4-notifyd'", | ||
106 | "class_g ?= 'Xfce4-power-manager'", | ||
107 | "(class_g = 'firefox' || class_g = 'Thunderbird') && (window_type = 'utility' || window_type = 'popup_menu') && argb", | ||
108 | "_GTK_FRAME_EXTENTS@:c", | ||
109 | "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'", | ||
110 | "_NET_WM_WINDOW_TYPE:a *= '_KDE_NET_WM_WINDOW_TYPE_OVERRIDE'" | ||
111 | ]; | ||
112 | |||
113 | # Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) | ||
114 | shadow-ignore-shaped = false; | ||
115 | |||
116 | ################################# | ||
117 | # | ||
118 | # Opacity | ||
119 | # | ||
120 | ################################# | ||
121 | |||
122 | inactive-opacity = 1; | ||
123 | active-opacity = 1; | ||
124 | frame-opacity = 1; | ||
125 | inactive-opacity-override = false; | ||
126 | |||
127 | # Dim inactive windows. (0.0 - 1.0) | ||
128 | # inactive-dim = 0.2; | ||
129 | # Do not let dimness adjust based on window opacity. | ||
130 | # inactive-dim-fixed = true; | ||
131 | # Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. | ||
132 | # blur-background = true; | ||
133 | # Blur background of opaque windows with transparent frames as well. | ||
134 | # blur-background-frame = true; | ||
135 | # Do not let blur radius adjust based on window opacity. | ||
136 | blur-background-fixed = false; | ||
137 | blur-background-exclude = [ | ||
138 | "window_type = 'dock'", | ||
139 | "window_type = 'desktop'" | ||
140 | ]; | ||
141 | |||
142 | ################################# | ||
143 | # | ||
144 | # Fading | ||
145 | # | ||
146 | ################################# | ||
147 | |||
148 | # Fade windows during opacity changes. | ||
149 | fading = true; | ||
150 | # The time between steps in a fade in milliseconds. (default 10). | ||
151 | fade-delta = 4; | ||
152 | # Opacity change between steps while fading in. (default 0.028). | ||
153 | fade-in-step = 0.03; | ||
154 | # Opacity change between steps while fading out. (default 0.03). | ||
155 | fade-out-step = 0.03; | ||
156 | # Fade windows in/out when opening/closing | ||
157 | # no-fading-openclose = true; | ||
158 | |||
159 | # Specify a list of conditions of windows that should not be faded. | ||
160 | fade-exclude = [ ]; | ||
161 | |||
162 | ################################# | ||
163 | # | ||
164 | # Other | ||
165 | # | ||
166 | ################################# | ||
167 | |||
168 | # Try to detect WM windows and mark them as active. | ||
169 | mark-wmwin-focused = true; | ||
170 | # Mark all non-WM but override-redirect windows active (e.g. menus). | ||
171 | mark-ovredir-focused = true; | ||
172 | # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. | ||
173 | # Usually more reliable but depends on a EWMH-compliant WM. | ||
174 | use-ewmh-active-win = true; | ||
175 | # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. | ||
176 | detect-rounded-corners = true; | ||
177 | |||
178 | # Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. | ||
179 | # This prevents opacity being ignored for some apps. | ||
180 | # For example without this enabled my xfce4-notifyd is 100% opacity no matter what. | ||
181 | detect-client-opacity = true; | ||
182 | |||
183 | # Specify refresh rate of the screen. | ||
184 | # If not specified or 0, picom will try detecting this with X RandR extension. | ||
185 | refresh-rate = 0; | ||
186 | |||
187 | # Vertical synchronization: match the refresh rate of the monitor | ||
188 | # Enable/disable VSync. | ||
189 | #vsync = false; (fixes screen tearing in browsers if true) | ||
190 | vsync = true; | ||
191 | |||
192 | # Limit picom to repaint at most once every 1 / refresh_rate second to boost performance. | ||
193 | # This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already, | ||
194 | # unless you wish to specify a lower refresh rate than the actual value. | ||
195 | #sw-opti = true; | ||
196 | |||
197 | # Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. | ||
198 | # Known to cause flickering when redirecting/unredirecting windows. | ||
199 | # unredir-if-possible = false; (fullscreen games behave better if true) | ||
200 | unredir-if-possible = false; | ||
201 | |||
202 | # Specify a list of conditions of windows that should always be considered focused. | ||
203 | focus-exclude = [ ]; | ||
204 | |||
205 | # Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. | ||
206 | detect-transient = true; | ||
207 | # Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time. | ||
208 | # WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too. | ||
209 | detect-client-leader = true; | ||
210 | |||
211 | ################################# | ||
212 | # | ||
213 | # Window type settings | ||
214 | # | ||
215 | ################################# | ||
216 | |||
217 | wintypes: | ||
218 | { | ||
219 | tooltip = | ||
220 | { | ||
221 | # fade: Fade the particular type of windows. | ||
222 | fade = true; | ||
223 | # shadow: Give those windows shadow | ||
224 | shadow = false; | ||
225 | # opacity: Default opacity for the type of windows. | ||
226 | opacity = 0.85; | ||
227 | # focus: Whether to always consider windows of this type focused. | ||
228 | focus = true; | ||
229 | }; | ||
230 | }; | ||