Валдо
Бастијан
bastian@kde.org
Филип
Родригез
&Philip.Rodrigues.mail;

# КДЕ за администраторе

## Изнутрице КДЕ‑а

### Преглед

треба да се напише

### Распоред фасцикли

КДЕ дефинише хијерархију фајл система коју користи уже окружење КДЕ‑а као и сви КДЕ програми. Уопштено, КДЕ складишти све своје фајлове у стаблу фасцикли са утврђеном структуром.

КДЕ подразумевано користи два стабла фасцикли:

- Једно на нивоу система (на пример `/opt/kde3`).

- Једно на нивоу корисника у његовој домаћој фасцикли (обично `~/.kde`)

У својству систем-администратора, можете стварати додатна стабла. Таква додатна стабла могу се користити за профиле

Линукс СуСЕ, на пример, користи:

- `$`HOME`/.kde`

- `/opt/kde3`. (Ово је типично за СуСЕ — друге дистрибуције могу користити `/usr` или `/usr/kde3`)

- `/etc/opt/kde3`. (Ово су додали у СуСЕу.)

Ако имате инсталирану Админ-алатка Киоска, верзију 0.7 или новију, можете проверити која се стабла фасцикли користе следећом наредбом: ``kiosktool-kdedirs` `--check``

КДЕ и КДЕ програми траже фајлове скенирањем свих КДЕ‑ових стабала фасцикли. Стабла фасцикли проверавају се по редоследу првенства. Ако је фајл присутан у неколико стабала, предност има последње стабло. Највеће првенство обично има стабло смештено у корисниковој домаћој фасцикли. Ово је и стабло фасцикли у које се уписују измене.

За информације о МИМЕ типу `text/plain`, претражују се следећи фајлови:

- `$`HOME`/.kde/share/mimelnk/text/plain.desktop`

- `/opt/kde3/share/mimelnk/text/plain.desktop`

- `/etc/opt/kde3/share/mimelnk/text/plain.desktop`

Ако корисник направи измену, она се уписује у `$`HOME`/.kde/share/mimelnk/text/plain.desktop`

За поставне фајлове се прича незнатно разликује. Ако се у стаблима фасцикли нађе више истоимених поставних фајлова, њихов садржај се комбинује. Овде игра улогу редослед првенства. Кад два фајла дефинишу исти поставни кључ, фајл са највећим првенством одређује која се вредност користи за кључ.

Ако, на пример, постоје следећа два фајла са садржајима:

`$`HOME`/.kde/share/config/foobar`

      Color=red
      Shape=circle

`/etc/opt/kde3/share/config/foobar`

      Color=blue
      Position=10,10

Фајлови ће бити стопљени и произвести:

    Color=red
    Shape=circle
    Position=10,10

### Задавање фасцикли

Променљива окружења Примери поставки Коментар `KDEHOME` `~/.kde` `KDEROOTHOME` `/root/.kde` Различита променљива да спречи писање корена у $`KDEHOME` корисника по извршавању `su`. `KDEDIR` `/opt/kde3`, `/usr`, `/usr/kde3` Зависи од издавача. Користи је КДЕ‑2. Ако није постављена, спада на уграђено подразумевано. `KDEDIRS` `/opt/kde3`, `/usr`, `/usr/kde3` Нова у КДЕ‑у 3. Може да набраја вишеструке локације, раздвојене двотачком. Ако није постављена, спада на $`KDEDIR`

Не мора да се поставља, фино раде и подразумеване.

Радите с КДЕ‑ом 2 поред КДЕ‑а 3? Уперите $`KDEDIR` на КДЕ‑2, а $`KDEDIRS` на КДЕ‑3.

Запослени на универзитету могао би имати следеће поставке:

    KDEHOME='~/.kde3'
    KDEROOTHOME='/root/.kde3'
    KDEDIRS='/opt/kde_staff:/opt/kde3'

### Кориснички профили

У претходном примеру, у `/opt/kde_staff` садржане су додатне поставке и програми за особље. Кориснички профили вам омогућавају додавање ове фасцикле само за неке кориснике, а не за остале. Фајлу `/etc/kderc` додајте ово:

    [Directories-staff]
    префикси=/opt/kde_staff

Ово ствара профил по имену `staff` који додаје стабло фасцикли `/opt/kde_staff`. (СуСЕ користи `/etc/kde3rc` уместо `/etc/kderc`). Сад кад имамо именовани профил, он се може доделити корисницима.

Да бисмо мапирали профиле корисницима, треба задати мапирајући фајл у `/etc/kderc`:

    [Directories]
    userProfileMapFile=/etc/kde-user-profile

Сада је могуће доделити профил на основу или корисничког имена или уникс групе којој корисник припада.

За доделу профила особља свим корисницима који су чланови уникс групе `staff_members`, додајте следеће фајлу `/etc/kde-user-profile`:

    [General]
    groups=staff_members
    [Groups]
    staff_members=staff

Профил је могуће доделити и појединачном кориснику:

    [Users]
    bastian=staff

### Још једном о распореду фасцикли

Свако стабло фасцикли које КДЕ користи има утврђену структуру фасцикли. Фасцикле које нису битне за одређено стабло, или се просто не користе, могу се пак изоставити. На пример, фасцикле за привремене фајлове обично се могу наћи само под `$`KDEHOME``, али не у било ком другом стаблу фасцикли.

### Архитектури својствене фасцикле

Архитектури својствене фасцикле (тип ОС‑а или ЦПУ‑а):

`bin`

  Користи се за извршне фајлове КДЕ‑а.

`lib`

  Користи се за библиотеке КДЕ‑а.

`lib/kde3`

  Ова фасцикла садржи компоненте, прикључке и друге објекте учитљиве за извршавања које користе КДЕ програми.

### Дељене фасцикле

Дељене: које нису архитектури својствене, већ се могу делити између различитих.

`share/applnk`

  .десктоп фајлови за К‑мени (старо)

`share/applications`

  .десктоп фајлови за К‑мени (од КДЕ‑а 3.2)

`share/apps`

  Садржи програмима својствене фајлове. Сваки програм овде има потфасциклу за складиштење додатних фајлова.

`share/config`

  Поставни фајлови. Поставни фајлови се обично именују по наредби програма ком припадају, уз додатак слова `rc`. Посебан случај је фајл `kdeglobals`, који читају сви КДЕ програми.

`share/config/session`

  Ова фасциклу користи управљање сесијама и обично је доступна само под `$`KDEHOME``. На крају сесије, КДЕ програми овде складиште своје стање. Имена фајла састоје се од имена наредбе програма, за којом следи број. Менаџер сесија `ksmserver` складишти упућивања на ове бројеве при уписивању сесије у `ksmserverrc`.

`share/doc/HTML`

  Ова фасцикла садржи документацију КДЕ програмâ. Документација је подељена на категорије, по језику и програму којем припада. У фасцикли се обично могу наћи најмање два фајла: `index.docbook`, који садржи сирову документацију у формату докбук, и `index.cache.bz2`, који садржи исту ту документацију у облику компресованог ХТМЛ‑а. ХТМЛ верзију користи К‑центар-помоћи. Ако ХТМЛ верзија недостаје, К‑центар-помоћи ће је поново створити на основу докбука, али то уме да потраје.

`share/icons`

  У овој фасцикли складиште се иконе. Подељене су по темама, димензијама и категорији употребе.

`share/mimelnk`

  У овој фасцикли складиште се .десктоп фајлови који описују МИМЕ типове. КДЕ користи МИМЕ типове да одреди тип фајла.

