diff options
Diffstat (limited to 'tde-i18n-ru/docs/tdebase/userguide/under-the-hood.docbook')
-rw-r--r-- | tde-i18n-ru/docs/tdebase/userguide/under-the-hood.docbook | 636 |
1 files changed, 636 insertions, 0 deletions
diff --git a/tde-i18n-ru/docs/tdebase/userguide/under-the-hood.docbook b/tde-i18n-ru/docs/tdebase/userguide/under-the-hood.docbook new file mode 100644 index 00000000000..7edddeecc84 --- /dev/null +++ b/tde-i18n-ru/docs/tdebase/userguide/under-the-hood.docbook @@ -0,0 +1,636 @@ +<chapter id="tinkering-under-the-hood"> +<!-- Uncomment the <*info +> below and add your name to be --> +<!-- credited for writing this section. --> + +<!-- +<chapterinfo> +<authorgroup> +<author> +<firstname +>Your First Name here</firstname> +<surname +>Your Surname here </surname> +</author> +</authorgroup> +</chapterinfo> +--> + +<title +>Тонкая настройка &kde;</title> + +<sect1 id="hand-editing-config-files"> + +<sect1info> +<author +><personname +> <firstname +>Nicolas</firstname +> <surname +>Goutte</surname +> </personname +> <email +>[email protected]</email +> </author> +</sect1info> + +<title +>Ручное редактирование файлов конфигурации</title> + +<sect2 id="hand-editing-intro"> +<title +>Введение</title> +<para +>Файлы конфигурации &kde; можно редактировать любым текстовым редактором, например, &kate;, так как они - обычные текстовые файлы.</para> + +<para +>Пример файла:</para> + +<programlisting +>[General] +AutoSave=1 +LastFile=/var/tmp/test.txt</programlisting> + +<para +>Пользовательские параметры хранятся в каталоге <filename class="directory" +>.kde/share/config</filename +> (замените <filename +>.kde</filename +> на значение переменной $<envar +>KDEHOME</envar +> в вашей системе), общесистемные - в подкаталоге <filename class="directory" +>share/config</filename +> корневого каталога &kde;. (Для того чтобы узнать путь к этому каталогу, выполните <command +>kde-config --prefix</command +>.) Имена файлов обычно заканчиваются символами rc (без точки), например, <filename +>kopeterc</filename +>.</para> + +<warning +><para +>При редактировании файлов конфигурации вручную стабильность &kde; может быть нарушена, так как большинство приложений не проверяет правильность параметров при чтении.</para +></warning> + +</sect2> + +<sect2 id="hand-editing-backups"> +<title +>Резервные копии</title> + +<para +>Создавайте резервные копии файлов перед тем, как их изменять. Резервные копии лучше всего хранить вне подкаталога <filename class="directory" +>.kde</filename +> (или другого каталога, на который указывает $<envar +>KDEHOME</envar +>). Резервные копии могут помочь вам и в случае системного сбоя &kde;, уничтожившего важные файлы конфигурации (например, файл конфигурации &kmail; - <filename +>kmailrc</filename +>). (Такие сбои не должны случаться, но они всё-таки случаются.)</para> +</sect2> + +<sect2 id="hand-editing"> +<title +>Редактирование</title> + +<para +>Зачем вообще может понадобиться изменять файлы конфигурации? Во-первых, это необходимо при переводе системы в режим KIOSK. Разработчик приложения может попросить вас добавить параметр, чтобы помочь ему решить проблему с программой. Возможно, вы захотите устранить затруднения в работе с системой, не удаляя весь каталог <filename class="directory" +>.kde</filename +>. Наконец, таким способом можно узнать больше о &kde;.</para> + +<para +>В любом из этих случаев вам может понадобиться вручную отредактировать файл конфигурации.</para> + +<para +>Приступая к редактированию, убедитесь, что приложение, которое использует файл, не запущено. Если это один из системных файлов конфигурации, редактируйте его, не запуская &kde;.</para> + +<para +>Готовы? Теперь сделайте резервную копию файла (надеюсь, вы об этом не забыли?), запустите ваш любимый редактор (предположим, это &kate;) и откройте файл (убедитесь, что используется кодировка UTF-8, &kate; отображает её как <quote +>utf8</quote +>).</para> + +<para +>Перед вами файл вида</para> + +<programlisting +>[Имя_группы] +Ключ1=Значение1 +Ключ2=Значение2 +Ключ3=Значение3</programlisting> + +<para +>Теперь отредактируйте его (будьте внимательны!) и сохраните (в кодировке <acronym +>UTF-8</acronym +>).</para> + +<para +>Теперь проверьте, как работает приложение. Если его поведение вас не устраивает, закройте его и восстановите файл конфигурации из резервной копии.</para> + +<itemizedlist> +<title +>Связанная информация</title> + + +<listitem +><para +><xref linkend="kde-for-administrators"/> включает информацию о структуре каталогов &kde;. Это поможет вам найти файл, который вы хотите отредактировать.</para> +</listitem> + +</itemizedlist> + +</sect2> + +</sect1> + +<sect1 id="scripting-the-desktop"> +<title +>Создание сценариев</title> + +<para +>&kde; использует мощный механизм взаимодействия между процессами - &DCOP;, Desktop COmmunication Protocol. С помощью &DCOP; вы можете управлять &kde; из командной строки или с помощью сценария, написанного на вашем любимом интерпретируемом языке. Также вы можете получать информацию от приложений &kde;, например, несколько мультимедийных проигрывателей &kde; могут возвращать информацию о текущем файле.</para> + +<para +>Каждое приложение &kde; включает не менее одного <firstterm +>интерфейса</firstterm +> &DCOP;, который, в свою очередь, содержит методы (или функции, как вам угодно), которые могут быть вызваны другими приложениями. Если вы собираетесь использовать &DCOP;, в первую очередь следует найти функцию, с помощью которой вы можете выполнить свою задачу. Самый простой способ узнать доступные методы &DCOP; - использовать программу <application +>kdcop</application +>.</para> + +<para +>Запустите <application +>kdcop</application +> из &konsole; или через окно запуска программ (выводится по <keycombo action="simul" +>&Alt;<keycap +>F2</keycap +> </keycombo +>). В окне <application +>kdcop</application +> в виде дерева показываются запущенные в данный момент приложения, которые предоставляют интерфейсы &DCOP;. Для того чтобы найти нужную функцию, иногда приходится поискать по этому дереву, однако запомните, что интерфейс, отмеченный <quote +>(по умолчанию)</quote +>, обычно содержит наиболее часто используемые функции.</para> + + + +<para +>Для того чтобы выяснить, делает ли функция то, что вы от неё ожидаете, щёлкните дважды на пункте <guilabel +>setColor</guilabel +>. Для того чтобы установить цвет (переменная <varname +>c</varname +>), щёлкните на кнопке выбора цвета и укажите требуемый цвет. Если вы хотите, чтобы цвет был основным, установите флажок. Нажмите ОК, и будет установлен новый цвет фона.</para> + +<para +>Для того чтобы обратиться к методу &DCOP;, используя ваш любимый интерпретируемый язык, вы можете употреблять связки &DCOP;, если они доступны в модуле tdebindings, или использовать приложение <command +>dcop</command +>. Для простых вызовов достаточно <command +>dcop</command +>. Для того чтобы вызвать метод &DCOP; из командной строки, мы должны указать приложение, интерфейс, которому принадлежит функция, её имя и аргументы. Форма вызова зависит от оболочки.</para> + +<para +>Мы указываем данные в порядке приложение-интерфейс-метод-аргументы (аргументы в том порядке, в котором они отображаются в <application +>kdcop</application +>. Программа <command +>dcop</command +> имеет множество опций: см. <userinput +><command +>dcop</command +> <option +>--help</option +></userinput +>.</para> + +<para +>От теории перейдём к практике:</para> + +<example> +<title +>Сценарий изменения цвета фона с помощью функций &DCOP;</title> + +<para +>Мы создадим простой сценарий на Perl, использующий функции <command +>dcop</command +>. Он будет циклически изменять цвет фона рабочего стола (в порядке спектра).</para> + +<para +>Сначала с помощью <application +>kdcop</application +> найдём подходящий метод. В этом примере мы опустим описание процесса поиска: нам требуется метод <menuchoice +><guimenu +>kdesktop</guimenu +><guisubmenu +>KBackgroundIface</guisubmenu +><guimenuitem +>setColor</guimenuitem +> </menuchoice +>. Аргументы и тип возвращаемого значения функции отображаются в соответствии с синтаксисом C++. Аргументы функции <methodname +>setColor</methodname +>: цвет (переменная <varname +>c</varname +>) - задаёт новый цвет фона, и двоичная переменная, <varname +>isColorA</varname +>, которая указывает, является цвет основным или вторичным (имеет значение, если фон формируется из 2-х цветов, т. е. используется градиент).</para> + +<para +>Вызов метода <methodname +>setColor</methodname +> производится так: <screen +><prompt +>%</prompt +> <userinput +><command +>dcop</command +> kdesktop KBackgroundIface setColor '#ffffff' false</userinput +> +</screen> +</para> + +<para +>Значение RGB для цвета указывается в 16-ричной форме, как в &HTML;. Обратите внимание, что значение заключается в одинарные кавычки, чтобы оболочка правильно обработала символ <token +>#</token +>.</para> + +<para +>Для того чтобы узнать значение RGB для какого-либо цвета, откройте любой диалог выбора цвета в приложении &kde; (например, в Центре управления - <menuchoice +><guimenu +>Внешний вид и темы</guimenu +><guimenuitem +>Цвета</guimenuitem +></menuchoice +>) и выберите желаемый цвет. Значение RGB отобразится в поле <guilabel +>HTML</guilabel +>.</para> + + +<para +>Больше &DCOP; применять не потребуется, можно перейти к созданию сценария. Вот пример реализации (не самый аккуратный): <programlisting +><![CDATA[ +$min=49; # Минимальное значение интенсивности красной, зелёной или синей составляющей цвета +$max=174; # Максимальное значение интенсивности красной, зелёной или синей составляющей цвета +$step=5; # На эту величину значение будет изменяться на каждом шаге +$sleeptime=15; # Пауза между изменениями цвета + +@start = ($max, $min, $min); +@colour = @start; + +while (1) { + foreach (0..5) { + my $which = $_ % 3; # Какой цвет (красный, зелёный или синий) изменять + my $updown = $_ % 2; # Увеличивать или уменьшать интенсивность + do { + if ($updown == 0) { $colour[$which]+=$step; } + if ($updown == 1) { $colour[$which]-=$step; } + my $dcopcall=sprintf "dcop kdesktop KBackgroundIface setColor '#%x%x%x' true\n", @colour; + system($dcopcall); + sleep $sleeptime; + } while (($colour[$which] +>= $min) and ($colour[$which] <= $max)); + } +} +]]> +</programlisting> +</para> + +<para +>Запустите сценарий без аргументов, и он будет циклически изменять цвет фона рабочего стола в заданном порядке, пока не будет остановлен. <foreignphrase +>Вот, собственно, и всё</foreignphrase +>!</para> + +</example> + +<para +>Конечно, вы можете создавать сценарии, использующие &DCOP;, не только на Perl; если вы предпочитаете сценарии оболочки - пожалуйста:</para> + +<example> +<title +>Установка фона через Интернет</title> + +<para +>Следующий сценарий скачивает основной рисунок комикса <quote +>User Friendly</quote +> и устанавливает его в качестве фона рабочего стола. Сценарий использует общедоступные инструменты и функции &DCOP;.</para> + +<programlisting +><![CDATA[ +#!/bin/sh +COMICURL=`wget -qO - http://www.userfriendly.org/static/index.html | \ + grep Latest | sed -e "s,.*SRC=\",," -e "s,\" +>.*,,"` +TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1 +wget -q -O $TMPFILE $COMICURL +dcop kdesktop KBackgroundIface setWallpaper $TMPFILE 1 +]]> +</programlisting> + +<para +>Первая строка сценария (после #!/bin/sh) с помощью <command +>wget</command +> и регулярных выражений получает адрес рисунка из основной &HTML;-страницы ресурса. Вторая и третья скачивают рисунок и, наконец, функция <command +>dcop</command +> помещает рисунок на рабочий стол.</para> + +</example> + + +<!-- <itemizedlist> +<title +>Related Information</title> +<listitem +><para +>to be written</para> +</listitem> +</itemizedlist +> --> + + +</sect1> + + +<sect1 id="adding-extra-keys"> +<title +>Добавление дополнительных комбинаций клавиш в &kde;</title> + +<para +>На многих современных клавиатурах есть дополнительные клавиши, которые по умолчанию не используются.</para> + +<para +>Клавиши мультимедийных функций обычно генерируют сигнал и могут быть использованы в комбинациях так же, как и обычные. Однако некоторые клавиши не обнаруживаются, поэтому бесполезно пытаться включить их в комбинации.</para> + +<para +>Например, некоторые ноутбуки IBM рядом с клавишами "влево"-"вправо" имеют дополнительные клавиши, которые выглядят как <guiicon +>page left</guiicon +> и <guiicon +>page right</guiicon +>.</para> + +<procedure> +<step +><para +>Для того чтобы узнать код клавиш, используйте <command +>xev</command +>. В указанном примере это 233 и 234. </para +></step> +<step +><para +>Выберите символы, которые будут соответствовать клавишам. Многие символы по умолчанию не используются, так что выбор есть. Список находится в файле <filename +>/usr/X11R6/include/X11/keysymdef.h</filename +> (или его эквиваленте в вашей системе).</para +></step> +<step +><para +>В домашнем каталоге создайте файл <filename +>.Xmodmap</filename +> и добавьте в него следующие строки:</para> +<screen +>keycode 233 = Next_Virtual_Screen +keycode 234 = Prev_Virtual_Screen</screen> +</step> +<step +><para +>Выполните команду <userinput +><command +>xmodmap</command +> <filename +>~/.Xmodmap</filename +></userinput +></para +></step> +</procedure> + +<para +>Теперь программа <command +>xev</command +> при нажатии этих клавиш должна отображать символы, которые вы с ними связали. Вы можете использовать эти клавиши в комбинациях.</para> + +<itemizedlist> +<title +>Связанная информация</title> +<listitem +><para +>Для того чтобы прочитать руководство <command +>xev</command +>, введите <userinput +>man:/xev</userinput +> в строке адреса окна &konqueror; или <userinput +><command +>man</command +> xev</userinput +> - в окне терминала.</para +></listitem> +</itemizedlist> + +</sect1> + +<sect1 id="keys-for-scripts"> +<title +>Добавление комбинаций клавиш для новых действий</title> + +<para +>Вы можете назначить комбинации клавиш для большей части действий в приложениях и на рабочем столе. Вы можете сделать это, даже если добавили это действие сами, и оно не доступно стандартными способами.</para> + +<para +>В одном из примеров мы совместим материал из двух предыдущих разделов с помощью клавиш, которые мы рассматривали в секции <xref linkend="adding-extra-keys"/>, будет осуществляться переход к следующему и предыдущему рабочему столу. Для этого нам потребуются две функции DCOP (последний рассматривается в разделе <xref linkend="scripting-the-desktop"/>).</para> + +<para +>Это достигается следующим образом:</para> + +<procedure> +<step> +<para +>Откройте Центр управления KDE, в секции <guilabel +>Региональные и специальные возможности</guilabel +> выберите <guilabel +>Действия</guilabel +>.</para> +</step> +<step> +<para +>Нажмите кнопку <guibutton +>Создать действие</guibutton +></para> +</step> +<step> +<para +>Присвойте ему имя, например, <userinput +>Следующий рабочий стол</userinput +></para> +</step> +<step> +<para +>Выберите <guilabel +>тип действия</guilabel +>: <guilabel +>Комбинация клавиш -> Команда/URL (простой)</guilabel +></para> +</step> +<step> +<para +>Перейдите на закладку <guilabel +>Комбинации клавиш</guilabel +>, щёлкните на кнопке и нажмите клавиши, которые хотите использовать. В нашем примере это клавиша <guiicon +>Next Page</guiicon +>. В поле будет отображаться символ <keysym +>Next_Virtual_Screen</keysym +>.</para> +</step> +<step> +<para +>На закладке <guilabel +>Параметры команды/URL</guilabel +> введите команду <userinput +><command +>dcop twin default nextDesktop</command +></userinput +></para> +</step> +</procedure> + +<para +>Повторите эти действия для клавиши <keysym +>Prev_Virtual_Screen</keysym +> (укажите команду <userinput +><command +>dcop twin default previousDesktop</command +></userinput +>).</para> + +<para +>Теперь при нажатии клавиш <keysym +>Prev_Virtual_Screen</keysym +> и <keysym +>Next_Virtual_Screen</keysym +> вы будете переходить к предыдущему и следующему виртуальному рабочему столу соответственно.</para> + +<para +>Вы можете связать любую свободную клавишу с любым свободным действием.</para> + +<itemizedlist> +<title +>Связанная информация</title +> +<listitem +><para +>Для того чтобы просмотреть документацию <application +>KHotKeys</application +>, выберите этот раздел в &khelpcenter; или введите <userinput +>help:/khotkeys</userinput +> в строке адреса окна &konqueror;.</para +></listitem +> +<listitem +><para +><xref linkend="adding-extra-keys"/></para +></listitem> +<listitem +><para +><xref linkend="scripting-the-desktop"/></para +></listitem> +</itemizedlist> + +</sect1> + +<sect1 id="kdebugdialog"> +<sect1info> +<authorgroup> +<author +><personname +> <firstname +>Adriaan</firstname +> <surname +>de Groot</surname +> </personname +> <email +>[email protected]</email +> </author> +</authorgroup> +</sect1info> + +<title +>&kdebugdialog; - настройка вывода отладочной информации &kde;</title> + +<sect2 id="kdebugdialog-basic-usage"> +<title +>Основы использования</title> + +<para +>&kdebugdialog; по умолчанию не указан в &kmenu;. Для того чтобы запустить его, введите команду <userinput +><command +>kdebugdialog</command +></userinput +> в окне терминала или окне запуска программ. Программа выведет список различных областей отладочной информации. Для того чтобы включить/выключить вывод отладочной информации соответствующих частей &kde;, установите/снимите флажок рядом с названием.</para> + +<para +>Список областей отладки отсортирован по номерам, а не по алфавиту, поэтому kio (127) идёт перед artskde (400). Максимальный номер - около 200000, но областей всего 400. Для того чтобы найти требуемую, вам не придётся листать весь список: укажите в поле ввода в верхней части окна часть названия области, и в списке будут отображаться только те области, названия которых содержат указанную строку. Например, если вы введёте <userinput +>k</userinput +>, список уменьшится ненамного, но если вы введёте <userinput +>kont</userinput +>, в списке останется только пункт &kontact;. Используя кнопки <guibutton +>Выбрать всё</guibutton +> и <guibutton +>Отменить весь выбор</guibutton +>, вы можете заставить &kde; выдавать как огромное количество отладочной информации, так и очень небольшое.</para> +</sect2> + +<sect2 id="kdebugdialog-fullmode"> +<title +>Полный режим KDebugDialog</title> + +<!-- this text partly taken from the kdebugdialog handbook --> + +<para +>В полном режиме (команда kdebugdialog --fullmode) доступны те же области отладки, что и в обычном режиме, но теперь вы выбираете настраиваемую область из выпадающего списка и настраиваете каждую из них отдельно. Вы можете указать, куда будут выводиться сообщения следующих типов: Информация, Предупреждение, Ошибка и Критическая ошибка. </para> + +<para +>В файл (вы должны будете указать имя). Файл будет создан в вашем домашнем каталоге.</para> + +<para +>Вывод окна с сообщением. Каждое отладочное сообщение отображается в диалоговом окне. Нажмите <guibutton +>ОК</guibutton +>, чтобы приложение, отправившее сообщение, продолжило работу.</para> + +<para +>Вывод в оболочку (значение по умолчанию). Сообщения отправляются в поток stderr, и будут либо отображены в окне оболочки, из которого приложение было запущено, либо дописаны в файл <filename +>.xsession-errors</filename +>.</para> + +<para +>Запись в журнал системных сообщений. Сообщение отправляется процессу syslog, который производит дальнейшую обработку.</para> + +<para +>Ничего. Вывод сообщения подавляется.</para> + +<para +>Для критических ошибок не следует выбирать значение Ничего или Журнал системных сообщений, так как в обоих случаях вы, скорее всего, не увидите сообщение, а процесс приложения просто будет остановлен по неизвестной причине. Будет процесс остановлен при критической ошибке или нет, определяет флажок <guilabel +>Отмена при фатальных ошибках</guilabel +>, который по умолчанию установлен — но критическая ошибка и так почти всегда означает остановку приложения (в результате сбоя).</para> + +<!-- Add links to "further reading" here --> +<!-- <itemizedlist> +<title +>Related Information</title> +<listitem +><para +>to be written</para> +</listitem> +</itemizedlist +>--> + + + +</sect2> +</sect1> +</chapter> + +<!-- Keep this comment at the end of the file +Local variables: +mode: xml +sgml-omittag:nil +sgml-shorttag:nil +sgml-namecase-general:nil +sgml-general-insert-case:lower +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:0 +sgml-indent-data:true +sgml-parent-document:("index.docbook" "book" "chapter") +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +--> |