OpenWay|POSIX-saga|FreeBSD etc.|All Linux|Apps|POSIX-live|SiteMap
Пользовательские приложения
(C) Указанные авторы, 2004, отныне и вовек
Links|Shell|X etc.|Text|Web|Test|Hard

Неволя и величие konqueror'а

Алексей Федорчук

Написано: 2004, май
Модернизировано: 2004, июль

Первая версия этой статьи была опубликована в журнале Upgrade: 2004, #28(170), с. 34-37.

Каждому пользователю любой ОС, будь то Windows или Linux, DOS или Solaris, не избежать операций с файлами - их просмотра, копирования, перемещения, а иногда - страшно сказать - даже удаления. Хорошо юниксоидам-позиксивистам, привыкшим к консольному режиму: для всех этих действий им достаточно командной оболочки, сиречь шелла (shell) и десятка команд. Данные с необходимыми опциями и в должных сочетаниях, команды эти, подобно конторе Кука, предоставят полную информацию о файловой системе, дадут возможность отобрать из изобилия созданных документов те, что потребны в данный момент, и произвести над ними те действия, которые позволят прийти к поставленной цели кратчайшим путем (разве что верблюда не пришлют для доставки к оной).

А как быть пользователям, с младых ногтей подвергшимся тлетворному влиянию графических интерфейсов, которым командная строка кажется столь же таинственной, как Книга Мертвых древних египтян? Им на помощь придут программы, именуемые файловыми менеджерами.

Содержание

О древовидниках и двухпанельниках

Не скажу за Windows - каюсь, по незнанию, - но в POSIX-системах (и в этом пользователь должен четко отдавать себе отчет) файловые менеджеры не делают ничего такого, что не могли бы сделать встроенные команды оболочки и штатные утилиты операционной системы (т.н. классические Unix-утилиты). Более того, ни на что большее они не способны в принципе: ведь при любой файловой операции они используют те же базовые функции ядра ОС (то есть системные вызовы), специально для этой цели предназначенные. Которые уже испокон веков и по полной программе задействованы в файловых утилитах POSIX-систем. А подчас файловые менеджеры просто являют собой надстройки на шелл-командами - т.н. front-end'ы. Однако красивые интерфейсы и удобные менюшки могут создать впечатления если не богатства возможностей, то хотя бы простоты их использования.

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

Древовидные файловые менеджеры ведут свое начало от старинной, ныне почти забытой DOS-программы XTree Gold. И исходят они из метафоры дерева файловой системы (каковым в POSIX-совместимых операционках она на самом деле и является). Типичным их современным представителем является Windows Explorer (хотя как раз в этой операционке понятия древовидной организации файловой системы и нет). Преобладающий (и адекватный представлению) способ манипуляции файлами здесь - перетаскивание их мышью из одного каталога в другой, действия с помощью клавишных комбинаций занимают подчиненное положение. Может, потому и не получили они популярности во времена "черного DOS'а" и столь же черной текстовой консоли Unix, к коим мышь приходилось прикручивать пассатижами...

Двухпанельные файловые менеджеры апеллируют к другой метафоре - списку файлов в каталоге. А поскольку плоский список (в сущности, ничем не отличающийся от вывода команды ls в шелле) дает немного простора для файлотворчества, появилась резонная мысль вывести одновременно два независимых списка файлов, между которыми и осуществляется взаимодействие. Причем здесь определяющей оказывается обычно роль клавишных комбинаций (что, конечно, не значит, что в двухпанельниках запрещен Drag&Drop, а в древовидниках нельзя использовать "горячие клавиши"). Впервые двухпанельная метафора была реализована в знаменитом Norton Commander, почему их часто называют еще менеджерами командирского стиля.

В отличие от древовидников, давших достаточно мало (по числу представителей, но не пользователей - вспомним Windows Explorer) отростков, двухпанельная идея породила множество продолжателей. Тут можно перечислить и отечественный Volkov Commander (без него по сию пору не обходится ни один диск-Reanimator), и столь же родной FAR, и - двухпанельник в квадрате - "четырехглазый пай-мальчик" (Pie Commander), и множество других. Апофеозом же двухпанельников стал Windows Commander, не так давно трасформировавшийся в "тоталитарного командира" (Total Commander).

В мире POSIX-систем древовидная идея вообще произрастала довольно хило (хотя несколько файловых менеджеров, сделанных по образу и подобию XTree Gold, и существуют, но я почти не знаю тех, кто ими реально бы пользовался). А вот двухпанельники здесь упали на благодатную почву. И хотя количественно их оказалось немного, один из них - Midnight Commander - занял в Linux господствующее положение среди всех файловых менеджеров (не считая командной строки, конечно). В мире же BSD-систем получил некоторое распространение отечественный продукт - deco (он же Demos Commander от дедушки русского Интернета).

Интересно, что доминирование двухпанельников над древовидниками особенно явно выражено среди отечественных пользователей: популярность на Руси и старого NC, и современных FAR и Total Commander вкупе с MC (и с поправкой на ОС) далеко превосходит общемировой уровень. Достаточно заметить, что все отечественные дистрибутивы Linux включают MC в "умолчальный" набор устанавливаемых приложений. Чего в дистрибутивах заграничных эта программа удостаивается не так уж и часто.

Объяснение феномена двухпанельной любви можно найти в изысканиях историков из Екатеринбурга, опубликованных на сайте Neosoft. Ими было показано, что знаменитый герой Первой Русской революции, лейтенант Петр Петрович Шмидт, не погиб в застенках от лап царских опричников. А таинственным образом спасся и эмигрировал в США, где его с удовольствием приняли на службу в Военном-Морские силы. Там под именем Питера (sic!) Нортона он дослужился до капитана (по уточненным мною сведениям - до коммандера, этот чин и дал имя предтече обсуждаемого класса программ), после чего вышел в отставку и занялся софтверным бизнесом. Оставшись, не смотря на годы жизни на чужбине, сугубо русским человеком, он как никто другой смог угадать чаяния пользователей-соотечественников. На что они и ответили всенародной любовью к его продуктам, в том числе и к Norton Commander.

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

Однако я отвлекся - вернемся к нашим файловым менеджерам. Исторически сложилось так, что я никогда не мог причислить себя ни к двухпанельникам, ни к древовидникам. XTree Gold прошел как-то мимо меня, развесистые баобабы Windows Explorer наводили ужас. Во времена "черного DOS'а" я, конечно, прибегал к NC. Однако и тогда набрать к командной строке что-нибудь типа copy from to, мне казалось проще, чем рыскать стрелками по панелям и запоминать горячие клавиши. А уж в Linux или BSD, с их непревзойденными возможностями автоматизации действий в шелле, необходимости в MC или deco вообще почти не возникало.

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

Konqueror в его величии

Конечно, о существовании konqueror я знал всегда. Ведь эта программа - одно из штатных средств интегрированной графической среды KDE (начиная с версии 2.0), функционирующей поверх любого дистрибутива Linux (собственно, во многих она представляет собой десктоп по умолчанию), FreeBSD или любой другой BSD-системы. И устанавливается эта программа вместе со всей средой, являясь ее непременным и неотъемлемым компонентом.

При первом запуске konqueror (делается это щелчком на пиктограмме Home на рабочем столе или панели KDE) не производит впечатления выдающегося произведения программистской мысли: обычный Explorer-подобный файловый менеджер с преобладанием древовидных черт в его облике (рис. 1).


Рис. 1. Вид konqueror по умолчанию. Грубо слепленный клон Windows Explorer, не так ли?

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

Повторяю, на первый взгляд - ничего. И если случайно (или - прочитав эту статью) не залезть в его настройки, но так до конца жизни можно остаться в неведении относительно бездонных их возможностей. Правда, надо отметить, что настройки эти не вполне логично разбросаны по трем пунктам главного меню - Вид, собственно Настройка и Окно (здесь и далее речь идет о POSIX-системе с правильно установленной локалью - при этом KDE вообще и konqueror в частности говорит с пользователем на его родном языке). Может быть, потому они и не получили пока всенародной известности.

Начать с того, что Explorer-подобная ипостась konqueror, хотя и загружается по умолчанию, - лишь одна из многих доступных. Зайдя в меню Окно, видим, что можно легко отключить файловое древо навигационной панели, получив просто плоскость с пиктограммами каталогов и файлов. Жизни нашей это отнюдь не украсит, поэтому преобразуем ее в список с именами файлов и их атрибутами.

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

Здесь можно последовательно включить/отключить демонстрацию размера и типа файла, времени его изменения (атрибут mtime) и последнего к нему доступа (атрибут atime), имя владельца и группу, которой он принадлежит, а также атрибуты доступа - в том порядке, в каком мы их подключаем. Что-то напоминает (рис. 2), не так ли? Совершенно верно, да это же практически вывод команды ls, только в несколько ином порядке.


Рис. 2. Представление konqueror в виде плоского списка - по информативности ничуть не ниже, чем вывод команды ls с максимально задействованными опциями

К слову, если порядок колонок в нашей таблице не устраивает - любую из них можно просто перетащить мышью, ухватившись за заголовок. Правда, отключить лишние все равно придется через те же пункты меню. А отсортировать файлы по любому параметру (и в любом порядке) можно щелчком мыши по заголовку.

Теперь для пущей двухпанельности остается только вывести параллельно два независимых таких списка. Для чего возвращаемся в меню Окно и говорим - Разделить панель по вертикали. После чего, скорректировав вывод атрибутов, получаем вполне Norton-подобный вид (рис. 3).


Рис. 3. Konqueror - почти Norton-подобный вид

По аналогии с NC легко догадаться, что между панелями возможен обмен файлами - копирование, перемещение, и т.д. Делать, однако, это пока придется либо методом Drag&Drop или через пункты главного меню. Что для истинного сына командира Нортона покажется неприемлемым.

Не беда - в его распоряжении возможность настроить комбинации горячих клавиш (почти) так, как ему хочется. Для чего в меню Настройка предусмотрен специальный пункт - Комбинации клавиш. Он вызывает список доступных действий (рис. 4). В нем достаточно выбрать то, коему мы хотим приписать привычную клавишную комбинацию (например, Выделить все), отметить переключатель По выбору - и нажать то, что нужно (в данном случае - привычные "серый плюс" и "серый Enter" на малой цифровой клавиатуре).


Рис. 4. Настройка "горячих клавиш": еще один шаг к полному Norton-подобию

Аналогично можно поступить и с прочими привычными клавишами - привязать к F3 функцию просмотра файла, к F4 - вызов редактора для его модификации (причем - не обязательно встроенный, которым по умолчанию KDE выступает KWrite, а любой имеющийся в системе, в том числе и консольный), к F5 и F6 - копирование и перемещение файлов, соответственно. Правда, тут нужно оговориться - некоторые из клавишных комбинаций могут быть уже задействованы как умолчания самой KDE. Однако и их изменить - не проблема. Правда, это потребует обращения к настройкам самой среды, что далеко выходит за рамки сегодняшнего обсуждения.

Однако сила командира Нортона была отнюдь не только в двух его панелях. А еще и в собственной командной строке, еще в приснопамятные времена далеко превосходившей по своей функциональности убогий DOS'овский COMMAND.COM. И где она здесь? - спросите вы меня.

Отвечу легко: командная строка командира нам тут не потребуется. Ибо, поворотившись обратно же в меню Окно, мы увидим там пункт Показать эмулятор терминала. И включение его даст нам не просто командную строку - а полноценное терминальное окно с запущенным экземпляром вашей пользовательской оболочки, настроенной в полном соответствии с тем, как это описано в ее профильных файлах (типа ~/.bash_profile и т.д. - но это уже совсем другая история). То есть в этом окне доступны будут и автодополнения команд и путей (нажатием клавиши табулятора), и командная история (прокручиваемая стрелками управления курсором), и управление заданиями (стандартными шелл-операторами типа &), и перенаправления ввода/вывода, и вообще все тридцать три удовольствия чисто консольной жизни - но в графическом режиме.

И при этом одну из панелей можно синхронизировать с терминалом - для этого нужно отметить переключатели в нижнем правом углу панели и терминального окна. И тогда мы получаем а) всю гибкость работы в командной строке плюс б) полную визуализацию результатов своих действий - именно ее часто не хватает начинающему пользователю при использовании команд типа cp, mv или rm.

Вид терминала может быть настроен в очень широких пределах. Достаточно щелкнуть в его поле правой клавишей мыши - и из появившегося контекстного меню можно изменить: а) размер и гарнитуру шрифта (на шрифте панелей это никак не скажется - тот изменяется независимо), б) так называемый тип терминала, что в русской версии озаглавлено почему-то как Клавиатура (для нормального поведения клавиш управления курсором здесь настоятельно рекомендую Linux console - даже во FreeBSD), в) цветовую схему (черным по белому или наоборот, а можно - даже и с прозрачным фоном, сквозь который будут просвечивать любимые обои рабочего стола), и многое другое (рис. 5). Нужно только не забыть сохранить настройки, добившись оптимального результата.


Рис. 5. Konqueror - итоговый вариант: и терминал бывает украшением рабочего стола (фоном - фрагмент фотографии залива Сан-Франциско)

К слову о настройках. Большинство из выполненных нами ранее действий будут иметь силу только для запущенной в данный момент копии konqueror. Чтобы сделать их перманентными, требуется сохранить настройки в профиле. Что делается - кто бы мог подумать! - в меню Настройка, и ее пункте Сохранить профиль просмотра filemanagement.

Лики konqueror'а

В списке предлагаемых профилей их можно обнаружить несколько - в том числе цель наших предыдущих манипуляций (имитацию внешности Midnight Commander), а также интересный профиль предварительного просмотра файлов. в котором мы имеем (слева направо, рис. 6) навигационную панель, панель содержимого каталогов и панель просмотра файлов.


Рис. 6. Предварительный просмотр файлов, слева направо: навигационная панель, фиксация на которой выбирает каталог, панель содержимого каталога - в ней мы вибираем файл, отображаемый в панели просмотра.

Ничто не в силах помешать нам создать и собственный профиль konqueror, либо из умолчального, либо взяв за основу один из существующих. Для чего ему нужно только присвоить имя в момент сохранения. Правда, щелчком по все той же пиктограмме Home по прежнему будет вызываться прежний умолчальный профиль. Можно ли это изменить?

Ну конечно же, можно. Для чего 1) отправляемся в панель запуска KDE, 2) отыскиваем там нужный нам значок (обычно это в той или иной степени стилизованное изображение домика), 3) щелкаем на нем правой клавишей мыши, 4) в появившемся контекстном меню выбираем пункт Свойства, 5) в возникшей панели перейти на вкладку Приложение, и 6) отыскать на ней поле Команда (рис. 7). А в нем остается просто заменить имя вызываемого профиля, выступающего как аргумент команды kfmclient (в оригинале это имеет вид kfmclient openProfile filemanagement), на придуманное ранее (типа kfmclient openProfile my_profile_name).


Рис. 7. Создание собственного профиля konqueror, вызываемого по умолчанию через главную стартовую панель KDE

К слову сказать, среди имен предопределенных профилей можно обнаружить и такое - webbrowsing. Да-да, konqueror - не только файловый организатор, но и web-браузер. Причем, начиная с KDE версии 3.0 (текущая на момент написания - 3.2.3), вполне сравнимый по функциональности с такими всамделишними браузерами, как Mozilla или Opera. И, что немаловажно в наших условиях - без проблем справляющийся с любыми кириллическими кодировками (каковые могут быть определены автоматически - по значению метатэга charset, или установлены вручную) .

Если для полноценного web-серфинга возможностей konqueror-браузера может и не хватить (хотя по моим потребностям - их немного больше, чем вдоволь), то для локального просмотра html-файлов (например, документации) трудно придумать что-либо более удобное - вследствие быстродействия, простоты использования и интеграции с файловым менеджером. Ведь в последнем web-документ открывается (в той же панели) простым щелчком мышью по имени соответствующего файла. А если этот щелчок выполнить нажатием правой клавиши нашего грызуна, то появляется выбор - окрыть ли нужный файл в новой вкладке (уже без разделения на панели) или новом окне.

Разумеется, запустить konqueror в реинкарнации web-браузера можно и сам по себе - для этого на стартовой панели KDE по умолчанию имеется соответствующая пиктограмма (нечто вроде земного шарика, обрамленного шестеренкой).Просмотр ее (то есть пиктограммы) свойств показывает, что стартует браузер командой kfmclient openProfile webbrowsing - то есть различия с файловым менеджером только в аргументе. Из чего заключаем, что и для него можно создать любой собственный профиль.

А поводов для этого konqueror-браузер дает сколько угодно. Потому что в нем, как и в файловом менеджере, можно настроить все, что душе угодно - и шрифты для отображения web-страниц, и вид и состав инструментальной панели, и положение панели закладок, и многое, многое другое.

При желании можно придать браузеру двухпанельный вид, или отобразить в нем окно терминала (рис. 8). За каким зеленым это потребуется? - спросите вы меня. Не скажите, батенька, - отвечу я вам. Такое представление оказывается очень не лишним при работе с ftp-архивами - файлы из них можно копировать точно также, как это делается на локальной машине (перетаскиванием мышью, горячими клавишами или просто из командной строки). Правда, при условии, что в konqueror будет интегрирован собственный ftp-клиент KDE - kget. Впрочем, он это проделывает сам собой при первом же запуске (если специально не отказаться от этой возможности).


