vak: (Default)
[personal profile] vak
Давным-давно, когда виндовс еще ходил в коротких штанишках, основным интерфейсом для юзера были "синие окошки". И не только для M$-DOS. В 89-м году выпало мне сваять для Юникса аналогичную прибамбасину, Demos Commander. Штука оказалась полезная, пользуюсь до сих пор. Но жизнь не стоит на месте. Развивать имеющуюся версию нет смысла, проще переписать заново. А если делать с нуля... Есть другое решение.

Берем bash - одну из самых распространённых командных оболочек для Unix. В качестве одной из компонентов он содержит библиотеку readline, выполняющую редактирование в строке ввода. Вводим в readline новую фичу: переход при нажатии ^O в режим отображения панелей со списком файлов.

В режиме панелей добавляется следующая функциональность:
  • Стрелки, Home, End, Page Up, Page Down - передвижение по списку файлов
  • Tab - смена панели
  • Insert, ^T - пометка текущего файла
  • Enter, ^M - выполнение команды и отмена режима панели, повторный Enter - возврат в режим панели
  • ^J - вставка текущего имени файла в командную строку
  • F1...F10 - выполнение одной из функций, определенных в стартовом скрипте .bashrc
  • ^R - смена текущего каталога, выбор из списка: $HOME или / или каталог противоположной панели или /mnt/* или /Volume/*
  • ^X^W - распахивание текущей панели на всю ширину экрана
  • ^X^T - отметка файлов по шаблону, например *.txt
  • ^X^H - отображение скрытых файлов
Эта идея не новая. В 1991-м году [livejournal.com profile] sir66 скрестил ужа с ежом - deco и csh - в виде сопрограмм. Монстр, правда, получился нежизнеспособный, корявый и громоздкий. Но сейчас, с наличием readline, есть шанс на успех.

Продолжение: подключайтесь к проекту

Динамический размер

Date: 2007-10-05 21:46 (UTC)
From: [identity profile] ss-ee-rr-gg.livejournal.com
Сейчас деко имеет статический размер
Я подправил пару функций и научил его подстраиваться под размер терминала
Вот старый вариант :
http://iakovlev.org/images/deco_01.png
Новый вариант :
http://iakovlev.org/images/deco_02.png

CVS

Date: 2007-10-14 12:02 (UTC)
From: [identity profile] ss-ee-rr-gg.livejournal.com
Вроде как закомитил 2 файла :
cvs -z3 -d:pserver:anonymous@deco.cvs.sourceforge.net:/cvsroot/deco co -P deco
cvs checkout: Updating deco
M deco/draw.c
M deco/main.c
А оно резульно комитится ?