¿Qué podría solucionar una instalación de KeePass que no copia ni pega en OS X?

KeePass no copiará ni pegará, y mucho menos escribirá automáticamente.

He instalado el paquete Mac KeePass 2.18 desde http://keepass2.openix.be/ . No pude encontrar un paquete de Mac más reciente para KeePass, así que también reemplacé todos los archivos de ese paquete con los del KeePass portátil 2.20.1 (paquete ZIP). Eso fue de la página http://keepass.info/download.html , enlace al zip real: http://downloads.sourceforge.net/keepass/KeePass-2.20.1.zip . Así que estoy ejecutando con éxito KeePass 2.20.1.

Estoy ejecutando Mono versión 2.10.9.

Estoy ejecutando OS X 10.7.5 en una MacBook Pro.

No puedo creer que el sitio de KeePass promocione la compatibilidad con Mac cuando no copia/pega. Esa es una funcionalidad bastante básica que falta. Las búsquedas revelan que otros han tenido este problema desde 2.18, pero no hay soluciones alternativas ni informes de errores.

¿Alguien ha podido resolver este problema?

¿Has probado KeyPass con Mono 3.0 ? No lo he probado pero podría funcionar mejor.

Respuestas (1)

La documentación de KeePass en http://keepass.info/help/v2/setup.html#mono , aunque no menciona específicamente OS X, describe su problema:

Portapapeles: en algunos sistemas, las rutinas del portapapeles de Mono no funcionan correctamente. En este caso, instale el paquete xsel. Si xselestá instalado, KeePass ≥ 2.20 usa esta utilidad para las operaciones del portapapeles.

Entonces xseldebería ayudar. ( xselestá disponible en MacPorts ( http://www.macports.org/ports.php?by=all&substr=&page=316&pagesize=50 ). La fuente está disponible aquí: http://www.vergenet.net/~conrad/ software/xsel/#descarga )

EDITAR : Pero no lo hace. Tenía curiosidad, así que compilé xselen mi Mac. No resolvió el problema con copiar/pegar (probado con Portable KeePass 2.20.1), como temía, debo decir. ¿Por qué? Porque, como se indica aquí, http://www.kfish.org/software/xsel/ xsel es una herramienta que manipula el contenido del portapapeles de las aplicaciones X11 . X11 proporciona la interfaz gráfica de usuario para Linux y UNIX, pero OS X usa Quartz en su lugar, al igual que Mono, como me di cuenta (ver http://www.mono-project.com/WinForms#About_System.Windows.Forms ).

Hay una solución para copiar el nombre de usuario y la contraseña en el portapapeles, como se explica en este hilo http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :

Ureka (sic) . ¡Su 2.19 está en el camino para copiar y pegar trabajando en MAC a través de Mono! ¡Su botón para copiar el nombre de usuario y su botón para copiar la contraseña funcionan ahora!

El cartel de arriba hace referencia a estos botones (se muestra KeePass 2.20.1 portátil ejecutándose en Windows (lo siento, no hay Mac cerca)):

Para copiar el nombre de usuario:

ingrese la descripción de la imagen aquí

Para copiar la contraseña:

ingrese la descripción de la imagen aquí

EDITAR :

Me gustaría compartir cómo compilé xselen caso de que alguien lo necesite en OS X:

  1. Instale X11 desde http://support.apple.com/kb/HT5293 (esto solo se aplica a los usuarios de OS X 10.8 "Mountain Lion").

  2. Encabezado de enlace simbólico y archivos de biblioteca de /opt/X11/include/X11a /usr/local/include/X11y de /opt/X11/liba /usr/local/lib(alternativamente, puede enlazar a /usr/includey /usr/lib):

    $ sudo ln -s /opt/X11/include/X11 /usr/local/include/X11
    $ for lib in $(ls /opt/X11/lib/lib*); do sudo ln -sf $lib /usr/local/lib; done
    

    De lo contrario, obtendrá muchos errores sobre archivos no encontrados o símbolos faltantes. Intenté pasar los directorios X11 no estándar como una opción ./configuresin éxito.

  3. Descargue desde http://www.vergenet.net/~conrad/software/xsel/#download y extráigalo, por ejemplo, a su escritorio.

  4. Necesita gccmás bibliotecas. Instale Xcode y luego instale las herramientas de la línea de comandos desde Xcode>Preferencias>Descargas>Componentes.

  5. Cambiar directorio, configurar y compilar:

    $ cd xsel-1.2.0
    $ ./configure --prefix /usr/local
    $ make
    make  all-am
    if gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -fno-strict-aliasing -Wall -Werror -g -std=gnu99 -Wdeclaration-after-statement -Wno-unused -MT xsel.o -MD -MP -MF ".deps/xsel.Tpo" -c -o xsel.o xsel.c; \
        then mv -f ".deps/xsel.Tpo" ".deps/xsel.Po"; else rm -f ".deps/xsel.Tpo"; exit 1; fi
    gcc  -g -O2 -fno-strict-aliasing -Wall -Werror -g -std=gnu99 -Wdeclaration-after-statement -Wno-unused   -o xsel  xsel.o  -lX11
    $ make install
    

También puede instalar xselcon MacPorts usando el comando sudo port install xsel. En mi configuración, también requería los enlaces simbólicos para las bibliotecas X11 y los archivos de encabezado y necesitaba mucho más tiempo para compilar.

También me gustaría compartir algunas advertencias al usar KeePass en una Mac:

  1. KeePass 2.18 (de http://keepass2.openix.be ) tiene problemas con HFS+ que distingue entre mayúsculas y minúsculas. KeePass.exese escribe Keepass.exe(observe la 'p' minúscula) en KeePass2.18.app/Contents/MacOS/startkeepass.sh(para que falle silenciosamente). Tuve que usar una unidad flash USB formateada con HFS+ que no distingue entre mayúsculas y minúsculas y ejecutar KeePass desde allí.

  2. Tuve muchos problemas para que KeePass 2.20.1 funcionara en OS X 10.8 "Mountain Lion". No pudo deshacerse del mensaje de error:

    System.ArgumentException: Directory does not exists
    Parameter name: path
      at System.IO.FileSystemWatcher..ctor (System.String path, System.String filter) [0x00000] in <filename unknown>:0 
      at (wrapper remoting-invoke-with-check) System.IO.FileSystemWatcher:.ctor (string,string)
      at KeePass.Util.IpcBroadcast.FswStartServer () [0x00000] in <filename unknown>:0 
      at KeePass.Util.IpcBroadcast.StartServer () [0x00000] in <filename unknown>:0 
      at KeePass.Forms.MainForm.OnFormLoad (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) [0x00000] in <filename unknown>:0
    

    Finalmente encontré al culpable: las notas de la versión para el estado de la versión 2.20.1 ( http://keepass.info/news/n121004_2.20.1.html ):

    Cambios de 2.20 a 2.20.1: en sistemas similares a Unix, KeePass ahora almacena la mayoría de sus archivos temporales en un directorio temporal privado (preferiblemente en $XDG_RUNTIME_DIR).

    Según http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html :

    $XDG_RUNTIME_DIRdefine el directorio base en relación con el cual se deben almacenar los archivos de tiempo de ejecución no esenciales específicos del usuario y otros objetos de archivo (como sockets, canalizaciones con nombre, etc.). El directorio DEBE ser propiedad del usuario...

    XDG_RUNTIME_DIRno se configuró. Lo configuré en un directorio que poseía y KeePass funcionó de maravilla:

    $ echo $XDG_RUNTIME_DIR
    $ mkdir ~/.mono
    $ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe
    

ingrese la descripción de la imagen aquí

Instalando xsel: felicitaciones por al menos encontrarlo. Pero no se encontró ningún paquete instalable y no se compilará para mí. Necesito agregar gcc a mi ruta (al menos). Entonces, la solución que funcionó para mí es el último enlace.... pero permítanme ser claro acerca de la parte que funcionó: instalé 2.18 pkg, copié 2.20.1 sobre él, luego los botones (y SOLO los botones, no el las teclas de método abreviado ctrl-C ctrl-V) funcionan. Los botones... eso es lo que me perdí cuando leí ese enlace (antes de hacer esta pregunta).
Comentarios solo editables durante 5 minutos. muy irritante De todos modos: antes de cualquier ataque de mac-police, los atajos (que no funcionan) son, por supuesto, Command-C y Command-V. Tipo automático global: no probé XDOTOOL. No tengo accesos directos, ni auto-tipo, pero tengo BOTONES. Lo suficientemente bueno por ahora. ¡BOTONES! ¿Por qué debería estar decepcionado? Definitivamente tengo los BOTONES. Quiero decir, ¡esos son BOTONES!" (al estilo de Tom Cruise en Rain Man: tengo los rosales ) .
@minnow: finalmente pude probar xselcon KeePass y adivinar... no, no funcionó, así que, por ahora, usar los botones es la única posibilidad en OS X para copiar nombres de usuario y contraseñas. Lo he agregado a la respuesta. Me di cuenta de que Softpedia se vincula al xselcódigo fuente, por lo que eliminé ese bit de mi respuesta.
Aparentemente, los botones existen y funcionan en la versión 2.24 que estoy usando actualmente. No me di cuenta de que los botones de la barra de herramientas pueden hacerlo de manera diferente al menú contextual. ¡Gracias por compartir la respuesta!
Es probable que las cosas hayan cambiado desde que se publicó esta respuesta. Tengo XQuartz ejecutándose, y con la xselinstalación a través de MacPorts, esos botones funcionan bien sin ningún tipo de compilación realizada por mí mismo. Sería bueno que también funcionaran los atajos de teclado, y aún mejor obtener autotipo, pero eso puede ser un sueño imposible por ahora.