Послеустановочная лакировка Slackware 11

Форум для любителей всевозможных *nix систем и другого софта производства "Не Microsoft".
Аватара пользователя
trafim
Профи
Сообщения: 330
Зарегистрирован: Вт ноя 08, 2005 12:31 am
Контактная информация:

Сообщение trafim » Пн фев 05, 2007 3:27 am

Итак, вы установили slackware и вам хочется немного откастомайзить систему под себя. Тут я собрал некоторые трики, которые провернул после установки. Эта статейка - некая компиляция надерганных отовсюду howto и доков. Надеюсь кому-нибудь это сэкономит время потраченное на гугль.
Итак..

Русификация консоли
Ниже листинг конфигов. Прведите свои в такой же вид для русификации
консоли.
Для всех файлов должен быть выставлен аттрибут на выполнение!

/etc/rc.d/rc.font

Код: Выделить всё

#!/bin/sh
#
setfont -v Cyr_a8x16.psfu.gz                   
#устанавливает шрифт(выберите подходящий вам)
mapscrn /usr/share/kbd/consoletrans/koi2alt    
#устанавливает таблицу перекодировки
for i in 1 2 3 4 5 6; do                       
#применяет для консолей с 1 по 6
echo -ne "\033(K" >/dev/tty$i
done
/etc/rc.d/rc.keymap

Код: Выделить всё

#!/bin/sh
if [ -x /usr/bin/loadkeys ]; then              
#если есть утилита loadkeys,
/usr/bin/loadkeys ru4.map                      
#загрузить русскую раскладку
fi
/etc/profile.d/lang.sh

Код: Выделить всё

export LANG=ru_RU.KOI8-R                  
#собственно задает кодировку
Алиасы

Здесь алиасы для цветного листинга и удобства работы в консоли:

~/.bash_profile

Код: Выделить всё

alias ls='ls --color'
alias dir='ls -ls'
alias ..='cd ..'
alias ...='cd ../..'
alias df='df -h'
Так же сюда можно асунуть цветное приглашение на ввод и проч ерунду.
Я не стал.

Иксы

После установки локали для русификации иксов требуется лишь чуть
подправить конфиг для нормального переключания раскладок:

Часть /etc/X11/xorg.conf, секция клавиатуры

Код: Выделить всё

# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************
Section "InputDevice"

    Identifier  "Keyboard1"
    Driver      "kbd"
    Option "AutoRepeat" "500 30"
    Option "XkbRules"   "xorg"
    Option "XkbModel"   "pc101"
    Option "XkbLayout"  "us,ru(winkeys)"                        
#устанавливает основную раскладку us и дополнительную ru(winkeys).
    Option "XkbOptions" "grp:lwin_switch,grp:ctrl_shift_toggle" #переключение между раскладками по ctrl+shift а так же во время 
удерживания клавиши Win, раскладка временно меняется на противоположную.
Мышка
Также у меня при включенной консольной мыши, gpm конфликтовал с
иксовой мышой. Решение оказалось рядом - в /etc/rc.d/rc.gpm в конце приписка,
прочитав которую, делаем следущее:

а) Заменяем в /etc/rc.d/rc.gpm каждую строку запуска gpm на
/usr/sbin/gpm -R msc -m /dev/mouse -t ps2
#тип мышки и ее файл устройства ставьте свой.


б) В /etc/X11/xorg.conf, в секции про мышу, меняем протокол и файл устройства:

Код: Выделить всё

# **********************************************************************
Core Pointer's InputDevice section
# **********************************************************************

Section "InputDevice"

    Option "Protocol"    "MouseSystems" # Auto detect
    Option "Device"    "/dev/gpmdata"
Кроме протокола и девайса в принципе ничего трогать не надо.
А если конфликтов меж gpm и иксами не вдно - то лучше вообще ничего
не трогать

Шрифты

После установки сразу бросились в глаза ужасные шрифты в иксах.
Заменяем их на приличные шрифты, выдранные из винды:


Некоторые дистрибутивы, такие как SuSE, имеют небольшие скрипты
для загрузки пакета Windows Core Font. Если Вы владелец CD с Windows,
на нем есть программы позволяющие извлечь файлы шрифтов из архивов .cab.
Если Вы используете двойную загрузку как я, примонтируйте раздел с Windows
и скопируйте папку со шрифтами в Вашу домашнюю директорию. Это
необязательно, но необходимо, если Вы планируете удалить раздел с Windows.

Теперь мы должны добавить шрифты TrueType в Linux. Обычно в Linux шрифты
располагаются в /usr/X11R6/lib/X11/fonts. Быстрый взгляд на /etc/X11/xorg.conf
сообщит Вам следующее:

Код: Выделить всё

FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/TTF"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
FontPath "/opt/kde/share/fonts"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"     
FontPath "/usr/local/share/fonts"
FontPath "/usr/X11R6/lib/X11/fonts"
FontPath "/usr/local/share/fonts/TTF" #<-- строка создана менеджером шрифтов KDE
FontPath "/usr/share/fonts"
FontPath "/usr/share/fonts/default"
В моем случае шрифты TrueType находятся в каталоге TTF. В Вашем они могут
находиться в каталоге fonts или создайте сами каталог TTF. Вы можете также
добавить каталог ~/fonts, если не хотите, чтобы шрифты распространялись на
всю систему, но я обычно устанавливаю их для всей системы. Если Вы не
создавали новый каталог для шрифтов, убедитесь, что добавили строку
FontPath, чтобы указать, где X могут их найти.

Простейший путь установить новые шрифты - использовать менеджер
шрифтов KDE в Центре управления в разделе "Системные установки".
Перейдите в администраторский режим (для установки шрифтов для всей
системы) и щелкните на директорию TTF в дереве каталогов. Щелкните
"Добавить шрифты" в панели инструментов. Укажите на каталог со шрифтами
Windows и выберите все шрифты, которые желаете добавить: Arial, Comic Sans
MS, Courier New, Tahoma, Times New Roman и Verdana как минимум. Конечно, Вы
можете добавить, все, которые хотите. Если Вы используете этот путь,
шрифты будут установлены в каталог /usr/local/share/fonts/TTF и путь к нему
будет создан в xorg.conf как в листинге выше. Мы сделали это в первую
очередь, так как перекомпиляция freetype2 может нарушить работу мереджера
шрифтов KDE - это все всемя случалось у меня в KDE 3.2.x.

Во время правки xorg.conf убедитесь, что 100dpi-шрифты находятся выше 75dpi-шрифтов.

2. DPI - точек на дюйм

Window использует по умолчанию 96 dpi. Linux - 75 или 81. Вот почему шрифты в
Linux всегда такие маленькие по сравнению с теми же самыми шрифтами в
Windows при одинаковом размере экрана и шрифтов. В зависимости от Вашей
ситуации мы должны сделать следующие шаги, чтобы заставить Linux
работать при 96 dpi.

a) Если Вы сначала загружаетесь в консоль (runlevel 3) и используете startx для
запуска Х-ов, отредактируйте скрипт /usr/X11/bin/startx. В зависимости от
дистрибутива, это может быть символьная ссылка.

Код: Выделить всё

defaultserverargs="-dpi 96"
Просто добавьте "-dpi 96" к строке defaultserverargs= и все. Теперь, каждый
раз, как Вы запускаете startx, Вы будете загружаться с разрешением 96x96 dpi.

б) Если Вы автоматически стартуете X-Window через KDM или GDM, Вам нужно
отредактировать xorg.conf or XF86Config. Это немного посложнее. Мы должны
использовать переменную DisplaySize и она будет разная для каждого размера
экрана. Я использую 1280x1024:

Код: Выделить всё

# **********************************************************************
# Monitor section
# **********************************************************************
Section "Monitor"
Identifier "My Monitor"
HorizSync 31 - 86
VertRefresh 50-180
Option "dpms"
DisplaySize 337.5 270.0  #<--- обратите внимание
EndSection
Опция DisplaySize 337.5 270.0 заставляет X-Window загрузиться с разрешением
96x96 dpi при размере экрана 1280x1024. Переменная
задается
DisplaySize X Y
где
X = ширина_экрана_в_пикселях * 25.4 / желаемый_dpi
Y = высота_экрана_в_пикселях * 25.4 / желаемый_dpi
в) Если Вы используете Gnome, то даже если мы выполнили предыдущие шаги,
этого недостаточно. Идем в Gnome/Desktop Prefs/Fonts/Details и изменяем
опцию DPI вверху страницы на 96. Если даже Вы не используете Gnome, но
применяете демон gnome-setting для переноса оформления из Gnome в KDE, или
просто используете приложения из Gnome, такие, как evolution, Вам необходимо
выполнить это действие, т.к. они могут привнести настройки dpi в KDE и
сделать отображение шрифтов неустойчивым.

ОК, мы имеем TrueType шрифты и (или) dpi установлено на 96x96. Теперь нам нужно

3. Перекомпилировать Freetype2 для задействования интерпретатора байт-кодов

Загрузите исходные тексты с http://www.freetype.org/.

Это TRUETYPE readme из пакета исходников freetype2:

Код: Выделить всё

How to enable the TrueType native hinter if you need it
--------------------------------------------------------
Бла-бла-бла, тут неинтересно (прим. переводчика)
--------------------------------------------------------

- откройте файл "include/freetype/config/ftoption.h"

- найдите строку:

#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER

- замените на:

#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
Лучше и не объяснишь.


Прежде чем компилировать и устанавливать вероятно Вы захотите удалить
ранее установленный пакет. Я видел, это советуют в других документах, но я не
вижу в этом особой необходимости. Библиотека freetype в Slackware находится
в составе пакетов X-Window и не может быть удалена одна.

Убедитесь, что новые пакеты с исходными текстами установлены, так что Вы
можете начать компиляцию.

Итак, начнем...

Код: Выделить всё

./configure
Прочтите ./configure --help чтобы узнать установки по умолчанию. Побежали строчки. Сообщения типа "blah blah violates strict antialiasing rules
yada yada" можете игнорировать.

Зарегистрируйтесь root'ом:

Код: Выделить всё

su -
make install

Будучи root'ом запустите

Код: Выделить всё

ldconfig
Если Вы в KDE, запустите Панель управления и разделе Внешний вид/Шрифты
оставьте сглаживание шрифтов, но исключите диапазон от 0.0pt до 14.0 или
15.0pt. Замените все шрифты на Arial или Verdana размером 9 или 10 pt и
перезапустите X-Window.

Вы должны увидеть огромную разницу, как шрифты отрисовываются без
сглаживания (при этом размере).

Шаг 3: Приложения GTK2 (Gimp Tool Kit) в KDE

Приложения типа Mozilla, Gnumeric, Gaim, Abiword, Blufish, Pan являются
приложениями GTK2. При использовании их в KDE они не будут следовать
установкам шрифтов и размеров, которые Вы установили, пока Вы не
создадите скрытый файл в Вашей домашней директории.

Создайте текстовый файл, назовите его .gtkrc-2.0 и добавьте в него
следующую строку:

Код: Выделить всё

gtk-font-name = "Verdana 9"
или другой шрифт, который Вы выбрали в KDE.


Если вы используете KDM, то можно задать плотность пикселей и не
высчитывая вручную геометрию экрана. Для этого редактируем файл kdmrc (в
Gentoo он находится в /usr/kde/3.5/share/config/kdm/, в вашем дистрибутиве
смотрите размещение KDE). Находим следующую секцию:

Код: Выделить всё

[X-:*-Core]
AllowNullPasswd=true
AllowShutdown=All
NoPassEnable=false
NoPassUsers=
ServerArgsLocal=-nolisten tcp -dpi 96 #<-- обратите внимание.
ServerCmd=/usr/bin/X -br
Из исходников в пакеты
Чтобы после установки из исходников можно было легко удалять и
конфигурировать программу, непосредственно после конфигурирования и
компиляции, перед установкой создаем пакет .tgz с бинарями. Для чего
собственно нужна утилита slacktrack.
После её установки (скачал с оффсайта), процесс установки из исходников
выглядит примерно так:

Код: Выделить всё

./configure ..различные опции
make
slacktrack -r -p имя_будущего_пакета make install
Вместо make install можно вписать любой другой скрипт. После чего в /tmp
получаем готовый .tgz-пакет, которым уже рулим с помощью pkgtool.


Автологин
Так как кроме меня компьютер никем не используется, а каждый раз логиниться
на 4-6 консолях задалбывает, сделал автологин - после загрузки сразу входит в
баш под юзером на 4 консолях. Внимание. Не рекомендуется параноикам,
так как это серьезная уязвимость в безопасности

Итак.

Убираем из /etc/passwd пароль на пользователя (второе поле в записи).

Код: Выделить всё

user::1001:100:,,,:/home/user:/bin/bash
Создаем autologinuser.c с содержанием вида

Код: Выделить всё

 int main()  {
       execlp( "login", "login", "-f", "user", 0);
}
Значение user - имя пользователя.

Компилируем это дело

Код: Выделить всё

gcc -o autologinuser autologinuser.c
Кладем в /sbin, убедившись что оно выполняемое:

Код: Выделить всё

install -m 744 autologinuser /sbin
Теперь осталось только чуть подправить /etc/inittab, вот кусок моего:

Код: Выделить всё

c1:1235:respawn:/sbin/agetty -n -l /sbin/autologinuser 38400 tty1 linux
c2:1235:respawn:/sbin/agetty -n -l /sbin/autologinuser 38400 tty2 linux 
c3:1235:respawn:/sbin/agetty -n -l /sbin/autologinuser 38400 tty3 linux
c4:1235:respawn:/sbin/agetty -n -l /sbin/autologinuser 38400 tty4 linux
Логи
/etc/syslog.conf

Код: Выделить всё

#Выводим syslog на консоль
*.=info;*.=notice /usr/adm/messages
*.=info;*.=notice /dev/tty8
#Выводим maillog в отдельный файл           
mail.=info /usr/adm/maillog
И не забудьте создать файл:
touch /var/adm/maillog

На сегодня всё.
Последний раз редактировалось trafim Пн фев 05, 2007 3:28 am, всего редактировалось 1 раз.

fog
Профи
Сообщения: 1189
Зарегистрирован: Ср янв 18, 2006 8:25 am

Сообщение fog » Пн фев 05, 2007 9:07 am

Хотел добавить что-нибудь умное по subj, но ненашел, чего. Вцелом, тема слаки раскрыта.
автологин - после загрузки сразу входит в баш под юзером на 4 консолях. Внимание. Не рекомендуется параноикам, так как это серьезная уязвимость в безопасности
Да не, нормально. На домашнем компе пусть уж лучше так, нужно привыкать под юзером работать, а то некоторые если и логиняца в консоли, то сразу под root'а почемуто.

Ответить