diff --git a/README.md b/README.md index 39a4af3..79310d5 100644 --- a/README.md +++ b/README.md @@ -46,11 +46,11 @@ After installing, put the folling lines in your .Xdefaults: Use Meta-u to activate URL selection mode, then use the following keys: - k: select next upward URL (also with Meta-u) - j: select next downward URL - Return: open selected URL in browser and quit selection mode - y: copy (yank) selected URL and quit selection mode - Escape: cancel URL selection mode + k: Select next upward URL (also with Meta-u) + j: Select next downward URL + o/Return: Open selected URL in browser, Return: deactivate afterwards + y: Copy (yank) selected URL and deactivate selection mode + q/Escape: Deactivate URL selection mode Options: diff --git a/url-select b/url-select index ee18d36..4742641 100644 --- a/url-select +++ b/url-select @@ -46,31 +46,29 @@ sub on_start { # read resource settings $self->{browser} = $self->x_resource('urlLauncher') || 'x-www-browser'; if ($self->x_resource('underlineURLs') eq 'true') { - $self->{underline} = 1; + $self->enable(line_update => \&line_update); } () } -sub on_line_update { +sub line_update { my ($self, $row) = @_; - if ($self->{underline}) { - my $line = $self->line($row); - my $text = $line->t; - my $rend = $line->r; + my $line = $self->line($row); + my $text = $line->t; + my $rend = $line->r; - while ($text =~ /$url_matcher/g) { - my $url = $1; - my ($beg, $end) = ($-[1], $+[1] - 1); - --$end if $url =~ /["')]$/; + while ($text =~ /$url_matcher/g) { + my $url = $1; + my ($beg, $end) = ($-[1], $+[1] - 1); + --$end if $url =~ /["')]$/; - for (@{$rend}[$beg .. $end]) { - $_ |= urxvt::RS_Uline; - } - $line->r($rend); + for (@{$rend}[$beg .. $end]) { + $_ |= urxvt::RS_Uline; } + $line->r($rend); } ()