mirror of
https://github.com/ItsDrike/dotfiles.git
synced 2024-12-25 12:44:35 +00:00
Rewrite picom config
This commit is contained in:
parent
cd932f2040
commit
b0b6a12b23
|
@ -1,16 +1,175 @@
|
|||
# Apply blur to terminals
|
||||
# NOTE 1: This configuration when used as-is, requires --experimental-backends
|
||||
# command line option to be used, in order to enable the usage of the
|
||||
# dual-kawase blur method.
|
||||
|
||||
# NOTE 2: With the picom from standard repositories, currently using experimental
|
||||
# backends will disable the support for rounded corners. If you want to use both
|
||||
# the dual-kawase blur method and rounded corners, you will need to use a fork.
|
||||
# However it is not mandantory. If you will use the standard version, you will just
|
||||
# see a warning in picom's logs each time it's started, you can disable rounded
|
||||
# corners completely to prevent this. If you do want to use a fork, I recommend this:
|
||||
# <https://github.com/jonaburg/picom> (picom-jonaburg-git on AUR).
|
||||
|
||||
# NOTE 3: The shadows are currently disabled, the reason for this are the issues
|
||||
# that occur with combining rounded corners and shadows, for more info, check:
|
||||
# <https://github.com/jonaburg/picom/issues/62>
|
||||
|
||||
|
||||
# General settings
|
||||
###################
|
||||
|
||||
# Daemonize process. Fork to background after initialization.
|
||||
# Causes issues with certain (badly-written) drivers.
|
||||
daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
# We use GLX since it's generally a lot faster than xrender.
|
||||
# There usually aren't anny issues with this, but if you do experience some
|
||||
# try falling back to xrender.
|
||||
backend = "glx";
|
||||
|
||||
# To properly use the GLX backend, we need to enable experimental backends
|
||||
experimental-backends = true;
|
||||
|
||||
# Enable/Disable VSync.
|
||||
vsync = true;
|
||||
|
||||
# Enable remote control via D-Bus.
|
||||
dbus = false;
|
||||
|
||||
# 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 = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window
|
||||
# with 'WM_STATE' focused.
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Specify refresh rate of the screen. If not specified or 0, picom will
|
||||
# try detecting this with X RandR extension.
|
||||
refresh-rate = 0;
|
||||
|
||||
# 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 = true;
|
||||
|
||||
# Disable/Enable the use of damage information.
|
||||
# Disabling cause the whole screen to be redrawn everytime, instead of the part
|
||||
# of the screen has actually changed. Potentially degrades the performance,
|
||||
# but might fix some artifacts. It is recommended to keep this enabled.
|
||||
# The opposing option is no-use-damage
|
||||
use-damage = true
|
||||
|
||||
# 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.
|
||||
#
|
||||
# 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:
|
||||
{
|
||||
normal = { full-shadow = true; blur-background = true; };
|
||||
splash = { blur-background = false; };
|
||||
menu = { full-shadow = true; };
|
||||
tooltip = { fade = true; shadow = false; focus = true;};
|
||||
dock = { shadow = false; };
|
||||
dnd = { shadow = false; };
|
||||
popup_menu = { full-shadow = true; };
|
||||
utility = { full-shadow = true; };
|
||||
toolbar = { full-shadow = true; };
|
||||
notification = { opacity = 1; }
|
||||
};
|
||||
|
||||
|
||||
# Transparency / Opacity
|
||||
#########################
|
||||
|
||||
# Specify a list of opacity rules.
|
||||
# format: "[Opacity level]:[xprop info name] = '[xprop value]'"
|
||||
# class_g reffers to class in position #0,
|
||||
# class_i reffers to class in position #1
|
||||
# - class_g reffers to class in position #0,
|
||||
# - class_i reffers to class in position #1
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
|
||||
# Apply blur to terminals
|
||||
opacity-rule = [
|
||||
"90:class_g = 'Alacritty'",
|
||||
"90:class_g = 'st-256color'",
|
||||
"90:class_g = 'URxvt'",
|
||||
"90:class_g = 'kitty'",
|
||||
"90:class_g = 'tabbed'"
|
||||
"100:name = 'Dunst'",
|
||||
# Opacities with enabled shadows (shadows allow for higher alpha - lower number)
|
||||
#"70:class_g = 'Alacritty'",
|
||||
#"70:class_g = 'st-256color'",
|
||||
#"70:class_g = 'URxvt'",
|
||||
#"70:class_g = 'kitty'",
|
||||
#"82:class_g = 'Spotify'"
|
||||
# Opacities without shadows
|
||||
"80:class_g = 'Alacritty'",
|
||||
"80:class_g = 'st-256color'",
|
||||
"80:class_g = 'URxvt'",
|
||||
"80:class_g = 'kitty'",
|
||||
"92:class_g = 'Spotify'"
|
||||
];
|
||||
|
||||
# Blur
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
active-opacity = 1;
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
inactive-opacity = 1;
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
frame-opacity = 1.0;
|
||||
# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
|
||||
opacity = 1.0
|
||||
# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
|
||||
inactive-opacity-override = false
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
inactive-dim = 0.0
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
inactive-dim-fixed = 1.0
|
||||
# Specify a list of conditions of windows that should always be considered focused.
|
||||
focus-exclude = []
|
||||
|
||||
|
||||
# Background blurring
|
||||
########################
|
||||
|
||||
blur:
|
||||
{
|
||||
# dual_kawase blur method requires GLX as backend
|
||||
|
@ -18,28 +177,113 @@ blur:
|
|||
# dual_kawase allows for multi-threaded bluring that's
|
||||
# very fast.
|
||||
method = "dual_kawase";
|
||||
strength = 1;
|
||||
#method = "kernel";
|
||||
#kernel = "11x11gaussian";
|
||||
strength = 4;
|
||||
deviation = 1.0;
|
||||
# When true, blur background of semi-transparent / ARGB window.
|
||||
background = false;
|
||||
# When true, the background of windows when the window frame
|
||||
# is not opaque is blurred, implies background=true
|
||||
background-frame = false;
|
||||
# Whe true, use fixeed blur strength rather than adjusing
|
||||
# according to window opacity
|
||||
background-fixed = false;
|
||||
# Specify the blur convolution kernel
|
||||
kern = "3x3box"
|
||||
}
|
||||
|
||||
wintypes:
|
||||
{
|
||||
normal = { blur-background = true };
|
||||
splash = { blur-background = false };
|
||||
};
|
||||
# Exclude conditions for background blur
|
||||
blur-background-exclude = [
|
||||
# Prevents picom from blurring the background
|
||||
# when taking selection screenshot with `maim`
|
||||
"class_g = 'slop'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
# Fading
|
||||
|
||||
# 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;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
shadow-radius = 12;
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
shadow-opacity = 0.75;
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
shadow-offset-x = -15;
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
shadow-offset-y = -15;
|
||||
# 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
|
||||
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||
xinerama-shadow-crop = false
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
shadow-exclude = [
|
||||
"name = 'Notification'",
|
||||
"class_g = 'Conky'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g = 'Cairo-clock'",
|
||||
"class_g = 'slop'",
|
||||
"class_g = 'Polybar'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
|
||||
# Window Fading
|
||||
################
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
fading = false;
|
||||
fade-in-step = 0.07;
|
||||
fade-out-step = 0.07;
|
||||
fade-exclude = [ ];
|
||||
|
||||
# GLX backend
|
||||
# Use GLX as a backend instead of default xrender.
|
||||
# GLX will generally be a lot faster than xrender.
|
||||
# There shouldn't be any issues with this, but if you
|
||||
# do experience any, you should try falling back to xrender.
|
||||
backend = "glx";
|
||||
glx-no-stencil = true;
|
||||
glx-copy-from-front = false;
|
||||
use-damage = true
|
||||
glx-no-rebind-pixmap = true;
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
fade-in-step = 0.07;
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
fade-out-step = 0.1;
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
fade-delta = 10
|
||||
# Do not fade on window open/close.
|
||||
no-fading-openclose = false
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox,
|
||||
# Fluxbox, etc.
|
||||
no-fading-destroyed-argb = false
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# don't need this, we disable fading for all normal windows with wintypes: {}
|
||||
fade-exclude = [
|
||||
"class_g = 'slop'" # maim
|
||||
]
|
||||
|
||||
|
||||
# Corners
|
||||
################
|
||||
|
||||
# Sets the radius of rounded window corners. When > 0, the compositor will
|
||||
# round the corners of windows.
|
||||
corner-radius = 12;
|
||||
rounded-corners-exclude = [
|
||||
"class_g = 'Rofi'",
|
||||
"class_g = 'dmenu'",
|
||||
"name = 'Notification area'",
|
||||
"name = 'Dunst'"
|
||||
]
|
||||
|
||||
# Rounded corners alone only changes the window, but the borders
|
||||
# around it still remain rectangular, round-borders option allows
|
||||
# the borders to also be round.
|
||||
round-borders = 1;
|
||||
# Specify a list of border width rules.
|
||||
# format: "[pixels]:[xprop info name] = '[xprop value]'"
|
||||
# Note this doesn't have any guarantee about not conflicting with the
|
||||
# border width set by the window manager.
|
||||
round-borders-rule = [];
|
||||
|
|
|
@ -142,7 +142,8 @@ aur:
|
|||
- opensnitch # Application level firewall with traffic monitoring (Alternatively, there's portmaster)
|
||||
|
||||
# WM/Xorg
|
||||
- picom-git # Git version of picom compositor
|
||||
#- picom-git # Git version of picom compositor
|
||||
- picom-ibhagwan-git # Forked picom version with support for both rounded corner and dual_kawase blur
|
||||
- devour # WM agnostic window swallowing for terminals
|
||||
- xcursor-simp1e-breeze-snow # Breeze cursor theme
|
||||
|
||||
|
|
Loading…
Reference in a new issue