`share/services`

  Ова фасцикла садржи .десктоп фајлове који описују сервисе. Сервиси су попут програма, али их обично покрећу други програми, уместо корисник. Сервиси се не појављују у К‑менију.

`share/servicetypes`

  Ова фасцикла садржи .десктоп фајлове који описују типове сервиса. Тип сервиса обично представља извесно програмерско сучеље. Програми и сервиси у својим .десктоп фајловима садрже типове сервиса које пружају.

`share/sounds`

  Ова фасцикла садржи звучне фајлове.

`share/templates`

  Ова фасцикла садржи шаблоне за стварање фајлова разних типова. Шаблон се састоји од .десктоп фајла који описује фајл и садржи упућивач на фајл у потфасцикли `.source`. Шаблони у овој фасцикли појављују се у менију Направи ново, доступном на површи и у прегледачу фајлова. Кад корисник из менија изабере шаблон, копира се његов изворни фајл.

`share/wallpapers`

  Ова фасцикла садржи слике које се могу користити као позадина површи

### Домаћину својствене фасцикле

Постоје три домаћину својствене фасцикле, које су обично симповезане са другим локацијама. Ако ове фасцикле још не постоје, следеће симвезе и фасцикле биће створене помоћу алатке `lnusertemp`:

`$`KDEHOME`/socket-$`HOSTNAME``

  Обично `/tmp/ksocket-$`USER``, користи се за разне уникс сокете.

`$`KDEHOME`/tmp-$`HOSTNAME``

  Обично `/tmp/kde-$`USER``, користи се за привремене фајлове.

`$`KDEHOME`/cache-$`HOSTNAME``

  Обично `/var/tmp/kdecache-$`USER``, користи се за кеширане фајлове.

Пошто и у `/tmp` и у `/var/tmp` сви могу писати, постоји могућност да једна од горњих фасцикли већ постоји, али да је поседује други корисник. У том случају ће алатка `lnusertemp` створити нову фасциклу са алтернативним именом и повезати ка њој.

### Поставни фајлови

За све своје поставне фајлове, КДЕ користи прост текстуални формат. Састоји се од парова кључ‑вредност подељених у групе. Сви КДЕ поставни фајлови користе кодирање УТФ‑8 за текст изван опсега аскија.

Почетак групе одређен је именом групе стављеним у угласте заграде. Сви уноси кључ‑вредност који следе припадају тој групи. Група се завршава или где започиње нова, или кад је достигнут крај фајла. Уноси на врху фајла којима не претходи име групе припадају подразумеваној групи.

Следећи пример показује поставни фајл који се састоји од две групе. Прва група садржи кључеве `LargeCursor` и `SingleClick`, а друга `Show hidden files` и `Sort by`:

    [KDE]
    LargeCursor=false
    SingleClick=true

    [KFileDialog Settings]
    Show hidden files=false
    Sort by=Name

Уноси у групи састоје се од кључа и вредности раздвојених знаком једнакости. Кључ може садржавати размаке и могу му следити опције стављене у угласте заграде. Део после знака једнакости је вредност уноса. Игнорише се свака белина који окружује знак једнакости, као и свака пратећа белина. Сажетије, формат гласи:

    entry=value

Ако вредност треба да садржи размак на почетку или крају, онда се то може постићи коришћењем контракроза за којим следи „s“: \s.

Постоји неколико других кодова с контракрозом, ево потпуног списка:

- \s може се користити као размак

- \t служи за убацивање табулатора

- \r за знак повратка реда

- \n за знак увода реда (нови ред)

- \\ за убацивање самог контракроза

У следећем примеру вредност уноса `Caption` почиње са двама размацима, док унос `Description` садржи три реда текста. Уводи реда у запису с контракрозом служе да раздвоје различите редове.

    [Preview Image]
    Caption=\s My Caption
    Description=This is\nа very long\ndescription.

У поставним фајловима игноришу се празни редови, као и редови који почињу знаком тарабе ‘#’. Тараба се може користити за додавање коментара у поставним фајловима. Ваља запазити да, када КДЕ програм ажурира поставни фајл, коментари не бивају сачувани.

Могу бити и више поставних фајлова са истим именом у потфасцикли `share/config` разних КДЕ‑ових стабала фасцикли. У том случају се информације из истоимених поставних фајлова комбинују кључ‑по‑кључ: ако је исти кључ унутар неке групе дефинисан на више од једног места, користиће се вредност кључа прочитана из стабла фасцикли са највишим првенством. Поставни фајлови под `$`KDEHOME`` увек имају највеће првенство. Ако је кључ у некој групи вишеструко дефинисан у истом фајлу, узеће се вредност последњег уноса.

Ако `$`HOME`/.kde/share/config/foobar` садржи:

    [MyGroup]
    Color=red
    Shape=circle

а `/etc/opt/kde3/share/config/foobar` садржи:

    [MyGroup]
    Color=blue
    Position=10,10

резултат ће бити:

    [MyGroup]
    Color=red
    Shape=circle
    Position=10,10

Ако `$`HOME`/.kde/share/config/foobar` садржи:

    [MyGroup]
    Color=red
    Shape=circle
    [MyGroup]
    Color=green

а `/opt/kde_staff/share/config/foobar` садржи:

    [MyGroup]
    Color=purple
    Position=20,20

и `/etc/opt/kde3/share/config/foobar` садржи:

    [MyGroup]
    Color=blue
    Position=10,10

резултат ће бити:

    [MyGroup]
    Color=green
    Shape=circle
    Position=20,20

Да би се корисници спречили да пребришу подразумеване поставке, оне се могу обележити као непроменљиве. Поставке се могу учинити непроменљивим појединачно, групно или по фајлу. Појединачан унос може се закључати додавањем `[$i]` иза кључа, нпр:

    Color[$i]=blue

Група уноса може се закључати стављањем `[$i]` иза имена групе, нпр:

    [MyGroup][$i]

За закључавање целог фајла, започните фајл са `[$i]` самим у једном реду, тј:

    [$i]

Ако `$`HOME`/.kde/share/config/foobar` садржи:

    [MyGroup]
    Color=red
    Shape=circle

а `/etc/opt/kde3/share/config/foobar` садржи:

    [MyGroup][$i]
    Color=blue
    Position=10,10

резултат ће бити:

    [MyGroup]
    Color=blue
    Position=10,10

Ако `$`HOME`/.kde/share/config/foobar` садржи:

    [MyGroup]
    Color=red
    Shape=circle

а `/opt/kde_staff/share/config/foobar` садржи:

    [MyGroup][$i]
    Color=blue
    Position=10,10

резултат ће бити:

    [MyGroup]
    Color=purple
    Shape=rectangle
    Position=10,10

Да би се обезбедиле динамичније подразумеване вредности, може се користити тзв. „развој шкољке“. Развојем шкољке може се конструисати вредност поставног кључа на основу вредности променљиве окружења или излаза наредбе шкољке. За укључивање развоја шкољке за поставни унос, за кључем мора следити [$e]. После прве употребе, проширени облик обично бива уписан у корисников поставни фајл. Да би се то спречило, препоручује се закључавање поставног уноса помоћу [$ie]. Корисник, наравно, ово после не може да мења.

У следећем примеру, вредност уноса `Host` одређена је излазом наредбе `hostname`. Ова поставка такође је закључана да би се осигурало трајно динамичко одређење вредности.

Вредност за унос `Email` одређена је попуњавањем вредности променљивих окружења $`USER` и $`HOST`. Ако је joe пријављен на joes_host, резултат ће бити вредност једнака овој: `joe@joes_host`. Поставка није закључана.

    [Mail Settings]
    Host[$ie]=$(hostname)
    Email[$e]=${USER}@${HOST}

