Главная > Apple, Всячина > Запускаем FAR Manager под Mac OS X

Запускаем FAR Manager под Mac OS X

Единственной очень полезной вещи, которой мне реально не хватало в макоси, был FAR Manager. Отчаяние доводило меня до крайностей, например до мыслей написать свой ФАР. Даже под это дело разобрался, как писать консольные приложения под юникс, чтобы была картинка как в Фаре — разноцветные панельки, менюшки и т.д, и даже написал HelloWorld под это дело. Оказалось все не так уж и сложно, и написать простейший файловый менеджер (с двумя панелями и минимумом функций) — не такая уж непосильная задача. Все делается через escape-последовательности, как я и предполагал. Потом меня надоумили использовать терминального клиента и работать в терминальной сессии на виндоус-сервере. Какое-то время меня это устраивало, но открывать каждый раз сессию ради какой-то простой операции… И вот, наконец-то  был найден компромиссный способ.

[UPD 02.11.2014] Очень интересное решение нашел пользователь Psycho. Настоятельно рекомендую после прочтения статьи ознакомиться с ним здесь (а можно и до прочтения:)

И сейчас я расскажу, как это сделать — накидаю мануальчик (в первую очередь для себя, чтоб в следю раз быстро вспомнить). Имя, сотворившему чудо — Wine! Небольшая выдержка из Педивикии:

Wine — это свободное программное обеспечение, позволяющее пользователям UNIX-подобных систем архитектуры x86 (и других архитектур, при наличии совместимости, например, AMD64) исполнять 16- 32- и 64- битные приложения Microsoft Windows (64-битные приложения находятся в стадии ранней реализации). Wine также предоставляет программистам библиотеку программ Winelib, при помощи которой они могут компилировать Windows-приложения для портирования их в UNIX-подобные системы. Название Wine является рекурсивным акронимом и расшифровывается «Wine Is Not an Emulator» — «Wine — не эмулятор» (имеется в виду, что Wine не является эмулятором компьютера, как, например, qemu или VirtualBox, Wine — это альтернативная реализация Windows API).


Ставим Wine в Mac OS X. Это беспроблемно можно сделать с помощью замечательного проекта MacPorts. Он по своей концепции похож на Fink, с помощью которого я устанавливал Midnight Commander под Mac OS X. Что потребуется? Ну во-первых, собственно Mac компьютер (хакинтош тоже пойдет), Mac OS X Leopard and higher. Во-вторых, xCode — если ставили дистрибутив с retail-диска, то xCode должен быть установлен. В-третьих X11 — тоже должно быть уже установлено. Ну и в-четвертых, нужно иметь рутовый доступ к системе.
Далее устанавливаем MacPorts. На сайте macports скачиваем пакет. Дабл-клик на .pkg файл внутри развернутого .dmg, устанавливаем. Далее открываем xterm. Выполняем

echo export PATH=/opt/local/bin:/opt/local/sbin:\$PATH$'\n'export MANPATH=/opt/local/man:\$MANPATH | sudo tee -a /etc/profile

Система спросит пароль админа. Вводим пароль и нажимаем Enter. Система должна выдать нечто

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/man:$MANPATH

Если не выдала, то скорее всего в системе на задан админский пароль. Придется немного погуглить или подсмотреть в одном из моих предыдущих постов.
Если все ОК, то вводим команду

if [ `sysctl -n hw.cpu64bit_capable` -eq 1 ] ; then echo "+universal" | sudo tee -a /opt/local/etc/macports/variants.conf; else echo "not 64bit capable"; fi

если система ответит «+universal», то все ок, можно двигаться дальше.
Далее нужно закрыть и открыть заново окно терминала. Вводим

sudo port install wine-devel

если система выругается в ключе «error: C compiler cannot create executables or Failed to locate ‘make’ in path», значит xCode не установлен. В противном случае начнется долгий процесс сборки и установки множества пакетов необходимых для Wine. У меня он занял около часа.
После завершения установки Wine (должно появится приглашение xterm), загружаем дистрибутив far manager и выполняем в терминале команду

wine msiexec /i path_to_far_installer.msi

после чего должен появится установщик Фара. Устанвливаем также как и в виндоусе.
После установки переходим в папку, куда установился фар

cd ~/.wine/drive_c/Program\ Files/Far2

запускаем Фар:

wine wineconsole --backend=user path_to_far/Far.exe

