# Systemd Graphical Session An experiment of using systemd/User to start and manage i3wm, xcompmgr, XDG Autostart and user programs. graphical-session.target -> gui-session.target -> window-manager.service # Window Manager (alias: i3.service, slice: session) -> compositor.service # Compositor (alias: xcompmgr, slice: session) -> xdg-desktop-autostart.target # XDG Autostart (slice: app. In fact daemons like blueman-applet should be in background slice) -> xrdb.service # xrdb merge -> notification-daemon.service # libnotify daemon (alias: deadd-notification-center, slice: app) -> xbindkeys.service # Keyboard shortcuts (slice: session) User programs (e.g. xterm, rofi and their children) are started under separate scopes. I'm not sure if that's light enough. Environment variables are managed by `environment.d(5)`. To start: `systemctl --user start --wait gui-session.target` (put in your `.xinitrc`). To be continued. This configuration has flaws. Keyboard shortcuts are managed by `xbindkeys.service`.