Introduction to Console

Console is a Windows console window enhancement. It was inspired by eConsole (http://www.informatik.uni-frankfurt.de/~corion)

Console features include:

  • multiple tabs
  • text editor-like text selection
  • different background types (solid color, image, fake transparency)
  • alpha and color-key transparency
  • configurable font
  • different window styles

NOTE: Console is NOT a shell. Therefore, it does not implement shell features like command-line completion, syntax coloring, command history, etc.

Console is simply a nice-looking front end for a shell of your choice (cmd.exe, 4NT, bash, etc.) Other command-line utilities can also be used as 'shells' by Console.

Console is hosted on Sourceforge. Get the latest news and updates there.


Copyright

Console is Copyright (C) 2001-2011 Marko Bozikovic

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Send bug reports, bug fixes, enhancements, requests, flames, etc., and I'll try to keep a version up to date. I can be reached as follows:
bozho@kset.org
marko.bozikovic@gmail.com

Console program icon is Copyright (C) 2001-2011 Ante Vukorepa (orcinus@kset.org)

Console toolbar icons are Copyright (C) Mark James (mjames@gmail.com). The iconset used is Silk icon set 1.3, and can be found at Mark's site.


GNU General Public License - GNU Project - Free Software Foundation (FSF)

GNU General Public License

Table of Contents

  • GNU GENERAL PUBLIC LICENSE
    • Preamble
    • TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    • How to Apply These Terms to Your New Programs

GNU GENERAL PUBLIC LICENSE

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

one line to give the program's name and an idea of what it does.
Copyright (C) yyyy  name of author

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'.  This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright
interest in the program `Gnomovision'
(which makes passes at compilers) written
by James Hacker.

signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.

Updated: $Date: 2006/06/15 22:00:10 $ $Author: johnsu01 $


Acknowledgements

A big thanks to Ante Vukorepa for the program icon.
Also, big thanks to Alen Ladavac for help with painting optimizations.

Many thanks to Console 1.x code contributors (some of that code is incorporated in Console 2):

  • Francois Leblanc for mouse wheel messages patch
  • Daniel Soto for adding multiple monitors support
  • Dean Scarff for adding <inverse_shift> stuff
  • Adam Hodson for adding flat scrollbar support
  • Daniel Cheng for making Console window looking like a regular window when <taskbar_button> is set to 'tray' or 'hide'
  • Rob Davenport for config reload prompt patch and initial comments in the sample console.xml file

People who contributed to Console 2 code:

  • jachymko for several code patches and suggestions
  • Anduin Withers for fixed-pitch font dialog patch
  • Kirill for many patches and bug fixes
  • Jason Hood, creator of AnsiCon for the new inject code

Thanks also goes to all the people using and testing Console, reporting bugs and asking for new stuff :-)


Running Console

Console setup creates shortcuts in the Start menu (Console group), on the desktop and in the quick launch bar. Any of these shortcuts will run Console with its default configuration, read from console.xml file located in Console program directory.

Command line parameters

Console supports these command line parameters:

-c <configuration file>

Specifies a configuration file.

-w <main window title>

Sets main window title. This option will override all other main window title settings (e.g. 'use tab titles' setting)

-t <tab name>

Specifies a startup tab. Tab must be defined in Console settings.

-d <directory>

Specifies a startup directory. If you want to parametrize startup dirs, you need to specify startup directory parameter as "%1"\ (backslash is outside of the double quotes)

-r <command>

Specifies a startup shell command.

-ts <sleep time in ms>

Specifies sleep time between starting next tab if multiple -t's are specified.

Note: -t option is not used to set tab's title. It specifies one of the names of the tabs defined in Console settings.

Note: If you specify multiple -t options, you can specify multiple -d and -r options as well. In that case, each -t, -d and -r option will be grouped together. If there is no corresponding -d option for a -t option, the initial directory from that tab's settings will be used. For example:

Console.exe -t bash -d C:\WINDOWS -r "ls -al" -t cmd -d D:\ -t ncftp

Will start 'bash' tab in C:\WINDOWS, running "ls -al" command in it and 'cmd' tab in D:\. 'ncftp' tab will be started in the initial directory specified in its settings.

Note: Some shells need an additional switch in the startup command string. E.g. when using cmd.exe, you must put /k at the beginning of your command string:

Console.exe -t cmd -r "/k dir /b"

Note: -ts option can be useful if you want to start multiple instances of a tab, and tab's shell needs write access to some files during initialization Using -ts option, you can specify time to sleep between starting the next tab, giving each shell enough time to initialize itself.


Menus

File

New Tab

Submenu for opening new tabs.

Close Tab

Closes currently active tab.

Exit

Closes all tabs and exits Console.

Edit

Copy

Copies current selection.

Clear selection

Clears current selection.

Paste

Pastes text from clipboard.

Stop scrolling

When a command produces a lot of output this action prevents the underlying console to scroll by switching to the Select mode. Hit Esc or Enter key to resume scrolling.

Rename Tab

Renames current tab.

Settings...

Opens the settings dialog.

View

Console Window

Shows/hides the underlying Windows console window.

Menu

Shows/hides the menu bar.

Toolbar

Shows/hides the toolbar.

Status Bar

Shows/hides the status bar.

Tabs

Shows/hides the tabs bar.

Help

Help

Shows help.

About Console...

Shows the about dialog.


Settings - Console

Save settings to user directory

Settings are loaded from user directory by default. If no settings are found in user directory they are loaded from the Console directory. Setting are by default saved to where they have been loaded. If for rights reason this is not possible settings are saved to user directory. If "Save setting to user directory" is checked settings are saved to user directory in any cases.


Settings - Console

Shell

Shell

Specifies default shell commad line. If empty, Console will use COMSPEC environment variable as default shell.

Startup dir

Specifies default initial directory for shells.

Start Windows console hidden

Launch the underlying console app hidden. It prevents a flick in the Windows Taskbar.
Warning: some console applications, e.g. PowerShell, that open GUI windows may not work correctly when this option is checked.

Update timeouts

On change

Update interval (in ms) after Console detects a change in the hidden console window. When a change is detected, Console will defer screen update for the specified interval.
This is needed to improve performance during fast changes in the hidden console. Realistic values are 10-50.

Periodic

Periodic update interval (in ms). This value specifies how often Console performs screen updates, even when there is no change detected. Console sometimes cannot detect changes in the hidden console window (usually by old DOS applications)
This value should be larger than 'On change' update interval. Realistic values are in the 50-500 range.

Window size

Rows

Initial window row count.

Columns

Initial window column count.

Save on exit

If checked, Console's window size will be saved on exit.

Buffer size

Rows

Initial buffer row count.

Columns

Initial buffer column count.

Console colors map

These squares allow you to remap default 16 console colors. Left square shows the original color. Clicking on the right square will bring up a color picker allowing you to select a new color.
Reset button will reset colors to their default values.


Settings - Appearance

Title & icon

Title

Specifies the main window title.

Use tab titles

If checked, main window title will be set to the active tab's title.

Use console window title

Activates support for changing window/tab title from the shell ('title' command in cmd.exe).
Note: If on, 'Rename Tab' menu command will not work properly.

Show command

If checked, main window title will show currently running command.

Show command in tabs

If checked, tab titles will show currently running commands.

Trim tab titles

If checked, tab titles will be trimmed to specified number of characters.

character width

Specify the maximum number of character of the tab name.

chars at end

Specify the number of characters to take from the end of the string. The total number will not exceed the character width.

Icon

Specifies custom icon for the main window. If left empty, default Console icon will be used.

Use tab icons

If checked, main window icon will be set to active tab's icon.

Font

Name

Specifies Console font name.

Size

Specifies font size.

Bold

If checked, Console font will be bold.

Italic

If checked, Console font will be italic.

Custom color

Allows you to specify custom font color.
Note: If on, all text will be shown in the selected color. Shell's syntax coloring will be ignored.

Position

Initial position

When checked, allows you to specify initial window position. Otherwise, initial Console window position will be determined by Windows.

X, Y

These values specify initial Console window position.

Save on exit

If checked, Console's window position will be saved on exit.

Snap to desktop edges

When checked, Console window will be snapped to desktop edges.

Distance

Specifies window snap disance.

Docking

None
Top left
Top right
Bottom left
Bottom right

Allows you to specify initial window docking type.

Z order

Regular
Always on top
Always on bottom
Pinned to desktop

Allows you to specify window Z order.
Note: Pinned to desktop currently works only in Windows Explorer (i.e. other shells like Litestep are not supported)


Settings - Appearance (more)

Controls

Show menu

Shows/hides main menu.

Show toolbar

Shows/hides toolbar.

Show status bar

Shows/hides status bar.

Show tabs

Shows/hides tabs bar.

Hide single tab

If checked, tabs bar will be hidden if there's only one tab active.

Tabs on bottom

If checked, tabs bar will appear at the bottom of the main window.

Show scrollbars

If checked, scrollbars will be shown if the underlying console shows them. If not checked, scrollbars will be always hidden.

Flat scrollbars

If checked, the style of the scrollbars will be flat if available.

Styles

Caption

If checked, main window will have a title bar.

Resizable

If checked, main window will be resizable.

Border

If checked, main window will have a border.

Taskbar button

If checked, Console's taskbar button will be visible.

Tray icon

If checked, Console will show an icon in the tray bar.

Inside border

Specifies Console's inside (client area) border.

Selection color

Sets the background color of the selection. The foreground color will be affected by this color.

Window transparency

None
Alpha
Color key

Specifies transparency type.
Alpha transparency is the 'real' transparency.
Color key transparency allows you to specify a single color that will be made transparent. All window pixels having this color will be transparent and mouse clicks will pass through transparent areas.

Active window

Specifies alpha transparency for while Console window is active.

Inactive window

Specifies alpha transparency for while Console window is not active.

Key color

Specifies transparency color for 'color key' transparency.


Settings - Behavior

Copy & paste

Copy on select

If checked, selected text will be copied and selection cleared afer you finish selecting the text.

Clear selection on copy

If checked, the selection will be cleared right after being copied. For example, if Copy on select is not checked, you would need to either press Copy selection hotkey or perform Copy/clear selection mouse action to copy the selection to the system clipboard. If this checkbox is checked then the selection will be cleared right after you perform one of those actions. Otherwise, you will need to press Clear selection hotkey or perform Copy/clear selection mouse action to return to the normal mode.

Don't wrap long lines

If checked, long lines will not be wrapped. When a selected row doesn't end with a space, a line break will not be inserted before adding the next row.

Trim trailing spaces

If checked, trailing spaces in each copied line will be deleted.

Page scrolling

Scroll one screen
Scroll X rows

Allows you to specify how much Console will scroll when clicking scrollbars.
Scroll one screen will scroll one page (current row or column count)
Scroll X rows will scroll Console window for the specified number of rows.

Copy new line character

Windows (CR+LF)

If selected the copy operation will convert the carriage return using the Windows convention.

Unix (LF)

If selected the copy operation will convert the carriage return using the Unix convention.

Inactive tab activity flash

Flash inactive tabs

If checked, the inactive tabs flashes when some activities are detected in the corresponding console.

Falshes

Indicate the number of times an inactive tab will flash when some activities are detected in the corresponding console.

Leave highlighted

If checked, the inactive tab where some activities have been detected in the corresponding console will stay highlighted even if the activities have stopped.


Settings - Hotkeys

Command/Hotkey

This list shows commands supported by Console.

To change a command hotkey, select a command from the list and click in the Hotkey box. Then, press your hotkey combination (e.g. CTRL+4) and click Assign button. The command list will be updated.

To clear a hotkey command, click Clear button and then click Assign button.

Use Scroll Lock for scrolling

If checked, you can scroll Console window using the arrow and Page Up/Down keys when Scroll Lock is on.


Settings - Mouse

Command/Mouse action

This list shows mouse commands supported by Console.

To change a command mouse action, select a command from the list. Then, select a mouse button from the combo box and modifier keys (Ctrl, Shift, Alt). Click Assign button to assign mouse action to command.

To clear a mouse command, click Clear button and then click Assign button.


Settings - Tabs

Buttons

Add
Delete
Move up
Move down

These buttons allow you to create/delete a new tab definition and to move tab definitions up/down the list.

Title & icon

Title

Specifies tab title.

Icon

Specifies tab icon. If empty, the tab will use main window icon.

Use default

If checked, the default Console's icon will be used for this tab.

Shell

Shell

Specifies tab shell command line. If empty, the tab will use Console's default shell.

Startup dir

Specifies tab's shell initial directory. If empty, Console's default initial directory will be used.

If the checkbox is checked, a dialog, asking for another user's credentials will be displayed. The dialog will be pre-populated with the given user name.

Cursor

Style

Select cursor style from the list.

Color

Click on the square to select cursor color.

Background

Solid
Image
Wallpaper

Select background type.
Solid specifies a single color background.
Image specifies a bitmap background.
Wallpaper specifies that the desktop wallpaper will be used as the background image.

Color

Select color for solid background type.

File

Specifies background image file for image background type.

Relative

If checked, background image will be relative, i.e. when moving the window, it will appear that it's move above the background image.

Position

Select image position from the list. Background image can be centered, stretched or tiled

Extend across monitors

If checked, background image will centered/stretched/tiled acroos multiple monitors (if present)

Tint color

Select tint color for image and wallpaper background types.

Tint opacity

Set tint opacity for image and wallpaper background types.


Language

Here's how to properly setup your language and font settings for Console.

Please read this carefully, especially if you're using double-width character languages. As far as I know, they're:

  • Japanese Shift-JIS (codepage 932)
  • Simplified Chinese GBK (codepage 936)
  • Korean (codepage 949)
  • Traditional Chinese Big5 (codepage 950)

So, to setup your language:

  1. Start registry editor (Start->Run, type regedit). Find HKEY_CURRENT_USER\Console key. If there is a subkey named "Console2 command window", delete it.

    NOTE: PLEASE be careful when deleting stuff from registry. You can break things.
  2. Open Control Panel and run "Regional and Language options". Go to "Advanced" tab. In the "Language for non-Unicode programs" find your language. This is especially critical for double width character languages. Click OK. you may get a dialog saying that required files are already installed on the hard disk. You can click 'yes' here to skip installing language files from a Windows CD/DVD. After that you will get 'restart computer' dialog. Click yes.
  3. After restart, run Console. Unhide windows console (View->Console window) and open its properties dialog. Go to "Font" tab. Raster Fonts will be selected in the fonts list. Choose the other, TrueType font. For most languages, this will be Lucida Console. For double-width character languages, these should be proper fonts (I don't read Japanese/Chinese/Korean ideograms, I just read these from the registry :-)

    • Japanese (932) - MS Gothic
    • Simplified Chinese (936) - NSimSun
    • Korean (949) - GulimChe
    • Traditional Chinese (950) - MingLiU
    Anyway, select proper TrueType console font and set its size to something small (8 or 10 points). Small size will allow you bigger max Console window size.

    Click OK. "Apply Properties" dialog will appear, select "Save properties for future windows with same title" and click OK. This will save Windows console settings for Console. You can check your registry again, HKEY_CURRENT_USER\Console key. There should be "Console2 command window" subkey there again.
  4. You can now open Console settings and choose whatever fixed-width font you like (make sure it has characters you need :-)

Unfortunatelly, all of this is needed due to historic reasons: Windows console still uses codepages, and this seems to be the only way to set all of the options properly.

NOTE: I have noted that even Windows console shows some strange behavior with double-width character languages. As usual, if you notice something strange, unhide the hidden console window first and check what's happening there.

NOTE 2: When Console gets setup procedure, non-DBCS-language-users will not have to do this. Setup procedure will do this automagically. I will try to automate this for our Japanese/Chinese/Korean friends :-)

I hope I haven't forgotten anything... I tested this on Japanese Win2k and WinXP with East Asian Language support installed, so it should work.


Opening tabs as another user

If you configured a tab to run a shell as a different user, you will be asked for a username and password before opening a tab. To use a domain account, enter your username in the form domain\username

Running a shell as a different user has some limitations:

  • User's HOME env. variable must be explicitly set
  • If you're running 32-bit Console on 64-bit Windows and attempt to run cmd.exe as a shell, a 64-bit cmd.exe will be started and crash.
  • Currently, other user's environment is not loaded and expanded. You can't use env. variables in the shell and startup directory parameters.
  • As a consequence, if you leave the shell parameter empty, cmd.exe will be used as a shell, not other user's COMSPEC variable.


Known bugs & limitations

These are things that do not work (yet :-)

  • No maximize support. I'm still not completely happy with the code, so it's currently disabled.
  • Running tabs under different credentials. I plan to support 'run as' for tabs, but it will have to wait for the next version.
  • Full screen mode.
  • Alpha transparency with desktop background doesn't work as expected. I don't know why this happens.
  • There are several minor bugs and feature requests listed on project's Sourceforge page. You can monitor their status there. I will try to fix/implement them as time permits...


Reporting problems

Half of the work in fixing a bug can be done by properly reporting it. Just creating a bug report and saying "This does not work" is clearly not good enough. When fixing bugs, most of my time is usually wasted on finding details for these bug reports.

Please follow these guidelines when reporting problems:

  • Please use Console's SF bug reporting page. Reporting bugs elsewhere (like the forum) is not a good idea, since they may get lost and forgotten.
  • Write Console and Windows version you're using.
  • Attach your configuration file.
  • Attach screenshots if they illustrate your problem.
  • If you can, describe in detail the symptoms and steps to reproduce them. If I can't reproduce the bug, it's usually very difficult to fix it.
  • If Console output seems strange/garbled/broken, unhide the hidden console window (View->Console window). If its output looks the same, it's probably not a Console issue. Some console applications can behave strangely.
  • Try to eliminate other utilities you run that could interfere with Console (hotkey managers, etc).


Changelog

2.0

  • Initial Console 2 release.


Tips & Tricks

Tip 1 - Full console replacement

Console can completely replace your console windows, but you need to dig around the Registry.

There is a key in the Registry that allows you to specify some options for starting processes: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options. (HKLM stands for HKEY_LOCAL_MACHINE key)

For testing purposes, create a subkey named 'notepad.exe' (no quotes). In it, create a string value with name 'Debugger' and value 'calc.exe' (again, no quotes). Now, try running notepad. Calculator will be started instead! Cool! Don't forget to delete 'notepad.exe' key when done.

Now, for each console process you'd like to replace, you need to create one such key with 'Debugger' value set to run Console. Let's do it with cmd.exe:

  • Create a subkey named 'cmd.exe'.
  • In it, create a string value named 'Debugger' and set its value to 'C:\Program Files\Console\Console.exe -dbg' (path to Console.exe may be different on your computer)
  • Try running cmd.exe now!
  • If you wish Console to be started with a specific config file and/or tab name, put -c and -t command line options before -dbg option:

    'C:\Program Files\Console\Console.exe -c console_dbg.xml -t console2 -dbg'

Notes:

  • Creating a key like this will affect any program instance. For example, if cmd.exe is used to run batch files, starting a batch file from Windows explorer, Console will be started. Some applications (like Visual Studio) start shell instances to perform some tasks. Consider yourselves warned, things may go wrong.
  • This approach is a possible virus attack vector. Antivirus programs might consider these keys to be a virus attack.
  • This feature is considered a bit advanced and unsafe. That's why you can't configure it in Console.