Использование X11 - 8. Подсказки по использованию
8.1 Запуск приложений X11 из окна Terminal.app
Для запуска приложений X11из окна Terminal.app необходимо настроить переменную величину среды "DISPLAY". Данная переменная сообщает приложению, где можно найти окно сервера X11. При настройке по умолчанию - когда XDarwin запускается на одной машине - можно установить следующую настройку переменной:
-
В случае использования tcsh:
setenv DISPLAY :0.0
-
В случае использования bash:
export DISPLAY=":0.0"
Хорошим решением является настройка, при которой XDarwin.app запускается при вашем входе в систему (настройку можно сделать на панели регистрации пользователей в параметрах системы в Mac OS 10.2 и на панели счетов пользователей в пунктах запуска в Mac OS 10.3):
-
При использовании tcsh надо добавить следующее к .cshrc:
if (! $?DISPLAY) then setenv DISPLAY :0.0 endif
-
При использовании bash надо добавить следующее к .bashrc:
[[ -z $DISPLAY ]] && export DISPLAY=":0.0"
Таким образом DISPLAY настраивается в любой оболочке. При этом данная настройка не превалирует над текущим значением, если DISPLAY уже настроен. Таким образом все еще можно запускать приложения X11 дистанционно или через ssh с туннелированием X11.
8.2 Запуск приложения Aqua apps из xterm
Одним из способов запуска приложений Aqua из xterm (или любой другой
оболочки) является команда open
. Примеры:
open /Applications/TextEdit.app open SomeDocument.rtf open -a /Applications/TextEdit.app index.html
Во втором примере документ должен открываться в приложении, которое с ним связано; в третьем примере указано приложение, которое необходимо использовать.
8.3 Копирование (Copy) и вставка (Paste)
Copy и Paste в основном работают между средами Aqua и X11. Все еще возникают некоторые ошибки. Есть жалобы о том, что Emacs слишком требователен в текущем выборе. Copy и Рaste не работают между Classic и X11.
Так или иначе, решение заключается в использовании правильного способа в зависимости от имеющейся среды. Для переноса текста из Aqua в X11 используйте Cmd-C в Aqua, затем перенесите окно направления на передний план и для вставки примените "среднюю клавишу мышки" или Alt-щелчок, если у вас одноклавишная мышка (эту конфигурацию можно настроить в параметрах XDarwin). Для переноса текста из X11в Aqua просто выделите текст мышкой в X11, затем вставьте его при помощи Cmd-V в Aqua.
В системе X11 есть несколько отдельных буферов обмена (называемых в X11
"cut buffers") и некоторые приложения не знают, какой из
них следует использовать. В частности, по этой причине иногда не работает
вставка в GNU Emacs или XEmacs.
Программа autocutsel
может в этом помочь;
она автоматически синхронизирует два основных буфера для
вырезанных объектов. Для ее запуска надо инсталлировать пакет Fink autocutsel и
добавить следующую строку к .xinitrc:
autocutsel &
(Она обязательно должна находиться передстрокой выполнения менеджера окна и никогда не должна быть на заднем плане! Не надо добавлять ее в конце - она просто не будет выполняться.) Запомните, что это больше не требуется для X11 Apple (см. Замечания об использовании X11 Apple).
Если вы используете X11 Apple, можно применять Command-C или Edit->Copy, обычные для приложений Mac, для копирования текста в буфер, а среднюю клавишу мышки или Command-V для вставки из буфера в X11 Apple.
В любом случае, если вы сталкиваетесь с проблемами копирования или вставки из Aqua в X11 и наоборот, сначала надо попытаться сделать вставку дважды (иногда копия не получается при однократной попытке), затем использовать промежуточные приложения, н-р, TextEdit или Terminal.app для Aqua и nedit или xterm для X11. По моему опыту, всегда можно найти решение.