La documentazione di KeePass in http://keepass.info/help/v2/setup.html#mono , sebbene non menzioni specificamente OS X, descrive il tuo problema:
Appunti:
su alcuni sistemi, le routine degli appunti di Mono non funzionano correttamente. In questo caso, installa il pacchetto xsel. Se xsel
installato, KeePass ≥ 2.20 utilizza questa utility per le operazioni negli Appunti.
Quindi xsel
dovrebbe aiutare. ( xsel
è disponibile da MacPorts ( http://www.macports.org/ports.php?by=all&substr=&page=316&pagesize=50 ). La fonte è disponibile qui: http://www.vergenet.net/~conrad/ software / xsel / # download )
EDIT : Ma non lo fa. Ero curioso, quindi ho compilato xsel
sul mio Mac. Non ha risolto il problema con copia / incolla (testato con Portable KeePass 2.20.1), come temevo, devo dire. Perché? Perché come indicato qui http://www.kfish.org/software/xsel/ xsel
è uno strumento che manipola il contenuto degli appunti delle applicazioni X11 . X11 fornisce l'interfaccia utente grafica per Linux e UNIX, ma OS X usa invece Quartz , e anche Mono, come ho realizzato (vedi http://www.mono-project.com/WinForms#About_System.Windows.Forms ).
C'è una soluzione alternativa per copiare nome utente e password negli Appunti, come spiegato in questa discussione http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :
Ureka (sic) . Il tuo 2.19 è sulla strada per copiare incolla lavorando sul MAC via Mono! Il tuo pulsante per copiare il nome utente e il tuo pulsante per copiare la password ora funzionano !!!
Il poster sopra si riferisce a questi pulsanti (KeePass 2.20.1 portatile mostrato in esecuzione su Windows (mi dispiace, nessun Mac nelle vicinanze)):
Per copiare il nome utente:
Per copiare la password:
MODIFICA :
Vorrei condividere come ho compilato xsel
nel caso qualcuno ne avesse bisogno su OS X:
Installa X11 da http://support.apple.com/kb/HT5293 (questo vale solo per gli utenti di "Mountain Lion" di OS X 10.8).
Intestazione Symlink e file di libreria da /opt/X11/include/X11
a /usr/local/include/X11
e da /opt/X11/lib
a /usr/local/lib
(in alternativa si può link simbolico a /usr/include
e /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
Altrimenti otterrai molti errori su file non trovati o simboli mancanti. Ho provato a passare le directory X11 non standard come opzione a ./configure
senza successo.
Scarica da http://www.vergenet.net/~conrad/software/xsel/#download ed estrai, ad esempio, sul tuo desktop.
Hai bisogno di gcc
più librerie. Installa Xcode e quindi installa gli strumenti della riga di comando da Xcode> Preferenze> Download> Componenti.
Cambia directory, configura e compila:
$ 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
Puoi anche installare xsel
con MacPorts usando il comando sudo port install xsel
. Nella mia installazione ha richiesto anche i collegamenti simbolici per le librerie X11 e i file di intestazione e ci è voluto molto più tempo per la compilazione.
Vorrei anche condividere alcuni avvertimenti quando si utilizza KeePass su un Mac:
KeePass 2.18 (da http://keepass2.openix.be ) ha problemi con HFS + sensibile al maiuscolo / minuscolo. KeePass.exe
viene digitato Keepass.exe
(nota 'p' minuscola) in KeePass2.18.app/Contents/MacOS/startkeepass.sh
(in modo che fallisca silenziosamente). Ho dovuto usare un'unità flash USB formattata con HFS + senza distinzione tra maiuscole e minuscole ed eseguire KeePass da lì.
Ho avuto molti problemi a far funzionare KeePass 2.20.1 su OS X 10.8 "Mountain Lion". Non è stato possibile eliminare il messaggio di errore:
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
Alla fine ho trovato il colpevole: le note di rilascio per la versione 2.20.1 dichiarano ( http://keepass.info/news/n121004_2.20.1.html ):
Cambia da 2.20 a 2.20.1: Su sistemi simili a Unix, KeePass ora memorizza la maggior parte dei suoi file temporanei in una directory temporanea privata (preferibilmente in $XDG_RUNTIME_DIR
).
Secondo http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html :
$XDG_RUNTIME_DIR
definisce la directory di base in relazione alla quale devono essere memorizzati i file di runtime non essenziali specifici dell'utente e altri oggetti file (come socket, named pipe, ...). La directory DEVE essere di proprietà dell'utente ...
XDG_RUNTIME_DIR
non è stato impostato. L'ho impostato su una directory di mia proprietà e KeePass ha funzionato come un incantesimo:
$ echo $XDG_RUNTIME_DIR
$ mkdir ~/.mono
$ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe