Как стать автором
Обновить

Комментарии 98

Аххаха, он уже есть! Правда, давно не тестировался, так что сложно сказать, соберется ли сейчас. Но можно написать тикет, если что-то пойдет не так :)

А если серьёзно, я вполне допускаю, что адаптировать far2l под Windows, приделав ещё один бекенд «консоль Windows», куда проще, чем оригинальный Far для Windows сделать кроссплатформенным.

А, собирается ли Вами ещё порт Far2L для Linux32 для запуска в «старых» версиях Linux?
(как ранее портабельная сборка стартующая c Xenial Ubuntu 32)

Upd: Увидел в cтатье.

Для amd64 вот сейчас собираю прямо. Выложу туда же, куда ведет ссылка portable из поста. Xenial и более поздние, да. Раньше с Trusty начинал, но сейчас там проблемки, больно старый всё-таки.
Для i386 лежит там же, но без последний изменений, дойдут руки — обновлю как-нибудь тоже, если кому-нибудь это вообще актуально ещё.

Не уверен что поддержка i386 действительно актуальна, но поддержка 32 битных систем вполне нужна.

Far2l прекрасно работает в сборках для arm32, проверено лично для imx6.

Таких встроенных систем пруд пруди.

Собрать portable в принципе подо что угодно можно, если мне кто-нибудь даст виртуалку на этой архитектуре на час.

Для встройки проще предложить патч для buildroot и/или yocto.

Добавить новый package.

Тогда не будет нужду строить все самому.

Те кому надо просто добавят far2l к билду и оно само построится.

Опять таки, это сильно продвинет far2l в сообщество.

Это конечно не приём в официальные репы Ubuntu или других больших дистро но вполне себе прогресс.

Пользуясь случаем, хочу сказать огромное спасибо за проект.

Народ конечно говорит что mc может все тоже, но это не совсем так.

По моему сугубо личному мнению far2l намного удобнее и привычнее для тех, кто долгие годы работал с far для windows.

Тепло это слышать! Основные благодарности, конечно, должны @elfmzдостаться :) С buildroot и/или yocto опыта, увы, не имел, но если вы возьметесь делать и будут какие-то сложности, постараюсь помочь по возможности! Можно тут в личку писать, например, или в телеграм t.me/unxed, там отвечу быстрее

Пересобрал portable aarch64-версию тоже.

А так Вы напишите основные отличия от mc. Я например не знаю про достоинства, запустил, посмотрел, и вернулся обратно в привычный mc. А вполне возможно, что есть фичи, о которых я не знаю

Ой, не, такие сравнения это очень конфликтогенная тема, не полезу в это :) Тем более, надо быть доскональным знатоком их обоих, чтоб хорошее сравнение написать, а я точно таковым не являюсь, я и в фаре-то привычном постоянно новые фишки открываю, о которых не знал раньше. Но кто-то делал такие сравнения в каментах к моим предыдущим постам про far2l здесь, поищите, если интересно!

mc - это рогатка. far - автомат Кадашникова. Фич очень много, двумя словами не описать. F1 в помощь

В mc есть свои хорошие решения. Их стараемся срисовывать! Вот например FISH гениальное изобретение именно кого-то из команды mc, и мы его сейчас в far2l добавляем:
https://github.com/elfmz/far2l/issues/1819

Собрал и выложил 32-битный portable тоже, проверяйте!

А пойдемте в телеграм разбираться, чтоб здесь не флудить сильно? t.me/unxed

А давайте все же лучше здесь? Дабы результаты разбирательства можно было хоть как-то найти потом.

Аналогично, кстати. Не запускается:

/far2l: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by ./far2l) ./far2l: /lib64/libstdc++.so.6: version CXXABI_1.3.8' not found (required by ./far2l)
./far2l: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./far2l)

Исправил на своей стороне, попробуйте свежую версию по той же ссылке, пожалуйста!

Как временный workaround, чисто теоретически, вот это должно помочь, libstdc++ поставится свежая. Я, вроде, понял, отчего такое происходит, но чтобы понять, как исправлять, надо сперва дождаться ответа автора вот на этот тикет.

We need to go deeper. Как насчет Far в WSL?

