Pull to refresh

Ridual — новый файловый менеджер для Ubuntu

Open source *


Когда я только переходил на Linux, я пытался найти для себя удобный двухпанельный файловый менеджер. Оказалось, что для Linux полнофункциональных двухпанельников довольно мало, и все они по каким-то причинам меня не устроили. В итоге я расстался с этой идеей и стал пользоваться Nautilus и командной строкой.

Однако недавно Canonical объявила конкурс по разработке приложений для Ubuntu, и я решил попробовать сделать лучший файловый менеджер для Ubuntu.

Сейчас в Ridual еще не реализованы многие функции (и самая важная из них — управление файлами). Поэтому пользоваться им в полной мере нельзя. Однако я надеюсь, что читатели подскажут мне несколько ценных идей и скажут, в правильном ли направлении я движусь. Впрочем, этого поста бы не появилось, если бы не тот факт, что началось голосование, которое определит результаты конкурса.

Ridual написан на C++ с использованием Qt. Он распространяется под самой доброй лицензией MIT, исходные коды доступны на Github. Пользователи Ubuntu 12.04 могут установить программу из репозитория:

sudo add-apt-repository ppa:strahovp/ridual
sudo apt-get update
sudo apt-get install ridual 


А теперь я расскажу о возможностях и преимуществах Ridual, которые помогут ему стать лучшим из файловых менеджеров для Ubuntu.

Описание функций программы

Ridual использует системную цветовую тему. Никаких сумасшедших цветов. Мне кажется, любое приложение должно органично вписываться в окружение. Сравните скриншот Ridual в начале статьи со скриншотом Gnome Commander. Также корректно отображаются иконки файлов из системной темы. Почему-то в имеющихся двухпанельниках с этим проблемы.

Ridual позволяет выполнять любые действия с клавиатуры. Например, с помощью хоткея можно перевести фокус в строку адреса, чтобы скопировать или отредактировать его. В будущем можно будет выбирать варианты действий при ошибках копирования. Более того, вы можете изменить любое сочетание клавиш на то, что вам удобнее.

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

Программа умеет отображать список закладок Gnome и стандартных пользовательских папок («Документы», «Музыка» и т.п.). Поддерживается работа с виртуальными файловыми системами GIO/GVFS. Сюда входят различные сетевые ресурсы, подмонтированные по FTP, SFTP, Samba, Bluetooth и т.п. Также поддерживается работа с внешними носителями: можно посмотреть список носителей, подмонтировать и просмотреть содержимое носителя. Здесь Ridual использует то же API и предоставляет те же функции, что и Nautilus. Поддерживаются адреса вида «host.com/address», причем вы можете не только выбрать подмонтировать систему из списка, но и подмонтировать любую другую, указав соответствующий адрес. Мне кажется, ни один другой двухпанельный ФМ такого не умеет. Единственное ограничение: пока в Ridual не реализован диалог запроса пароля для GIO, поэтому можно использовать только ресурсы, не требующие пароля (например, публичные FTP), ресурсы, пароль для которых сохранен в системе или ресурсы, которые уже примонтированы через Nautilus.

В верхней части окна Ridual находится виджет, отображающий текущий адрес с помощью ряда кнопок. Нажатием на одну из них можно перейти в вышестоящую папку, а нажатие правой кнопкой вызывает меню, с помощью которого можно перейти в папку, соседнюю с выбранной.

А при копировании в нижней части окна появляется таблица текущих операций. Таким образом, всё важное всегда находится перед глазами, а не убегает вместе с диалоговым окном на задний план. Все основные элементы будут располагаться в одном окне, упрощая управление с клавиатуры.

Ridual поддерживает ассоциации файлов с программами. Здесь он работает так же, как Nautilus. По нажатию Enter открывается программа по умолчанию, а в контекстном меню можно выбрать
другие программы, поддерживающие этот тип файлов. Эта функция корректно работает и с сетевыми ресурсами, в то время как у Nautilus с этим наблюдаются проблемы (например, при открытии файлов в Audacious).

Файловые менеджеры (и опять я подразумеваю Nautilus) грешат тем, что медленно копируют папки с большим числом файлов. Это связано с тем, что они пытаются посчитать общее количество и размер файлов, а это длительная операция. В Ridual есть возможность включить или отключить такой предварительный просмотр. При его отключении выполнение операции ускоряется, но становится невозможно узнать, сколько осталось до конца операции. По умолчанию стоит автоматический режим, в котором предварительный просмотр производится, но отключается автоматически, если найдено более 1000 файлов.

Планы

Я планирую реализовать основные операции с файлами: копирование, перемещение, удаление, создание мягких и жестких ссылок. Будет и стандартная функциональность обработки ошибок копирования (кнопки «пропустить», «пропустить все», «повтор» и т.д.).

Еще я планирую реализовать функцию, идею для которой я подсмотрел в файловом менеджере Windows 7. При возникновении ошибки копирования сообщение с вариантами действий показывается пользователю, а программа в фоне продолжает выполнять операцию для тех файлов, для которых это возможно. У этой функции много плюсов, но спроектировать ее оказалось неожиданно сложно, так как возникает множество вопросов по алгоритму программы. Впрочем, я работаю над этим.

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

Заключение

Надеюсь, из моего проекта получится что-то стоящее, а люди будут им пользоваться. Если кто-то захочет помочь в разработке программы, я буду очень рад. Кстати, нужна помощь в написании автоматических тестов для программы, у меня в этом деле совсем нет опыта.

Если вам понравилось мое начинание, оцените Ridual на этой странице. Проголосовать может любой, регистрация не нужна.

Спасибо за внимание.
Tags:
Hubs:
Total votes 113: ↑91 and ↓22 +69
Views 23K
Comments Comments 111