Introduction to ConsoleZ

ConsoleZ is a Windows console window enhancement. It is a fork of Console project.

Console features include:

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

ConsoleZ features include:

  • Splitting Tabs into views (horizontally and vertically)
  • Grouping views (so input sent to one goes to all of them)
  • Windows Vista aero glass theme
  • Windows 7 jump list
  • Windows 7 wallpaper positions and slideshow
  • Windows 8 wallpapers on dual screen
  • Zooming with Ctrl-Mouse
  • Quake style console animation
  • Strict monospace font rendering
  • Settable opacity of text background color
  • Full screen
  • High DPI (per monitor)
  • Localization
  • Snippets
  • and more...

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

ConsoleZ 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 ConsoleZ.

ConsoleZ is hosted on github.


Copyright

ConsoleZ Copyright (C) 2011-2016 Christophe Bucher

Console 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.


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

People who contributed to Console Z code:

  • gfody - Dpi awareness
  • spamfilterman - -n command arg to set startup tab title
  • TheQwerty - ability to assign keyboard shortcuts for displaying context menus

ConsoleZ Translators:

  • ya158 - Russian
  • Christophe Bucher (cbucher) - French
  • cruzzer - German
  • sskopnik - German
  • rosolino - Japanese
  • Yusuke Sasaki (ys-nuem) - Japanese

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


Running ConsoleZ

Command line parameters

ConsoleZ 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)

-ws <workspace>

Specifies a workspace file.

-t <tab type>

Specifies a startup tab type. Tab must be defined in ConsoleZ settings.

-n <tab name>

Specifies a startup tab name.

-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 <arguments>

Appends arguments to the startup shell command line. Do not confuse whith a command that you type in the shell!

-p <base priority>

Specifies shell base priority.
Idle: Specifies that the threads of this process run only when the system is idle.
The idle priority class is inherited by child processes.

BelowNormal: Specifies that the process has priority above Idle but below Normal.
The below normal priority class is inherited by child processes.

Normal: Specifies that the process has no special scheduling needs.

AboveNormal: Specifies that the process has priority above Normal but below High.

High: Specifies that the process performs time-critical tasks that must be executed immediately, regardless of the load on the operating system. The threads of the process preempt the threads of normal or idle priority class processes. Use extreme care when specifying High for the process's priority class, because a high priority class application can use nearly all available processor time.

Realtime: Specifies that the process has the highest possible priority. The threads of a process with RealTime priority preempt the threads of all other processes, including operating system processes performing important tasks. Thus, a RealTime priority process that executes for more than a very brief interval can cause disk caches not to flush or cause the mouse to be unresponsive.

-ts <sleep time>

Specifies a sleep time (in milliseconds) before starting next tab. Only used when multiple tabs are specified.

-v <visibility>

Specifies the visibility of the application.
Show: Shows the application.
Hide: Hides the application.
Switch: Switches the application visibility. Shows the application if it is hidden and hides the application if it is visible.

-i

Specifies the instance name.

-reuse

Reuses another instance, if any exists, instead of starting a new one.

-attach

Attaches consoles to ConsoleZ. Each console is added in a new tab. Only consoles that are not attached to an instance of ConsoleZ are selected. ConsoleZ must have rights to hook console application.

Note: -t option is not used to set tab's title. It specifies one of the names of the tabs defined in ConsoleZ 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 powershell -d C:\WINDOWS -r "-NoExit -Command """Write-Host 'Hello World' -ForeGroundColor yellow"""" -t cmd -d D:\ -t ncftp

Will start

  • 'powershell' tab in C:\WINDOWS, running Write-Host 'Hello World' -ForeGroundColor yellow command in it
  • 'cmd' tab in D:\.
  • 'ncftp' tab will be started in the initial directory specified in its settings.

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.

Close All Tabs BUT This

Closes all tabs but the currently active tab.

Close All Tabs to the Left

Closes all tabs to the left of the currently active tab.

Close All Tabs to the Right

Closes all tabs to the right of the currently active tab.

Close View

Closes currently active view.

Detach View

Detaches currently active view.

Attach Consoles

Attaches consoles to ConsoleZ. Each console is added in a new tab. Only consoles that are not attached to an instance of ConsoleZ are selected. ConsoleZ must have rights to hook console application.

Load Workspace...

Opens a workspace file selection dialog (by default located in settings directory). If a workspace file is selected, tabs (with split views) defined in this file are created.

Save Workspace...

Opens a workspace file selection dialog (by default located in settings directory). If a workspace file is selected, current opened tabs (with split views) are saved into this file.

Exit

Closes all tabs and exits ConsoleZ.

Edit

Copy

Copies current selection.

Select All

Selects all the buffer.

Clear selection

Clears current selection.

Paste

Pastes text from clipboard.

Paste Selection

Pastes selected text in current console without copying text into clipboard.

Insert Snippet

Submenu for inserting a command snippet.

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.

Resume Scrolling

This action ends the Select mode and resume scrolling.

Forward Mouse Events

When active, mouse clicks and scrolls are forwarded to the underlying Windows console window.

Rename Tab

Renames current tab.

Clone Tab

Clones the whole current tab.

Split Horizontally

Splits the current view horizontally.

Split Vertically

Splits the current view vertically.

Swap Views

Swaps the current view with the previous one in the current tab.

Clone in New Tab

Launches a new shell, with same settings as the current view, in a new tab.

Settings...

Opens the settings dialog.

View

Console Window

Shows/hides the underlying Windows console window.

Font Information...

Displays console window font information.

Menu

Shows/hides the menu bar.

Toolbar

Shows/hides the toolbar.

Search Bar

Shows/hides the search bar.

Status Bar

Shows/hides the status bar.

Tabs

Shows/hides the tabs bar.

Full Screen

Toggles full screen.

Enable Transparency

Toggles Transparency.

Always On Top

Toggles window always on top.

Tabs

Submenu for selecting an opened tab.

Help

Help

Shows help.

Diagnose

Creates a diagnostic report.

About ConsoleZ...

Shows the about dialog.


Menus

Text formatting

Syntax:

%u

User name

%p

Shell process ID

%P

Last process ID attached to the console

%n

Tab number (the position in tabs bar)

%i

Tab index (the position in settings)

%I

Instance name

%m

Main window title (defined in settings or -w parameter)

%t

Tab title (defined in settings)

%s

Shell title

%d

Current directory

%D

Current directory leaf

%%

%

%?

?

