LINUX.ORG.RU

Форкаю pcmanfm

 


0

9

Вчера я таки дозрел до решения форкнуть pcmanfm и сделать файловый менеджер мечты.

Начал изучение сорцов с того, что сижу вот распиливаю программу на два бинарника: одна будет непосредственно файловыйм менеджером, а вторая — рисовать рабочий стол. А то не дело это: две столь разные задачи в одном процессе совмещать.

В моих наполеоновских планах создать настолько модульный и конфигурируемый файловый менеджер, насколько это вообще возможно. Ну и самый эргономичный, само собой. Это будет больше, чем просто файловый менеджер. Это будет, фактически, DE-фреймворк.

Вопрос: есть желающие принять участие в проекте? И как обычно на ЛОРе, есть только желающие поскулить в толксах о том, как всё плохо? :}

Ответ на: комментарий от geekless

Меня удивляет взаимодействие между этими программами по DBus.

Твой вариант?

Ну, я бы сначала хорошенько подумал о FUSE и/или 9p. Тебе понадобится протокол взаимодействия с твоими «агентами», а общепринятого протокола тупо нет => тебе придется сделать свой велосипед (или несколько). Протокол же взаимодействия с ФС общепринят, а до каких высот его можно довести, вполне показал Plan9.

Конкретно между этими программами, на мой взгляд, вообще взаимодействие не требуется

Как ты прогресс копирования будешь отображать?

насколько я понимаю, собираешься переизобрести KParts.

Можно и так сказать.

По крайней мере подумай о том, нельзя ли что-то переиспользовать.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ну, я бы сначала хорошенько подумал о FUSE и/или 9p. Тебе понадобится протокол взаимодействия с твоими «агентами», а общепринятого протокола тупо нет => тебе придется сделать свой велосипед (или несколько). Протокол же взаимодействия с ФС общепринят, а до каких высот его можно довести, вполне показал Plan9.

От шины будет требоваться, чтобы клиент мог найти нужного агента по well-known name, узнать, какие интерфейсы тот умеет, и начать с ним обмен сообщениями.

Чем здесь FUSE или 9p лучше dbus, я не вижу.

Как ты прогресс копирования будешь отображать?

Если у нас есть «штука, которая всё знает про копирование», пусть сама и отображает в собственном окне. В диалоге, в трее, в нотификациях — как ей угодно.

Дело в том, что ей всё равно придётся иметь пользовательский интерфейс. Чтобы задавать пользователю вопросы а ля «файл существует, перезаписать?» и т.п.

Просто по логике, если бы ей интерфейса не требовалось, это была бы та же сама cp, а cp у нас уже есть.

geekless ★★
() автор топика
Ответ на: комментарий от geekless

От шины будет требоваться, чтобы клиент мог найти нужного агента по well-known name, узнать, какие интерфейсы тот умеет, и начать с ним обмен сообщениями.

То есть обратной связи нет?

Чем здесь FUSE или 9p лучше dbus, я не вижу.

В регистрации агентов? Здесь DBus лучше в бесконечное число раз. Но я не о регистрации, а о взаимодействии компонентов. Как, например, агент копирования взаимодействует с агентом архивной псевдоФС? Что такое вообще этот агент - отдельный процесс? *.so?

Дело в том, что ей всё равно придётся иметь пользовательский интерфейс.

Хотя я и незнаком с прикладной областью, по-моему, обязательность [GT]UI - это путь к провалу.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

То есть обратной связи нет?

Слово обмен подразумевает обратную связь. :}

Но я не о регистрации, а о взаимодействии компонентов. Как, например, агент копирования взаимодействует с агентом архивной псевдоФС? Что такое вообще этот агент - отдельный процесс? *.so?

Эту задачу можно на уровне gio решать через fuse-адаптер.

Хотя я и незнаком с прикладной областью, по-моему, обязательность [GT]UI - это путь к провалу.

Эм, у нас сама метазадача в том, чтобы «сделать UI». Конкретно в обсуждаемом случае вопрос стоит так: будет лежать обязанность рисовать UI с прогресбаром на клиенте, сформировавшем задание копирования, или же на агенте, отвечающем за копирование. Имхо, второй вариант более разумен.

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

geekless ★★
() автор топика
Ответ на: комментарий от Gorthauer

Возвожу в квадрат этого оратора!

bhfq ★★★★★
()
Ответ на: комментарий от anonymous

Всё это суета сует на фоне ranger.

Ух ты! Какая красивая штука. Большое спасибо за наводку.

