Add desktop environment detection