Већина поставних уноса може се индексирати језичким кодом. У том случају, језик који је корисник изабрао за радну површ користи се при тражењу вредности кључа. Ако је изабран подразумевани језик (амерички енглески), или нема индекса који одговара изабраном језику, користи се унос кључа без индекса.

У следећем примеру, вредност уноса `Caption` зависи од језика. Ако је корисник као језик изабрао француски (језички кôд `fr`), вредност уноса биће Ma Légende. У свим другим случајевима узеће се вредност My Caption.

    [Preview Image]
    Caption=My Caption
    Caption[fr]=Ma Légende

У овом примеру, вредност уноса `Caption` зависи од језика. Ако је корисник као језик изабрао француски (језички кôд `fr`), вредност уноса биће Ma Légende. У свим другим случајевима узеће се вредност My Caption.

    [Preview Image]
    Caption=My Caption
    Caption[fr]=Ma Légende

Уноси који се могу појавити у поставном фајлу, уопштено, нису документовани. Са КДЕ‑ом 3.2 направљен је корак да се ово промени. У `$`KDEDIR`/share/config.kcfg` могу се наћи фајлови који обезбеђују формалан опис могућих уноса у поставном фајлу. Ако су расположиви, користи их КДЕ‑ов уређивач поставе.

Ево примера ИксМЛ поставног фајла:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd">
    <kcfg>
        <kcfgfile name="korganizerrc">
        <group name="General">
             <entry type="Bool" key="Auto Save">
                 <label>Enable automatic saving of calendar</label>
                 <default>true</default>
             </entry>
             <entry type="Int" key="Auto Save Interval">
                 <default>10</default>
             </entry>
        <group>
    <kcfg>

Ово има исти ефекат као:

    [General]
    Auto Save=false
    Auto Save Interval=25

### Ток покретања КДЕ‑а

#### КДМ

Увек се извршава као root! Користи `$`KDEDIR`/share/config/kdmrc` и `/etc/X11/xdm/Xservers`. Потоњи фајл садржи уносе попут:

    :0 local /usr/X11R6/bin/X :0 vt07

Релевантни фајлови на покретању такође су:

- Секција `[X-*-Core]` у `kdmrc`
- Постава — `/etc/X11/xdm/Xsetup`
- Корисник уноси корисничко име и лозинку
- Покретање — `/etc/X11/xdm/Xstartup` — припрема као корен
- Сесија — `/etc/X11/xdm/Xsession` — покреће сесију као корисник
- = за КДЕ сесију: `kde` или `startkde`
- = ако постоји `~/.xsession` или `~/.xinitrc`
- Ресетовање — `/etc/X11/xdm/Xreset` — после завршене сесије

#### Скрипта за покретање КДЕ‑а: `startkde`

Ток покретања КДЕ‑а почиње са скриптом `startkde`. Она се у већини случајева позива из менаџера пријављивања (КДМ‑а) пошто се корисник аутентификује. У скрипти `startkde` налазе се два веома важна реда:

    LD_BIND_NOW=true kdeinit4 +kcminit_startup
    kwrapper4 ksmserver $KDEWM

Први ред покреће главни процес наредбом `kdeinit4`, који служи за покретање свих осталих КДЕ процеса. У излазу `ps `aux`` појављује се као `kdeinit4:Running...`. Аргументи после `kdeinit4` имена су додатних процеса које треба покренути. Знак + указује да `kdeinit4` треба да чека док се процес заврши. `kdeinit4` такође покреће `klauncher` и `kded`.

Други ред тражи од `kdeinit4` да покрене процес менаџера сесија `ksmserver`. Менаџер сесија одређује дужину живота сесије. Кад се овај процес оконча, корисник је одјављен.

### Позадински процеси

Сви позадински КДЕ сервиси посебни су по кориснику — за разлику од системских демона, не деле се међу корисницима. Исто као што су јединствени по кориснику, такви су и по приказу икс сервера. Процеси су следећи:

`dcopserver`

  Комуникација на радној површи

`kded`

  Генерички демон сервиса

  По потреби окида ажурирања базе података Сикоке

`kcminit`

  Припремни сервис

  За више информација, погледајте .

`klauncher`

  Покретање програма (ово није онај дијалог на AltF2 !)

  За више информација, погледајте .

`knotify`

  Обавештења кориснику.

  За више информација, погледајте .

`ksmserver`

  Управљање сесијама

  За више информација, погледајте .

#### `kdeinit`

Наредба `kdeinit` користи се за покретање свих осталих КДЕ програма. `kdeinit` обично може да покрене и бинарне програмске фајлове и учитљиве модуле (КЛМ‑ове). КЛМ‑ови раде исто као бинарни програмски фајлови, али се могу ефикасније покретати. Они пребивају у `$`KDEDIR`/lib/kde3`.

Незгода је што се овако покренути програми појављују као ``kdeinit`` у излазу `top` и `ps`. Користите `top `-c`` или `ps `aux`` да видите стварно име програма:

    %ps aux

    waba     23184  0.2  2.1 23428 11124 ?        S    21:41   0:00 kdeinit4: Running...
    waba     23189  0.2  2.4 25136 12496 ?        S    21:41   0:00 kdeinit4: klauncher
    waba     23192  0.7  2.8 25596 14772 ?        S    21:41   0:00 kdeinit4: kded
    waba     23203  0.8  3.4 31516 17892 ?        S    21:41   0:00 kdeinit4: knotify

`kdeinit: Running...` показује главни процес `kdeinit`. Остали набројани процеси су програми покренути као КЛМ‑ови.

Кад се први пут покрене, `kdeinit` ће покренути `klauncher` и `kded`, као и све додатне програме на својој командној линији у скрипти `startkde`, обично `kcminit_startup`.

#### `kcminit`

Наредба `kcminit` извршава припремне сервисе током покретања. Припремни сервиси задати су у .десктоп фајловима програмâ или сервиса, редом `X-KDE-Init`:

    [Desktop Entry]
    Encoding=UTF-8
    Exec=kcmshell4 energy
    Icon=energy_star
    Type=Application
    X-KDE-Library=energy
    X-KDE-Init=energy

Припремни сервиси типично се користе за припремање хардвера на основу корисничких поставки.

``kcminit`--list``` може се користити за све покретачке сервисе, а ``kcminitservice`` може се користити за изричито извршење појединачног сервиса. Може бити корисно за претресање проблемâ на покретању.

#### `klauncher`

К‑лансер (`klauncher`) је демон одговоран за активирање сервиса у оквиру КДЕ‑а. Тесно сарађује са главним процесом `kdeinit` ради покретања нових процеса. КДЕ програми комуницирају са `klauncher` преко ДКОП‑а, ради покретања нових програма и сервиса.

Најпознатији из поруке о грешци `К‑лансер није доступан преко д‑буса [...]` која указује на озбиљан проблем са наредбом `dcopserver`, или да се `klauncher` срушила.

`klauncher` се може изнова покренути поновним покретањем `kdeinit` из конзолног прозора. Кад ово радите, уверите се да су правилно постављене $`HOME`, $`DISPLAY` и разне $`KDEDIR(S)`!

#### `knotify`

Примарни задатак наредбе `knotify` јесте да повеже звучна обавештења са сервером звука, а обезбеђује и алтернативне методе обавештавања.

### КСМ‑сервер