another ★★★★★
()
Ответ на: комментарий от geekless

Как, например, агент копирования взаимодействует с агентом архивной псевдоФС? Что такое вообще этот агент - отдельный процесс? *.so?

Эту задачу можно на уровне gio решать через fuse-адаптер.

«Можно решить», или у тебя уже есть способ решения, или это просто маловажный вопрос?

tailgunner ★★★★★
()
Ответ на: комментарий от geekless

Если вкраце, я собираюсь построить документо-ориентированное DE с максимальным использованием IPC (т.е. d-bus). Без ада 100500 зависимостей, но с возможностью комбинировать компоненты GUI настолько просто, насколько просто комбинируются консольные команды.

Звучит очень круто и нужно. Желаю успехов

derlafff ★★★★★
()
Ответ на: комментарий от tailgunner

«Можно решить», или у тебя уже есть способ решения, или это просто маловажный вопрос?

Всё сразу.

1. На данном этапе это маловажный вопрос.
2. Если клиент и агент оба умеют gio, они могут его использовать как слой абстракции над ФС.
3. Если агент не умеет gio, виртуальные пути можно отобразить на реальные, там есть поддержка fuse.
4. Через файлы конфигурации клиент сможет узнать, какие схемы uri умеет агент.

geekless ★★
() автор топика
Ответ на: комментарий от another

Спасибо за русскую доку по нему. Сижу читаю, осваиваю.

Нету за что.
Рад что пригодилось кому-то.
ЗЫ: кстате говоря нужно будет обновить, у 1.6 (теперь же он стабильный) несколько нюансов конфигурации изменились; и я выяснил то, что в той доке было мне не ясно :)

Spirit_of_Stallman ★★★
()

Если расширится функционал это хорошо. Мне нравится pcmanfm, но пришлось от него отказаться из-за его крайне убогого функционала.

heinrich2
()
Ответ на: комментарий от Spirit_of_Stallman

Пиши, штука хорошая. Заранее спасибо. :)

another ★★★★★
()

Я бы принял участие, если б твоим идеалом являлся Nautilus 2.32 =]

neocrust ★★★★★
()
Ответ на: комментарий от geekless

3. Если агент не умеет gio, виртуальные пути можно отобразить на реальные, там есть поддержка fuse.

Тебя в cifs мордой потыкать?

anonymous
()

Это будет ФМ в стиле МС или пускалка документов как pcmanfm? На первых этапах будет вестись работа над ФМ или над внутренними компонентами?

Кстати, в SpaceFM есть, как мне кажется, рудиментарные реализации этих идей — Dialog и сокеты для управления. Советую еще взглянуть на plumber из plan9.

Будет ли поддержка какого-то скриптового языка?

Array
()
Ответ на: комментарий от anonymous

Тебя в cifs мордой потыкать?

Не надо его никуда тыкать. ТС — умный чел, просто слегка наивный ищо. Он уже на архивах поймет, что gio полная туфтень, а fuse отца русской демократии не спасет. И тут два варианта.

1) Он скрепя зубами напишет пятнадцатый слой абстракции. 2) Плюнет на хомячков и допилит под себя нужный функционал.

// Я долго упирался рогом в свой фм, пока не осознал, что единственная его киллерфича, это синхронизация имен видео и субтитров. Которая реализуется парой десятков строк как команда ranger.

anonymous
()
Ответ на: комментарий от anonymous

1) Он скрепя зубами напишет пятнадцатый слой абстракции. 2) Плюнет на хомячков и допилит под себя нужный функционал.

3) Нефиг работать серьёзно с архивами через ФМ. А чтобы просто просмотреть оглавление архива, gio хватит за глаза.

geekless ★★
() автор топика
Последнее исправление: geekless (всего исправлений: 1)

Вчера я таки дозрел до решения форкнуть pcmanfm и сделать файловый менеджер мечты.

Тред не читал, я пьяный. Вопрос только один - GTK или Qt?

sh4r4t4n
()
Ответ на: комментарий от geekless

В смысле, не буду отвлекать и желаю всяческих успехов.

sh4r4t4n
()
Ответ на: комментарий от geekless

3) Нефиг работать серьёзно с архивами через ФМ.

Почему?

another ★★★★★
()
Ответ на: комментарий от geekless

Если у нас есть «штука, которая всё знает про копирование», пусть сама и отображает в собственном окне. В диалоге, в трее, в нотификациях — как ей угодно.

А теперь удачи с реализацией look&feel платформы. И да, это не сильно отличается от раннего вейланда, который предлагал делать popup'ы путём запуска вложенного вейланда внутри программы.

