LSMD Document
- lsmd version:
- 0.3p
- file version:
- 1.1.0
lsxcommand 1.9.0
lsxcommand-1.9.0
by Visigoth, blkhawk, ilmcuts, jesus_mjjg, rabidcow, and Seg@
Category: console
The lsxcommand LoadModule is a text box that sits on your desktop. It will let you type !bangs, folder names, documents, apps, urls, etc and execute them. You can also use it as a calculator, a clock, do searches from it, display the currently playing winamp song, and pick winning lottery numbers.
Table of Contents
Introduction
if you specify a border width and you dont have CommandNotMoveable set,
you can drag it around by the border. there is a problem that some people
are having where the mouse cursor is not set back to a normal cursor after
it is off the text box. to fix this, use CommandNoCursorChange to stop
lsxcommand from changing the cursor.
just a tip: lots of programs names work in lsxcommand.. you can type stuff
like 'notepad', 'icq', 'netscape', to start some programs instead of the
full path. the history is working great.
Note: I have tried to copy most of the old
text readme here, but some pieces may well be missing. Visigoth
wrote most of that, so most of the "I"s in here will
be him. Just so ya know. -- rabidcow
Position
Settings and bang commands for basic window positioning.
- CommandX COORD
- Initial x position on the primary monitor or containing box.See also: CommandOffsetX, !CommandMove
- CommandY COORD
- Initial y position on the primary monitor or containing box.See also: CommandOffsetY, !CommandMove
- CommandWidth COORD
- Initial width in pixels.See also: !CommandSize
- CommandHeight COORD
- Initial height in pixels.See also: !CommandSize
- CommandNotAlwaysOnTop BOOL
- lsxcommand normally tries to stay above regular windows. Set this to true to make it try to stay below? float? instead.
- CommandHiddenOnStart BOOL
- Normally the command box is visible at startup, set this to true to make it start hidden.See also: CommandWaitForBox
- CommandOffsetX INT
- This value determines which point on its window LSXCommand should use as a reference for the CommandX value.
0: left 1: horizontal center 2: right
- CommandOffsetY INT
- This value determines which point on its window LSXCommand should use as a reference for the CommandY value.
0: top 1: vertical middle 2: bottom
- CommandWaitForBox BOOL
- LsxCommand will not appear until he is loaded in a box with the !CommandBoxHook. Please check lsbox documentation.
- !CommandMove COORD COORD
- Moves the command window to the specified position. This can now accept all regular position forms (eg, "-106c") as well as relative positions by using the suffix "r". (This syntax is new as of 1.9.0, if you were using the old "default relative with parens for absolute" syntax, you'll have to change it.)Move the command box 100 pixels down:
!CommandMove 0r 100r
Move the command box to 30% across the screen without changing its y position:!CommandMove 30% 0r
When !CommandMove is called without parameters, it moves to the current mouse cursor position.If !CommandMove is called with "home" as its parameter, it moves back to the original position it received from step.rc - !CommandSize COORD COORD
- Resizes the command window to the specified size. You can use percents and relative values here as well.If !CommandSize is called with "home" as its parameter, it resizes back to the original size it received from step.rc
- !CommandShow
- Makes the LSXCommand box visible.Note: It does *not* give LSXCommand focus. To do this, use !FocusCommand - this command gives focus to LSXCommand, and if it's not visible, it shows it also.
- !CommandHide
- Just hides LSXCommand. Nothing really special.
- !ToggleCommand
- Shows the command box if it was hidden, hides it if it was visible.
- !CommandBoxHook
- This is used with lsbox: *ModuleHook !CommandBoxHook Please, check LsBox documentationTechnical details: The exact syntax used by lsxcommand is: !CommandBoxHook <here be dragons> <hwnd, in decimal> (it ignores the box file that lsbox gives it.) If you don't understand that, you probably don't need to.See also: CommandWaitForBox
- !CommandCalculate STRING
- Evaluate an expression and paste the result into the command window. This can be used with *CommandChar to do calculations with something other than =.
Appearance: Back and Border
Settings that control how the border and background of the command box look.
- CommandBevelBorder BOOL
- Use bevels instead of solid, single color borders.
- CommandBorderSize INT
- Width in pixels of the border.If you want to have different sized borders on each side, use CommandTopBorderSize, CommandBottomBorderSize, CommandLeftBorderSize, and CommandRightBorderSize.
- CommandBottomBorderSize INT
- Height in pixels of the bottom border, overrides CommandBorderSize for that border.
- CommandTopBorderSize INT
- Height in pixels of the top border, overrides CommandBorderSize for that border.
- CommandLeftBorderSize INT
- Width in pixels of the left border, overrides CommandBorderSize for that border.
- CommandRightBorderSize INT
- Width in pixels of the right border, overrides CommandBorderSize for that border.
- CommandBorderColor COLOR
- color of the border
- CommandBGColor COLOR
- background color
- CommandBackground IMAGE
- Path to your background image. If this is not an absolute path, LSXCommand looks in your images directory.Note: If this option is not specified, the background and border colors are used.
- CommandStretchBackground BOOL
- If set to true, the background image will be stretched.
- CommandTransparentEditBox BOOL
- This will make the text in the edit box draw transparently over the background. If you don't set this and are using a bitmap for the background, the text will still use the background color.This behavior has changed in 1.9.0, and will probably change again.
Appearance: Text
Settings that control how the text in the edit box looks.
- CommandTextSize INT
- Font height in pixels. (NOT in points!)
- CommandTextBold BOOL
- Use a bold font.
- CommandTextUnderline BOOL
- Underline the text.
- CommandTextItalic BOOL
- Use an italic font.
- CommandTextColor COLOR
- Text foreground color.
- CommandTextFontFace FONT
- Name of the font face to use.
- CommandTextAlign OPTION
- Sets the text alignment: left, center, or right
Command History
As you use it, lsxcommand will remember the last few commands you
ran, and autocomplete as you type to make it easier to repeat
recent things. You can also use the up and down arrow keys to
scroll through the history list.
- CommandHistoryFile FILE
- Specifies the file lsxcommand stores its history in.
- CommandHistoryEntries INT
- Sets number of history entries of which to keep track.Note: I haven't really stress-tested LSXCommand, so I don't know how well it scales up, but it shouldn't be too taxing even at somewhere around 50 entries. But I think that's a bit much anyway...
- CommandHistoryMenuEntries INT
- Sets the maximum number of history entries available from the context menu.
- CommandClearHistoryOnStartup BOOL
- Clears the history on startup.Note: You will lose the history in the CommandHistoryFile - not just the history in memory.
- CommandNewestHistoryItemsOnTop BOOL
- This setting places newer history items at the top of the menu, instead of at the bottom.
- CommandUnixHistory BOOL
- The most popular UNIX shell (bash) has the inverse history navigation: Up for previous, down for next. You can use this system with this setting.
- CommandAddExternalsToHistory BOOL
- If this is on, LSXCommand will add any commands launched with the !Command !Bang command to the history. Since I've been using AlterScript with this a lot, it became annoying to have all of AlterScript's commands end up in LSXCommand's history.
- CommandNoTabMicroComplete BOOL
- Stops Tab-MicroCompletes from taking place. When you are typing in LSXCommand and get an autocompletion, you may want to automatically go on to the next word. see also lsxcommand.txt, section II.5 Tab-MicroComplete and Context Menu Access
- CommandTabFileComplete BOOL
- Enables the completion of file names by using the tab key. see also lsxcommand.txt, section II.9 Tab File Completion
- CommandNoAutoComplete BOOL
- Turns *off* AutoComplete. Someone asked for it, so I coded it :).
- !CommandClearHistory
- Clears both the history in memory *and* the history in the CommandHistoryFile.
Tab-MicroComplete is a feature I made up on my own - not even
Microsoft has it. When you are typing in LSXCommand and get
an autocompletion, you may want to automatically go on to the next
word. For instance, when you search with a particular search
engine, and then want to search with the same engine again, but
with a different phrase.
With Tab-MicroComplete, you can do that. If you hit tab while in
LSXCommand, the cursor will be moved to the start of the next
word, or to the end of the line (depending on where the current
cursor is).
Context Menu
LSXCommand now has Context Menu Access! You can either right-
click on LSXCommand's command box or call the !CommandContextMenu
!bang command. If you use the !bang command, the menu appears
wherever your mouse is on screen. The Context Menu contains
past history entries, all your aliases, and all search engines.
- CommandContextMenuStandardItems INT
- This item does two things. It first turns on the standard menu items: Cut, Copy and Paste. Second, it tells where to put the standard items, above or below the LSXCommand specific menus.
CommandContextMenuStandardItems 1 ; Above CommandContextMenuStandardItems 2 ; Below CommandContextMenuStandardItems 0 ; Off (Default)
- CommandContextMenuAboveBox BOOL
- If you have your LSXCommand window at the bottom of the screen, you will want to turn this on. If at the top, leave this off. This sets where the context menu will appear - above or below the LSXCommand box.
- CommandContextMenuExecute BOOL
- Tells LSXCommand to execute a selection from the context menu instead of copying its data to the LSXCommand box.Note: Since the point of search engines is to have you enter a search phrase, it is not possible to have search engines execute.
- CommandContextMenuOrder STRING
- Specifies which order each submenu should appear. For instance, you can have History, Alias, then Search Engines or Alias, History, Search Engines, or...The setting is 3 numbers: 0, 1, and 2. The combination of these numbers sets in which order each submenu appears. The first number is the position of the History submenu. The second is the Alias submenu. And the last is the Search Engines submenu.
- CommandContextMenuAutoPopup BOOL
- If you set this to true, then everytime the mouse will come over the lsxcommand box, the contect menu will appear.
- !CommandShowContextMenu
- Makes LSXCommand's Context Menu visible wherever the cursor is on the screen, regardless of LSXCommand's visibility.
Calculator
Oh yes, it can do calculations too. Type an equals sign
(=) and then the expression you want evaluated,
such as "=1+1", then press enter. But wait,
there's more! Much more. Almost... too much...
- CommandCommaDelimiter BOOL
- Some Eurpoean countries use commas as decimal delimiters, so this changes decimals from periods to commas.
- CommandRPNCalculator BOOL
- Makes the calculator an RPN calculator. If you don't know what this is, don't use it! You'll only confuse yourself. Others call RPN "Postfix" notation. If you want to learn more, obtain a Hewlett-Packard RPN calculator (the 48/49 series are especially nice, IMO :).
As of version 1.7.8, the calculator functionality has been entirely
revamped, thanks to the work of Jonas Sicking. Just like in older
versions, calculator commands start with an = sign at the prompt, then
the expression to evaluate.
What's new? Everything - from the supported operators to the base
conversion, it's all been redone.
LSXCommand handles float precision, so decimals are allowed. The
result will be placed right back into LSXCommand's command box
with an equals sign in front of it and a space after it. This
enables you to use the result of the last command right off the
bat! (By the way - spaces are allowed)
LSXCommand understands the following operators:
+ - * \ / ( ) ^ % ! EAddition, Subtraction, Multiplication, Division, Division, Open Parenthesis, Close Parenthesis, Power, Modulus (remainder), Factorial, Exponential
Yes, there are two division operators. HOWEVER, the \ means
integer division, and the / means regular division.
E is the 10 to the power operator. For instance, 1E6 is 1 million.
Note: don't try 1*E6 - that won't work. Just do 1E6 or (1E6). You
can even do 1E(5+4), but don't try to multiply the two.
MATH LIBRARY FUNCTIONS
With the revamping of the calculator functionality comes some really
useful stuff: a library of mathematics functions! The following is a
list of the supported math functions:
TRIG FUNCTIONS ANALYTIC FUNCTIONS CONSTANTS `````````````` `````````````````` ````````` sin exp pi cos ln e tan log cot log2 asin log10 acos sqrt atan floor acot ceil sinh abs cosh fpart tanh ipart sign rand rnd
The trig functions should be self explanatory. The log functions are
a bit tricky: ln and log are both base e, while log2 and log10 are
base 2 and 10 respectively. If you haven't heard of the other
functions (like fpart and ipart), consult your graphing calculator's
manual - the one you never bothered to read because you already thought
you knew how to use a calculator :P
To use these functions, you would type something like '=sin(0)'. Note
that since pi and e are constants, you don't put () after them. For
instance, =pi would result in =3.141...
RPN CALCULATOR FUNCTIONALITY
As of version 1.7, you can use LSXCommand as a "Postfix"
calculator. If you are not familiar with this expression, leave
it be and don't worry about it! If you really want to learn more,
obtain a Hewlett-Packard RPN calculator and learn to use it.
RPN mode does *not* turn your history into a stack. It does,
however, make LSXCommand accept postfix notation expressions. See
the documentation for the CommandRPNCalculator RC Command above in
section II.2.
This functionality extends to the 1.7.8 revamping of the calculator
code. It should work fine, but I haven't played with it enough to say
anything more than that.
MULTIPLE NUMBER BASE FUNCTIONALITY
As of version 1.7.1, you can specify numbers in different number
bases. With the 1.7.8 rewrite of the calculator, LSXCommand supports
4 bases: decimal (10), binary (2), hexadecimal (16) and octal (8).
To specify a number as binary, place a 'b' in front of it. For
instance, entering "=b10" in LSXCommand will return "=2" as an
answer. If you typed "=5 + b10", you would get "=7" as an
answer.
Append the following prefixes for its respective base:
b - binary h - hexadecimal o - octal d - decimal (this is, of course, the default)
NUMBER CONVERSION FUNCTIONALITY
With the version 1.7.8 rewrite comes much more flexible number
conversion. You can convert between any of the bases supported by
LSXCommand (listed above).
To convert *from* decimal *to* hexadecimal (color conversion), you
would do the following:
=dh 255 255 255 --> =hff hff hff
So, to convert *from* a base *to* another base, place the
identifier of the from base first, then the to base, then each
number to convert with a space between each one.
Internet Searches
Both Netscape and Internet Explorer support a small feature where
you can type a question mark (?) and then a keyword, and they will
search the net for you. However, you could never tell which
engine Netscape was going to use (Netcenter had deals with all the
major engines) and IE always seemed a bit screwy to me. Anyway,
LSXCommand now has this functionality - and you always know which
engine you are searching with!
For instance, to search for "Litestep" with LSXCommand, enter the
following and hit <Return>:
? Litestep
The above will search your default search engine for the phrase
Litestep. (See the section below about the engines.list file to
set up your default engine, and add more!).
To use a specific search engine with your query, you must simply
insert an engine ID after the question mark, like this (Note the
lack of a space after the question mark - it's important!):
?Altavista LitestepThis searches AltaVista for the phrase Litestep.
- CommandSearchEngineList FILE
- The path to your engines.list - the list of search engines to use with LSXCommand. see also lsxcommand.txt, section II.4 The engines.list File.If you set this to anything starting with a *, that will be used as a key to read the engine list from step.rc.
CommandSearchEngineList *CommandSearchEngine *CommandSearchEngine default google *CommandSearchEngine Google http://www.google.com/search?q=<args>
- CommandSearchEngineBrowser FILE
- Path to the browser to be used with search engines. If not specified, LSXCommand uses the default browser on your system.(this setting does not work with lsxcommand-1.9.0)
- !CommandRescanEngines
- Rescans the engines.list file.Note: it does not load a new engines.list file if specified in the step.rc; it will attempt to reload the same engines.list file.
- !CommandSearch
- Performs an internet search. This can be used with *CommandChar to do searches with something other than ?.Maybe you can't be bothered to hold down the shift key when you want to do a search:
*CommandChar / !CommandSearch ?<args>
The following is the list of engines that come preconfigured in
the sample engines.list (Note - unless otherwise stated, these are
configured to the default options these engines use. Another note
- engine names are not case sensitive, I just wrote them the
proper way in the examples):
* Default: Yahoo! * Yahoo! (?Yahoo quake) [Note exclusion of !] * AltaVista (?AltaVista phrase I can't find anywhere) * Lycos (?Lycos insane asylum) * Excite (?Excite dilbert) * InfoSeek (?InfoSeek obey your thirst) * Google! (?Google linux) [Note exclusion of ! again] * HotBot (?HotBot nothing in particular) * DejaNews (?DejaNews good compilers) * LycosMP3 (?LycosMP3 Offspring Gone Away) * ScourMP3 (?ScourMP3 Robert Miles Children) * Lyrics (?Lyrics I wish I was a little bit taller) * LyricsByTitle (?Lyrics I Wish) * Slashdot (?Slashdot Quest for Cool Cases) * Floach (?Floach lsxcommand) * MSDN (?MSDN I didn't know that API call existed) * Amazon (?Amazon Barbarians Led by Bill Gates) * SoftSeek (?SoftSeek UltraEdit) * Hardware (?Hardware AMD K7) * CMA (?CMA phrase in that article I can't find) * Patent (?Patent US05731339__) Added as of 1.1: * UPS (?UPS 1Z99999999999) * FedEx (?FedEx 1092831023) * Airborne (?Airborne 123934309) Added as of 1.5: (sorry, I gave up on examples - too many!) * BigBook * BarnesAndNoble * MediaFindMP3 * Reel * Archieplex * Filez * Shareware * NorthernLight * OpenText * InfoSpace * GoTo * Pathfinder * MetaCrawler * Top5 * A2Z * AskJeeves * MerckMan * APWire * WhoWhere * LibraryOfCongress * Finger * NSLookup * LettermanTop10 * Anonymizer Just a couple of notes: - LycosMP3 and ScourMP3 are customized versions of Lycos (lycos.com) and Scour (www.scour.net) to search strictly for MP3's. - Lyrics (by itself) searches www.lyrics.ch for the lyrics themselves. LyricsByTitle searches for titles of songs available on the Lyrics server. - Hardware searches Tom's Hardware - a good site for hardware reviews. - CMA searches ZDNet's Computer Magazine Archive - which is cool if you don't remember where you saw an article. - Patent looks up the specified patent number on IBM's Patent server - www.patents.ibm.com - The last three are all shipment tracking searches - UPS, FedEx or Airborne Express
For more information about adding, removing, or changing engines
in the list file, see the section below.
PLEASE NOTE: LSXCommand's default search engine list is quite
large; however, there are tons of other good search engines out
there. After version 1.5, all engines which are said to be Added
in the Change Log (above) are actually added to the master
LSXCommand Search Engines list available at my web site:
http://floach.pimpin.net/visigoth/litestep/lsxcommand-engines.list
(sorry, this offer has expired.)
CATEGORY FUNCTIONALITY
Before I start on the category functionality, I have to say the
following: your default search engine (identified by the
"Default ..." line in your search engines list) should be left
alone on a line by itself. Try and make it the first non-comment
line in your engines list.
Just one more note: When a search engine is in a category, you
access it *THE SAME WAY* when typing a search command.
(ie. even if "Amazon" is in the "Books" category, you still use it
by typing "?Amazon <book>")
That said, we can get to the meat of the subject. Categories are
the same as sub-menus in the popup menu. The only difference
between search engines in a category and not in a category is the
fact that one is in a sub-menu (such as "Books ->" or "MP3 ->") and
the other is in the root "Search Engines ->" sub-menu.
To create a category in your search engines list, all you have to
do is type the name of the category and then an open brace ( "{" ).
This must be on its own line. Now you can place as many search
engines as you like in that category, each one on its own line just
as in the original engines.list. To close a category, simply place
a closing brace ( "}" ) on its own line.
You can also have spaces in your category names (NOTE: This doesn't
mean you can have spaces in your search engine names. That has
not been implemented). To do this, enclose the category name in
quotes, such as "Music and Movies". Also, you can have a keyboard
accelerator assigned to a sub-menu. (You know how the File menu
and the Edit menu have underlines under the 'F' and 'E'? You can
have that too - those are called keyboard accelerators). To have
a keyboard accelerator for a particular letter in the category
name, place an ampersand ( "&" ) in front of the letter. For
instance, "Music and &Movies". If you want to have an ampersand
inside the name of a category, put two ampersands in a row. As an
example, "Music && Movies" will have an ampersand between "Music"
and "Movies" but no keyboard accelerator. "Music && &Movies" will
have both an ampersand and an accelerator.
You are allowed to have sub-categories up to 8 levels deep. (If you
really need more than that, bug a developer. It's not hard to
change.) You could do something like Computers-> Software->
Download Libraries->.
For human readability, you can also have white space in front of
both search engine lines and category lines.
For an example, see the included engines.list file in this
distribution of LSXCommand. (engines.list sold separately.
You probably got a copy when you installed LiteStep.)
The engines.list File
This file tells LSXCommand how to use different search engines to
search the Internet. The basic structure of the file is like
this (Note - it's probably a good idea to follow along with the
sample engines.list):
Default <moniker> <moniker1> <keyed url1> <moniker2> <keyed url2> ... ...
The <moniker> element is one of the monikers listed below
(<moniker1>, <moniker2>, etc). As explained above, the default
engine that will be used is <moniker>. The <keyed url#> elements
are, basically, URLs that tell LSXCommand where to send your web
browser. However, there is one difference: the special "key"
<args> is used to determine where to place your search string.
For instance, let's take a look at Yahoo!'s line:
Yahoo http://search.yahoo.com/bin/search?p=<args>This means the following:
* The user must begin a search with ?Yahoo to use this search * The user's search phrase (stuff after ?Yahoo) is placed in <args>. So, the statement "?Yahoo something" gets converted to: http://search.yahoo.com/bin/search?p=something
Multi-word searches are handled automatically by LSXCommand. For
this reason, LSXCommand can't quite use specialized engines to
their full extent - for instance, the "Simple Search" function on
the Lyrics server - www.lyrics.ch - has more than one search
field.
You can find the full engines.list (the one shipped with
LSXCommand is by no means complete and neither is this one, but it
is larger) here:
http://floach.pimpin.net/visigoth/litestep/lsxcommand-engines.list
(Ha! You didn't actually believe that, did you?)
TO MAKE YOUR OWN SEARCH ENTRIES:
Go to the page where you enter a search phrase. Type something
and search for it. If your URL bar has a lot of &'s and ='s, this
site can be used with LSXCommand. All you have to do is copy this
URL and paste it into your engines.list file with a moniker of its
own. Then, replace the phrase you searched for with the key
<args>.
The above type of an engine is one that uses the GET method to
send data to the web server. The other type of method is called
POST. This is the one that doesn't have all the &'s and ='s in
the URL. What you have to do is go back to the search page and
go into the actual HTML. Find the place with the <form> tag and
from here on, you have to set up your own &'s and ='s from the
names and values listed, using the action= property of the form
tag as a base. Sorry if it's confusing, but it's almost 5 AM.
Clock
You can have the command box show the current date and time
when you're not otherwise using it.
The clock functionality in LSXCommand is quite robust, though hard
to use since the format commands look nothing like what you would
expect them to. If you want a quick format command that gives you
both the date and time, use "%#c". If you want more
customization, you will just have to read below. Sorry...
- CommandTime STRING
- Format string that tells LSXCommand how you want your time and date to look.See below for formatting.
- CommandClockDisappearsOnFocus BOOL
- If you want the clock to automatically disappear when you click in LSXCommand, set this on. Otherwise, the clock will "pause" at the current time/date. This makes it easier for you to copy/paste the time and date into any app.
Okay, so you want more control, eh? The following comes straight
from the Microsoft Developer Network Library. It is a table of
format commands you must use to create your time & date string.
Examples are listed below the table.
%a Abbreviated weekday name %A Full weekday name %b Abbreviated month name %B Full month name %c Date & time representation for current location %d Day of month as number (01 - 31) %H Hour in 24-Hour format (00 - 23) %I Hour in 12-Hour format (01 - 12) %j Day of year as number (001 - 366) %m Month as number (01 - 12) %M Minute as number (00 - 59) %p AM / PM indicator for current location %S Second as number (00 - 59) %U Week of year as number, with Sunday as first day of the week (00 - 53) %w Weekday as number, with Sunday as 0 (0 - 6) %W Week of year as number, with Monday as first day of the week (00 - 53) %x Date representation for current location %X Time representation for current location %y Year without century (two digits) (00 - 99) %Y Year with century (four digits) %z Time-zone name / abbreviation %Z Same as %z %% Percent sign
The # sign (pound, hash, whatever you like...) can be used as a
prefix for most format commands. For instance, %#<character>. The
following lists the change in meaning for those commands that are
affected:
%#c Long date & time representation for current location. %#x Long date representation only for current location. %#d, %#H, %#I, Remove leading zeros. %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y
So, what the heck does all that crap mean? Basically, you think
of how you want your date & time to look, and then substitute the
proper codes where they are needed, for instance:
Think Of... Code Used ``````````` ````````` 05:30:00 PM %I:%M:%S %p Monday 06/14/99 %A %x Mon. 6/14/1999 %a %#m/%#d/%Y - Removes leading zeros June 14, 1999 %B %d, %Y Monday, June 14, 1999 %#x
Audio Player
- CommandScrollWinAmpTitle BOOL
- If on, this setting takes WinAmp's scrolling title and displays it in LSXCommand. Note that WinAmp's scroll song title preference must be on for this to happen. A neat trick with this is to have both a clock and a WinAmp scroller. The WinAmp scroller will show when WinAmp is running. If not, the clock will show.
- CommandWinAmpDisappearsOnFocus BOOL
- Just like CommandClockDisappearsOnFocus, but for the WinAmp scrolling feature.
- CommandMusicPlayer STRING
- This command enables LSXCommand to use the titles of other music players besides WinAmp. You should set it to the class name of the application you are looking for. If you want this to work with Foobar2000, you'll probably need to get the foo_class plugin for it.
Misc. Behavior
- CommandNotMoveable BOOL
- Normally you can drag the command box around by its borders. Set this to true to disable that.
- CommandNoCursorChange BOOL
- Normally the mouse cursor will change to the text-selection "I beam" cursor when you move over the command box. Set this to have it stay as the default cursor.
- CommandAssumeNetAddress BOOL
- If a command just doesn't cut it, you can have it start your browser with the address.
- CommandExplorePaths BOOL
- If enabled, any directory path you enter into LSXCommand will open a treed explorer window, instead of the standard folder window.
- CommandNoWarnOnError BOOL
- If there is an error (for instance, if the command you entered is invalid or the calculator couldn't evaluate the expression you entered), you will get an error message. This, when turned on, will suppress it.
- CommandHideOnCommand BOOL
- Hides lsxcommand when a command is issued.
- CommandHideOnEsc BOOL
- Hides lsxcommand when you press the Escape key.
- CommandSelectAllOnFocus BOOL
- Selects everything in the command box on focus.
- CommandSelectAllOnMouseFocus BOOL
- Just like CommandSelectAllOnFocus, just that it only works when clicking to focus LSXCommand.The reason these are two separate options is for people like me: I like to be able to just click once to put the cursor where I want it -not select the entire command. But, some people like the explorer way of doing things better, so I added it.
- CommandHideOnUnfocus BOOL
- Hides LSXCommand when it loses keyboard focus. This can be used to hide LSXCommand after it runs an app.
- CommandNoClearOnCommand BOOL
- wont clear the input after you hit enter
- CommandClearOnHide BOOL
- clear the text when mod is hidden
- CommandOnFocus ACTION
- Will execute a command when you !FocusCommand (or when you focus it with the mouse).
- CommandOnUnfocus ACTION
- Executes a command when the command box loses focus. (eg, when you click on something else)See also: CommandHideOnUnfocus
- *CommandAlias STRING ACTION
- Aliases (or Binds) a phrase to another command.
*CommandAlias step notepad c:\litestep\step.rc
Will open c:\litestep\step.rc in notepad when you type "step" into the command box.If the command assigned to the alias contains the string <args>, it will be replaced with any arguments given after the name of the alias in the command box.You can categorize your aliases with { and }, exactly like the engines.list. - *CommandChar STRING ACTION
- Creates single-character command aliases that can take a line as parameters. This can be used to create shortcuts that act like ? and =. (actually, this is how those two are implemented now.)The text entered after the symbol in the command box replaces any occurance of <args> on the *CommandChar line before execution.So if you use mzscript a lot and need a fast way to check on the value of variables:
; assign ` (grave accent) to show mzscript variables *CommandChar ` !VarShow <args>
Then you can type things like `mousex.You can only assign aliases to printable, non-alphanumeric ASCII characters and character code 128. (used by MS for the euro symbol) It might not be a good idea to redefine " and !, but you can if you want. You can use the keyword stop instead of a character to prevent any further chars from being defined, eg if you want to stop themes from defining them.The full list of chars you can alias is: !"#$%&'()*+,-./:;<=>@[\]^_`{|}~€
Bang Commands
- !FocusCommand
- Set focus to command (nice for binding to hotkeys).
- !Command ACTION
- Now use the power of LSXCommand anywhere within Litestep! Shortcuts, wharf items, whatever that can run !bang commands outside of its own can now use LSXCommand.
- !CommandBrowseFile STRING
- Brings up an Open Dialog Box to browse for a file for LSXCommand to open. It's just the same as typing in the file's name.Note: You can send an argument to this !Bang command to specify the filter for the open box.For instance, to see just Text Files, you might do this:
!CommandBrowseFile All Text Files (*.txt, *.ini)|*.txt;*.ini
- !CommandBrowseFolder
- Brings up a folder selection dialog. You can select a folder to browse to. There are no arguments for this !Bang command.
- !CommandToggleTimer
- Toggles the current timer. If you use this, the WinAmp timer no longer takes precedence over the clock. You have to call this !Bang again for the WinAmp scroller to appear.
- !CommandSetText STRING
- This !Bang sets the text in LSXCommand to its arguments. This makes for some really neat stuff (for instance, a shortcut that pops up LSXCommand with a question mark and a space already in it ready for an argument to search with).Note: this !Bang command does not show LSXCommand if it is hidden.Example: !SetText "?Altavista "
- !CommandShowText STRING
- This will set the text, like !CommandSetText, but not set focus to the command box.
History
- 2004-04-05 version 1.9.0 by rabidcow
- Some of the changes in 1.8.6 were duplicated here due to
uncoordinated concurrent development. (iow, I was slow...)
- — !CommandSize: Change the size of the command box. also "!CommandSize home"
- — !CommandShowText: Like !CommandSetText, but without setting focus.
- — *CommandChar: single-char aliases like ? and =
- — !CommandCalculate: perform calculation, default for =
- — !CommandSearch: perform search, default for ?
- — The default search engine has a check mark next to it in the menu. (assuming that you set the default near the beginning of the file)
- — Aliases can be organized into categories, and can use <args>
- — CommandTextAlign left|center|right
- — you can use "*CommandAlias stop" to end the alias list
- — Removed some sizeof(char) where pointer arithmatic handles it (meh,*1...)
- — buffer overflow reading settings, apparently was extra naughty on purels
- — CommandOnUnfocus should now work when CommandHideOnUnfocus is not set
- — there was a remote possibility that certain OnUnfocus commands could cause litestep to "stop responding to messages", fixed.
- — The context menu will show up over the edit box when you press the "app" key.
- — Stores new entries to history list before $constant$ expansion
- — !CommandMove uses more standardishly arguments
- — CommandTransparentEditBox is almost obsolete. Now using flicker-free method, which doesn't really work on Win95 (not supported by OS), but works better everywhere else. Still not perfect unfortunately, no idea why.
- — Much cleanup and fixes of evil code. "atoi(&atom)" indeed...
- — Reimplemented search engine and alias lists with hash tables. These now use common code for a lot of things, so you can have categorized menus for aliases and load the search engine list from step.rc (aliases from a file are also possible, but there's no setting for it yet.) Both should also run faster, but you almost certainly won't notice.
- — Reimplemented history and autocomplete file lists with a cleaner, clearer code structure.
- — Context menu implementation now restricts you to 8192 (each) history entries, aliases, and search engines, but I think you'd have to worry about resource usage before then. (You can have more, but the context menu won't work right for more than that.) Also, aliases and search engines are now limited to a maximum of 8 categories deep. (an arbitrary limit to make the code easier)
- 2004-03-29 version 1.8.6 by jugg/Seg@
- — jugg's buffer size bugfix added (no more crash if CommandOnFocus and CommandOnUnfocus actions contain more than 255 characters)
- — custom cz_LCTokenize function replaced with a call of LS core's LCTokenize (they are similar!)
- — HistoryInit() rewritten using GetPrivateProfileString() API call. Custom implementation of procs that are available in the Windows kernel is at least strange thing :) Also it would solve a problem with unknown spaces. (Windows think that spaces is a part of comment and left them in WritePrivateProfileString call (i.e. when modules.ini is written on !Quit), but on the next LS start HistoryInit() reads these spaces as a part of command, usually other, since numbers changed :) )
- — History is now written before eVar expansion. Is there anybody who think that !alert "X:\Documents and Settings\Seg@\Desktop\" is more informative that !alert "$Desktop$" ?
- — VarExpansion changed to VarExpansionEx. Don't know about fanatics who can type very long strings with very long eVars, but everything can be... [This was changed back in 1.9.0; the buffer is 4096 chars now, which makes VarExpansion and VarExpansionEx the same. Really just something I didn't bother to merge back in. -- rc]
- — Fixed typos in managing transparent edit boxes (don't know how it works though :) )
- — CommandHideOnEsc
- version 1.8.5 by jesus_mjjg/ilmcuts
- — Added CommandStretchBackground.
- — Added CommandTextBold, CommandTextUnderline and CommandTextItalic.
- — Fixed multiple access violations.
- — Fixed some pointers being used without any prior validation.
- — Docs/XML converted to the Litestep "official" format ... a lot more work to do though, stay tuned.