Писали что работает, вот инструкция по сборке https://t.me/far2l_ru/2447

Только не "консоль Windows" нужно делать, а сразу "Windows Terminal" - вот это нормальная консоль и она доступна в 10, а в 11 IMHO уже по-дефолту использется.

Вы правы, в Windows Terminal есть встроенная поддержка esc последовательностей ansi, портировать под него будет проще. Правда, тогда ОС старше десятки в минус.

Под Cygwin будет работать?

Когда-то работал, но это давно не тестировалось. Будет здорово, если вы проверите!

Ой спасибо за цвета, очень не хватало.

А под macOS не планируется?

Так он работает под macOS прекрасно, в чате примерно треть пользователей маководы.

Подтверждаю, на m1 работает прекрасно!
Ещё бы научить его включать F-клавиши, при переключении на приложение, и возвращать обратно при смене фокуса.

По F-клавишам можно тикет запилить :) Ссылка на багтрекер в конце поста.

На macos есть https://github.com/Pyroh/Fluor Пользуюсь им давно. Правда F11 что-то он у меня не перехватывает.

актуальные deb для убунты где брать ?

мне кажется, что работать в новой псевдоконсоли, а не в той из которой был запуск - это архитектурная ошибка

Вопрос как минимум заслуживающий дискуссии. А какие ограничения с вашей точки зрения такой подход создаёт?

неудобно несколько far запускать и консоль теряется при выходе

сейчас я использую консоль и mc так:

  1. запустил konsole и в нем 10 табов (все это стартует автоматом при логине)

  2. работаю в голой косноли (табе)

  3. нужен mc - запускаю его и также консоль вижу

Всё равно до конца не понимаю, почему модель far2l вам не подходит. Почему важна именно та консоль, в которой запущено приложение, а не встроенная отдельная, и как это связано с табами? Окружение родительской консоли в фаровскую консоль передается, если что. Проверить можно так: a=b far2l --tty, и потом env

  1. исходное состояние konsole с табами консолей - я работаю в консолях, например пойду по ssh кудато, а там mc и всё тутже - в этом табе

  2. т.е. если нужен mc - я его запускаю и он работает в этом табе, в этой консоли, не отдельное окно вылезает 2.1 вышел из mc - и в этойже консоли все выводы команд поданные в mc - вижу, не пропали

  3. 10 табов - 10 mc и все в рамках одного окна, а не 10ти окон

если ктото работает только в одном экземпляре far2l и более ему не надо, то проблем наверно и нет

  1. так можно и с far2l, пошли куда-то по ssh, там запустили tty-версию

  2. вот тут да, история команд в фаре и баше отдельная. это обсуждалось в тикете, не только у вас запрос такой есть. вот тут обсуждение, там и workaround есть https://github.com/elfmz/far2l/issues/1075

  3. опять же, делаете 10 табов, в них 10 tty-версий far2l, в чём проблема? запускаете far2l --tty просто. или собираете вообще без wx

про --tty не знал )

но стали проблемы с хоткеами - не работают LCtrl-Цифира
также надо дважды нажимать ESC для закрытия диалогов (в мс есть настройка для этого)
наверно никто в режиме --tty не тестирует )

а быстро убрать\показыть скрытые файлы и каталоги хоткей есть ?

Я в режиме tty тестирую. Чтоб нажимать ESC один раз, запускайте с ключиком --ee. Но вообще, похоже, у вас он без поддержки гибридного ввода собран, раз LCtrl+цифры не работают. Это странно. Бинарник far2l_ttyx.broker присутствует? Или вы его на удаленной системе гоняете, где нет библиотек x11 или не включен x forwarding при ssh соединении? Тогда надо запустить far2l локально, и уже через него делать ssh куда-то, все хоткеи заработают.

Скрытые — Ctrl+H.

  1. с ключом --ee заработал одиночный esc, но заметна на глаз задержка закрытия окон при его нажатии

  2. deb пакет брал из вышеуказанного репа, наверно потому и клавиши LCtrl+цифры не работают, far2l_ttyx.broker не вижу

  3. при этом Ctrl+H - работает