КСМ‑сервер (`ksmserver`) је КДЕ‑ов менаџер сесија. По покретању он извршава самопокретање програмâ и обнавља програме из претходне сесије. Програми за самопокретање одређени су .десктоп фајловима у фасцикли `$`KDEDIR`/share/autostart`. Да ли неки програм треба аутоматски покренути или не, може се условити према неком поставном уносу датом уносом `X-KDE-autostart-condition` у .десктоп фајлу.

На пример, фајл `ktip.desktop` садржи:

    X-KDE-autostart-condition=ktiprc:TipOfDay:RunOnStart:true

Ово значи да се у поставном фајлу `ktiprc` проверава унос `RunOnStart` у секцији `[TipOfDay]`. Ако такав унос не постоји, претпоставља се `true`, што значи да К‑савет постаје један од програма што се подразумевано аутоматски покрећу.

Неке од наредби које аутоматски покреће `ksmserver`:

`kdesktop`

  Површ КДЕ‑а

`kicker`

  Кикер, КДЕ‑ов панел

`ktip`

  Програм за савете дана К‑савет

`kwrited`

  Алатка за пријем системских порука послатих кориснику

Клипер

  Клипер, алатка клипборда која се усидрава на панелу

`kalarm`

  К‑аларм, алатка која упозорава на долазеће догађаје и састанке

Наредба `kdesktop` надаље аутоматски покреће програме складиштене у `$`KDEHOME`/Autostart`. `kdesktop` ће аутоматски отворити све фајлове у овој фасцикли, укључујући документе, бинарне фајлове или програме у виду .десктоп фајлова.

КДЕ‑ов менаџер сесија такође обнавља неку од претходних сесија. Сесија садржи како скуп програма, тако и програму својствене податке које одражавају његово стање у тренутку уписивања сесије. Сесије се складиште у поставном фајлу `ksmserverrc`, који упућује на програму својствене податке о стању, складиштене у `$`KDEHOME`/share/config/session`. Подаци о стању К‑вина садрже локацију програмских прозора свих осталих програма у сесији.

### Променљиве окружења

Неке важне променљиве окружења које користи КДЕ:

$`KDEDIR`

  Треба да се постави ако није постављена `KDEDIRS`, и треба да указује на корен инсталационог стабла КДЕ‑а. Омогућава КДЕ‑у да пронађе податке попут икона, менија и библиотека.

`KDEDIRS`

  Потискује променљиву `KDEDIR` и омогућава вам да задате више фасцикли у којима ће КДЕ тражити податке. Корисна ако желите или морате да инсталирате неке програме у другачијем префиксу од остатка КДЕ‑а.

`$KDEHOME`

  Ако није постављена, КДЕ за складиштење личних података користи фасциклу `~/.kde`.

$`KDEROOTHOME`

  Ако није постављена, КДЕ користи `~root/.kde` као фасциклу за личне податке корена (root). Уведена да спречи КДЕ да случајно не пребрише податке корисника са кореним овлашћењима, кад корисник изврши КДЕ програм након пребацивања наредбом `su` на root.

$`KDEWM`

  Ако је променљива окружења `KDEWM` постављена, скрипта `startkde` употребиће је као КДЕ‑ов менаџер прозора, уместо К‑вина.

$`KDE_LANG`

  Потискује КДЕ‑ову поставу језика, нпр. `KDE_LANG=fr kcommand &` покреће програм на француском (ако су инсталирани неопходни фајлови).

$`KDE_MULTIHEAD`

  Поставите ову променљиву на `true` да укажете КДЕ‑у да ради на вишемониторском систему.

$`KDE_FORK_SLAVES`

  (Од КДЕ‑а 3.2.3.) Поставите ову променљиву да би У/И захвати израњали непосредно из програмског процеса. Подразумевано израњају из `klauncher` или `kdeinit`. Ова опција корисна је ако У/И захват треба да ради у истом окружењу као и програм (случај нпр. са Клиркејсом).

$`KDE_HOME_READONLY`

  Поставите ову променљиву да укажете да је ваша домаћа фасцикла монтирана само‑за‑читање.

$`KDE_NO_IPV6`

  (Од КДЕ‑а 3.2.3.) Поставите ову променљиву да искључите подршку за ИПв6 и ИПв6 ДНС потраге.

$`KDE_IS_PRELINKED`

  (Од КДЕ‑а 3.2.) Поставите ову променљиву да укажете да сте претповезали КДЕ‑ове извршне фајлове и библиотеке, што искључује `kdeinit`.

$`KDE_UTF8_FILENAMES`

  Ако је ова променљива окружења постављена, КДЕ претпоставља да су сва имена фајлова УТФ‑8 кодирана, без обзира на текући системски локалитет.

$`KDE_FULL_SESSION`

  (Од КДЕ‑а 3.2.) Аутоматски се поставља на `true` на покретању КДЕ‑а, користи се нпр. да одреди да ли да се К‑освајач задржи у меморији после затварања. Ако није постављена, К‑освајач се напушта по затварању (нпр. ово чини КДЕ су, а корисно је и за исправљање).

$`KDESYCOCA`

  Омогућава вам да задате путању и име генерисаног фајла кеша КДЕ‑ове системске поставе.

$`KDETMP`

  Омогућава да задате другу путању уместо `/tmp`, где КДЕ складишти привремене фајлове.

$`KDEVARTMP`

  Омогућава да задате другу путању уместо `/var/tmp`, где КДЕ складишти променљиве фајлове.

$`XDG_DATA_HOME`

  (Од КДЕ‑а 3.2.) Дефинише основну фасциклу према којој се складиште кориснику својствени фајлови. Подразумева се `$`HOME`/.local/share`.

$`XDG_DATA_DIRS`

  (Од КДЕ‑а 3.2.) Дефинише по редоследу првенства скуп основних фасцикли за тражење фајлова података, у додатак оној из `$`XDG_DATA_HOME``. Подразумева се `/usr/local/share/:/usr/share/`.

  КДЕ додаје локације из $`KDEDIRS` као и профиле. Користе се за .десктоп фајлове менија: `.desktop` фајлови под `$`XDG_DATA_DIRS`/applications`, а `.directory` под `$`XDG_DATA_DIRS`/desktop-directories`.

$`XDG_CONFIG_HOME`

  (Од КДЕ‑а 3.2.) Дефинише основну фасциклу у којој треба складиштити кориснику својствене поставне фајлове. Подразумева се `$`HOME`/.config`.

$`XDG_CONFIG_DIRS`

  (Од КДЕ‑а 3.2.) Дефинише по редоследу првенства скуп основних фасцикли за тражење поставних фајлова, у додатак оној из $`XDG_CONFIG_HOME`. Подразумева се `/etc/xdg`. КДЕ додаје локације из $`KDEDIRS` као и профиле. Користе их `.menu` описи у `$`XDG_CONFIG_DIRS`/menus`.

### Тајна наредбе `kdeinit`

`kdeinit` се користи за покретање свих осталих КДЕ програма. Може да покрене нормалне бинарне програмске фајлове, као и учитљиве модуле (КЛМ‑ове). КЛМ‑ови раде исто као бинарни програмски фајлови, али се могу ефикасније покренути. Пребивају у `$`KDEDIR`/lib/kde3`.

