Compfy is a compositor for Xorg, suitable for use with window managers that do not provide compositing. Compfy is based upon Picom.
Installation
Install the compfyAUR package.
Configuration
The default configuration is available in /etc/xdg/compfy.conf.example
. For modifications, it can be copied to ~/.config/compfy/compfy.conf
or ~/.config/compfy.conf
.
To use another custom configuration file with Compfy, use the following command:
$ compfy --config path/to/compfy.conf
Access compfy(1) if you have installed the package. Otherwise you can view the wiki online.
Disable shadows for some windows
The shadow-exclude
option can disable shadows for windows if required.
shadow-exclude = [ "class_g = 'Rofi'" ];
To disable shadows for menus add the following to wintypes
in compfy.conf
:
# menu = { shadow = false; }; dropdown_menu = { shadow = false; }; popup_menu = { shadow = false; }; utility = { shadow = false; };
The other WINDOW_TYPE
values that can be used are defined in the EWMH standard: unknown
, desktop
, dock
, toolbar
, menu
, utility
, splash
, dialog
, normal
, dropdown_menu
, popup_menu
, tooltip
, notification
, combo
, and dnd
.
Opacity
To set opacity (in effect transparency) for focused and unfocused windows (for example terminal emulators), add the following to your compfy.conf
:
opacity-rule = [ "90:class_g = 'URxvt' && focused", "60:class_g = 'URxvt' && !focused" ];
Corners
You can round the corners of windows by adding the following to your config
corner-radius = 10;
If you want specific windows to have specific corner radius's you can now set that with this rule set.
corner-rules = [ "15:class_g = 'dwm'" ];
Animations
Compfy comes loaded with awesome animations. The default configuration will provide you with some presets but you are free to customize all the options.
Example:
animations = true; animation-stiffness = 120; animation-window-mass = 0.5; animation-dampening = 12; animation-clamping = false; # Options: ("none","zoom","fly-in","slide-up","slide-down","slide-left","slide-right") animation-for-open-window = "zoom"; animation-for-unmap-window = "zoom";
An in depth explanation of what these settings do can be found either in the manpage or on the Wiki
Usage
Compfy may be manually enabled or disabled at any time during a session, or autostarted as a background process for sessions. There are also several optional arguments that may be used to tweak the compositing effects provided. These include:
-
-b
: Run as a background process for a session (e.g. when autostarting for a window manager such as Openbox) -
--config
: Use a specified configuration file
Many more options are available, including setting timings, displays to be managed, the opacity of menus, window borders, and inactive application menus. See compfy(1).
To start Compfy as a background process for a session, the -b
argument can be used (may cause a display freeze):
$ compfy -b