The Complete Computing Environment

Picom on EXWM startup

(provide 'cce/exwm-xcompmgr)

First commit to xcompmgr was in 2003 and there are still people running non-composited X11 environments SMH

(Matthew Garrett on Twitter)

Starting picom in Emacs

i use picom, a simple X11 compositor that works with EXWM or i3wm or XMonad, and have it start after EXWM does, rather than through home-manager because KDE's kwin doesn't like to compete for the compositor. I provide a custom backend to prevent mpv from tearing.1

(defun cce/run-picom ()
  (when (executable-find "picom")
    (start-process "picom" " *picom*" "picom" "--vsync" "--backend=glx")))
;; "-i 0.9"
(add-hook 'exwm-init-hook #'cce/run-picom)
; (add-hook 'after-init-hook #'cce/run-picom)

Starting picom on login with systemd

picom comes from home-manager and needs a working NixGL on non-nixos desktops. Rather than manage it with Emacs, let's just use home-manager now that I am running XMonad.

{ pkgs, ... }:

  myPicom = pkgs.lib.mkNixGLWrapper { name="picom"; pkg=pkgs.picom; };
  home.packages = [ myPicom ];
  services.picom = {
    enable = false;
    package = myPicom;
    backend = "glx";
    # inactiveOpacity = 0.9;
    vSync = true;