Ох и много произошло с момента 2012 года. Это и рождение сына и тяжёлая болезнь, потом развод, новая любовь, депрессия в этом году. Но всё течёт всё меняется и сейчас я рад сообщить, что я нахожусь в наиболее благоприятном расположении, чтобы активно заниматься проектом, и вот они - первые плоды.
Сначала я долго думал, что мне надо написать реализацию R-деревьев для моих идей и были идеи необыкновенного 3D-движка хранящего всю сцену в БД. Но потом я решил попробовать просто писать то, что получится без этого и не зря. Практика мгновенно показала, что моя идея 3D-движка несостоятельна - транзакции с версионированной БД работают безумно медленно и FPS на таком движке был бы удручающе мал.
Итак, я начал делать файловый менеджер основанный на идеях Zoom-интерфейса. Сначала я хотел реализовать его на таких принципах:
И вот у меня получились в каждой директории много прямоугольников, они расположены по алфавиту и примыкают друг к другу как символы в строке. Чтобы прямоугольник был как можно более квадратным, строка бьётся сперва пополам, потом каждая из получившихся строк ещё пополам и так пока директория не приобретёт вполне "квадратные" формы.
У этого способа был один большой недостаток, который мы покажем в иллюстрации:
Слева от большой фиолетовой директории есть одна маленькая голубая. Видите её? А она есть, её размер - 1 пиксел. А что делать если размер директории на экране менее пиксела? Приближаться к таким директориям очень сложно и я начал искать другие пути.
Вторая идея: просто разместить в директорию все элементы в квадрат, каждый элемент - одинакового размера. Примерно так:
Проблема такого интерфейса в том, что при приближении (таком чтобы можно было разглядеть названия файлов) оказывается много элементов слева, много элементов сверху, со всех сторон. И хотя элементы расположены по алфавиту, ты не знаешь нужный тебе элемент уже в той же строке правее или ещё пока ниже. Помимо того присутствует "пустое" приближение, когда на экране не видно разборчиво ни одного элемента. И я отмёл этот вариант.
Дальше я начал искать такое расположение файлов, чтобы и одновременно каждый вложенный элемент был хотя бы в 2 раза меньше родителя, а с другой стороны, чтобы рядом расположенные элементы также, либо не более чем в 2 раза различались масштабом, либо были равного размера. И такое расположение было найдено, вот мой первый макет:
В каждой директории выделяется первый квадрат, который на треть меньше родительской директории. При расположении этого квадрата точно по центру, у него по сторонам остаётся также по трети длины стороны родителя.
Далее вокруг этого центрального квадрата располагается 12 квадратов в 2 раза меньшего размера, вокруг них квадраты ещё в 2 раза меньшего размера. И так можно продолжать бесконечно умещая в директории сколько угодно файлов.
Что касается нумерации в программе она была изменена, на такую чтобы было проще находить файлы по алфавиту.
Что же? далее я вам предлагаю посмотреть видео с русской дорожкой и субтитрами на английском и русском языках, чтобы иметь представление о том как же выглядит интерфейс нового файлового менеджера. А это не только файловый менеджер, но и просмотрщик изображений и текстов.
К сожалению видео мерцает, это баг захватчика видео, само приложение так не мерцает. Кроме того за кадром осталось назначение клавишь g и G в просмотрщике текстов, а также то как просмотрщик текстов мгновенно отображает все изменения просматриваемого файла.
Далее перечислим список клавиш:
Обсуждение этой версии unDE и скриншот: на LOR.
Обсуждение на английском языке: на DLang форуме.
Ссылки на скачивание всего этого чуда в версиях для Fedora 24, Ubuntu 16.04 (64, 32 бит), Windows: Скачать, Исходники.
На сим, до новых встреч и с наступающим новым 2017-м новым годом! Годных вам интерфейсов! Продолжения ждите через месяц, а может быть 3, когда в unDE появится командная строка. И уж поверьте опытному Линуксоиду есть что сказать в области интерфейса командной строки.