Revision history for App-ClusterSSH

4.15 2020-05-18 Duncan Ferguson <>
- Include all utilies within each man page
- Add in 'command_pre' and 'command_post' configuration options
- Fix 'Add Host' menu error finding 'resolved_names'
- Ensure lib path is added to range tests to find the libraries
- Mark permission test as TODO as it appears to be inconsistent

4.14 2019-08-21 Duncan Ferguson <>
- Include README within the repository, not just created tar.gz files
- Add 'autoquit' setting to 'File' menu (Github issue #114)
- Correct macro_hostname to be the FQDN of the server where cssh is being run (Github issue #116)
- Add in user defined macros

4.13.2_02 2019-01-14 Duncan Ferguson <>
- Fix Getopt-Long minimum version
- Fix excess test output when Sort::Naturally isn't installed

4.13.2_01 2018-11-24 Duncan Ferguson <>
- Move all Tk code into its own module as-is
- Fix for 'bad pad value "3m"' error when using Tk 804.034
- Update to Perl::Tidy 20181117
- Convert to using Dist::Zilla

4.13.2 2018-03-14 Duncan Ferguson <>
- Fix for running builds in parallel
- Improvements to SUPPORT and REPORTING BUGS sections in documentation

4.13.1 2018-03-05 Duncan Ferguson <>
- Minor update to fix failing tests due to 3rd party perltidy changes

4.13 2017-12-27 Duncan Ferguson <>
- Ensure ssh_args is keep unset if it is emptied in the configuration file
- Obey configured console position (Debian bug 758215) (Github issue #100)

4.12 2017-12-23 Duncan Ferguson <>
- Fix 'undefined value' error

4.11 2017-12-22 Duncan Ferguson <>
- Fix for multiple range expansion, as in 'h{a,b}{1,2}' (Github issue #97) (Thanks to lazyfrosch)
- Upgrade Perl::Tidy requirement to version 20171214 (Github issue #99) (Thanks to eserte)
- Add in 'external command pipe' to allow for some commands being passed in from the command line

4.10_02 2017-08-08 Duncan Ferguson <>
- Include coverage tests in the resources
- Include the version of cssh in the utility documentation and README
- Fix dashes (-) not being accepted in hostname range expansion (Github issue #89)
- Amend ranges to work on ports, FQDN's and IP addresses
- Fix bug tracker links in the main documentation (Github issue #92)
- New options to specify --rows, --columns and --fillscreen (Github pull request #88) (Thanks to AsharLohmar)

4.10_01 2017-04-12 Duncan Ferguson <>
- Allow 'include' directives when reading SSH configuration files (Github issue #77) (thanks to Azenet)
- Generate README when creating the distribution from cssh man page so and can display documentation

4.09 2017-03-11 Duncan Ferguson <>
- Add perl-5.24 Travis-CI automated testing config
- Correct a logic bug around the --debug option (Github issue #75)
- Fix 'Re-add closed windows' not using the correct username (Github issue #72)
- Update copyright year
- Make WM decorations algorithm configurable as causes problems on some systems (Debian bug 842965, re Github pull request #66) (thanks to Tony Mancill)

4.08 2016-10-18 Duncan Ferguson <>
- Add perl-5.8, 5.10 and 5.12 to Travis-CI automated testing
- Fix building and testing on perl-5.8.9
- Improve testing on systems that do not have xterm installed
- Take into account WM decorations when tiling (Github pull request #66) (thanks to Andrew Stevenson)
- Add option in the config file to hide the menu (Github issue #69)
- Add 'unique_servers' into the configuration file to match command line option (Github issue #70)

4.07 2016-04-30 Duncan Ferguson <>
- Fixed tests on systems where bash is not installed in /bin/bash (Github issue #60)
- Include link to travis-ci site in release emails for automated build and test reports
- Rework hostname expansion to be pure-perl rather than relying on the bash shell (Github issue #53)

4.06 2016-03-26 Duncan Ferguson <>
- Failure to find the terminal binary should not be fatal
- Fix processing of '--extra_tag_file' and its configuration item (Github issue #51)
- Add bash shell expansion on host names containing a '{' character (Github issue #53)
- Fix tests when running on a server without xterm installed (such as Travis CI via GitHub)
- Expand $HOME and ~ correctly when looking for files (thanks to Andrew Stevenson)
- Typo correction in README (thanks to Ankit Vadehra)

4.05 2015-11-28 Duncan Ferguson <>
- Change default key_quit from 'Control-q' to 'Alt-q' (Github issue #50)
- Amend tests to always use C locale as some error messages are hardcoded in English (Github issue #49)

4.04_01 2015-11-21 Duncan Ferguson <>
- Ensure documentation is generated using same perl as the build (Github issue #45)
- Pass '--action' through macro parsing (Github issue #42)
- Workaround for glitch in KDE where windows can become unmoveable (Github issue #46) (thanks to Brandon Perkins)
- Add in '--quiet | -Q ' option to reduce output in certian scenarios
- Add in 'csftp' command

4.04 2015-11-03 Duncan Ferguson <>
- Include bash completion script in distribution (Github issue #29)
- Allow re-adding closed session (Github issue #27 - thanks to Andrew Stevenson)
- Allow sorting windows in natural order (Github issue #28 - thanks to Andrew Stevenson)
- Fix links in metadata files to trackers (Github issue #41)
- Fix ctel and ccon not working correctly (Github issue #35)
- Amend t/10host.t to use a random hostname to prevent clashes (Github issue #23)
- Amend copyright message in README to match all other files for the perl license (Github issue #44)

4.03_06 2015-01-31 Duncan Ferguson <>
- Remove references to 'logmsg' preventing the history window from working (thanks to Andrew Stevenson)

4.03_05 2014-12-20 Duncan Ferguson <>
- Fix options parsing tests picked up via cpantesters on different version of perl

4.03_04 2014-12-12 Duncan Ferguson <>
- Do not use system perl but whatever is found in PATH (to stop breaking perlbrew based builds)
- Warn when the configured terminal isn't installed/found
- Don't show 'Opening to:' when no servers are given

4.03_03 2014-09-28 Duncan Ferguson <>
- Force tests to have English locale when user has something else set (Github issue: 10) (thanks to Emanuele Tomasi)
- Skip permissions check test when run as root as the results are invalid (Github issue: 11) (thanks to Deny Dias)
- Ensure config file option for ssh_args is not lost when options is not used on command line (Github issue: 14)
- New Send menu option to send a numeric value between 1 and 1024 (thanks to cqexbesd)
- Remove all history when history window closed (thanks to Bill Rushmore)

4.03_02 2014-08-10 Duncan Ferguson <>
- Fix behaviour when external cluster command is not defined or doesn't exist

4.03_01 2014-07-09 Duncan Ferguson <>
- Amended host parsing to include alternative IPv6 address port definitions, e.g. 1::2::3::4/5567
- List available external tags with -L option and also add into 'Add Host' in UI
[NOTE: Some options have changed!]
- Rework options code

4.02_05 0000-00-00 Duncan Ferguson <> (unreleased)
- Add in 'Set all active' and 'Set half active' host menu options (thanks to Andrew Stevenson)

4.02_04 2014-05-17 Duncan Ferguson <>
- Amend 'Changes' file format to match CPAN specs (see CPAN::Changes)
- Correct autoclose short option to what is actually used (Github issue 4) (thanks to Simon Fraser)
- Fix 'use_all_a_records' option (Github issue: 5) (thanks to Simon Fraser)
- Fix 'title' option (thanks to Barry Roberts)
- Fix 'Add host or cluster' window to contain cluster names

4.02_03 2014-01-31 Duncan Ferguson <>
- Fix 'File->Show History' (Sf support request 41)
- Amend 'tag-file' short option to 'r' to avoid option clash

4.02_02 2014-01-13 Duncan Ferguson <>
- Fixed macros (%u, %s, %h, %n) not doing multiple replacements
- Add in key shortcut for username macro (ALT-u)
- Add in key shortcut for local hostname macro (ALT-l)
- Fix a bug with 'show history' key shortcut
- Fix "uninitialised errors in hash element" bug [clusterssh support-requests:#38]
- Fixed the default cluster not being opened
- Add in toggle for macros

4.02_01 2013-04-16 Duncan Ferguson <>
- Refactured file loading code
- Add in 'tags' file handling
- Fix bug whereby cluster files were read in multiple times
- Add in resolving tags by external command
- Fix library path on bin/cssh (Sf bug 3610601)

4.01_05 2013-03-05 Duncan Ferguson <>
- New option (-m, --unique-servers) to remove repeated servers when opening terminals (Thanks to Oliver Meissner)
- Drop MYMETA.yml and .json files from the distribution
- Do not set default user name to prevent overriding ssh configuration

4.01_04 2013-02-26 Duncan Ferguson <>
- Fixed 'ccon' not calling the correct command (Sf bug 3605002)
- Fixed clusters not being defined correctly within the .clusterssh/config file (Sf bug 3605675)

4.01_03 2013-02-15 Duncan Ferguson <>
- Correct documentation for references to $HOME/.clusterssh/config
- Re-add user back into the configurartion file
- Add in missing newline for some error messages
- Allow the path to rsh/ssh/telnet to be defined in the configuration file
- Move .csshrc to .csshrc.DISABLED since it should no longer be used
- Error emitted when adding a host via the "Hosts" drop-down (Debian bug ID #578208)
- Pastes uses a strange keyboard layout (Debian bug ID #364565)
- Cope with being invoked by 'clusterssh' (Debian bug ID #644368)
- Fix migration of .csshrc when not working as expected (Debian bug ID #673507)
- Remove doc references to 'always_tile' as renamed 'window_tiling' (Debian bug ID #697371)
- Updated manpage whatis entries (patch by Tony Mancill)
- Fix watch line expression to catch 4.x series tarballs (Debian patch LP ID #1076897)
- Allow tests to pass successfully when run as root
- Fix cssh starting if xterm is not installed (Sf bug 3494988)
- Set WM_CLASS on windows to 'cssh' (Sf bug 3187736)

4.01_02 2012-12-09 Duncan Ferguson <>
- Fix logic when using 'autoclose' on the command line or config file
- Fix $HOME/.clusterssh/clusters being read in
- Fix 'ctel', 'crsh' and 'ccon'so they work as expected

4.01_01 2011-12-09 Duncan Ferguson <>
- Include missing files from release tarballs

4.01_00 2011-12-03 Duncan Ferguson <>
- Start switching code to use Exception::Class
- Moved config file from $HOME/.csshrc file to $HOME/.clusterssh directory
- Rework config handling into a module
- Rework cluster handling into a module
- Added 'autoclose' functionality - see docs
- Allow "-a 'cmd ; cmd'" to work for multiple remote commands

4.00_11 2011-07-28 Duncan Ferguson <>
- Fix '-l <username>' option (SF bug 3380675)

4.00_10 2011-07-08 Duncan Ferguson <>
- Fix 'uninitialised error' message

4.00_09 2011-06-30 Duncan Ferguson <>
- Cater for missing 'pod2text' command (Thanks to Sami Kerola)
- Fix 'uninitialised variable' error
- Added 'ccon' command (Thanks to Brandon Perkins)

4.00_08 2011-04-01 Duncan Ferguson <>
- Amend all L<xx> links to prevent build breakage on cygwin (Sf bug 3115635)

4.00_07 2011-01-24 Duncan Ferguson <>
- Fix for parsing config files with empty values (Stefan Steiner)
- Reinstate acting on '-l username' option (reported by Ryan Brown)

4.00_06 2010-09-20 Duncan Ferguson <>
- Fix test error on 5.8.8 (reported by Wei Wang)
- Added '--list', '-L' to list available cluster tags (idea from Markus Manzke)
- Fix terminal size only set on last windows (Sf bug 3061999)
- Added '--use_all_a_records' (Simon Fraser)

4.00_05 2010-06-20 Duncan Ferguson <>

- Tidy up pod for whatis errors
- Amend copyright years and text to be consistent
- Include missing buld prereq (Test::Trap)
- Correct '--font, -f' in cssh documentation
- Thanks to Tony Mancill for reporting these errors

4.00_04 2010-06-20 Duncan Ferguson <>

- Update MANIFEST file to ensure all correct files are included in release

4.00_03 2010-06-20 Duncan Ferguson <>

- Fix silly type in code/tests

4.00_02 2010-06-19 Duncan Ferguson <>

- Add in bugtracker and homepage resources to Build.PL file
- Bring new module App::ClusterSSH::Host into play for parsing host strings
- Patch to override font used on command line (Roland Rosenfeld)
- Put options in cssh pod into alphabetical order

4.00_01 2010-01-08 Duncan Ferguson <>

- Remove GNU tools and switch to Perl module layout using Module::Build

3.29 0000-00-00 Duncan Ferguson <> (unreleased)

- Handle hostnames containing % properly (Debian bug  543368)
- Thanks to Tony Mancill for the patch

3.28 2009-12-19 Duncan Ferguson <>

- Look for usernames when adding clusters
- Thanks to Kristian Lyngstol for the patch
- Allow username@cluster to override all usernames in the cluster
- Account for multiple host definitions within ssh configuration file
- Thanks to anonymous for the patch
- Allow for long line continuation in config files with a backslash
- Thanks to Mike Loseke for the patch
- Improve binary search to 
  - ignore directories of the same name, and 
  - always search for the binary if it is not fully qualified
- Thanks to Ian Marsh for the patch
- Always use the given host name, not the resolved host name, when opening the ssh connection (Debian bug 533406)

3.27 2009-09-24 Duncan Ferguson <>

- Add in list of clusters to 'Add Host' window 
  - thanks for Stanislas Rouvelin for the idea
- Fix bug where unresolvable host stopped program running
  - thanks to Sami Kerola
- Add in config for auto-tearoff of send and host menus
  - thanks to James Chernikov for the idea
- Add in send menu xml definition file
  - thanks to James Chernikov for the idea

3.26_1 2009-06-02 Duncan Ferguson <>

- Allow user to set a different ConnectTimeout and -o string (Tony Mancill)
- Fix warning from 'mandb' (Tony Mancill)
- Continue connecting to unresolvable hosts (debian bug 499935) (Tony Mancill)
- Correct bug with unset default ports (Tony Mancill)
- Rearrange pod documentation to remove extraenous comment (Tony Mancill)
- Cope better with IPv6 addresses
- Fix bug with passing arguments from command line to comms method binary
- Rework defaultport code
- Add new "-a 'command'" option for running a command in each terminal
- Fix bug with some host lookups failing
- Set window hints on terminals slightly differently to help with tiling
- Reserve 5 pixels on top and left hand side of terminals for better tiling
- Increase reserve of screen from bottom from 40 pixels to 60
- Better notes in docs for screen/terminal reserving
- Minor fixup to docs formatting
- Correct pasting mechanism into control window
- Allow use of long options (swap Getopt::Std to Getopt::Long)
- Remove deprecated '-i' option
- Deprecate -d and -D, replaced with --debug
- Allow for configurable max number of hosts within hosts menu before
  starting a new column - see .csshrc doc for "max_host_menu_items".
  This is until Tk allows for scrollable menus
- Amend default key_addhost from 'Control-plus' to 'Control-Shift-plus'
- Add in a 'default' cluster tag, used when no tags provided on command line
- Fix Alt-n pasting in a resolved hostname instead of the connection hostname 
- Disabled unmapping code until such time as a better way of doing it exists 
  - this is due to virtual desktop change triggering a retile 

3.25_1 2009-03-26 Duncan Ferguson <>

- Add patch from David F. Skoll for adding colour to terminals
- Apply fix from Bogdan Pintea for DNS failing to resolve IPs
- Allow the configuration files to be symlinks (debian bug 518196)
- Add an 'EXAMPLES' section to the cssh documentation
- List options alphabetically in documentation
- Apply patch from Gerfried Fuchs/Tony Mancill for ports on the command line

3.24_1 2008-11-14 Duncan Ferguson <>

- Do not attempt to re-resolve IP addresses
- Apply patch from Dan Wallis
- Add '-C <file>' command to load in specific config file
- Typo correct in pod
- Cope with random/strange config files better
- Correct some minor typos
- Create the .csshrc file if it doesnt already exist and amend pod
- Amend host menu items to be a little more descriptive
- Remove 'Catpure Terminal' from Hosts menu as it doesnt do anything useful

3.23_1 2008-01-23 Duncan Ferguson <>

- Apply bugfix supplied by Jima
- Ensure loading of hosts from user ssh config file is case insensitive

3.22_1 2008-01-23 Duncan Ferguson <>

- Update X resources class to allow use of terms other than XTerm
- Apply patch from Harald Weidner to stop error messages in Debian Etch
- Add in key shortcut (alt-h) to toggle history window
- Tidy up pod a little to highlight notes better
- Check terminal_font config for quotes and remove
- Enable use of "configure --sysconfdir=", defaults to /etc
- Revise host checking algorithm to take ssh_config files into account
- Revise username check used as part of host id to accept more chars
- Correct year value for previous two entries from 2008 to 2007

3.21_1 2007-11-28 Duncan Ferguson <>

- Implement a basic history window in the console (option -s)
- Fixed bug whereby username@ wasn't being used correctly

3.20_1 2007-11-26 Duncan Ferguson <>

- Move source repository from CVS to SVN on sourceforge
- Remove last digit of version number since not required with SVN
- Add in host menu option to close inactive windows
- Apply bugfixes suppled by Tony Mancill
- reset xrm switch in terminal_args 
- prevent warning messages being printed when keysyms arent found
- fixes for fvwm
- chekc for child process before sending kill
- Slight rewording of man page
- Add in option to use telnet as comms command (use 'ctel' to invoke script)
- Run through perltidy -b -i=2
- Appy patches from Klaus Ethgen
- Client dies when cannot write to pipe
- Sleeping and flushing in window manager to allow time to draw windows
- Fix pipe reading to not use undefined values
- Apply patches from Nicolas Simonds
- allow colons in hostnames
- allow -o option as per man page
- Apply patch from Peter Palfrader
- improvement to finding binaries
- Allow font to be specified on the command line
- Check for errors around key data gathering
- Add in 'extra_cluster_file' to csshrc

3.19.1_1 2006-07-24 Duncan Ferguson <>

- Below is an abridged version of changes - see CVS for more information
- Check for failure to connect to X session
- Totally rework character mapping and events to cope with non-QWERTY keyboards
- Rework pasting code to cope with non-QWERTY charatcters
- Manpage/help doc updates and corrections
- Check for missing definitions for cluster tags in .csshrc
- Run through perltidy -b -i=2
- Apply patch to add in optional port information from D. Dumont
- Amend hotkey code to not pick up <ctrl>-<alt> as default clientname shortcut
- Alter repeat function to improve efficiency
- Rework retiling code 
- Add "-e <host>" to evaluate terminal and communcation methods
- Add in toggle option on hosts menu
- Fix check in find_binary to ensure one is actually found
- Search $PATH and other standard places for binaries incase $PATH is incomplete
- Amend code to allow getting help when no X display available
- Allow override of both key and mouse paste key sequences
- Added icons and desktop file
- Amended clusterssh.spec to cope with icons and desktop file
- Improve cluster file import efficiency as was taking faaar too long previously
- Fixed bug whereby when pid's of the xterm changes records were not updated
- Do not die when pipe open fails, but continue as others may be connected
- Remove code that breaks the minimize/maximise stuff;
- Catch X button presses on title bar to close all windows correctly
- Delay map event capture at program start to avoid infinite loop
- Fix execvp error on Solaris 10

3.18.1_1 2005-11-28 Duncan Ferguson <>

- Correct mask value for backtick (grave) character
- Add more logging for debug mode
- Amend indentation
- Rerun through perltidy
- Improve cluster file import efficiency as was taking faaar too long previously
- Fixed bug whereby when pid's of the xterm changes records were not updated
- Do not die when pipe open fails, but continue as others may be connected
- Remove code that breaks the minimize/maximise stuff;
- Catch X button presses on title bar to close all windows correctly
- Delay map event capture at program start to avoid infinite loop
- Fix execvp error on Solaris 10
- Update to man pages

3.17.1 2005-06-24 Duncan Ferguson <>

- Allow _'s in paste text correctly
- Bugfix minimise/maximise again
- Run through "perltidy -i=4 -ce"
- Unmap all windows in one go instead of one at a time when retiling
- Add + doc 'console_position'
- Maintain user position of console between maps (i.e. tell window manager 
  not to move it)
- Note that ssh options are for OpenSSH not for any other ssh version

3.16.1 2005-06-13 Duncan Ferguson <>

- Allow ignoring of unresolved hosts (i.e. if hostname aliased in 
  ssh config file)

3.15.1  2005-06-09 Duncan Ferguson <>

- Add and document "-c <clusterfile>"
- Add and document "-l <username>"
- Add and document "-o <options>"
- Document "-t <title>"
- Set controlled terminals to have user set size & position (WM_SIZE_HINTS)
- Speed up initial terminal openings
- Remove all key bindings from drop down menus (conflicts with emacs and
  can all be done by other hotkeys anyhow)
- Allow individual hotkeys to be disabled, instead of all-or-nothing
- Updates to POD
- Update retile code to avoid flickering windows (& also fix cygwin bug)
- Rename -t to -T to match previous series option
- Added in -t to modify cmd line args for terminals

3.14.1  2005-06-04 Duncan Ferguson <>

- first cut at terminal opening speed up

3.13.1  2005-05-20 Duncan Ferguson <>

- Bugfix for whitespace in config files (missing a char from regexp)
- Allow for minimising/maximising all windows when done on console

3.12.1  2005-05-19 Duncan Ferguson <>

- Bugfix for shifted non-alphanumeric keyboard chars not being pasted correctly
- Marked version number with 3rd digit to signify beta releases

3.11 2005-05-18 Duncan Ferguson <>

- Remove trailing whitespace from config file lines
- Prevent paste events being sent to non-active clients
- Allow paste events to send capitalised letters

3.10 2005-05-17 Duncan Ferguson <>

- fix for moving atom numbers in font info

3.9 2005-05-11 Duncan Ferguson <>

- Allow multiple hosts or tags in the "Add Host" text widget
- Retile all windows (if set) after adding a host
- Do not automatically send a return after hostname (Alt-n)
- Fix bug with sending read hostname instead of internal unique host 
  name (Alt-n)
- Fix bug whereby cannot start cssh without any hosts on cmd-line
- Fix bug where client name was sent to inactive clients
- Fix bug whereby 0's in sent text were ignored

3.8 2005-05-09 Duncan Ferguson <>

- Remove the need for xlsfonts (perform function by X window calls instead)
- Debug level output changes
- Ensure windows are overlapping in the right places, instead of any order
- Create config section on window decorations (i.e. title & scroll bars)

3.7 2005-05-05 Duncan Ferguson <>

- Found ConfigureWindow instead of ResizeMoveWindow

3.6 2005-05-05 Duncan Ferguson <>

- Lots of work on window tiling - to fall at last hurdle (No XResizeMoveWindow)
- Documentation updates
- Allow -u ouput when binaries havnt been found
- Start coding for capturing an existing terminal window
- Rebuild hosts menu when all hosts checked, not when each host checked
- Change debug message output level of keysyms
- Cater for config of no tiling, but allow to retile in console window anyhow

3.5 2005-05-03 Duncan Ferguson <>

- Remove some old (commented out) code
- Remove some (unnecessary) debug code
- Start coding for window tiling
- Modify find_binary function to make it more portable
- Output internal vars in "-u -d"
- Small mods to docs to take account of all of the above

3.4 2005-04-26 Duncan Ferguson <>

- Changed order of "use POSIX" to put :sys_wait_h first to avoid chance of 
  hitting known issue
- Allow for running from cvs dir in config{comms}
- Add "ConnectTimeout=10" to default ssh options
- Add further debug info
- Add check to ensure hostname can be resolved before attempting connection
- Modigy zombie reaping to prevent hand on unconnected cx term closing
- Add "autoquit" feature to close ClusterSSH after last client window closes
- Also produce man page and include as part of install

3.3 2005-04-10 Duncan Ferguson <>

- src/ Rewritten from scratch
- Set up to use Gnu Autotools