LINUX.ORG.RU

Очередной файл менеджер


0

3

Для тренировки (и по необходимости) написал тут проект очередного двухпанельного файл менеджера под x11

http://sites.google.com/site/walcommander/

хотелось бы выяснить интересна ли эта тема кому нибудь?

тут вообще linux-ом (или другим юниксом) кто нибудь занимается? (есть сомнения)

ps: тем кто хочет спросить про «чем отличается от mc» скажу прямо, я 16 лет назад написал свой текстовый файл менеджер (не распространял, но пользуюсь), а этим говном (mc) не пользовался (меня, необходимость нажатия эскейпа 2 раза просто бесит) а под x11 ждал пока напишут, но там тоже все плохо (у разработчиков руки очень низко растут)

про изобретение велосипеда можно тоже не сообщать (если сам ничего не изобрел)


ужыс. лепить чисто консольную концепцию интерфеса к графической аппликухе - моветон. к тому-же _встроенные_ вьюер, редактор и терминал для приложения, якобы должного следовать философии unix - тоже, мягко говоря, странновато

ananas ★★★★★
()

Файл Менеджер «Wal Commander»
недоделки:
работает только в режиме TrueColor (т.е. не работает в 16 и 256 цветной графике)
нормально работает только если локаль utf8
clipboard только локальный (вот это - хреново)
эмулятор терминала не дописан (мыщь не передает, и альтернативного экрана нет, поэтому если запускать mc то в нем не работает мышь и ctrl-o, да и хрен с ним, допишу еще :) )
viewer-а еще нет, тоже хреново
в редакторе нет undo
виртуальных файловых систем тоже нет (т.е. нет ftp, sftp, samba, ...), сделаю
ну и много каких функций нет (прототип ведь)
времени не хватает:(

этим говном (mc) не пользовался (меня, необходимость нажатия эскейпа 2 раза просто бесит) а под x11 ждал пока напишут, но там тоже все плохо (у разработчиков руки очень низко растут)

Чувак, а ты суров!

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

Не, true-unix-way - в командной строке файлы гонять :)

Это не только true-unix-way, но ещё и гораздо удобнее.

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

нда, открытых сырцов нет.

сырцы положу, времени readme написать не хватает :)

я ж на форуме спросить хотел, а не распространять еще :)

wal (15.05.2011 21:12:29)

someloruser
()

Очередной файл менеджер

файл менеджер


Нам такой хоккей не нужен.
//не ходил.

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

