1
0
mirror of https://github.com/gryf/gryf-overlay.git synced 2025-12-28 17:32:32 +01:00
Files
gryf-overlay/x11-terms/rxvt-unicode/files/tabbed.patch
2010-02-09 21:25:29 +01:00

119 lines
3.6 KiB
Diff

--- rxvt-unicode-9.06_orig/src/perl/tabbed 2008-06-15 16:52:47.000000000 +0200
+++ rxvt-unicode-9.06/src/perl/tabbed 2008-11-19 07:16:13.000000000 +0100
@@ -1,4 +1,7 @@
#! perl
+# Fri Aug 22 18:01:55 CEST 2008 @709 /Internet Time/
+# added some code to make life easier and friendler with great urxvt and this
+# nice plugin. NOTE: i don't know perl! gryf.
sub refresh {
my ($self) = @_;
@@ -12,7 +15,7 @@
substr $text, 0, 7, "[NEW] |";
@$rend[0 .. 5] = ($self->{rs_tab}) x 6;
- push @ofs, [0, 6, sub { $_[0]->new_tab }];
+ push @ofs, [0, 6, sub { $_[0]->new_tab("shell") }];
my $ofs = 7;
my $idx = 0;
@@ -23,7 +26,7 @@
my $act = $tab->{activity} && $tab != $self->{cur}
? "*" : " ";
- my $txt = "$act$idx$act";
+ my $txt = "$act$idx-$tab->{name}$act";
my $len = length $txt;
substr $text, $ofs, $len + 1, "$txt|";
@@ -47,7 +50,8 @@
my ($self, @argv) = @_;
my $offset = $self->fheight;
-
+ my $tab_name = shift @argv;
+
# save a backlink to us, make sure tabbed is inactive
push @urxvt::TERM_INIT, sub {
my ($term) = @_;
@@ -64,12 +68,15 @@
};
push @urxvt::TERM_EXT, urxvt::ext::tabbed::tab::;
-
+
my $term = new urxvt::term
$self->env, $urxvt::RXVTNAME,
-embed => $self->parent,
@argv,
;
+
+ # add name to new created tab. gryf
+ $self->{tabs}[-1]->{name} = $tab_name;
}
sub configure {
@@ -248,7 +255,7 @@
shift @argv;
} while @argv && $argv[0] ne "-e";
- $self->new_tab (@argv);
+ $self->new_tab ("shell", @argv);
()
}
@@ -307,7 +314,41 @@
my ($self, $tab, $event, $keysym, $str) = @_;
if ($event->{state} & urxvt::ShiftMask) {
- if ($keysym == 0xff51 || $keysym == 0xff53) {
+ # change default shift+downarrow behavior with some more
+ # sofisticated :) gryf
+ if ($event->{state} & urxvt::ControlMask) {
+ if ($keysym == 0x4e){ # CTRL+SHIFT+N new shell
+ $self->new_tab("shell");
+ return 1;
+ }elsif ($keysym == 0x4d){ # CTRL+SHIFT+M new mc
+ $self->new_tab("mc", '-e', 'mc');
+ return 1;
+ }elsif ($keysym == 0x52){ # CTRL+SHIFT+R su -
+ $self->new_tab("root", '-e', 'su', '-');
+ return 1;
+ }elsif ($keysym == 0x54){ # CTRL+SHIFT+T htop
+ $self->new_tab("htop", '-e', 'htop');
+ return 1;
+ }elsif ($keysym == 0x59){ # CTRL+SHIFT+Y ssh bombadil
+ $self->new_tab("bombadil", '-e', 'ssh', '-p', '6622', 'bombadil');
+ return 1;
+ }elsif ($keysym == 0x47){ # CTRL+SHIFT+G ssh esm
+ $self->new_tab("elysium", '-e', 'ssh', 'home.elysium.pl');
+ return 1;
+ }elsif ($keysym == 0x4a){ # CTRL+SHIFT+J ssh benq
+ $self->new_tab("benq", '-e', 'ssh', 'benqwifi');
+ return 1;
+# }elsif ($keysym == 0x53){ # CTRL+SHIFT+S ssh mslug
+# $self->new_tab("mslug", '-e', 'ssh', 'mslug');
+# return 1;
+ }elsif ($keysym == 0x53){ # CTRL+SHIFT+S ssh mslug
+ $self->new_tab("intruder", '-e', 'ssh', 'intruder');
+ return 1;
+ }elsif ($keysym == 0x49){ # CTRL+SHIFT+I irssi on freenode
+ $self->new_tab("irssi", '-e', 'irssi', '--config=~/.irssi/config_freenode');
+ return 1;
+ }
+ }elsif ($keysym == 0xff51 || $keysym == 0xff53) {
my ($idx) = grep $self->{tabs}[$_] == $tab, 0 .. $#{ $self->{tabs} };
--$idx if $keysym == 0xff51;
@@ -316,10 +357,6 @@
$self->make_current ($self->{tabs}[$idx % @{ $self->{tabs}}]);
return 1;
- } elsif ($keysym == 0xff54) {
- $self->new_tab;
-
- return 1;
}
}
elsif ($event->{state} & urxvt::ControlMask) {