minor geometry adjustment: TODO: automatically configure gap_x depends on the status of external monitor