grep HISTIGNORE ~/.bashrc
export HISTIGNORE=«&:ls:[bf]g:exit: cd \»\`*: PROMPT_COMMAND=\'*:cd \'/*" # не писать в историю ls,exit...

backbone ★★★★★
()

я весьма обескуражен. MC не по нраву, но пишем свое MC?

Nicholass ★★★
()

Я пару лет как собираю мнения и отзывы по поводу fvwm, так вот, интересное кино получается - около трети людей, которые мне знакомы и пытались его использовать, отмечали в качестве главной причины отказа от использования fvwm не сложность в освоении, а быковатых разработчиков. Это, на минуточку, для надёжного, стабильного, проверенного продукта, который совершенствуется чуть ли не дольше, чем я на свете живу.

Так что ваш файломенеджер, будь он хоть из чистого золота и будь у него в features list 'делает минет пользователю' на хер никому не нужен, потому что разработчик начинает рассказ о продукте с галимой бычки, а что будет в ответ на багрепорты - нетрудно догадаться.

Поэтому mc и ranger будут жить, а вы исходники своего детища распечатайте и кладите на ночь себе под голову, другого применения им не будет.

Чус.

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

> Я также от DeadBeef ушёл.

А можно поподробнее, worker же вполне адекватен, по крайней мере на лоре?

anonymous
()

Попробовал. Очень удивила скорость работы. Это реально быстро.

Понадеялся увидеть кнопку a-la «заменить более старые» при копировании файлов в директорию, уже содержащую файлы с такими именами.
Не увидел. Очень жаль. Создётся такое впечатление, будто эта кнопка огорожена патентами, ни в одном аналоге тоталкоммандера её нет.

Потом возник странный вопрос: а он чтоли не умеет запускать файлы?

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

З.Ы. Шрифты в кнопках нечитаемы.

anonymous
()

Есть mc и krusader. Кому что больше нравится.
До их уровня все равно не довелосипедишь.

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

Потом возник странный вопрос: а он чтоли не умеет запускать файлы?

Похоже умеет запускать лишь те у которых установлен Execute Bit.

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

>> Я также от DeadBeef ушёл.

А можно поподробнее, worker же вполне адекватен, по крайней мере на лоре?


Поддерживаю этого анонимуса.

З.Ы. не worker, а waker

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

> З.Ы. не worker, а waker

Что-то я того, маху дал, да.

Кстати, полазил сейчас по багтрекеру: патчи принимает, баги фиксит, фичреквесты в рамках разумного реализовывает, побольше бы таких разработчиков.

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

На вкус и цвет... Мне хватило общения в багтрекере

Divius ★★
()

А мне нравится, чо... только вот пользоваться непонятно как, у меня Х-ов то нет там где я запускаю mc...

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

и да, основная проблема это реализовать хотя бы часть функционала mc, это многие человеко часы, может годы...

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

>А мне нравится, чо... только вот пользоваться непонятно как, у меня Х-ов то нет там где я запускаю mc...

без X-ов, конечно сложно, но можно запускать удаленно, оттуда где X-есть. Я с винды часто запускаю с установленным Xming, а бинарники статически слинкованы, им даже x-овые shered библиотеки не нужны.

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

> Будет круто если Вы приделаете к вашему файлому менеджеру плагинную систему подобную Far Manager. Это просто разорвёт в клочья Миднайт Коммандер. Миднайт Коммандер плох тем что он монолитный.

Не порвёт. уже есть сподвижки для модульности: бранч 'master' имеет возможность собираться с libmc.so - начало всех начал для плагинов. Сейчас пересматривается и переделывается VFS, по результатам будет возможность собирать монолитом или с отдельными VFS-плагинами. Уже существует довольно мощная система событий, которая позволит только через них «общаться» с плагинами. Сейчас необходимо проработать API для общения с плагинами и переработать код (например, расширить систему меню, чтобы плагины могли добавлять сами новые пункты при инициализации и т.д. и т.п.). В общем, впереди ещё гигантский кусок работы (особенно по написанию документации - код фигня, описалово главнее).

Вспомнил эпический баг Миднайта :

переключаешься по Ctrl-О в эмулятор терминала


пишешь там часть команды


потом переключаешься обратно по Ctrl-О в панели


тут нажимаешь переключение на другую панель по Таб


и тут Миднайт добавляет к ранее написанной команде «cd что-то-там» и выполняет её



Да, есть такая беда. Появилась после вылечивания от излишне озабоченного шелла. mc запускает процесс с шеллом, перехватывает его stdin/stderr/stdout на себя и пытается сменить текущий каталог в этом дочернем шелле при смене его в панелях. Если ничего нет в шелловской комстроке, то с ведущим пробелом добавляется cd ...
а если есть что-либо, то к этому что-либо добавляется всё та же строка с cd и пытается исполниться. Эта беда тоже излечима: надо дублировать в mc частично введённую космтроку в субшелле. Тогда всегда можно будет перед сменой каталога послать в сабшелл столько «забоев» 0x08, сколько там сейчас введено символов(как бы очистить комстроку). Потом ввести cd ... и после выполнения передать из буфера шеллу нашу комстроку. Побочный эффект от этого: можно будет сделать единую космроку в панелях и сабшелле. Рук не хватает для такого, хотя если разобраться всё там просто на самом деле.

Slavaz ★★★★★
()

wal, извиняюсь за глупые вопросы, но судя по всему Вы некисло расколупали X/Xorg-API. В связи с этим вопросы:
1) терминал, в котором запустились. можно, наверное, узнать по PPID... впрочем. это будет скорее шелл. а не терминал... Короче, конкретизирую: можно ли, подключив X-библиотеку, на основании PID'а получить хэндл окна?
2) Можно ли получить размер используемого шрифта (ширина/высота) в окне по хэндлу?
3) можно ли вывести произвольное изображение в окно по хендлу?

Уточню для чего все эти вопросы: возможность просмотра изображений в эмуляторе терминала по нажатию на F3 в mc. Теоретически это возможно?

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

> почему по умолчанию не сделали, это и напрягает :) я то и в коде могу быстро поправить, даже если бы совсем не было

Ты такой умный толстячок-неосилятор =) Другим это нужно, например, для этого и сделали опцию, чтобы те, кому не нужно могли себе отключить.

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

> wal, извиняюсь за глупые вопросы, но судя по всему Вы некисло расколупали X/Xorg-API. В связи с этим вопросы:

xlib rip, надо пользоваться xcb.

Теоретически это возможно?

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

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

>1) терминал, в котором запустились. можно, наверное, узнать по PPID... впрочем. это будет скорее шелл. а не терминал... Короче, конкретизирую: можно ли, подключив X-библиотеку, на основании PID'а получить хэндл окна?

Х и ос связаны слабо, поэтому по ppid найти окно невозможно, можно конечно при помощи xlib перебрать все окна на экране и по свойству _NET_WM_PID найти все окна процесса, но это самое свойство выставляет клиент по своему желанию, т.е. его может и не быть (хотя обычно есть). А вот в каком окне приложения (их может выть несколько) эмулятор выводит то что надо (т.е. сам экран), определить невозможно.

2) Можно ли получить размер используемого шрифта (ширина/высота) в окне по хэндлу?

тоже невозможно, фонт к окну не привязан (ведь можно в одном окне разными фонтами рисовать)

3) можно ли вывести произвольное изображение в окно по хендлу?

Вот это можно, но тут кто последний вывел изображение тот и победил :)

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

>> Ты такой умный толстячок-неосилятор =) Другим это нужно, например, для этого и сделали опцию, чтобы те, кому не нужно могли себе отключить.

кому это нужно и зачем (хоть бы пример привел). Это даже не с mc связано, а с используемой библиотекой (ncurses).

Я в своей примочке установил по умолчание время ожидания в одну десятую секунды, и ни у кого из знакомых (кто пользовался) не возникло вопросов, хотя я в настройках сделал возможность увеличения этого таймаута.

xlib rip, надо пользоваться xcb.

ну это ты круто решил, а нахрена xcb нужен, если протокол общения c сервером не изменился и логика работы и проблемы остаются теми же что и в xlib.

на самом деле давно уже пора (лет как 20 уже) отказаться от X-ов, и сделать нормальный api. X-ы придумали инсайдеры от микрософта :)

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

на самом деле давно уже пора (лет как 20 уже) отказаться от X-ов, и сделать нормальный api. X-ы придумали инсайдеры от микрософта :)

so faaat...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от wal

> кому это нужно и зачем (хоть бы пример привел). Это даже не с mc связано, а с используемой библиотекой (ncurses).

Тому, кто, например, по каким-то причинам не может отправить нажатия F-клавиш. Терминалы и их эмуляторы бывают очень разные.

ну это ты круто решил, а нахрена xcb нужен, если протокол общения c сервером не изменился и логика работы и проблемы остаются теми же что и в xlib.

Чего? Ты бы хоть разобрался в вопросе и посмотрел какие проблемы xcb успешно решает, прежде чем делать такие заявления.

на самом деле давно уже пора (лет как 20 уже) отказаться от X-ов, и сделать нормальный api. X-ы придумали инсайдеры от микрософта :)

Очень толсто!

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

Анон, ну ты чего его так. Он ещё воодушевится тем, что у нас якобы аргументы не технического плана...

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

> Тому, кто, например, по каким-то причинам не может отправить нажатия F-клавиш. Терминалы и их эмуляторы бывают очень разные.

это не причина, а следствие ситуации с esc :) ведь для F клавиш вместо набора esc F можно было использовать другой набор (я так и сделал).

Чего? Ты бы хоть разобрался в вопросе и посмотрел какие проблемы xcb успешно решает, прежде чем делать такие заявления.

ты что-то написал с использованием xcd? или просто фанат?

> на самом деле давно уже пора (лет как 20 уже) отказаться от X-ов, и сделать нормальный api. X-ы придумали инсайдеры от микрософта :)

Очень толсто!

ну здесь с фанатами спорить вообще бесполезно :)

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

не понимаю сколько можно мусолить двойной esc, патч в мейнстриме года с 2005-го сейчас уже 2011-й, уже и галка есть, а всё еще находится тот кто ниасилил 2-й еск.

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

> ты что-то написал с использованием xcd? или просто фанат?

Ты про awesome слышал?

ну здесь с фанатами спорить вообще бесполезно :)

Причем тут фанатизм? Ты ещё про Wayland разговор начни...

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

> не понимаю сколько можно мусолить двойной esc

Это самый сильный аргумент почему mc --- говно!

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

>> ты что-то написал с использованием xcd? или просто фанат?

Ты про awesome слышал?

посмотрел в интернете, не знаю чего сказать на тему awesome, использовать xcb вместо xlib тоже для себя смысла не вижу, в данной программе основные мои критерии это скорость работы и отсутствие зависимостей от лишних библиотек (чтоб меньше возиться при установке), со скоростью работы все в порядке, а xlib бы тоже выбросил используя прямое соединение с сервером, но здесь овчинка выделки не стоит, а ты мне xcb предлагаешь :)

Причем тут фанатизм? Ты ещё про Wayland разговор начни...

здесь меня просто удручает x api, если системное api у юникса придумано очень хорошо, ничего лишнего (винда рядом не валялась), то с x-ми все наоборот. В данном случае сравнение даже не с Wayland, а с виндой в пользу последней получается, и с фанатами здесь лучше молчать :)

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

wal: может просто прислать пару патчей и сделать mc чище и светлее?

angel_il ★★★★
()

То, что действительно нужно от ФМ:

1. Скорость показа списка файлов и каталогов. (Как? Надо думать. Вплоть до кэширования каталогов.)

2. Возможность отмены действия по Ctrl+z

3. Копирование списка объектов - путей, или имен.

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

2 И это тоже. Но отмена переименования и изменения прав тоже должна быть. И даже отмена копирования, перемещения и замены. Не обязательно при этом востанавливать файлы. Все операции могут быть виртуальными. Скажем держать 3-5 операций в буфере и применять при вытеснении из него или при выходе. Соответсвенно нужен демон/сервер и клиент.

1 Ну и что?

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

1. Да потому, что потом сам же и будешь орать: «А почему {APP_NAME} так много жрет???»

2. Не все файловые операции можно отменить, так что не нужно.

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

1 Если жрет оправдано - пусть жрет. И вообще, радоваться тому, что в ваших 4Гб оперативы занято 250 метров - тупость. Это значит, что у вас лишние файловые операции. Но в оперативу мы смотрим постоянно, а на то как поедается время подсистем ввода/вывода смотрим когда уже совсем ппц.

2 Не нужно их применять. Я же написал выше - виртуальная ФС в ФМ с буфером операций и отложенное выполнение. Это же так просто.

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

1. Угу. Тут рядышком где-то тред про Амарок. Он тоже, скорее всего, оправданно жрет, но это не уменьшает наездов в его сторону.

2. Т.е. пока буфер операций не заполнится, они не будут выполнены? Чувак, не кури больше эту траву.

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

2 Правильно. Трава нормальная. Есть претензии к GParted? Может к отложенному сбросу буферов? Нет. В чем проблема кэшировать файловые операции?

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

Другое только потому, что никто так до сих пор не делал. Представь как это может сократить количество обращений на запись к дисковой подсистеме. Почему не попробовать?

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