(не забываем про case-sensetive природу Unix систем).
Пока что результатом я доволен. Работают даже плагины (Colorer и FTP).

Осталось разобраться со шрифтами — с русским языком не все в порядке.

 

 

28.07.2011 UPD

Наконец-то дошли руки сделать скрипт запуска. Мой вариант использует bash. Есть и другие способы, например, AppleScript. И так,  Создаем файл far.command  следующего содержания

#!/bin/bash
echo "Running Far Manager"
wineconsole --backend=user ~/.wine/drive_c/Program\ Files/Far2/Far.exe

назначаем ему доступ eXecutable

chmod 755 far.command

и можно пользоваться. В Dock этот файл не дают поместить, но если сделать псевдоним, то можно. Иконку назначить у меня не получилось такому ярлыку, но да и ладно. Может руки дойдут и до этого))

И еще. До кучи импортировал файлы реестра со своими любимыми настройками, которые я использую в Фаре под виндой. Сделать это можно, запустив regedit:

wine regedit

17.10.2011 UPD2
После переезда на Mac OS X Lion обнаружилось, что wine-console лишилась русских символов. Погуглив, нашел решение. Во-первых, нужно скопировать из какой-нибудь винды папку c:\Windows\Fonts в ~/.wine/drive_c/Windows/Fonts
и во-вторых, в ~/.bash_profile прописать строчку

