-# disable input buffering, see
-# man perlfunc | less '+/ getc'
-# for details
- system "stty", '-icanon', 'eol', "\001";
+ # HACK: this is necessary because startx/Xorg sets the console where it outputs
+ # to non-blocking mode
+ $flags = fcntl(STDIN, F_GETFL, 0) or die "Can't get flags for STDIN: $!\n";
+ $flags = fcntl(STDIN, F_SETFL, $flags & ~O_NONBLOCK) or die "Can't set flags for STDIN: $!\n";
+
+ while (not defined ($x = ReadKey(0))) {}
+ ReadMode 0; # Reset tty mode before exiting
+ return $x;
+}