%(

(

%)

)

%:

:

%A

y if running as administrator

%U

y if running as user

%N

y if running as user (net only)

?x( ... )

if x is defined then ... ; x can be u, m, t, s, d, D, A, U or N

?x( ... ):( ... )

if x is defined then ... else ... ; x can be u, m, t, s, d, D, A, U or N

?x:( ... )

if x is undefined then ... ; x can be u, m, t, s, d, D, A, U or N

Examples:

"C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64\windbg.exe" must be escaped like this: "C%:\Program Files %(x86%)\Windows Kits\8.0\Debuggers\x64\windbg.exe".

"%ProgramFiles(x86)%\Windows Kits\8.0\Debuggers\x64\windbg.exe" must be escaped like this: "%%ProgramFiles%(x86%)%%\Windows Kits\8.0\Debuggers\x64\windbg.exe".


Snippets

Dialog Box

Cancel

Close the snippet dialog box.
You can press this button or the escape key.

OK

Close the snippet dialog box and sends the snippet command into the current console view.
You can press this button or the enter key.

Show snippet information

If checked, information on snippet (author, version, code) are visible in dialog box bottom.

✉

Opens default email application to contact author.

www

Opens author's web site in default web browser.

Edit

Opens the snippet XML file in default XML editor.
You can configure your default text editor by creating/modifying this registry key: HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\text\shell\edit\command.

For example:
HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\text\shell\edit\command
(default) REG_SZ "C:\Program Files (x86)\Notepad++\notepad++.exe" %1

XML file

Snippet's definition is stored in XML file. Each XML file contains a collection of one or more snippets.
By default, snippets files location is Snippets sub-directory of the settings directory. The settings directory is the directory containing your configuration file. So usually snippets are located in %appdata%\Console\Snippets.

XML files schema:

ConsoleZSnippets

A snippets collection. Root element of XML schema. See XML file example.

Attributes
None.

Child Elements

Element | Description
DownloadUrl | Required element. Contains download URL. There must be exactly one DownloadUrl element in ConsoleZSnippets element.
Snippet | Required element. Contains snippet definition. You can define one or multiple Snippet elements in ConsoleZSnippets element.

Parent Elements
None.

DownloadUrl

Download URL.

Attributes
None.

Child Elements
None.

Parent Elements

Element | Description
ConsoleZSnippets | Root element of XML schema.

Snippet

Snippet definition. See dialog box from XML example.

Attributes
None.

Child Elements

Element | Description
Header | Required element. Specifies general information about the command snippet. There must be exactly one Header element in Snippet element.
Declarations | Optional element. Contains the literals of a command snippet that you can edit. There may be zero or one Declarations element in Snippet element.
Code | Required element. Specifies the code that you want to insert. There must be exactly one Code element in Snippet element.

Parent Elements

Element | Description
ConsoleZSnippets | Root element of XML schema.

Header

Specifies general information about the command snippet.

Attributes
None.

Child Elements

Element | Description
Title | Required element. The friendly name of the command snippet. There must be exactly one Title element in a Header element.
Description | Required element. A description of the command snippet. There must be exactly one Title element in a Header element.
Author | Required element. The name of the person or company that authored the command snippet. There must be exactly one Title element in a Header element.
Version | Required element. The command snippet version. There must be exactly one Version element in a Header element.
ShellTypes | Optional element. Contains shell types for which command snippet is usable. There may be zero or one ShellTypes element in Header element.

Parent Elements

Element | Description
Snippet | Snippet definition.

Title

Opens author's web site in default web browser.
Attributes
None.

Child Elements
None.

Parent Elements

Element | Description
Header | Specifies general information about the command snippet.

Description

A description of the command snippet.

Attributes
None.

Child Elements
None.

Parent Elements

Element | Description
Header | Specifies general information about the command snippet.

Author

The name of the person or company that authored the command snippet.

Attributes

Attribute | Description
Url | Optional attribute. Author's web site.
Email | Optional attribute. Author's email address.

Child Elements
None.

Parent Elements

Element | Description
Header | Specifies general information about the command snippet.

Version

The command snippet version.

Attributes
None.

Child Elements
None.

Parent Elements

Element | Description
Header | Specifies general information about the command snippet.

ShellTypes

Contains shell types for which command snippet is usable.

Attributes
None.

Child Elements

Element | Description
ShellType | Optional element. Specifies shell types for which command snippet is usable. There may be zero, one or multiple ShellType elements in ShellTypes element.

Parent Elements

Element | Description
Header | Specifies general information about the command snippet.

ShellType

Specifies shell types for which command snippet is usable.

Attributes
None.

Child Elements
None.

Parent Elements

Element | Description
ShellTypes | Contains shell types for which command snippet is usable.

Declarations

Contains the literals of a command snippet that you can edit.

Attributes
None.

Child Elements

Element | Description
Literal | Optional element. Contains literals. You can define 0 to 99 Literal elements in Declarations element.

Parent Elements

Element | Description
Snippet | Snippet definition.

Literal

Defines the literals of the command snippet that you can edit.
Attributes
None.

Child Elements

Element | Description
ID | Required element. Specifies a unique identifier for the literal. There must be exactly one ID element in a Literal element.
ToolTip | Required element. Contains literals. You can define 0 to 99 Literal elements in Declarations element. There must be exactly one ToolTip element in a Literal element.
Default | Required element. Contains literals. You can define 0 to 99 Literal elements in Declarations element. There must be exactly one Default element in a Literal element.

Parent Elements

Element | Description
Declarations | Contains the literals of a command snippet that you can edit.

ID

Specifies a unique identifier for the literal.

Attributes
None.

Child Elements
None.

Parent Elements

Element | Description
Literal | Defines the literals of the command snippet that you can edit.

ToolTip

Describes the expected value and usage of the literal.

Attributes
None.

Child Elements
None.

Parent Elements

Element | Description
Literal | Defines the literals of the command snippet that you can edit.

Default

Specifies the default value of the literal.

Attributes
None.

Child Elements
None.

Parent Elements

Element | Description
Literal | Defines the literals of the command snippet that you can edit.

Code

Specifies the code that you want to insert.

Attributes

Attribute | Description
Delimiter | Optional attribute. Specifies the delimiter used to describe literals in the code. By default, the delimiter is $.

Child Elements
None.

Parent Elements

Element | Description
Snippet | Snippet definition.

Here an example of XML file:

<?xml version="1.0" encoding="utf-8"?> <ConsoleZSnippets> <DownloadUrl>http://example.com/download/system.xml</DownloadUrl> <!-- ping --> <Snippet> <Header> <Title>ping</Title> <Description>ping command</Description> <Author Url="http://example.com" Email="email@example.com">YourName</Author> <Version>1.0</Version> <ShellTypes> <ShellType>cmd</ShellType> <ShellType>powershell</ShellType> </ShellTypes> </Header> <Declarations> <Literal> <ID>target_name</ID> <ToolTip>The target name.</ToolTip> <Default>localhost</Default> </Literal> <Literal> <ID>count</ID> <ToolTip>Number of echo requests to send.</ToolTip> <Default>4</Default> </Literal> <Literal> <ID>timeout</ID> <ToolTip>Timeout in milliseconds to wait for each reply.</ToolTip> <Default>500</Default> </Literal> </Declarations> <Code Delimiter="$"> <![CDATA[ping.exe -4 -n "$count$" -w "$timeout$" "$target_name$" ]]><!-- line return, the command is launched after clicking OK --> </Code> </Snippet> <!-- restart --> <Snippet> <Header> <Title>restart</Title> <Description>restart computer</Description> <Author Url="http://example.com" Email="email@example.com">YourName</Author> <Version>1.0</Version> <ShellTypes> <ShellType>cmd</ShellType> </ShellTypes> </Header> <Declarations> <Literal> <ID>comment</ID> <ToolTip>Comment on the reason for the restart or shutdown.</ToolTip> <Default>I have a really good reason!</Default> </Literal> </Declarations> <Code Delimiter="$"> <![CDATA[shutdown /r /t 0 /c "$comment$"]]><!-- no line return, you must press enter after clicking OK --> </Code> </Snippet> <!-- hello world --> <Snippet> <Header> <Title>hello world</Title> <Description>The most trivial snippet!</Description> <Author Url="http://example.com" Email="email@example.com">YourName</Author> <Version>1.0</Version> <ShellTypes> <ShellType>cmd</ShellType> </ShellTypes> </Header> <Code> <![CDATA[@echo hello world]]> </Code> </Snippet> <Snippet> <Header> <Title>hello world</Title> <Description>The most trivial snippet!</Description> <Author Url="http://example.com" Email="email@example.com">YourName</Author> <Version>1.0</Version> <ShellTypes> <ShellType>powershell</ShellType> </ShellTypes> </Header> <Code> <![CDATA[Write-Host 'hello world' -ForegroundColor yellow]]> </Code> </Snippet> </ConsoleZSnippets>

Here an example dialog box from XML:


Workspaces

Workspace (XML) file

Workspace's definition is stored in XML file with workspace file extension. A workspace contains a collection of tabs.
By default, workspace files location is settings directory. The settings directory is the directory containing your configuration file. So usually workspaces are located in %appdata%\Console\Snippets.

XML files schema:

ConsoleZWorkspace

Contains workspace definition. Root element of XML schema. See XML file example.

Attributes
None.

Child Elements

Element | Description
Tab | Required element. Contains tab definition. You can define one or multiple Tab elements in ConsoleZWorkspace element.

Parent Elements
None.

Tab

Tab definition.

Attributes

Attribute | Description
Title | Required attribute. Specifies the title of the tab, defined in configuration file, containing the tab settings (background, cursor and text colors).
Name | Optional attribute. Specifies the displayed tab name. By default, the tab title is used.
HasFocus | Optional attribute. Specifies whether the tab has focus. By default, the tab has not focus.

Child Elements

Element | Description
SplitView | Optional element. Contains two panes of a split view. There must be exactly one SplitView or View element in Tab element.
View | Optional element. Console view definition. There may be zero or one Declarations element in Snippet element.

Parent Elements

Element | Description
ConsoleZWorkspace | Root element of XML schema.

SplitView

Contains two panes of a split view.

Attributes

Attribute | Description
Type | Required attribute. Specifies if the split is horizontal or vertical.
Ratio | Optional attribute. Specifies the split ratio in percent. By default, the ratio is 50%.

Child Elements

Element | Description
Pane0 | Required element. Contains the left pane definition (if split is vertical) or the top pane definition (if split is horizontal). There must be exactly one Pane0 element in a SplitView element.
Pane1 | Required element. Contains the right pane definition (if split is vertical) or the bottom pane definition (if split is horizontal). There must be exactly one Pane1 element in a SplitView element.

Parent Elements

Element | Description
Tab | Tab definition.
Pane0 | Contains the left pane definition (if split is vertical) or the top pane definition (if split is horizontal).
Pane1 | Contains the right pane definition (if split is vertical) or the bottom pane definition (if split is horizontal).

Pane0

Contains the left pane definition (if split is vertical) or the top pane definition (if split is horizontal).
Attributes
None.

Child Elements

Element | Description
SplitView | Optional element. Contains two panes of a split view. There must be exactly one SplitView or View element in Pane0 element.
View | Optional element. Console view definition. There may be zero or one Declarations element in Pane0 element.

Parent Elements

Element | Description
SplitView | Contains two panes of a split view.

Pane1

Contains the right pane definition (if split is vertical) or the bottom pane definition (if split is horizontal).
Attributes
None.

Child Elements

Element | Description
SplitView | Optional element. Contains two panes of a split view. There must be exactly one SplitView or View element in Pane1 element.
View | Optional element. Console view definition. There may be zero or one Declarations element in Pane1 element.

Parent Elements

Element | Description
SplitView | Contains two panes of a split view.

View

Console view definition.

Attributes

Attribute Description
Title Required attribute.

Specifies the title of the tab, defined in configuration file, containing the console settings (shell, icon and environment variables).
CurrentDirectory Optional attribute.

Specifies the console current directory. By default, the startup directory configured in tab settings is used.
ShellArguments Optional attribute.

Appends arguments to the shell command line. Do not confuse whith a command that you type in the shell! By default, empty.
BasePriority Optional attribute.

Specifies shell base priority. By default, the base priority configured in tab settings is used. Idle: Specifies that the threads of this process run only when the system is idle.
The idle priority class is inherited by child processes.

BelowNormal: Specifies that the process has priority above Idle but below Normal.
The below normal priority class is inherited by child processes.

Normal: Specifies that the process has no special scheduling needs.

AboveNormal: Specifies that the process has priority above Normal but below High.