Рис. 8. Konqueror в ипостаси браузера - и с терминальным окном. Для чего? Да для запуска консольного ftp-клиента, например...

Однако описание возможностей konqueror в роли браузера в мою сегодняшнюю задачу не входит (на эту тему можно было бы сочинить еще одну статью). А потому подведу некоторые итоги.

Размышления о konquror'овской неволе

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

Ах да, пардон. Внимательный читатель тут не применет заметить, что все мое изложение было посвящено исключительно величию konqueror. И, вопреки названию (и Альфреду де Виньи), ни слова не было сказано о его неволе. В чем же она заключается?

Частично я ответил на этот вопрос в самом начале. Konqueror - это KDE-приложение из штатного комплекта. И (sapienti sat), чтобы получить его в свое распоряжение, требуется иметь эту среду в установленном виде. А именно она своей монструозностью, медлительностью и требовательностью к ресурсам часто отпугивает пользователей. Обоснованно ли?

Конечно, запуск современных версий KDE на Pentium-166 с 64 Мбайт памяти, хотя и возможен, но не доставит ничего, кроме мучений, Однако часто ли на столах современных пользователей можно обнаружить такой антиквариат? Нет, скорее в загашнике рачительного админа. На любой же машине, которую можно увидеть ныне за пределами музея истории электронного мастерства (рискну предположить, что ее тактовая частота будет в районе 1 Ггц, а количество памяти - не менее 256 Мбайт), среда эта будет функционировать более чем справно. Конечно, еще 256 Мбайт памяти не помешают - и вообще KDE любит лишнюю память, как никто, и обходится с нею подобно бойцам из старого советского анекдота - с провизией ("Товарищи бойцы, продуктов хватает?" - "Хватает, аж остается!" - "А что с остатками делаете?" - "Доедаем, аж не хватает!").

А уж с точки зрения быстродействия KDE при прочих равных ничуть не проиграет ближайшему аналогу - GNOME (на мой взгляд, просто однозначно выиграет), при гораздо более высокой степени интеграции (поклонники GNOME меня, конечно, не простят, но, по моему скромному мнению, это - лишь пародия на действительно интегрированную среду).

Теперь - о монструозности. Полный комплект исходников KDE (включая необходимую для ее установки и работы библиотеку Qt) в современном виде включает 20 файлов общим объемом более 150 Мбайт (в виде прекомпилированных пакетов это будет вдвое меньше). Однако прошу учесть, что в их состав входят пакеты для целей развлечения и так называемого образования (ИМХО, не нужные никому), наборы графических и мультимедийных приложений (большинству из них легко найти более совершенные аналоги), игры (требующиеся только любителям пасьянсов, вроде меня) и средства разработки (которые - сами знаете кому нужны).

Так что вовсе не обязательно устанавливать весь KDE in corpore. В пакетных дистрибутивах Linux весь этот объем часто собран так, что связан перекрестными зависимостями (и, следовательно, только целиком и может быть установлен). Однако в Source Based дистрибутивах (или, скажем, во FreeBSD) из него легко вычленить только жизненно необходимые компоненты.

А таковыми являются: 1) библиотека Qt текущей версии - она обычно четко коррелирует с версиями KDE; 2) библиотека мультимедийных компонентов arts (даже если и не устанавливать мультимедийные приложения, она требуется все равно); 3) собственная библиотека kdelibs; 4) kdebase - как легко догадаться из названия, базовый набор KDE-приложений, в число которых входит и konqueror (а также другие полезные вещи, типа замечательного терминала konsole и не менее замечательного редактора kate). Все - по минимуму этих четырех архивов (40 Мбайт в исходниках) достаточно. Конечно, некоторые дополнительные пакеты (такие, как kdenetworks или kdepim) способны здорово изменить жизнь к лучшему. В частности, только при наличии пакета для работы с сетью (kdenetworks) становится возможной интеграция konqueror-браузера и konqueror-файлового менеджера с ftp-клиентом.

Однако рассмотрение KDE как собственно интегрированной среды - тема для отдельного разговора. А я позволю себе закончить свое затянувшееся повествование...


Обсуждение проекта