using perl extenstions from scripts

Michael Traxler M.Traxler at gsi.de
Mon Jan 6 08:44:09 CET 2014


Hi,

I could solve this by adding the following:

note the different name of the function (on_osc_seq_perl is never called!).

sub tab_osc_seq_perl {
     my ($self, $tab, $osc) = @_;
     return unless $osc =~ s/^tabbedex;//;
     $osc =~ s/^([^;]+)+;//
         or return;

     if ($1 eq "new_tab") {
         my ($new_name) = split /;/, $osc, 1;
         #$tab->{name} = $new_name;
 	$self->new_tab;
         $self->refresh;
     }

    if ($1 eq "rename_tab") {
        my ($new_name, $tab_number) = split /;/, $osc, 2;
        $self->{tabs}[$tab_number]->{'name'} = $new_name;
        $self->make_current($self->{tabs}[$tab_number]);
    }

     if ($1 eq "make_current") {
         my ($tab_number) = split /;/, $osc, 1;
 	$self->make_current($self->{tabs}[$tab_number]);
     }


     1;
}


"osc_seq_perl" also has to be added for the hooks in:
....
    for my $hook (qw(osc_seq_perl start destroy user_command key_press
    property_notify add_lines)) {
....

This works for adding tabs with names with:
printf "\033]777;tabbedex;new_tab;na\007"
printf "\033]777;tabbedex;new_tab;na\007"

printf "\033]777;tabbedex;rename_tab;MAIL;0\007"
printf "\033]777;tabbedex;rename_tab;root;1\007"

Very good!

But this doesn't solve the issue, that I can not chose from a script a tab
(with make_current) and then call programs in this particular tab (by that
in different shells).
Any idea for that?

Thanks,

Michael


---------------------------------------

On Mon, 6 Jan 2014, Marc Lehmann wrote:

> Date: Mon, 6 Jan 2014 04:50:26 +0100
> From: Marc Lehmann <schmorp at schmorp.de>
> To: Michael Traxler <M.Traxler at gsi.de>
> Cc: rxvt-unicode at lists.schmorp.de
> Subject: Re: using perl extenstions from scripts
> 
> On Sun, Jan 05, 2014 at 01:07:49PM +0100, Michael Traxler <M.Traxler at gsi.de> wrote:
>> echo -n "\033]777;tabbedex:new_tab\007"
>
> That would be the correct sequence.
>
>> Unfortunately, this doesn't have any effect.
>
> At least in the "official" sources (git://github.com/stepb/urxvt-tabbedex)
> I don't see any support for that.
>
>> Can you help me how to do this right?
>
> You would need to add an on_osc_seq_perl handler to tabbedex - it's described
> a few lines later in the manual.
>
> --
>                The choice of a       Deliantra, the free code+content MORPG
>      -----==-     _GNU_              http://www.deliantra.net
>      ----==-- _       generation
>      ---==---(_)__  __ ____  __      Marc Lehmann
>      --==---/ / _ \/ // /\ \/ /      schmorp at schmorp.de
>      -=====/_/_//_/\_,_/ /_/\_\
>




More information about the rxvt-unicode mailing list