Документация KeePass в http://keepass.info/help/v2/setup.html#mono , хотя и не упоминает OS X, описывает вашу проблему:
Буфер обмена: в
некоторых системах подпрограммы буфера обмена Mono не работают должным образом. В этом случае установите пакет xsel. Если xsel
установлено, KeePass ≥ 2.20 использует эту утилиту для операций с буфером обмена.
Так xsel
должно помочь. ( xsel
доступно на MacPorts ( http://www.macports.org/ports.php?by=all&substr=&page=316&pagesize=50 ). Источник доступен здесь: http://www.vergenet.net/~conrad/ софт / xsel / # скачать )
РЕДАКТИРОВАТЬ : Но это не так. Мне было любопытно, поэтому я собрал xsel
на своем Mac. Это не решило проблему с копированием / вставкой (протестировано с Portable KeePass 2.20.1), как я и опасался, должен сказать. Почему? Потому что, как указано здесь, http://www.kfish.org/software/xsel/ xsel
- это инструмент, который манипулирует содержимым буфера обмена приложений X11 . X11 предоставляет графический пользовательский интерфейс для Linux и UNIX, но OS X использует вместо него Quartz , а также Mono, как я понял (см. Http://www.mono-project.com/WinForms#About_System.Windows.Forms ).
Существует обходной путь для копирования имени пользователя и пароля в буфер обмена, как описано в этой теме http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :
Ureka (так в оригинале) . Ваш 2.19 находится на пути к копированию вставки, работающей на MAC через Mono! Ваша кнопка для копирования имени пользователя, а ваша кнопка для копирования пароля теперь работает !!!
Надпись выше относится к этим кнопкам (портативный KeePass 2.20.1 показан работающим в Windows (извините, поблизости нет Mac)):
Для копирования имени пользователя:
Для копирования пароля:
РЕДАКТИРОВАТЬ :
Я хотел бы поделиться тем, как я скомпилировал xsel
на случай, если кому-то это понадобится в OS X:
Установите X11 с http://support.apple.com/kb/HT5293 (это относится только к пользователям OS X 10.8 «Mountain Lion»).
Symlink заголовок и библиотечные файлы /opt/X11/include/X11
к /usr/local/include/X11
и от /opt/X11/lib
к /usr/local/lib
( в качестве альтернативы вы можете симлинку к /usr/include
и /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
В противном случае вы получите много ошибок о том, что файлы не найдены или отсутствуют символы. Я попытался передать нестандартные каталоги X11 как вариант, ./configure
но безуспешно.
Загрузите его с http://www.vergenet.net/~conrad/software/xsel/#download и распакуйте, например, на рабочий стол.
Вам нужны gcc
плюс библиотеки. Установите XCode и затем установите инструменты командной строки от XCode> Предпочтения> Загрузки> Компоненты.
Изменить каталог, настроить и скомпилировать:
$ 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
Вы также можете установить xsel
с MacPorts с помощью команды sudo port install xsel
. В моей настройке также потребовались символические ссылки для библиотек X11 и заголовочных файлов, а для компиляции потребовалось гораздо больше времени.
Я также хотел бы поделиться некоторыми оговорками при использовании KeePass на Mac:
KeePass 2.18 (с http://keepass2.openix.be ) имеет проблемы с чувствительным к регистру HFS +. KeePass.exe
набирается Keepass.exe
(обратите внимание на строчную букву 'p') в KeePass2.18.app/Contents/MacOS/startkeepass.sh
(так что он молча терпит неудачу) Мне пришлось использовать флэш-накопитель USB, отформатированный с учетом HFS + без учета регистра, и запустить KeePass оттуда.
У меня было много проблем с настройкой KeePass 2.20.1 для работы на OS X 10.8 "Mountain Lion". Не удалось избавиться от сообщения об ошибке:
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
Я наконец нашел виновника: Примечания к выпуску для состояния версии 2.20.1 ( http://keepass.info/news/n121004_2.20.1.html ):
Изменения с 2.20 до 2.20.1: В Unix-подобных системах KeePass теперь хранит большинство своих временных файлов в частном временном каталоге (предпочтительно в $XDG_RUNTIME_DIR
).
Согласно http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html :
$XDG_RUNTIME_DIR
определяет базовый каталог, относительно которого должны храниться пользовательские несущественные файлы времени выполнения и другие файловые объекты (такие как сокеты, именованные каналы, ...). Каталог ДОЛЖЕН принадлежать пользователю ...
XDG_RUNTIME_DIR
не был установлен. Я установил в каталог, которым владел, и KeePass работал как шарм:
$ echo $XDG_RUNTIME_DIR
$ mkdir ~/.mono
$ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe