copied from foozlan-linuxsetup