La documentation de KeePass dans http://keepass.info/help/v2/setup.html#mono bien que ne mentionnant pas spécifiquement OS X, décrit votre problème :
Le presse-papiers : Sur certains systèmes, les routines du presse-papiers de Mono ne fonctionnent pas. fonctionnent pas correctement. Dans ce cas, installez le paquet xsel. Si xsel
est installé, KeePass 2.20 utilise cet utilitaire pour les opérations du presse-papiers.
Así que xsel
devrait aider. ( xsel
est disponible sur MacPorts ( http://www.macports.org/ports.php?by=all&substr=&page=316&pagesize=50 ). La source est disponible ici : http://www.vergenet.net/~conrad/software/xsel/#download )
EDIT : Mais ce n'est pas le cas. J'étais curieux alors j'ai compilé xsel
sur mon Mac. Cela n'a pas résolu le problème du copier/coller (testé avec Portable KeePass 2.20.1), comme je le craignais, je dois le dire. Pourquoi ? Parce que, comme indiqué ici http://www.kfish.org/software/xsel/ xsel
est un outil qui manipule le contenu du presse-papiers de X11 applications. X11 fournit l'interface utilisateur graphique pour Linux et UNIX, mais OS X utilise Quartz à la place, et Mono aussi, comme je l'ai réalisé (voir http://www.mono-project.com/WinForms#About_System.Windows.Forms ).
Il existe une solution de contournement pour copie nom d'utilisateur et mot de passe dans le presse-papiers, comme expliqué dans ce fil de discussion http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :
Ureka (sic) . Votre 2.19 est sur la voie du copier-coller fonctionnant sur le MAC via Mono ! Votre bouton pour copier le nom d'utilisateur, et votre bouton pour copier le mot de passe fonctionne maintenant !!!
L'affiche ci-dessus fait référence à ces boutons (KeePass 2.20.1 portable affiché fonctionnant sous Windows (désolé, pas de Mac à proximité)) :
Pour copier le nom d'utilisateur :
Pour copier le mot de passe :
EDIT :
J'aimerais partager comment j'ai compilé xsel
au cas où quelqu'un en aurait besoin sous OS X :
-
Installer X11 à partir de http://support.apple.com/kb/HT5293 (ceci ne s'applique qu'aux utilisateurs de OS X 10.8 "Mountain Lion").
-
Les fichiers d'en-tête et de bibliothèque Symlink de /opt/X11/include/X11
a /usr/local/include/X11
et de /opt/X11/lib
a /usr/local/lib
(alternativement vous pouvez faire un lien symbolique vers /usr/include
y /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
Sinon, vous obtiendrez de nombreuses erreurs concernant des fichiers non trouvés ou des symboles manquants. J'ai essayé de passer les répertoires X11 non-standard comme une option à ./configure
sans succès.
-
Télécharger à partir de http://www.vergenet.net/~conrad/software/xsel/#download et l'extraire, par exemple, sur votre Bureau.
-
Vous devez gcc
plus les bibliothèques. Installez Xcode, puis installez les outils de ligne de commande à partir de Xcode>Préférences>Téléchargements>Composants.
-
Changez de répertoire, configurez et compilez :
$ 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
Vous pouvez également installer xsel
avec MacPorts en utilisant la commande sudo port install xsel
. Dans ma configuration, il a également besoin des liens symboliques pour les bibliothèques X11 et les fichiers d'en-tête, ainsi que de beaucoup plus long à compiler.
J'aimerais également vous faire part de quelques mises en garde concernant l'utilisation de KeePass sur un Mac :
-
KeePass 2.18 (de http://keepass2.openix.be ) a des problèmes avec le HFS+ sensible à la casse. KeePass.exe
est tapé Keepass.exe
(remarquez le "p" minuscule) dans KeePass2.18.app/Contents/MacOS/startkeepass.sh
(pour qu'il échoue silencieusement). J'ai dû utiliser un lecteur flash USB formaté avec HFS+ insensible à la casse et exécuter KeePass à partir de là.
-
J'ai eu beaucoup de mal à faire fonctionner KeePass 2.20.1 sur OS X 10.8 "Mountain Lion". Il n'arrivait pas à se débarrasser du message d'erreur :
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
J'ai finalement trouvé le coupable : les notes de publication de la version 2.20.1 indiquent ( http://keepass.info/news/n121004_2.20.1.html ):
Changements de la 2.20 à la 2.20.1 : Sur les systèmes de type Unix, KeePass stocke désormais la plupart de ses fichiers temporaires dans un répertoire temporaire privé (de préférence dans le répertoire $XDG_RUNTIME_DIR
).
Selon http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html :
$XDG_RUNTIME_DIR
définit le répertoire de base par rapport auquel les fichiers d'exécution non essentiels spécifiques à l'utilisateur et les autres objets de fichiers (tels que les sockets, les pipes nommés, ...) doivent être stockés. Le répertoire DOIT appartenir à l'utilisateur ...
XDG_RUNTIME_DIR
n'était pas réglé. J'ai défini un répertoire qui m'appartient et KeePass a fonctionné à merveille :
$ echo $XDG_RUNTIME_DIR
$ mkdir ~/.mono
$ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe