К сожалению последнее время не могу уделять много времени неоплачиваемому хобби. Лето, домашние дела, солнечная электростанция, роскомнадзор, и все такое.
Последнюю неделю посвятил дописыванию ФМа, после которого сделаю пару косметических допиливаний и раздам вам на поругание в виде установочного скрипта, пока только для DEB-based. Собственно оно уже устанавливается и работает.
Итак, ФМ. Что мы уже умеем.
Ходить по директориям. Наверное после создания ГТК-шного интерфейса с его деревянной иерархией, это второе что вызвало у меня сложность, а открывать чужие коды не хотелось. Номинально, когда мы заходим в симлинкованную директорию, а потом выходим из нее вверх двумя точками — мы должны попадать в родительскую директорию оригинала. Красиво — попадать в ту директорию откуда мы зашли.
Тривиальные операции с файлами. Создать, копировать, вырезать, вставить, переименовать, свойства и тд. Не знаю как ФМ выводят индикатор прогресса в докбар или панель задач, но я решил просто добавлять этот индикатор к иконке окна. Выглядит красиво.
Открытие. Список программ, которыми можно открыть файл, отображаются прямо в контекстном меню простыней, безо всяких вложенностей. Само собой файл можно открыть с помощью другой программы, можно запомнить этот выбор, или не запоминать. При открытии неизвестного файла, ФМ спрашивает чем это открывать.
Устройства. Монтирование, размонтирование, краткая статистика.
Превьюхи. Их можно делать для картинок и для видео + в настройках опция ограничителя пока задана жестко, но со временем изменю на плавающее значение. Кстати для видеопревьюхи берутся кадры из 10%, 50% и 90% таймлайнов, из них выбирается тот на котором самая большая разница между светлыми и темными пикселями. Найду способ отображать GIF'ы — сделаю вообще динамичные.
Пометка цветами. На скриншоте можно заметить разноцветные кружочки над каталогами и картинкой. Лично мне такая фишка оказалась очень удобной, потому что цветовая визуализация позволяет быстрее найти объект среди бардака.
Сортировки, просмотр свойств, тоже работают.
Интеграция. Настройки ФМа вынес в Панель Управления. Разумеется они доступны из самого ФМа по кнопке. Добавил в ФМ поддержку фишки DE, названную «Уровень быстродействия». Ее суть состоит в том, что в зависимости от выбранной в системных настройках степени (выкл-мин-макс), в системе общеглобально изменяется использование спецэффектов, удобств, прозрачностей, частоты опросов и прочих свистоперделок. Например при максимальной степени быстродействия, ФМ не создает превью, не анимирует операции, не следит за инотифаем, операции делает в один поток, и вообще старается лишний раз не дергать файловую систему.
На данный момент код занимает 1024 строчки основной программы, 768 строчки либы поддержки (тривиальные функции, не имеющие отношения к алгоритмам ФМ), 16 строчек CSS-кода и 128 строчек занимает плагин к панели управления.
Готов ловить помидоры.