plattfot / pinentry-rofi

Rofi frontend to pinentry
43 stars 5 forks source link

help running pinentry-rofi on ubuntu #12

Closed hurrtz closed 3 years ago

hurrtz commented 3 years ago

Hey :)

I have a hard time grasping how to run this tool. I managed to get guix to run under Ubuntu and I also got around the .configure-bug (guild not found) by appending the guile path. Running pinentry-rofi from within the scripts folder issued the same crash as if I sudo make installed it and then running it from my path.

The error message is:

$ pinentry-rofi
Backtrace:
          10 (primitive-load "/usr/local/bin/pinentry-rofi")
In ice-9/eval.scm:
   721:20  9 (primitive-eval (use-modules (ice-9 getopt-long) (# …) …))
In ice-9/psyntax.scm:
  1241:36  8 (expand-top-sequence ((use-modules (ice-9 #) (# #) #)) _ …)
  1233:19  7 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
   285:10  6 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
In ice-9/boot-9.scm:
  3898:20  5 (process-use-modules _)
   222:29  4 (map1 (((ice-9 getopt-long)) ((ice-9 format)) ((#))))
   222:29  3 (map1 (((ice-9 format)) ((pinentry-rofi))))
   222:17  2 (map1 (((pinentry-rofi))))
  3899:31  1 (_ ((pinentry-rofi)))
   3300:6  0 (resolve-interface (pinentry-rofi) #:select _ #:hide _ # …)

ice-9/boot-9.scm:3300:6: In procedure resolve-interface:
no code for module (pinentry-rofi)

From what I get from the message is that the module does not have code. Do you have any idea what might be missing?

plattfot commented 3 years ago

Hi,

Yeah, I wouldn't recommend to sudo make install. There's probably a search path that isn't correctly for ubuntu.

But pinentry-rofi just landed in guix so you should just be able to guix install pinentry-rofi to install it. Make sure you run guix pull first to get the latest version of guix.

To see if it works you can just run pinentry-rofi and type in GETPIN hit enter and rofi should pop up and ask for passphrase. Just type foo or something and hit enter and you should see D foo echo in the prompt. Hit Ctrl+d to exit.

As for using the tool. You need to tell gpg to use it, which I believe is possible with ~/.gpg/gpg-agent.conf. I haven't tested that, instead what I do is modify the /usr/bin/pinentry program (might be in /bin/pinentry for ubuntu) It currently looks like:

#!/bin/sh

exec /usr/bin/pinentry-rofi "$@"
exec /usr/bin/pinentry-curses "$@"

I currently install it directly with the AUR on arch linux. To get it to work with guix you can change /usr/bin/pinentry to

#!/bin/sh

exec /home/<user>/.guix-profile/bin/pinentry-rofi "$@"
#...

Where <user> is the user you installed pinentry-rofi with.

Then when you try to decrypt something with gpg a rofi prompt should pop up asking you for the passphrase.

hurrtz commented 3 years ago

Thank you so much for your support! You where right - pinentry-rofi exists in guix after I upgraded it and now it works! :+1: