wilas / vbkick

Tool for building and maintaining VirtualBox VMs described as a code in a single definition file.
Other
8 stars 5 forks source link

Addition to issues #36 and #37: New expressions for 1) sleep a given number of milliseconds 2) less-than sign. #38

Open cniswander opened 10 years ago

cniswander commented 10 years ago

(This is one of multiple issues that describe functionality I've implemented offline that I'd like to bring into the official github repository.)

The command line utility of #36 would be coded to provide these, and convert_2_scancode.py would be changed as necessary to gracefully support that. (This would match the implementations I've already done outside the github repository. :-) )

I propose a new expression telling the command line utility of #36 to sleep (delay/wait) a specified number of milliseconds: a decimal number of at least 3 digits in angle brackets. e.g. <123> would mean sleep 0.123 seconds. If you want to sleep less than 100 milliseconds, use leading zeroes, e.g. ≷050>

The reason for requiring at least three decimal digits is to reserve two-digit sequences in case we might want to implement literal scancode expressions, e.g. <23> for scancode hexadecimal 23.

This feature differs from the existing <Wait> expression in that you can tersely specify a delay that is not 1 second, and you can specify a multiple of 1 second more tersely than by using the existing <Multiply(TIMES, <Wait>)> expression.

Also, to help us type anything we want into a VM, I propose a new expression for the less than sign. Because I like terseness, my current offline implementation uses <Lt>.

A logical current alternative/workaround is, every time you want to type a < that would be interpreted as part of a larger expression, you have to insert something after it. For example: "<<Wait>Enter>" would let you type literal "<Enter>" (not the Enter key) into a VM. That works, but imposes a 1 second delay as part of the price of the kluge/hack.

wilas commented 10 years ago

+1 for <Lt>, there may be a funy expression if you want type liter "<Lt>" -> <Lt>Lt<Lt>, but this is fine :) +1 for a sleep a specified number of millisecond (at least 3 digits in angle bracket)