такто есть еще много вопросов после mc )
но может где есть тематический форум по far2l чтобы тут не засорять тред ?

Ссылка на чатик в Телеграме в конце поста, приходите туда!

2. попробуйте из исходников или portable

Если ставите из ppa, far2l_ttyx.broker живёт в пакете far2l-ttyx, поставьте его тоже.

а расскажите как реализовали автозапуск в консоли 10 табов, пожалуйста ? а то страдаю, а руки не доходят разобраться, а тут умный человек )

Программа Konsole: Меню -> File -> New Tab

это то понятно, вы просто написали что это у вас автоматизировано, меня больше волновал аспект открытия дополнительной вкладки автоматизировано

хотя, направление ясно, --new-tab.

все табы будут открыты при старте konsole (при новом логине в плазму)

Спасибо автору :-), far2l очень нужен в линуксе,

всякими mc невозможно пользоваться :-(

Единственное не хватает кнопки как в mc "SFTP-соединение" чтоб копировать файлы из удалённого компьютера к себе...

Есть же и sftp, и всё что захочешь. Даже больше чем в FAR3

НЛО прилетело и опубликовало эту надпись здесь

есть разные эффективные способы работы в файловой системе, ftp, ssh - mc один из них, который дополняет консоль, но не отменяет ее
а проблемы mc уже заучены и привычны )

Да mc норм, никто ведь не предлагает обязательно всем на фар перебираться :) Хорошо, когда есть выбор! Мне вот именно такой инструмент нравится, я к нему привык, у него много интересных плюшечек, экономящих время и упрощающих жизнь, и мне очень не хватало его на *nix. Плюс этот порт — история о том, как можно в дополнить *nix консоль фичами, которых там отродясь не было, а в виндовой консоли были. В процессе приходится придумывать весьма изящные с инженерной точки зрения решения, участвовать в этом дикий кайф. А mc конкуренция только на пользу, подстегнёт развитие. И будет у нас два классных консольных двухпанельника, а не один.

Еще удобно, что можно "зайти" в файлы типа initrd или .iso.

Пользуюсь очень много лет (25+) и командной строкой и mc.

В far2l тоже это есть, кстати. Сам помогал пилить. Он вообще во всё мыслимое заходит, вполть до образов дисков многих виртуалок.

В оболочке Puppy Linux контестного меню есть пункт UExtract позволяющий распаковывать всевозможные форматы файлов, вплоть до такого необычного результата, как преобразование PDF в HTML (для возможности открытия в i-net браузере) :)
всякими mc невозможно пользоваться :-(

Поэтому использую vifm, вместе с vim отлично работает

Спасибо Вам за far2l! Пользуемся с удовольствием всем коллективом.

Спасибо в первую очередь основному автору,@elfmz! Я только помогаю тестировать немножко, иногда небольшие патчики пишу, статьи обзорные вот, ну и концптуально удавалось несколько раз предложить удачное решение той или иной проблемы.

И всё же слышать это очень тепло и приятно!

А кто-нибудь сумел успешно собрать на CentOS?

Пока видел две ссылки с инструкциями:


Но в том или ином виде у меня с обеими проблема. Сложность в том, что аккуратно перевести с убунтовского на центосовский:

apt-get install gawk m4 libwxgtk3.0-gtk3-dev libx11-dev libxi-dev libpcre3-dev libxerces-c-dev libspdlog-dev libuchardet-dev libssh-dev libssl-dev libsmbclient-dev libnfs-dev libneon27-dev libarchive-dev cmake g++ git

По сборкам под разные дистрибутивы можно поискать вот в этом тикете или спросить в чяте (ссылка в конце поста). Отпишитесь в тикет, если вы будете первым, кто соберет!

Ссылка на тикет потерялась

https://github.com/elfmz/far2l/issues/647

Хотите собрать именно с wx, GUI-вариант? Я себе собираю под CentOS 7, но только TTY-вариант, без GUI, если хотите, могу поделиться рецептом.

Да, мне только TTY-вариант.

Написал инструкцию для CentOS 7:
https://github.com/elfmz/far2l/issues/647#issuecomment-1310838699
Скорее всего то же самое (с заменой yum на dnf) подойдёт и для CentOS 8. Если будете пробовать, буду благодарен за любой (положительный или отрицательный) feedback.

Спасибо за инструкцию. С GUI собрать под CentOS7 тоже особых проблем не было. Для этого указываем DUSEWX=yes в cmake (без python собирал):

cmake -DUSEWX=yes -DCMAKE_BUILD_TYPE=Release ..

make

Далее идем в подпапку /install и запускаем far2l

А почему не работает поиск? Вот, например, пытаюсь искать:
ipic.su/7yZe12.png

Результат:
ipic.su/7yZe14.png

Но, стоит зайти, например, в /etc файлы находятся. Но лишь жалкая доля того, что находит find:
ipic.su/7yZe15.png

PS и подобных «мелочей» огромное множество. Есть какой-нибудь рускоязычный форум, куда можно внятно писать о всех найденных ошибках?

Ссылка на багтрекер в конце поста, написать о проблеме нужно именно туда! Спасибо! :)

