>Схема каталогов &kde; используется как собственно оболочкой &kde;, так и всеми приложениями &kde;. Дерево каталогов &kde; имеет фиксированную структуру. </para>
<para
>По умолчанию, &kde; использует два дерева каталогов:</para>
<itemizedlist>
<listitem
><para
>Один на общесистемном уровне (например <filename class="directory"
>/opt/kde3</filename
>).</para
></listitem>
<listitem
><para
>И один на уровне пользователя (обычно это <filename class="directory"
> ~/.kde</filename
>)</para
></listitem>
</itemizedlist>
<para
>Как системный администратор, вы можете создать дополнительные деревья каталогов, которые, например, могут использоваться для разных <link linkend="user-profiles"
>профилей</link
></para>
<informalexample
><para
>Например, в &SuSE; &Linux; используется</para>
<itemizedlist>
<listitem
><para
><filename
class="directory"
>$<envar
>HOME</envar
>/.kde</filename
></para
></listitem>
<listitem
><para
><filename class="directory"
>/opt/kde3</filename
> (специфика &SuSE; - в других дистрибутивах это может быть <filename class="directory"
>/usr</filename
> или <filename class="directory"
>/usr/kde3</filename
>).</para
></listitem>
<listitem
><para
><filename class="directory"
>/etc/opt/kde3</filename
> (добавлено работниками &SuSE;).</para
></listitem>
</itemizedlist>
<para
>Если у вас установлена утилита администрирования KIOSK версии 0.7 или более поздней, вы можете узнать, какие деревья каталогов использует KDE, выполнив команду <userinput
><command
>kiosktool-kdedirs</command
> <option
>--check</option
></userinput
></para>
</informalexample>
<para
>При поиске файлов, сам &kde; и все его приложения просматривают все деревья каталогов &kde; (с учётом приоритета). Если файл находится более чем в одном дереве, берётся последний найденный файл. Обычно последним просматривается дерево из домашнего каталога пользователя, т. к. оно имеет наибольший приоритет. Именно в это дерево пользователь имеет право вносить изменения.</para>
>Изменения, внесённые пользователем, будут сохранены в файле <filename class="directory"
>$<envar
>HOME</envar
>/.kde/share/mimelnk/text/plain.desktop</filename
></para>
</informalexample>
<para
>Файлы конфигурации обрабатываются по-другому. Параметры считываются из файлов всех уровней. Если один и тот же параметр встречается в нескольких файлах, то его значение определяется файлом с наивысшим приоритетом.</para>
<informalexample
><para
>Например, если есть два файла со следующим содержимым:</para>
>Переменные различаются, чтобы суперпользователь не мог случайно перезаписать данные из пользовательского каталога $TDEHOME после выполнения команды <command
>В предыдущем примере в каталоге <filename class="directory"
>/opt/kde_staff</filename
> содержались дополнительные параметры и приложения для сотрудников. <quote
>Профили пользователей</quote
> служат для того, чтобы эти каталоги добавлялись только для некоторых явно заданных пользователей. Добавьте в файл <filename
>/etc/kderc</filename
> строки:</para>
<programlisting
>[Directories-staff]
prefixes=/opt/kde_staff
</programlisting>
<para
>Будет создан профиль <quote
>staff</quote
>, для которого добавляется дерево каталогов <filename class="directory"
>/opt/kde_staff</filename
>. Учтите, что в &SuSE; &Linux; используется <filename
>/etc/kde3rc</filename
>, а не <filename
>/etc/kderc</filename
>. Теперь профиль с этим именем можно назначать пользователям.</para>
<para
>Для этого нужно связать пользователей и профили в файле связи, задаваемом в <filename
>/etc/kderc</filename
>:</para>
<programlisting
>[Directories]
userProfileMapFile=/etc/kde-user-profile
</programlisting>
<para
>Теперь администратор может связывать профиль с конкретными пользователями и с целыми группами &UNIX;.</para
>
<para
>Чтобы связать профиль "staff" со всеми пользователями, входящими в группу пользователей &UNIX; "staff_members", добавьте в файл <filename
>/etc/kde-user-profile</filename
> следующие строки:</para>
<programlisting
>[General]
groups=staff_members
[Groups]
staff_members=staff
</programlisting>
<para
>Вы также можете связывать профиль с одним пользователем:</para>
<programlisting
>[Users]
bastian=staff
</programlisting>
</sect1>
<sect1 id="directory-layout-revisited">
<title
>Ещё о схеме каталогов</title>
<para
>Все деревья каталогов, которые использует &kde;, имеют фиксированную структуру. Однако вы можете не беспокоиться о каталогах, которые не относятся ни к одному дереву, или просто не используются. Например, каталоги, в которых хранятся временные файлы, обычно находятся в <filename class="directory"
>. Он используется для управления сеансом. В конце сеанса приложения &kde; сохраняют здесь данные о своём состоянии. Имя файла включает имя приложения и число. Программа управления сеансом, <command
>kcmserver</command
>, при сохранении сеанса записывает эти номера в файл <filename
>ksmserverrc</filename
>.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><filename class="directory"
>share/doc/HTML</filename
></term>
<listitem
><para
>Каталог содержит документацию приложений &kde;. Документы отсортированы по языкам и приложениям. Конечный по иерархии каталог обычно включает как минимум два файла: <filename
>index.docbook</filename
> -- xml-файл DocBook, и <filename
>index.cache.bz2</filename
>, который содержит тот же текст, но в формате &HTML;, сжатый <command
>bzip2</command
>. Файл &HTML; используется программой &khelpcenter;. Если &khelpcenter; не находит файл &HTML;, он генерируется из DocBook автоматически, но этот процесс требует времени.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><filename class="directory"
>share/icons</filename
></term>
<listitem
><para
>В этом каталоге содержатся пиктограммы, отсортированные по теме, размеру и категории использования.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><filename class="directory"
>share/mimelnk</filename
></term>
<listitem
><para
>В этом каталоге хранятся файлы <literal role="extension"
>.desktop</literal
>, которые описывают типы &MIME;. &kde; использует типы &MIME;, чтобы определять тип файлов.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><filename class="directory"
>share/services</filename
></term>
<listitem
><para
>Каталог содержит файлы <literal role="extension"
>.desktop</literal
>, которые описывают службы (сервисы). Службы похожи на приложения, однако они обычно запускаются другими приложениями, а не пользователем. В меню &kde; службы отсутствуют.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><filename class="directory"
>share/servicetypes</filename
></term>
<listitem
><para
>Каталог содержит файлы <literal role="extension"
>.desktop</literal
>, которые описывают типы служб. Тип службы обычно представляет какой-либо интерфейс программирования. Приложения и службы включают в свои файлы <literal role="extension"
>.desktop</literal
> информацию о предоставляемых ими службах.</para
> </listitem
></varlistentry>
<varlistentry>
<term
><filename class="directory"
>share/sounds</filename
></term>
<listitem
><para
>Содержит звуковые файлы.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><filename class="directory"
>share/templates</filename
></term>
<listitem
><para
>Содержит шаблоны файлов различных типов. Шаблон состоит из файла <literal role="extension"
>.desktop</literal
>, который описывает файл и включает ссылку на файл в подкаталоге <filename class="directory"
>.source</filename
>. Эти шаблоны доступны через подменю <guimenu
>Создать новый</guimenu
> меню рабочего стола и менеджера файлов. Когда пользователь выбирает какой-либо пункт меню, соответствующий шаблон копируется в текущий каталог.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><filename class="directory"
>share/wallpapers</filename
></term>
<listitem
><para
>Содержит изображения, которые можно использовать в качестве фона рабочего стола</para
></listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="host-specific-directories">
<title
>Каталоги, зависящие от узла</title
>
<para
>Существует три каталога, имена которых зависят от имени узла. Обычно в других деревьях содержатся символические ссылки на них. Если эти каталоги не существуют, их можно создать с помощью утилиты <command
>Так как право записи в <filename class="directory"
>/tmp</filename
> и <filename class="directory"
>/var/tmp</filename
> имеют все пользователи, возможно, что какой-либо из вышеуказанных каталогов уже существует и принадлежит другому пользователю. В этом случае используйте команду <command
>lnusertemp</command
>. Она создаст новый каталог с альтернативным именем, который будет использоваться KDE.</para>
</sect1>
<sect1 id="configuration-files">
<title
>Файлы конфигурации</title
> <para
>Формат файлов конфигурации &kde; - обычный текст. Файлы содержат пары ключ-значение, которые отсортированы по группам. Кодировка файлов конфигурации &kde; -- <acronym
>UTF</acronym
>-8 (позволяет задавать символы, не входящие в <acronym
>ASCII</acronym
>).</para>
<para
>В начале группы опций находится имя группы, заключённое в квадратные скобки. Концом группы является начало другой группы или конец файла. Записи в начале файла, не отнесённые ни к какой группе, являются настройками по умолчанию.</para>
<informalexample
><para
>Следующий пример является файлом конфигурации, который состоит из двух групп. Первая группа содержит ключи <varname
>LargeCursor</varname
> и <varname
>SingleClick</varname
>, вторая -- <varname
>Show hidden files</varname
> и <varname
>Sort by</varname
>:</para>
<programlisting
>[KDE]
LargeCursor=false
SingleClick=true
</programlisting>
<programlisting
>[KFileDialog Settings]
Show hidden files=false
Sort by=Name
</programlisting>
</informalexample>
<para
>Каждая запись состоит из ключа и значения, разделённых знаком равенства. Имя ключа может содержать пробелы, последующие опции могут быть заключены в квадратные скобки. Часть после знака равенства -- значение опции. Пробелы, обрамляющие знак равенства, и пробелы, следующие за значением, игнорируются. Короче говоря, формат таков:</para>
<programlisting
><replaceable
>параметр</replaceable
>=<replaceable
>значение</replaceable
>
</programlisting>
<para
>Если значение опции должно начинаться со знака пробела или заканчиваться им, вы можете использовать сочетание символов <quote
>\s</quote
>.</para>
<para
>Вот полный список сочетаний символов: <itemizedlist>
<listitem
><para
><token
>\s</token
> вместо символа пробела</para>
</listitem>
<listitem
><para
><token
>\t</token
> вместо символа табуляции</para>
</listitem>
<listitem
><para
><token
>\r</token
> вместо символа перевода каретки</para>
</listitem>
<listitem
><para
><token
>\n</token
> вместо символа новой строки</para>
</listitem>
<listitem
><para
><token
>\\</token
> вместо символа обратной косой черты</para>
</listitem>
</itemizedlist
></para>
<informalexample
><para
>В следующем примере значение опции <varname
>Caption</varname
> начинается с двух пробелов, а значение <varname
>Description</varname
> состоит из трёх строк. (Символы новой строки разделяют строки.)</para>
<programlisting
>[Preview Image]
Caption=\s My Caption
Description=This is\na very long\ndescription.
</programlisting>
</informalexample>
<para
>Пустые строки и строки, начинающиеся со знака диеза (<quote
>#</quote
>), игнорируются. Знак диеза используется для добавления комментариев. Обратите внимание, что при обновлении конфигурационного файла приложением &kde; комментарии <emphasis
>не</emphasis
> сохраняются.</para>
<para
>В подкаталогах <filename class="directory"
>share/config</filename
> различных деревьев каталогов &kde; могут находиться конфигурационные файлы с одинаковыми именами. В этом случае будут использоваться опции из всех файлов. Если один и тот же ключ определён в разных файлах, будет использовано значение из файла, находящегося в каталоге с наивысшим приоритетом. Файлы каталога <filename class="directory"
> всегда имеют наивысший приоритет. Если один и тот же ключ определён несколько раз в одном файле, используется значение, указанное последним.</para>
<informalexample>
<para
>Если файл <filename
>$<envar
>HOME</envar
>/.kde/share/config/foobar</filename
> содержит: <programlisting>
[MyGroup]
Color=red
Shape=circle
</programlisting
> и файл <filename
>/etc/opt/kde3/share/config/foobar</filename
> содержит <programlisting>
[MyGroup]
Color=blue
Position=10,10
</programlisting
>, то результат будет следующим: <programlisting
>[MyGroup]
Color=red
Shape=circle
Position=10,10
</programlisting>
</para>
</informalexample>
<informalexample>
<para
>Если файл <filename
>$<envar
>HOME</envar
>/.kde/share/config/foobar</filename
> содержит <programlisting>
[MyGroup]
Color=red
Shape=circle
[MyGroup]
Color=green
</programlisting
>, файл <filename
>/opt/kde_staff/share/config/foobar</filename
> содержит <programlisting>
[MyGroup]
Color=purple
Position=20,20
</programlisting
> и файл <filename
>/etc/opt/kde3/share/config/foobar</filename
> содержит <programlisting>
[MyGroup]
Color=blue
Position=10,10
</programlisting
>, то результат будет следующим: <programlisting
>[MyGroup]
Color=green
Shape=circle
Position=20,20
</programlisting>
</para>
</informalexample>
<para
>Чтобы пользователи не могли изменять настройки, заданные по умолчанию, их можно пометить как неизменяемые. Вы можете запретить изменение одной настройки, группы или всех настроек файла. Чтобы запретить изменение одного ключа, добавьте после его имени символы <userinput
>[$i]</userinput
>. Пример: <programlisting
>Color[$i]=blue
</programlisting>
</para>
<para
>Чтобы запретить изменение группы настроек, добавьте символы <userinput
>[$i]</userinput
> после её имени. Пример: <programlisting
>[MyGroup][$i]
</programlisting>
</para>
<para
>Чтобы запретить изменение всех настроек, входящих в файл, укажите символы <userinput
>[$i]</userinput
> на отдельной строке. Пример: <programlisting
>[$i]
</programlisting>
</para>
<informalexample>
<para
>Если файл <filename
>$<envar
>HOME</envar
>/.kde/share/config/foobar</filename
> содержит: <programlisting>
[MyGroup]
Color=red
Shape=circle
</programlisting
>, а файл <filename
>/etc/opt/kde3/share/config/foobar</filename
> содержит: <programlisting>
[MyGroup][$i]
Color=blue
Position=10,10
</programlisting
>, то результат будет следующим: <programlisting
>[MyGroup]
Color=blue
Position=10,10
</programlisting>
</para>
</informalexample>
<informalexample
><para
>Если файл <filename
>$<envar
>HOME</envar
>/.kde/share/config/foobar</filename
> содержит: <programlisting>
[MyGroup]
Color=red
Shape=circle
</programlisting
>, файл <filename
>/opt/kde_staff/share/config/foobar</filename
> содержит <programlisting>
[MyGroup]
Color=purple
Shape=rectangle
</programlisting
> и файл <filename
>/etc/opt/kde3/share/config/foobar</filename
> содержит <programlisting>
[MyGroup][$i]
Color=blue
Position=10,10
</programlisting
>, то результат будет следующим: <programlisting
>[MyGroup]
Color=purple
Shape=rectangle
Position=10,10
</programlisting>
</para>
</informalexample>
<para
>С помощью так называемых <quote
>расширений оболочки</quote
> вы можете более гибко задавать настройки по умолчанию. При этом значение ключа может содержать значение переменной окружения и/или вывод команды оболочки. Чтобы включить расширения оболочки для одной записи, добавьте символы <token
>[$e]</token
> в конец имени ключа. Обычно после первого применения расширенная форма записывается в пользовательский файл конфигурации. Чтобы предотвратить это, рекомендуется использовать символы <token
>[$ie]</token
>, в этом случае пользователь не сможет изменить настройку.</para>
<informalexample>
<para
>В следующем примере значение записи <varname
>Host</varname
> определяется выводом программы <command
>hostname</command
>. Эта настройка заблокирована.</para>
<para
>Значение записи <varname
>Email</varname
> определяется значениями переменных $<envar
>USER</envar
> и $<envar
>HOST</envar
>. Когда пользователь <systemitem class="username"
>joe</systemitem
> находится в системе <systemitem class="systemname"
>joes_host</systemitem
>, запись принимает значение <literal
>joe@joes_host</literal
>. Эта настройка не заблокирована.</para>
<programlisting
>[Mail Settings]
Host[$ie]=$(hostname)
Email[$e]=${USER}@${HOST}
</programlisting>
</informalexample>
<para
>Большей части настроек можно ставить в соответствие код языка. В этом случае предпочтение будет отдаваться настройке, связанной с языком, который выбран пользователем. Если выбран язык по умолчанию (американский английский, American English), или нет записи, соответствующей выбранному языку, то используется запись без индекса языка.</para>
<informalexample>
<para
>В следующем примере значение записи <varname
>Caption</varname
> зависит от используемого языка. Если пользователь выбрал русский язык (код <literal
>ru</literal
>), то запись примет значение <quote
>Мой заголовок</quote
>. Во всех остальных случаях будет использоваться значение <quote
>My Caption</quote
>.</para>
<programlisting
>[Preview Image]
Caption=My Caption
Caption[ru]=Мой заголовок
</programlisting>
</informalexample>
<informalexample>
<para
>В этом примере значение записи <varname
>Caption</varname
> зависит от используемого языка. Если пользователь выбрал русский язык (код <literal
>ru</literal
>), то запись примет значение <quote
>Мой заголовок</quote
>. Во всех остальных случаях будет использоваться значение <quote
>My Caption</quote
>.</para>
<programlisting
>[Preview Image]
Caption=My Caption
Caption[ru]=Мой заголовок
</programlisting>
</informalexample>
<para
>Записи конфигурационных файлов полностью нигде не описаны. Ситуация начала меняться в &kde; 3.2. Файлы <filename class="directory"
> команду запустить процесс управления сеансами <command
>ksmserver</command
>, который обеспечивает работу сеанса. Когда этот процесс завершается, пользователь выходит из системы.</para>
</sect2>
</sect1>
<sect1 id="background-processes">
<title
>Фоновые процессы</title>
<para
>Все фоновые процессы &kde; зависят от пользователя: в отличие от системных демонов они не являются общесистемными. Они являются уникальными как для каждого пользователя, так и для каждого дисплея Х-сервера. Существуют следующие процессы:</para>
<variablelist>
<varlistentry>
<term
><command
>dcopserver</command
></term>
<listitem
><para
>Связь между приложениями рабочего стола</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><command
>kded</command
></term>
<listitem
><para
>Демон общих служб (сервисов).</para>
<para
>Запускает обновления базы данных <link linkend="ksycoca"
>Sycoca</link
> при необходимости</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><command
>kcminit</command
></term>
<listitem
><para
>Служба инициализации</para>
<para
>Для подробностей, см. <xref linkend="kcminit"/>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><command
>klauncher</command
></term>
<listitem
><para
>Запуск программ (это <emphasis
>не</emphasis
> диалог, вызываемый по <keycombo action="simul"
>&Alt;<keycap
>F2</keycap
></keycombo
>!)</para>
<para
>Для подробностей, см. <xref linkend="klauncher"/>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><command
>knotify</command
></term>
<listitem
><para
>Пользовательские уведомления.</para>
<para
>Для подробностей, см. <xref linkend="knotify"/>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><command
>ksmserver</command
></term>
<listitem
><para
>Управление сеансами</para>
<para
>Для подробностей, см. <xref linkend="ksmserver"/>.</para>
> открывает все файлы из этого каталога, включая документы, двоичные файлы и файлы <literal role="extension"
>.desktop</literal
>.</para>
<para
>Менеджер сеансов &kde; может восстанавливать предыдущий сеанс. При этом он восстанавливает те приложения в том состоянии, которое существовало в момент сохранения сеанса. Сеансы сохраняются в конфигурационном файле <filename
>ksmserverrc</filename
>, который содержит ссылки на файлы с данными о состоянии приложений (находятся в каталоге <filename class="directory"
> не указано, эта переменная должна указывать на корневой каталог установки &kde;. Позволяет &kde; находить собственные данные, такие как пиктограммы, меню и библиотеки.</para>
> и позволяет указать несколько каталогов, в которых &kde; будет искать собственные данные. Может оказаться полезной, если вы установили некоторые программы не в каталог &kde;.</para
>. Используется, например, программой &konqueror;: если переменная установлена (т.е. программа запущена не из другой графической среды, из &tdesu; и т.п.), то программа остаётся в памяти после закрытия, т. к. вероятность того, что её будут использовать в дальнейшем, выше; если не установлена, то память сразу очищается.</para>
>Чтобы создать ссылку на приложение в виде файла <literal role="extension"
>.desktop</literal
>: Меню рабочего стола - <menuchoice
><guimenu
>Создать</guimenu
><guisubmenu
>Файл</guisubmenu
><guimenuitem
>Ссылка на приложение</guimenuitem
></menuchoice
>. Укажите детали в появившемся диалоговом окне. Более простой способ - перетащите на рабочий стол пункт меню &kde; и выберите Копировать сюда или Создать ссылку (создаёт символьную ссылку).</para>
<!-- Perhaps legacy and translated should be the other way around, but -->
<!-- this is how it appears in Waldo's presentation. Need to check -->
<!-- this -->
<programlisting
>[Desktop Entry]<co id="boilerplate"/>
Encoding=UTF-8
GenericName=IRC Client<co id="generic-desc"/>
GenericName[af]=Irc Kliët
GenericName[de]=IRC Programm
...
GenericName[zu]=Umthengi we IRC<co id="legacy"/>
SwallowExec=<co id="translated"/>
Name=KSirc
Name[af]=Ksirc
Name[de]=KSirc
...
</programlisting>
<calloutlist>
<callout arearefs="boilerplate"
><para
>"Шаблон" (Boiler plate)</para>
</callout>
<callout arearefs="generic-desc"
><para
>Базовое описание, не отображается</para>
</callout>
<callout arearefs="legacy"
><para
>Для совместимости, можно удалить</para>
</callout>
<callout arearefs="translated"
><para
>Переведённое название в том виде, как оно отображается на рабочем столе</para>
> определяет имя и пиктограмму этого меню. Меню включает все приложения, которые были отнесены к категории <literal
>X-SuSE-Art</literal
>. Примеры категорий: <programlisting
>Categories=Qt;KDE;Education;X-SuSE-Art
</programlisting
></para>
<para
>Запись <filename
>suse-edutainment-art.directory</filename
> определяет имя и пиктограмму этого меню: <programlisting
>[Desktop Entry]
Name=Art and Culture
Icon=kcmsystem
</programlisting>
</para>
</informalexample>
</sect2>
<sect2 id="common-pitfalls">
<title
>Типичные ошибки</title>
<para
>Приложения, <emphasis
>не</emphasis
> входящие в меню, <emphasis
>не</emphasis
> могут быть ассоциированы с файлами и не учитываются другими приложениями. Если вы удаляете приложение из меню, &kde; считает, что вы не хотите его использовать.</para>
<para
>Если вы не хотите, чтобы приложение отображалось в меню, поместите его в меню <filename
>.hidden</filename
> или в отдельное меню с включённой опцией <programlisting>
>, изменения в наборе приложений - в <filename class="directory"
>~/.local/share/applications/</filename
>, изменения подменю (имена, значки) - в <filename class="directory"
>~/.local/share/desktop-directories/</filename
>. Утилита администратора KIOSK использует &kmenuedit; и копирует внесённые изменения в профиль пользователя или в общесистемные настройки. </para>
</sect2>
</sect1>
<!-- This section might be redundant. If it isn't, it needs some screenies -->
<sect1 id="kde-panel">
<title
>Панель &kde;</title>
<para
>Панель &kde; (&kicker;) имеет модульную структуру. Она включает следующие компоненты: <itemizedlist>
<listitem
><para
>Аплеты</para
></listitem>
<listitem
><para
>Кнопки приложений</para
></listitem>
<listitem
><para
>Специальные кнопки</para
></listitem>
</itemizedlist>
</para>
<para
>По умолчанию панель содержит следующие аплеты: <itemizedlist
> <listitem
><para
>Переключение рабочих столов</para
></listitem
> <listitem
><para
>Панель задач</para
></listitem
> <listitem
><para
>Системный лоток</para
></listitem
> <listitem
><para
>Часы</para
></listitem
> </itemizedlist
> и следующие специальные кнопки: <itemizedlist>
<listitem
><para
>Меню &kde;</para
></listitem>
<listitem
><para
>Кнопка рабочего стола</para
></listitem>
</itemizedlist>
</para>
<para
>Добавлены также кнопки различных приложений: <itemizedlist>
<listitem
><para
>Кнопка Домой</para
></listitem>
<listitem
><para
>Кнопка браузера</para
></listitem>
<listitem
><para
>Кнопка KMail</para
></listitem>
</itemizedlist>
</para>
</sect1>
<sect1 id="file-associations">
<title
>Связи файлов</title>
<para
>Связи файлов ставят в соответствие типу файлов одно или несколько приложений. Тип файла определяется его типом &MIME;. Типы &MIME;, известные &kde;, хранятся в <filename class="directory"
>Оба приложения могут открывать файлы типа image/gif. Какое будет использовано для того, чтобы открывать файлы <literal role="extension"
>.gif</literal
>?</para>
<para
>Приложение с наибольшим приоритетом! <filename
>kview.desktop</filename
> содержит запись <programlisting>
InitialPreference=3
</programlisting
>, в то время как <filename
>kuickshow.desktop</filename
> содержит запись <programlisting>
InitialPreference=6
</programlisting
>. Поэтому для открытия файлов <literal role="extension"
>.gif</literal
> будет использовано &kuickshow;. </para>
<para
>Как работать с &kview; по умолчанию?</para>
<para
>Пользователь может изменять связи файлов в Центре управления. Изменения хранятся в <filename
>$<envar
>HOME</envar
>/.kde/share/config/profilerc</filename
>. Чтобы применить настройки к нескольким пользователям, скопируйте этот файл в личные файлы настроек каждого пользователя или в глобальный каталог настроек &kde;.</para>
</informalexample>
</sect1>
</chapter>
<chapter id="locking-down-kde">
<title
>Блокировка настройки &kde;</title>
<sect1 id="how-it-works-the-basics">
<title
>Как это работает - основы</title>
<para
>Возможности блокировки настройки &kde; основаны на следующих методах:</para>
<itemizedlist>
<listitem
><para
><link linkend="immutable-configuration-options"
>Сделать опции настройки неизменяемыми</link
></para
></listitem>
<listitem
><para
><link linkend="action-restrictions"
>Запретить отдельные действия</link
></para
></listitem>
<listitem
><para
><link linkend="url-restrictions"
>Запретить доступ к отдельным адресам (&URL;)</link
></para
></listitem>
<listitem
><para
><link linkend="configuration-modules"
>Запретить доступ к отдельным модулям настройки</link
></para
></listitem>
</itemizedlist>
</sect1>
<sect1 id="immutable-configuration-options">
<title
>Неизменяемые настройки</title>
<subtitle
>Блокировка настройки &kde;</subtitle>
<para
>Запрещая изменение некоторых настроек, администратор может установить настройки системы по умолчанию, которые пользователь не сможет изменить.</para>
<para
>Неизменяемые настройки будут перекрывать пользовательские.</para>
<para
>Вы можете запрещать изменение одной настройки, группы настроек или файла конфигурации.</para>
<para
>Все настройки неизменяемого файла или группы неизменяемы, даже если администратор не указал для них значение по умолчанию.</para>
<note
><para
>Не все приложения поддерживают неизменяемые настройки. Даже если пользователь не имеет возможности вносить постоянные изменения в настройки, он может изменить их на время через окно настроек приложения.</para
></note>
</sect1>
<sect1 id="action-restrictions">
<title
>Ограничения на действия</title>
<para
>Приложения &kde; основаны на концепции действий. Действия могут быть запущены несколькими способами, обычно через меню приложения, панель управления или комбинацию клавиш. Пример действия - <action
>сохранить документ</action
>. Если вы знаете внутреннее имя действия, вы можете запретить его. Пункты, соответствующие запрещённым действиям, не отображаются в меню и панелях инструментов. Внутреннее имя действия <action
>сохранить документ</action
> - <option
>action/file_save</option
>. Вы также можете применять более абстрактные запреты, чтобы ограничить функции, которые не соответствуют только одному действию. Например, запрет <option
>shell_access</option
> отключает все функции, которые предоставляют пользователю доступ к оболочке &UNIX;.</para>
<example>
<title
>Ограничение доступа пользователей к оболочкам</title>
<para
>Чтобы запретить доступ пользователя к оболочке, следует запретить действие <option
>shell_access</option
>. Добавьте в файл <filename
>kdeglobals</filename
> следующие строки: </para
>
<screen
>[KDE Action Restrictions]
shell_access=false</screen>
<para
>Так как это ограничение повлияет на меню &kde; и на доступные приложения, мы должны обновить базу данных sycoca:</para>
>Возможность запуска пользователем второго сеанса Х (см. документацию &kdm;)</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>opengl_screensavers</option
></term>
<listitem
><para
>Определяет, может ли пользователь запускать хранители экрана, использующие OpenGL.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>manipulatescreen_screensavers</option
></term>
<listitem
><para
>Разрешать запуск хранителей экрана, не занимающих весь монитор.</para
></listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="url-restrictions">
<title
>Ограничения &URL;</title>
<para
>Есть три типа ограничений, применяемых к адресам &URL;:</para>
<variablelist>
<varlistentry>
<term
>list</term>
<listitem
><para
>Определяет, может ли пользователь получать список файлов каталога.</para
></listitem>
</varlistentry>
<varlistentry>
<term
>open</term>
<listitem
><para
>Определяет доступ к отдельным адресам &URL;</para
></listitem>
</varlistentry>
<varlistentry>
<term
>Redirect</term>
<listitem
><para
>Определяет, может ли один адрес &URL; открывать другой &URL;, как автоматически, так и через гиперссылку.</para
></listitem>
</varlistentry>
</variablelist>
<para
>Правила проверяются в том порядке, в каком они перечислены. Возможность доступа к &URL; определяет последнее правило, которое к нему применимо.</para>
<para
>Следующие правила запрещают открывать адреса http и https вне домена <systemitem class="domainname"
>Первые четыре запятые означают пропуск проверки критериев &URL;. Эта часть применяется только к критериям перенаправления.</para
>
</callout>
<callout arearefs="url_rule1"
><para
>Правило <option
>rule_1</option
> запрещает открывать адреса http и https</para
></callout>
<callout arearefs="url_rule2"
><para
>Правило <option
>rule_2</option
> позволяет открывать адреса http и https в домене <systemitem class="domainname"
>.ourcompany.com</systemitem
>. Обратите внимание, что шаблон <token
>*</token
> можно применять только в начале домена.</para
></callout>
</calloutlist>
<para
>Следующие правила запрещают пользователю просматривать каталоги локальной файловой системы вне его домашнего каталога ($<envar
>HOME</envar
>):</para>
<screenco
><areaspec>
<area id="home_rule1" coords="3"/>
<area id="home_rule2" coords="4"/>
</areaspec>
<screen
>[KDE URL Restrictions]
rule_count=2
rule_1=list,,,,file,,,false
rule_2=list,,,,file,,$HOME,true</screen
></screenco>
<calloutlist>
<callout arearefs="home_rule1"
><para
>Правило <option
>rule_1</option
> запрещает получать список файлов любого локального каталога</para
></callout>
<callout arearefs="home_rule2"
><para
>Правило <option
>rule_2</option
> позволяет получать список файлов любого подкаталога папки $<envar
>HOME</envar
>.</para
></callout>
</calloutlist>
<para
>Переменные $<envar
>HOME</envar
> и $<envar
>TMP</envar
> соответствуют домашнему каталогу пользователя и каталогу временных файлов &kde; для этого пользователя, например, <filename class="directory"
>/tmp/kde-bastian</filename
></para>
<para
>Следующие правила запрещают пользователю открывать локальные файлы вне каталога $<envar
>HOME</envar
>:</para>
<screenco
><areaspec>
<area id="local_rule1" coords="3"/>
<area id="local_rule2" coords="4"/>
<area id="local_rule3" coords="5"/>
</areaspec>
<screen
>[KDE URL Restrictions]
rule_count=3
rule_1=open,,,,file,,,false
rule_2=open,,,,file,,$HOME,true
rule_3=open,,,,file,,$TMP,true</screen
></screenco>
<calloutlist>
<callout arearefs="local_rule1"
><para
>Правило <option
>rule_1</option
> запрещает открывать любой локальный файл</para
></callout>
<callout arearefs="local_rule2"
><para
>Правило <option
>rule_2</option
> разрешает открывать файлы каталога $<envar
>HOME</envar
>.</para
></callout>
<callout arearefs="local_rule3"
><para
>Правило <option
>rule_3</option
> позволяет открывать файлы пользовательского каталога временных файлов &kde;. Это необходимо для некоторых приложений &kde;, которые вначале загружают файл в этот каталог, а потом открывают его.</para
></callout>
</calloutlist>
<para
>Настройки перенаправления определяют, могут ли документы перенаправлять пользователя, автоматически или через гиперссылку, по другому адресу. Правила по умолчанию обеспечивают некоторую безопасность. Например, документы, расположенные в Интернете, не могут ссылаться на локальные файлы компьютера.</para>
<para
>Например, если мы хотим разрешить документам сервера <systemitem class="systemname"
>www.mycompany.com</systemitem
>, расположенного в локальной сети, ссылаться на локальные файлы, мы можем добавить следующее правило:</para>
>Протоколы :local могут ссылаться на любые другие протоколы</para
></listitem>
<listitem
><para
>К протоколам :internet обращаться можно всегда</para
></listitem>
<listitem
><para
>Некоторые протоколы не входят ни в одну группу, например, fish:/.</para
></listitem>
</itemizedlist>
</sect1>
<sect1 id="configuration-modules">
<title
>Модули настройки</title>
<para
>Модули настройки &kde; позволяют настроить различные аспекты окружения &kde;. Модули настройки отображаются в Центре управления и/или в диалоговом окне настройки приложения.</para>
<informalexample>
<para
>Модуль настройки прокси отображается как в Центре управления, так и в диалоговом окне <guilabel
>Настроить Konqueror</guilabel
> приложения &konqueror;</para>
<para
>Отдельные модули настройки можно запустить, используя команду <command
<!-- This section appears to need quite a lot of additional words to -->
<!-- make sense. Perhaps it would be better to comment it out if it -->
<!-- can't be updated before the next release (Phil) -->
<!-- FIXME: Commented it out until it's got some more content fleshing it -->
<!-- out (Lauri)
<sect1 id="lazy-admin-overview">
<title
>Overview</title>
<para>
The Lazy Admin
Overview
Deployment
How to get &kde; available on many clients
Remote Desktop Sharing
Take a look at someone else desktop
DCOP
The DCOP command line tool makes it possible to control &kde; applications from the command line
KDialog
A versatile tool to use standard &kde; dialogs in your own scripts
Deployment
Thin Clients
Installing Software
= AutoYaST
= KickStart
Maintaining Settings
= /etc/kderc, other settings
= Use rsync to copy files around
= Shared filesystem such as NFS
o store profiles themselves on NFS
http://www.suse.de/~nashif/autoinstall/index.html
</para>
</sect1>
-->
<sect1 id="remote-desktop-sharing">
<title
>Общий рабочий стол</title>
<para
>Данная функциональность позволяет удалённым пользователям просматривать содержимое вашего экрана и, возможно, управлять вашим компьютером. Для этого необходимо послать пользователю приглашение, возможно защищенное паролем. Это полезно для технической поддержки или для демонстрации какой-либо процедуры.</para>
<para
>Для этого требуются две программы: &krfb; (удалённый framebuffer, VNC-сервер) и &krdc; (удалённое соединение, VNC-клиент).</para>
<para
>При отправке приглашения, создаётся единоразовый пароль, по умолчанию действительный только на одно успешное соединение. Его действие также истекает через час после отсутствия попыток (первого) соединения.</para>
<para
>Входящие соединения обрабатываются модулем kinetd kded. С помощью команды <userinput
><command
>dcop</command
> kded kinetd services</userinput
> можно увидеть, запущен ли он. &krfb; по умолчанию ожидает соединений на порт 5900. При входящем соединении потребуется подтверждение.</para>
<!-- TODO: Write a bit more here, with a walk through maybe? -->
</sect1>
<sect1 id="kde-diy">
<title
>Создание вашего собственного инструментария</title>
<sect2 id="dcop">
<title
>DCOP</title>
<para
>Desktop COmmunication Protocol, <acronym
>DCOP</acronym
> – - это простой механизм взаимодействия процессов. <acronym
>DCOP</acronym
> служит для взаимодействия с уже работающими программами. В &kde; входят две программы для работы с <acronym
>--error 'Не удаётся открыть почтовый ящик'</option
>.</para>
<para
>Можно также создавать окна сообщений с кнопками Да и Нет.</para>
<screen
><command
>kdialog</command
> <option
>--yesno 'Подключиться к Internet?'</option
> <command
>echo</command
> <returnvalue
>$?</returnvalue
></screen>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Возвращаемое значение</entry>
<entry
>Что означает</entry>
</row>
</thead>
<tbody>
<row
><entry
>0</entry
><entry
>Да, OK, Продолжить</entry
></row>
<row
><entry
>1</entry
><entry
>Нет</entry
></row>
<row
><entry
>2</entry
><entry
>Отмена</entry
></row>
</tbody>
</tgroup>
</informaltable>
<para
>Обязательно сохраните результат в переменной, если он вам ещё будет нужен. Следующая команда присвоит значение $?. Здесь также допускается применять <option
>--dontagain</option
>, чтобы запомнить выбор пользователя и больше не задавать ему этот вопрос.</para>