App-ClusterSSH
view release on metacpan or search on metacpan
ssh config file)
3.15.1 2005-06-09 Duncan Ferguson <duncan_ferguson@user.sf.net>
- 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 <duncan_ferguson@user.sf.net>
- first cut at terminal opening speed up
bin_PL/_build_docs view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use FindBin qw($Bin $Script);
use File::Basename;
my $bindir="bin";
if(! -d $bindir) {
mkdir $bindir || die "Could not mkdir $bindir: $!";
}
print "Using perl binary: $^X",$/;
print "Using perl version $^V",$/;
for my $dest (@ARGV) {
my $source=$Bin.'/'.basename($dest);
next if($source =~ m/$Script/);
next if($source =~ m/\.x$/);
lib/App/ClusterSSH.pm view on Meta::CPAN
$windows{history} = $windows{main_window}->Scrolled(
"ROText",
-insertborderwidth => 4,
-width => $self->config->{history_width},
-height => $self->config->{history_height},
-state => 'normal',
-takefocus => 0,
-class => 'cssh',
);
$windows{history}->bindtags(undef);
if ( $self->config->{show_history} ) {
$windows{history}->pack(
-fill => "x",
-expand => 1,
);
}
$windows{main_window}->bind( '<Destroy>' => sub { $self->exit_prog } );
# remove all Paste events so we set them up cleanly
$windows{main_window}->eventDelete('<<Paste>>');
# Set up paste events from scratch
if ( $self->config->{key_paste} && $self->config->{key_paste} ne "null" )
{
$windows{main_window}->eventAdd(
'<<Paste>>' => '<' . $self->config->{key_paste} . '>' );
}
if ( $self->config->{mouse_paste}
&& $self->config->{mouse_paste} ne "null" )
{
$windows{main_window}->eventAdd(
'<<Paste>>' => '<' . $self->config->{mouse_paste} . '>' );
}
$windows{main_window}->bind(
'<<Paste>>' => sub {
$self->debug( 2, "PASTE EVENT" );
$menus{entrytext} = "";
my $paste_text = '';
# SelectionGet is fatal if no selection is given
Tk::catch {
$paste_text = $windows{main_window}->SelectionGet;
};
lib/App/ClusterSSH.pm view on Meta::CPAN
)->pack( -side => 'left' );
$self->debug( 2, "create_windows: completed" );
return $self;
}
sub capture_map_events() {
my ($self) = @_;
# pick up on console minimise/maximise events so we can do all windows
$windows{main_window}->bind(
'<Map>' => sub {
$self->debug( 3, "Entering MAP" );
my $state = $windows{main_window}->state();
$self->debug(
3,
"state=$state previous=",
$self->config->{internal_previous_state}
);
$self->debug( 3, "Entering MAP" );
lib/App/ClusterSSH.pm view on Meta::CPAN
$self->debug( 3, "done with retile" );
}
if ( $self->config->{internal_previous_state} ne $state ) {
$self->debug( 3, "resetting prev_state" );
$self->config->{internal_previous_state} = $state;
}
}
);
# $windows{main_window}->bind(
# '<Unmap>' => sub {
# $self->debug( 3, "Entering UNMAP" );
#
# my $state = $windows{main_window}->state();
# $self->debug( 3,
# "state=$state previous=$config{internal_previous_state}" );
#
# if ( $config{internal_previous_state} eq $state ) {
# $self->debug( 3, "repeating the same" );
# }
lib/App/ClusterSSH.pm view on Meta::CPAN
# if ( $config{internal_previous_state} ne $state ) {
# $self->debug( 3, "resetting prev_state" );
# $config{internal_previous_state} = $state;
# }
# }
# );
return $self;
}
# for all key event, event hotkeys so there is only 1 key binding
sub key_event {
my ($self) = @_;
my $event = $Tk::event->T;
my $keycode = $Tk::event->k;
my $keysymdec = $Tk::event->N;
my $keysym = $Tk::event->K;
my $state = $Tk::event->s || 0;
$menus{entrytext} = "";
lib/App/ClusterSSH.pm view on Meta::CPAN
-label => 'Help',
-menuitems => [
[ 'command', "About", -command => sub { $windows{help}->Show } ],
[ 'command', "Documentation",
-command => sub { $windows{manpage}->Show }
],
],
-tearoff => 0,
);
$windows{main_window}->bind( '<KeyPress>' => [ $self => 'key_event' ], );
$windows{main_window}
->bind( '<KeyRelease>' => [ $self => 'key_event' ], );
$self->debug( 2, "create_menubar: completed" );
}
sub populate_send_menu_entries_from_xml {
my ( $self, $menu, $menu_xml ) = @_;
foreach my $menu_ref ( @{ $menu_xml->{menu} } ) {
if ( $menu_ref->{menu} ) {
$menus{ $menu_ref->{title} }
= $menu->cascade( -label => $menu_ref->{title}, );
( run in 0.751 second using v1.01-cache-2.11-cpan-2398b32b56e )