Незгода је што се овако покренути програми појављују као ``kdeinit`` у излазу `top` и `ps`. Користите `top `-c`` или `ps `aux`` да видите стварно име програма:

    % ps aux | grep bastian

    bastian  26061  0.0  2.2 24284 11492 ?       S    21:27   0:00 kdeinit: Running...
    bastian  26064  0.0  2.2 24036 11524 ?       S    21:27   0:00 kdeinit: dcopserver
    bastian  26066  0.1  2.5 26056 12988 ?       S    21:27   0:00 kdeinit: klauncher
    bastian  26069  0.4  3.2 27356 16744 ?       S    21:27   0:00 kdeinit: kded
    bastian  26161  0.2  2.7 25344 14096 ?       S    21:27   0:00 kdeinit: ksmserver
    bastian  26179  1.1  3.4 29716 17812 ?       S    21:27   0:00 kdeinit: kicker
    bastian  26192  0.4  3.0 26776 15452 ?       S    21:27   0:00 kdeinit: klipper
    bastian  26195  1.0  3.5 29200 18368 ?       S    21:27   0:00 kdeinit: kdesktop

Као што сте можда запазили, ово производи споредан ефекат да је тешко убити процес који проузрокује невољу:

    % killall kdesktop
    kdesktop: no process killed

Можда сте у искушењу да употребите ``killall kdeinit``, али ће убијање свих `kdeinit` процеса резултовати гашењем целог КДЕ‑а. Тотално разарање!

За ово постоје два једноставна решења:

    % kdekillall kdesktop
    # или старо добро:
    % kill 26195

`kdekillall` је део КДЕ‑овог СДК пакета.

## Прилагођавање КДЕ‑а

### Иконе површи

КДЕ користи неколико врста икона:

- Документи

- Везе ка веб сајтовима (преко .десктоп фајла)

- Везе ка програмима (преко .десктоп фајла)

- Уређаји — дискови, партиције и периферије:

  - Изричито преко .десктоп фајла

  - Аутоматски преко У/И захвата `devices://`

- Посебно од издавача (нпр. СуСЕ‑ов „Мој рачунар“)

#### Веб сајтови

Везе ка веб сајтовима путем .десктоп фајлова: Направи ново Фајл Веза до локације (УРЛ).... Икону можете променити у дијалогу Својства. .Десктоп фајл који настаје:

    [Desktop Entry]
    Encoding=UTF-8
    Icon=/opt/kde3/share/apps/kdesktop/pics/ksslogo.png
    Type=Link
    URL=http://www.kde.org/

#### Програми

Везе ка програмима путем .десктоп фајлова: Направи ново Фајл Веза до програма.... Детаље морате обезбедити сами. Превуците из К‑менија: или копирајте или повежите (прави симвезу), много лакше.

    [Desktop Entry]
    Encoding=UTF-8
    GenericName=IRC Client
    GenericName[af]=Irc Klië
    GenericName[de]=IRC Programm
    ...
    GenericName[zu]=Umthengi we IRC
    SwallowExec=
    Name=KSirc
    Name[af]=Ksirc
    Name[de]=KSirc
    ...

Предуметак

Преведен генерички опис, не користи се на површи

Застарело, може се уклонити

Преведено име које се даје на површи

Иконе површи

    ...
    Name[zu]=Ksirc
    MimeType=
    Exec=ksirc %i %m
    Icon=ksirc
    TerminalOptions=
    Path=
    Type=Application
    Terminal=0
    X-KDE-StartupNotify=true
    X-DCOP-ServiceType=Multi
    Categories=Qt;KDE;Network

Подржани МИМЕ типови, не користе се на површи

Командна линија коју треба извршити

Икона, из теме икона или пуна путања

Само ако је потребан терминал

Радна фасцикла за наредбу

Још предуметка

`true` ако је потребан терминал, текстуални програм

Прикажи скакутајући показивач, искључи ако не ради.

Програм уредно покренут? Уклони ако не ради.

Категорије за К‑мени, не користи се на површи

#### Опција `Exec` .десктоп фајловима

За наредбом може следити неколико местодржача, који ће бити замењени стварним вредностима кад се програм покрене:

`%f`

  Појединачно име фајла; за испуштање фајла на икону, или са придружењима фајлу.

`%F`

  Списак фајлова; за програме који могу да отворе неколико локалних фајлова одједном.

`%u`

  Појединачни УРЛ: ако програм сам може да рукује нпр. ФТП или ХТТП УРЛ‑овима, иначе КДЕ.

`%U`

  Списак УРЛ‑ова; прво ће преузети фајл и проследити локални фајл програму (!!)

`%d`

  Фасцикла фајла за отварање; корисно ако програм захтева фајл у текућој радној фасцикли.

`%D`

  Списак фасцикли, не превише практично.

`%i`

  Икона, опција `--icon`; КДЕ програм ће за траку задатака користити икону дату редом `Icon`=.

`%m`

  Минијатурна икона, застарело.

`%c`

  Наслов, опција `--caption`; КДЕ програм ће за траку задатака користити име дато редом `Name`=.

Примери: ред `Exec` извршава наредбу `ksirc %i``ksirc --icon ksirc` `cd %d; kedit $(basename %f)``cd /tmp; kedit file.txt`

#### Уређаји

Везе ка уређајима путем .десктоп фајлова: Направи ново Уређај

#### Где дефинисати

Многа су места за дефинисање икона површи:

- `~/Desktop`: копирано из `/etc/skel/Desktop`

- `$`KDEDIR`/apps/kdesktop/Desktop` (стопљено)

- `$`KDEDIR`/apps/kdesktop/DesktopLinks` (копирано)

- Иконе уређаја (динамички стопљене)

- Дистрибуцији својствено: СуСЕ копира неке иконе у `startkde.theme` из `/opt/kde3/share/config/SuSE/default/`

### К‑мени

#### Начин рада

У КДЕ‑у 3.2 уведен је заједнички формата менија са http://freedesktop.org/Standards/menu-spec/

Пре КДЕ‑а 3.2:

- структура фасцикли под `share/applnk`

- структура фасцикли представља структуру менија

- сваки .десктоп фајл представља појединачни програм

Било је тешко преуредити овакву структуру, па у КДЕ‑у 3.2 нови формат менија:

- дефинише структуру у једном `.menu` фајлу

- заснован је на категоријама

- дели се између Гнома и КДЕ‑а

- подржава и меније у стилу `applnk`

Пример из `applications.menu`:

            <Menu>
                <Name>Office</Name>
                <Directory>suse-office.directory</Directory>
                <Include>
                    <Filename>Acrobat Reader.desktop</Filename>
                    <Filename>kde-kpresenter.desktop</Filename>
                    <Filename>kde-kword.desktop</Filename>
                </Include>
            <Menu>

Унос менија са три програма:

- `/usr/share/applications/Acrobat Reader.desktop`

- `/opt/kde3/share/applications/kde/kpresenter.desktop`

- `/opt/kde3/share/applications/kde/kword.desktop`

#### А где се складиште?

Фајлови који описују структуру менија, `.menu`, складиште се у `$`KDEDIR`/etc/xdg/menus` и `/etc/xdg/menus`. Оне дефинишу структуру менија широм система, а контролише их $`XDG_CONFIG_DIRS`. `$`HOME`/.config/menus` складишти кориснику својствене измене у структури менија, а контролише је $`XDG_CONFIG_HOME`. За више информација, погледајте http://www.freedesktop.org/Standards/basedir-spec.

.Десктоп фајлови описују програме и складиште се у: `$`KDEDIR`/share/applications`, `/usr/share/applications`, `/usr/local/share/applications`. Ово су .десктоп фајлови који важе широм система, контролише их $`XDG_DATA_DIRS`.

Фасцикла `$`HOME`/.local/applications` садржи .десктоп фајлове и кориснику својствене измене. Контролише је $`XDG_DATA_HOME`. За више информација, погледајте http://www.freedesktop.org/Standards/basedir-spec