High: Specifies that the process performs time-critical tasks that must be executed immediately, regardless of the load on the operating system. The threads of the process preempt the threads of normal or idle priority class processes. Use extreme care when specifying High for the process's priority class, because a high priority class application can use nearly all available processor time.

Realtime: Specifies that the process has the highest possible priority. The threads of a process with RealTime priority preempt the threads of all other processes, including operating system processes performing important tasks. Thus, a RealTime priority process that executes for more than a very brief interval can cause disk caches not to flush or cause the mouse to be unresponsive.

Child Elements
None.

Parent Elements

Element | Description
Tab | Tab definition.
Pane0 | Contains the left pane definition (if split is vertical) or the top pane definition (if split is horizontal).
Pane1 | Contains the right pane definition (if split is vertical) or the bottom pane definition (if split is horizontal).

Here an example of workspace file:

<?xml version="1.0" encoding="utf-8"?> <ConsoleZWorkspace> <Tab Title="tabA" Name="first"> <SplitView Type="Horizontal" Ratio="30"> <Pane0> <View Title="tabA" CurrentDirectory="G:\gitstuff\console.git\Console" ShellArguments="" </Pane0> <Pane1> <SplitView Type="Vertical" Ratio="50"> <Pane0> <View Title="tabA" CurrentDirectory="%AppData%\Console" ShellArguments="" </Pane0> <Pane1> <View Title="tabC" ShellArguments="" BasePriority="BelowNormal"/> </Pane1> </SplitView> </Pane1> </SplitView> </Tab> <Tab Title="tabB" Name="second"> <View Title="tabB" CurrentDirectory="G:\gitstuff\console.git\Console" ShellArguments=""/> </Tab> </ConsoleZWorkspace>


Settings

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 ConsoleZ 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.
The user directory is %APPDATA%\console.


Settings - Console

Shell

Shell

Specifies default shell commad line. If empty, ConsoleZ 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 ConsoleZ detects a change in the hidden console window. When a change is detected, ConsoleZ 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 ConsoleZ performs screen updates, even when there is no change detected. ConsoleZ 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.

Buffer size

Rows

Initial buffer row count.

Columns

Initial buffer column count.


Settings - Appearance

Title & icon

Title

Specifies the main window title.
Note: The title is overridden by the command line parameter -w.

Use tab titles

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

Main format

Specifies the text used to format the main window title. See text formatting syntax.

Tab format

Specifies the text used to format the tab title. See text formatting syntax.

Trim tab titles

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

to ... characters

Specify the maximum number of character of the tab name.

with ... characters at the 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 ConsoleZ icon will be used.

Use tab icons

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

Position

Initial state

When checked, allows you to specify initial window state (Normal window, Minimized, Maximized or Full screen).

Save on exit (1)

If checked, ConsoleZ window state will be saved on exit.

Initial position

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

X, Y

These values specify initial ConsoleZ window position.

Save on exit (2)

If checked, ConsoleZ window position will be saved on exit.

Initial size

When checked, allows you to specify initial window size. Otherwise, initial ConsoleZ window size will be determined by number of columns and rows of the shell.

W, H

These values specify initial ConsoleZ window size.

Save on exit (3)

If checked, ConsoleZ window size will be saved on exit.

Snap to desktop edges

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

Distance

Specifies window snap disance.

Docking

Specifies initial window docking type.

None
Top left
Top right
Bottom left
Bottom right
Top middle
Bottom middle
Right middle
Left middle

Z order

Allows you to specify window Z order.

Regular |
Always on top | Places the window above all non-topmost windows. The window maintains its topmost position even when it is deactivated.
Always on bottom | Places the window at the bottom of all other windows. The window maintains its bottom position even when it is active.
Pinned to desktop | Note: Pinned to desktop currently works only in Windows Explorer (i.e. other shells like Litestep are not supported)


