App-ClusterSSH

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

  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 2.220 seconds using v1.01-cache-2.11-cpan-2398b32b56e )