fix: doesn't work on empty desktop
feature: keep switched layout between processes