picom: completely replace home-manager's picom with custom service

Home-manager was concatenating its generated settings with our custom
config. Disable home-manager's picom entirely and create our own
systemd service that uses only our config file.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-02 12:42:42 -08:00
parent f22a96e37b
commit 3e8ff68f15

View File

@@ -92,12 +92,25 @@ makeEnable config "myModules.xmonad" true {
enable = true;
};
# Enable picom service but disable its config generation - we write our own config
# Completely disable home-manager's picom - we manage everything ourselves
# to work around the libconfig list vs array syntax issue for animations
services.picom = {
enable = true;
# Don't let home-manager generate any settings - we handle everything in xdg.configFile
settings = {};
services.picom.enable = false;
# Our own picom systemd service
systemd.user.services.picom = {
Unit = {
Description = "Picom X11 compositor";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${pkgs.picom}/bin/picom --config %h/.config/picom/picom.conf";
Restart = "always";
RestartSec = 3;
};
Install = {
WantedBy = [ "graphical-session.target" ];
};
};
# Write complete picom config directly to avoid home-manager's libconfig generator