Конкретно с проблемой ненахождения существующих файлов я не сталкивался. Но один комментарий к скриншоту дам, если я что-либо ищу начиная с корневого каталога (чего я обычно стараюсь не делать), я всегда отключаю "Search in symbolic links", иначе фар будет рекурсивно гулять внутри /proc до бесконечности. Собственно говоря, в Far для Windows я тоже при поиске по большому дереву (типа по всему диску, по всем несъёмным дискам) эту опцию всегда отключаю.

Проблема не в корне. В /home были аналогичные проблемы. Это я уже для скринов подобрал параметры, независящие от дистрибутива.

На последнем мастере все ещё воспроизводится?

Хорошая программа, давно пользуюсь. Из минусов, кот. переодически напрягает, не работает (или не понятно как пользоваться) прокруткой вывода терминала в режиме Ctrl+O (когда панели скрыты).

Она там по F3 работает. Если надо текст скопировать — ctrl-shift-f4

Очень вам благодарен за подсказку!

При пользовании Far мне, бывает, не хвтает третьей открытой панели и чтобы её отображение было постоянным (не перекрывалось другими панелями).
Поэтому приходиться запускать ещё один Far. :)

P.S. А, интересно, есть ли для Far плагин сравнения файлов сравнимый по функционалу с программой WinMerge?

Есть один для Фар 3 (Visual Compare), но я его не пробовал.

Есть кросс-платформенные аналоги WinMerge: KDiff3 и Meld.

Да, в линуксе использую Meld. Из far2l запускаю его макросом, который выбирает файлы для сравнения в зависимости от текущих или выделенных позиций в панелях.

А выложите макрос, пожалуйста!

А можно ли сделать чтоб по Ctrl-O открывалась нативная консоль?

Сейчас, как я понимаю, открывается своя, и к ней есть вопросы:

  1. нельзя оставить работаьть в фоне, вернувшись обратно по Ctrl-O

  2. у неё свой непрозрачный фон

  3. не работают системные клавиатурные комбинации и выделение мышью только через Shift

Увы, такого нет пока

А вы о системных комбинациях какого именно терминала говорите?

который открывается по Ctrl-O (или при выполнении комманд) в tty-режиме

Я не очень понимаю, что вы имеете в виду под «системными клавишами». Это какие, например? Для какой системы (приложения?) они системные?

  1. Я правильно понимаю, что более-менее работать будут только изначально перекомиленные плагины? Всякие под виндовую версию не заведутся?

  2. Мне очень нужен плагин а-ля PictureView. Цель - посмотреть картинку(и) сразу на весь экран без запуска доп. программ. Он 100% не заведется, т.к. версия под Far3 использует DirectX и системные декодеры форматов файлов... Ну т.е. я вижу в статье способы показа картинок, но тут это больше на какое-то экзотическое извращение похоже же) Хочется чего-то естественного и с качественным выводом на экран

Да, виндовые не подхватятся, увы. Даже если бы их можно было прицепить через wine, пришлось бы ещё писать прокладку-транслятор АПИ, так как оно отличается немного.

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

А почему бы не вызвать w3m если терминал совместим?

Это лучше в тикет написать, где sixel обсуждаются.

