Назад Содержание
Вниз
Введение в POSIX'ивизм
(C) Алексей Федорчук, 2005
Опубликовано на сайте
LinuxCenter
Глава 18. KDE: интеграция десктопа
Это глава посвящена самомой интегрированной рабочей среде графического режима - KDE (K Desktop Environment), а также тому, как с ним бороться - то есть настраивать. Но сначала - несколько слов о том, почему эта самая борьба с KDE может стать необходимостью для пользователя.
Содержание
Выбор среды обитания при работе в графическом режиме (то есть в Иксах) - дело сугубо личное, я бы даже сказал - интимное. И суть его сводится, как и практически все в POSIX-системах, к старому анекдоту про парашютиста (он известен в вариантах про многих других персонажей). На вопрос, не страшно ли ему во время прыжка, тот ответил отрицательно, и объяснил, почему. Позволю себе пересказать суть его объяснения в сокращенном варианте (на самом деле старыми мастерами советского анекдота все рассказывалось гораздо подробнее).
Итак, наш парашютист ответил: когда я прыгаю, у меня есть два выхода - или парашют раскроется, или не раскроется. Если раскроется - все хорошо, а если не раскроется, остается два выхода: или я останусь жив, или разобьюсь насмерть. Если я останусь жив - все хорошо, если разобьюсь - остается два выхода: или я попаду в рай, или я попаду в ад. Если я попаду в рай - все хорошо, а если я попаду в ад, остается два выхода: или черт меня не съест, или черт меня съест. Если черт меня не съест - все хорошо, а если черт меня съест - ну один-то выход у меня все равно остается!
Это объяснение каждый начинающий POSIX'ивист должен запомнить, как молитву: в любом затруднительном положении у него есть как минимум два варианта решения своей проблемы. И если ему покажется, что решения нет - хоть один вариант по зрелом размышлении найдется обязательно.
Так что проблема выбора графического интерфейса начинается с определения того, что же нужно пользователю - просто оконный менеджер или действительно интегрированная среда (graphic desktop environment), называемая также просто десктопом (desktop). Различия между ними очевидны: первый класс программ предоставляет пользователю возможность управления окнами - их открытия, закрытия, масштабирования, сворачивания, перемещения, переключения между открытыми окнами.
В качестве дополнительных (обычно присутствующих в оконном менеджере, но отнюдь не обязательных) возможностей могут иметь место: виртуальные рабочие столы и/или виртуальные разрешения оных, средства запуска приложений - иконки рабочего стола, треи, контекстные меню, строки минитерминала (то, что в KDE называется mini-cli), средства навигации по десктопам и окнам (типа панелей задач), различные допонительные украшательства - фоны, обои и так далее. А также - более или менее автоматизированные средства для конфигурирования всего этого. Однако повторяю - все, что выходит за рамки управления окнами, является сугубо опциональным и может отсутствовать в оконном менеджере, а настройка его вполне может осуществляться только прямым редактированием конфигурационного файла.
Интегрированный десктоп, разумеется, включает в себя средства управления окнами - собственные, как в KDE, или привлеченные из дружественных (то есть совместимых) оконных менеджеров, как в GNOME (понятно, что без управления окнами работа в оконной среде X попросту невозможна). Но тут уже виртуальные десктопы, средства запуска программ и навигации по ним - всякого рода панели, стартовые и контекстные меню, пиктограммы, наборы тем и прочие красивости становятся непременными атрибутами рабочей среды. Плюс - более или менее обширный набор интегрированных в десктоп приложений (почему он и называется интегрированной средой), как минимум - терминал, редактор, файловый менеджер. Ну и обязательным компонентом десктопа (без чего он не заслуживал бы этого наименования) - собственные (то есть графические же) средства сквозного конфигурирования его самого и всех его приложений.
Маленькое отступление. Среди старых (не по возрасту, а по стажу) пользователей POSIX-систем широко распространено мнение, что любые программы, выполненные в направлении Unix Way (или, резче, True Unix Way) должны настраиваться правкой конфигов в текстовом редакторе (а паче того, их созданием "с нуля), все же остальное - от лукавого.
С этим трудно не согласиться. Да, истинный POSIX'ивист всегда должен иметь возможность вмешаться руками в процесс настройки. Однако если речь идет о правке многих десятков конфигов (а в случае с KDE, как станет ясным из дальнейшего, именно так и есть), не проще ли в общем и целом положиться на собственный конфигуратор, а к ручной правке прибегать только в критических ситуациях? Ибо если GUI не может сам себя настроить средствами своего же GUI - то какой он к чертям собачьим Интерфейс Пользователя?
И уж вообще нелепо, если с помощью GUI-конфигуратора можно настроить массу очень сложных параметров, а для какого-либо элементарного действия - например, изменения шрифта меню, - требуется ручное редактирование rc-файла...
Однако вернемся к основной теме. В случае выбора оконного менеджера для пользователя все хорошо. Правда, в его распоряжении оказывается немерянное их количество, с интерфейсами разной степени простоты, построенными по различным принципам. Однако тут уж с проблемой выбора он должен справиться - хотя бы методом перебора вариантов.
А вот при выборе интегрированного десктопа перед пользователем два выхода. Первый - это строить такой десктоп самостоятельно, на основе более или менее простого оконного менеджера и тех приложений, которые он использует постоянно. Благо многие из оконных менеджеров позволяют превратить себя в полноценную интегрированную среду (хотя и весьма индивидуальную) если не легким движением руки, то несложным редактированием своих конфигов. Здесь показателен пример fluxbox'а - благодаря механизму закладок (tabs) совместно используемые приложения (например, терминал, текстовый редактор, браузер) легко объединяются в группы "по интересам". Так что если пользователь сделает такой выбор, все хорошо: остается только затратить должное количество времени на редактирование файла X-ресурсов, пользовательского ~/.xinitrc
, конфигурационных файлов оконного менеджера и отдельных приложений. Если же это почему либо не устраивает - остается второй выход: использование уже готового десктопа.
Каковых также не так и мало. Из мне известных графических интерфейсов в этом качестве позиционируются CDE, XFce, GNOME и KDE. Однако первая - продукт коммерческий, и, насколько я знаю, не входит в состав ни одного дистрибутива Linux или свободной BSD-системы. А XFce, при всех своих несомненных (и многочисленных) достоинствах, в современном своем виде на роль интегрированной среды претендовать может с трудом: это скорее наиболее развитый (по сравнению с прочими оконными менеджерами) конструктор для собственноручного построения таковой. Так что на самом деле и тут остается только два выхода: GNOME или KDE.
Если пользователь решится на первый выбор - для него (надеюсь) все будет хорошо. Однако здесь я ему не советчик. Потому что GNOME - один из немногих представителей класса графических интерфейсов, который мне активно не нравится.
Я вполне разделяю чувства поклонников элегантности преемников NextStep (Afterstep, WindowMaker) или строгой простоты семейства *box'ов (Blackbox, Openbox, Fluxbox - к слову, ничуть не менее элегантных, а последний еще и уникально функционален). Тем паче, что сам долгое время был в их числе (а периодически пользуюсь WindowMaker или Fluxbox и по сей день). Я готов понять любителей IceWM, сочетающего в себе простоту настройки с ее гибкостью. Я осознаю несравненную настраиваемость FVWM и его клонов - хотя и чисто теоретически. Мне, столь же платонически, очень нравятся идеи, заложенные в XFce, являющего близкий к идеальному баланс между минимализмом оконного менеджера и функциональностью полноценного десктопа. Наконец, я некоторых случая мне представляется вполне приемлемым предельный аскетизм FLVM, которому, приложив чуть-чуть усилий, можно еще и придать некоторую элегантность.
Но, разгрызи меня гром, за все свои попытки общения с GNOME я не обнаружил в нем никаких привлекательных (для себя) черт. Начать с того, что это - также не вполне интегрированная среда. Что, конечно, становится особенно понятным при сравнении с KDE, однако... Большая часть того, что интегрировано в GNOME и заслуживает всяческого использования - создавалась до него, вне него, и независимо от него. Тут вспоминаем GIMP - ведь именно для его разработки была придумана библиотека Gtk (что так и расшифровывается - GIMP Toolkit), послужившая базой для множества приложений, изначально с GNOME никак не связанных - от сугубо кросс-платформенного AbiWord до векторного графического редактора Sodipodi, автор которого озаботился столь же легкой интеграцией своего произведения в KDE, как и в GNOME.
Далее. Если KDE с каждой новой версией становится все быстрее, то GNOME - все задумчивее. А тенденция к разрастанию объема выражена во втором ничуть не меньше, чем в первом. Ну и наконец, просто идеология: разработчики GNOME все больше и больше тяготеют к воспроизведению особенностей Самой Великой ОС всех времен и народов. Известное высказывание, что последние версии GNOME представляют собой большую Windows, чем сама Windows, говорит само за себя.
Единственным основанием к использованию GNOME я вижу нежелание (или невозможность) плодить большое количество библиотек - так как без GIMP при мало-мальски существенной доле работы с графикой обойтись все равно не удастся, а он основан на той же библиотеке Gtk, что и GNOME. Хотя строго говоря, как раз наоборот - Gtk создавалась специально для GIMP, а ко GNOME ее прикрутили за отсутствием выбора. Впрочем, лично мне думается, что и тут XFce (основанная на той же Gtk) была бы более предпочтительна.
Впрочем, ругательных материалов о GNOME, особенно в современных его ипостасях, в Сети можно найти ничуть не меньше, чем хвалительных. Как уже было сказано, мне лично хвалить GNOME не за что, а ругать его не возьмусь за слабым знанием. Ограничившись одним-единственным (но для меня очень весомым) аргументом, также анекдотического происхождения. Помните, как один мужик в церкви жаловался Господу, что дела у него идут из рук вон плохо, не смотря на его хорошее, с точки зрения христианских понятий, поведение, и в отчаянии вопрошал: "Ну почему, о Боже?" - "Ну не нравишься ты мне" - донесся до него Глас Божий. Вот и про GNOME могу сказать - не нравится он мне, вот и все.
Так что пользователь должен сделать свой выбор, опираясь на субъективные впечатления и (квази) объективные оценки из источников. Однако, если выбор его будет не в пользу GNOME, то еще один выход у него найдется. И выход этот - использование KDE.
Итак, KDE - единственный (повторяю, по моему мнению) по настоящему интегрированный десктоп в мире Open Sources. Правда, в принадлежности последнему ему долгое время отказывали, так как базируется он на библиотеке Qt, имеющей (в том числе и) коммерческий статус. Однако ныне лицензионные споры относительно свободы/несвободы ее отшумели, и лицензия, под которой Qt распространяется для некоммерческого использования, признана вполне GPL-совместимой. Так что у всех адептов чистоты Open Sources и Free Software "юридических" оснований не использовать KDE не осталось.
Другое дело, что многие не любят KDE за его масштабность, переходящую в монстроидальность. Действительно, эта среда предъявляет довольно высокие требования к аппаратуре, особенно - объему памяти: мало-мальски комфортная работа в современных версиях KDE возможна, начиная с RAM 256 Мбайт (лучше - больше, хотя, начиная с 512 Мбайт, разницы уже почти не чувствуется). Однако столь ли страшны такие требования для современных машин?
Немало места занимают компоненты этой среды и на винчестере: моя обычная установка KDE (вместе с обязательной библиотекой Qt) тянет почти на 500 Мбайт. Но и это при современных объемах винчестеров не столь критично. Наконец, удовольствие от работы в KDE можно получить при разрешении экрана, начиная с 1024x768 и глубине цвета от 16 бит. Но ведь и это - не проблема для всех нынешних видеокарт и мониторов.
Можно видеть, что при более или менее современной аппаратуре системные требования KDE не выглядят чем-то сверхъестественным. Другое дело, что это - не лучший выбор для реанимации старого "железа". Однако и GNOME этой цели не послужит: его требования к памяти и дисковому пространству ничуть не ниже (если не выше). Так что пользователям безнадежно состарившихся (морально, не обязательно физически) машин придется обратиться в выбору между "легкими" оконными менеджерами.
Далее, среди пользователей бытует легенда о какой-то особо выдающейся "тормознутости" KDE. Однако этот вопрос тесно связан с предыдущим: резкое падение быстродействия в этой среде фиксируется при недостаточном объеме памяти. Хотя и процессор желательно иметь помощнее Pentium-166, но любого из современных - хватит за глаза.
Впечатление некоторой "задумчивости" при общении с KDE может дать старт самой среды и первый в сеансе запуск какого-либо приложения. Действительно, поскольку любое KDE-приложение задействует множество библиотечных функций, запуск его по определению не может быть быстрым. Однако столь ли это критично? Ведь сама среда и постоянно используемые ее компоненты запускаются один раз в день (а на служебной машине, возможно, вообще загружены круглосуточно). А на тех программах, которые открываются и закрываются перманентно (например, терминальные окна), замедление не сказывается: повторный запуск любого KDE-приложения осуществляется на порядок быстрее, чем первый (оно и понятно - нужные билиотечные функции уже в памяти). Кроме того, в Linux, например, существует метод радикального ускорения старта KDE-приложений (и не только их) - так называемое предварительное связывание (prelinking). А в DragonFlyBSD аналогичная функция поддерживается на уровне ядра.
И вообще, если уж речь зашла о быстродействии - KDE в этом отношении ощутимо выигрывает у GNOME. Каковой вообще часто производит впечатление устройства, специально предназначенного для своппирования на диск. Хотя мои впечатления относятся к достаточно старым его версиям, но по отзывам - и нынешние стремительностью не поражают.
Наконец, KDE - одна из немногих программ в мировой истории софтостроения, которая с каждой новой версией становится не только функциональней, но и быстрее. И это не слова, а реальность, которую не могли не заметить все пользователи, перешедшие в недавнее время с версий 3.2.X на 3.3.X (и даже - с 3.3.0 на 3.3.1).
И последнее из широко распространенных предубеждений против KDE - его интерфейс с точки зрения визуального впечатления. Действительно, "умолчальный" вид KDE а) не являет собой предел эстетического совершенства, и б) вызывает неприятные для приверженцев True Unix GUI ассоциации с внешностью Самой Известной ОС. Однако а) с каждой новой версией KDE движется в сторону элегантности, и б) для него существует (и постоянно пополняется) большой набор тем и отдельных интерфейсных элементов, в том числе и весьма симпатичных (с ними можно ознакомиться на специальном сайте: http://www.kde-look.org/). Ну а родимые пятна Windows-подобия легко выводятся несложными настроечными действиями.
Да, еще, коль скоро я уж заговорил о настройках. В качестве недостатков KDE подчас отмечают сложность конфигурирования этой среды и неочевидность способа ручных настроек. Это действительно так. Однако взамен среда предлагает очень развитые средства интерактивного конфигурирования, так что для "рукоблудия" остается не так уж много точек приложения. Тем не менее, способы ручной коррекции настроек и составят существенную часть этой главы - я постараюсь показать, что не так уж страшен черт, как его малюют.
До сих пор все аргументы в пользу KDE были, так сказать, от противного, и сводились к тому, что этот десктоп не так уж плох, как о нем часто думают. Пора, однако, обратиться к позитиву и посмотреть, чем же он хорош.
Во-первых, функциональностью собственно оконного менеджера - средства управления окнами многочисленны и разнообразны. Во-вторых, полным ассортиментом средств запуска - от пиктограмм рабочего стола до строки минитерминала, сохраняющей историю команд, от стартового меню в стиле Windows (K-меню) до трея главной управляющей панели, не говоря уж о традиционном для Иксовых интерфейсов контекстных меню рабочего стола. В третьих, удобством средств навигации между виртуальными рабочими столами (а оных может быть аж 20 штук) и окнами открытых приложений, разнообразием способов "поднятия" и фокусировки окон.
Конечно, всем этим богачеством современного пользователя удивить трудно - перечисленные средства в том или ином сочетании есть в любом развитом оконном менеджере. Однако, во-первых, лишь в редких из них можно найти полный их набор. А во-вторых, многие из означенных возможностей впервые появились именно в KDE - например, строка минитерминала с поддержкой истории команд (т.н. mini-cli).
Однако KDE имеет и уникальные возможности. И здесь в первую голову стоит помянуть сквозное средство глобального конфигурирования среды обитания - Центр управления (KCC - KDE Control Center). Описанию способов настройки KDE будет посвящена изрядная часть этой главы. Пока же отмечу только, что с помощью KCC конфигурируется 99 процентов того, что вообще может возникнуть желание сконфигурировать у самого привередливого пользователя. Тот же оставшийся процент настроек, не поддающихся средствам KCC, легко изменяется редактированием конфигов.
Все глобальные параметры среды автоматически распространяются на любые KDE-приложения, причем даже те, что не входят в штатную поставку системы; а частично они действенны и для сторонних программы. Однако KDE-приложения можно настроить и индивидуально - и это будет иметь приоритет перед глобальными характеристиками.
Изобилие штатных приложений - вторая особенность KDE: не покидая этой среды, можно найти и прекрасный эмулятор терминала, и полнофункциональный текстовый редактор, и файловый менеджер с браузером, и почтовый и ftp-клиенты, и множество графических и мультимедийных приложений, не говоря уже о мощном (и, что характерно, пригодном к использованию) наборе ощесистемных утилит и средств разработки программ и web-материалов. "А чего не хватит в доме - сколько хочешь в гастрономе": число программ от сторонних разработчиков, ориентированных на работу в среде KDE, наверное, учету не поддается (в этом можно убедиться на специальном сайте: http://kde-apps.org/), и охватывает абсолютно все области, для которых только существуют разработки Open Sources вообще. Кроме того, ряд программ, специфических библиотек не использующие, имеют front end'ы (в просторечии - "морды"), основанные на библиотечных элементах Qt/KDE - здесь можно вспомнить не только KDE-ипостась mplaeyr'а, известного, или оболочки для записи CD/DVD-дисков (K3b), но и сборки на базе KDE офисного пакета OpenOffice. А недавно появилась и возможность прикрутить KDE-интерфейс к движку Gekko - базе проприетарного Netscape, свободных Mozilla и Galeon. Все разработанные для KDE программы, включая front end'ы, имеют стандартизированный интерфейс, который, как уже было сказано, может быть настроен глобально, вместе с параметрами самой среды (что не исключает индивидуального конфигурирования - но и об этом я уже упоминал).
В целом KDE выглядит даже перегруженным штатными приложениями - и это нередко отмечается как очередной недостаток данной среды. Да уж, что есть, то есть: кое-какие программы редко кем используются (ввиду наличия более продвинутых аналогов), иные же явно дублируют друг друга, и подчас дублирующие варианты, мягко говоря, далеки от совершенства - чтобы в этом убедиться, достаточно просмотреть пункты Графика и Мультимедиа "умолчального" K-меню.
Однако... Во-первых, вовсе не все компоненты полного набора KDE обязательны к установке, и нет препятствий к запуску из этой среды программ, основанных на других библиотеках. Во-вторых, KDE - одна из немногих программ, новые версии которой не только обрастают новыми функциями, но и подвергаются урезанию: постепенно дублирующих графических вьюверов и медиаплейеров становится все меньше, остаются только проверенные компоненты. А в-третьих и главных, многие программы штатного комплекта принадлежат к числу лучших в своем классе (для примера - текстовый редактор Kate, средство модемного соединеия Kppp, почтовый клиент KMail) или просто держат пальму первенства в своей области (как тут не вспомнить konqueror - лучший файловый менеджер всех времен и народов).
Из первых двух особенностей KDE вытекает третья, и главная - ее самодостаточность. Которая, собственно, и позволяет назвать эту среду по настоящему интегрированной. Подавляющее большинство своих задач пользователь может выполнить, не покидая KDE-десктопа - вплоть до интерактивного редактирования общесистемных скриптов инициализации (что, впрочем, не значит, что это нужно делать - но возможность к тому вы имеет). А в грядущих версиях, по агентурным данным, KDE будет способно обходиться даже без Иксов. Правда, подробности в настоящее время пока не известны, и не ясно, как это будет выглядеть: то ли в KDE будет встроен собственный X-сервер (только его по большому счету и не хватает KDE для окончательной самодостаточности:-)), то ли система обретет возможность воспроизведения графики через frame buffer. Впрочем, даже в современном виде KDE просматривается тенденция обходиться без обще-Иксовых ресурсов - например, как станет ясно из следующего раздела этой главы, в нем имеются собственные системы управления шрифтами и клавиатурными раскладками.
И четвертое выгодное качество KDE - это стабильно поступательное, уже на протяжении многих лет, развитие. Я имел удовольствие наблюдать эту систему с самых первых версий (где-то с 1998 г.) и свидетельствую: от ветки к ветки она не только обрастала новыми функциями (это - дело обычное), но становилась все стабильнее и (sic!) быстрее. Совершенствуя при том свой интерфейс визуально - а эстетический момент отнюдь не последний в деле выбора среды обитания, по крайней мере для меня.
Конечно, KDE еще не достигла состояния идеального десктопа, и не свободна от некоторых недостатков. Однако выше я попытался показать, что они не критичны, и более-менее легко преодолимы. Что позволяет рассматривать эту систему в качестве оптимального выбора при необходимости именно в интегрированной среде обитания.
Легко догадаться, что местом своего пребывания проект среда KDE имеет сайт http://www.kde.org, откуда может быть абсолютно безвозмездно скачана в виде исходных текстов (и бинарных пакетов для некоторых дистрибутивов Linux). В прекомпилированном же виде KDE входят в состав практически любого дистрибутива Linux, претендующего на полнофункциональность (а во многих является и десктопом по умолчанию). Есть она в коллекциях бинарных пакетов и системах портов всех BSD-систем. Впрочем, для FreeBSD бинарники KDE лучше брать не из штатной поставки этой ОС, а с сайта FreeBSD KDE Packages -там скорее всего будет более свежая версия.
Для установки KDE необходимо озаботиться еще и получением библиотеки Qt, свободно распространяемый (для некоммерческого использования в системах XFree86 и Xorg) вариант которой берется в виде исходников с сайта разработчика (http://www.trolltech.com/). Впрочем, есть она и в дистрибутивах Linux и BSD-систем - нужно только следить за соответствием версий - они обычно достаточно четко коррелируют с версиями KDE.
Необходимы для работы KDE система X, а также немало дополнительных компонентов, включая включая главные графические и мультимедийные библиотеки, некоторые из которых в качестве зависимостей неизбежно тащат за собой библиотеки Glib и Gtk. Однако и все это хозяйство имеется в дистрибутивах и, скорее всего, устанавливается из них по умолчанию. Да и многие из дополнительных компонентов связаны с KDE "мягкими" (необязательными) зависимостями - в KDE разделение "жестких" и "мягких" зависимостей проводится очень последовательно.
Конечно, процесс самостоятельной сборки KDE - дело не из самых простых, как из-за сложности зависимостей дополнительных компонентов, так и с точки зрения временных затрат. Однако это один из тех немногих случаев, когда индивидуальная сборка способна дать значимый прирост производительности. Кроме того, она позволяет исключить явно ненужные пользователю зависимости из числа "мягких" - в большинстве пакетных дистрибутивов Linux все они по умолчанию задействованы в прекомпилированных сборках. Альтернатива полностью ручной сборке - использование портов BSD-систем и портообразных систем Source Based дистрибутивов Linux - все они допускают значительные вариации персональных настроек, включая отсечение необязательных зависимостей.
Сама по себе среда KDE в виде исходников включает в себя около полутора дюжин пакетов, список и состав которых несколько варьирует от версии к версии. В современных версиях он выглядит примерно следующим образом:
kdeaccessibility-3.3.1.tar.bz2
kdeaddons-3.3.1.tar.bz2
kdeadmin-3.3.1.tar.bz2
kdeartwork-3.3.1.tar.bz2
kdebase-3.3.1.tar.bz2
kdebindings-3.3.1.tar.bz2
kdeedu-3.3.1.tar.bz2
kdegames-3.3.1.tar.bz2
kdegraphics-3.3.1.tar.bz2
kdelibs-3.3.1.tar.bz2
kdemultimedia-3.3.1.tar.bz2
kdenetwork-3.3.1.tar.bz2
kdepim-3.3.1.tar.bz2
kdesdk-3.3.1.tar.bz2
kdetoys-3.3.1.tar.bz2
kdeutils-3.3.1.tar.bz2
kdewebdev-3.3.1.tar.bz2
Кроме того, в KDE входят пакеты arts
и kdevelop
, имеющие свою нумерацию версий, kde-i18n
, обеспечивающий интернационализацию среды, а также пакеты локализации для отдельных языков (вида kde-i18n-язык
, например, kde-i18n-ru
), в числе коих - почти все мыслимые (хотя локализация для них выполнена с очень разной полнотой и качеством).
Все это хозяйство, включая библиотеку Qt, в исходниках тянет почти на три сотни мегабайт. Что не может не вызвать воспоминаний о монстроидальности KDE. Однако далеко не все перечисленное обязательно к установке и, соответственно, скачиванию. Правда, во многих пакетных дистрибутивах Linux все компоненты KDE связаны кросс-пакетными зависимостями (включающими все необязательные), и их действительно приходится устанавливать все. Но во FreeBSD, SB Linux'ах и тем более при ручной сборке можно обойтись только на самом деле нужными.
Первый, и бесспорный, кандидат к отчислению из списка - пакет kde-i18n
(а это уже более 100 Мбайт исходников): очевидно, что никому не нужна поддержка доброй полусотни языков одновременно. Достаточно отдельного пакета для своего, родного (в наших условиях это kde-i18n-ru
), в крайнем случае - еще пары-тройки дружественных.
Далее, ясно, что пакет kdevelop
только этим самым разработчикам и необходим, большинство же пользователей без него вполне могут обойтись. Ну а решение об установке прочих пакетов пользователь должен принять самостоятельно. Для чего я вкратце опишу назначение каждого.
Для начала - о пакетах, обязательных к установке в любом случае. Как можно догадаться, их два - kdelibs
и kdebase
. Первый - набор специфичных для KDE библиотечных функций, дополняющих базовую библиотеку Qt. Второй же включает основные компоненты KDE - собственно оконный менеджер KWM и его аксессуары, минимальный набор тем и основные приложения - файловый менеджер, он же браузер, konqueror
, набор текстовых редакторов (kwrite
, kedit
, kate
), эмулятор терминала konsole
, и еще некоторые (не столь уж многочисленные).
Как ни странно, обязательным оказывается также пакет arts
- собственная звуковая система KDE, используемая для воспроизведения системных звуков даже в том случае, если мультимедийные компоненты KDE не устанавливаются.
Все прочие компоненты сугубо опциональны, поэтому охарактеризую те, что использую сам, и в порядке важности для меня лично:
kdenetwork
- сетевые компоненты, среди которых - прекрасное средство дозвона kppp
и kget
- ftp-клиент, сам по себе ничем не выдающийся в ряду своих (хороших) аналогов, но в интеграции с файловым менеджером/браузером konqueror
весьма способствующий облегчению жизни;
kdepim
- пакет персональных помощников, в который не вполне, на мой взгляд, логично, включены почтовый клиент kmail
и дополняющая его адресная книга;
kdewebdev
- пакет разработки web-материалов, основу которого составляет превосходный редактор html-кода Quanta Plus, гармонично дополняемый вспомогательными средствами, такими, как средство проверки целостности ссылок (klinkstatus
) и создания ссылочных карт на изображениях (kimagemapeditor
);
kdegraphics
- пакет включает пару вьюверов графических файлов, очень удобную программу съемки скриншотов, простенький, но неплохой редактор графики kolourpaint
- далеко не GIMP, конечно, но для несложных работ вполне пригодный;
kdemultimedia
- в составе пакета очень приличный медиаплейер noatun
(хотя и похуже mplayer
, тем более в KDE-ипостаси - но ее в штатной поставке не имеется), микшер, звуковой рекодер и т.д.;
kdeutils
- в его состав, помимо всякой бижутерии, входит калькулятор, штука нужная;
kdeadmin
- пакет утилит системного администрирования, требующих, за редким исключением, полномочий суперпользователя; я им не пользуюсь, хотя почему-то обычно устанавливаю.
Еще два пакета я также ставлю всегда - это kdeaddons
(ИМХО абсолютно необходим, так как включает, помимо прочего, plug-in'ы для редактора kate
, konqueror
и прочих) и kdeartwork
, в который входят дополнительные украшательства рабочего стола (обои, иконы и т.д.), жизнь без которых была бы скучна. А еще - kdegames
, в нем можно найти несколько пасьянсов и пару вариаций на тему бессмертного тетриса - а больше ни в какие игры я не играю.
Осталось упомянуть пакеты, которые я никогда не ставлю и потому о содержании коих имею смутное представление: kdeedu
- как можно догадаться, нечто имеющее отношение к образованию (чего или кого - не знаю), kdetoys
- какие-то прибамбасы, kdeaccessibility
- так называемые спецвозможности, ну и kdesdk
- набор скриптов и утилит для разработчика.
В большинстве случаев пользователю не приходится как-то по особенному озабочиваться установкой KDE - с этой задачей справляется либо инсталлятор его дистрибутива, либо штатная система управления пакетами. Некоторая проблема возникает только в том случае, если предлагаемая схема установки почему-либо не устраивает, например, вследствие заведомой избыточности: я уже отмечал, что ряд пакетов из набора KDE практического смысла для большинства пользователей не имеет. И тут может оказаться целесообразным прибегнуть к ручной сборке требуемых компонентов.
Сам по себе процесс сборки KDE также особых сложностей не представляет - нужно только выдерживать последовательность сборки пакетов: сначала собирается библиотека Qt, потому звуковая система arts
, потом - библиотека kdelibs
, а за ней - kdebase
. Прочие пакеты, при необходимости, собираются после этих остальных - и более-менее в любом порядке.
Для сборки библиотеки Qt тарбалл ее исходников распаковывается в тот каталог, в котором мы хотим ее видеть в дальнейшем - по умолчанию это /usr/local
, но последнее время в Linux-дистрибутивах Qt часто помещается в каталог /opt
. В любом случае в результате образуется подкаталог вида qt-vesion
. Его надлежит переименовать:
$ mv qt-version qt
А в профильный файл командной оболочки - общесистемный или пользовательский, то есть root'овый, - внести коррективы в значения переменных описания путей (подробно это описано в сопроводительной документации). Для sh-совместимого семейства это выглядит примерно так:
QTDIR=/usr/local/qt
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD_LIBRARY_PATH
А в C-shell (и tcsh
) аналогичный результат достигается такими строками:
setenv QTDIR /usr/local/qt
setenv PATH $QTDIR/bin:$PATH
setenv MANPATH $QTDIR/doc/man:$MANPATH
setenv LD_LIBRARY_PATH $QTDIR/lib:$LD_LIBRARY_PATH
Эти переменные потребуются уже на стадии конфигурирования/компиляции, поэтому необходимо либо авторизоваться заново, либо перечитать профильный файл предусмотренным образом (например, через source /etc/profile
и так далее). Затем дается пара команд
$ ./configure && make
- и Qt можно считать установленной. По умолчанию бинарники библиотеки собираются в тот же каталог, что и исходники, так что необходимости в команде make install
нет. Но при желании с помощью обычной опции --prefix
при конфигурировании можно заказать установку в какой-либо иной каталог.
Из остальных опций конфигурирования не лишней представляется минимум одна - -qt-gif
, включающая поддержку GIF-графики (по умолчанию, как ни странно, это не подразумевается).
Интересно, что при сборке Qt игнорируются любые флаги gcc
, кроме неких изначально в прописанных ее настроечных файлах - так что оптимизацией этой библиотеки можно не увлекаться. По умолчанию Qt собирается с уровнем оптимизации -O2
, что вполне достаточно. Однако если покажется мало - придется лезть в достаточно глубоко в конфиги, зависимые от операционной системы.
Сборка каждого из пакетов собственно KDE выполняется посредством трех традиционных сакральных действ -
$ ./configure && make && make install
из которых особого внимания заслуживает первое. Особенность конфигурационных сценариев пакетов KDE в том, что они обычно исполняются до конца - даже в случае нарушения зависимостей. о каковых по отработке скприта выдается полный отчет. При этом четко различаются зависимости "жесткие", без которых сборка и функционирование пакета невозможны, и "мягкие" зависимости, добавляющие ему необязательных (но часто задействованных по умолчанию) функций.
Если с "жесткими" зависимостями все ясно - они подлежат непременному удовлетворению, - то в отношении зависимостей "мягких" пользователю предоставляется выбор. Наприме, в числе "мягких" зависимостей пакетов KDE обнаруживаются система печати cups
и система сканирования sane
. Однако вполне возможно, что пользователь в этих функциях не нуждается (например, по причине отсутствия соответствующих агрегатов). И потому вполне может оключить их указанием должных опций конфигурационного сценария - а полный их список, как обычно, получается командой
$ ./configure --help
По умолчанию Qt и пакеты KDE устанавливаются в собственные ветки каталога /usr/local
- /usr/local/qt
и /usr/local/kde
. Однако в последнее время во многих дистрибутивах Linux просматривается тенденция перемещать такие крупные программные комплексы в каталог /opt
(и это приветствуется Стандартом иерархии файловой системы Linux - см. главу 10). Для следования этой тенденции при выполнении конфигурационного скрипта необходимо задать соответствующие опции:
$ ./configure --prefix=/opt --with-qt-dir=/opt/qt
После сборки Qt и kdelibs
(и перед сборкой остальных пакетов KDE) необходимо сделать соответствующие библиотеки общедоступными для всех приложений. Для этого нужно вписать в файл /etc/ld.so.conf
строки
/opt/qt/lib
/opt/kde/lib
и запустить команду
$ ldconfig
Теперь об оптимизации. KDE (как и Qt) написана на Си++, и, соответственно для оптимизации требуется не флаг CFLAGS
, а CXXFLAGS
. Впрочем, их можно приравнять друг другу -
export CXXFLAGS="$CFLAGS"
Ну, а о возможных значениях CFLAGS
вдоволь говорится в другом месте (см. главу 14).
Настройка KDE - процесс многогранный. С одной стороны, пользователь может использовать этот десктоп в его умолчальном виде, с другой - затратить массу времени на доведение его до немыслимого совершенства, и, тем не менее, продолжать его совершенствование. Мы же попробуем избрать некоторый промежуточный путь.
В предыдущих разделах этой статьи уже говорилось о том, что почти все параметры внешнего вида и поведения KDE можно настроить через KCC - Центр управления KDE. И это - штатный способ конфигурирования, теоретически рассуждая, у пользователя не должно возникать потребности обращаться к прямому редактированию конфигов (за редкими исключениями, о которых речь пойдет далее). Так что с общего обзора KCC мы и начнем.
Вызов KCC осуществляется из стартового K-меню - через пункт Центр управления, после чего на экране возникает картина, подобная приведенной на рис. 1.
Рис. 1. Центр управления KDE - общий вид после запуска
Можно видеть, что окно Центра управления состоит из двух фреймов, левый заключает в себе меню, правый же - расшифровку его основных пунктов и настроечные панели к отдельным из них.
Пункты меню отсортированы по алфавиту и в русскоязычном варианте имеют следующий порядок:
- Безопасность и конфиденциальность
- Внешний вид и темы
- Звук и мультимедиа
- Компоненты KDE
- Периферия
- Рабочий стол
- Региональные и специальные возможности
- Сеть и Интернет
- Системное администрирование
- Управление питанием
Рассмотрим все эти пункты последовательно.
Безопасность и конфиденциальность
Смысл компонентов этого пункта вполне ясен из вводных комментариев к ним (рис. 2) - это всякого рода очистка кэшей, шифрование, изменение некоторых параметров пользовательского акаунта. Несколько слов стоит сказать только о так называемом "бумажнике" (kwallet
).
Рис. 2. Безопасность и конфиденциальность
Программа kwallet
(это - оригинальное ее название, не вполне адекватно, по моему мнению, переведенное как "бумажник" - пример того, когда буквализм отнюдь не проясняет сущности термина) представляет собой базу данных для хранения всяческих пользовательских паролей - как локальных, так и удаленных (например, для доступа к ftp-серверам, регистрации на форумах, и так далее), избавляя от необходимости запоминать их. С доступом по отдельному паролю, разумеется - только его и следует помнить. Не знаю уж, насколько эта система действенна для по настоящему конфиденциальных паролей (и жестких условий обеспечения секретности, но вот для хранения регистрационных данных для всякого рода онлайновых сервисов - подходит вполне./p>
Внешний вид и темы
Это - очень обширный пункт меню (рис. 3), через который можно настроить практически все визуальные элементы интерфейса KDE, как то:
- Декорации окон
- Запуск приложений
- Значки
- Темы (подпункт Менеджер тем)
- Стиль
- Фон
- Хранитель экрана
- Цвета
- Шрифты
- Экран-заставка
Рис. 3. Меню настройки внешнего вида KDE
Назначение элементов более или менее понятно из их имен. К сожалению, иерархия их несколько запутана, что усугубляется русским переводом соответствующих подпунктов меню. Поэтому здесь можно говорить или очень много, или ничего (в рассчете, что пользователь со временем сам во всем разберется). Для начала замечу только, что здесь определяются такие визуальные свойства KDE, как пиктограммы управления окнами, цвет и фоновый рисунок рабочего стола, гарнитуры, размер и цвет глобально используемых шрифтов и многое, многое другое.
Главным подпунктом этого меню является Менеджер тем: именно выбор темы определяет характер всех интерфейсных элементов. Однако большинство из них могут после этого быть настроены независимо - с помощью остальных пунктов. Правда, никаких тем (кроме той, что подразумевается по умолчанию), в комплекте KDE и нет. Их нужно отыскать (например, на упоминавшемся ранее сайте http://kde-look.org) и установить самостоятельно. Далее эту тему можно распространить либо на все интерфейсные элементы, либо лишь на некоторые (стиль, например, декорации окон или пиктограммы). Каковых, впрочем, немало имеется и в штатной теме по умолчанию. В общем, все это легче понять, попробовав что-то изменить, чем внятно описать, как и что именно следует менять (тем более, что у каждого будут собственные предпочтения).
Звук и мультимедиа
В этом пункте (рис. 4) можно настроить параметры воспроизведения аудио-компактов и доступа к базе данных оных в Сети, изменить характер системных сообщений в ответ на всякого рода события и, конечно же, сконфигурировать собственно систему воспроизведения звука. Почти все это - интуитивно понятно, только последний пункт заслуживает пары слов.
Рис. 4. Настройка звука
Конечно, здесь можно просто включить/выключить воспроизведение звука (по умолчанию - включено) и установить приорите звуковоспроизводства. Но главное - это выбор звукового устройства (рис. 5).
По умолчанию звуковое устройство (точнее сказать, драйвер оного) определяется автоматически. И, скажем, во FreeBSD это не составляет никаких проблем. Однако в современных ядрах Linux при использовании звуковой системы ALSA автоопределение может привести к конфликтам с собственной звуковой системой KDE (пакетом arts
), так что, возможно, ALSA должна быть выбрана вручную из выпадающего списка.
Компоненты KDE
Настройка компонентов KDE - весьма разнообразна по своему смыслу (рис. 6). Во-первых, это т.н. Быстродействие KDE, под которым подразумевается режим кэширования (в соответствующей панели именуется минимизацией использования памяти - при достаточном ее объеме это можно отключить).
Рис. 6. Меню компонентов KDE
Во-вторых, это Выбор компонентов, что подразумевает смену умолчальных браузера, текстового редактора/просмотрщика, клиента электронной почты, терминала на другие программы, хотя и не любые. Правда, это - именно тот пункт, в который вмешиваться я бы не стал: все используемые тут по умолчанию программы принадлежат к числу лучших в своем классе.
В третьих, это Менеджер сеансов. Здесь устанавливается, нужно ли выводить предупреждение при выходе из сеанса KDE (по пунктам Завершить сеанс контекстного или стартового K-меню), восстанавливать ли при следующем запуске текущее состояние (включая окна открытых приложений и загруженные в них файлы), а также - что собственно должно происходить по выходе из KDE - только ли завершение сеанса, перезагрузка системы или даже выключение машины.
Рассмотрение пункта Настройка компонента Vim предоставляется в качестве самостоятельного упражнения тем из читателей, кто этот редактор использует (причем - в графической его ипостаси, в виде gvim
или kvim
).
Пункт Настройка ресурсов KDE относится ко всякого рода календарным записям (типа дней рождений близких и друзей).
В пункте Привязки файлов устанавливается связь определенных их типов (точнее, масок имен) с тем или иным приложением, например, файлов вида *.txt
- с текстовым редактором, а *.avi
- с медиаплейером (рис. 7). Большинство таких привязок уже выставлены по умолчанию - необходимость в их изменении возникает, скорее всего, при установке новых приложений (например, mplayer
в дополнение к штатным noatun
и kaboodle
). Одна и та же маска файла может быть связана с несколькими приложениями - например, для html-файлов это могут быть браузер konqueror
и web-редактор Quanta
; в этом ом случае приоритет связи определяется порядком перечисления программ и может быть легко изменен.
Рис. 7. Привязка файлов
Смысл пункта Проверка орфографии ясен: здесь устанавливаются программа-спеллчекер (например, ispell
или aspell
), язык словаря (в нашем случае, русский) и набор его символов (например, KOI8-R или CP1251). Очевидно, что соответствующая программа для спеллинга должна быть установлена в системе - сама по себе она в состав KDE не входит. Но раз, задействованная через Центр управления, она будет задействоваться во всех приложениях KDE, в которых спеллинг имеет смысл (в текстовых редакторах, почтовом клиенте, html-редакторе).
Пункт Управление службами выводит панель со списком KDE-специфичных демонов (таких, как упоминавшийся ранее kwallet
) и их статусом (Выполняется/Не запущен). Однако как раз управлять-то большинством из них не получится...
Наконец, пункт Файловый менеджер позволяет определить некоторые свойства программы konqueror
в этом качестве. Некоторые из них (например, гарнитура, размер и цвет шрифта) дублируются собственными настройками konqueror
, о чем я подробно напишу в ближайшей интермедии. Иные же (как кэширование операций копирования и перемещения файлов) присутствуют, как будто бы, только здесь.
Периферия
В этом разделе можно посмотреть и изменить свойства таких устройств, как экран, мышь, клавиатура и так далее (рис. 8). Правда, изменению поддается не так уж много параметров. Для экрана - это его разрешение, баланс цветов и включение/выключение энергосбережения (то есть гашения при простое - не путать со скринсейверами).
Рис. 8. Настройка периферийных устройств
Для клавиатуры здесь мы не найдем возможности смены раскладок (таковые имеют место быть совсем в другом месте), можно лишь включить задержки ее автоповтора и изменить статус NumLock при запуске KDE. Для мыши можно переопределить левую/правую кнопки (для правшей/левшей, соответственно), сменить одинарный щелчок для открытия файлов и каталогов на двойной (как это принято в Windows), изменить вид курсора и установить его акселерацию.
Рабочий стол
Этот раздел посвящен оформлению рабочего пространства в среде KDE как целостности (рис. 9): количества рабочих столов, вид и местоположение главной управляющей панели, представление стартового K-меню (отредактировать его состав можно также через этот пункт), привязку контекстных меню рабочего стола к кнопкам мыши и, наконец, правила поведения окон. Все это в целом более-менее понятно, и к тому же легко изучается эмпирически, так что в детали я вдаваться не буду.
Рис. 9. Настройка оформления и поведения рабочего стола
Однако о чем обязательно нужно сказать чуть подробнее - это о правилах "поднятия" и фокусировки окон. В Windows придание окну фокуса, или его активизация (то есть готовности его реагировать на "мышиные" и клавиатурные события - выделение, ввод и т.д.), и "поднятие" окна (то есть вывода его на первый план) - понятия в большинстве случаев идентичные. В Иксах же окно может быть активным, даже будучи погребено под геологическими напластованиями других окон. Причем и "поднятие", и фокусировка окна не обязательно требуют щелчка на нем мышью - при соответствующих настройках оконного менеджера достаточно навести на окно курсор мыши.
Оценить такую возможность может каждый, кому приходилось, например, редактировать находящийся в окне первого плана html-документ, одновременно перетаскивания в него копии ссылок из открытого в "фоновом" окне браузера. Впрочем, различение фокуса окна и его плана может доставить еще массу дополнительных удобств.
Так вот, в KDE по умолчанию принята схема обращения с окнами a la Windows- то есть фокус и "поднятие" окна одновременно достигаются щелчком в любом его месте. Однако в пункте Поведение окна раздела Рабочий стол такое положение легко изменить: можно установить, чтобы фокус следовал за мышью, при этом окно может как оставаться на "заднем плане", так и "всплывать". Возможны и иные варианты настройки поведения окон, которые читателю предлагается изучить методом ползучего эмпиризма.
Региональные и специальные возможности
Этот раздел также очень важен, и содержит такие пункты (рис. 10):
- KHotKeys - модуль для настройки клавиатурных комбинаций ("горячих клавиш"), служащих для выполнения сложных команды и вызова приложений;
- Привязка клавиш - служит для определения "горячих клавиш" для выполнения простых повседневных действий, таких, как переключение рабочих столов, навигация по открытым окнам и т.д.;
- Раскладка клавиатуры - позволяет менять "умолчальную" раскладку клавиатуры и подключать еще до двух дополнительных;
- Специальные возможности - предназначен для настройки звуковых сигналов, а также использования т.н. "залипающих" и "замедленных" клавиш;
- Страна/область и язык - установка локально-зависимых параметров.
Рис. 10. Региональные и специальные возможности
В комментариях тут нуждается три пункта. Во-первых, Привязка клавиш (рис. 11). Здесь для начала можно выбрать привычную схему "горячих клавиш" - в стиле Windows, например, MacOS, Unix, и так далее. Например, я всегда беру за основу очень удобную схему WindowMaker, при которой переключение между виртуальными десктопами осуществляется комбинацией клавиш Alt+# (где # - номер соответствующего рабочего стола). Затем в рамках выбранной схемы можно скорректировать привычные клавишные комбинации для обыденных действий. Для этого достаточно перейти на закладку Последовательности привязок, выбрать нужное действие из списка, отметить переключатель По выбору и нажать желательную клавишу и клавишную комбинацию.
Рис. 11. Привязки клавиш
Здесь следует учесть, что большинство удобных клавишных комбинаций уже задействованы по умолчанию в любой из предлагаемых на выбор схем. В прежних версиях KDE для того, чтобы переопределить уже использованную комбинацию, нужно было сначала "отвязать" ее от старого действия. То есть - выбрать оное и отметить переключатель Нет. Однако, начиная с версии 3.3.1, в этом больше нет необходимости: при назначении "занятой" клавишной комбинации сразу предлагается отменить ее прежнюю привязку.
Во-вторых, Раскладка клавиатуры. Эта тема будет предметом специального разговора. А пока отмечу, что модуль управления клавиатурой KDE - kxkb
полностью аннулирует все общеиксовые настройки клавиатуры в файле (/etc/X11/XFree86.conf
или /etc/X11/xorg.conf
), позволяя в принципе вообще обходиться без таких нестроек. Однако внимание: лучше не пытаться пока переопределять Иксовые клавиатурные раскладки - иначе очень легко остаться без русских клавиш вообще. Что, конечно, в дальнейшем поправимо - но прочтение следующего раздела избавит от лишних телодвижений.
И в третьих - Страна/область и язык. Кроме собственно страны (например, России) и языка (скажем, русского, используемого для меню, вывода сообщений и прочего), здесь же определяются денежная единица, десятичные разделители, формат даты и времени - все то, что входит в понятие системной локали, плюс кое-какие дополнительные параметры - стандартный формат бумаги (A4 или Letter), система единиц измерения (метрическая или английская), "умолчальное" число десятичных знаков после запятой.
Все локальные параметры настраиваются независимо друг от друга. То есть можно определить страну как Россия, однако, при стойком отвращении к русскоязычным меню, языком по умолчанию назначить английский (вводу/выводу русских букв это не воспрепятствует), в качестве десятичного разделителя указать точку вместо запятой (это требуется некоторым счетным программам), и так далее.
Локально-зависимые параметры KDE далеко перекрывают переменные, описываемые в рамках системной локали. Однако (по крайней мере, для русского языка) они отнюдь не избавляют от необходимости корректного определения системной локали в обычном пользовательском окружении (через профильные файлы данного акаунта или, как это принято во FreeBSD, через определение класса пользователя). В противном случае возможны всякие неожиданности - вплоть до исчезновения символов кириллицы в терминале console
и даже невозможности клавиатурного ввода при переключении на русскую раскладку.
Сеть и Интернет
На содержании этого раздела я останавливаться не буду - представление о нем можно получить из входящих в него пунктов (рис. 12).
Рис. 12. Настройка сети и подключения к Интернету
Системное администрирование
Настройка любого параметра из всех предыдущих разделов Центра управления могла быть выполнены от имени обычного пользователя. В этом же разделе некоторые действия потребуют прав администратора. Впрочем, об этом выводится соответствующее предупреждение, а затем и предложение ввести суперпользовательский пароль. А сами действия (рис. 13) - или вполне тривиальны (установка даты/времени, настройка менеджера входа в систему), или очень специальны (относясь к некоторому специфическому "железу"), или обычно не востребованы (конфигурирование ядра Linux, например - особенно если KDE работает поверх FreeBSD).
Рис. 13. Системное администрирование
Здесь, однако, хотелось бы мне заострить внимание на пункте Установка шрифтов. Конечно, обычно это проделывается для Иксов в целом - записью шрифтовых файлов в подкаталоги каталога /usr/X11R6/lib/X11/fonts
и соответствующих путей - в файл /etc/X11/XF86Config(xorg.conf)
. Что, однако, требует прав администратора. Система же управления шрифтами KDE (kfontinst
- см. рис. 14) а) позволяет обходиться без обще-Иксовых шрифтовых настроек и б) инсталлировать необходимые шрифты от имени обычного пользователя (и только для его личного употребления - установленные таким образом шрифты оказываются в каталоге $/HOME/.fonts
). Еще один шаг на пути полной автономии KDE от оконной системы X...
Рис. 14. KDE допускает установку шрифтов обычным пользователем
Лирическое отступление. Ряд моих знакомых, отбывших в забугорье в поисках лучшей жизни и работающие в тамошних университетах, время от времени пишут мне письма. На русском языке, разумеется (письма на английском от соотечественников, хотя бы и бывших, я не читаю принципиально), но, как правило, латиницей. Что мотивируется тем, что, работая на Unix-машинах, они не имеют административных прав и, соответственно, возможности установить русские шрифты. Так вот, KDE с помощью модуля kfontinst
позволяет легко решить эту проблему.
И еще. Я этого не пробовал, но, теоретически рассуждая, не вижу причин, почему бы благородному зарубежному дону и сам KDE не установить как обычному пользователю в свой домашний каталог, причем, скорее всего, под любым проприетарным Unix'ом, использующим любой коммерческий X-сервер. И в дальнейшем запускать его в качестве десктопа по умолчанию - для этого потребуется только внести соответствующие коррективы в файл $HOME/.xinitrc
в виде абсолютного пути к скрипту startkde
.
Управление питанием
Этот раздел содержит единственный пункт - Аккумулятор ноутбука и, соответственно, только для ноутбуков и предназначен. Здесь можно настроить довольно много вещей - от вида пиктограмм-индикаторов зарядки/разрядки аккумулятора до времени предупреждения о скорой/критичной разрядке и соответствующих им действий (исполнение команд, подача звукового сигнала).
Рис. 15. Управление питанием
Теоретически тут присутствует и вкладка Настройка ACPI, однако на моей Toshiba ее стандартные опции оказались недоступными, а попытка включить дополнительные опции вызвала грозное предупреждение, коему я счел за благо внять.
Интерактивные настройки через Центр управления KDE, естественно, находят свое отражение в соответствующих конфигурационных файлах. И настало время рассмотреть, хотя бы вкратце, их структуру.
Общесистемные конфиги KDE собраны в подкаталоге share
корневого его каталога (обычно - /usr/local/kde
или /opt/kde
. Правда, как обычно, редактировать их не рекомендуется - да они и недоступны для изменения обычным пользователем. Тем не менее, на всякий случай запомним это местоположение - кое-что из содержимого подкаталога ~/kde/share/apps
нам со временем потребуется при настройке отдельных KDE-приложений.
Ну а пользовательские настройки KDE, как всегда, определяются rc-файлами в домашнем каталоге каждого пользователя. Тут в первую голову следует упомянуть основной конфигурационный файл - $HOME/.kderc
. Правда, содержится в нем не так уж и много - имена шрифтов меню, главной панели, рабочего стола и тому подобных интерфейсных элементов, имя моноширинного шрифта, используемого в терминале konsole
и терминальном окне konqueror
(о последнем будет говориться в ближайшей интермедии). Здесь же можно видеть строки, описывающие цвета шрифтов, фона и переднего плана активных и неактивных окон - словом, кое-что из того, что настраивается через меню Внешний вид и темы Центра управления KDE.
Далее, некоторое отношение к конфигурации KDE имеет каталог
$HOME/.fonts
- именно в нем, как уже говорилось, помещаются шрифты, устанавливаемые через Центр управления обычным пользователем.
Главные же настройки KDE сосредоточены в каталоге $HOME/.kde
. Он возникает автоматически при первом запуске этой среды пользователем и постепенно заполняется всякого рода следами жизнедеятельности - кэшами, сокетами, временными файлами. Собственно к конфигурации же KDE имеет отношение два подкаталога - $HOME/.kde/share/config
и $HOME/.kde/share/apps
. Первый, как легко догадаться, содержит собственно конфиги (rc-файлы) всех входящих в KDE приложений, второй же - их более специфические настройки.
В ближайших заметках представление об этих файлах понадобится нам а) для корректной настройки клавиатурных раскладок KDE, и б) для индивидуального конфигурирования некоторых KDE-приложений.
Настройка клавиатуры - благо и проклятие начинающего пользователя KDE. Благо - потому, что возможности этой среды по управлению клавиатурными раскладками существенно превосходят базовые функции, предоставляемые самой оконной системой Икс. Проклятием же это дело может показаться в том случае, если пользователь, впервые берущийся за KDE и выполнивший все формально предписанные по штату действия, вдруг с удивлением обнаруживает, что он не только не получил тех самых дополнительных возможностей, но и утратил способность переключаться с латиницы на кириллицу (или, что еще хуже, наоборот - с кириллицы на латиницу) вообще.
Тем не менее, все не так страшно, как может показаться на первый взгляд. И если ранее (например, в руководствах Алексея Новодворского к первым версиям Mandrake Russian Edition) резонные люди советовали вообще не трогать модуль настройки клавиатуры KDE, во избежание потери базовой русификации Иксов, то ныне им вполне можно пользоваться. Если это, конечно, нужно.
А нужно ли это народу? Как обычно, ответ будет вполне дипломатичный - кому нужно, а кому и нет. В обоснование чего вспомним, как достигается базовая русификация клавиатуры в Иксах и что она дает.
Как явствует из главы 16, сами по себе Иксы (то есть X-сервер) обеспечивают пользователю подключение кириллической раскладки, и не более того. Причем раскладки - одной единственной, примерно соответствующей фабрично русифицированным клавиатурам с DOS-маркировкой клавиш. Что не следует путать с DOS-кодировкой клавиатурного ввода - это название исторически закрепилось за некогда распространенными (а когда-то и единственно наличествующими) в продаже клавиатурами, у которых в кириллице самые востребованные знаки препинания (точка и запятая) располагались на верхнем регистре цифрового ряда клавиш - как на механических пишущих машинках отечественного (и соцлагерного) производства...
Далее, Иксы, позволяя подключить кириллическую раскладку, парадоксальным способом не обеспечивают возможности переключения на нее (или, напротив, с нее на латиницу). Ибо эта самая кириллическая раскладка штатно такого переключателя не содержит.
Историческое отступление: некогда русская раскладка переключатель Lat/Рус имела, и привязан он был к клавише CapsLock. Как сказали бы в Одессе - и кому это мешало? Кому-то, видимо, мешало, потому что начиная, если память не изменяет, с версии XFree86 3.3.4, штатный переключатель из русской раскладки выкинули. То есть пользоваться ею по прямому назначению стало невозможным? - ведь трудно представить себе самого исконно-кондового патриота, не нуждающегося в латинице вообще.
Да, если бы не модуль расширения Иксов, именуемый Xkb Extensions (или просто Xkb). Его подключение (а при любом способе конфигурирования Иксов оно выполняется по умолчанию) обеспечивает такие дополнительные возможности, как:
- использование варианта раскладки (в частности, варианта winkeys, соответствующего маркировке ныне продающихся фабрично русифицированных клавиатур);
- выбор клавиши-переключателя (в отличие от Windows, выбор этот весьма обширен - допустимы фиксируемые модификаторы CapsLock и ScrollLock, почти любые сочетания клавиш Alt, Control и Shift (да еще с различением правых и левых), а также т.н. Win-клавиши (полный список можно посмотреть в файле
/usr/X11R6/lib/X11/xkb/rules/xfree86.lst
);
- назначение индикатора альтернативной (в нашем случае - русской) раскладки, каковым может быть любой "огонек" на клавиатуре - CapsLock, NumLock или ScrollLock, вне зависимости от того, какая клавиша выступает переключателем;
- возможность подключения третьей раскладки клавиатуры;
- всякого рода переопределения клавиш-модификаторов, в том числе и Win-клавиш.
В итоге, казалось бы, непосредственно в Иксах можно получить все, что нужно для счастья русскому (пардон, русскоязычному) человеку. За двумя исключениями:
- переключение раскладок клавиатуры в Иксах, в отличие от Windows, имеет силу для всех приложений сразу; что не всегда может быть удобно - например, при одновременной работе в командной строке (требующей латиницы) и текстовом редакторе с русскоязычным документом;
- с помощью Xkb можно задействовать только три раскладки клавиатуры, и если по ходу дела в русско-латинский (или, что идентично, русско-английский) текст требуется вставлять еще и немецкие умляуты с французскими аксантами, а то и изобильную скандинавскую символику, их оказывается явно мало.
И вот тут-то и приходит на помощь интегрированный в KDE аналог Xkb, который, как нетрудно догадаться, носит имя kxkb
. Так что если ни множество раскладок, ни привязка переключения клавиатуры к некоему приложению (или даже отдельному окну приложения) вам лично не нужны, дальше можете не читать, забыв об kxkb
навсегда и ограничившись корректной настройкой Xkb.
Если же хоть одна из описанных возможностей кажется вам необходимой или полезной - приступим к настройке kxkb
. Только следует учесть - дело это придется доводить до победного конца. Потому что включение этого модуля автоматически аннулирует все настройки, заданные в конфигурационном файле Иксов, и некорректное использование kxkb
может, как уже говорилось, лишить возможности ввода русских букв вообще.
И еще: если необходимо использовать множество клавиатурных раскладок, дело не ограничится настройкой kxkb
, а потребует еще и использования unicode-шрифтов и локали UTF-8. Что, впрочем, к теме настоящей заметки не относится.
И последнее: все описанное ниже основано на личном опыте общения с последними версиями KDE - 3.3.1 и 3.3.2. В более ранних версиях все было чуть-чуть по другому, и не исключено, что и в следующих версиях ситуация будет меняться. Поэтому к моему тексту нужно относиться творчески...
Действуем через KCC
Итак, мы впервые приступаем к настройке клавиатурных раскладок. Для чего запускаем KCC (Центр управления KDE) и следуем по пунктам меню: Региональные и специальные возможности->Раскладки клавиатуры. В правом фрейме окна KCC появляется панель с тремя закладками: Раскладка, Параметры переключения, Параметры XKB (рис. 16), которые мы и рассмотрим последовательно.
Рис. 16. Настройка раскладок клавиатуры через KCC
Как можно видеть из рисунка 16, в момент первого запуска KCC раскладки не активизированы. Чтобы сделать их доступными для загрузки, нужно в первую очередь отметить переключатель Включить раскладки клавиатуры. Что в данном случае следует понимать как подключение модуля kxkb
. После чего из длинного списка слева можно выбрать требуемые раскладки, появляющиеся тем самым в списке задействованных справа (рис. 17).
Рис. 17. Выбор необходимых раскладок клавиатуры
В настоящей заметке я ограничусь рассмотрением самого простого случая - включения латинской ("Американской английской") и русской раскладок. Вариант множественных клавиатурных раскладок остается в качестве самостоятельного упражнения для заинтересованных лиц.
Для начала из выпадающего меню Модель клавиатуры при необходимости вместо умолчальной Стандартная PC 104 клавиши выбираем что-либо более подходящее имеющимся реалиям. Впрочем, в большинстве случаев обычных настольных клавиатур делать этого не следует: эмпирически замечено, что kxkb
лучше всего работает именно со стандартной клавиатурой. И к перебору вариантов приходится прибегать только при наличии чего-либо уж очень экзотического (например, всяких своеобычных ноутбучных клавиатур).
Затем двойным щелчком мыши в левом списке добавляем к умолчальной раскладке Английская США (us) нужную нам - в данном случае это будет Русская (ru). А затем из нижнего выпадающего меню Вариант раскладки выбираем искомый - winkeys. При этом в "командной строке" в нижней части панели высвечиваются выбранные параметры. В нашем примере они будут выглядеть так:
setxkbmap -model pc104 -layout ru -variant winkeys
Далее переходим на к закладке Параметры переключения (рис. 18). Здесь, в соответствие с нормами современной русской (точнее, российской) орфографии, игнорируем переключатель, отвечающий за букву ё (хорошо это или плохо - другое дело, но в книгах и прочих печатных изданиях России принято именно так). Зато, при желании, ставим переключатель Отображать флаг страны. Который, встраиваясь в трей главной панели KDE, эмулирует индикатор текущей раскладки клавиатуры - в виде якобы американского и российского флагов, соответственно.
Рис. 18. Настройка параметров переключения раскладок
Правда, пользы от этого немного, и по двум причинам: а) я лично только при большом напряжении фантазии готов признать появившийся значок за какой-либо флаг вообще, а уж опознавать страну его принадлежности не взялся бы вообще; б) работает этот индикатор обычно только при переключении раскладки мышью, напрочь игнорируя (по крайней мере, у меня так бывало всегда) переключение по назначенной клавише. Так что, поскольку место в трее ограничено, а там и так уже собирается немало значков (и подчас более важных), флаг страны можно проигнорировать.
Теперь - Политика переключения, одна из причина, ради которой вообще стоит связываться с kxkb
. По умолчанию отмечен вариант Глобально - то есть переключение раскладки имеет силу для всех открытых (и вновь открываемых) приложений (если кто помнит, так же было и в Windows 3.1). Что, как я уже говорил, не во всех случаях удобно. И потому можно выбрать одну из следующих возможностей - Приложение, когда переключение раскладки распространяется на данную программу (и все ее экземпляры, открытые в собственных окнах, как это принято в Windows, начиная с 95-й ее инкарнации), или Окно - в этом случае каждый экземпляр программы будет абсолютно автономен в отношении текущей раскладки.
После этого переходим к последней закладке - Параметры XKB (рис. 19). Здесь для начала нужно включить расширения xkb - я уже говорил, что собственно опции Иксового Xkb Extentions аннулируются при подключении kxkb
(точнее, будут аннулированы в момент, когда мы нажмем кнопку Применить. И их следует заменить аналогами из нашего KDE'шного модуля.
Рис. 19. Настройка переключателя раскладок, их индикатора и т.д.
Для чего перво-наперво отмечаем переключатель Сбросить старые параметры, под коими следует понимать опции Xkb, прописанные в файле /etc/X11/XF86Config
(или /etc/X11/xorg.conf
) - чтобы не мешались. Вообще-то, говорят, что это не обязательно (или обязательно не всегда). Но у меня kxkb
нормально работало (после ручной доводки, о которой речь пойдет ниже) только при сбросе старых параметров.
Теперь последовательно выбираем а) клавишу-переключатель (или - комбинацию клавиш, вариантов тут - дюжины полторы, я предпочитаю традиционный CapsLock), б) светодиод для индикации альтернативной раскладки (например, тот же CapsLock) и в) при желании прочие опции (я их не использую и потому не разбирался с ними).
Вот и все - остается только нажать экранную кнопку Применить, чтобы сделанные настройки вступили в силу. И после этого с удивлением обнаружить, что выбранный переключатель ничего не переключает, светодиод - ничего не индицирует, и вообще переключение раскладок возможно только щелчком мышью на том самом флаге, который мы то ли встроили, то ли не встроили в трей... И возникают сакраментальные русские вопросы - кто виноват и что делать...
На первый отвечать я категорически отказываюсь - хотя подозреваю, что дело тут все же в некоторых недоработках, не столько даже самого модуля kxkb
, сколько способа его интерактивной настройки. Странно только, что недоработки эти тянутся из одной версии KDE в другую, а воз и ныне там. Хотя некоторые положительные тенденции и просматриваются.
А на вопрос - что делать, - как обычно, можно ответить двояко: а) снести kxkb
на фиг, или б) бороться до победы ручной правкой конфигурационного его файла.
Переходим к мануальной терапии
Возможно, вам покажется что овчинка (возможность независимого переключения раскладок в разных программах) не стоит выделки (ручной правки конфига). И тогда проще всего отказаться от kxkb
. Только не нужно пытаться делать это через Центр управления - отключая раскладки клавиатуры и расширения Xkb - провозитесь вы долго, а результата, скорее всего, не будет ни малейшего.
И потому самое время обратиться к каталогу $HOME/.kde/share/config
- помните, в прошлом разделе я говорил, что он нам еще понадобится. А потом отыскать в нем файл $HOME/.kde/share/config/kxkbrc
- конфиг модуля kxkb
, просто-напросто удалить его (или переименовать), и перезапустить сессию KDE. По первости среда эта выругается на отсутствие удаленного файла, но Иксовое переключение раскладок придет в норму, а при следующем старте KDE даже и ругани уже не последует...
Тем не менее, первое решение - это капитуляция, а русские, как известно, не задаются (особенно русские POSIX'ивисты). Трудностями их тем более не испугать, так что обращаемся ко второму варианту.
Очевидно, что правке подлежит тот же самый файл $HOME/.kde/share/config/kxkbrc
. Открываем его в любом текстовом редакторе и внимательно изучаем результаты наших предыдущих действий, воплощенные в опции конфигурации. А выглядит они примерно так:
[Layout]
Additional=ru
EnableXkbOptions=true
Includes=
Layout=us
Model=pc104
Options=grp_led:caps,grp:caps_toggle
ResetOldOptions=true
ShowFlag=true
ShowSingle=false
StickySwitching=false
StickySwitchingDepth=1
SwitchMode=WinClass
Use=true
Variants=us(intl),ru(winkeys)
Не смотря на некоторую бессистемность списка опций, на первый взгляд в этом файле все нормально: есть и строка, предписывающая использовать раскладки клавиатуры (Use=true
), модель клавиатуры (Model=pc104
), и добавленная русская раскладка (Additional=ru
) вместе с определением варианта для нее (Variants=us(intl),ru(winkeys)
), и включение аналогов Xkb (EnableXkbOptions=true
), и сброс Иксовых настроек (ResetOldOptions=true
), и демонстрация флага (ShowFlag=true
), и назначение клавиши-переключателя вкупе с индикацией альтернативной раскладки светодиодом (Options=grp_led:caps,grp:caps_toggle
), и привязка раскладки к приложению, как в Windows (SwitchMode=WinClass
). И, тем не менее, никакого переключения не происходит...
И тут мы видим строку Layout=us
. Так вот где таилась погибель kxkb
- переключать-то не на что! И действительно, стоит только изменить ее таким образом:
Layout=us,ru(winkeys)
перезапустить KDE-сессию - и все приходит в норму. Правда, как я уже говорил, на флаг-индикатор переключение раскладки назначенной клавишей никакого влияния не оказывает. Но по мне - так и светодиода для индикации русской раскладки вполне достаточно.
Обращаю внимание, что в строке Layout
для русской раскладки нужно обязательно в скобках указать - winkeys
, иначе то, что мы определили вариант раскладки в одноименной строке, не возымеет никакого действия.
Вот и все. Единственное, что еще следует помнить - после ручной доводки не следует перенастраивать клавиатурную раскладку через KCC - результат может быть непредсказуемым, и сеанс мануальной терапии придется повторить. А в остальном, прекрасная маркиза, все не просто хорошо, а так даже замечательно.
Назад Содержание
Вниз