Фајлови који описују подменије, `.directory`, складиште се у: `$`KDEDIR`/share/desktop-directories`, `/usr/share/desktop-directories`, `/usr/local/share/desktop-directories`. Ово су фајлови менија широм система, које контролише $`XDG_DATA_DIRS`. Кориснику својствене измене складиште се у: `$`HOME`/.local/desktop-directories`. Њих контролише променљива $`XDG_DATA_HOME`. За више информација, погледајте http://www.freedesktop.org/Standards/basedir-spec.

Пример из `applications.menu`:

                 <Menu>
                            <Name>Art</Name>
                           <Directory>suse-edutainment-art.directory</Directory>
                            <Include>
                                    <Category>X-SuSE-Art</Category>
                            </Include>
                    </Menu>

`Art` је унутрашње име за овај мени. `suse-edutainment-art.directory` дефинише име и икону за овај мени, а мени садржи све програме који као категорију имају наведено `X-SuSE-Art`, нпр:

    Categories=Qt;KDE;Education;X-SuSE-Art

`suse-edutainment-art.directory` дефинише име и икону за овај мени:

    [Desktop Entry]
    Name=Art and Culture
    Icon=kcmsystem

#### Уобичајене замке

Програми који нису у менију не постоје с тачке гледишта других програма или придружења фајловима. Ако уклоните неки програм из менија, КДЕ претпоставља да не желите да га користите.

Кад се програми не желе у менију, ставите их у мени `.hidden` или у наменски мени са

    NoDisplay=true

у фајлу `.directory`.

#### Важни менији

`$`KDEDIR`/etc/xdg/menus/applications-merged/` садржи `kde-essential.menu`, који укључује неке важне меније који обично нису приказани у самом К‑менију:

- Контролни центар има скривени мени поставки, чији садржај дефинише `kde-settings.menu`, и чије име и икону дефинише `kde-settings.directory`

- Инфо центар има скривени мени информација, чији садржаје дефинише `kde-information.menu`, и чије име и икону дефинише `kde-information.directory`.

- Чувари екрана садрже скривени мени систем/чувари екрана, чији садржај дефинише `kde-screensavers.menu`, и чије име и икону дефинише `kde-system-screensavers.directory`. `$`KDEDIR`/share/desktop-directories/kde-system-screensavers.directory` садржи:

      NoDisplay=true

#### Менији у старом стилу

КДЕ наставља да подржава меније у старом стилу који су дефинисани структурама фасцикли у `$`KDEDIR`/share/applnk` (широм система) и `$`HOME`/.kde/share/applnk` (кориснику својствено). На ово се спада ако .десктоп фајл нема ред `Categories`=. Ако има, категорије одређују локацију у менију.

#### К‑Сикока

К‑Сикока кешира структуру менија и податке о свим расположивим програмима. Базу података можете поново изградити наредбом ``kbuildsycoca4``. Изграђена база података пребива у `/var/tmp/kdecache-${`USER`}/ksycoca`. Аутоматски је ажурира КДЕД, проверава се при пријављивању у КДЕ, а КДЕД надгледа измене док сте пријављени.

Да искључите надгледање измена (може бити споро преко НФС‑а), додајте у `kdedrc`:

    [General]
    CheckSycoca=false

Да бисте приморали поновно стварање, извршите ``touch $`KDEDIR`/share/services/update_ksycoca``.

#### Уређивач К‑менија

Уређивач К‑менија је намењен једнокорисничкој постави. Измене у структури менија уписују се у `~/.config/menus/applications-kmenuedit.menu`, измене у програмима у `~/.local/share/applications/`, а измене у подменијима (икона, име) у `~/.local/share/desktop-directories/`. Админ-алатка Киоска користи Уређивач К‑менија и копира горње измене у профиле или локације широм система.

### КДЕ‑ов панел

КДЕ‑ов панел познат је и као Кикер. Модуларан је и састоји се од следећих компоненти:

- аплета

- програмских дугмади

- посебних дугмади

Панел подразумевано садржи следеће аплете:

- пејџер, који приказује виртуелне површи

- траку задатака

- системску касету

- сат

и следећу посебну дугмад:

- К‑мени

- дугме површи

Колико дозвољава простор, додата су и разна програмска дугмад:

- домаће дугме

- дугме прегледача

- дугме К‑поште

### Придружења фајлова

Придружења фајлова повезују тип фајла са програмом или програмима. Тип фајла се успоставља одређивањем његовог МИМЕ типа. МИМЕ типови познати КДЕ‑у складиште се у `$`KDEDIR`/share/mimelnk`, а .десктоп фајл сваког програма садржи списак МИМЕ типова које тај програм подржава.

`kview.desktop`

    MimeType=image/gif;image/x-xpm;image/x-xbm;image/jpeg;
    image/x-bmp;image/png;image/x-ico;image/x-portable-bitmap;
    image/x-portable-pixmap;image/x-portable-greymap;
    image/tiff;image/jp2

`kuickshow.desktop`:

    MimeType=image/gif;image/x-xpm;image/x-xbm;image/jpeg;
    image/png;image/tiff;image/x-bmp;image/x-psd;image/x-eim;
    image/x-portable-bitmap;image/x-portable-pixmap;
    image/x-portable-greymap

Оба могу да отварају `image/gif`. Који се онда користи за отварање ГИФ фајла?

Програм са највишим првенством. `kview.desktopkview.desktop` садржи

    InitialPreference=3

док `kuickshow.desktop` садржи

    InitialPreference=6

Стога ће се Квикшоу користити за отварање ГИФ фајлова.

Како да задамо К‑приказ као подразумеван?

Придружење фајлу корисник може да измени у Контролном центру. Те измене се складиште у `$`HOME`/.kde/share/config/profilerc`. Да бисте сачували исте поставке за више корисника, сачувајте их у фасцикли профила корисника или глобалној поставној фасцикли КДЕ‑а да се користе као подразумеване за више корисника.

## Закључавање КДЕ‑а

### Како функционише — основе

КДЕ‑ове могућности закључавања концентрисане су око следећих опција:

- Учините непроменљивим поставне опције

- Ограничења за поједине радње

- Ограничите приступ извесним УРЛ‑овима

- Ограничите приступ извесним поставним модулима

### Непроменљиве поставне опције

Закључавање КДЕ‑а

Непроменљиве опције омогућавају систем-администратору да обезбеди подразумеване поставке које корисник не може мењати.

Кад се поставна опција учини непроменљивом, корисникове поставне опције које су претходно постојале биће игнорисане.

Опције се могу контролисати по ставци, по групи ставки, или по фајлу.

Ако су фајл или група непроменљиви, непроменљиве су све поставне опције за тај фајл или групу, чак и оне за које систем-администратор није обезбедио подразумеване.

Подршка у програмима за непроменљиве опције може да варира од програма до програма. Иако корисник неће моћи да врши трајне измене у непроменљивим поставним опцијама, ипак може добити опцију корисничког сучеља да изврши једну такву измену.

### Ограничења радњи

КДЕ програми изграђени су око концепта радњи. Радње се могу активирати на разне начине, типично преко траке менија, неке од трака алатки или пречицом са тастатуре. Пример је радња Сачувај документ. Радњу је могуће ограничити ако знате њено унутрашње име. Кад је радња једном ограничена, више се неће појављивати на траци менија или траци алатки. Унутрашње име радње Сачувај документ гласи `action/file_save`. Радни оквир за закључавање такође обезбеђује скуп апстрактнијих ограничења, која се могу користити да искључе функционалност која није покривена појединачном радњом. Пример је ограничење `shell_access`, које искључује сву функционалност која би пружила кориснички приступ уникс шкољци.

#### Ограничите кориснички приступ шкољкама