Settings - Appearance (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.

Hide when inactive

If checked, main window is hidden when ConsoleZ is inactive. If Taskbar button is visible, main window is minimized; otherwise main window is hidden.

Quake-style

If checked, ConsoleZ uses a Quake-style console effect when showing or hiding.
This animation requires a global hotkey to hide/show the application. Assign a hotkey to the command Activate ConsoleZ (global) in Settings/HotKeys.
Window must be docked to a screen edge to determine animation direction. Select a Docking value, other than none, in Settings/Appearance.
If AERO is active, non-client area is not supported. Consider to uncheck Caption and Resizable.

Animation time

The time it takes to play the animation, in milliseconds.

Taskbar button

If checked, ConsoleZ taskbar button will be visible.

Tray icon

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

Jumplist (Win7)

If checked, ConsoleZ will create Windows 7 jumplist (shortcut for every tab accessible by right-clicking the icon in the taskbar).

Integrated IME

If checked, the Input Method Editor is integrated to the application (at the cursor position).

Per-monitor DPI

If checked, main window is per-monitor high DPI aware; otherwise main window is only high DPI aware. If your OS doen't support per-monitor high DPI awareness, high DPI awareness will be used.

Inside border

Specifies ConsoleZ inside (client area) border.

Selection

Legacy theme: Sets the background color of the selection. The foreground color will be affected by this color.
Aero theme: Sets the transparent overlay color of the selection.

Highlight

Legacy theme: Sets the background color of the highlighted text. The foreground color will be affected by this color.
Aero theme: Sets the transparent overlay color of the highlighted text.

View keeps background, colors and cursor when it's moved into another tab.

If checked, console view displays background, colors and cursor defined in tab settings corresponding to the shell.
If unchecked, console view displays background, colors and cursor defined in tab settings of the container tab.


Settings - Appearance (Controls)

Windowed/Fullscreen

If Windowed is selected, you are editing control settings available in windowed mode.
If Full screen is selected, you are editing control settings available in full screen mode.

Show menu

Shows/hides main menu.

Show toolbar

Shows/hides toolbar.

Show search bar

Shows/hides search bar.

Show status bar

Shows/hides status bar.

Show scrollbars

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

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.

Hide icons

If checked, icons are hidden in the tabs bar.

Hide close button

If checked, close button is hidden in the tabs bar.


Settings - Appearance (Transparency)

Windowed/Fullscreen

If Windowed is selected, you are editing transparency settings available in windowed mode.
If Full screen is selected, you are editing transparency settings available in full screen mode.

None
Alpha and color key
Alpha
Glass
Color key

Specifies transparency type.
Alpha transparency and color key transparency can be used together.
Alpha transparency is the 'real' transparency.
Vista aero glass effect.
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 ConsoleZ window is active.

Inactive window

Specifies alpha transparency for while ConsoleZ window is not active.

Key color

Specifies transparency color for 'color key' transparency.


Settings - Appearance (Font)

Font

Name

Specifies font name.

Size

Specifies font size.

Bold

If checked, font will be bold.

Italic

If checked, font will be italic.

Extra width

Specifies extra width, in pixels, added to the char width.

Smoothing

Specifies font smoothing.
Good documentation on font rendering can be found here.

Default | Use the control panel settings.
None | Full-Pixel Bi-Level Rendering.
ClearType | Asymmetric Sub-Pixel Anti-Aliasing (“Compatible” Advance Widths).
Natural ClearType | Asymmetric Sub-Pixel Anti-Aliasing (“Natural” Advance Widths ).
Antialiased | Full-Pixel Anti-Aliasing.

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.

Display intensified colors in bold

If Bold is unchecked: chars with intensified foregroung colors (0x8 to 0xF) are displayed using bold font.
If Bold is checked: chars with intensified foregroung colors (0x8 to 0xF) are displayed using non bold font.

Display intensified colors in italic

If Italic is unchecked: chars with intensified foregroung colors (0x8 to 0xF) are displayed using italic font.
If Italic is checked: chars with intensified foregroung colors (0x8 to 0xF) are displayed using non italic font.

Enable typographic ligature

If checked, text rendering will use typographic ligatures defined in the selected font.
Here is a monospaced font with programming ligatures: Fira Code.
Fira Code (with ligatures):

Compare to Fira Mono (without ligatures):


Settings - Appearance (Full screen)

Start in full screen

Indicates if ConsoleZ will start in full screen.

Full screen monitor

Selects the monitor on which toggle full screen.


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.

Position-sensitive copy

If checked, the copy mouse action is valid only if mouse is over selection.

Rich Text Format

If checked, copy to clipboard as RTF.

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.

EOL

Indicates the number of spaces used to detect an end of line.

Trim trailing spaces

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

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.

Word selection delimiters

Left

List of left delimiter characters.

Right

List of right delimiter characters.

include

If checked, the delimiter is included in selection.

Inactive tab activity flash

Flash inactive tabs

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

Flashes

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.

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 for the specified number of rows.

Environment

Inherit environment variables

If checked, shells launched by ConsoleZ inherit environment variables from the process which launched ConsoleZ.

Pick up system or user environment variables changes

If checked, environment block is refreshed when WM_SETTINGCHANGE window message is received. This window message is broadcasted when system or user environment variables are updated.
If checked, a new environment block is created (You can inherit environment variables, from process which launched ConsoleZ, except those that are defined in system or user environment).


Settings - Behavior

Focus

Follow mouse

If checked, the view, where mouse is hover, has the focus.

Instance(s)

Allow multiple instances

If checked, every call to ConsoleZ will correspond to a new instance.
Otherwise only one instance of ConsoleZ will exist and the call to ConsoleZ will correspond to a new tab.

Split/Clone

Open new shell in current directory

If checked, new shell created by following actions will use the same current directory as the active view:
Split the current view horizontally
Split the current view vertically
Clone the current view in a new tab

Run as user

Use credential providers

If checked, credential providers are used (allowing integration of additional authentication mechanisms such as biometrics and smart cards).

Close/Detach

Allow closing the last tab/view

If checked, the tab close button is available for the last tab.
ConsoleZ cannot prevent shell termination (if you type exit for example), but can disable menu close actions or close button.

Exit on closing of last tab

If unchecked, the application doesn't exit on closing the last tab/view.

Confirm before closing multiple tabs/views

If checked, a confirmation message is displayed before closing multiple tabs/views.

Save workspace on exit

If checked, the current opened tabs and views are automatically saved in a workspace file on exit.
If checked, auto-saved workspace file will be automatically loaded when a new instance of ConsoleZ, without any tab specified in command line, starts.


Settings - Hotkeys

Command/Hotkey

This list shows commands supported by ConsoleZ.

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.

External commands use text formatting syntax.

Use Scroll Lock for scrolling

If checked, you can scroll console 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 ConsoleZ.

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

Adds a new tab in the list.

Clone

Clones the selected tab. A new tab is created with same settings and a title suffixed with (2).

Delete

Deletes the selected tab.

Move up

Moves up, in the tabs list, the selected tab.

Move down

Moves down, in the tabs list, the selected tab.


Settings - Tabs (Main)

Title & icon

Title

Specifies tab title.
You can regroup tabs settings in a submenu. Group name is delimited by '/' char. Tab's definitions belonging to the same group must follow each other.
Example:

A group named 'test' has been defined.

Icon

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

Use shell icon

If checked, tab's icon is extracted from shell executable. This is the icon displayed by Windows file explorer.

Shell

Shell

Specifies tab shell command line. If empty, the tab will use ConsoleZ's default shell.
If the selected file is a link, then icon, program's path, arguments, working directory and "run as administrator" option are extracted from the link. The link path is not saved. The link can be deleted.

Startup dir

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

Base priority

Specifies shell base priority.
Idle: Specifies that the threads of this process run only when the system is idle.
The idle priority class is inherited by child processes.

BelowNormal: Specifies that the process has priority above Idle but below Normal.
The below normal priority class is inherited by child processes.

Normal: Specifies that the process has no special scheduling needs.

AboveNormal: Specifies that the process has priority above Normal but below High.

High: Specifies that the process performs time-critical tasks that must be executed immediately, regardless of the load on the operating system. The threads of the process preempt the threads of normal or idle priority class processes. Use extreme care when specifying High for the process's priority class, because a high priority class application can use nearly all available processor time.

Realtime: Specifies that the process has the highest possible priority. The threads of a process with RealTime priority preempt the threads of all other processes, including operating system processes performing important tasks. Thus, a RealTime priority process that executes for more than a very brief interval can cause disk caches not to flush or cause the mouse to be unresponsive.

Run as current user

Uses current user credentials.

Run as administrator

Run as administrator with full unrestricted elevated rights and privileges. Depending on what the UAC settings are set to, an administrator user may or may not be prompted first by UAC to allow or deny the program to "Run as administrator" (elevated).

Run as user

Run with different user credentials. A dialog, asking for another user's credentials, will be displayed. The dialog will be pre-populated with the given user name. To use a domain account, enter your username in the form domain\username or username@domain.

Net only

If checked, this value can be used to create a process that uses a different set of credentials locally than it does remotely. This is useful in inter-domain scenarios where there is no trust relationship. The system does not validate the specified credentials. Therefore, the process can start, but it may not have access to network resources.


Settings - Tabs (Background)

Solid
Image
Bing
Wallpaper

Select background type.
Solid specifies a single color background.
Image specifies a bitmap background.
Bing specifies Bing image of the day. Internet connection is required.
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.
"Fit" and "Fill" options generate a stretched image, keeping aspect ratio.

Extend across monitors

If checked, background image will centered/stretched/tiled across 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.

Inherit

If checked, the tab uses inherited backgroud.

Set as default

Set the current tab's backgroud as default. Tabs, having Inherit checked, will use this background.


Settings - Tabs (Colors & Cursor)

Colors map

These squares allow you to remap default 16 console colors. Left square shows the inherited color. Clicking on the right square will bring up a color picker allowing you to select a new color.

Background text opacity

The opacity of the background color can be adjusted.

Import...

Imports color map from another configuration file.

Reset

Reset button will reset colors to their default values.

Inherit

If checked, the tab uses inherited colors map.

Set as default

Set the current tab's colors map as default. Tabs, having Inherit checked, will use this colors map.

Cursor

Style

Select cursor style from the list.

Color

Click on the square to select cursor color.

Inherit

If checked, the tab uses inherited cursor.

Set as default

Set the current tab's cursor as default. Tabs, having Inherit checked, will use this cursor.


Settings - Tabs (Environment)

Variable/Options/Value

The list of environment variables.
Checked elements are added to the environment block of new processes.
Unchecked elements are ignored.

Delete

Delete the selected variable.

Edit

Edit the selected variable.
Set Variable and Value edit fields.

Add

Add or replace variable in the list.

Variable

The environment variable's name.

Value

The environment variable's value.


Language

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

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 "ConsoleZ 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 ConsoleZ. 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 ConsoleZ window size.

    Click OK. This will save Windows console settings for ConsoleZ. You can check your registry again, HKEY_CURRENT_USER\Console key. There should be "ConsoleZ command window" subkey there again.
  4. You can now open ConsoleZ 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 ConsoleZ 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 or username@domain.

Net Only: this value can be used to create a process that uses a different set of credentials locally than it does remotely. This is useful in inter-domain scenarios where there is no trust relationship. The system does not validate the specified credentials. Therefore, the process can start, but it may not have access to network resources.

Running a shell as a different user has some limitations:

  • User's HOME env. variable must be explicitly set
  • The impersonated user must have read access rights to the settings file and the folder containing this file.


Changelog

! changed
- removed
+ added
* fixed

Changes in 1.19.0 (14 Apr 2019)

! Ignore tab flashing if console view age is less than 3 seconds.
+ Named instances.
+ "-attach" command line switch.
+ Move current view into a new tab.
+ Record which tab had focus when saving workspace.
+ Clone the whole current tab.
+ Organize tabs within submenus.
* Selection length was not refreshed in status bar.
* Fix tab bar showing in full screen mode.
* Fix crash when spliting then selecting another pane.
* Tab background position was not preserved.
* Tabs menu doesn't switch to a tab after the 10th choice.
* If OpenClipboard fails, retry for 10 times with a 100ms delay.

Changes in 1.18.3 (30 Apr 2018)

! WTL 10.0.7336
! GDI+ replaces FreeImage library in aero version.
+ Maximize/Restore a view in a tab.
+ Support for animated background pictures.
+ Support for alternate desktop wallpaper pictures.
* Fix duplicated "Switch to next tab" and "Switch to previous tab"
  commands in hotkeys settings.

Changes in 1.18.2 (29 Sep 2017)

! Display an error dialog when seeking settings of an undefined tab.
! Detect if ConsoleZ is hooked (ConsoleHook/ConsoleHook32).
+ "New Tab" button in tabs area.
+ Save "Switch On/Off Transparency" state.
* Fix startup directory consistency.
* Fix retrieving of last process ID attached to the console.
* Fix sliders in transparency settings dialog.
* Refresh tab title when last process ID attached to the console changes.
* Fix bing image copyright displayed into status bar.
* Fix external command saving into settings file.

Changes in 1.18.1 (27 Mar 2017)

+ Transparency settings per windowed/full screen mode.
+ Print code page (for each shell) in diagnostic report.
* Fix ALT-SPACE menu.
* Fix "Attach Consoles" failure.
* Fix split bar size.
* Start a safe console when no console started.
* Standardize hotkeys modifiers and order (mouse).

Changes in 1.18.0 (17 Feb 2017)

! Update tab title current directory in realtime.
! Renaming a tab title to empty is no longer allowed
  (empty string is replaced by tab title from settings).
! Backup settings file using a timestamp (unique backup filename).
! Tabbing framework localization.
+ Workspaces.
+ Option to hide the "close tab" button.
+ Split bar size is configurable.
+ Allow merging tabs (horizontally or vertically).
+ Allow view keeping background, colors and cursor
  when it moved into another tab.
+ Support for reversed video (swap foreground and background).
+ Allow mouse events forwarding.
+ Show Bing image copyright in status bar.
* GDI leaks (thanks to char101).
* Allow choosing environment variables inheritance method.
* Improve Windows 10 glass transparency.
* PowerShell progress bar is fixed on Windows 10.

Changes in 1.17.2 (18 Nov 2016)

! New Icons (a gift from BlazenBundy).
! Use icon defined in appearance settings as default tab icon.
+ Allow configuration of icon size.
+ Option to prevent exiting ConsoleZ on closing of last tab.
+ Support for underlined text.
* Fix "snap to edges" feature.
* Fix rebar auto sizing bug.
* Fix docking bug when showing/hiding bar.
* Update window icon after settings edition.
* Update tab icons after settings edition.
* German localization (thanks to sskopnik).

Changes in 1.17.1 (22 Sep 2016)

! Handle XML parsing errors (configuration file and snippets).
+ "Toggle always on top" hotkey command.
+ New high dpi icons (250%, 300%, 400% and 500%).
+ Bing image of the day as background.
* ConsoleZ no longer closes without explanation on bad config.
* Start a safe console when no console started.
* Fix scroll bars position in hidden tabs.
* System environment variables no longer override local environment variables.
* Japanese localization (thanks to ys-nuem).
* Link files are also resolved when text is copied in shell text box.

Changes in 1.17.0 (08 may 2016)

! Rebuild FreeImage 3.17.0 (static link without OpenMP)
- ConsoleZ no longer sets the current Windows console font to "Lucidia Console" size 5.
  (DBCS code page requires a specific font)
+ Snippets manager.
+ "Resume scrolling" command.
+ Configure initial window state (appearance settings).
+ Japanese localization (thanks to rosolino).
* Mono-instance is no longer forced in jump lists.
* User profile is fully created when running a shell with another user credentials.
* Scrolling during selection does not properly refresh.

Changes in 1.16.1 (08 mar 2016)

! Upgrade FreeImage version from 3.15.4 to 3.17.0.
! Show BMP/DIB/GIF/JPEG/PNG files in Browse background image dialog.
+ Detect new docking positions with "snap to desktop edges"
  (top/bottom/left/right middle).
+ ConsoleZ sets the current Windows console font to "Lucidia Console" size 5.
  Windows console should support UNICODE characters.
  Number of rows/columns should not be limited.
+ Support UNICODE picture filename.
+ German localization (thanks to cruzzer).
* Fix placement problem with "snap to desktop edges" when cursor is in another monitor.
* Fix crash when wallpaper picture loading fails.
* When you configured a background with relative picture then wallpaper was drawn.
* Fix the word selection: right delimiters was not used.
* "Click Link" does no longer launch an empty string.
  This was launching explorer in the current working directory.
* Fix highlighting color setting saving.
* Fix wallpaper display.

Changes in 1.16.0 (07 feb 2016)

! PowerShell progressbar detection is disabled.
! ConsoleZ hook can detect if the shell is not a Win32 console application.
+ Command-line switch to toggle window visibility.
+ Select text/column with keyboard.
+ Per-monitor DPI awareness.
+ Arrange tabs using keyboard.
+ Allow distinct controls settings for full screen
  and windowed application.
+ Environment inheritance is coming back.
  Inheritance works now with mono-instance.
  There is no inheritance when the shell run as administrator
  or whith another user credentials!
+ Glass effect transparency on Windows 10.
+ Specific ConsoleZxxx environment variables:
  ConsoleZBaseDir = folder containing console.exe
  ConsoleZVersion = current version of ConsoleZ
* Hide, when loosing focus, only if the new foreground window
  is not owned by our application.
* Fix crash when screen buffer size is reduced.
* Fix dpi scaling of some GUI parts.
* Fix activation by hotkey.

Changes in 1.15.0 (10 sep 2015)

+ Hide when loosing focus.
+ Support localization.
+ New command "paste selection".
+ Support %D (current directory leaf) in text formatting.
+ Support PowerShell progress bar.
+ Support typographic ligatures.
+ Support missing font smoothings: antialiased and "natural" ClearType.
+ Support localization.
+ French localization.
+ Russian localization.
* Fix "Clone in new Tab" inverts initial directory and tab's title.
* Fix incomplete shell title.
* Fix touch scrolling broken on Win10.
* Fix "Browse..." button for icon change causes program "Not Responding".
* Fix repaint failure when background is a relative image
  and the application is minimized.
* Fix hook can crash during resizing.

Changes in 1.14.0 (08 May 2015)

! Limit frame rate to avoid unresponsive application.
! Use IDesktopWallpaper to retrieve monitors' wallpaper (Win8).
! Update title even without text modification.
! Double-click on scroll buttons do nothing.
+ 'Tabs' entry in the menubar.
+ -n command arg to set startup tab title.
* Fix bad cursor display in tabs settings.
* Fix console cursor color.
* Fix a crash in diagnostic report writing.
* Call DoDataExchange(DDX_SAVE) before modifiying values
  in browse shell/initial dir buttons.
* Prevent from infinite waiting when the shell is terminated
  during a mouse forwarding or a text selection.
* Fix program does not respond by opening the setting dialog.
* Fix toolbar does not work from remote desktop.

Changes in 1.13.0 (14 Feb 2015)

! Visual Studio 2013
! WTL 9.4140 final
! Legacy 32 bits version is compatible with Windows XP.
! Support high DPI.
! Create HOMEDRIVE, HOMEPATH and HOMESHARE environment variables
  when launching shell as different user.
! Expand environment strings using environment bloc
                                 + HOMEDRIVE/HOMEPATH/HOMESHARE
                                 + variables defined in tab.
+ Switch on/off transparency.
+ CTRL-C event can be generated by configured hotkey.
+ Diagnose and get font information.
* "Snap to desktop edge" is ignored when Win key is down.
* Active auto horizontal scroll in search combobox.
* Fix restoring with "Snap to desktop edge".
* Fix crash when attaching a console with a screen bigger than ConsoleZ's view.
* Docking is ignored when ConsoleZ is full screen.
* Fix elevated process detection.

Changes in 1.12.0 (09 Oct 2014)

! The tab's title is now modified when you drag & drop a shortcut.
  The title is set with shortcut filename.
! The default colors map is no longer displayed in Settings/Console
! Mouse command "drag window" has no effect when application is maximized or runs
  in fullscreen mode.
+ Tab's background can be inherited.
+ Tab's cursor can be inherited.
+ Tab Base Priority.
+ "Click link" mouse command.
+ Set environment variables per tabs.
+ Clear and Reset Scrollback.
* Use impersonated user's environment block.

Changes in 1.11.0 (23 Jun 2014)

! Window columns limit is now 300.
! buffer columns limit is now 9999.
! Word selection is no longer limited to the window.
! Minimize to systray when taskbar button is unchecked and systray icon is checked.
! Changing docking position in settings no longer require restart.
! Redesign the tabbar (flat style).
! Allow starting a new selection when current selection is not cleared.
+ Attach consoles.
+ Detach view.
+ Add horizontal bar cursor.
+ Add %d to text formatting syntax: current directory.
+ Add %P to text formatting syntax: ID of last process attached to the console.
+ Support external commands (syntax uses title formatting).
+ Support credential providers (allowing integration of additional authentication
  mechanisms such as biometrics and smart cards).
+ New docking positions: top middle, bottom middle, left middle and right middle.
+ Quake like animation time is settable.
+ Add search bar.
+ Allow disabling RTF in settings.
* Fix aero toolbar drawing.
* Docking no longer affects maximized application.

Changes in 1.10.0 (30 Mar 2014)

! Tab number is now full part of the title.
! Main title format can be defined by user.
! Tab title format can be defined by user.
! Remove "Administrator:" prefix.
+ Input Method Editor (IME) support.
+ Allow selection by column.
+ Clone current view in a new tab.
+ Clone/Split using the current directory.
* Fix "pinned to desktop" mode on Windows 7 and more.
* Fix paste inconsistency on multiple lines.
* Fix Quake like show/hide animation.
* Tab text was hidden when less than 12 pixels.
* Fix Quake like show/hide.
* Fix some crashes.
* Fix starting directory.
* Fix VIM dead char.

Changes in 1.09.1 (17 Dec 2013)

! In settings, check if a hotkey is already assigned.
* Fix the new keyboard handling.

Changes in 1.09.0 (01 Dec 2013)

! Title options are more consistent.
! Activate ConsoleZ (global) hotkey minimizes the application if active.
! Quake like: activates the previous application when hiding.
! Buffer rows limit increased to 32766.
! Can configure the number of spaces used to detect an end of line.
+ Focus follows mouse.
+ New actions in "File" menu:
  "Close All Tabs BUT This"
  "Close All Tabs to the Left"
  "Close All Tabs to the Right"
+ Right click on tabs: selects the tab and displays a popup menu.
+ New cursor that mimics the Windows console's one.
+ Can specify an initial application window size (in pixels).
+ Can save the application window size (in pixels) on exit.
+ Allow multiple instances (or single instance).
+ Blinking XTerm Cursor.
+ Support of drag and drop in settings.
+ Can hide icons in tabs bar.
* Fix problem with dead chars sent to multiple consoles (new keyboard handling).
* Fix icon extraction with negative index.
* Fix a visual bug when caption and resize are removed.
* Transmit the current working directory when application instance is reused.
* Maximized application was restored at wrong position.
* If the scroll bar is unnecessary, disable the scroll bar instead of removing it.

Changes in 1.08.0 (28 Sep 2013)

! prettier split bar (aero only).
+ displays intensified colors in bold.
+ displays intensified colors in italic.
+ user can configure an extra width added to the fixed width of the font.
+ shell can be launched with elevated priviledges (run as administrator).
+ supports shell link files (.lnk) in tabs settings.
  Icon, program's path, arguments, working directory and "run as administrator"
  option are extracted from the link.
* Some cursors was hidden with black color.
* Fade cursor was blinking when console was inactive.
* Fix DBCS rendering.
* Fix DBCS selection.
* Fix DBCS cursor.
* Fix hang when starting with multiple startup tabs.
* Pressing alt key will switch the menu bar visibility only if menu bar is not
  permanently on.
* Fix pasting to multiple views when views are grouped.
* Inputs are no longer sent to views do not belong to the group.
* Active view cannot be painted (and 100% cpu).

Changes in 1.07.1 (05 Jul 2013)

* Sometimes the application could not start with multiple tabs.
  The delay between initial tabs was uninitialized.
* Icons missing in tabs menu popup.

Changes in 1.07.0 (26 May 2013)

! Limits the maximized windows size on monitors with taskbar
  so ConsoleZ, with no border, no longer overlaps the taskbar when WIN+UP is pressed
! Changing tabbar position in settings no longer require restart.
! Settings edition no longer modifies the zoom factor
+ Full screen support
+ Full screen button in taskbar
+ Full screen hot key (default: F11)
+ Full screen settings: can start in full screen and select the full screen monitor
+ Left and right delimiters for word selection can be set
+ View can be closed from the menu
+ New behavior settings:
  "Allow closing the last tab/view"
  "Confirm before closing multiple tabs/views"
+ Color map per tab
+ Color map can be imported from another configuration file
+ 3 context menus can be configured in mouse settings:
  Context menu #1 = full menu
  Context menu #2 = configured tabs
  Context menu #3 = opened tabs
+ Zoom factor in status bar
+ New hotkeys:
  "Zoom 100%"      (default: CTRL+0 NUM KEYPAD)
  "Zoom increment" (default: CTRL++ NUM KEYPAD)
  "Zoom decrement" (default: CTRL+- NUM KEYPAD)
* Caption was removed when border was unchecked
* Display of hotkey '&' in menu was truncated
* Press ALT key, with mouse action, no longer shows/hides the menu

Changes in 1.06.0 (24 Mar 2013)

! The cloned tab title is suffixed with (2).
! about dialog box improvement
! Hotkeys are displayed in the menu
! Restart is no longer needed for these appearance settings:
  "Caption"
  "Resizable"
  "Border"
  "Taskbar button"
+ new option "Net Only" to "Run as user"
  the user credentials are used only to access network resources
  the user is displayed in tab title surrounded with braces
+ "Run as user" supports UPN format (user@domain).
+ new buttons in the toolbar:
  "Rename tab"
  "Split Horizontally"
  "Split Vertically"
+ new hotkeys:
  "New Tab 11"            (default: CTRL+F11)
  "New Tab 12"            (default: CTRL+F12)
  "Switch to left view"   (default: ALT+LEFT)
  "Switch to right view"  (default: ALT+RIGHT)
  "Switch to top view"    (default: ALT+UP)
  "Switch to bottom view" (default: ALT+DOWN)
+ Windows key can be used in global hotkeys.
+ The glass frame extended in client area (toolbar and tabs) can be used to
  move the window.
+ The glass frame extended in client area (tabs only) can be used to
  maximize or restore the window by double clicking.
* If the only one tab was cloned, the "delete" button remained disabled.
* Under Windows 8, the call to GetTextMetrics function failed with some fonts.
  The return code wasn't checked and char metrics wasn't correctly initialized.
* wrong tabs scrolling
* close button drawing
* background of tab was black with basic Windows theme
* error handling and return code checking
* Re-add tray icon if Windows Explorer restarts.
* When files are dropped on a view, this view gets the focus.
* Title was not updated when view changed.

Changes in 1.05.0 (2 Feb 2013)

! FreeImage 3.15.4
! Visual Studio 2012
! WTL 8.1.12085
! Forces monospace displaying
  by adjusting the size of chars larger than average width font.
! Limits vertical scrolling to the furthest buffer location viewed.
+ Windows 8 can use a wallpaper per monitor.
+ Displays a closing confirmation when there is only one tab
  but multiple views.
+ Improves the status bar with:
  console buffer size, console screen size,
  selection size and console PID
* Dropping a file affects all views in a group.
* Aero glass margins are resetted when composition change
  (hibernation disables DWM, at wakeup ConsoleZ was fully transparent).