quiet_readonly ★★★★
()
Ответ на: комментарий от geekless

[ненужно]

И сразу самое главное: как назовёшь?

Stuurman. Слово Navigator, увы, занято Нетшкафом и еще каким-то недоФМ под винду.

Унылое название, но лучше, чем pcmanfm. Лучше бы что-нибудь грациозно-быстрое, что всегда удивляет своей способностью шустро находить нужные места на местности.
[/ненужно]

А тем временем разработчики krusader нуждаются в помощи.

KennyMinigun ★★★★★
()
Ответ на: комментарий от Gorthauer

Доброчую этого господина. Очень хотелось бы иметь такой ФМ. А то даже права на чужой файл сменить - уже или в консоль ползти, или ФМ перезапускать под рутом. Как минимум - неудобно, как максимум - костыльно.

anonymous
()

Мне очень хотелось бы на Qt что-нибудь написать стоящее, изучаю сейчас. Так что если будет использовать - приглашайте, помогу.

Adonai ★★★
()
Ответ на: комментарий от Adonai

Может вам с ОПом скооперироваться в этом? Разнести логику и представление, после чего ты будешь пилить Qt-морду, а ОП свой любимый gtk. Тогда все будут довольны.

[мысли вслух]

Хотя с другой стороны можно бы и всю логику на Qt написать. Наверное, тебе стоит сделать свой форк. Можно на крайняк форкнуть форк, обсуждаемый ИТТ.

[/мысли вслух]

anonymous
()

Это будет, фактически, DE-фреймворк.

Тебя создатели leechcraft покусали?

malices_gossips ★★★
()
Ответ на: комментарий от buddhist

А ведь до этой фразы я был всецело на твоей стороне...

Вроде адекватный, а глупости говоришь.

Не согласен — аргументируй. Знаешь, как совместить грамотную обработку архивов с файловым менеджером — расскажи.

А детский сад по другому адресу.

geekless ★★
() автор топика
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от quiet_readonly

А теперь удачи с реализацией look&feel платформы.

Расскажешь, как look&feel связан с механизмом обмена высокоуровневыми командами?

geekless ★★
() автор топика
Ответ на: комментарий от quiet_readonly

Связан тесно, поскольку у вас агент сам рисует UI, по вашим же словам.

Всё еще не вижу, как это связано с look&feel. Вот если панель, браузер и аудиопроигрыватель тоже рисуют себя сами, это как-то влияет на их look&feel?

geekless ★★
() автор топика

я тебя правильно понял?

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

anonymous
()

к команде spacefm не возникает желание присоединиться?

irton ★★★★★
()

тред не читал, просто напишу каким я вижу фм, а уж что вы слепите - ваше дело. энивей, желаю удачи.

  • explorer - лучший файловый менеджер (можно дальше не читать, да)
  • Никаких не нужных панелек вверху/сбоку, менюшек, ну если только для красоты. Быстрый переход по директориям (хомяк, корень и т.д.) можно повесить на хоткеи.
  • Сплошной список файлов. Отображать файлы не таблицей, не иконками, а именно сплошным списком во множество рядов: так их помещается максимально возможное количество, и легко скроллить окно колесиком влево/вправо если оно нужно.
  • Никакого тайлинга, никаких «двух панелек». Простые окна. Окон я могу открыть столько, сколько нужно мне, а не «две панельки». Если мне нужен тайловый двухпанельник - с этим справится уже WM.
  • Клик по папке (директории) открывает эту папку в этом же окне, а если зажать Ctrl, то будет открыто новое окно ФМ с директорией.

мне нужен самый обычный обозреватель файлов, в котором я мгновенно смогу бродить по файлам, открывать директории в новых окнах, таскать файлы между окнами - это самое быстрое и эффективное. а вторая рука будет лежать на клавиатуре («лайк зе прогеймер»), используя стандартные хоткеи навроде Ctrl + Мышь (чтоб открыть папку в новом окне), Ctrl + c, Ctrl + v. =)

ну и скриншот на последок, вот так должен выглядить идеальный фм, мой бывший explorer (на панели использовались только кнопки «Назад» и «Вверх»).

Spoofing ★★★★★
()
Ответ на: комментарий от Spoofing

Сплошной список файлов. Отображать файлы не таблицей, не иконками, а именно сплошным списком во множество рядов: так их помещается максимально возможное количество, и легко скроллить окно колесиком влево/вправо если оно нужно

едва ли не самый худший вариант отображения файлов

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.