feat: change picom build

This commit is contained in:
doryan 2024-09-13 17:16:14 +04:00
parent 919dfb0633
commit 8b5ecc3061
2 changed files with 191 additions and 121 deletions

View File

@ -30,7 +30,7 @@ bspc config presel_border_color "#26E2FF"
bash $HOME/.config/polybar/launch.sh & bash $HOME/.config/polybar/launch.sh &
sxhkd & sxhkd &
picom --experimental-backends & picom &
nitrogen --restore & nitrogen --restore &
dunst & dunst &
xsetroot -cursor_name left_ptr & xsetroot -cursor_name left_ptr &

View File

@ -1,37 +1,55 @@
################################# #################################
# Animation Settings # # Animations #
# !These animations WILL NOT work correctly for any other wm other than phyOS-dwm fork!
# fly-in: Windows fly in from random directions to the screen
# maximize: Windows pop from center of the screen to their respective positions
# minimize: Windows minimize from their position to the center of the screen
# slide-in-center: Windows move from upper-center of the screen to their respective positions
# slide-out-center: Windows move to the upper-center of the screen
# slide-left: Windows are created from the right-most window position and slide leftwards
# slide right: Windows are created from the left-most window position and slide rightwards
# slide-down: Windows are moved from the top of the screen and slide downward
# slide-up: Windows are moved from their position to top of the screen
# squeeze: Windows are either closed or created to/from their center y-position (the animation is similar to a blinking eye)
# squeeze-bottom: Similar to squeeze, but the animation starts from bottom-most y-position
# zoom: Windows are either created or destroyed from/to their center (not the screen center)
################################# #################################
#enable or disable animations
animations = true; animations = true;
#change animation speed of windows in current tag e.g open window in current tag
animation-stiffness-in-tag = 250;
#change animation speed of windows when tag changes
animation-stiffness-tag-change = 90.0;
# Values can be none, auto, fly-in, zoom, squeeze, slide-up, slide-down, slide-left, slide-right animation-window-mass = 0.3;
animation-for-open-window = "zoom"; animation-dampening = 15;
animation-for-transient-window = "zoom";
animation-for-unmap-window = "zoom";
animation-for-workspace-switch-in = "zoom";
animation-for-workspace-switch-out = "zoom";
# Stiffness (a.k.a. tension) parameter for spring-based animation (default: 200.0).
animation-stiffness = 500;
# Dampening (a.k.a. friction) parameter for spring-based animation (default: 25.0).
animation-dampening = 30;
# Mass parameter for spring-based animation (default: 1.0).
animation-window-mass = 0.25;
# The time between steps in animation, in milliseconds. (> 0, defaults to 10).
animation-delta = 15;
# Force animations to go step by step even if cpu usage is high
animation-force-steps = false;
# Whether to clamp animations (default: true).
animation-clamping = true; animation-clamping = true;
#open windows
animation-for-open-window = "zoom";
#minimize or close windows
animation-for-unmap-window = "zoom";
#popup windows
animation-for-transient-window = "zoom"; #available options: slide-up, slide-down, slide-left, slide-right, squeeze, squeeze-bottom, zoom
#set animation for windows being transitioned out while changings tags
animation-for-prev-tag = "minimize";
#enables fading for windows being transitioned out while changings tags
enable-fading-prev-tag = true;
#set animation for windows being transitioned in while changings tags
animation-for-next-tag = "slide-in-center";
#enables fading for windows being transitioned in while changings tags
enable-fading-next-tag = true;
animation-exclude = [ animation-exclude = [
"class_g *= 'flameshot'", "window_type = 'dock'",
"class_g *= 'i3lock'" "class_g = 'flameshot'",
"class_g = 'polybar'",
]; ];
################################# #################################
@ -42,41 +60,65 @@ animation-exclude = [
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, # (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# unless explicitly requested using the wintypes option. # unless explicitly requested using the wintypes option.
# #
# Can be set per-window using rules. # shadow = false
#
# Default: false
shadow = false; shadow = false;
# The blur radius for shadows, in pixels. # The blur radius for shadows, in pixels. (defaults to 12)
# # shadow-radius = 12
# Default: 12 shadow-radius = 60;
shadow-radius = 7;
# The opacity of shadows. # The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
#
# Range: 0.0 - 1.0
# Default: 0.75
# shadow-opacity = .75 # shadow-opacity = .75
# The left offset for shadows, in pixels. # The left offset for shadows, in pixels. (defaults to -15)
# # shadow-offset-x = -15
# Default: -15 shadow-offset-x = -20;
shadow-offset-x = -7;
# The top offset for shadows, in pixels. # The top offset for shadows, in pixels. (defaults to -15)
# # shadow-offset-y = -15
# Default: -15 shadow-offset-y = -20;
shadow-offset-y = -7;
# Hex string color value of shadow. Formatted like "#RRGGBB", e.g. "#C0FFEE". # Red color value of shadow (0.0 - 1.0, defaults to 0).
# # shadow-red = 0
# Default: #000000
# 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 = "#000000" # shadow-color = "#000000"
# Specify a list of conditions of windows that should have no shadow.
#
# examples:
# shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"class_g = 'dwm'",
"class_g = 'chromium'",
"class_g *?= 'slop'",
"_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 = []
# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use
# shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = ""
# Crop shadow of a window fully on a particular monitor to that monitor. This is # Crop shadow of a window fully on a particular monitor to that monitor. This is
# currently implemented using the X RandR extension. # currently implemented using the X RandR extension.
#
# Default: false
# crop-shadow-to-monitor = false # crop-shadow-to-monitor = false
@ -84,20 +126,24 @@ shadow-offset-y = -7;
# Fading # # Fading #
################################# #################################
# Fade windows in/out when opening/closing and when opacity changes, # Fade windows in/out when opening/closing and when opacity changes,
# unless no-fading-openclose is used. Can be set per-window using rules. # unless no-fading-openclose is used.
# fading = true;
# Default: false
fading = false;
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) # Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
fade-in-step = 0.03; # fade-in-step = 0.028
fade-in-step = 0.023;
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) # Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
fade-out-step = 0.03; # fade-out-step = 0.03
fade-out-step = 0.023;
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) # The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10 fade-delta = 5
# Specify a list of conditions of windows that should not be faded.
# fade-exclude = []
# Do not fade on window open/close. # Do not fade on window open/close.
# no-fading-openclose = false # no-fading-openclose = false
@ -110,16 +156,31 @@ fade-out-step = 0.03;
# Transparency / Opacity # # Transparency / Opacity #
################################# #################################
# Opacity of window titlebars and borders.
# # Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# Range: 0.1 - 1.0 # inactive-opacity = 1
# Default: 1.0 (disabled)
frame-opacity = 1.0; # Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = true;
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
# active-opacity = 1.0
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.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. # Use fixed inactive dim value, instead of adjusting according to window opacity.
# # inactive-dim-fixed = 1.0
# Default: false
# inactive-dim-fixed = true
################################# #################################
# Corners # # Corners #
@ -128,69 +189,58 @@ frame-opacity = 1.0;
# Sets the radius of rounded window corners. When > 0, the compositor will # Sets the radius of rounded window corners. When > 0, the compositor will
# round the corners of windows. Does not interact well with # round the corners of windows. Does not interact well with
# `transparent-clipping`. # `transparent-clipping`.
#
# Default: 0 (disabled)
corner-radius = 2; corner-radius = 2;
################################# # Exclude conditions for rounded corners.
# Blur # #rounded-corners-exclude = [
################################# # "window_type = 'dock'",
# "window_type = 'desktop'"
#];
# Parameters for background blurring, see BLUR section in the man page for more information. blur: {
# blur-method = method = "dual_kawase";
# blur-size = 12 strength = 9;
# blur-deviation = true background = true;
# background-frame = false;
# blur-strength = 5 background-fixed = false;
}
# Blur background of semi-transparent / ARGB windows.
# Can be set per-window using rules.
#
# Default: false
# blur-background = true
# Blur background of windows when the window frame is not opaque.
# Implies:
# blur-background
#
# Default: false
# blur-background-frame = false
# Use fixed blur strength rather than adjusting according to window opacity.
#
# Default: false
# blur-background-fixed = false
# Specify the blur convolution kernel, with the following format: # Exclude conditions for background blur.
# example: # blur-background-exclude = []
# 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-background-exclude = [
# Can also be a pre-defined kernel, see the man page. "window_type = 'dock'",
# "window_type = 'desktop'",
# Default: "" "_GTK_FRAME_EXTENTS@:c",
blur-kern = "3x3box"; "class_g = 'Chromium'",
"class_g = 'Discord'",
"class_g = 'Dunst'",
"class_g = 'Peek'",
"class_g *?= 'slop'",
];
################################# #################################
# General Settings # # 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. # Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false # daemon = false
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. # Specify the backend to use: `xrender`, `glx`, `egl` or `xr_glx_hybrid`.
# `xrender` is the default one. # `xrender` is the default one.
# #
# backend = "glx" backend = "egl"
backend = "glx";
# 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. # Enable/disable VSync.
# vsync = false vsync = true;
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. # Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
dbus = false # dbus = false
# Try to detect WM windows (a non-override-redirect window with no # Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active. # child that has 'WM_STATE') and mark them as active.
@ -206,25 +256,25 @@ mark-ovredir-focused = true;
# shaped windows. The accuracy is not very high, unfortunately. # shaped windows. The accuracy is not very high, unfortunately.
# #
# detect-rounded-corners = false # detect-rounded-corners = false
detect-rounded-corners = true; detect-rounded-corners = false;
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers # Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows. # not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
# #
# detect-client-opacity = false # detect-client-opacity = false
detect-client-opacity = true; detect-client-opacity = false;
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, # Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, # rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it. # provided that the WM supports it.
# #
# use-ewmh-active-win = false use-ewmh-active-win = true;
# Unredirect all windows if a full-screen opaque window is detected, # Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering # to maximize performance for full-screen windows. Known to cause flickering
# when redirecting/unredirecting windows. # when redirecting/unredirecting windows.
# #
# unredir-if-possible = false unredir-if-possible = false;
# Delay before unredirecting the window, in milliseconds. Defaults to 0. # Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0 # unredir-if-possible-delay = 0
@ -268,7 +318,7 @@ detect-transient = true;
# practically happened) and may not work with blur-background. # practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended. # My tests show a 15% performance boost. Recommended.
# #
# glx-no-stencil = false glx-no-stencil = true;
# GLX backend: Avoid rebinding pixmap on window damage. # GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes, # Probably could improve performance on rapid window content changes,
@ -278,7 +328,7 @@ detect-transient = true;
# glx-no-rebind-pixmap = false # glx-no-rebind-pixmap = false
# Disable the use of damage information. # Disable the use of damage information.
# This cause the whole screen to be redrawn everytime, instead of the part of the screen # 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. # has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage # The opposing option is use-damage
# #
@ -289,18 +339,18 @@ use-damage = true;
# calls are finished before picom starts drawing. Needed on nvidia-drivers # calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users. # with GLX backend for some users.
# #
# xrender-sync-fence = false xrender-sync-fence = true;
# GLX backend: Use specified GLSL fragment shader for rendering window contents. # GLX backend: Use specified GLSL fragment shader for rendering window contents.
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` # See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
# in the source tree for examples. # in the source tree for examples.
# #
# glx-fshader-win = "" window-shader-fg = "default";
# Force all windows to be painted with blending. Useful if you # Force all windows to be painted with blending. Useful if you
# have a glx-fshader-win that could turn opaque pixels transparent. # have a glx-fshader-win that could turn opaque pixels transparent.
# #
# force-win-blend = false # force-win-blend = true;
# Do not use EWMH to detect fullscreen windows. # Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates. # Reverts to checking if a window is fullscreen based only on its size and coordinates.
@ -317,7 +367,13 @@ use-damage = true;
# Make transparent windows clip other windows like non-transparent windows do, # Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them. # instead of blending on top of them.
# #
# transparent-clipping = false 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: # Set the log level. Possible values are:
# "trace", "debug", "info", "warn", "error" # "trace", "debug", "info", "warn", "error"
@ -367,7 +423,7 @@ log-level = "warn";
# transparent, and you want shadows in those areas. # transparent, and you want shadows in those areas.
# #
# clip-shadow-above::: # clip-shadow-above:::
# Controls wether shadows that would have been drawn above the window should # 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. # be clipped. Useful for dock windows that should have no shadow painted on top.
# #
# redir-ignore::: # redir-ignore:::
@ -376,3 +432,17 @@ log-level = "warn";
# set, and doesn't want certain window to cause unnecessary screen redirection, # set, and doesn't want certain window to cause unnecessary screen redirection,
# you can set this to `true`. # 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; }
};
opacity-rule = [
"100:class_g = 'St' && focused",
"50:class_g = 'St' && !focused",
"100:fullscreen",
];