Про BSD упоминание только в первом абзаце, и ни ссылок, ни гайдов... видимо, мало кто пользуется?

Сложно сказать, много или мало, я статистику такую не веду :) В логе коммитов время от времени проскакивает «поправлено то-то и то-то на BSD». Ссылочку могу дать такую, например: https://www.freshports.org/misc/far2l

Отличная разработка, рад был познакомиться с такой реинкарнацией замечательного проекта :)

Поставил на Ubuntu 20.04.5 LTS, немного удивило, что потребовалось поставить 357 дополнительных пакетов (117 Мб архивов)

Hidden text

acl apg aptdaemon aptdaemon-data aspell aspell-en avahi-daemon avahi-utils bluez bubblewrap cheese-common colord colord-data cracklib-runtime cups-pk-helper dbus-x11 dconf-cli desktop-file-utils dictionaries-common dns-root-data dnsmasq-base docbook-xml emacsen-common enchant-2 evolution-data-server
evolution-data-server-common far2l-gui fprintd gcr gdm3 geoclue-2.0 gir1.2-accountsservice-1.0 gir1.2-atk-1.0 gir1.2-atspi-2.0 gir1.2-freedesktop gir1.2-gck-1 gir1.2-gcr-3 gir1.2-gdesktopenums-3.0 gir1.2-gdkpixbuf-2.0 gir1.2-gdm-1.0 gir1.2-geoclue-2.0 gir1.2-gnomebluetooth-1.0 gir1.2-gnomedesktop-3.0
gir1.2-graphene-1.0 gir1.2-gtk-3.0 gir1.2-gweather-3.0 gir1.2-ibus-1.0 gir1.2-json-1.0 gir1.2-mutter-6 gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-notify-0.7 gir1.2-pango-1.0 gir1.2-polkit-1.0 gir1.2-rsvg-2.0 gir1.2-secret-1 gir1.2-soup-2.4 gir1.2-upowerglib-1.0 gir1.2-vte-2.91 gjs gkbd-capplet gnome-control-center
gnome-control-center-data gnome-control-center-faces gnome-desktop3-data gnome-keyring gnome-keyring-pkcs11 gnome-menus gnome-online-accounts gnome-session-bin gnome-session-common gnome-settings-daemon gnome-settings-daemon-common gnome-shell gnome-shell-common gnome-startup-applications gnome-user-docs
gstreamer1.0-clutter-3.0 gstreamer1.0-gl gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-pulseaudio gstreamer1.0-x hunspell-en-us ibus ibus-data ibus-gtk ibus-gtk3 iio-sensor-proxy im-config ippusbxd language-selector-gnome libaa1 libappindicator3-1 libasound2-plugins libaspell15 libasyncns0
libavahi-core7 libavahi-glib1 libavc1394-0 libbluetooth3 libcaca0 libcamel-1.2-62 libcanberra-gtk3-0 libcanberra-gtk3-module libcanberra-pulse libcdparanoia0 libcheese-gtk25 libcheese8 libclutter-1.0-0 libclutter-1.0-common libclutter-gst-3.0-0 libclutter-gtk-1.0-0 libcogl-common libcogl-pango20
libcogl-path20 libcogl20 libcolord-gtk1 libcolorhug2 libcrack2 libdaemon0 libdv4 libebackend-1.2-10 libebook-1.2-20 libebook-contacts-1.2-3 libecal-2.0-1 libedata-book-1.2-26 libedata-cal-2.0-1 libedataserver-1.2-24 libedataserverui-1.2-2 libegl-mesa0 libegl1 libenchant-2-2 libexif12 libflac8 libfprint-2-2
libgail-common libgail18 libgbm1 libgck-1-0 libgcr-base-3-1 libgcr-ui-3-1 libgd3 libgdata-common libgdata22 libgdm1 libgee-0.8-2 libgeoclue-2-0 libgeocode-glib0 libgjs0g libgles2 libgnome-autoar-0-0 libgnome-bluetooth13 libgnome-desktop-3-19 libgnomekbd-common libgnomekbd8 libgoa-1.0-0b libgoa-1.0-common
libgoa-backend-1.0-1 libgomp1 libgphoto2-6 libgphoto2-l10n libgphoto2-port12 libgraphene-1.0-0 libgsound0 libgssdp-1.2-0 libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libgstreamer-plugins-good1.0-0 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libgtop-2.0-11 libgtop2-common libgupnp-1.2-0 libgupnp-av-1.0-2
libgupnp-dlna-2.0-3 libgweather-3-16 libgweather-common libharfbuzz-icu0 libhunspell-1.7-0 libhyphen0 libibus-1.0-5 libical3 libidn11 libiec61883-0 libieee1284-3 libinput-bin libinput10 libjack-jackd2-0 libjavascriptcoregtk-4.0-18 libmediaart-2.0-0 libmozjs-68-0 libmp3lame0 libmpg123-0 libmtdev1 libmutter-6-0
libmysqlclient21 libndp0 libneon27 libnfs13 libnm0 libnma0 libnotify4 libnss-mdns libopengl0 libopenjp2-7 libopus0 liborc-0.4-0 libpam-fprintd libpam-gnome-keyring libpangoxft-1.0-0 libpcsclite1 libphonenumber7 libprotobuf17 libpulse-mainloop-glib0 libpulse0 libpulsedsp libpwquality-common libpwquality1
libraw1394-11 librygel-core-2.6-2 librygel-db-2.6-2 librygel-renderer-2.6-2 librygel-server-2.6-2 libsamplerate0 libsane libsane-common libsbc1 libsecret-1-0 libsecret-common libshout3 libsnapd-glib1 libsndfile1 libsnmp-base libsnmp35 libsoxr0 libspeex1 libspeexdsp1 libstartup-notification0 libtag1v5
libtag1v5-vanilla libteamdctl0 libtheora0 libtwolame0 libv4l-0 libv4lconvert0 libvisual-0.4-0 libvorbisenc2 libvpx6 libvte-2.91-0 libvte-2.91-common libwacom-bin libwacom-common libwacom2 libwavpack1 libwayland-server0 libwebkit2gtk-4.0-37 libwebpdemux2 libwebrtc-audio-processing1 libwhoopsie-preferences0
libwhoopsie0 libwoff1 libwxbase3.0-0v5 libwxgtk3.0-gtk3-0v5 libxatracker2 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-res0 libxcb-util1 libxcb-xkb1 libxcb-xv0 libxerces-c3.2 libxfont2 libxkbcommon-x11-0 libxklavier16 libxss1 libxvmc1 libyelp0 mobile-broadband-provider-info
mousetweaks mutter mutter-common mysql-common network-manager network-manager-gnome network-manager-pptp p11-kit p11-kit-modules pinentry-gnome3 ppp pptp-linux pulseaudio pulseaudio-module-bluetooth pulseaudio-utils python3-aptdaemon python3-aptdaemon.gtk3widgets python3-cairo python3-cups python3-cupshelpers
python3-defer python3-ibus-1.0 python3-macaroonbakery python3-protobuf python3-rfc3339 python3-tz rtkit rygel sane-utils session-migration sgml-base sgml-data switcheroo-control system-config-printer system-config-printer-common system-config-printer-udev ubuntu-docs ubuntu-session ubuntu-wallpapers
ubuntu-wallpapers-focal update-inetd wamerican whoopsie-preferences wpasupplicant x11-xkb-utils xdg-dbus-proxy xfonts-base xfonts-encodings xfonts-utils xml-core xserver-common xserver-xephyr xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-libinput xserver-xorg-input-wacom
xserver-xorg-legacy xserver-xorg-video-all xserver-xorg-video-amdgpu xserver-xorg-video-ati xserver-xorg-video-fbdev xserver-xorg-video-intel xserver-xorg-video-nouveau xserver-xorg-video-qxl xserver-xorg-video-radeon xserver-xorg-video-vesa xserver-xorg-video-vmware xwayland yaru-theme-gnome-shell yelp
yelp-xsl zenity zenity-common

Странно, что оболочка требует "иксов".

Если из ppa, ставьте far2l и (опционально) far2l-ttyx, а far2l-gui не ставьте. Поставится только консольная версия без этого огромго списка зависимостей.

Подробности.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории