NAME

BBS::Perm - a BBS client based on vte

SYNOPSIS

use BBS::Perm qw/Feed IP URI/;
my $perm = BBS::Perm->new(
    perm   => { accel => 1 },
    config => { file   => '.bbs-perm/config.yml' },
    ip => { encoding => 'gbk' }
);

DESCRIPTION

Perm means Perl + Term here.

here is a list BBS::Perm can supply:

1. multiple terminals and quickly switch between them.

2. anti-idle

3. commit stuff from file or even command output directly.

4. browse URIs quickly.

5. show information of IPv4 addresses, thanks to IP::QQWry.

6. build your window layout freely.

7. use your own agent script.

Check out bin/bbs-perm and examples/bbspermrc for example.

INTERFACE

new ( %opt )

Create a new BBS::Perm object.

%opt is some configuration options:

{ config => $config, $uri => $uri, perm => $perm }

All the values of %opt are hashrefs.

For each component, there can be a configuration pair for it. perm => $perm is for BBS::Perm itself, where $perm is as follows:

window => $window
$window is a Gtk2::Window object, which is your main window.
accel => 1 | 0
use accelerator keys or not, default is 1
connect($sitename)

connect to $sitename.

config, uri, ip, ...

For each sub component, there's a method with the componnet's last name(lowcase), so you can get each sub component from a BBS::Perm object.

e.g. $self->config is the BBS::Perm::Config object.

window

return the main window object, which is a Gtk2::Window object.

DEPENDENCIES

Gtk2, Regexp::Common, UNIVERSAL::require, UNIVERSAL::moniker, File::Which

INCOMPATIBILITIES

None reported.

BUGS AND LIMITATIONS

When a terminal is destroyed, if there is a warning like "gdk_window_invalidate_maybe_recurse: assertion `window != NULL' failed", please update you vte lib to 0.14 or above, then this bug will be gone.

AUTHOR

sunnavy <sunnavy@gmail.com>

LICENCE AND COPYRIGHT

Copyright (c) 2007-2011, sunnavy <sunnavy@gmail.com>.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.