Version 2.1
Adds support for cursor key mode (Scroll Lock), a number of requested
features including show line ends being updated to show the chars (LF/CR),
reopening connection on restart, double clicks word selecting.
Features
Cursor key modes
WhippyTerm has a new mode "Cursor key mode" that lets you move the view
around instead of sending cursor movement commands.
Normally when you press the cursor keys or the other movement keys (home,
end, page up, page down, etc) the ANSI decoder will send escape sequences
out the active connection. This new mode has these keys act locally and
not send any sequences. You toggle this mode on/off by pressing a key
you select in settings.
By default the toggle key is set to the Scroll Lock key. When scroll lock
is on, the arrow keys move the display up a line. When scroll lock is
off, then arrow keys send escape sequences. You can also set the toggle
key the escape key, the insert key, or no keys at all. If you set it
none, you can use the key bindings to map the toggle key to any bindable
key (using the ToggleCursorKeyMode command).
For example lets say you have an open terminal and type "ls -l" and the
contents of the list take 1 and a half screens. You want to scroll back
up to see the first entry, normally you would reach for the mouse to
scroll back. With cursor key mode, you press Scroll Lock and you can
now use the up arrow (or page up) to scroll back up to see the line.
After seeing what you where interested in you can cursor back down,
press Scroll Lock and use the up arrow to get the "ls -l" line back
and make change changes before rerunning the command.
NOTE: Linux's handling of the Scroll Lock key isn't.... great.
For most Linux distributions the Scroll Lock is disabled and may even be
eaten by the OS. You have to enable it (often in the command line, but
sometimes it can't be enabled at all) before it will start to work.
WhippyTerm tries to make it work, but often it just can't.
If you're on Linux it's suggested to use the Insert key or something
else.
Backspace can now be made destructive
A new setting has been added so when you press the backspace key it will
clear the char under the cursor instead of just moving on to it.
Double-clicking selects the word
When you double-click on a word in the text display WhippyTerm will now
select the word. If you then drag the mouse (while holding the mouse
button) the selection will move by words.
If you triple-click on a line in the text display WhippyTerm will now
select the line. If you then drag the mouse (while holding the mouse
button) the selection will move by lines.
Show line ends updated to show the chars
The show line ends has been updated to display the marks + a CR,
LF,CRLF,or a LFCR at the end of the line.
This is a guess of what WhippyTerm thinks the line ending of the line should
have been. This is because the end of line chars move the cursor, changing
the line that the cursor is on or where on the line it is. This means
that technically the CR would go on the new line instead of the old
line (or the LF is seen at the start of the old line).
For this reason WhippyTerm now just tracks if CR/LF come in and
adjusts a guess at what ended the line. If the user moves the
cursor up to an already existing line it will adjust the
existing line ending on that line even if the cursor was in the
middle of the line.
Restore connection on startup
The currently open connections have been added to session data. WhippyTerm
will restore any open connections, the open/close state of the connection,
custom settings, and attributes.
This can be turned on and off in the settings and defaults to off.
ANSI decoder now supports Page UP/DOWN and other movement keys
The built in ANSI decoder has been updated to send the the VT sequences for
the page up, page down, home, end, and insert end keys.
| Home | {esc}[1~ |
| Insert | {esc}[2~ |
| End | {esc}[4~ |
| Page up | {esc}[5~ |
| Page down | {esc}[6~ |
New key bindings
New key bindings have been added for the movement keys. You can use
these binding to assign moving around in the view to any bindable key.
| MovementTop | Move to the top of the scroll buffer |
| MovementBottom | Move to the bottom of the scroll buffer |
| MovementStartLine | Move to the start of the line |
| MovementEndLine | Move to the end of the line |
| MovementRight | Move the display by char to the right |
| MovementLeft | Move the display by char to the left |
| MovementUp | Move the display by line up in the scroll buffer |
| MovementDown | Move the display by line down in the scroll buffer |
| MovementPgUp | Move the display by screen back in the scroll buffer |
| MovementPgDown | Move the display by screen down in the scroll buffer |
| ToggleCursorKeyMode | Toggle Cursor Key Mode on/off |
Bridge connections now works on more that one connection at a time
Bridge connections use lock out the controls so you could only bridge two
connections at a time. If you had 4 connections open you could bridge
1<->2 but you where locked out from then bridging connections 3<->4.
This limit has been removed so you can now bridge any two connections
that are not bridged with another connection.
Full list of changes
2.1.0.0 (29 Oct 2025)
- Show line ends now show CR/LF
Show end of lines now shows the marks + a CR,LF,CRLF,or LFCR at the end of the line. This does not show the control chars that came in but instead shows a "guess" of what WhippyTerm things was the line ending. This is because the cursor moves between the first control char coming in and the second control char, making it a mess if you put the chars where they came in.
For this reason WhippyTerm now just tracks if CR/LF come in and adjusts a guess at what ended the line. If the user moves the cursor up to an already existing line it will adjust the existing line ending on that line even if the cursor was in the middle of the line.
- Added double-click a word in term window selects it, triple-click selects line
The selection system was updated to support double click and triple click. This does not apply to binary display.
- Added a "are you sure" popup on quit
When you close WhippyTerm it will now prompt to make sure you are sure if there is one or more open connection tabs.
This function can be turn on/off in the settings.
- Added a restore connection on startup option
A new setting has been added that will reopen the connection tabs that where open then WhippyTerm quits. It will store this info in the session data, and includes any custom settings applied to the connection, if the connection was open or closed, any connection options.
- Updated ANSI decoder to support Page Up/Down
The ANSI decoder was not sending page up, page down, home, end, and insert. It has been updated to send these.
- Added cursor key modes
A need mode was added called cursor key mode. It sets how the cursor and other movement keys (like the page up and down) work. When cursor key mode is "send" then pressing the cursor keys sends out control codes on the connection (what control codes depends on active data processor). When switched to "local" mode then cursor moves the window around and doesn't send anything out the connection. This is by default connected to the state of the Scroll Lock key.
- Added new commands to move the view around
New commands where added that lets the user bind keys to functions to move the current view window around. The user can now move the view up/down/left/right, goto the top/bottom of the buffer, and page up and down.
- Changed bridging so you can bridge more than 2 connections
The bridging code has been updated to let the user bridge more than 2 connections. You make as many pairs as you would like.
- Added new option for a destructive backspace
There is a new setting to change how the backspace works. If checked then instead of just moving the cursor, a space is placed over the cursor position. This is helpful if you have a prompt that supports editing but doesn't output a space to erase the char when doing a backspace.
2.0.2.0 (03 Oct 2025)
2.0.1.0 (30 Sep 2025)
2.0.0.0 (26 Sep 2025)
- [Polish] Fixed download/upload so you can't try to start a upload/download while the other is active.
If you started a download you could still goto the upload panel and start an upload (which wouldn't work out very well). This has been changed to lockout the others controls.
- [Enhancement] Added a menu item to copy the current selection to a send buffer
The user can now select some text and copy that text to a send buffer.
- [Bug fix] Fixed bug with selections in binary mode
When in binary mode the selection was showing up and disappearing randomly. There is there is selection was not be check so it was drawing random data as the selection. It has been fixed.
- [Bug fix] Added bookmark import/export
You can now export your bookmarks to a file and you can replace your bookmarks with the bookmarks from a saved file.
- [Bug fix] Added command line options
Added command line options when WhippyTerm is started from a CLI. You can now provide a list of URI's to open, or using the --bookmark option open a bookmark from available bookmarks.
A new help menu was added to explain the command line options.
- [Bug fix] Auto hide of panels made to work
The auto hide of panels was not implemented. You could turn on the option but it didn't do anything. Now when enabled clicking on the max text area or pressing select buttons in the panels will auto hide the panel and give focus to the text area.
- [Enhancement] A restart is no longer needed to uninstall a plugin
The plugin system was made more dynamic so you can install / uninstall plugins without restarting WhippyTerm. This also effects enable/disable plugin.
- [Enhancement] Added upgrade plugin
The only way to upgrade a plugin was to uninstall it and then reinstall it. A new button was added to the manage plugins dialog so the user can upgrade an installed plugin.
- [Enhancement] Added a calculate CRC dialog
A new calculate CRC dialog has been added. This will let the user input some hex data and calculate the CRC (for a selection) for that data. You can also select text in the main window and have it copied into the calculate CRC dialog. As with all CRC there is a button to generate source code to calculate the selection CRC type.
- [Enhancement] Added an select color button to the color settings
In Settings->Display->Colors you can input colors by Web # and sliders. A new button was added that you can press to use the color picker the same as with Cursor color.
- [Enhancement] Added an option to make portable version
Added an option to pull the settings and other files from the same directory as the exe. This will enable making a portable version that does not need to be installed (or needs admin rights).
- [Enhancement] Installing a data processor plugin will now enable it
When you install a new data processor plugin it will enable it in settings.
- [Enhancement] Server style IO plugins now start with "SRV_"
Server style IO plugins now should start their URI prefix with "SRV_" to show that they are a server. A server is a plugin that ways for a client to connect to it. This has been done to make things more consistant, so for example a TCP/IP server would now be SRV_TCP://localhost and the client would be TCP://localhost
- [Enhancement] Added an option to add a carriage return when a line feed is received
An option was added in settings so that the system will automatically add a carriage return (\r) when a new line (\n) is seen
- [Enhancement] Added option to do local echo
A new settings option has been added to do a local echo when sending data for half duplex connections.
- [Enhancement] Added the transmit delay to settings
You could set the send delay for a connection but it wasn't stored anywhere. A new setting has been added that lets you customize this for the system and have bookmarks store the setting.
an also just temperately for the current connection as well without changing the settings.
- [Enhancement] Moved the QT6 for GUI
Updated to QT6 for the GUI. This should add better support for display scaling (DPI).
- [Polish] Reworked custom connection settings menu work
Telling when a connection was using custom settings was not clear. The menu has been reworked to make it clearer.
- [Polish] Reworked how manage bookmarks dialog handles custom connection settings
The manage bookmarks dialog used push buttons to control if the bookmark was using custom settings or not. This was confusing and had no way to know if a bookmark was using custom settings or not. This has been reworked to use a checkbox that tells the user if a bookmark is using global settings or custom settings.
- [Enhancement] Added a plugin API to be able to freeze the display
Data processor plugins can now freeze the display so new text will not be added to the display until they release the freeze. The plugin can also clear any frozen text.
- [Enhancement] Added marks to data processors plugin API
Data processor plugins can now drop "markers" as data comes in. The plugin can now color/style from the mark to the cursor.
- [Bug fix] Fixed bug where selection would move if back buffer filled
When the back buffer filled and a new line was added the selection would change what lines where selected (the line would move up, but the selection would say on the old line making it look like the seleciton had moved).
- [Bug fix] Fixed bug where selection was being cleared when clipboard mode wasn't smart
The selection was being cleared when the selection mode was not set to smart clipboard.
- [Enhancement] Added new misc type of binary plugins
A new sub class of plugin has been added, you can now add binary misc types of plugins. These plugins show up in the misc area of the binary type of data processing.
- [Enhancement] Added a text box to the plugin UI API
Plugins can now add a text box to the widgets they can add for aux controls, options, and settings. These are displays for text. The text will wrap and can be selected for copy paste, but can not be changed.
- [Enhancement] Added a color picker to the plugin UI API
Plugins can now add a color picker to the widgets they can add for aux controls, options, and settings.
- [Enhancement] Added a groupbox to the plugin UI API
Plugins can now add groupbox to the widgets they can add for aux controls, options, and settings.
- [Enhancement] Made settings button work for plugins
In the settings dialog there is a settings button to configure a plugin. The button now works.
- [Enhancement] Added selection colors to settings
You can now pick the colors you want for selections in the main area (binary and text).
- [New Feature] Added a new find CRC dialog
You can now input some data and input a CRC value for that data and have it analyzed. The system will then tell you the CRC algorithm that will make that CRC given that data.
- [Enhancement] Changed copyright message for generated code
The copyright message has been changed when code is generated. The old message was a copyright message saying you had to copy the message. The new one just says do what you want but don't blame me.
- [New Feature] Added support for a file requester to the UI API
A new API was added so plugins can prompt the user for a filename and path
- [Enhancement] Added quick jump for CTRL-C handling
A new menu option was added to the settings menu to let the user jump to the clipboard (CTRL-C) handling settings.
- [New Feature] Added user styling/color of the selection
The user can now style or change the background color of the selected text. This allows the user to highlight text of interest. This is most useful in binary mode as they can select different messages or parts of a packet and highlight them. Bold, italics, underline, strike through, and the background color can be changed.
- [Enhancement] Updated send block panel to support hex
Added a hex input to the send block panel on binary and block connections. A hex input with edit button (that goes the send buffer dialog) was added to the panel as well as input for what to send at the end of a text block. The user can select from:
- [Bug fix] Fixed bug where binary display doesn't stop the cursor from blinking
When using the binary decoder if the main text area loses focus the cursor should stop blinking. It wasn't
- [Polish] Added a help button to URI input
A new help button was added after the URI input on the main window. This button opens the open connection using URI dialog and fills in the URI from the main window. It also selects the drive matching the URI.
- [Polish] Changed menu buffers to use send buffers name instead of static text
In the main window "Buffers" menu the 12 shortcut buffer entries have been renamed to include the buffers name.
- [Polish] Added a set setting to defaults menu option
Under the Settings menu a new menu item was added that lets the user set settings back to defaults.
1.1.0.0 (29 Jun 2025)
- [Bug fix] Fixed a bug with screen DPI settings on Windows
When you set the DPI something other than 96 (scale %) then selecting text did not work correctly. This (hopefully) has been fixed.
- [Bug fix] Fixed a bug with binary displays not ignore attribs that are turned off
You can suppress drawing of different attributes in the settings. In text mode changing this hide that attribute, but in binary mode the attribute was still drawn. This has been fixed.
- [Enhancement] Added Lock window scroll when not on bottom line
When the scroll bar is at the bottom the screen will be scrolled to the bottom when new text is added. If the scroll bar is not at the bottom it will say at it's current display.
- [Enhancement] Improved open errors dialog with OS messages
When an open connection fails the user is now prompted with and error message. This message can include more details from the plugin.
- [Enhancement] Added option to auto reconnect when a connection is closed
A new feature was added that will auto retry opening a connection if it fails to open. A setting was added to say if this should be done and how long to wait between tries. This can be set per-connection and toggled with a menu option under the connection menu.
- [Enhancement] Extended plugin API so data processor plugin's can see bytes sent
The data processors API has a new callback function that will be called when data is send out of a connection. See ProcessOutGoingData().
1.0.4.0 (31 May 2025)
- [Bug fix] Fixed a bug where the plugin IODriver Init() wasn't being called on install
When a new plugin was installed the system was not calling the IODriver Init() function.
- [Bug fix] Changed how URI help works.
Plugins now provide a more strict version of the help that WhippyTerm can parse.
- [Bug fix] Fixed bug that the URI didn't always set all options
With some plugins when the user input a URI the decoder didn't set all the options which could lead to failure to open a connection. This has been fixed.
- [Bug fix] Fixed a crash in the edit send buffer dialog
If you where in the edit buffer on the second nibble and cleared the buffer it would crash when you clicked on the hex.
1.0.3.0 (27 Apr 2025)
1.0.2.0 (23 Apr 2025)
- [Bug fix] Fixed problem with Linux installer
The Linux installer was missing a depends for the QT multimedia. Added it and added version numbers to the packages.
- [Bug fix] Fixed bug with open new connection from URI dialog
Dialog was not setting up options which depending on the device would prevent connection from working.
- [Bug fix] Fixed bug with importing settings does not apply the settings
When you imported new settings the settings where not being applied to connections, but new connections would get the settings.
1.0.1.0 (16 Mar 2025)
1.0.0.0 (01 Mar 2025)
- Finished all features for first version
The first release 1.0