Skip to content

Latest commit

 

History

History
138 lines (114 loc) · 3.22 KB

picom.org

File metadata and controls

138 lines (114 loc) · 3.22 KB

Picom

Use a compositor to handle complex graphic interactions eg. dragging, transparency and shadows. The state of compositors is somewhat chaotic, not all are equal feature-wise, nor peformance-wise. Pick your preferred fork:

The available window types as per the EWMH standard are:

  • combo
  • desktop
  • dialog
  • dnd
  • dock
  • dropdown_menu
  • menu
  • normal
  • notification
  • popup_menu
  • splash
  • toolbar
  • tooltip
  • unknown
  • utility

Backend

Specify the backend to use eg. xrender, glx or xr_glx_hybrid.

backend = "glx";
glx-copy-from-front = false;
glx-no-stencil = true;
use-damage = false;
vsync = true;

Shadows

Note that desktop windows ie. windows with '_NET_WM_WINDOW_TYPE_DESKTOP' never get shadow, unless explicitly requested using the wintypes option.

shadow = true;
shadow-offset-x = -24;
shadow-offset-y = -24;
shadow-opacity = .25;
shadow-radius = 24;
shadow-exclude = [
  "window_type = 'menu'",
  "window_type = 'tooltip'",
]

Rounded Corners

corner-radius = 16;
rounded-corners-exclude = [
  "!name~=''",                          # Exclude windows with no name ie. bars
  # "window_type = 'combo'",
  # "window_type = 'desktop'",
  # "window_type = 'dock'",
  # "window_type = 'dropdown_menu'",
  # "window_type = 'menu'",
  # "window_type = 'popup_menu'",
  "window_type = 'tooltip'",
  # "window_type = 'utility'",
];

Opacity

active-opacity = 1;                     # Default opacity for active windows
inactive-opacity = .65;                 # Opacity for inactive windows
inactive-opacity-override = false;
opacity-rule = [
  # Active overwrites
  "90:class_i = 'emacs' && focused",
  "90:class_i = 'kitty' && focused",
  "90:class_i = 'spotify' && focused",
  # Inactive overwrites
  "90:role = 'browser' && !focused",
  # Decoration overwrites
  "70:window_type = 'dropdown_menu'",
  "95:window_type = 'menu'",            # Browser context menus
  "70:window_type = 'popup_menu'",      # Context menus, tray menus
  "70:window_type = 'tooltip'",         # Browser tooltips
  # Application overwrites
  "100:class_i = 'peek'",               # Screencast utility
  "100:class_i *?= 'steam_app_'",       # Games
];

Blur

The dual_kawase method is only enabled with --experimental-backends.

blur-background-exclude = [
  "_GTK_FRAME_EXTENTS@:c",
  "window_type = 'desktop'",
  "window_type = 'dock'",
];
blur-method = "dual_kawase";
blur-strength = 12;

Fading

fading = false;                         # Fade windows in and out
fade-delta = 4;                         # Time between fading steps