diff options
-rw-r--r-- | Xdefaults | 2 | ||||
-rwxr-xr-x | bin/ssh-add-helper | 3 | ||||
-rw-r--r-- | i3/config | 6 | ||||
-rw-r--r-- | urxvt/pass (renamed from urxvt/pwsafe) | 53 |
4 files changed, 11 insertions, 53 deletions
@@ -14,7 +14,7 @@ URxvt*scrollBar_right:true URxvt*scrollBar:false URxvt*font:6x10 URxvt*boldFont:6x10 -URxvt*perl-ext-common:default,matcher,pwsafe<M-p> +URxvt*perl-ext-common:default,matcher,pass<M-p> URxvt*perl-lib:/home/doy/.urxvt/ URxvt*matcher.button:3 URxvt*keysym.C-Return: perl:matcher diff --git a/bin/ssh-add-helper b/bin/ssh-add-helper index bfc2844..cae6f27 100755 --- a/bin/ssh-add-helper +++ b/bin/ssh-add-helper @@ -4,8 +4,7 @@ use warnings; use IO::Pty::Easy; my $hostname = `hostname`; -open STDIN, '<', '/dev/tty'; -my $pass = `pwsafe -pE ssh.$hostname`; +my $pass = `pass search ssh.$hostname`; my $pty = IO::Pty::Easy->new; $pty->spawn("ssh-add -t 1800 $ARGV[0]"); $pty->read; @@ -26,8 +26,6 @@ floating_maximum_size -1 x -1 for_window [class="Xmessage"] floating enable for_window [class="qemu"] floating enable for_window [class="Gimp"] floating enable -for_window [instance="pwsafe"] floating enable -for_window [instance="pwsafe"] move absolute position 0 px 0 px for_window [instance="urxvt-kuake"] floating enable for_window [instance="urxvt-kuake"] move absolute position 0 px 0 px for_window [class="qemu-system-x86_64"] floating enable @@ -54,8 +52,8 @@ for_window [class="feh"] move window to workspace 7 # start programs bindsym $mod+o exec urxvtc bindsym $mod+b exec firefox -bindsym $mod+i exec dmenu -p "pwsafe -p" < /dev/null | xargs -I{} urxvtc -name pwsafe -geometry 47x2 -e pwsafe -p {} -bindsym $mod+Shift+i exec dmenu -p "pwsafe -up" < /dev/null | xargs -I{} urxvtc -name pwsafe -geometry 47x2 -e pwsafe -up {} +bindsym $mod+i exec dmenu -p "pass search" < /dev/null | xargs -I{} pass search -c {} +bindsym $mod+Shift+i exec dmenu -p "pass search -u" < /dev/null | xargs -I{} pass search -u -c {} bindsym $mod+r exec dmenu_run bindsym --release $mod+s exec screenshot diff --git a/urxvt/pwsafe b/urxvt/pass index 153217b..e0f3057 100644 --- a/urxvt/pwsafe +++ b/urxvt/pass @@ -1,16 +1,14 @@ #! perl -use IO::Pty::Easy; - sub on_init { my ($self) = @_; my $hotkey = $self->{argv}[0] - || $self->x_resource ("pwsafe") + || $self->x_resource ("pass") || "M-w"; - $self->parse_keysym ($hotkey, "perl:pwsafe:start") - or warn "unable to register '$hotkey' as pwsafe start hotkey\n"; + $self->parse_keysym ($hotkey, "perl:pass:start") + or warn "unable to register '$hotkey' as pass start hotkey\n"; return; } @@ -18,7 +16,7 @@ sub on_init { sub on_user_command { my ($self, $cmd) = @_; - $self->enter if $cmd eq 'pwsafe:start'; + $self->enter if $cmd eq 'pass:start'; return; } @@ -33,7 +31,7 @@ sub enter { ); #eval { - $self->do_password; + $self->which_password; #}; #if ($@) { #$self->timed_message($@); @@ -117,56 +115,19 @@ sub prompt_finish { return; } -sub do_password { - my ($self) = @_; - - $self->prompt('Password database password: ', 1, sub { - my $pass = shift; - if ($pass) { - $self->which_password($pass); - } - else { - $self->timed_msg('Aborted.'); - $self->leave; - return; - } - }); -} - sub which_password { my $self = shift; - my $pass = shift; $self->prompt('Password to insert: ', 0, sub { my $passname = shift; - my $pty = IO::Pty::Easy->new; - $pty->spawn("pwsafe -pE $passname"); - my $read; - while (1) { - $read = $pty->read(0); - last if $read =~ /passphrase for/; - } - $pty->write("$pass\n"); - my $password; - while (1) { - $password = $pty->read(0); - last if $password =~ s/password for.*?: //; - if ($password =~ /incorrect/) { - $self->do_password; - return; - } - if ($password =~ /(?:No|More than one) matching entr/) { - $self->which_password($pass); - return; - } - } + my $password = `pass search $passname`; + if ($password) { $self->tt_write($password); $self->leave; } else { $self->msg("Unknown password $passname"); - $self->which_password($pass); } }); } |