.xinitrc-ru

From DSL Wiki

   This page in other languages: English, español, deutsch, turkish


/home/dsl/.xinitrc

Этот скрипт выполняется при старте X-сервера и служит для запуска задач, требующих графического окружения. Его используют для автоматического запуска X-программ, для настройки параметров X индивидуально для каждого пользователя и, разумеется, для запуска менеджера окон.
Файл .xinitrc в DSL 3.0 по умолчанию выглядит примерно так:

       # put X windows programs that you want started here.
       # Be sure to add at the end of each command the &
       
       KEYTABLE="$(getknoppixparam.lua KEYTABLE)"
       DESKTOP="$(getoption.lua $HOME/.desktop wm)"
       ICONS="$(getoption.lua $HOME/.desktop icons)"
       
       # For non-US Keyboards
       if [ ${KEYTABLE:0:2} != "us" ]; then
         xmodmap -e "clear Mod4" -e "add Mod5 = Mode_switch" &
       fi
       
       #if egrep -qv noicons /proc/cmdline 2>/dev/null; then
       if [ "$ICONS" == 1 ]; then
         for x in `ls -1 .xtdesktop/*.hide 2>/dev/null`; do rm -f ${x%.*}; done
         iconsnap.lua &>/dev/null &
         xtdesk.sh
       fi
       dillo /usr/share/doc/dsl/getting_started.html &>/dev/null &
       torsmo 2>/dev/null &
       case $DESKTOP in
         fluxbox )
           fluxter &>/dev/null &
           wmswallow -geometry 70x80 docked  docked.lua &
           exec fluxbox 2>/dev/null
         ;;
         jwm )
           ./.background
           sleep 2
           exec jwm 2>/dev/null
         ;;
         * )
           exec fluxbox 2>/dev/null
         ;;
       esac

Если вы пользовались DSL 1.x, вы заметите некоторые отличия. Одно из существенных отличий - блок "case", который был включен в скрипт после добавления оконного менеджера JWM. Наличие этого блока позволяет пользователю запускать менеджер окон по своему выбору и приложения, которые зависят от менеджера, с помощью опций загрузки или путем редактирования единственной строки в файле /home/dsl/.desktop. Обратите внимание на то, что в разных секциях блока перечислены различные приложения. Это, например, дает возможность запускать fluxter во Fluxbox, но не в JWM (где он не работает). Заметьте также, что выше блока "case" записаны команды, которые выполняются независимо от того, какой оконный менеджер используется (например, команда запуска dillo).

Еще раз подчеркнем: команды запуска программ, которые должны запускаться в любом менеджере окон, следует писать до блока "case", а тех программ, которые должны запускаться только в одном из менеждеров - в соответствующей ветке этого блока.

Амперсанд (&), который завершает многие команды, нужен для того, чтобы команда была запущена в фоновом режиме, а скрипт .xinitrc мог продолжать выполняться. Для большинства приложений этот амперсанд желателен. Некоторые команды, например, xset или xsri, быстро запускаются и сразу же завершаются, поэтому для данных команд амперсанд необязателен. Единственная команда, для которой амперсанд противопоказан, это последняя команда, которая запускает менеджер окон. Если запустить менеджер окон в фоновом режиме, скрипт .xinitrc завершится, X-сервер закроется, и вы окажетесь в режиме командной строки.