Да бисмо спречили кориснички приступ командној шкољци, можемо ограничити радњу `shell_access` тако што ћемо у `kdeglobals` додати:

    [KDE Action Restrictions]
    shell_access=false

Пошто ово утиче на К‑мени и расположиве програме, морамо приморати ажурирање базе података Сикоке:

    touch$KDEDIR/share/services/update_ksycoca

Сада се поново пријавимо у КДЕ и проверимо следеће:

- К‑мени

- У К‑освајачу, Алатке Отвори терминал

- AltF2 извршава наредбу

Пуна документација о расположивим радњама може се наћи на http://www.kde.org/areas/sysadmin/.

Доле је наведено неколико занимљивијих радњи:

`action/options_configure`

  Опција Подеси <програм>... из менија Подешавање

`action/help_report_bug`

  Опција Пријави грешку из менија Помоћ.

`action/kdesktop_rmb`

  Контекстни мени (десни клик) површи.

`action/kicker_rmb`

  Контекстни мени (десни клик) панела.

`user/root`

  Сакријте све радње или програме који захтевају корени приступ.

`shell_access`

  Сакрива све радње или програме који обезбеђују приступ шкољци.

`print/system`

  Искључује опцију одабира штампарског система (позадине).

`lock_screen`

  Да ли ће корисник моћи да закључа екран

`start_new_session`

  Да ли корисник може да покрене другу сесију Икса (такође в. КДМ)

`opengl_screensavers`

  Да ли се дозвољавају опенГЛ чувари екрана.

`manipulatescreen_screensavers`

  Дозвољава чуваре екрана који не скривају цео екран

### Ограничења УРЛ‑ова

Постоје три врсте ограничења које се могу применити на УРЛ‑ове:

листање

  контрола да ли је дозвољено листање фасцикли.

отварање

  контрола могућности отварања извесних УРЛ‑ова

преусмеравање

  контрола да ли један УРЛ може да отвори други, било аутоматски или помоћу хипервезе.

Правила се проверавају по редоследу којим су дефинисана. Последње примењено правило дефинише да ли се УРЛ‑у може приступити.

Следећа правила искључују отварање ХТТП и ХТТПС УРЛ‑ова изван .ourcompany.com:

    [KDE URL Restrictions]
    rule_count=2
    rule_1=open,,,,http,,,false
    rule_2=open,,,,http,*.ourcompany.com,,true

Прве четири запете прескачу критеријуме избора који се тичу изворног УРЛ‑а. Овај је део потребан само код правила за преусмеравање.

`rule_1` забрањује отварање било ког ХТТП или ХТТПС УРЛ‑а

`rule_2` допушта отварање било ког ХТТП и ХТТПС УРЛ‑а у домену .ourcompany.com. Имајте у виду да је џокер * дозвољен само на почетку домена.

Следећа правила спречавају корисника да прегледа фасцикле на локалном фајл систему које су изван његове домаће фасцикле ($`HOME`):

    [KDE URL Restrictions]
    rule_count=2
    rule_1=list,,,,file,,,false
    rule_2=list,,,,file,,$HOME,true

`rule_1` забрањује листање било које локалне фасцикле

`rule_2` допушта листање фасцикли под корисниковом фасциклом $`HOME`.

$`HOME` и $`TMP` су посебне вредности које показују домаћу и КДЕ‑ову привремену фасциклу за корисника, нпр. `/tmp/kde-bastian`

Следећа правила спречавају корисника да отвара локалне фајлове који су изван његове домаће фасцикле:

    [KDE URL Restrictions]
    rule_count=3
    rule_1=open,,,,file,,,false
    rule_2=open,,,,file,,$HOME,true
    rule_3=open,,,,file,,$TMP,true

`rule_1` забрањује отварање било ког локалног фајла

`rule_2` допушта отварање фајлова под корисниковом фасциклом $`HOME`.

`rule_3` допушта отварање фајлова у КДЕ‑овој привременој фасцикли корисника. Ово треба неким КДЕ програмима, који прво преузимају фајл или документ у привремену фасциклу, па га затим отварају.

Опција преусмеравања контролише да ли документи са извесне локације могу упутити, аутоматски или ручно преко хипервезе, на неку другу локацију. Као општа мера безбедности, постоји скуп подразумеваних правила. На пример, документи на Интернету не могу да упућују на локално ускладиштене документе.

Да бисмо, на пример, интранет серверу www.mycompany.com дали могућност упућивања на локалне фајлове, додали бисмо следеће правило:

    [KDE URL Restrictions]
    rule_count=1
    rule_1=redirect,http,www.mycompany.com,,file,,,true

Уместо да навођења протокола по имену, могуће је такође одредити целу групу протокола. У ту сврху, дефинисане су следеће групе:

`:local`

  Протоколи који приступају локално ускладиштеним информацијама. Примери: `file:/`, `man:/`, `fonts:/`, `floppy:/`

`:internet`

  Уобичајени интернет протоколи, као ХТТП и ФТП

Подаци о протоколима складиште се у `*.protocol` фајловима, у фасцикли `$`KDEDIR`/share/services`.

Унос `Class`= дефинише групу које је протокол део: ``grep` `Class=` `$`KDEDIR`/share/services/*.protocol``

Општа правила:

- Локални протоколи могу упутити на било који други протокол

- Увек је дозвољено упутити на интернет протоколе

- Нису сви протоколи део неке групе, на пример `fish:/`.

### Модули за подешавање

КДЕ поседује модуле за подешавање разних аспеката окружења. Модули за подешавање појављују се у Контролном центру, у дијалогу за подешавање програма или на оба места.

Модул за подешавање проксија појављује се у Контролном центру, али и као део К‑освајачевог дијалога за подешавање.

Појединачни модули за подешавање могу се покренути наредбом ``kcmshell4` module`

За покретање модула проксија извршите:

- `kcmshell4` `kde-proxy.desktop`

- `kcmshell4` `proxy`

Не користе сви програми модуле за подешавање, већ је дијалог за подешавање често нераздвојиви део самог програма.

Сви модули за подешавање, строго говорећи, део су К‑менију.

- Видљиви модули у Контролном центру обично имају .десктоп фајл у `$`KDEDIR`/share/applications/kde` и поређани су под скривеним менијем Поставке-модули из фајла `kde-settings.menu`, укљученог из `kde-essential.menu`

      kbuildsycoca4 --menutest2>  /dev/null | grep -i Поставке-модули

- Програму својствени модули обично имају .десктоп фајл под `$`KDEDIR`/share/applnk/.hidden` који одговара скривеном менију `.hidden`, укљученом као резултат <KDELegacyDirs>

      kbuildsycoca4 --menutest2> /dev/null | grep .hidden .hidden

- У КДЕ‑у 3.3 могуће је уређивати Контролни центар Уређивачем К‑контроле. Уређивач К‑контроле ради исто као Уређивач К‑менија, и измене важе само за тренутног корисника. Користите Админ-алатку Киоска да начините измене за све.

Појединачни модули за подешавање могу се искључити додавањем у `kdeglobals`:

    [KDE Control Module Restrictions]
    module-id=false

На пример, за искључење модула проксија:

    [KDE Control Module Restrictions]
    kde-proxy.desktop=false

Потом у Контролном центру и дијалогу за подешавање К‑освајача проверите да ли је подешавање проксија још увек тамо.

## Лењи администратор

### Удаљено дељење површи

Удаљено дељење површи омогућава удаљеним корисницима да виде и, опционо, контролишу површ тренутног корисника. Удаљеном кориснику мора се послати позивница, а могуће је направити трајну позивницу заштићену лозинком. Ово је идеално за тимове техничке подршке или администраторе, да би имали приступ површима корисника ради претресања и отклањања проблема, или вођења корисника кроз неки поступак.

Удаљено дељење површи укључује два програма: КРФБ („КДЕ‑ов удаљени кадробафер“, ВНЦ сервер) и КРДЦ („КДЕ‑ова веза с удаљеном површи“, ВНЦ клијент).

КРФБ може да користи сваки корисник да ствара позивнице и управља њима. Уз позивнице се добија једнократна лозинка која примаоцу допушта да се повеже на вашу површ. Она подразумевано важи за само једно успешно повезивање и истиче после сат времена ако се не искористи.

КДЕД модул `kinetd` рукује долазним везама. Да ли ради можете проверити наредбом ``dcop` kded kinetd services`. КРФБ подразумевано чека на везе на порту 5900. Кад је долазна веза остварена, појављује се дијалог који тражи потврду од тренутног корисника.

### „Уради сам“ у КДЕ‑у — градња сопствених алатки

#### ДКОП

Протокол за комуникацију на радној површи, ДКОП, лагани је механизам за међупроцесну комуникацију. ДКОП омогућава кориснику интеракцију са програмима у извршавању. КДЕ обезбеђује два програма за коришћење ДКОП‑а: наредбу командне линије `dcop` и ГУИ програм К‑ДКОП.

Неколико белешки о наредби `dcop`:

- ``dcop` [опције] [програм [објекат [функција [арг1] [арг2] ... ] ] ]`

- Програми који могу да отворе више од једног прозора истовремено биће наведени као `<програм>-ПИД`

- Сви аргументи разликују величину слова. Нпр. `setFullScreen` и `setfullscreen` две су различите функције.

- Токен * регуларних израза може се користити у програму и аргументима објекта.

      % dcop kon*
      konqueror-16006
      konsole-8954

Неке наредбе за пример и њихов излаз:

    % dcop konsole*
    konsole-8954

Примерак Конзоле у раду са ПИД‑ом 8954.

    % dcop konsole-8954
    KBookmarkManager-.../share/apps/kfile/bookmarks.xml
    KBookmarkManager-.../share/apps/konqueror/bookmarks.xml
    KBookmarkNotifier
    KDebug
    MainApplication-Interface
    konsole (default)
    konsole-mainwindow#1
    ksycoca
    session-1
    session-2
    session-3
    session-4

Овде можете видети да има четири текуће сесије.

    % dcop konsole-8954 konsole
    QCStringList interfaces()
    QCStringList functions()
    int sessionCount()
    QString currentSession()
    QString newSession()
    QString newSession(QString type)
    QString sessionId(int position)
    void activateSession(QString sessionId)
    void nextSession()
    void prevSession()
    void moveSessionLeft()
    void moveSessionRight()
    bool fullScreen()
    void setFullScreen(bool on)
    ASYNC reparseConfiguration()

Опције за главни програм Конзоле.

    % dcop konsole-8954 session-1
    QCStringList interfaces()
    QCStringList functions()
    bool closeSession()
    bool sendSignal(int signal)
    void clearHistory()
    void renameSession(QString name)
    QString sessionName()
    int sessionPID()
    QString schema()
    void setSchema(QString schema)
    QString encoding()
    void setEncoding(QString encoding)
    QString keytab()
    void setKeytab(QString keyboard)
    QSize size()
    void setSize(QSize size)

Опције за прву сесију, `session-1`.

    % dcop konsole-8954 konsole setFullScreen true

Поставља Конзолу преко целог екрана.

Ако има више од једног програма или објекта, који да употребите? Имате ли упућивач?

    % echo $KONSOLE_DCOP
    DCOPRef(konsole-7547,konsole)

    % dcop $KONSOLE_DCOP newSession
    session-6

    % dcopstart konsole
    konsole-9058

    #!/bin/sh
    konsole=$(dcopstart konsole-script)
    session=$(dcop $konsole konsole currentSession)
    dcop $konsole $session renameSession Local

    session=$(dcop $konsole konsole newSession)
    dcop $konsole $session renameSession Remote

    session=$(dcop $konsole konsole newSession)
    dcop $konsole $session renameSession Code
    dcop $konsole $session sendSession 'cd /my/work/directory'

#### К‑дијалог

„Уради сам“ у КДЕ‑у — градња сопствених алатки

Можете користити КДЕ дијалоге у сопственим скриптама, комбинујући моћ скриптовања уникс шкољке са лакоћом коришћења КДЕ‑а.

    kdialog --msgbox 'Стигла вам је пошта!'

    kdialog --title 'Нова пошта' --msgbox 'Стигла вам је пошта!'

К‑дијалог део може се заменити опцијом `--caption`

    kdialog --title 'Нова пошта' --msgbox 'Стигла вам је пошта!' --dontagain myfile:mykey

Уписује у `$`KDEHOME`/share/config/myfile` да ли да поново покаже дијалог (додавањем у фајл следећих редова:

    [Notification Messages]
    mykey=false

Уместо `--msgbox` можете, кад одговара, користити и `--sorry` и `--error`. На пример, могли бисте употребити ``kdialog` `--sorry 'Мрежа се не може досећи'``, или ``kdialog` `--error 'Не могу да отворим поштанско сандуче'``.

Такође је могуће створити дијалоге с поруком који прихватају одговор „да“ или „не“.

    kdialog --yesno 'Желите ли да се повежете
    на Интернет?' echo $?

повратна вредност | значење
--- | ---
0 | Да, У реду, Настави
1 | не
2 | Одустани

Пазите да запамтите резултат у променљиву ако га не користите непосредно, пошто ће следећа наредба попунити `$?` новом вредношћу. Овде такође можете користити `--dontagain`, која ће запамтити корисников избор и вратити га следећи пут без приказивања дијалога.

Даље варијације су:

`--warningyesno`

  као `--yesno` али са другачијом иконом

`--warningcontinuecancel`

  Са дугмадима Настави и Одустани.

`--warningyesnocancel`

  Са дугмадима Да, Не и Одустани. На пример:

      kdialog --warningyesnocancel 'Желите ли
      да сачувате измене?'

    kdialog --inputbox 'Унесите име:' 'ваше име'

Резултат се исписује на стдиз, а у променљиву га можете ставити помоћу `name=$(kdialog --inputbox 'Унесите име' 'ваше име')`. Последњи аргумент је опцион, користи се да претпопуни дијалог.

    password=$(kdialog --password 'Унесите лозинку:')

Опција `--dontagain` не ради уз `--inputbox` или `--password`

Постоје два дијалога којима корисник може бирати са списка:

`--menu`

  Омогућава кориснику да изабере ставку са списка.

`--checklist`

  Омогућава кориснику да изабере једну или више ставки са списка.

    city=$(kdialog --menu 'Изаберите град' а Лондон б Мадрид в Париз г Београд)

`$city` ће бити а, б, в или г.

    city=$(kdialog --checklist 'Изаберите градове' а Лондон off б Мадрид on в Париз off г Београд on)

Мадрид и Београд ће бити предодабрани. Резултат са изабраним Мадридом и Београдом биће 'б' 'г'.

Ако додате опцију `--separate-output`, ставиће б и г свако у свој ред, што олакшава обраду резултата.

    file=$(kdialog --getopenfilename $HOME)
    file=$(kdialog --getopenfilename $HOME "*.png *.jpg|Фајлови слика")
    file=$(kdialog --getsavefilename $HOME/SaveMe.png)
    file=$(kdialog --getexistingdirectory $HOME)

&groupware-with-kontact;