A documentação do KeePass em http://keepass.info/help/v2/setup.html#mono , apesar de não mencionar especificamente o OS X, descreve seu problema:
Área de transferência:
Em alguns sistemas, as rotinas da área de transferência do Mono não funcionam corretamente. Nesse caso, instale o pacote xsel. Se xsel
estiver instalado, o KeePass ≥ 2.20 usa este utilitário para operações da área de transferência.
Então xsel
deve ajudar. ( xsel
disponível em MacPorts ( http://www.macports.org/ports.php?by=all&substr=&page=316&pagesize=50 ). A fonte está disponível aqui: http://www.vergenet.net/~conrad/ software / xsel / # download )
EDIT : Mas não. Fiquei curioso, então compilei xsel
no meu Mac. Não resolveu o problema com copiar / colar (testado com o Portable KeePass 2.20.1), como eu temia, devo dizer. Por quê? Porque, conforme indicado aqui, http://www.kfish.org/software/xsel/ xsel
é uma ferramenta que manipula o conteúdo da área de transferência dos aplicativos X11 . O X11 fornece a interface gráfica do usuário para Linux e UNIX, mas o OS X usa o Quartz , e o Mono, como eu percebi (consulte http://www.mono-project.com/WinForms#About_System.Windows.Forms ).
Existe uma solução alternativa para copiar nome de usuário e senha para a área de transferência, conforme explicado neste tópico http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :
Ureka (sic) . Seu 2.19 está no caminho de copiar e colar trabalhando no MAC via Mono! Seu botão para copiar o nome de usuário e seu botão para copiar a senha funcionam agora !!!
O pôster acima refere-se a estes botões (o KeePass 2.20.1 portátil mostrado em execução no Windows (desculpe, não há Mac por perto)):
Para copiar o nome de usuário:
Para copiar a senha:
EDIT :
Gostaria de compartilhar como eu compilei xsel
caso alguém precise no OS X:
Instale o X11 em http://support.apple.com/kb/HT5293 (isso se aplica apenas aos usuários do OS X 10.8 "Mountain Lion").
Cabeçalho Symlink e arquivos de biblioteca de /opt/X11/include/X11
para /usr/local/include/X11
e de /opt/X11/lib
a /usr/local/lib
(alternativamente, você pode ligar simbolicamente 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
Caso contrário, você receberá muitos erros sobre arquivos não encontrados ou símbolos ausentes. Tentei passar os diretórios X11 não padrão como uma opção para ./configure
sem sucesso.
Faça o download em http://www.vergenet.net/~conrad/software/xsel/#download e extraia, por exemplo, para sua área de trabalho.
Você precisa de gcc
mais bibliotecas. Instale o Xcode e, em seguida, instale as ferramentas de linha de comando em Xcode> Preferências> Downloads> Componentes.
Mude o diretório, configure e compile:
$ 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
Você também pode instalar xsel
com MacPorts usando o comando sudo port install xsel
. Na minha configuração, ele também exigiu os links simbólicos para as bibliotecas X11 e os arquivos de cabeçalho e precisou de muito mais tempo para compilar.
Também gostaria de compartilhar algumas ressalvas ao usar o KeePass em um Mac:
O KeePass 2.18 (de http://keepass2.openix.be ) tem problemas com o HFS + que diferencia maiúsculas de minúsculas. KeePass.exe
é digitado Keepass.exe
(observe 'p' em minúsculas) em KeePass2.18.app/Contents/MacOS/startkeepass.sh
(para que falhe silenciosamente). Eu tive que usar uma unidade flash USB formatada com HFS + que não diferencia maiúsculas de minúsculas e executar o KeePass a partir daí.
Eu tive muitos problemas para que o KeePass 2.20.1 funcionasse no OS X 10.8 "Mountain Lion". Não foi possível se livrar da mensagem de erro:
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 encontrei o culpado: as notas de versão para o estado da versão 2.20.1 ( http://keepass.info/news/n121004_2.20.1.html ):
Alterações de 2.20 para 2.20.1: Nos sistemas tipo Unix, o KeePass agora armazena a maioria de seus arquivos temporários em um diretório temporário privado (de preferência em $XDG_RUNTIME_DIR
).
De acordo com http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html :
$XDG_RUNTIME_DIR
define o diretório base em relação ao qual arquivos de tempo de execução não essenciais específicos do usuário e outros objetos de arquivo (como soquetes, pipes nomeados, ...) devem ser armazenados. O diretório DEVE pertencer ao usuário ...
XDG_RUNTIME_DIR
não foi definido. Eu o configurei para um diretório que eu possuía e o KeePass funcionou como um encanto:
$ echo $XDG_RUNTIME_DIR
$ mkdir ~/.mono
$ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe