So, now the finishing touches. Again, like AHK, there's any number of ways to customize Console to your liking; check out the readme.txt file in your Console directory to find out more about the XML syntax Console uses.
However: here's how to create the drop-down effect: we want something borderless, semi-transparent and top-left anchored.
Here's the console.xml
file I used for this effect.
<?xml version="1.0"?><console title="dropdownconsole" change_refresh="5" refresh="100"> <font> <size>10</size> <bold>false</bold> <italic>false</italic> <color r="255" g="255" b="255" /> <name>Lucida Console</name> </font>
The size and width of the font affects the eventual width of the console. Unfortunately, Console - like the Windows console - can only be so wide. Choose a wider font to achieve a wider console.
Personally, I had issues with proportional fonts (ie: fonts with variable-width letters, like Arial); stick with Monospaced fonts such as Lucida Console for best effect.
<position> <x>0</x> <y>10</y> <!-- dock to top left for "quake-console" feel --> <docked>top left</docked> <snap_distance>10</snap_distance> <!-- float on top --> <z_order>on top</z_order> </position>
The top-left docking and the on-top z_order are what give the appropriate feel, here. Play around with these values to change the look-and-feel of your console.
<appearance> <hide_console>true</hide_console> <border>none</border> <!-- move text away from the outside edge --> <inside_border>10</inside_border> <taskbar_button>tray</taskbar_button>
Set border to none to hide the Windows border and make the window chromeless, for a seamless feel.
The inside_border is a personal taste, as is the taskbar_button. The former moves the console's text away from the outside edges, and the taskbar_button makes a Console icon appear on the taskbar when it's active.
<size rows="18" columns="95" buffer_rows="500" /> <transparency alpha="200" inactive_alpha="100">alpha</transparency> <background> <color r="0" g="0" b="0" /> <image style="center">dark.png</image> </background>
Columns and Rows govern how many lines/columns of text your console can display. Again, this is a personal taste; set columns to "max" for Console to ... erm... set the width to the maximum.
The alpha and inactive_alpha transparency is, again, a matter of personal taste. Closer to 255 is more opaque; closer to 0 is more transparent.
I've chosen to put an image behind my console; the sizing of this image, however, is a little bit of guesswork unless you know the letter-sizes of your chosen font; then, simply, multiply out by the rows and columns and come up with an appropriate size. Quake console, anyone?
<scrollbar> <color r="0" g="0" b="0" /> <style>flat</style> </scrollbar>
Self-explanatory; this sets how the scrollbars are coloured and displayed.
<cursor> <color r="255" g="255" b="255" /> <style>fading block</style> </cursor> </appearance> <behaviour> <!-- keep the console in place --> <mouse_drag>false</mouse_drag> <copy_on_select>true</copy_on_select> </behaviour></console>
Mouse_drag prevents you from picking up the console and moving it around. Copy_on_select replicates the *nix select-to-copy functionality, for a more *nixy-feel.
The final step is to save all this as an XML file, typically in your Console directory. You can then refer to it directly in your AHK script, or, as I've done, create a shortcut in your path somewhere - called "console" - that passes the XML file as a parameter; then point AHK to that
For those truly in search of a *nix experience; you can install Cygwin, and direct Console to use the Cygwin Bash environment as your primary shell:
<console title="dropdownconsole" change_refresh="5" refresh="100" shell="c:\cygwin\cygwin.bat">Extra-Extra Credit
Run both Cygwin and Windows cmd with two different hotkeys! That, I'm afraid, is an exercise for the reader...