Acontece que o culpado é a extensão% Perl comum de tabbed
. tabbed
está sobrescrevendo Ctrl-Esquerda / Direita para mover a aba atual para a esquerda ou para a direita, respectivamente. Simplesmente remover as guias do URxvt.perl-ext-common
corrige o problema, mas, claro, também remove a funcionalidade da guia.
No final, minha solução foi criar uma cópia local da extensão tabbed
e usá-la em vez da versão padrão. Primeiro você pode querer encontrar a cópia do seu sistema de tabbed
e copiá-lo para o diretório de extensão local. No meu sistema Ubuntu 18 de 64 bits, o arquivo estava localizado no local no comando cp
abaixo. Este comando, claro, assume que ~/.urxvt/ext/
já existe.
cp /usr/lib/x86_64-linux-gnu/urxvt/perl/tabbed ~/.urxvt/ext/
Para carregar a cópia local em vez da cópia do sistema, remova tabbed
do URxvt.perl-ext-common
(que carregaria a versão padrão) e adicione a seguinte linha.
URxvt.perl-ext: tabbed
Em ~/.urxvt/ext/tabbed
, localize a função tab_key_press
e altere-a, por exemplo, da seguinte forma:
sub tab_key_press {
my ($self, $tab, $event, $keysym, $str) = @_;
if ($event->{state} & urxvt::ShiftMask && !($event->{state} & urxvt::ControlMask) ) {
if ($keysym == 0xff51 || $keysym == 0xff53) {
my ($idx) = grep $self->{tabs}[$_] == $tab, 0 .. $#{ $self->{tabs} };
--$idx if $keysym == 0xff51;
++$idx if $keysym == 0xff53;
$self->make_current ($self->{tabs}[$idx % @{ $self->{tabs}}]);
return 1;
} elsif ($keysym == 0xff54) {
$self->new_tab;
return 1;
}
}elsif ($event->{state} & urxvt::ControlMask && $event->{state} & urxvt::ShiftMask) {
if ($keysym == 0xff51 || $keysym == 0xff53) {
my ($idx1) = grep $self->{tabs}[$_] == $tab, 0 .. $#{ $self->{tabs} };
my $idx2 = ($idx1 + ($keysym == 0xff51 ? -1 : +1)) % @{ $self->{tabs} };
($self->{tabs}[$idx1], $self->{tabs}[$idx2]) =
($self->{tabs}[$idx2], $self->{tabs}[$idx1]);
$self->make_current ($self->{tabs}[$idx2]);
return 1;
}
}
()
}
Esta versão da função tornará as abas de movimento Ctrl-Shift-Esquerda / Direita para a esquerda e para a direita, em vez de Ctrl-Esquerda / Direita. Mas outra possibilidade é remover completamente o código para mover abas para a esquerda e para a direita e viver sem essa funcionalidade. Isso seria feito removendo a linha
if ($keysym == 0xff51 || $keysym == 0xff53) {
e as seguintes linhas para o final da cláusula.