LANG=ru_RU.UTF-8
  1. Михаил
    17 июня 2011 в 09:37 | #1

    Все заработало. Автору огромное спасибо!

    Еще бы подсказали как скрипт создать который можно было бы поместить в Dock и который бы запускал окошко с Far’ом нужного размера и с нужным размером шрифта, при этом не запуская параллельно окно терминала. Тогда счастью не было бы предела!!

  2. 17 июня 2011 в 10:21 | #2

    Пожалуйста!
    Насчет скрипта… Это да, я тоже теперь жалею, что тогда на радостях, что все заработало, не довел до конца дело. Надеюсь, в ближайшее время руки дойдут, и тогда обязательно отпишусь. Или, если у Вас это получиться быстрее сделать, чирканите сюда, был бы премного благодарен))

  3. 28 июля 2011 в 20:26 | #3

    UPD
    -добавил инфу по созданию скрипта. все оказалось несложно))

  4. 24 декабря 2011 в 09:50 | #4

    сделал почти все по инструкции
    Mac OS X Lion 10.7.2
    sudo port install wine

    вместо ярлыка просто закрепил X11 на рабочем столе и в нем правой кнопкой мыши Application Customize и добавил горячую клавишу на ~/Desktop/Far.command

    вот только непонятная проблема… фар не хочет вводить русские буквы… при этом xterm русские буквы нормально вводятся… а в Far нифига

    в /Users/…/.bash_profile
    LANG=ru_RU.UTF-8 стоит
    на всякий случай прописал в скрипт запуска Far.command
    export LANG=ru_RU.UTF-8

    после запуска Far настроил шрифты и цвета и т.п., сделал echo %LANG% > 1.txt там стоит все как надо, но русские буквы фар игнорирует… я не понимаю почему =(

  5. 27 декабря 2011 в 14:50 | #5

    Ну вот, теперь и у меня так же стало)
    Раньше случалось такое, лечилось рестартом вайна. Будем разбираться.
    Если устраните проблему раньше, напишите свое решение, пожалуйста.

  6. 27 декабря 2011 в 15:01 | #6

    фух, нагуглил кажется.
    нужно прописать в .bash_profile
    export LC_ALL=ru_RU.UTF-8
    мне помогло.

  7. zerok
    4 января 2012 в 01:57 | #7

    как бы заставить его по alt f9 разворачиваться на весь экран ?

  8. zerok
    4 января 2012 в 02:01 | #8

    @Slach
    в настройках окна — следовать системной раскладке клавиатуры

  9. 4 января 2012 в 15:31 | #9

    О, спасибо, хотя я и не фанат фулл-скрина в фаре (: читателям надеюсь, будет полезно.
    Вероятно, речь идет о настройках X11 среды. Я туда тоже ползал, когда искал решение проблемы с раскладкой. Очень полезное окошко.
    Так же много полезностей можно найти в настройках стандартного маковского терминала (Terminal.app)

  10. zerok
    1 апреля 2012 в 04:15 | #10

    К сожалению по shift f8 открываемый переключатель кодировок в редакторе потерял уйму названий кодировок. Не понятно откуда он их берет в стардартных виндах. Попытка редактировать имена в фаре вызывает падение фара с последующей невозможностью запуска вообще. Приходится лезть в regedit и удалять значения

  11. zerok
    1 апреля 2012 в 04:15 | #11

    В фулскрин так и не научилась разворачивать :(

  12. 7 сентября 2012 в 09:54 | #12

    На Mountain Lion после установки macports надо выполнить команду «sudo xcodebuild -license» вместо рекомендуемой «xcodebuild -license».

    Описание бага: https://trac.macports.org/ticket/35336

    Иначе сборка wine-devel не идет дальше.

  13. 7 сентября 2012 в 11:08 | #13

    Спасибо, очень полезная инфа.
    Я правда пока на лионе сижу…

  14. Serge
    29 декабря 2012 в 06:09 | #14

    Gentlemans,
    I had some troubles with running commands from Far, and was failing with access violation errors.
    After I upgraded to latest Wine (1.4.1) and installing latest Far (v3) everything worked fine.
    Examples:
    open — will open file by type or folder
    open -a iterm folder — will open console with specified folder

    LET’S the force be with you.

  15. 29 декабря 2012 в 12:16 | #15

    Thank you Serge for very valuable comment.
    But as personally for me, I don’t see a sense in running some console commands via wine being in OSX environment.
    Which way ‘open’ command works? Does it open specified file/folder with some embedded wine tool?

  16. Serge
    30 декабря 2012 в 11:29 | #16

    @heximal
    Well, I meant following:
    FarManager provides the best way to browse/explore content, along with all flavors like bookmarking. But anyway, you end-up with a necessity to execute a command (build process, executing, SCM and so forth). And for that you need to execute commands.
    How open works (this is how I think it does):
    Far Manager delegates it to «system» layer, which in our case it is emulated by Wine. And already Wine implementation decides how to proceed with request. In case if open is provided with File, Wine executes an open command, and as result, an associated with file type application is running.
    The brilliant part for me is invocation of command line tool (in my case: open -a iTerm2) exactly with folder was explored in Far. Thus, I can continue vodoo prays which far can’t.
    I work in that way ~3 years under Ubuntu, and was not able under MacOS till yesterday.
    BTW, under Ubuntu Wine behavior in request execution is different: Path has to be resolved thru shell scripts, something like
    exen.sh:
    #!/bin/sh
    gnome-open «`winepath $1`»

    #above script will open specified file thru UI
    ———-
    or other:
    #!/bin/sh
    konsole —noclose —new-tab —workdir «.» $1 $2 $3 $4 $5

    # and that already is console nirvana, quite sufficient for happiness.

    I’m very lenient person, and I’m definitely not addicted to VIM/VI fans, so I prefer to spend days, but after that reach it in seconds :) (well known reptile daosism stratagem :) )
    Hopefully above text will not ignite ‘Holly Wars’ what is the best, I’ve just shared how I’m doing it day by day :).

  17. 2 января 2013 в 13:08 | #17

    This is very good philosophy (spend days, reach in seconds:) I totaly share it.
    And don’t understand vim fans as well. For me Far manager with colorer plugin is the best text editor.
    So no holy wars)
    As I understand you run wine under OSX lion (10.7) version or lower?
    Cause in moutain lion (10.8) the X11 environment is no longer supported so you need to install it separately.
    Now it calls XQuartz. I currently have version 2.7.4 of XQuartz.
    For some reason your trick with open is not reproducing.

  18. Serge
    2 января 2013 в 21:28 | #18

    @heximal
    Hmmm… One more reason not to upgrade :).
    Yes, I’m using OSX 10.7.
    It’s a pity that with Unix derived OSes things are turning into non-materialistic science, were you should spend a lot on Vodooish drum dancing prays around fire.
    Keep posted if you will find solution for it, I’m curious :).
    P.S.
    Check logs, might be you will find something there.

  19. Максим
    22 марта 2013 в 14:57 | #19

    Привет,
    очень хорошая и понятная инструкция. Спасибо.
    Поставил и все заработало… ну почти все.
    У меня появилась проблемка с запуском Far’a из под файла far.command.
    Я установил Far3 последней стабильной сборки и создал файл, добавил в него код:

    #!/bin/bash
    echo «Running Far Manager»
    wineconsole —backend=user ~/.wine/drive_c/Program\ Files/Far\ Manager/Far.exe

    назначил ему доступ eXecutable и запускаю, и в терминале вижу:

    Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\A35F_hh.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\FB4C_iexplore.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\4137_winhlp32.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\7765_winebrowser.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\7765_winebrowser.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\1E64_notepad.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\FB4C_iexplore.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\FB4C_iexplore.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\FB4C_iexplore.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\FB4C_iexplore.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\FB4C_iexplore.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\2EF4_wordpad.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\1E64_notepad.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\1CD8_rundll32.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\2EF4_wordpad.0.icns»
    err:menubuilder:convert_to_native_icon error 0x80070005 creating output file L»Z:\\tmp\\7765_winebrowser.0.icns»
    wineconsole: Starting program «\»/Users/admin/.wine/drive_c/Program Files/Far Manager/Far.exe\»» failed.
    The command is invalid.

    и все……
    может кто помочь с этим?
    Спасибо

  20. Stanislav
    12 августа 2013 в 07:17 | #20

    господа, а кому-нибудь приходила в голову мысль о том что Mac OS есть ни что иное как Юникс в чистом его виде? а под Юниксом всегда работал MC, с него и делался позже клон под винду в виде Far. ставьте порты и собирайте нативное юникс приложение а не занимайтесь эмуляцией винды где этого делать не надо.

  21. Виталий
    25 сентября 2013 в 18:12 | #21

    Stanislav,
    а) FarManager делался по мотивам NC, а не MC, который в свою очередь как раз и является реинкарнацией Нортон Командера в юниксах.
    б) Far в разы удобнее и мощнее, чем MC. Поэтому очень жаль, что нет нативного порта под ось-икс.

  22. 26 сентября 2013 в 10:12 | #22

    Кстати, да… Не понимаю, почему MC остановился в своем развитии.
    Вот как был он 10 лет назад, так ведь и остался.
    Ну максимум, подсветку синтаксиса в редакторе сделали.
    Фаром пользуюсь лет 15. До сих пор не встречал достойной альтернативы.

  23. Владимир
    31 октября 2013 в 16:43 | #23

    Где-то читал ответ самих отцов-основателей Far, что его портирование на *nix связано с огромными трудностями из-за кучи применяемых в Far-е виндузных хаков. Поэтому его проще написать с нуля, но сами они это во второй раз делать не хотят и не будут…

  24. 31 октября 2013 в 17:54 | #24

    я еще слышал отмазки типа «под фар дофига плагинов, которые просто нереально портировать на мак»

  25. Владимир
    31 октября 2013 в 18:15 | #25

    Надо просто глянуть исходники и насколько там все плохо и/или сложно. Лично мне не так уж много плагинов нужно: в основном только Colorer+FTP.

  26. Владимир
    31 октября 2013 в 18:32 | #26

    …глянул: 10 метров где-то. Это довольно много. Возможно, действительно проще переписать: к текущему Far даже sqlite прикрутили. Но самое главное: не все так элементарно портируется, некоторые алгоритмы придется изменять (навскидку, например работу с clipboard).

  27. 31 октября 2013 в 18:58 | #27

    аналогично.
    колорер+фтп+сфтп+иногда хекс редактор

  28. Владимир
    29 января 2014 в 00:07 | #28

    Случайно нашел вот такое счастье с совершенно невидимым для гугла названием:

    http://filesmanager.info/pict/classic_1280x800.png

    Увы, пока ранняя альфа: терминал не нативный, встроенного редактора еще нет.

    Но надеюсь, у них все получится, а чтобы дело шло поактивнее, можно написать побольше фитбеков! ;) Например, показать на kickstarter.

    Отвлекаясь от темы, задумался: почему окна разных программ нельзя объединять в одно общее окно макросами на шоткеях? Было бы достаточно взять sublime, вот эти красивые панели выше и стандартный терминал. Оказывается, хорошего API для выдирания топ-левел вьюшки из чужих окон (по крайней мере на Мак) нет; однако можно попробовать управлять размерами чужих окон из AppleScript’а, захватывая прямо графический вывод по области. Захват это тоже отнюдь не легко; поэтому пусть для начала размером такого общего окна послужит полный экран развернутых на него в 10.9 приложений. Тогда останется только соединить переключение разных терминала, панелей и редактора стандартными шоткеями Far.

    В общем же, идея наверняка неоригинальна, но может оказаться на уровне изобретения перенаправления ввода-вывода в далеких 80-х: may be такой же глобальной.

  29. Dimutrulkin
    8 мая 2014 в 15:43 | #29

    Эх, еще б по виндовым шарам ходить былоб можно… а то под мак это единственная серьезная беда — лазить по smb://server1/c$, smb://server2/c$… Намонтируется c$, c$-1, c$-2 пойди потом разбери где чьё. Пока только muCommander и спасает. Спасибо за статью!

  30. 19 августа 2014 в 20:07 | #30

    Привет, делал шаг за шагом по мануалу
    но команда cd ~/.wine/drive_c/Program\ Files/Far2 не срабатывает
    пишет -bash: cd: /Users/Mad/.wine/drive_c/Program Files/Far2: No such file or directory

    что делать? почему? :(

  31. Psycho
    2 ноября 2014 в 15:25 | #31

    Для новичков есть довольно элегантный способ установки FAR — быстрый и законченный. Гарантированно работает на последней версии OS X Yosemite (10.10).

    Шаг первый
    Сначала загружаем и устанавливаем (.DMG) XQuartz: http://xquartz.macosforge.org/

    Шаг второй
    Загружаем и устанавливаем (.DMG) пакет WineBottler отсюда: http://winebottler.kronenberg.org/
    На момент написания этого коммента я ставил WineBottler 1.7.25 Development. Закидываем Wine и WineBottler в Applications.

    Шаг третий
    Запускаем WineBottler.app и переходим в открывшемся окне в верху на вкладку Advanced. Здесь распишу по пунктам.
    1. Выбираем бутылку: new prefix (default). Если захотите поставить в другую по своему пути придется потанцевать с бубном, но я не буду ничего усложнять, захотите — разберетсь.
    2. Выбираем Far-установщик, скачанный с оф.сайта: Far30b4040.x86.20140810.msi
    3. Выбираем опцию: This is a installer, execute it
    4. Все остальные поля я полностью зачистил, но можно просто оставить их не тронутыми. Кликаем на Install.
    5. Далее выбираем Save to /Applications и даем имя приложению: FAR.app
    6. Далее в установщике FAR Manager выбираем все, что нужно для установки FAR.
    7. Не ставьте чекбокс «Запустить FAR Manager». После установки WineBottler попросит вас выбрать StartFile, и вам нужно выбрать «Program Files/Far Manager/Far.exe»

    Шаг четвертый (последний)
    Теперь у вас есть FAR.app в директории /Applications
    Чтобы FAR запускался нужно отредактировать startwine внутри кейса FAR.app так, чтобы бутылка использовала wineconsole вместо wine в момент запуска FAR.exe
    Запускаем замечательное приложение Terminal и там выполняем:

    nano /Applications/FAR.app/Contents/MacOS/startwine

    В конце файла мы ищем блок # start wine
    В этом блоке мы должны заменить фрагмент «$WINEUSRPATH/bin/wine» на фрагмент «$WINEUSRPATH/bin/wineconsole».
    Нажимаем ctrl-X и выбираем Y (Yes). Закрываем Terminal. Все. Можно запускать FAR.app

    Вы восхитительны!

  32. Andrew
    11 ноября 2014 в 20:52 | #32

    А если после 5го пункта установка зависает на:
    Creating Far.app
    installing Far%%%%%.msi

    Но при этом нет ни одного диалога, вообще больше ни каких окон — подскажите, что делать?
    фар как воздух нужен :)

  33. Andrew
    11 ноября 2014 в 23:06 | #33

    А нет — приложение появилось. НО оно выглядит как недожиток тоталкомандера

  34. 17 апреля 2015 в 02:18 | #34

    Начиная с места «В конце файла мы ищем блок # start wine» — ничего не понятно…
    Содержание файла:

    Last login: Fri Apr 17 02:12:36 on ttys001
    MacBook-Pro-Autobot:~ scorpio$ /Users/scorpio/Downloads/Far.app/Contents/MacOS/startwine ; exit;
    Wine not found!
    logout

    [Процесс завершен]

  35. 18 апреля 2015 в 14:37 | #35

    Кирилл:
    вы не пробовали способ, предложенный Psycho? через WineBottler

  36. Андрей
  37. 28 августа 2015 в 18:31 | #37

    Да, хороший продукт (WCM), давно за ним наблюдаю, автор огромный молодец.
    Когда он станет удовлетворять моим потребностям, в тот же миг на него пересяду)

Подписаться на комментарии по RSS