Translation by Artem Sereda with my minor changes
[kde-ru.git] / docs / kdebase-runtime / userguide / kde-for-admins.docbook
blobf938c36cda3455cb8e0ed8b464565b973b0f10df
1 <part id="kde-for-administrators">
2 <partinfo>
3 <authorgroup>
4 <author
5 ><personname
6 > <firstname
7 >Waldo</firstname
8 > <surname
9 >Bastian</surname
10 > </personname
11 > <email
12 >bastian@kde.org</email
13 > </author>
14 <othercredit role="reviewer"
15 >&Philip.Rodrigues; &Philip.Rodrigues.mail; </othercredit>
16 </authorgroup>
17 </partinfo>
19 <title
20 >&kde; для системных администраторов</title>
22 <chapter id="kde-internals">
23 <title
24 >Внутреннее устройство &kde;</title>
26 <sect1 id="kde-for-admins-overview">
27 <title
28 >Обзор</title>
29 <para
30 >в процессе написания</para>
31 </sect1>
33 <sect1 id="directory-layout">
34 <title
35 >Схема каталогов</title>
37 <para
38 >Схема каталогов &kde; используется как собственно оболочкой &kde;, так и всеми приложениями &kde;. Дерево каталогов &kde; имеет фиксированную структуру. </para>
40 <para
41 >По умолчанию, &kde; использует два дерева каталогов:</para>
43 <itemizedlist>
44 <listitem
45 ><para
46 >Один на общесистемном уровне (например <filename class="directory"
47 >/opt/kde3</filename
48 >).</para
49 ></listitem>
50 <listitem
51 ><para
52 >И один на уровне пользователя (обычно это <filename class="directory"
53 > ~/.kde</filename
54 >)</para
55 ></listitem>
56 </itemizedlist>
58 <para
59 >Как системный администратор, вы можете создать дополнительные деревья каталогов, которые, например, могут использоваться для разных <link linkend="user-profiles"
60 >профилей</link
61 ></para>
63 <informalexample
64 ><para
65 >Например, в &SuSE; &Linux; используется</para>
67 <itemizedlist>
68 <listitem
69 ><para
70 ><filename
71 class="directory"
72 >$<envar
73 >HOME</envar
74 >/.kde</filename
75 ></para
76 ></listitem>
77 <listitem
78 ><para
79 ><filename class="directory"
80 >/opt/kde3</filename
81 > (специфика &SuSE; - в других дистрибутивах это может быть <filename class="directory"
82 >/usr</filename
83 > или <filename class="directory"
84 >/usr/kde3</filename
85 >).</para
86 ></listitem>
87 <listitem
88 ><para
89 ><filename class="directory"
90 >/etc/opt/kde3</filename
91 > (добавлено работниками &SuSE;).</para
92 ></listitem>
93 </itemizedlist>
95 <para
96 >Если у вас установлена утилита администрирования KIOSK версии 0.7 или более поздней, вы можете узнать, какие деревья каталогов использует KDE, выполнив команду <userinput
97 ><command
98 >kiosktool-kdedirs</command
99 > <option
100 >--check</option
101 ></userinput
102 ></para>
103 </informalexample>
105 <para
106 >При поиске файлов, сам &kde; и все его приложения просматривают все деревья каталогов &kde; (с учётом приоритета). Если файл находится более чем в одном дереве, берётся последний найденный файл. Обычно последним просматривается дерево из домашнего каталога пользователя, т. к. оно имеет наибольший приоритет. Именно в это дерево пользователь имеет право вносить изменения.</para>
108 <informalexample>
109 <para
110 >Например, информация о &MIME;-типе <literal
111 >text/plain</literal
112 > будет искаться в следующих файлах:</para>
114 <itemizedlist>
115 <listitem
116 ><para
117 ><filename
118 class="directory"
119 >$<envar
120 >HOME</envar
121 >/.kde/share/mimelnk/text/plain.desktop</filename
122 ></para
123 ></listitem>
124 <listitem
125 ><para
126 ><filename
127 class="directory"
128 >/opt/kde3/share/mimelnk/text/plain.desktop</filename
129 ></para
130 ></listitem>
131 <listitem
132 ><para
133 ><filename
134 class="directory"
135 >/etc/opt/kde3/share/mimelnk/text/plain.desktop</filename
136 ></para
137 ></listitem>
138 </itemizedlist>
140 <para
141 >Изменения, внесённые пользователем, будут сохранены в файле <filename class="directory"
142 >$<envar
143 >HOME</envar
144 >/.kde/share/mimelnk/text/plain.desktop</filename
145 ></para>
146 </informalexample>
148 <para
149 >Файлы конфигурации обрабатываются по-другому. Параметры считываются из файлов всех уровней. Если один и тот же параметр встречается в нескольких файлах, то его значение определяется файлом с наивысшим приоритетом.</para>
151 <informalexample
152 ><para
153 >Например, если есть два файла со следующим содержимым:</para>
154 <variablelist>
155 <varlistentry
156 ><term
157 ><filename
158 >$<envar
159 >HOME</envar
160 >/.kde/share/config/foobar</filename
161 ></term>
162 <listitem
163 ><programlisting
164 >Color=red
165 Shape=circle
166 </programlisting>
167 </listitem>
168 </varlistentry>
170 <varlistentry>
171 <term
172 ><filename
173 >/etc/opt/kde3/share/config/foobar</filename
174 ></term>
175 <listitem
176 ><programlisting
177 >Color=blue
178 Position=10,10
179 </programlisting>
180 </listitem>
181 </varlistentry>
182 </variablelist>
184 <para
185 >В результате слияния, получится:</para>
187 <programlisting
188 >Color=red
189 Shape=circle
190 Position=10,10
191 </programlisting>
193 </informalexample>
194 </sect1>
196 <sect1 id="specifying-directories">
197 <title
198 >Задание каталогов</title>
200 <para>
202 <segmentedlist>
203 <segtitle
204 >Переменные окружения</segtitle>
205 <segtitle
206 >Пример(ы) настроек</segtitle>
207 <segtitle
208 >Комментарий</segtitle>
210 <seglistitem>
211 <seg
212 ><envar
213 >$KDEHOME</envar
214 ></seg>
215 <seg
216 ><filename class="directory"
217 >~/.kde</filename
218 ></seg>
219 <seg
220 ></seg>
221 </seglistitem>
223 <seglistitem>
224 <seg
225 ><envar
226 >$KDEROOTHOME</envar
227 ></seg>
228 <seg
229 ><filename class="directory"
230 >/root/.kde</filename
231 ></seg>
232 <seg
233 >Переменные различаются, чтобы суперпользователь не мог случайно перезаписать данные из пользовательского каталога $KDEHOME после выполнения команды <command
234 >su</command
235 >.</seg>
236 </seglistitem>
238 <seglistitem>
239 <seg
240 ><envar
241 >$KDEDIR</envar
242 ></seg>
243 <seg
244 ><filename class="directory"
245 >/opt/kde3</filename
246 >, <filename class="directory"
247 >/usr</filename
248 >, <filename class="directory"
249 >/usr/kde3</filename
250 ></seg>
251 <seg
252 >Зависит от дистрибутива. Используется в &kde; 2. Если не установлено, используются значения по умолчанию.</seg>
253 </seglistitem>
255 <seglistitem>
256 <seg
257 ><envar
258 >$KDEDIRS</envar
259 ></seg>
260 <seg
261 ><filename class="directory"
262 >/opt/kde3</filename
263 >, <filename class="directory"
264 >/usr</filename
265 >, <filename class="directory"
266 >/usr/kde3</filename
267 ></seg>
268 <seg
269 >Добавлено в &kde; 3. Может задавать несколько каталогов (разделяются двоеточиями). Если не установлено, используется значение $<envar
270 >KDEDIR</envar
271 ></seg>
272 </seglistitem>
274 </segmentedlist>
275 </para>
276 <para
277 >Задавать их <emphasis
278 >необязательно</emphasis
279 >, значения по умолчанию подходят в большинстве случаев.</para>
280 <para
281 >Как запустить &kde;2 после &kde;3? Задайте $<envar
282 >KDEDIR</envar
283 > для &kde; 2 и $<envar
284 >KDEDIRS</envar
285 > для &kde; 3.</para>
287 <informalexample>
288 <para
289 >Например, для сотрудника университета могут быть заданы следующие параметры:</para>
290 <programlisting
291 >KDEHOME='~/.kde3'
292 KDEROOTHOME='/root/.kde3'
293 KDEDIRS='/opt/kde_staff:/opt/kde3'
294 </programlisting>
296 </informalexample>
298 </sect1>
300 <sect1 id="user-profiles">
301 <title
302 >Профили пользователей</title>
304 <para
305 >В предыдущем примере в каталоге <filename class="directory"
306 >/opt/kde_staff</filename
307 > содержались дополнительные параметры и приложения для сотрудников. <quote
308 >Профили пользователей</quote
309 > служат для того, чтобы эти каталоги добавлялись только для некоторых явно заданных пользователей. Добавьте в файл <filename
310 >/etc/kderc</filename
311 > строки:</para>
313 <programlisting
314 >[Directories-staff]
315 prefixes=/opt/kde_staff
316 </programlisting>
318 <para
319 >Будет создан профиль <quote
320 >staff</quote
321 >, для которого добавляется дерево каталогов <filename class="directory"
322 >/opt/kde_staff</filename
323 >. Учтите, что в &SuSE; &Linux; используется <filename
324 >/etc/kde3rc</filename
325 >, а не <filename
326 >/etc/kderc</filename
327 >. Теперь профиль с этим именем можно назначать пользователям.</para>
329 <para
330 >Для этого нужно связать пользователей и профили в файле связи, задаваемом в <filename
331 >/etc/kderc</filename
332 >:</para>
334 <programlisting
335 >[Directories]
336 userProfileMapFile=/etc/kde-user-profile
337 </programlisting>
339 <para
340 >Теперь администратор может связывать профиль с конкретными пользователями и с целыми группами &UNIX;.</para
343 <para
344 >Чтобы связать профиль "staff" со всеми пользователями, входящими в группу пользователей &UNIX; "staff_members", добавьте в файл <filename
345 >/etc/kde-user-profile</filename
346 > следующие строки:</para>
348 <programlisting
349 >[General]
350 groups=staff_members
351 [Groups]
352 staff_members=staff
353 </programlisting>
355 <para
356 >Вы также можете связывать профиль с одним пользователем:</para>
358 <programlisting
359 >[Users]
360 bastian=staff
361 </programlisting>
363 </sect1>
365 <sect1 id="directory-layout-revisited">
366 <title
367 >Ещё о схеме каталогов</title>
369 <para
370 >Все деревья каталогов, которые использует &kde;, имеют фиксированную структуру. Однако вы можете не беспокоиться о каталогах, которые не относятся ни к одному дереву, или просто не используются. Например, каталоги, в которых хранятся временные файлы, обычно находятся в <filename class="directory"
371 >$<envar
372 >KDEHOME</envar
373 ></filename
374 >.</para>
376 </sect1>
378 <sect1 id="architecture-specific-directories">
379 <title
380 >Каталоги, зависящие от архитектуры</title>
382 <para
383 >Каталоги, зависящие от архитектуры (типа ОС и процессора):</para>
385 <variablelist>
386 <varlistentry>
387 <term
388 ><filename class="directory"
389 >bin</filename
390 ></term>
391 <listitem
392 ><para
393 >Здесь хранятся исполняемые файлы &kde;.</para
394 ></listitem>
395 </varlistentry>
397 <varlistentry>
398 <term
399 ><filename class="directory"
400 >lib</filename
401 ></term>
402 <listitem
403 ><para
404 >Библиотеки &kde;.</para>
405 </listitem>
406 </varlistentry>
408 <varlistentry>
409 <term
410 ><filename class="directory"
411 >lib/kde3</filename
412 ></term>
413 <listitem
414 ><para
415 >В этом каталоге хранятся компоненты, подключаемые модули, и другие объекты, используемые приложениями &kde; 3.<replaceable
416 >x</replaceable
417 > во время работы.</para
418 ></listitem
420 </varlistentry>
421 </variablelist>
423 </sect1>
425 <sect1 id="shared-directories">
426 <title
427 >Общие каталоги</title>
429 <para
430 >Общие каталоги не зависят от архитектуры.</para>
432 <variablelist>
433 <varlistentry>
434 <term
435 ><filename class="directory"
436 >share/applnk</filename
437 ></term>
438 <listitem
439 ><para
440 >Файлы <literal role="extension"
441 >.desktop</literal
442 > меню &kde; (в старых версиях)</para
443 ></listitem>
444 </varlistentry>
446 <varlistentry>
447 <term
448 ><filename class="directory"
449 >share/applications</filename
450 ></term>
451 <listitem
452 ><para
453 >Файлы <literal role="extension"
454 >.desktop</literal
455 > меню &kde; (версия &kde; 3.2 и более поздние)</para>
456 </listitem>
457 </varlistentry>
459 <varlistentry>
460 <term
461 ><filename class="directory"
462 >share/apps</filename
463 ></term>
464 <listitem
465 ><para
466 >Файлы приложений. Каждый подкаталог принадлежит какому-либо приложению, которое хранит в нём дополнительные файлы.</para
467 ></listitem>
468 </varlistentry>
470 <varlistentry>
471 <term
472 ><filename class="directory"
473 >share/config</filename
474 ></term>
475 <listitem
476 ><para
477 >Файлы настроек. Имя файла обычно состоит из имени приложения и букв <quote
478 >rc</quote
479 >. Настройки из файла <filename
480 >kdeglobals</filename
481 > относятся ко всем приложениям.</para
482 ></listitem>
483 </varlistentry>
485 <varlistentry>
486 <term
487 ><filename
488 class="directory"
489 >share/config/session</filename
490 ></term>
491 <listitem
492 ><para
493 >Этот каталог обычно есть только в дереве <filename class="directory"
494 >$<envar
495 >KDEHOME</envar
496 ></filename
497 >. Он используется для управления сеансом. В конце сеанса приложения &kde; сохраняют здесь данные о своём состоянии. Имя файла включает имя приложения и число. Программа управления сеансом, <command
498 >kcmserver</command
499 >, при сохранении сеанса записывает эти номера в файл <filename
500 >ksmserverrc</filename
501 >.</para
502 ></listitem>
503 </varlistentry>
505 <varlistentry>
506 <term
507 ><filename class="directory"
508 >share/doc/HTML</filename
509 ></term>
510 <listitem
511 ><para
512 >Каталог содержит документацию приложений &kde;. Документы отсортированы по языкам и приложениям. Конечный по иерархии каталог обычно включает как минимум два файла: <filename
513 >index.docbook</filename
514 > -- xml-файл DocBook, и <filename
515 >index.cache.bz2</filename
516 >, который содержит тот же текст, но в формате &HTML;, сжатый <command
517 >bzip2</command
518 >. Файл &HTML; используется программой &khelpcenter;. Если &khelpcenter; не находит файл &HTML;, он генерируется из DocBook автоматически, но этот процесс требует времени.</para>
519 </listitem>
520 </varlistentry>
522 <varlistentry>
523 <term
524 ><filename class="directory"
525 >share/icons</filename
526 ></term>
527 <listitem
528 ><para
529 >В этом каталоге содержатся пиктограммы, отсортированные по теме, размеру и категории использования.</para
530 ></listitem>
531 </varlistentry>
533 <varlistentry>
534 <term
535 ><filename class="directory"
536 >share/mimelnk</filename
537 ></term>
538 <listitem
539 ><para
540 >В этом каталоге хранятся файлы <literal role="extension"
541 >.desktop</literal
542 >, которые описывают типы &MIME;. &kde; использует типы &MIME;, чтобы определять тип файлов.</para>
543 </listitem>
544 </varlistentry>
546 <varlistentry>
547 <term
548 ><filename class="directory"
549 >share/services</filename
550 ></term>
551 <listitem
552 ><para
553 >Каталог содержит файлы <literal role="extension"
554 >.desktop</literal
555 >, которые описывают службы (сервисы). Службы похожи на приложения, однако они обычно запускаются другими приложениями, а не пользователем. В меню &kde; службы отсутствуют.</para>
556 </listitem>
557 </varlistentry>
559 <varlistentry>
560 <term
561 ><filename class="directory"
562 >share/servicetypes</filename
563 ></term>
564 <listitem
565 ><para
566 >Каталог содержит файлы <literal role="extension"
567 >.desktop</literal
568 >, которые описывают типы служб. Тип службы обычно представляет какой-либо интерфейс программирования. Приложения и службы включают в свои файлы <literal role="extension"
569 >.desktop</literal
570 > информацию о предоставляемых ими службах.</para
571 > </listitem
572 ></varlistentry>
574 <varlistentry>
575 <term
576 ><filename class="directory"
577 >share/sounds</filename
578 ></term>
579 <listitem
580 ><para
581 >Содержит звуковые файлы.</para
582 ></listitem>
583 </varlistentry>
585 <varlistentry>
586 <term
587 ><filename class="directory"
588 >share/templates</filename
589 ></term>
590 <listitem
591 ><para
592 >Содержит шаблоны файлов различных типов. Шаблон состоит из файла <literal role="extension"
593 >.desktop</literal
594 >, который описывает файл и включает ссылку на файл в подкаталоге <filename class="directory"
595 >.source</filename
596 >. Эти шаблоны доступны через подменю <guimenu
597 >Создать новый</guimenu
598 > меню рабочего стола и обозревателя файлов. Когда пользователь выбирает какой-либо пункт меню, соответствующий шаблон копируется в текущий каталог.</para>
599 </listitem>
600 </varlistentry>
602 <varlistentry>
603 <term
604 ><filename class="directory"
605 >share/wallpapers</filename
606 ></term>
607 <listitem
608 ><para
609 >Содержит изображения, которые можно использовать в качестве фона рабочего стола</para
610 ></listitem>
611 </varlistentry>
613 </variablelist>
615 </sect1>
617 <sect1 id="host-specific-directories">
618 <title
619 >Каталоги, зависящие от узла</title
622 <para
623 >Существует три каталога, имена которых зависят от имени узла. Обычно в других деревьях содержатся символические ссылки на них. Если эти каталоги не существуют, их можно создать с помощью утилиты <command
624 >lnusertemp</command
625 >:</para>
627 <variablelist>
629 <varlistentry>
630 <term
631 ><filename
632 >$<envar
633 >KDEHOME</envar
634 >/socket-$<envar
635 >HOSTNAME</envar
636 ></filename
637 ></term>
638 <listitem
639 ><para
640 >Обычно <filename class="directory"
641 >/tmp/ksocket-$<envar
642 >USER</envar
643 >/</filename
644 >, каталог сокетов &UNIX;</para>
645 </listitem>
646 </varlistentry>
648 <varlistentry>
649 <term
650 ><filename
651 >$<envar
652 >KDEHOME</envar
653 >/tmp-$<envar
654 >HOSTNAME</envar
655 ></filename
656 ></term>
657 <listitem
658 ><para
659 >Обычно <filename class="directory"
660 >/tmp/kde-$<envar
661 >USER</envar
662 >/</filename
663 >, используется для хранения временных файлов.</para>
664 </listitem>
665 </varlistentry>
667 <varlistentry>
668 <term
669 ><filename
670 >$<envar
671 >KDEHOME</envar
672 >/cache-$<envar
673 >HOSTNAME</envar
674 ></filename
675 ></term>
676 <listitem
677 ><para
678 >Обычно <filename class="directory"
679 >/var/tmp/kdecache-$<envar
680 >USER</envar
681 >/</filename
682 >, используется для кэширования файлов.</para>
683 </listitem>
684 </varlistentry>
685 </variablelist>
687 <para
688 >Так как право записи в <filename class="directory"
689 >/tmp</filename
690 > и <filename class="directory"
691 >/var/tmp</filename
692 > имеют все пользователи, возможно, что какой-либо из вышеуказанных каталогов уже существует и принадлежит другому пользователю. В этом случае используйте команду <command
693 >lnusertemp</command
694 >. Она создаст новый каталог с альтернативным именем, который будет использоваться KDE.</para>
696 </sect1>
698 <sect1 id="configuration-files">
699 <title
700 >Файлы конфигурации</title
701 > <para
702 >Формат файлов конфигурации &kde; - обычный текст. Файлы содержат пары ключ-значение, которые отсортированы по группам. Кодировка файлов конфигурации &kde; -- <acronym
703 >UTF</acronym
704 >-8 (позволяет задавать символы, не входящие в <acronym
705 >ASCII</acronym
706 >).</para>
708 <para
709 >В начале группы опций находится имя группы, заключённое в квадратные скобки. Концом группы является начало другой группы или конец файла. Записи в начале файла, не отнесённые ни к какой группе, являются настройками по умолчанию.</para>
711 <informalexample
712 ><para
713 >Следующий пример является файлом конфигурации, который состоит из двух групп. Первая группа содержит ключи <varname
714 >LargeCursor</varname
715 > и <varname
716 >SingleClick</varname
717 >, вторая -- <varname
718 >Show hidden files</varname
719 > и <varname
720 >Sort by</varname
721 >:</para>
723 <programlisting
724 >[KDE]
725 LargeCursor=false
726 SingleClick=true
727 </programlisting>
729 <programlisting
730 >[KFileDialog Settings]
731 Show hidden files=false
732 Sort by=Name
733 </programlisting>
734 </informalexample>
736 <para
737 >Каждая запись состоит из ключа и значения, разделённых знаком равенства. Имя ключа может содержать пробелы, последующие опции могут быть заключены в квадратные скобки. Часть после знака равенства -- значение опции. Пробелы, обрамляющие знак равенства, и пробелы, следующие за значением, игнорируются. Короче говоря, формат таков:</para>
739 <programlisting
740 ><replaceable
741 >параметр</replaceable
742 >=<replaceable
743 >значение</replaceable
745 </programlisting>
747 <para
748 >Если значение опции должно начинаться со знака пробела или заканчиваться им, вы можете использовать сочетание символов <quote
749 >\s</quote
750 >.</para>
752 <para
753 >Вот полный список сочетаний символов: <itemizedlist>
754 <listitem
755 ><para
756 ><token
757 >\s</token
758 > вместо символа пробела</para>
759 </listitem>
760 <listitem
761 ><para
762 ><token
763 >\t</token
764 > вместо символа табуляции</para>
765 </listitem>
766 <listitem
767 ><para
768 ><token
769 >\r</token
770 > вместо символа перевода каретки</para>
771 </listitem>
772 <listitem
773 ><para
774 ><token
775 >\n</token
776 > вместо символа новой строки</para>
777 </listitem>
778 <listitem
779 ><para
780 ><token
781 >\\</token
782 > вместо символа обратной косой черты</para>
783 </listitem>
784 </itemizedlist
785 ></para>
787 <informalexample
788 ><para
789 >В следующем примере значение опции <varname
790 >Caption</varname
791 > начинается с двух пробелов, а значение <varname
792 >Description</varname
793 > состоит из трёх строк. (Символы новой строки разделяют строки.)</para>
795 <programlisting
796 >[Preview Image]
797 Caption=\s My Caption
798 Description=This is\na very long\ndescription.
799 </programlisting>
800 </informalexample>
802 <para
803 >Пустые строки и строки, начинающиеся со знака диеза (<quote
804 >#</quote
805 >), игнорируются. Знак диеза используется для добавления комментариев. Обратите внимание, что при обновлении конфигурационного файла приложением &kde; комментарии <emphasis
806 >не</emphasis
807 > сохраняются.</para>
809 <para
810 >В подкаталогах <filename class="directory"
811 >share/config</filename
812 > различных деревьев каталогов &kde; могут находиться конфигурационные файлы с одинаковыми именами. В этом случае будут использоваться опции из всех файлов. Если один и тот же ключ определён в разных файлах, будет использовано значение из файла, находящегося в каталоге с наивысшим приоритетом. Файлы каталога <filename class="directory"
813 >$<envar
814 >KDEHOME</envar
815 ></filename
816 > всегда имеют наивысший приоритет. Если один и тот же ключ определён несколько раз в одном файле, используется значение, указанное последним.</para>
818 <informalexample>
819 <para
820 >Если файл <filename
821 >$<envar
822 >HOME</envar
823 >/.kde/share/config/foobar</filename
824 > содержит: <programlisting>
825 [MyGroup]
826 Color=red
827 Shape=circle
828 </programlisting
829 > и файл <filename
830 >/etc/opt/kde3/share/config/foobar</filename
831 > содержит <programlisting>
832 [MyGroup]
833 Color=blue
834 Position=10,10
835 </programlisting
836 >, то результат будет следующим: <programlisting
837 >[MyGroup]
838 Color=red
839 Shape=circle
840 Position=10,10
841 </programlisting>
842 </para>
843 </informalexample>
845 <informalexample>
846 <para
847 >Если файл <filename
848 >$<envar
849 >HOME</envar
850 >/.kde/share/config/foobar</filename
851 > содержит <programlisting>
852 [MyGroup]
853 Color=red
854 Shape=circle
855 [MyGroup]
856 Color=green
857 </programlisting
858 >, файл <filename
859 >/opt/kde_staff/share/config/foobar</filename
860 > содержит <programlisting>
861 [MyGroup]
862 Color=purple
863 Position=20,20
864 </programlisting
865 > и файл <filename
866 >/etc/opt/kde3/share/config/foobar</filename
867 > содержит <programlisting>
868 [MyGroup]
869 Color=blue
870 Position=10,10
871 </programlisting
872 >, то результат будет следующим: <programlisting
873 >[MyGroup]
874 Color=green
875 Shape=circle
876 Position=20,20
877 </programlisting>
878 </para>
879 </informalexample>
881 <para
882 >Чтобы пользователи не могли изменять настройки, заданные по умолчанию, их можно пометить как неизменяемые. Вы можете запретить изменение одной настройки, группы или всех настроек файла. Чтобы запретить изменение одного ключа, добавьте после его имени символы <userinput
883 >[$i]</userinput
884 >. Пример: <programlisting
885 >Color[$i]=blue
886 </programlisting>
887 </para>
888 <para
889 >Чтобы запретить изменение группы настроек, добавьте символы <userinput
890 >[$i]</userinput
891 > после её имени. Пример: <programlisting
892 >[MyGroup][$i]
893 </programlisting>
894 </para>
895 <para
896 >Чтобы запретить изменение всех настроек, входящих в файл, укажите символы <userinput
897 >[$i]</userinput
898 > на отдельной строке. Пример: <programlisting
899 >[$i]
900 </programlisting>
901 </para>
903 <informalexample>
904 <para
905 >Если файл <filename
906 >$<envar
907 >HOME</envar
908 >/.kde/share/config/foobar</filename
909 > содержит: <programlisting>
910 [MyGroup]
911 Color=red
912 Shape=circle
913 </programlisting
914 >, а файл <filename
915 >/etc/opt/kde3/share/config/foobar</filename
916 > содержит: <programlisting>
917 [MyGroup][$i]
918 Color=blue
919 Position=10,10
920 </programlisting
921 >, то результат будет следующим: <programlisting
922 >[MyGroup]
923 Color=blue
924 Position=10,10
925 </programlisting>
926 </para>
927 </informalexample>
929 <informalexample
930 ><para
931 >Если файл <filename
932 >$<envar
933 >HOME</envar
934 >/.kde/share/config/foobar</filename
935 > содержит: <programlisting>
936 [MyGroup]
937 Color=red
938 Shape=circle
939 </programlisting
940 >, файл <filename
941 >/opt/kde_staff/share/config/foobar</filename
942 > содержит <programlisting>
943 [MyGroup]
944 Color=purple
945 Shape=rectangle
946 </programlisting
947 > и файл <filename
948 >/etc/opt/kde3/share/config/foobar</filename
949 > содержит <programlisting>
950 [MyGroup][$i]
951 Color=blue
952 Position=10,10
953 </programlisting
954 >, то результат будет следующим: <programlisting
955 >[MyGroup]
956 Color=purple
957 Shape=rectangle
958 Position=10,10
959 </programlisting>
960 </para>
961 </informalexample>
964 <para
965 >С помощью так называемых <quote
966 >расширений оболочки</quote
967 > вы можете более гибко задавать настройки по умолчанию. При этом значение ключа может содержать значение переменной окружения и/или вывод команды оболочки. Чтобы включить расширения оболочки для одной записи, добавьте символы <token
968 >[$e]</token
969 > в конец имени ключа. Обычно после первого применения расширенная форма записывается в пользовательский файл конфигурации. Чтобы предотвратить это, рекомендуется использовать символы <token
970 >[$ie]</token
971 >, в этом случае пользователь не сможет изменить настройку.</para>
973 <informalexample>
974 <para
975 >В следующем примере значение записи <varname
976 >Host</varname
977 > определяется выводом программы <command
978 >hostname</command
979 >. Эта настройка заблокирована.</para>
981 <para
982 >Значение записи <varname
983 >Email</varname
984 > определяется значениями переменных $<envar
985 >USER</envar
986 > и $<envar
987 >HOST</envar
988 >. Когда пользователь <systemitem class="username"
989 >joe</systemitem
990 > находится в системе <systemitem class="systemname"
991 >joes_host</systemitem
992 >, запись принимает значение <literal
993 >joe@joes_host</literal
994 >. Эта настройка не заблокирована.</para>
996 <programlisting
997 >[Mail Settings] 
998 Host[$ie]=$(hostname)
999 Email[$e]=${USER}@${HOST}
1000 </programlisting>
1001 </informalexample>
1003 <para
1004 >Большей части настроек можно ставить в соответствие код языка. В этом случае предпочтение будет отдаваться настройке, связанной с языком, который выбран пользователем. Если выбран язык по умолчанию (американский английский, American English), или нет записи, соответствующей выбранному языку, то используется запись без индекса языка.</para>
1006 <informalexample>
1007 <para
1008 >В следующем примере значение записи <varname
1009 >Caption</varname
1010 > зависит от используемого языка. Если пользователь выбрал русский язык (код <literal
1011 >ru</literal
1012 >), то запись примет значение <quote
1013 >Мой заголовок</quote
1014 >. Во всех остальных случаях будет использоваться значение <quote
1015 >My Caption</quote
1016 >.</para>
1018 <programlisting
1019 >[Preview Image]
1020 Caption=My Caption
1021 Caption[ru]=Мой заголовок
1022 </programlisting>
1023 </informalexample>
1025 <informalexample>
1026 <para
1027 >В этом примере значение записи <varname
1028 >Caption</varname
1029 > зависит от используемого языка. Если пользователь выбрал русский язык (код <literal
1030 >ru</literal
1031 >), то запись примет значение <quote
1032 >Мой заголовок</quote
1033 >. Во всех остальных случаях будет использоваться значение <quote
1034 >My Caption</quote
1035 >.</para>
1037 <programlisting
1038 >[Preview Image]
1039 Caption=My Caption
1040 Caption[ru]=Мой заголовок
1041 </programlisting>
1042 </informalexample>
1044 <para
1045 >Записи конфигурационных файлов полностью нигде не описаны. Ситуация начала меняться в &kde; 3.2. Файлы <filename class="directory"
1046 >$<envar
1047 >KDEDIR</envar
1048 >/share/config.kcfg</filename
1049 > дают формальное описание настроек файлов конфигурации. Программа &kde; Configuration Editor использует их при возможности.</para>
1051 <informalexample>
1052 <para
1053 >Ниже приведён пример файла конфигурации &XML;: <programlisting
1054 ><markup>
1055 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
1056 &lt;!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd"&gt;
1057 &lt;kcfg&gt;
1058     &lt;kcfgfile name="korganizerrc"/&gt;
1059     &lt;group name="General"&gt;
1060          &lt;entry type="Bool" key="Auto Save"&gt;
1061              &lt;label&gt;Enable automatic saving of calendar&lt;/label&gt;
1062              &lt;default&gt;true&lt;/default&gt;
1063          &lt;/entry&gt;
1064          &lt;entry type="Int" key="Auto Save Interval"&gt;
1065              &lt;default&gt;10&lt;/default&gt;
1066          &lt;/entry&gt;
1067     &lt;/group&gt;
1068 &lt;/kcfg&gt;
1069 </markup
1071 </programlisting>
1072 </para>
1073 <para
1074 >То же, что и <programlisting
1075 >[General]
1076 Auto Save=false
1077 Auto Save Interval=25
1078 </programlisting>
1079 </para>
1080 </informalexample>
1082 </sect1>
1084 <sect1 id="kde-startup-sequence">
1085 <title
1086 >Последовательность запуска &kde;</title>
1088 <sect2 id="kdm">
1089 <title
1090 >&kdm;</title>
1092 <para
1093 >Всегда запускается от имени суперпользователя (<systemitem class="username"
1094 >root</systemitem
1095 >)! Использует файлы <filename
1096 >$<envar
1097 >KDEDIR</envar
1098 >/share/config/kdmrc</filename
1099 > и <filename
1100 >/etc/X11/xdm/Xservers</filename
1101 >. Последний содержит записи типа</para>
1103 <programlisting
1104 >:0 local /usr/X11R6/bin/X :0 vt07
1105 </programlisting>
1107 <para
1108 >Другие связанные файлы: </para>
1109 <simplelist>
1110 <member
1111 >раздел [X-*-Core] в <filename
1112 >kdmrc</filename
1113 > </member>
1114 <member
1115 >Конфигурация - <filename
1116 >/etc/X11/xdm/Xsetup</filename
1117 > </member>
1118 <member
1119 >Пользователь вводит логин и пароль. </member>
1120 <member
1121 >Загрузка - <filename
1122 >/etc/X11/xdm/Xstartup</filename
1123 > - подготовка от root </member>
1124 <member
1125 >Сеанс - <filename
1126 >/etc/X11/xdm/Xsession</filename
1127 > - загрузка от пользователя </member>
1128 <member
1129 >= для сеанса KDE: <command
1130 >kde</command
1131 > или <command
1132 >startkde</command
1133 > </member>
1134 <member
1135 >= если имеется <filename
1136 >~/.xsession</filename
1137 > или <filename
1138 >~/.xinitrc</filename
1139 > </member>
1140 <member
1141 >Сброс - <filename
1142 >/etc/X11/xdm/Xreset</filename
1143 > - после завершения сеанса </member>
1144 </simplelist>
1146 </sect2>
1148 <sect2 id="startkde">
1149 <title
1150 >Сценария запуска &kde;: <command
1151 >startkde</command
1152 ></title>
1154 <para
1155 >Запуск &kde; начинается с выполнения сценария <filename
1156 >startkde</filename
1157 >. Обычно его вызывает менеджер дисплея (&kdm;) после авторизации пользователя. В этом сценарии есть две очень важные строки:</para>
1159 <programlisting
1160 >LD_BIND_NOW=true kdeinit +kcminit +knotify иkwrapper ksmserver $KDEWM
1161 </programlisting>
1163 <para
1164 >Первая строка запускает управляющий процесс <command
1165 >kdeinit</command
1166 >. <command
1167 >kdeinit</command
1168 > запускает все остальные процессы &kde;. В выводе команды <command
1169 >ps <option
1170 >aux</option
1171 ></command
1172 > он отображается как <computeroutput
1173 >kdeinit: Running...</computeroutput
1174 >. Аргументы <command
1175 >kdeinit</command
1176 > соответствуют именам запущенных процессов. Символ <token
1177 >+</token
1178 > означает, что <command
1179 >kdeinit</command
1180 > будет ожидать завершения процесса. <command
1181 >kdeinit</command
1182 > запускает <command
1183 >dcopserver</command
1184 >, <command
1185 >klauncher</command
1186 > и <command
1187 >kded</command
1188 >.</para>
1190 <para
1191 >Вторая строка даёт <command
1192 >kdeinit</command
1193 > команду запустить процесс управления сеансами <command
1194 >ksmserver</command
1195 >, который обеспечивает работу сеанса. Когда этот процесс завершается, пользователь выходит из системы.</para>
1197 </sect2>
1198 </sect1>
1200 <sect1 id="background-processes">
1201 <title
1202 >Фоновые процессы</title>
1204 <para
1205 >Все фоновые процессы &kde; зависят от пользователя: в отличие от системных демонов они не являются общесистемными. Они являются уникальными как для каждого пользователя, так и для каждого дисплея Х-сервера. Существуют следующие процессы:</para>
1207 <variablelist>
1208 <varlistentry>
1209 <term
1210 ><command
1211 >dcopserver</command
1212 ></term>
1213 <listitem
1214 ><para
1215 >Связь между приложениями рабочего стола</para>
1216 </listitem>
1217 </varlistentry>
1219 <varlistentry>
1220 <term
1221 ><command
1222 >kded</command
1223 ></term>
1224 <listitem
1225 ><para
1226 >Демон общих служб (сервисов).</para>
1227 <para
1228 >Запускает обновления базы данных <link linkend="ksycoca"
1229 >Sycoca</link
1230 > при необходимости</para>
1231 </listitem>
1232 </varlistentry>
1234 <varlistentry>
1235 <term
1236 ><command
1237 >kcminit</command
1238 ></term>
1239 <listitem
1240 ><para
1241 >Служба инициализации</para>
1242 <para
1243 >Для подробностей, см. <xref linkend="kcminit"/>.</para>
1244 </listitem>
1245 </varlistentry>
1247 <varlistentry>
1248 <term
1249 ><command
1250 >klauncher</command
1251 ></term>
1252 <listitem
1253 ><para
1254 >Запуск программ (это <emphasis
1255 >не</emphasis
1256 > диалог, вызываемый по <keycombo action="simul"
1257 >&Alt;<keycap
1258 >F2</keycap
1259 ></keycombo
1260 >!)</para>
1261 <para
1262 >Для подробностей, см. <xref linkend="klauncher"/>.</para>
1263 </listitem>
1264 </varlistentry>
1266 <varlistentry>
1267 <term
1268 ><command
1269 >knotify</command
1270 ></term>
1271 <listitem
1272 ><para
1273 >Пользовательские уведомления.</para>
1274 <para
1275 >Для подробностей, см. <xref linkend="knotify"/>.</para>
1276 </listitem>
1277 </varlistentry>
1279 <varlistentry>
1280 <term
1281 ><command
1282 >ksmserver</command
1283 ></term>
1284 <listitem
1285 ><para
1286 >Управление сеансами</para>
1287 <para
1288 >Для подробностей, см. <xref linkend="ksmserver"/>.</para>
1289 </listitem>
1290 </varlistentry>
1292 </variablelist>
1294 <sect2 id="kdeinit">
1295 <title
1296 ><command
1297 >kdeinit</command
1298 ></title>
1299 <para
1300 ><command
1301 >kdeinit</command
1302 > запускает другие программы &kde;. <command
1303 >kdeinit</command
1304 > может запускать как обычные программы (бинарные файлы), так и загружаемые модули <command
1305 >kdeinit</command
1306 > (<acronym
1307 >KLM</acronym
1308 >). <acronym
1309 >KLM</acronym
1310 > работают так же, как обычные программы, но могут быть запущены более эффективно. Они находятся в каталоге <filename class="directory"
1311 >$<envar
1312 >KDEDIR</envar
1313 >/lib/kde3</filename
1314 >.</para>
1316 <para
1317 >В выводе команд <command
1318 >top</command
1319 > и <command
1320 >ps</command
1321 > они отображаются как <computeroutput
1322 ><command
1323 >kdeinit</command
1324 ></computeroutput
1325 >. Чтобы узнать действительное имя программы, используйте <command
1326 >top <option
1327 >-c</option
1328 ></command
1329 > или <command
1330 >ps <option
1331 >aux</option
1332 ></command
1333 >:</para>
1335 <screen
1336 ><prompt
1337 >%</prompt
1338 ><userinput
1339 ><command
1340 >ps <option
1341 >aux</option
1342 ></command
1343 ></userinput>
1344 <computeroutput>
1345 waba     23184  0.2  2.1 23428 11124 ?        S    21:41   0:00 kdeinit: Running...
1346 waba     23187  0.1  2.1 23200 11124 ?        S    21:41   0:00 kdeinit: dcopserver --nosid
1347 waba     23189  0.2  2.4 25136 12496 ?        S    21:41   0:00 kdeinit: klauncher
1348 waba     23192  0.7  2.8 25596 14772 ?        S    21:41   0:00 kdeinit: kded
1349 waba     23203  0.8  3.4 31516 17892 ?        S    21:41   0:00 kdeinit:
1350 knotify
1351 </computeroutput
1353 </screen>
1355 <para
1356 >Строка <computeroutput
1357 >kdeinit: Running...</computeroutput
1358 > соответствует основному процессу <command
1359 >kdeinit</command
1360 >. Остальные перечисленные выше процессы были запущены как <acronym
1361 >KLM</acronym
1362 >.</para>
1364 <para
1365 >При запуске <command
1366 >kdeinit</command
1367 > вызывает <command
1368 >dcopserver</command
1369 >, <command
1370 >klauncher</command
1371 >, <command
1372 >kded</command
1373 > и программы, указанные в командной строке в сценарии <command
1374 >startkde</command
1375 >. Обычно это <command
1376 >kcminit</command
1377 > и <command
1378 >knotify</command
1379 >.</para>
1381 </sect2>
1383 <sect2 id="dcopserver">
1384 <title
1385 ><command
1386 >dcopserver</command
1387 ></title>
1389 <para
1390 ><command
1391 >dcopserver</command
1392 > -- демон, обеспечивающий взаимодействие между процессами (&DCOP;) приложений &kde;. Вы можете управлять &DCOP;, используя программу <command
1393 >dcop</command
1394 >. &DCOP; является основой всех приложений &kde;.</para>
1396 <para
1397 >Некоторые связанные файлы:</para>
1399 <variablelist>
1400 <varlistentry>
1401 <term
1402 ><filename
1403 >$<envar
1404 >HOME</envar
1405 >/.DCOPserver_$<envar
1406 >HOSTNAME</envar
1407 >_$<envar
1408 >DISPLAY</envar
1409 ></filename
1410 ></term>
1411 <listitem
1412 ><para
1413 >например, <filename
1414 >.DCOPserver_linux__0</filename
1415 >. Используется $<envar
1416 >DCOPAUTHORITY</envar
1417 ></para>
1418 </listitem>
1419 </varlistentry>
1421 <varlistentry>
1422 <term
1423 ><filename
1424 >/tmp/.ICE-unix/dcop<replaceable
1425 >pid</replaceable
1426 >-<replaceable
1427 >номер</replaceable
1428 ></filename
1429 ></term>
1430 <listitem
1431 ><para
1432 >например, <filename
1433 >dcop7634-1069677856</filename
1434 >. Это файл, на который указывает <filename
1435 >DCOPserver</filename
1436 >.</para>
1437 </listitem>
1438 </varlistentry>
1440 <varlistentry>
1441 <term
1442 ><filename
1443 >$<envar
1444 >HOME</envar
1445 >/.ICEauthority</filename
1446 ></term>
1447 <listitem
1448 ><para
1449 >Сведения об идентификации. Определяется переменной  $<envar
1450 >ICEAUTHORITY</envar
1451 ></para>
1452 </listitem>
1453 </varlistentry>
1454 </variablelist>
1456 </sect2>
1458 <sect2 id="kcminit">
1459 <title
1460 >kcminit</title>
1462 <para
1463 ><command
1464 >kcminit</command
1465 > запускает службы инициализации во время запуска. Они задаются в файлах .desktop приложений или других служб, в строке <varname
1466 >X-KDE-Init</varname
1467 >:</para>
1469 <programlisting
1470 >[Desktop Entry]
1471 Encoding=UTF-8
1472 Exec=kcmshell energy
1473 Icon=energy_star
1474 Type=Application
1475 X-KDE-Library=energy
1476 X-KDE-Init=energy
1477 </programlisting>
1479 <para
1480 >Службы инициализации обычно используются для применения пользовательских настроек к оборудованию.</para>
1482 <para
1483 >Команда <userinput
1484 ><command
1485 >kcminit <option
1486 >--list</option
1487 ></command
1488 ></userinput
1489 > отображает все службы инициализации, <userinput
1490 ><command
1491 >kcminit <replaceable
1492 >имя_сервиса</replaceable
1493 ></command
1494 ></userinput
1495 > - запускает один сервис. Это может быть полезно при устранении проблем, возникающих при запуске.</para>
1497 </sect2>
1499 <sect2 id="klauncher">
1500 <title
1501 ><command
1502 >klauncher</command
1503 ></title>
1505 <para
1506 ><command
1507 >klauncher</command
1508 > - демон, запускающий службы в среде &kde;. Он тесно взаимодействует с главным процессом <command
1509 >kdeinit</command
1510 > (запускает через него новые процессы). Чтобы запустить приложения или службы, программы &kde; связываются с <command
1511 >klauncher</command
1512 > через &DCOP;.</para>
1514 <para
1515 >Самое распространённое сообщение об ошибке: <computeroutput
1516 ><errortext
1517 > KLauncher недоступен через DCOP</errortext
1518 ></computeroutput
1519 >. Это значит, что либо <command
1520 >dcopserver</command
1521 > неправильно работает, либо <command
1522 >klauncher</command
1523 > ошибочно завершился.</para>
1525 <para
1526 >Чтобы перезапустить <command
1527 >klauncher</command
1528 >, перезапустите <command
1529 >kdeinit</command
1530 > из консоли. Перед этим убедитесь, что значения переменных $<envar
1531 >HOME</envar
1532 >, $<envar
1533 >DISPLAY</envar
1534 >, $<envar
1535 >KDEDIR</envar
1536 > и $<envar
1537 >KDEDIRS</envar
1538 > указаны верно.</para>
1540 </sect2>
1542 <sect2 id="knotify">
1543 <title
1544 ><command
1545 >knotify</command
1546 ></title>
1548 <para
1549 >Основная задача <command
1550 >knotify</command
1551 > - заставлять звуковой сервер выполнять звуковые уведомления. Имеются и другие методы уведомления пользователей о чём-либо.</para>
1553 </sect2>
1556 </sect1>
1558 <sect1 id="ksmserver">
1559 <title
1560 >KSMServer</title>
1562 <para
1563 ><command
1564 >ksmserver</command
1565 > - менеджер сеансов &kde;. В начале сеанса он вызывает приложения, настроенные на автозапуск (т. е. в каталоге <filename class="directory"
1566 >$<envar
1567 >KDEDIR</envar
1568 >/share/autostart</filename
1569 > есть соответствующий файл <literal role="extension"
1570 >.desktop</literal
1571 >), и восстанавливает приложения из предыдущего сеанса. Условия автозапуска приложения определяются значением записи <varname
1572 >X-KDE-autostart-condition</varname
1573 > в файле <literal role="extension"
1574 >.desktop</literal
1575 >.</para>
1577 <informalexample>
1578 <para
1579 >Пример файла <filename
1580 >ktip.desktop</filename
1581 >:</para>
1583 <programlisting
1584 >X-KDE-autostart-condition=ktiprc:TipOfDay:RunOnStart:true
1585 </programlisting>
1587 <para
1588 >Это означает, что в файле <filename
1589 >ktiprc</filename
1590 >, в секции <varname
1591 >[TipOfDay]</varname
1592 > указано значение переменной <varname
1593 >RunOnStart</varname
1594 > - <literal
1595 >true</literal
1596 >. Это значение является значением по умолчанию, если запись отсутствует, то есть <application
1597 >ktip</application
1598 > по умолчанию запускается автоматически.</para>
1599 </informalexample>
1601 <para
1602 >Некоторые приложения, которые <command
1603 >ksmserver</command
1604 > запускает автоматически:</para>
1606 <variablelist>
1608 <varlistentry>
1609 <term
1610 ><command
1611 >kdesktop</command
1612 ></term>
1613 <listitem
1614 ><para
1615 >Рабочий стол &kde;</para>
1616 </listitem>
1617 </varlistentry>
1619 <varlistentry>
1620 <term
1621 ><command
1622 >&kicker;</command
1623 ></term>
1624 <listitem
1625 ><para
1626 >Панель &kde;</para>
1627 </listitem>
1628 </varlistentry>
1630 <varlistentry>
1631 <term
1632 ><command
1633 >ktip</command
1634 ></term>
1635 <listitem
1636 ><para
1637 >Программа полезных советов</para>
1638 </listitem>
1639 </varlistentry>
1641 <varlistentry>
1642 <term
1643 ><command
1644 >kwrited</command
1645 ></term>
1646 <listitem
1647 ><para
1648 >Утилита, получающая сигналы, адресованные пользователю</para>
1649 </listitem>
1650 </varlistentry>
1652 <varlistentry>
1653 <term
1654 >&klipper;</term>
1655 <listitem
1656 ><para
1657 >Встроенная в лоток утилита буфера обмена</para>
1658 </listitem>
1659 </varlistentry>
1661 <varlistentry>
1662 <term
1663 ><command
1664 >kalarm</command
1665 ></term>
1666 <listitem
1667 ><para
1668 >Утилита напоминаний</para>
1669 </listitem>
1671 </varlistentry>
1672 </variablelist>
1674 <para
1675 ><command
1676 >kdesktop</command
1677 >, в свою очередь, автоматически запускает приложения из <filename class="directory"
1678 >$<envar
1679 >KDEHOME</envar
1680 >/Autostart</filename
1681 >. <command
1682 >kdesktop</command
1683 > открывает все файлы из этого каталога, включая документы, двоичные файлы и файлы <literal role="extension"
1684 >.desktop</literal
1685 >.</para>
1687 <para
1688 >Менеджер сеансов &kde; может восстанавливать предыдущий сеанс. При этом он восстанавливает те приложения в том состоянии, которое существовало в момент сохранения сеанса. Сеансы сохраняются в конфигурационном файле <filename
1689 >ksmserverrc</filename
1690 >, который содержит ссылки на файлы с данными о состоянии приложений (находятся в каталоге <filename class="directory"
1691 >$<envar
1692 >KDEHOME</envar
1693 >/share/config/session</filename
1694 >). Информация о состоянии &kwin; содержит данные о расположении окон остальных приложений сеанса. </para>
1696 </sect1>
1698 <sect1 id="environment-variables">
1699 <title
1700 >Переменные среды</title>
1702 <para
1703 >Ниже перечислены некоторые наиболее важные переменные среды, используемые &kde;:</para>
1705 <variablelist>
1707 <varlistentry>
1708 <term
1709 >$<envar
1710 >KDEDIR</envar
1711 ></term>
1712 <listitem
1713 ><para
1714 >Если значение <envar
1715 >KDEDIRS</envar
1716 > не указано, эта переменная должна указывать на корневой каталог установки &kde;. Позволяет &kde; находить собственные данные, такие как пиктограммы, меню и библиотеки.</para>
1717 </listitem>
1718 </varlistentry>
1720 <varlistentry
1721 ><term
1722 >$<envar
1723 >KDEDIRS</envar
1724 ></term>
1725 <listitem
1726 ><para
1727 >Перекрывает <envar
1728 >KDEDIR</envar
1729 > и позволяет указать несколько каталогов, в которых &kde; будет искать собственные данные. Может оказаться полезной, если вы установили некоторые программы не в каталог &kde;.</para
1731 </listitem>
1732 </varlistentry>
1734 <varlistentry
1735 ><term
1736 ><envar
1737 >$KDEHOME</envar
1738 ></term
1739 ><listitem
1740 ><para
1741 >Если она не задана, &kde; использует по умолчанию каталог <filename class="directory"
1742 >~/.kde</filename
1743 > для хранения личных данных пользователя.</para>
1744 </listitem>
1745 </varlistentry>
1747 <varlistentry
1748 ><term
1749 >$<envar
1750 >KDEROOTHOME</envar
1751 ></term
1752 ><listitem
1753 ><para
1754 >Если значение не указано, &kde; использует <filename class="directory"
1755 >~root/.kde</filename
1756 > для хранения персональных данных пользователя <systemitem class="username"
1757 >root</systemitem
1758 >. Была введена, чтобы предотвратить случайное затирание данных пользователем после выполнения программы от имени <systemitem class="username"
1759 >root</systemitem
1760 > (<command
1761 >su</command
1762 >).</para>
1763 </listitem>
1764 </varlistentry>
1766 <varlistentry
1767 ><term
1768 >$<envar
1769 >KDEWM</envar
1770 ></term
1771 ><listitem
1772 ><para
1773 >Если значение <envar
1774 >KDEWM</envar
1775 > указано, то сценарий <command
1776 >startkde</command
1777 > будет использовать в качестве менеджера окон &kde; не &kwin;, а указанный менеджер.</para>
1778 </listitem>
1779 </varlistentry>
1781 <varlistentry
1782 ><term
1783 >$<envar
1784 >KDE_LANG</envar
1785 ></term
1786 ><listitem
1787 ><para
1788 >Перекрывает настройки языка в &kde;, например, по команде <userinput
1789 >KDE_LANG=fr kprogram &amp;</userinput
1790 > программа будет запущена во французском переводе (если установлены необходимые файлы).</para>
1791 </listitem>
1792 </varlistentry>
1794 <varlistentry
1795 ><term
1796 >$<envar
1797 >KDE_MULTIHEAD</envar
1798 ></term
1799 ><listitem
1800 ><para
1801 >Установите значение <literal
1802 >true</literal
1803 >, если &kde; выполняется на многопроцессорной системе.</para>
1804 </listitem>
1805 </varlistentry>
1807 <varlistentry
1808 ><term
1809 >$<envar
1810 >KDE_FORK_SLAVES</envar
1811 ></term>
1812 <listitem
1813 ><para
1814 >(начиная с &kde; 3.2.3) Если переменная установлена, то <acronym
1815 >KIO</acronym
1816 >-slave (подчинённые процессы системы ввода-вывода KDE) порождаются самим вызывающим приложением. По умолчанию <acronym
1817 >KIO</acronym
1818 >-slave запускаются посредством <command
1819 >klauncher</command
1820 >/<command
1821 >kdeinit</command
1822 >. Эта опция может быть полезной, если <acronym
1823 >KIO</acronym
1824 >-slave должны выполняться в той же среде, что и само приложение. Пример - программа <application
1825 >Clearcase</application
1826 >.</para>
1827 </listitem>
1828 </varlistentry>
1830 <varlistentry
1831 ><term
1832 >$<envar
1833 >KDE_HOME_READONLY</envar
1834 ></term>
1835 <listitem
1836 ><para
1837 >Укажите значение <literal
1838 >true</literal
1839 >, чтобы показать, что домашний каталог подключён только для чтения.</para>
1840 </listitem>
1841 </varlistentry>
1843 <varlistentry
1844 ><term
1845 >$<envar
1846 >KDE_NO_IPV6</envar
1847 ></term
1848 ><listitem
1849 ><para
1850 >(начиная с &kde; 3.2.3) Установите эту переменную, чтобы выключить поддержку <acronym
1851 >IPv6</acronym
1852 > и работу с <acronym
1853 >DNS</acronym
1854 > через <acronym
1855 >IPv6</acronym
1856 >.</para>
1857 </listitem>
1858 </varlistentry>
1860 <varlistentry
1861 ><term
1862 >$<envar
1863 >KDE_IS_PRELINKED</envar
1864 ></term
1865 ><listitem
1866 ><para
1867 >(начиная с &kde; 3.2.3) Установите эту переменную, чтобы показать системе, что программы и библиотеки &kde; уже предварительно скомпонованы. <command
1868 >kdeinit</command
1869 > будет выключен.</para>
1870 </listitem>
1871 </varlistentry>
1873 <varlistentry
1874 ><term
1875 >$<envar
1876 >KDE_UTF8_FILENAMES</envar
1877 ></term
1878 ><listitem
1879 ><para
1880 >Если переменная установлена, то &kde; предполагает, что имена файлов хранятся в кодировке <acronym
1881 >UTF-8</acronym
1882 >.</para>
1883 </listitem>
1884 </varlistentry>
1886 <varlistentry
1887 ><term
1888 >$<envar
1889 >KDE_FULL_SESSION</envar
1890 ></term
1891 ><listitem
1892 ><para
1893 >(начиная с &kde; 3.2.3) При запуске среды &kde;, переменной автоматически присваивается значение <literal
1894 >true</literal
1895 >. Используется, например, программой &konqueror;: если переменная установлена (т.е. программа запущена не из другой графической среды, из &kdesu; и т.п.), то программа остаётся в памяти после закрытия, т. к. вероятность того, что её будут использовать в дальнейшем, выше; если не установлена, то память сразу очищается.</para>
1896 </listitem>
1897 </varlistentry>
1899 <varlistentry
1900 ><term
1901 >$<envar
1902 >KDESYCOCA</envar
1903 ></term
1904 ><listitem
1905 ><para
1906 >Путь к файлу-кэшу системной конфигурации &kde; (включает имя файла).</para>
1907 </listitem>
1908 </varlistentry>
1910 <varlistentry
1911 ><term
1912 >$<envar
1913 >KDETMP</envar
1914 ></term
1915 ><listitem
1916 ><para
1917 >Позволяет установить каталог для временных файлов, отличный от <filename class="directory"
1918 >/tmp</filename
1919 > (обычно <filename class="directory"
1920 >/tmp/kde-$<envar
1921 >USER</envar
1922 >/</filename
1923 >).</para>
1924 </listitem>
1925 </varlistentry>
1927 <varlistentry
1928 ><term
1929 >$<envar
1930 >KDEVARTMP</envar
1931 ></term
1932 ><listitem
1933 ><para
1934 >Позволяет указать каталог для временных файлов (по умолчанию - <filename class="directory"
1935 >/var/tmp</filename
1936 >).</para>
1937 </listitem>
1938 </varlistentry>
1940 <varlistentry
1941 ><term
1942 >$<envar
1943 >XDG_DATA_HOME</envar
1944 ></term
1945 ><listitem
1946 ><para
1947 >(начиная с &kde; 3.2) Каталог, в котором будут храниться пользовательские данные. По умолчанию - <filename class="directory"
1948 >$<envar
1949 >HOME</envar
1950 >/.local/share</filename
1951 ></para>
1952 </listitem>
1953 </varlistentry>
1955 <varlistentry
1956 ><term
1957 >$<envar
1958 >XDG_DATA_DIRS</envar
1959 ></term
1960 ><listitem
1961 ><para
1962 >(начиная с &kde; 3.2) Определяет порядок каталогов, в которых система будет искать требуемые файлы (после поиска в <filename class="directory"
1963 >$<envar
1964 >XDG_DATA_HOME</envar
1965 ></filename
1966 >). Значение по умолчанию - <literal
1967 >/usr/local/share/:/usr/share/</literal
1968 >.</para>
1970 <para
1971 >&kde; также добавляет каталоги, указанные в переменной $<envar
1972 >KDEDIRS</envar
1973 > и в данных профиля. Используется для файлов <literal role="extension"
1974 >.desktop</literal
1975 > и <literal role="extension"
1976 >.directory</literal
1977 > (пункты меню KDE). Файлы <literal role="extension"
1978 >.desktop</literal
1979 > система ищет в <filename class="directory"
1980 >$<envar
1981 >XDG_DATA_DIRS</envar
1982 >/applications</filename
1983 >, <literal role="extension"
1984 >.directory</literal
1985 > - в $XDG_DATA_DIRS/desktop-directories </para>
1986 </listitem>
1987 </varlistentry>
1989 <varlistentry
1990 ><term
1991 >$<envar
1992 >XDG_CONFIG_HOME</envar
1993 ></term
1994 ><listitem
1995 ><para
1996 >(&kde; 3.2) Определяет каталог, в котором хранятся пользовательские файлы конфигурации. Значение по умолчанию - <filename class="directory"
1997 >$<envar
1998 >HOME</envar
1999 >/.config</filename
2000 >.</para>
2001 </listitem>
2002 </varlistentry>
2004 <varlistentry
2005 ><term
2006 >$<envar
2007 >XDG_CONFIG_DIRS</envar
2008 ></term
2009 ><listitem
2010 ><para
2011 >(&kde; 3.2) Определяет порядок каталогов, в которых система ищет пользовательские файлы конфигурации (в дополнение к $<envar
2012 >XDG_CONFIG_HOME</envar
2013 >). Значение по умолчанию - <filename class="directory"
2014 >/etc/xdg</filename
2015 >. &kde; также добавляет каталоги, перечисленные в $<envar
2016 >KDEDIRS</envar
2017 > и в данных профиля. Используется файлами <literal role="extension"
2018 >.menu</literal
2019 > из <filename class="directory"
2020 >$<envar
2021 >XDG_CONFIG_DIRS</envar
2022 >/menus</filename
2023 >. </para>
2024 </listitem>
2025 </varlistentry>
2026 </variablelist>
2028 </sect1>
2030 <sect1 id="the-kdeinit-mystery">
2031 <title
2032 >Загадочный kdeinit</title>
2034 <!-- FIXME: Add more words. Fix markup -->
2036 <para
2037 ><command
2038 >kdeinit</command
2039 > запускает другие программы &kde;. <command
2040 >kdeinit</command
2041 > может запускать как обычные программы (бинарные файлы), так и специальные загружаемые модули <command
2042 >kdeinit</command
2043 > (<acronym
2044 >KLM</acronym
2045 >). <acronym
2046 >KLM</acronym
2047 > работают так же, как обычные программы, но могут быть запущены более эффективно. Они находятся в каталоге <filename class="directory"
2048 >$<envar
2049 >KDEDIR</envar
2050 >/lib/kde3</filename
2051 >.</para>
2053 <para
2054 >В выводе команд <command
2055 >top</command
2056 > и <command
2057 >ps</command
2058 > они отображаются как <computeroutput
2059 ><command
2060 >kdeinit</command
2061 ></computeroutput
2062 >. Чтобы узнать действительное имя программы, используйте <command
2063 >top <option
2064 >-c</option
2065 ></command
2066 > или <command
2067 >ps <option
2068 >aux</option
2069 ></command
2070 >:</para>
2072 <screen
2073 ><prompt
2074 >%</prompt
2075 > <userinput
2076 ><command
2077 >ps aux | grep bastian</command
2078 ></userinput>
2079 <computeroutput>
2080 bastian  26061  0.0  2.2 24284 11492 ?       S    21:27   0:00 kdeinit: Running...
2081 bastian  26064  0.0  2.2 24036 11524 ?       S    21:27   0:00 kdeinit: dcopserver
2082 bastian  26066  0.1  2.5 26056 12988 ?       S    21:27   0:00 kdeinit: klauncher
2083 bastian  26069  0.4  3.2 27356 16744 ?       S    21:27   0:00 kdeinit: kded
2084 bastian  26161  0.2  2.7 25344 14096 ?       S    21:27   0:00 kdeinit: ksmserver
2085 bastian  26179  1.1  3.4 29716 17812 ?       S    21:27   0:00 kdeinit: kicker
2086 bastian  26192  0.4  3.0 26776 15452 ?       S    21:27   0:00 kdeinit: klipper
2087 bastian  26195  1.0  3.5 29200 18368 ?       S    21:27   0:00 kdeinit: kdesktop
2088 </computeroutput
2090 </screen>
2091 <para
2092 >Как вы, наверное, уже заметили это имеет побочный эффект, состоящий в трудности в снятии сбойного процесса:</para>
2094 <screen
2095 ><prompt
2096 >%</prompt
2097 > <userinput
2098 ><command
2099 >killall kdesktop</command
2100 ></userinput>
2101 <computeroutput
2102 >kdesktop: no process killed</computeroutput
2103 ></screen>
2105 <para
2106 >Вы бы могли выстрелить из пушки и выполнить <userinput
2107 ><command
2108 >killall kdeinit</command
2109 ></userinput
2110 >, но это приведёт к выходу из &kde;.</para>
2112 <para
2113 >Существует целых два решения проблемы:</para>
2115 <screen
2116 ><prompt
2117 >%</prompt
2118 > <userinput
2119 ><command
2120 >kdekillall kdesktop</command
2121 ></userinput>
2122 или же старое доброе
2123 <prompt
2124 >%</prompt
2125 > <userinput
2126 ><command
2127 >kill 26195</command
2128 ></userinput
2129 ></screen>
2130 <para
2131 ><command
2132 >kdekillall</command
2133 > - часть пакета &kde; <acronym
2134 >SDK</acronym
2135 >.</para>
2137 </sect1>
2139 </chapter>
2141 <chapter id="customizing-kde">
2142 <title
2143 >Настройка &kde;</title>
2146 <sect1 id="desktop-icons">
2147 <title
2148 >Значки рабочего стола</title>
2150 <para
2151 >&kde; использует несколько типов значков:</para>
2152 <itemizedlist>
2153 <listitem
2154 ><para
2155 >Документы</para>
2156 </listitem>
2157 <listitem
2158 ><para
2159 >Ссылки на web-сайты (файлы <literal role="extension"
2160 >.desktop</literal
2161 >)</para>
2162 </listitem>
2163 <listitem
2164 ><para
2165 >Ссылки на приложения (файлы <literal role="extension"
2166 >.desktop</literal
2167 >)</para>
2168 </listitem>
2169 <listitem
2170 ><para
2171 >Устройства - диски, разделы и периферия <itemizedlist>
2172 <listitem
2173 ><para
2174 >Только файлы <literal role="extension"
2175 >.desktop</literal
2176 ></para>
2177 </listitem>
2178 <listitem
2179 ><para
2180 >Автоматически: devices:// io-slave</para>
2181 </listitem>
2182 </itemizedlist>
2183 </para>
2184 </listitem>
2185 <listitem
2186 ><para
2187 >Зависящие от производителя (например, в &SuSE; - Мой компьютер)</para>
2188 </listitem>
2189 </itemizedlist>
2191 <sect2 id="desktop-icons-websites">
2192 <title
2193 >Web-сайты</title>
2194 <para
2195 >Чтобы создать ссылку на web-сайт в виде файла <literal role="extension"
2196 >.desktop</literal
2197 >, используйте меню рабочего стола: <menuchoice
2198 ><guimenu
2199 >Создать</guimenu
2200 ><guisubmenu
2201 >Файл</guisubmenu
2202 ><guimenuitem
2203 >Ссылка на адрес (URL)...</guimenuitem
2204 ></menuchoice
2205 >. Смените значок, используя диалоговое окно <guilabel
2206 >Свойства</guilabel
2207 >. В результате получится файл <literal role="extension"
2208 >.desktop</literal
2209 > вида: <programlisting
2210 >[Desktop Entry]
2211 Encoding=UTF-8
2212 Icon=/opt/kde3/share/apps/kdesktop/pics/ksslogo.png
2213 Type=Link
2214 URL=http://www.kde.org/
2215 </programlisting>
2216 </para>
2217 </sect2>
2219 <sect2 id="desktop-icons-applications">
2220 <title
2221 >Приложения</title>
2223 <para
2224 >Чтобы создать ссылку на приложение в виде файла <literal role="extension"
2225 >.desktop</literal
2226 >: Меню рабочего стола - <menuchoice
2227 ><guimenu
2228 >Создать</guimenu
2229 ><guisubmenu
2230 >Файл</guisubmenu
2231 ><guimenuitem
2232 >Ссылка на приложение</guimenuitem
2233 ></menuchoice
2234 >. Укажите детали в появившемся диалоговом окне. Более простой способ - перетащите на рабочий стол пункт меню &kde; и выберите Копировать сюда или Создать ссылку (создаёт символьную ссылку).</para>
2236 <!-- Perhaps legacy and translated should be the other way around, but -->
2237 <!-- this is how it appears in Waldo's presentation. Need to check -->
2238 <!-- this -->
2240 <programlisting
2241 >[Desktop Entry]<co id="boilerplate"/>
2242 Encoding=UTF-8
2243 GenericName=IRC Client<co id="generic-desc"/>
2244 GenericName[af]=Irc Kli&euml;t
2245 GenericName[de]=IRC Programm
2247 GenericName[zu]=Umthengi we IRC<co id="legacy"/>
2248 SwallowExec=<co id="translated"/>
2249 Name=KSirc
2250 Name[af]=Ksirc
2251 Name[de]=KSirc
2253 </programlisting>
2255 <calloutlist>
2256 <callout arearefs="boilerplate"
2257 ><para
2258 >"Шаблон" (Boiler plate)</para>
2259 </callout>
2260 <callout arearefs="generic-desc"
2261 ><para
2262 >Базовое описание, не отображается</para>
2263 </callout>
2264 <callout arearefs="legacy"
2265 ><para
2266 >Для совместимости, можно удалить</para>
2267 </callout>
2268 <callout arearefs="translated"
2269 ><para
2270 >Переведённое название в том виде, как оно отображается на рабочем столе</para>
2271 </callout>
2272 </calloutlist>
2274 <para
2275 >Значки рабочего стола</para>
2276 <programlisting
2277 >...
2278 Name[zu]=Ksirc
2279 MimeType=<co id="co-mimetype"/>
2280 Exec=ksirc %i %m<co id="co-exec"/>
2281 Icon=ksirc<co id="co-icon"/>
2282 TerminalOptions=<co id="co-terminaloptions"/>
2283 Path=<co id="co-path"/>
2284 Type=Application<co id="co-type"/>
2285 Terminal=0<co id="co-terminal"/>
2286 X-KDE-StartupNotify=true<co id="co-x-kde-startupnotify"/>
2287 X-DCOP-ServiceType=Multi<co id="co-x-dcop-servicetype"/>
2288 Categories=Qt;KDE;Network<co id="co-categories"/>
2289 </programlisting>
2291 <calloutlist>
2292 <callout arearefs="co-mimetype"
2293 ><para
2294 >Поддерживаемые типы &MIME;, не используется в файлах значков рабочего стола</para>
2295 </callout>
2296 <callout arearefs="co-exec"
2297 ><para
2298 >Командная строка (то, что будет выполнено)</para>
2299 </callout>
2300 <callout arearefs="co-icon"
2301 ><para
2302 >Пиктограмма, с указанием темы или полного пути</para>
2303 </callout>
2304 <callout arearefs="co-terminaloptions"
2305 ><para
2306 >Используется, если программа запускается в окне терминала (т. е. в текстовом режиме)</para>
2307 </callout>
2308 <callout arearefs="co-path"
2309 ><para
2310 >Каталог, в котором будет выполняться команда</para>
2311 </callout>
2312 <callout arearefs="co-type"
2313 ><para
2314 >Ещё один "шаблон"</para>
2315 </callout>
2316 <callout arearefs="co-terminal"
2317 ><para
2318 >Установите в значение 1 (true), если приложение должно запускаться в терминале</para>
2319 </callout>
2320 <callout arearefs="co-x-kde-startupnotify"
2321 ><para
2322 >Показывать "подпрыгивающий" курсов, отключите если это не работает.</para>
2323 </callout>
2324 <callout arearefs="co-x-dcop-servicetype"
2325 ><para
2326 >Удалите эту строку, если приложение не запустилось</para>
2327 </callout>
2328 <callout arearefs="co-categories"
2329 ><para
2330 >Категория в меню &kde;, не используется в файлах значков рабочего стола</para>
2331 </callout>
2332 </calloutlist>
2336 </sect2>
2338 <sect2 id="desktop-icons-exec">
2339 <title
2340 >Опция <varname
2341 >Exec</varname
2342 > файлов <literal role="extension"
2343 >.desktop</literal
2344 ></title>
2346 <para
2347 >За командой вы можете указать несколько шаблонов, которые будут заменены на соответствующее значение при запуске программы: <variablelist>
2348 <varlistentry>
2349 <term
2350 >%f</term
2351 > <listitem
2352 ><para
2353 >Одно имя файла; система получает его, когда пользователь перетаскивает файл на значок приложения.</para>
2354 </listitem>
2355 </varlistentry>
2357 <varlistentry>
2358 <term
2359 >%F</term>
2360 <listitem
2361 ><para
2362 >Список файлов; используется для приложений, которые могут открывать несколько файлов одновременно.</para>
2363 </listitem>
2364 </varlistentry>
2366 <varlistentry>
2367 <term
2368 >%u</term>
2369 <listitem
2370 ><para
2371 >Один адрес &URL;</para>
2372 </listitem>
2373 </varlistentry>
2375 <varlistentry>
2376 <term
2377 >%U</term>
2378 <listitem
2379 ><para
2380 >Список &URL;. Система скачает указанные файлы и после этого передаст приложению пути к локальным файлам (!!)</para>
2381 </listitem>
2382 </varlistentry>
2384 <varlistentry>
2385 <term
2386 >%d</term>
2387 <listitem
2388 ><para
2389 >Каталог, в котором находится открываемый файл; полезно, если приложение будет сохранять в этом каталоге какие-либо файлы.</para>
2390 </listitem>
2391 </varlistentry>
2393 <varlistentry>
2394 <term
2395 >%D</term>
2396 <listitem
2397 ><para
2398 >Список каталогов. Используется редко.</para>
2399 </listitem>
2400 </varlistentry>
2402 <varlistentry>
2403 <term
2404 >%i</term
2406 <listitem
2407 ><para
2408 >Пиктограмма; если приложению &kde; передаётся опция <option
2409 >--icon</option
2410 >, то в панели задач оно будет отображать пиктограмму, переданную через переменную <varname
2411 >Icon</varname
2412 >= .</para>
2413 </listitem>
2414 </varlistentry>
2416 <varlistentry>
2417 <term
2418 >%m</term>
2419 <listitem
2420 ><para
2421 >Более мелкая пиктограмма.</para>
2422 </listitem>
2423 </varlistentry>
2425 <varlistentry>
2426 <term
2427 >%c</term
2429 <listitem
2430 ><para
2431 >Заголовок; если приложению &kde; передаётся опция <option
2432 >--caption</option
2433 >, то в панели задач оно будет отображать заголовок, переданный через переменную <varname
2434 >Name</varname
2435 >= .</para>
2436 </listitem>
2437 </varlistentry>
2439 </variablelist>
2440 </para>
2442 <informalexample>
2443 <para
2444 >Примеры: <segmentedlist>
2445 <segtitle
2446 >Строка <varname
2447 >Exec</varname
2448 ></segtitle>
2449 <segtitle
2450 >Команда, которая будет выполняться</segtitle>
2451 <seglistitem
2452 ><seg
2453 >ksirc %i</seg
2454 ><seg
2455 ><command
2456 >ksirc --icon ksirc</command
2457 ></seg>
2458 </seglistitem>
2459 <seglistitem
2460 ><seg
2461 >cd %d; kedit $(basename %f)</seg
2462 ><seg
2463 ><command
2464 >cd /tmp; kedit file.txt</command
2465 ></seg>
2466 </seglistitem>
2467 </segmentedlist>
2468 </para>
2469 </informalexample>
2471 <!--Dont' know what this refers to: -->
2472 <!--See What's This (Shift-F1) in Properties Dialog-->
2474 </sect2>
2476 <sect2 id="desktop-icons-devices">
2477 <title
2478 >Устройства</title>
2479 <para
2480 >Чтобы создать ссылку на приложение, используйте файл <literal role="extension"
2481 >.desktop</literal
2482 > или меню рабочего стола Создать -> Устройство </para>
2483 </sect2>
2485 <sect2 id="where-to-define">
2486 <title
2487 >Где можно задать</title>
2489 <para
2490 >Где можно определить значки рабочего стола: <itemizedlist>
2492 <listitem
2493 ><para
2494 ><filename class="directory"
2495 >~/Desktop</filename
2496 >: копируется из <filename class="directory"
2497 >/etc/skel/Desktop</filename
2498 ></para
2499 ></listitem>
2501 <listitem
2502 ><para
2503 ><filename class="directory"
2504 >$<envar
2505 >KDEDIR</envar
2506 >/apps/kdesktop/Desktop</filename
2507 > (добавляется)</para
2508 ></listitem>
2510 <listitem
2511 ><para
2512 ><filename class="directory"
2513 >$<envar
2514 >KDEDIR</envar
2515 >/apps/kdesktop/DesktopLinks</filename
2516 > (копируется)</para
2517 ></listitem>
2519 <listitem
2520 ><para
2521 >Значки устройств (изменяются динамически)</para
2522 ></listitem>
2524 <listitem
2525 ><para
2526 >Зависит от дистрибутива. В SUSE Linux значки темы startkde.theme копируются из <filename class="directory"
2527 >/opt/kde3/share/config/SuSE/default/</filename
2528 ></para
2529 ></listitem>
2531 </itemizedlist>
2532 </para>
2533 </sect2>
2534 </sect1>
2536 <sect1 id="kde-menu">
2537 <title
2538 >Меню &kde;</title>
2540 <sect2 id="how-it-works">
2541 <title
2542 >Как это работает?</title>
2544 <para
2545 >Стандарт меню для &kde; 3.2 описан в <ulink url="http://freedesktop.org/Standards/menu-spec/"
2546 >http://freedesktop.org/Standards/menu-spec/</ulink
2547 ></para>
2548 <para
2549 >До &kde; 3.2: <itemizedlist>
2551 <listitem
2552 ><para
2553 >Подкаталоги папки <filename class="directory"
2554 >share/applnk</filename
2555 ></para
2556 ></listitem>
2558 <listitem
2559 ><para
2560 >Структура подкаталогов соответствует структуре меню</para
2561 ></listitem>
2563 <listitem
2564 ><para
2565 >Каждый файл <literal role="extension"
2566 >.desktop</literal
2567 > соответствует одному приложению</para
2568 ></listitem>
2570 </itemizedlist>
2571 </para>
2573 <para
2574 >Преобразовать структуру меню в &kde; 3.2 было непросто: <itemizedlist>
2575 <listitem
2576 ><para
2577 >Структура определена в одном файле .menu</para
2578 ></listitem>
2579 <listitem
2580 ><para
2581 >меню разбито на категории</para
2582 ></listitem>
2583 <listitem
2584 ><para
2585 >является общим для <acronym
2586 >GNOME</acronym
2587 > и &kde;</para
2588 ></listitem>
2589 <listitem
2590 ><para
2591 >поддерживает стиль меню applnk</para
2592 ></listitem>
2593 </itemizedlist>
2594 </para>
2596 <informalexample>
2597 <para
2598 >Пример из <filename
2599 >applications.menu</filename
2600 >: <programlisting
2601 ><markup>
2602         &lt;Menu&gt;
2603             &lt;Name&gt;Office&lt;/Name&gt;
2604             &lt;Directory&gt;suse-office.directory&lt;/Directory&gt;
2605             &lt;Include&gt;
2606                 &lt;Filename&gt;Acrobat Reader.desktop&lt;/Filename&gt;
2607                 &lt;Filename&gt;kde-kpresenter.desktop&lt;/Filename&gt;
2608                 &lt;Filename&gt;kde-kword.desktop&lt;/Filename&gt;
2609             &lt;/Include&gt;
2610         &lt;Menu&gt;
2611 </markup
2613 </programlisting>
2614 </para>
2615 <para
2616 >Меню содержит 3 приложения: <itemizedlist>
2618 <listitem
2619 ><para
2620 ><filename
2621 >/usr/share/applications/Acrobat Reader.desktop</filename
2622 ></para
2623 ></listitem>
2625 <listitem
2626 ><para
2627 ><filename
2628 >/opt/kde3/share/applications/kde/kpresenter.desktop</filename
2629 ></para
2630 ></listitem>
2632 <listitem
2633 ><para
2634 ><filename
2635 >/opt/kde3/share/applications/kde/kword.desktop</filename
2636 ></para
2637 ></listitem>
2639 </itemizedlist>
2640 </para>
2641 </informalexample>
2642 </sect2>
2644 <sect2 id="stored-where">
2645 <title
2646 >Где это хранится?</title>
2648 <para
2649 >Файлы <literal role="extension"
2650 >.menu</literal
2651 > описывают структуру меню. Они хранятся в <filename class="directory"
2652 >$<envar
2653 >KDEDIR</envar
2654 >/etc/xdg/menus</filename
2655 > и <filename class="directory"
2656 >/etc/xdg/menus</filename
2657 > (общесистемное меню) - задаётся $<envar
2658 >XDG_CONFIG_DIRS</envar
2659 >. В каталоге <filename class="directory"
2660 >$<envar
2661 >HOME</envar
2662 >/.config/menus</filename
2663 > хранятся пользовательские настройки структуры меню - задаётся $<envar
2664 >XDG_CONFIG_HOME</envar
2665 >. Дальнейшая информация находится на странице <ulink url="http://www.freedesktop.org/Standards/basedir-spec"
2666 >http://www.freedesktop.org/Standards/basedir-spec</ulink
2667 >.</para>
2669 <para
2670 >Файлы <literal role="extension"
2671 >.desktop</literal
2672 > описывают приложения. Они хранятся в <filename class="directory"
2673 >$<envar
2674 >KDEDIR</envar
2675 >/share/applications</filename
2676 >, <filename class="directory"
2677 >/usr/share/applications</filename
2678 >, <filename class="directory"
2679 >/usr/local/share/applications</filename
2680 >. Они относятся ко всем пользователям. Определяется переменной $<envar
2681 >XDG_DATA_DIRS</envar
2682 >.</para>
2684 <para
2685 >Каталог <filename class="directory"
2686 >$<envar
2687 >HOME</envar
2688 >/.local/applications</filename
2689 > содержит пользовательские файлы <literal role="extension"
2690 >.desktop</literal
2691 > и пользовательские настройки. Каталоги определяются переменной $<envar
2692 >XDG_DATA_HOME</envar
2693 >. Дальнейшая информация находится на странице <ulink url="http://www.freedesktop.org/Standards/basedir-spec"
2694 >http://www.freedesktop.org/Standards/basedir-spec</ulink
2695 ></para>
2698 <para
2699 >Файлы <literal role="extension"
2700 >.directory</literal
2701 > описывают подменю. Они хранятся в каталогах <filename class="directory"
2702 >$<envar
2703 >KDEDIR</envar
2704 >/share/desktop-directories</filename
2705 >, <filename class="directory"
2706 >/usr/share/desktop-directories</filename
2707 >, <filename class="directory"
2708 >/usr/local/share/desktop-directories</filename
2709 > и относятся ко всем пользователям. Каталоги определяются переменной $<envar
2710 >XDG_DATA_DIRS</envar
2711 >. Пользовательские настройки хранятся в <filename class="directory"
2712 >$<envar
2713 >HOME</envar
2714 >/.local/desktop-directories</filename
2715 >. Каталог задаётся переменной $<envar
2716 >XDG_DATA_HOME</envar
2717 >. Дальнейшая информация находится на странице <ulink url="http://www.freedesktop.org/Standards/basedir-spec"
2718 >http://www.freedesktop.org/Standards/basedir-spec</ulink
2719 ></para>
2721 <informalexample>
2722 <para
2723 >Пример из <filename
2724 >applications.menu</filename
2725 >: <programlisting
2726 ><markup>
2727              &lt;Menu&gt;
2728                         &lt;Name&gt;Art&lt;/Name&gt;
2729                         &lt;Directory&gt;suse-edutainment-art.directory&lt;/Directory&gt;
2730                         &lt;Include&gt;
2731                                 &lt;Category&gt;X-SuSE-Art&lt;/Category&gt;
2732                         &lt;/Include&gt;
2733                 &lt;/Menu&gt;
2734 </markup
2736 </programlisting>
2737 </para>
2739 <para
2740 ><literal
2741 >Art</literal
2742 > - внутреннее имя меню. Запись <filename
2743 >suse-edutainment-art.directory</filename
2744 > определяет имя и пиктограмму этого меню. Меню включает все приложения, которые были отнесены к категории <literal
2745 >X-SuSE-Art</literal
2746 >. Примеры категорий: <programlisting
2747 >Categories=Qt;KDE;Education;X-SuSE-Art
2748 </programlisting
2749 ></para>
2751 <para
2752 >Запись <filename
2753 >suse-edutainment-art.directory</filename
2754 > определяет имя и пиктограмму этого меню: <programlisting
2755 >[Desktop Entry]
2756 Name=Art and Culture
2757 Icon=kcmsystem
2758 </programlisting>
2759 </para>
2760 </informalexample>
2761 </sect2>
2763 <sect2 id="common-pitfalls">
2764 <title
2765 >Типичные ошибки</title>
2767 <para
2768 >Приложения, <emphasis
2769 >не</emphasis
2770 > входящие в меню, <emphasis
2771 >не</emphasis
2772 > могут быть ассоциированы с файлами и не учитываются другими приложениями. Если вы удаляете приложение из меню, &kde; считает, что вы не хотите его использовать.</para>
2774 <para
2775 >Если вы не хотите, чтобы приложение отображалось в меню, поместите его в меню <filename
2776 >.hidden</filename
2777 > или в отдельное меню с включённой опцией <programlisting>
2778 NoDisplay=true
2779 </programlisting
2780 > в файле <literal role="extension"
2781 >.directory</literal
2782 >.</para>
2783 </sect2>
2785 <sect2 id="essential-menus">
2786 <title
2787 >Важные меню</title>
2789 <para
2790 ><filename class="directory"
2791 >$<envar
2792 >KDEDIR</envar
2793 >/etc/xdg/menus/applications-merged/</filename
2794 > содержит файл <filename
2795 >kde-essential.menu</filename
2796 >. Он включает некоторые важные меню, которые не отображаются в главном меню &kde;: <itemizedlist>
2797 <listitem
2798 ><para
2799 >Центр управления имеет скрытое меню Настройка. Его содержимое определяется файлом <filename
2800 >kde-settings.menu</filename
2801 >, значок и имя - файлом <filename
2802 >kde-settings.directory</filename
2803 ></para>
2804 </listitem>
2805 <listitem
2806 ><para
2807 >Центр информации имеет скрытое меню Информация. Его содержимое определяется файлом <filename
2808 >kde-information.menu</filename
2809 >, значок и имя - файлом <filename
2810 >kde-information.directory</filename
2811 >.</para>
2812 </listitem>
2814 <listitem
2815 ><para
2816 >Хранители экрана имеет скрытое меню Система/Хранители экрана. Его содержимое определяется файлом <filename
2817 >kde-screensavers.menu</filename
2818 >, значок и имя - файлом <filename
2819 >kde-system-screensavers.directory</filename
2820 >. <filename
2821 >$<envar
2822 >KDEDIR</envar
2823 >/share/desktop-directories/kde-system-screensavers.directory</filename
2824 > содержит: <programlisting
2825 >NoDisplay=true
2826 </programlisting>
2827 </para>
2828 </listitem>
2829 </itemizedlist
2830 ></para>
2831 </sect2>
2833 <sect2 id="old-style-menus">
2834 <title
2835 >Меню в старом стиле</title>
2837 <para
2838 >&kde; продолжает поддерживать меню в старом стиле, содержимое которых определяется структурой каталогов <filename class="directory"
2839 >$<envar
2840 >KDEDIR</envar
2841 >/share/applnk</filename
2842 > (для всех пользователей) и <filename class="directory"
2843 >$<envar
2844 >HOME</envar
2845 >/.kde/share/applnk</filename
2846 > (для каждого пользователя в отдельности). Если в файле <literal role="extension"
2847 >.desktop</literal
2848 > указана опция <varname
2849 >Categories</varname
2850 >= , то просматриваемые каталоги определяются её значением.</para>
2851 </sect2>
2853 <sect2 id="ksycoca">
2854 <title
2855 ><application
2856 >KSycoca</application
2857 ></title>
2858 <para
2859 ><application
2860 >KSycoca</application
2861 > кэширует структуру меню и информацию о всех доступных приложениях. Вы можете создать базу данных заново, выполнив команду <userinput
2862 ><command
2863 >kbuildsycoca</command
2864 ></userinput
2865 >. База данных находится в <filename class="directory"
2866 >/var/tmp/kdecache-${<envar
2867 >USER</envar
2868 >}/ksycoca</filename
2869 >. Она автоматически обновляется <application
2870 >KDED</application
2871 >, проверяется во время запуска сеанса. В течение сеанса <application
2872 >KDED</application
2873 > отслеживает изменения.</para>
2875 <para
2876 >Чтобы выключить отслеживание изменений (если используется файловая система NFS, оно может приводить к ошибкам), добавьте в файл <filename
2877 >kdedrc</filename
2878 > следующие строки: <programlisting
2879 >[General]
2880 CheckSycoca=false
2881 </programlisting>
2882 </para>
2884 <para
2885 >Чтобы запустить обновление, выполните <userinput
2886 ><command
2887 >touch $<envar
2888 >KDEDIR</envar
2889 >/share/services/update_ksycoca</command
2890 ></userinput
2891 >.</para>
2893 </sect2>
2895 <sect2 id="kmenuedit">
2896 <title
2897 >&kmenuedit;</title>
2899 <para
2900 >&kmenuedit; изменяет настройки меню для одного пользователя. Изменения в структуре меню сохраняются в файле <filename
2901 >~/.config/menus/applications-kmenuedit.menu</filename
2902 >, изменения в наборе приложений - в <filename class="directory"
2903 >~/.local/share/applications/</filename
2904 >, изменения подменю (имена, значки) - в <filename class="directory"
2905 >~/.local/share/desktop-directories/</filename
2906 >. Утилита администратора KIOSK использует &kmenuedit; и копирует внесённые изменения в профиль пользователя или в общесистемные настройки. </para>
2908 </sect2>
2910 </sect1>
2912 <!-- This section might be redundant. If it isn't, it needs some screenies -->
2913 <sect1 id="kde-panel">
2914 <title
2915 >Панель &kde;</title>
2917 <para
2918 >Панель &kde; (&kicker;) имеет модульную структуру. Она включает следующие компоненты: <itemizedlist>
2919 <listitem
2920 ><para
2921 >Аплеты</para
2922 ></listitem>
2923 <listitem
2924 ><para
2925 >Кнопки приложений</para
2926 ></listitem>
2927 <listitem
2928 ><para
2929 >Специальные кнопки</para
2930 ></listitem>
2931 </itemizedlist>
2932 </para>
2934 <para
2935 >По умолчанию панель содержит следующие аплеты: <itemizedlist
2936 > <listitem
2937 ><para
2938 >Переключение рабочих столов</para
2939 ></listitem
2940 > <listitem
2941 ><para
2942 >Панель задач</para
2943 ></listitem
2944 > <listitem
2945 ><para
2946 >Системный лоток</para
2947 ></listitem
2948 > <listitem
2949 ><para
2950 >Часы</para
2951 ></listitem
2952 > </itemizedlist
2953 > и следующие специальные кнопки: <itemizedlist>
2954 <listitem
2955 ><para
2956 >Меню &kde;</para
2957 ></listitem>
2958 <listitem
2959 ><para
2960 >Кнопка рабочего стола</para
2961 ></listitem>
2962 </itemizedlist>
2963 </para>
2965 <para
2966 >Добавлены также кнопки различных приложений: <itemizedlist>
2967 <listitem
2968 ><para
2969 >Кнопка Домой</para
2970 ></listitem>
2971 <listitem
2972 ><para
2973 >Кнопка браузера</para
2974 ></listitem>
2975 <listitem
2976 ><para
2977 >Кнопка KMail</para
2978 ></listitem>
2979 </itemizedlist>
2980 </para>
2981 </sect1>
2983 <sect1 id="file-associations">
2984 <title
2985 >Связи файлов</title>
2987 <para
2988 >Связи файлов ставят в соответствие типу файлов одно или несколько приложений. Тип файла определяется его типом &MIME;. Типы &MIME;, известные &kde;, хранятся в <filename class="directory"
2989 >$<envar
2990 >KDEDIR</envar
2991 >/share/mimelnk</filename
2992 >. Файл <literal role="extension"
2993 >.desktop</literal
2994 > каждого приложения содержит список типов &MIME;, которые это приложение поддерживает.</para>
2996 <informalexample>
2997 <para
2998 ><filename
2999 >kview.desktop</filename
3000 >: <programlisting
3001 >MimeType=image/gif;image/x-xpm;image/x-xbm;image/jpeg;
3002 image/x-bmp;image/png;image/x-ico;image/x-portable-bitmap;
3003 image/x-portable-pixmap;image/x-portable-greymap;
3004 image/tiff;image/jp2
3005 </programlisting>
3006 </para>
3008 <para
3009 ><filename
3010 >kuickshow.desktop</filename
3011 >: <programlisting
3012 >MimeType=image/gif;image/x-xpm;image/x-xbm;image/jpeg;
3013 image/png;image/tiff;image/x-bmp;image/x-psd;image/x-eim;
3014 image/x-portable-bitmap;image/x-portable-pixmap;
3015 image/x-portable-greymap
3016 </programlisting>
3017 </para>
3019 <para
3020 >Оба приложения могут открывать файлы типа image/gif. Какое будет использовано для того, чтобы открывать файлы <literal role="extension"
3021 >.gif</literal
3022 >?</para>
3024 <para
3025 >Приложение с наибольшим приоритетом! <filename
3026 >kview.desktop</filename
3027 > содержит запись <programlisting>
3028 InitialPreference=3
3029 </programlisting
3030 >, в то время как <filename
3031 >kuickshow.desktop</filename
3032 > содержит запись <programlisting>
3033 InitialPreference=6
3034 </programlisting
3035 >. Поэтому для открытия файлов <literal role="extension"
3036 >.gif</literal
3037 > будет использовано &kuickshow;. </para>
3039 <para
3040 >Как работать с &kview; по умолчанию?</para>
3042 <para
3043 >Пользователь может изменять связи файлов в Центре управления. Изменения хранятся в <filename
3044 >$<envar
3045 >HOME</envar
3046 >/.kde/share/config/profilerc</filename
3047 >. Чтобы применить настройки к нескольким пользователям, скопируйте этот файл в личные файлы настроек каждого пользователя или в глобальный каталог настроек &kde;.</para>
3049 </informalexample>
3051 </sect1>
3053 </chapter>
3055 <chapter id="locking-down-kde">
3056 <title
3057 >Блокировка настройки &kde;</title>
3059 <sect1 id="how-it-works-the-basics">
3060 <title
3061 >Как это работает - основы</title>
3063 <para
3064 >Возможности блокировки настройки &kde; основаны на следующих методах:</para>
3066 <itemizedlist>
3067 <listitem
3068 ><para
3069 ><link linkend="immutable-configuration-options"
3070 >Сделать опции настройки неизменяемыми</link
3071 ></para
3072 ></listitem>
3073 <listitem
3074 ><para
3075 ><link linkend="action-restrictions"
3076 >Запретить отдельные действия</link
3077 ></para
3078 ></listitem>
3079 <listitem
3080 ><para
3081 ><link linkend="url-restrictions"
3082 >Запретить доступ к отдельным адресам (&URL;)</link
3083 ></para
3084 ></listitem>
3085 <listitem
3086 ><para
3087 ><link linkend="configuration-modules"
3088 >Запретить доступ к отдельным модулям настройки</link
3089 ></para
3090 ></listitem>
3091 </itemizedlist>
3093 </sect1>
3095 <sect1 id="immutable-configuration-options">
3096 <title
3097 >Неизменяемые настройки</title>
3098 <subtitle
3099 >Блокировка настройки &kde;</subtitle>
3101 <para
3102 >Запрещая изменение некоторых настроек, администратор может установить настройки системы по умолчанию, которые пользователь не сможет изменить.</para>
3104 <para
3105 >Неизменяемые настройки будут перекрывать пользовательские.</para>
3107 <para
3108 >Вы можете запрещать изменение одной настройки, группы настроек или файла конфигурации.</para>
3110 <para
3111 >Все настройки неизменяемого файла или группы неизменяемы, даже если администратор не указал для них значение по умолчанию.</para>
3113 <note
3114 ><para
3115 >Не все приложения поддерживают неизменяемые настройки. Даже если пользователь не имеет возможности вносить постоянные изменения в настройки, он может изменить их на время через окно настроек приложения.</para
3116 ></note>
3118 </sect1>
3120 <sect1 id="action-restrictions">
3121 <title
3122 >Ограничения на действия</title>
3124 <para
3125 >Приложения &kde; основаны на концепции действий. Действия могут быть запущены несколькими способами, обычно через меню приложения, панель управления или комбинацию клавиш. Пример действия - <action
3126 >сохранить документ</action
3127 >. Если вы знаете внутреннее имя действия, вы можете запретить его. Пункты, соответствующие запрещённым действиям, не отображаются в меню и панелях инструментов. Внутреннее имя действия <action
3128 >сохранить документ</action
3129 > - <option
3130 >action/file_save</option
3131 >. Вы также можете применять более абстрактные запреты, чтобы ограничить функции, которые не соответствуют только одному действию. Например, запрет <option
3132 >shell_access</option
3133 > отключает все функции, которые предоставляют пользователю доступ к оболочке &UNIX;.</para>
3135 <example>
3136 <title
3137 >Ограничение доступа пользователей к оболочкам</title>
3139 <para
3140 >Чтобы запретить доступ пользователя к оболочке, следует запретить действие <option
3141 >shell_access</option
3142 >. Добавьте в файл <filename
3143 >kdeglobals</filename
3144 > следующие строки: </para
3147 <screen
3148 >[KDE Action Restrictions]
3149 shell_access=false</screen>
3151 <para
3152 >Так как это ограничение повлияет на меню &kde; и на доступные приложения, мы должны обновить базу данных sycoca:</para>
3154 <screen
3155 ><userinput
3156 ><command
3157 >touch</command
3158 > <filename
3159 >$<envar
3160 >KDEDIR</envar
3161 >/share/services/update_ksycoca</filename
3162 ></userinput
3163 ></screen>
3165 <para
3166 >Теперь выйдите из &kde;, войдите снова и проверьте следующие пункты:</para>
3168 <itemizedlist>
3169 <listitem
3170 ><para
3171 >Меню К</para
3172 ></listitem>
3173 <listitem
3174 ><para
3175 >&konqueror;: <menuchoice
3176 ><guimenu
3177 >Сервис</guimenu
3178 ><guimenuitem
3179 >Открыть терминал</guimenuitem
3180 ></menuchoice
3181 ></para
3182 ></listitem>
3183 <listitem
3184 ><para
3185 >Окно выполнения команд <keycombo action="simul"
3186 >&Alt;<keycap
3187 >F2</keycap
3188 ></keycombo
3189 ></para
3190 ></listitem>
3191 </itemizedlist>
3192 </example>
3193 <para
3194 >Полная документация по доступным действиям находится на странице <ulink url="http://www.kde.org/areas/sysadmin/"
3195 >http://www.kde.org/areas/sysadmin/</ulink
3196 >.</para>
3198 <para
3199 >Несколько достаточно интересных действий перечислены ниже:</para>
3201 <variablelist>
3202 <varlistentry>
3203 <term
3204 ><option
3205 >action/options_configure</option
3206 ></term>
3207 <listitem
3208 ><para
3209 >Меню <guimenu
3210 >Настройка</guimenu
3211 >, пункт <guimenuitem
3212 >Настроить...</guimenuitem
3213 ></para
3214 ></listitem>
3215 </varlistentry>
3216 <varlistentry>
3217 <term
3218 ><option
3219 >action/help_report_bug</option
3220 ></term>
3221 <listitem
3222 ><para
3223 >Меню <guimenu
3224 >Справка</guimenu
3225 >, пункт <guimenuitem
3226 >Сообщить об ошибке</guimenuitem
3227 ></para
3228 ></listitem>
3229 </varlistentry>
3230 <varlistentry>
3231 <term
3232 ><option
3233 >action/kdesktop_rmb</option
3234 ></term>
3235 <listitem
3236 ><para
3237 >Щелчок правой кнопкой мыши по рабочему столу</para
3238 ></listitem>
3239 </varlistentry>
3240 <varlistentry>
3241 <term
3242 ><option
3243 >action/kicker_rmb</option
3244 ></term>
3245 <listitem
3246 ><para
3247 >Щелчок правой кнопкой мыши по панели</para
3248 ></listitem>
3249 </varlistentry>
3250 <varlistentry>
3251 <term
3252 ><option
3253 >user/root</option
3254 ></term>
3255 <listitem
3256 ><para
3257 >Скрыть все действия/приложения, которые требуют прав пользователя <systemitem class="username"
3258 >root</systemitem
3259 >.</para
3260 ></listitem>
3261 </varlistentry>
3262 <varlistentry>
3263 <term
3264 ><option
3265 >shell_access</option
3266 ></term>
3267 <listitem
3268 ><para
3269 >Скрыть все действия/приложения, которые предоставляют доступ к оболочке.</para
3270 ></listitem>
3271 </varlistentry>
3272 <varlistentry>
3273 <term
3274 ><option
3275 >print/system</option
3276 ></term>
3277 <listitem
3278 ><para
3279 >Отключает возможность выбора системы печати.</para
3280 ></listitem>
3281 </varlistentry>
3282 <varlistentry>
3283 <term
3284 ><option
3285 >lock_screen</option
3286 ></term>
3287 <listitem
3288 ><para
3289 >Возможность блокировки экрана пользователем</para
3290 ></listitem>
3291 </varlistentry>
3292 <varlistentry>
3293 <term
3294 ><option
3295 >start_new_session</option
3296 ></term>
3297 <listitem
3298 ><para
3299 >Возможность запуска пользователем второго сеанса Х (см. документацию &kdm;)</para
3300 ></listitem>
3301 </varlistentry>
3302 <varlistentry>
3303 <term
3304 ><option
3305 >opengl_screensavers</option
3306 ></term>
3307 <listitem
3308 ><para
3309 >Определяет, может ли пользователь запускать хранители экрана, использующие OpenGL.</para
3310 ></listitem>
3311 </varlistentry>
3312 <varlistentry>
3313 <term
3314 ><option
3315 >manipulatescreen_screensavers</option
3316 ></term>
3317 <listitem
3318 ><para
3319 >Разрешать запуск хранителей экрана, не занимающих весь монитор.</para
3320 ></listitem>
3321 </varlistentry>
3322 </variablelist>
3324 </sect1>
3326 <sect1 id="url-restrictions">
3327 <title
3328 >Ограничения &URL;</title>
3330 <para
3331 >Есть три типа ограничений, применяемых к адресам &URL;:</para>
3333 <variablelist>
3334 <varlistentry>
3335 <term
3336 >list</term>
3337 <listitem
3338 ><para
3339 >Определяет, может ли пользователь получать список файлов каталога.</para
3340 ></listitem>
3341 </varlistentry>
3342 <varlistentry>
3343 <term
3344 >open</term>
3345 <listitem
3346 ><para
3347 >Определяет доступ к отдельным адресам &URL;</para
3348 ></listitem>
3349 </varlistentry>
3350 <varlistentry>
3351 <term
3352 >Redirect</term>
3353 <listitem
3354 ><para
3355 >Определяет, может ли один адрес &URL; открывать другой &URL;, как автоматически, так и через гиперссылку.</para
3356 ></listitem>
3357 </varlistentry>
3358 </variablelist>
3360 <para
3361 >Правила проверяются в том порядке, в каком они перечислены. Возможность доступа к &URL; определяет последнее правило, которое к нему применимо.</para>
3363 <para
3364 >Следующие правила запрещают открывать адреса http и https вне домена <systemitem class="domainname"
3365 >.ourcompany.com</systemitem
3366 >:</para>
3368 <screenco
3369 ><areaspec>
3370 <area id="url_commas" coords="3"/>
3371 <area id="url_rule1" coords="3"/>
3372 <area id="url_rule2" coords="4"/>
3373 </areaspec>
3374 <screen
3375 >[KDE URL Restrictions]
3376 rule_count=2
3377 rule_1=open,,,,http,,,false
3378 rule_2=open,,,,http,*.ourcompany.com,,true</screen
3379 ></screenco>
3381 <calloutlist>
3382 <callout arearefs="url_commas">
3383 <para
3384 >Первые четыре запятые означают пропуск проверки критериев &URL;. Эта часть применяется только к критериям перенаправления.</para
3386 </callout>
3387 <callout arearefs="url_rule1"
3388 ><para
3389 >Правило <option
3390 >rule_1</option
3391 > запрещает открывать адреса http и https</para
3392 ></callout>
3393 <callout arearefs="url_rule2"
3394 ><para
3395 >Правило <option
3396 >rule_2</option
3397 > позволяет открывать адреса http и https в домене <systemitem class="domainname"
3398 >.ourcompany.com</systemitem
3399 >. Обратите внимание, что шаблон <token
3400 >*</token
3401 > можно применять только в начале домена.</para
3402 ></callout>
3403 </calloutlist>
3405 <para
3406 >Следующие правила запрещают пользователю просматривать каталоги локальной файловой системы вне его домашнего каталога ($<envar
3407 >HOME</envar
3408 >):</para>
3410 <screenco
3411 ><areaspec>
3412 <area id="home_rule1" coords="3"/>
3413 <area id="home_rule2" coords="4"/>
3414 </areaspec>
3415 <screen
3416 >[KDE URL Restrictions]
3417 rule_count=2
3418 rule_1=list,,,,file,,,false
3419 rule_2=list,,,,file,,$HOME,true</screen
3420 ></screenco>
3422 <calloutlist>
3423 <callout arearefs="home_rule1"
3424 ><para
3425 >Правило <option
3426 >rule_1</option
3427 > запрещает получать список файлов любого локального каталога</para
3428 ></callout>
3429 <callout arearefs="home_rule2"
3430 ><para
3431 >Правило <option
3432 >rule_2</option
3433 > позволяет получать список файлов любого подкаталога папки $<envar
3434 >HOME</envar
3435 >.</para
3436 ></callout>
3437 </calloutlist>
3439 <para
3440 >Переменные $<envar
3441 >HOME</envar
3442 > и $<envar
3443 >TMP</envar
3444 > соответствуют домашнему каталогу пользователя и каталогу временных файлов &kde; для этого пользователя, например, <filename class="directory"
3445 >/tmp/kde-bastian</filename
3446 ></para>
3448 <para
3449 >Следующие правила запрещают пользователю открывать локальные файлы вне каталога $<envar
3450 >HOME</envar
3451 >:</para>
3453 <screenco
3454 ><areaspec>
3455 <area id="local_rule1" coords="3"/>
3456 <area id="local_rule2" coords="4"/>
3457 <area id="local_rule3" coords="5"/>
3458 </areaspec>
3459 <screen
3460 >[KDE URL Restrictions]
3461 rule_count=3
3462 rule_1=open,,,,file,,,false
3463 rule_2=open,,,,file,,$HOME,true
3464 rule_3=open,,,,file,,$TMP,true</screen
3465 ></screenco>
3467 <calloutlist>
3468 <callout arearefs="local_rule1"
3469 ><para
3470 >Правило <option
3471 >rule_1</option
3472 > запрещает открывать любой локальный файл</para
3473 ></callout>
3474 <callout arearefs="local_rule2"
3475 ><para
3476 >Правило <option
3477 >rule_2</option
3478 > разрешает открывать файлы каталога $<envar
3479 >HOME</envar
3480 >.</para
3481 ></callout>
3482 <callout arearefs="local_rule3"
3483 ><para
3484 >Правило <option
3485 >rule_3</option
3486 > позволяет открывать файлы пользовательского каталога временных файлов &kde;. Это необходимо для некоторых приложений &kde;, которые вначале загружают файл в этот каталог, а потом открывают его.</para
3487 ></callout>
3488 </calloutlist>
3491 <para
3492 >Настройки перенаправления определяют, могут ли документы перенаправлять пользователя, автоматически или через гиперссылку, по другому адресу. Правила по умолчанию обеспечивают некоторую безопасность. Например, документы, расположенные в Интернете, не могут ссылаться на локальные файлы компьютера.</para>
3494 <para
3495 >Например, если мы хотим разрешить документам сервера <systemitem class="systemname"
3496 >www.mycompany.com</systemitem
3497 >, расположенного в локальной сети, ссылаться на локальные файлы, мы можем добавить следующее правило:</para>
3499 <screen
3500 >[KDE URL Restrictions]
3501 rule_count=1
3502 rule_1=redirect,http,www.mycompany.com,,file,,,true</screen>
3504 <para
3505 >Можно указывать как один протокол, так и группу. Заранее определены следующие группы:</para>
3507 <variablelist>
3508 <varlistentry>
3509 <term
3510 >:local</term>
3511 <listitem
3512 ><para
3513 >Протоколы, которые обращаются к локальным файлам, например, file:/, man:/, fonts:/, floppy:/</para
3514 ></listitem>
3515 </varlistentry>
3516 <varlistentry>
3517 <term
3518 >:internet</term>
3519 <listitem
3520 ><para
3521 >Протоколы Интернета, такие как http и ftp</para
3522 ></listitem>
3523 </varlistentry>
3524 </variablelist>
3526 <para
3527 >Информация о протоколах хранится в файлах <literal role="extension"
3528 >*.protocol</literal
3529 >, каталог <filename class="directory"
3530 >$<envar
3531 >KDEDIR</envar
3532 >/share/services</filename
3533 >.</para>
3535 <para
3536 ><option
3537 >Class</option
3538 >= определяет группу, к которой принадлежит протокол, например: <userinput
3539 ><command
3540 >grep</command
3541 > <option
3542 >Class=</option
3543 > <filename
3544 >$<envar
3545 >KDEDIR</envar
3546 >/share/services/*.protocol</filename
3547 ></userinput
3548 ></para>
3550 <para
3551 >Общие правила:</para>
3553 <itemizedlist>
3554 <listitem
3555 ><para
3556 >Протоколы :local могут ссылаться на любые другие протоколы</para
3557 ></listitem>
3558 <listitem
3559 ><para
3560 >К протоколам :internet обращаться можно всегда</para
3561 ></listitem>
3562 <listitem
3563 ><para
3564 >Некоторые протоколы не входят ни в одну группу, например, fish:/.</para
3565 ></listitem>
3566 </itemizedlist>
3568 </sect1>
3570 <sect1 id="configuration-modules">
3571 <title
3572 >Модули настройки</title>
3574 <para
3575 >Модули настройки &kde; позволяют настроить различные аспекты окружения &kde;. Модули настройки отображаются в Центре управления и/или в диалоговом окне настройки приложения.</para>
3577 <informalexample>
3578 <para
3579 >Модуль настройки прокси отображается как в Центре управления, так и в диалоговом окне <guilabel
3580 >Настроить Konqueror</guilabel
3581 > приложения &konqueror;</para>
3583 <para
3584 >Отдельные модули настройки можно запустить, используя команду <command
3585 >kcmshell</command
3586 > <replaceable
3587 >module</replaceable
3588 ></para>
3590 <para
3591 >Чтобы запустить модуль настройки прокси, используйте:</para>
3592 <itemizedlist>
3593 <listitem
3594 ><para
3595 ><command
3596 >kcmshell</command
3597 > <filename
3598 >kde-proxy.desktop</filename
3599 ></para
3600 ></listitem>
3601 <listitem
3602 ><para
3603 ><command
3604 >kcmshell</command
3605 > proxy</para
3606 ></listitem>
3607 </itemizedlist>
3609 <para
3610 ><note
3611 ><para
3612 >Не все приложения используют модули настройки, часто диалоговое окно настройки является частью приложения.</para
3613 ></note
3614 ></para>
3615 </informalexample>
3617 <para
3618 >Строго говоря, все модули настройки являются частью меню &kde;.</para>
3620 <itemizedlist>
3621 <listitem>
3622 <para
3623 >Модулям Центра управления обычно соответствуют файлы <literal role="extension"
3624 >.desktop</literal
3625 > из каталога <filename class="directory"
3626 >$<envar
3627 >KDEDIR</envar
3628 >/share/applications/kde</filename
3629 >. Они отсортированы по категориям в скрытом меню <guimenu
3630 >Настройка-Модули</guimenu
3631 >, которому соответствует файл <filename
3632 >kde-settings.menu</filename
3633 > (подключается файлом <filename
3634 >kde-essential.menu</filename
3635 >)</para>
3636 <screen
3637 ><userinput
3638 ><command
3639 >kbuildsycoca</command
3640 > <option
3641 >--menutest</option
3642 > 2&gt; /dev/null | <command
3643 >grep</command
3644 > Настройка-Модули</userinput
3645 ></screen>
3646 </listitem>
3647 <listitem>
3648 <para
3649 >Модулям, зависящим от приложения, обычно соответствует файл <literal role="extension"
3650 >.desktop</literal
3651 > из каталога <filename
3652 >$<envar
3653 >KDEDIR</envar
3654 >/share/applnk/.hidden</filename
3655 >, который соответствует скрытому меню .hidden (подключается в результате <markup
3656 >&lt;KDELegacyDirs/&gt;</markup
3657 >)</para>
3658 <screen
3659 ><userinput
3660 ><command
3661 >kbuildsycoca</command
3662 > <option
3663 >--menutest</option
3664 > 2&gt; /dev/null | <command
3665 >grep</command
3666 > .hidden</userinput
3667 ></screen>
3668 </listitem>
3669 <listitem
3670 ><para
3671 >В &kde; 3.3 можно редактировать модули Центра управления, используя <application
3672 >kcontroledit</application
3673 >. <application
3674 >kcontroledit</application
3675 > работает как <application
3676 >kmenuedit</application
3677 >, изменения относятся только к одному пользователю. Чтобы внести изменения для всех пользователей, используйте <application
3678 >kiosktool</application
3679 >.</para
3680 ></listitem
3682 </itemizedlist>
3684 <para
3685 >Отдельные модули конфигурации можно отключать, добавляя в <filename
3686 >kdeglobals</filename
3687 > следующие строки:</para>
3689 <screen
3690 >[KDE Control Module Restrictions]
3691 <replaceable
3692 >module-id</replaceable
3693 >=false</screen>
3694 <para
3695 >Например, чтобы отключить модуль настройки прокси, используйте</para>
3696 <screen
3697 >[KDE Control Module Restrictions]
3698 kde-proxy.desktop=false</screen>
3699 <para
3700 >Проверьте, доступен ли модуль настройки прокси в диалоговом окне <guilabel
3701 >Настроить Konqueror</guilabel
3702 > и в Центре управления.</para>
3704 </sect1>
3705 <!-- 
3706 <sect1 id="making-it-work">
3707 <title
3708 >Making it Work</title>
3710 Making It Work
3711 KDE 3.2: Set $KDEDIRS from startkde script
3712 Distribute profiles to all clients
3714 </para>
3715 </sect1>
3717 </chapter>
3719 <chapter id="the-lazy-admin">
3720 <title
3721 >Ленивый администратор</title>
3723 <!-- This section appears to need quite a lot of additional words to -->
3724 <!-- make sense. Perhaps it would be better to comment it out if it -->
3725 <!-- can't be updated before the next release (Phil) -->
3726 <!-- FIXME: Commented it out until it's got some more content fleshing it -->
3727 <!-- out (Lauri)
3729 <sect1 id="lazy-admin-overview">
3730 <title
3731 >Overview</title>
3733 <para>
3734 The Lazy Admin
3735 Overview
3736 Deployment
3737         How to get &kde; available on many clients
3738 Remote Desktop Sharing
3739 Take a look at someone else desktop
3740 DCOP
3741         The DCOP command line tool makes it possible to control &kde; applications from the command line
3742 KDialog
3743         A versatile tool to use standard &kde; dialogs in your own scripts
3747 Deployment
3748 Thin Clients
3749 Installing Software
3750 = AutoYaST
3751 = KickStart
3752 Maintaining Settings
3753 = /etc/kderc, other settings
3754 = Use rsync to copy files around
3755 = Shared filesystem such as NFS
3756 o store profiles themselves on NFS
3760 http://www.suse.de/~nashif/autoinstall/index.html
3762 </para>
3763 </sect1>
3765 <sect1 id="remote-desktop-sharing">
3766 <title
3767 >Общий рабочий стол</title>
3769 <para
3770 >Данная функциональность позволяет удалённым пользователям просматривать содержимое вашего экрана и, возможно, управлять вашим компьютером. Для этого необходимо послать пользователю приглашение, возможно защищённое паролем. Это полезно для технической поддержки или для демонстрации какой-либо процедуры.</para>
3772 <para
3773 >Для этого требуются две программы: &krfb; (удалённый framebuffer, VNC-сервер) и &krdc; (удалённое соединение, VNC-клиент).</para>
3775 <para
3776 >При отправке приглашения, создаётся единоразовый пароль, по умолчанию действительный только на одно успешное соединение. Его действие также истекает через час после отсутствия попыток (первого) соединения.</para>
3778 <para
3779 >Входящие соединения обрабатываются модулем kinetd kded. С помощью команды <userinput
3780 ><command
3781 >dcop</command
3782 > kded kinetd services</userinput
3783 > можно увидеть, запущен ли он. &krfb; по умолчанию ожидает соединений на порт 5900. При входящем соединении потребуется подтверждение.</para>
3785 <!-- TODO: Write a bit more here, with a walk through maybe? -->
3787 </sect1>
3789 <sect1 id="kde-diy">
3790 <title
3791 >Создание вашего собственного инструментария</title>
3793 <sect2 id="dcop">
3794 <title
3795 >DCOP</title>
3797 <para
3798 >Desktop COmmunication Protocol, <acronym
3799 >DCOP</acronym
3800 > &ndash; - это простой механизм взаимодействия процессов. <acronym
3801 >DCOP</acronym
3802 > служит для взаимодействия с уже работающими программами. В &kde; входят две программы для работы с <acronym
3803 >DCOP</acronym
3804 >: <application
3805 >dcop</application
3806 >, утилита командной строки и <application
3807 >kdcop</application
3808 > - её графический интерфейс. </para>
3809 <para
3810 >О работе с командой <command
3811 >dcop</command
3812 >: </para>
3814 <para>
3815 <itemizedlist>
3816 <listitem>
3817 <para
3818 ><command
3819 >dcop</command
3820 > [опции] [приложение [объект [функция [аргумент1] [аргумент2] ... ] ] ] </para>
3821 </listitem>
3822 <listitem>
3823 <para
3824 >Приложения, которые могут открывать несколько окон, будут перечислены как &lt;application&gt;-<acronym
3825 >PID</acronym
3826 > </para>
3827 </listitem>
3828 <listitem>
3829 <para
3830 >Все аргументы должны быть указаны с учётом регистра. setFullScreen и setfullscreen - это две разные функции. </para>
3831 </listitem>
3832 <listitem>
3833 <para
3834 >В качестве аргумента для приложения и объекта допускается символ * в качестве шаблона. <screen
3835 ><prompt
3836 >&percnt; </prompt
3837 ><userinput
3838 ><command
3839 >dcop</command
3840 ><option
3841 > kon*</option
3842 ></userinput>
3843 konqueror-16006
3844 konsole-8954
3845 </screen>
3846 </para>
3847 </listitem>
3849 </itemizedlist>
3851 </para>
3853 <para
3854 >Некоторые примеры команд и их вывод показаны ниже: </para>
3856 <informalexample>
3857 <screen
3858 ><prompt
3859 >&percnt; </prompt
3860 ><userinput
3861 ><command
3862 >dcop</command
3863 ><option
3864 > konsole*</option
3865 ></userinput>
3866 konsole-8954
3867 </screen>
3868 <para
3869 >Запущен один экземпляр &konsole; с <acronym
3870 >PID</acronym
3871 >, равным 8954.</para>
3873 <screen
3874 ><prompt
3875 >&percnt; </prompt
3876 ><userinput
3877 ><command
3878 >dcop</command
3879 ><option
3880 > konsole-8954</option
3881 ></userinput>
3882 KBookmarkManager-.../share/apps/kfile/bookmarks.xml
3883 KBookmarkManager-.../share/apps/konqueror/bookmarks.xml
3884 KBookmarkNotifier
3885 KDebug
3886 MainApplication-Interface
3887 konsole (default)
3888 konsole-mainwindow#1
3889 ksycoca
3890 session-1
3891 session-2
3892 session-3
3893 session-4
3894 </screen>
3895 <para
3896 >Здесь видно, что работают четыре сеанса.</para>
3898 <screen
3899 ><prompt
3900 >&percnt; </prompt
3901 ><userinput
3902 ><command
3903 >dcop</command
3904 ><option
3905 > konsole-8954</option
3906 ><option
3907 > konsole</option
3908 ></userinput>
3909 QCStringList interfaces()
3910 QCStringList functions()
3911 int sessionCount()
3912 QString currentSession()
3913 QString newSession()
3914 QString newSession(QString type)
3915 QString sessionId(int position)
3916 void activateSession(QString sessionId)
3917 void nextSession()
3918 void prevSession()
3919 void moveSessionLeft()
3920 void moveSessionRight()
3921 bool fullScreen()
3922 void setFullScreen(bool on)
3923 ASYNC reparseConfiguration()
3924 </screen>
3925 <para
3926 >Здесь показаны опции главной программы &konsole;. </para>
3928 <screen
3929 ><prompt
3930 >&percnt; </prompt
3931 ><userinput
3932 ><command
3933 >dcop</command
3934 ><option
3935 > konsole-8954</option
3936 ><option
3937 > session-1</option
3938 ></userinput>
3939 QCStringList interfaces()
3940 QCStringList functions()
3941 bool closeSession()
3942 bool sendSignal(int signal)
3943 void clearHistory()
3944 void renameSession(QString name)
3945 QString sessionName()
3946 int sessionPID()
3947 QString schema()
3948 void setSchema(QString schema)
3949 QString encoding()
3950 void setEncoding(QString encoding)
3951 QString keytab()
3952 void setKeytab(QString keyboard)
3953 QSize size()
3954 void setSize(QSize size)
3955 </screen>
3956 <para
3957 >Здесь показаны опции для первого сеанса, session-1.</para>
3959 <screen
3960 ><prompt
3961 >&percnt; </prompt
3962 ><userinput
3963 ><command
3964 >dcop</command
3965 ><option
3966 > konsole-8954</option
3967 ><option
3968 > konsole</option
3969 ><option
3970 > setFullScreen</option
3971 ><parameter
3972 > true</parameter
3973 ></userinput
3975 </screen>
3976 <para
3977 >Запускает полноэкранный режим &konsole;.</para>
3979 </informalexample>
3981 <para
3982 >Когда есть несколько приложений или объектов, с каким именно работать? Дайте ссылку. </para>
3983 <screen
3984 ><prompt
3985 >&percnt; </prompt
3986 ><userinput
3987 ><command
3988 >echo</command
3989 ><option
3990 > $KONSOLE_DCOP</option
3991 ></userinput>
3992 DCOPRef(konsole-7547,konsole)
3994 <prompt
3995 >&percnt; </prompt
3996 ><userinput
3997 ><command
3998 >dcop</command
3999 ><option
4000 > $KONSOLE_DCOP</option
4001 ><option
4002 > newSession</option
4003 ></userinput>
4004 session-6
4006 <prompt
4007 >&percnt; </prompt
4008 ><userinput
4009 ><command
4010 >dcopstart</command
4011 ><option
4012 > konsole</option
4013 ></userinput>
4014 konsole-9058
4017 #!/bin/sh
4018 konsole=$(dcopstart konsole-script)
4019 session=$(dcop $konsole konsole currentSession)
4020 dcop $konsole $session renameSession Local
4022 session=$(dcop $konsole konsole newSession)
4023 dcop $konsole $session renameSession Remote
4025 session=$(dcop $konsole konsole newSession)
4026 dcop $konsole $session renameSession Code
4027 dcop $konsole $session sendSession 'cd /my/work/directory'
4029 </screen>
4031 </sect2>
4033 <sect2 id="kdialog">
4034 <title
4035 >KDialog</title>
4036 <subtitle
4037 >Создание собственных утилит</subtitle>
4039 <para
4040 >Диалоги &kde; можно вызывать в своих сценариях, тем самым сочетая мощь языка сценариев &UNIX; с удобством работы в &kde;.</para>
4042 <screen
4043 ><userinput
4044 ><command
4045 >kdialog</command
4046 > <option
4047 >--msgbox 'Вам письмо!'</option
4048 ></userinput
4049 ></screen>
4051 <screen
4052 ><userinput
4053 ><command
4054 >kdialog</command
4055 > <option
4056 >--title 'Новая почта'</option
4057 > <option
4058 >--msgbox 'Вам письмо!'</option
4059 ></userinput
4060 ></screen>
4062 <para
4063 >Компонент <application
4064 >KDialog</application
4065 > может быть заменён с помощью опции <option
4066 >--caption</option
4067 ></para>
4069 <screen
4070 ><userinput
4071 ><command
4072 >kdialog</command
4073 > <option
4074 >--title 'Новая почта'</option
4075 > <option
4076 >--msgbox 'Вам письмо!'</option
4077 > <option
4078 >--dontagain myfile:mykey</option
4079 ></userinput
4080 ></screen>
4082 <para
4083 >Сохраняет параметр, определяющий, нужно ли показывать диалог ещё раз, в файле <filename
4084 >$<envar
4085 >KDEHOME</envar
4086 >/share/config/myfile</filename
4087 >, дописывая в него следующие строки:</para>
4089 <screen
4090 >[Notification Messages]
4091 mykey=false</screen>
4093 <para
4094 >Вместо аргумента <option
4095 >--msgbox</option
4096 > можно применять <option
4097 >--sorry</option
4098 > и <option
4099 >--error</option
4100 >, когда это необходимо. Например, <command
4101 >kdialog</command
4102 > <option
4103 >--sorry 'Сеть недоступна'</option
4104 > или <command
4105 >kdialog</command
4106 > <option
4107 >--error 'Не удаётся открыть почтовый ящик'</option
4108 >.</para>
4110 <para
4111 >Можно также создавать окна сообщений с кнопками Да и Нет.</para>
4113 <screen
4114 ><command
4115 >kdialog</command
4116 > <option
4117 >--yesno 'Подключиться к Internet?'</option
4118 > <command
4119 >echo</command
4120 > <returnvalue
4121 >$?</returnvalue
4122 ></screen>
4124 <informaltable>
4125 <tgroup cols="2">
4126 <thead>
4127 <row>
4128 <entry
4129 >Возвращаемое значение</entry>
4130 <entry
4131 >Что означает</entry>
4132 </row>
4133 </thead>
4134 <tbody>
4135 <row
4136 ><entry
4137 >0</entry
4138 ><entry
4139 >Да, OK, Продолжить</entry
4140 ></row>
4141 <row
4142 ><entry
4143 >1</entry
4144 ><entry
4145 >Нет</entry
4146 ></row>
4147 <row
4148 ><entry
4149 >2</entry
4150 ><entry
4151 >Отмена</entry
4152 ></row>
4153 </tbody>
4154 </tgroup>
4155 </informaltable>
4157 <para
4158 >Обязательно сохраните результат в переменной, если он вам ещё будет нужен. Следующая команда присвоит значение $?. Здесь также допускается применять <option
4159 >--dontagain</option
4160 >, чтобы запомнить выбор пользователя и больше не задавать ему этот вопрос.</para>
4162 <para
4163 >Дальнейшие вариации:</para>
4165 <variablelist>
4166 <varlistentry>
4167 <term
4168 ><option
4169 >--warningyesno</option
4170 ></term>
4171 <listitem>
4172 <para
4173 >Как опция <option
4174 >--yesno</option
4175 >, но с другим значком</para>
4176 </listitem>
4177 </varlistentry>
4178 <varlistentry>
4179 <term
4180 ><option
4181 >--warningcontinuecancel</option
4182 ></term>
4183 <listitem
4184 ><para
4185 >С кнопками <guibutton
4186 >Продолжить</guibutton
4187 > и <guibutton
4188 >Отмена</guibutton
4189 >.</para>
4190 </listitem>
4191 </varlistentry>
4192 <varlistentry>
4193 <term
4194 ><option
4195 >--warningyesnocancel</option
4196 ></term>
4197 <listitem
4198 ><para
4199 >С кнопками <guibutton
4200 >Да</guibutton
4201 >, <guibutton
4202 >Нет</guibutton
4203 > и <guibutton
4204 >Отмена</guibutton
4205 >. Например:</para>
4206 <screen
4207 ><command
4208 >kdialog</command
4209 > <option
4210 >--warningyesnocancel 'Сохранить изменения?'</option
4211 ></screen>
4212 </listitem>
4213 </varlistentry>
4214 </variablelist>
4216 <screen
4217 ><command
4218 >kdialog</command
4219 > <option
4220 >--inputbox "Введите имя:" "ваше-имя"</option
4221 ></screen>
4223 <para
4224 >Результат выводится в stdout. Его можно сохранить в переменной: <userinput
4225 >name=$(kdialog --inputbox "Введите имя:" "ваше-имя")</userinput
4226 >. Последний аргумент указывать необязательно, он служит как начальное значение в диалоге.</para>
4228 <screen
4229 ><userinput
4230 ><varname
4231 >password</varname
4232 >=$(<command
4233 >kdialog</command
4234 > <option
4235 >--password "Введите пароль:"</option
4236 >)</userinput
4237 ></screen>
4239 <para
4240 >Аргумент <option
4241 >--dontagain</option
4242 > не применяется совместно с <option
4243 >--inputbox</option
4244 > или <option
4245 >--password</option
4246 ></para>
4248 <para
4249 >В двух следующих диалогах пользователь может выбирать в списке:</para>
4251 <variablelist>
4252 <varlistentry>
4253 <term
4254 ><option
4255 >--menu</option
4256 ></term>
4257 <listitem>
4258 <para
4259 >Список, в котором можно выбрать только один элемент.</para>
4260 </listitem>
4261 </varlistentry>
4262 <varlistentry>
4263 <term
4264 ><option
4265 >--checklist</option
4266 ></term>
4267 <listitem>
4268 <para
4269 >Список, в котором можно выбрать несколько элементов.</para>
4270 </listitem>
4271 </varlistentry>
4272 </variablelist>
4274 <screen
4275 ><userinput
4276 ><varname
4277 >city</varname
4278 >=$(<command
4279 >kdialog</command
4280 > <option
4281 >--menu "Выберите город" a Москва b Самара c Киев d Рига</option
4282 >)</userinput
4283 ></screen>
4285 <para
4286 ><varname
4287 >$city</varname
4288 > вернёт <returnvalue
4289 >a</returnvalue
4290 >, <returnvalue
4291 >b</returnvalue
4292 >, <returnvalue
4293 >c</returnvalue
4294 > или <returnvalue
4295 >d</returnvalue
4296 >.</para>
4298 <screen
4299 ><userinput
4300 ><varname
4301 >city</varname
4302 >=$(<command
4303 >kdialog</command
4304 > <option
4305 >--checklist "Выберите города" a Москва off b Самара on c Киев on d Рига off</option
4306 >)</userinput
4307 ></screen>
4309 <para
4310 >Будут заранее выбраны Самара и Киев. Результат выбора этих городов: <returnvalue
4311 >"b"</returnvalue
4312 > <returnvalue
4313 >"c"</returnvalue
4314 >.</para>
4316 <para
4317 >С опцией <option
4318 >--separate-output</option
4319 > <returnvalue
4320 >b</returnvalue
4321 > и <returnvalue
4322 >c</returnvalue
4323 > будут выведены с новой строки, при этом обработать результат будет проще.</para>
4325 <screen
4326 >file=$(kdialog --getopenfilename $HOME)
4327 file=$(kdialog --getopenfilename $HOME "*.png *.jpg|Файлы изображений")
4328 file=$(kdialog --getsavefilename $HOME/SaveMe.png)
4329 file=$(kdialog --getexistingdirectory $HOME)</screen>
4331 </sect2>
4333 </sect1>
4335 </chapter>
4336 &groupware-with-kontact; </part>
4338 <!-- Keep this comment at the end of the file
4339 Local variables:
4340 mode: xml
4341 sgml-omittag:nil
4342 sgml-shorttag:nil
4343 sgml-namecase-general:nil
4344 sgml-general-insert-case:lower
4345 sgml-minimize-attributes:nil
4346 sgml-always-quote-attributes:t
4347 sgml-indent-step:0
4348 sgml-indent-data:true
4349 sgml-parent-document:("index.docbook" "book" "part")
4350 sgml-exposed-tags:nil
4351 sgml-local-catalogs:nil
4352 sgml-local-ecat-files:nil
4353 End: