summaryrefslogtreecommitdiffstats
path: root/urxvt/ext/pass
diff options
context:
space:
mode:
Diffstat (limited to 'urxvt/ext/pass')
-rw-r--r--urxvt/ext/pass158
1 files changed, 0 insertions, 158 deletions
diff --git a/urxvt/ext/pass b/urxvt/ext/pass
deleted file mode 100644
index bc80bcf..0000000
--- a/urxvt/ext/pass
+++ /dev/null
@@ -1,158 +0,0 @@
-#! perl
-
-sub on_init {
- my ($self) = @_;
-
- my $hotkey = $self->{argv}[0]
- || $self->x_resource ("pass")
- || "M-w";
-
- $self->parse_keysym ($hotkey, "perl:pass:start")
- or warn "unable to register '$hotkey' as pass start hotkey\n";
-
- return;
-}
-
-sub on_user_command {
- my ($self, $cmd) = @_;
-
- $self->enter if $cmd eq 'pass:start';
-
- return;
-}
-
-sub enter {
- my ($self) = @_;
-
- return if $self->displaying_msg || $self->displaying_prompt;
-
- $self->enable(
- key_press => \&key_press,
- );
-
- #eval {
- $self->which_password;
- #};
- #if ($@) {
- #$self->timed_message($@);
- #$self->leave;
- #}
-}
-
-sub leave {
- my ($self) = @_;
- delete $self->{overlay};
- delete $self->{prompt};
- delete $self->{state};
- $self->disable("key_press");
-}
-
-sub msg {
- my ($self, $msg) = @_;
- delete $self->{timed_overlay};
- $self->{overlay} = $self->overlay (0, -2, $self->ncol, 1, urxvt::OVERLAY_RSTYLE, 0);
- $self->{overlay}->set (0, 0, $self->special_encode ($msg));
-}
-
-sub timed_msg {
- my ($self, $msg) = @_;
- delete $self->{overlay};
- $self->{timed_overlay} = $self->overlay (0, -2, $self->ncol, 1, urxvt::OVERLAY_RSTYLE, 0);
- $self->{timed_overlay}->set (0, 0, $self->special_encode ($msg));
- $self->{timed_overlay_timer} = urxvt::timer->new->after(1)->cb(sub {
- delete $self->{timed_overlay};
- });
-}
-
-sub displaying_msg {
- my ($self) = @_;
- return defined $self->{overlay};
-}
-
-sub prompt {
- my ($self, $msg, $hide, $next) = @_;
- $self->{state} = 'prompt';
- $self->{prompt_hide} = $hide;
- $self->{prompt_msg} = $msg;
- $self->{prompt_next} = $next;
- $self->{prompt_buffer} = '';
- $self->prompt_redisplay;
-}
-
-sub prompt_redisplay {
- my ($self) = @_;
- my $buf = $self->{prompt_buffer};
- $buf = '' if $self->{prompt_hide};
- my $msg = $self->{prompt_msg} . $buf. "█";
- $self->{prompt} = $self->overlay(0, -1, $self->ncol, 1, urxvt::OVERLAY_RSTYLE, 0);
- $self->{prompt}->set(0, 0, $self->special_encode ($msg));
-}
-
-sub displaying_prompt {
- my ($self) = @_;
- return $self->{state} eq 'prompt';
-}
-
-sub prompt_handle {
- my ($self, $string) = @_;
- $self->{prompt_buffer} .= $string;
- $self->prompt_redisplay;
-}
-
-sub prompt_delete {
- my ($self) = @_;
- substr $self->{prompt_buffer}, -1, 1, "";
- $self->prompt_redisplay;
-}
-
-sub prompt_finish {
- my ($self) = @_;
- delete $self->{prompt};
- delete $self->{state};
- my $next = delete $self->{prompt_next};
- my $buf = delete $self->{prompt_buffer};
- $next->($buf);
- return;
-}
-
-sub which_password {
- my $self = shift;
-
- $self->prompt('Password to insert: ', 0, sub {
- my $passname = shift;
- my $password = `pass search $passname`;
-
- if ($password) {
- $self->tt_write($password);
- }
- else {
- $self->timed_msg("Unknown password $passname");
- }
- $self->leave;
- });
-}
-
-sub key_press {
- my ($self, $event, $keysym, $string) = @_;
-
- delete $self->{manpage_overlay};
-
- if ($keysym == 0xff1b || $string =~ /\cc/) { # escape or ^C
- $self->timed_msg('Aborted.');
- $self->leave;
- }
-
- if ($self->{state} eq 'prompt'){
- if ($keysym == 0xff0d || $keysym == 0xff8d) { # enter
- $self->prompt_finish;
- }
- elsif ($keysym == 0xff08) { # backspace
- $self->prompt_delete;
- }
- else {
- $self->prompt_handle($string);
- }
- }
-
- return 1;
-}