|
Использование в Linux дискретной видеокарты AMD Radeon вместе со встроенной Raven Ridge |
Автор: nobody
[комментарии]
|
| Разговор пойдёт об AMD APU Ryzen 3 2200G, Ryzen 5 2400G и подобных им.
В обсуждениях на англоязычных форумах упоминается, что iGPU Vega10 более
технологически продвинут, и, в принципе, он может быть использован как
ведущий адаптер для dGPU предыдущих версий GCN 1,2,3 в рамках модели
памяти iGPU Vega10 (GCN 5).
Однако, с одной стороны это потребует большое количество человеко-часов для
написания таких драйверов под OS Linux. А, с другой стороны, новые адаптеры
линии RDNA полностью соответствуют этой модели памяти. И, в принципе,
состыковка iGPU Vega10 с dGPU RDNA, есть задача более простая и более перспективная.
Поэтому, в ближайшее время нормальной состыковки видеокарт GCN 1,2,3 и iGPU
Vega10 (GCN 5) в Linux, судя по всему, ожидать не приходится.
Соответственно, всё, что описано далее, это воркэраунд для сложившейся ситуации.
Пошаговая инструкция
Вот работоспособная конфигурация:
(01) Устанавливаем Fedora 31 (я использовал версию с MATE GUI).
Не забываем сразу добавить пользователя в группу video .
(02) Загружаем пакет kernel-5.3.16-300.fc31.src.rpm, и разворачиваем его для
компиляции в ${HOME}/rpmbuild/SOURCES/
(03) Идём на страничку
https://github.com/RadeonOpenCompute/ROCK-Kernel-Driver/issues/66 и загружаем
оттуда патч под нашу версию ядра
0003-allows-to-choose-iGPU-or-dGPU-memory-management-mode.patch.txt
по ссылке
https://github.com/RadeonOpenCompute/ROCK-Kernel-Driver/files/3614247/0003-allows-to-choose-iGPU-or-dGPU-memory-management-mode.patch.txt
Попутно читаем на английском про особенности работы встроенной карты, там много удивительного.
Выжимка, кому интересно, иначе можно пропустить:
модель памяти у iGPU и dGPU различна;
драйвер amdkfd по умолчанию использует модель памяти адаптера, проинициализировавшегося первым;
не смотря на то, что dGPU может быть первым и будет использована его модель
памяти, тем не менее iGPU Vega10 более технологически продвинут и именно он
получит первый номер во внутреннем дереве топологии драйвера amdkfd, что в
общем-то неправильно, так как карта адаптеров и фактическое их наличие не будут
соответствовать друг другу. Как результат, оба GPU будут нерабочими в ROCm (и
не только в нём);
двое разработчиков ROCm под никами fxkamd и Djip007 сформировали патч
для драйвера amdkfd, позволяющий на этапе загрузки ядра сказать драйверу
amdkfd, какую модель памяти использовать и какие адаптеры допустимы в дереве
топологии amdkfd, скажем "Большое Спасибо!" им за это.
(04) Копируем патч в каталог ${HOME}/rpmbuild/SOURCES/
$ cp 003-allows-to-choose-iGPU-or-dGPU-memory-management-mode.patch.txt ${HOME}/rpmbuild/SOURCES/003-allows-to-choose-iGPU-or-dGPU-memory-management-mode.patch
Исправляем в kernel.spec
%global baserelease 300
на произвольное большее
%global baserelease 307
Добавляем в kernel.spec после описания всех патчей, после строки
Patch536: .....
строку с описанием нового патча
Patch537: 0003-allows-to-choose-iGPU-or-dGPU-memory-management-mode.patch
как раз перед строкой
# END OF PATCH DEFINITIONS
Делаем линк kernel.spec:
$ cd ${HOME}/rpmbuild/SPECS/
$ ln ../SOURCES/kernel.spec
Запускаем сборку пакетов ядра с патчем:
$ rpmbuild -ba --nodebuginfo --target x86_64-redhat-linux --define "%_without_debug 1" --define "%set_build_flags echo" --define "%make_build make" --define "%make_install make install DESTDIR=%{buildroot}" kernel.spec
Внимание, потребуется много места на диске!
В моём случае сборки для x86_64 конфигов это было около 27 GB временных файлов.
По завершении сборки в директории ${HOME}/rpmbuild/RPMS/x86_64/
будут лежать новые пакеты:
kernel-5.3.16-307.fc31.x86_64.rpm
kernel-core-5.3.16-307.fc31.x86_64.rpm
kernel-debuginfo-5.3.16-307.fc31.x86_64.rpm
kernel-debuginfo-common-x86_64-5.3.16-307.fc31.x86_64.rpm
kernel-devel-5.3.16-307.fc31.x86_64.rpm
kernel-modules-5.3.16-307.fc31.x86_64.rpm
kernel-modules-extra-5.3.16-307.fc31.x86_64.rpm
Устанавливаем это новое ядро и его модули (естественно, с опцией --nogpgcheck).
(05) Обновляем загружаемый микрокод для видеокарт:
# dnf upgrade linux-firmware libclc
(06) Добавляем в настройки dracut несколько опций
# cat /etc/dracut.conf.d/my20200224.conf
add_drivers+=" amd_iommu_v2 amdgpu nvme_core nvme "
fw_dir+=" /lib/firmware/amdgpu "
install_items+=" /lib/firmware/amdgpu/raven_* /lib/firmware/amdgpu/polaris* "
(07) Аккуратно настраиваем X-сервер в /etc/X11/xorg.conf.
Чтобы он видел dGPU как первичный адаптер, а iGPU , как вторичный адаптер без экрана.
Однако к монитору iGPU должен быть подключен физически (или к его HW-эмулятору).
Создаём шаблон xorg.conf командой:
# X -configure
Затем копируем его в /etc/X11/xorg.conf и редактируем, оставляя:
Layout0 с двумя картами Card0 и Card1
Card0 это первичный dGPU с монитором и экраном, с точным указанием BusID
Card1 это вторичный iGPU без монитора и без экрана, с точным указанием BusID
Например:
Section "Device"
# dGPU
Identifier "Card0"
Driver "amdgpu"
BusID "PCI:1:0:0"
Option "TearFree" "True"
Option "Accel" "True"
EndSection
Section "Device"
# iGPU
Identifier "Card1"
Driver "amdgpu"
BusID "PCI:9:0:0"
EndSection
Ваши GPU могут иметь другие номера на шине pci, смотрим командой:
# lspci -v
.....
Пропускаем секции "Monitor1" и "Screen1" для iGPU в нашем случае, как это
регламентировано в мануале для xorg.conf.
Просто комментируем соответствующие разделы:
#Section "Monitor"
# Identifier "Monitor1"
.....
#Section "Screen"
# Identifier "Screen1"
.....
(08) Добавляем опцию для kfd из рекомендаций установки ROCm:
# cat /etc/udev/rules.d/70-kfd.rules
SUBSYSTEM=="kfd", KERNEL=="kfd", TAG+="uaccess", GROUP="video", MODE="0660"
Это позволит работать с dGPU пользователю из группы video.
(09) Перегенерим initramfs:
# dracut --force --kver 5.3.16-307.fc31.x86_64
(10) Добавляем в настройки grub2 несколько опций ядра для загрузки:
amd_iommu=fullflush iommu=pt video=efifb:off amdgpu.rocm_mode=2
(11) Дополнительно, устанавливаем воркэраунд от некогерентности кэша для GCN 1,2,3,5 видеокарт:
# cat /etc/environment
AMD_DEBUG=nongg,nodma
RADV_DEBUG=nongg
DRI_PRIME=0
К сожалению, воркэраунды снижают производительность от 1.5 до 15 раз (судя по
тесту Glmark2), но зато дают стабильность GUI-десктопу.
Для RDNA 1,2 видеокарт вроде бы это не нужно, но я не проверял, так как не на чем.
Перезагружаемся.
(12) Настраиваем в EFI dGPU как первичную видеокарту, а iGPU, соответственно,
становится вторичной видеокартой, урезаем ей RAM до 64 MB. Загружаемся.
Вот и всё.
Проверка
Теперь проверяем корректность результата.
# dmesg | grep -i -e amdgpu -e kfd -e drm -e ttm -e atomic -e crat
.....
[ 3.414606] kfd kfd: Ignoring ACPI CRAT on disabled iGPU (rocm_mode!=ROCM_MODE_IGPU)
.....
[ 3.667325] kfd kfd: added device 1002:wxyz
.....
[ 3.733956] kfd kfd: skipped DID 15dd, don't support dGPU memory management models
.....
Выбрана модель памяти для dGPU, добавление iGPU в топологию kfd пропущено, а
топология kfd для dGPU сформирована правильно.
# lspci -nnk -d 1002:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] .....
Subsystem: .....
Kernel driver in use: amdgpu
Kernel modules: amdgpu
09:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] [1002:15dd] (rev c8)
Subsystem: .....
Kernel driver in use: amdgpu
Kernel modules: amdgpu
09:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP Audio Controller [1002:15de]
Subsystem: .....
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
Всем видны оба видео-адаптера AMD на pci шине: и dGPU и iGPU.
Важно, чтобы неиспользуемый iGPU контроллировался ядерным драйвером amdgpu.
Если этого не будет (например, можно удалить устройства из дерева pci
средствами udev на раннем этапе загрузки), то iGPU будет сильно греть APU (max
75*C вместо max 60*C). И это при том, что сам iGPU вообще не будет никак
использоваться. Может возникнуть впечатление, что появились проблемы с кулером
APU, но это не так.
$ less /var/log/Xorg.0.log
[ 15.962] (**) ServerLayout "Layout0"
[ 15.962] (**) |-->Screen "Screen0" (0)
[ 15.962] (**) | |-->Monitor "Monitor0"
[ 15.962] (**) | |-->Device "Card0"
[ 15.962] (**) | |-->GPUDevice "Card1"
[ 15.962] (**) |-->Input Device "Mouse0"
[ 15.962] (**) |-->Input Device "Keyboard0"
.....
[ 15.964] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 15.970] (II) xfree86: Adding drm device (/dev/dri/card1)
[ 15.973] (--) PCI:*(1@0:0:0) .....
[ 15.973] (--) PCI: (9@0:0:0) .....
.....
[ 15.979] (II) LoadModule: "amdgpu"
[ 15.980] (II) Loading /usr/lib64/xorg/modules/drivers/amdgpu_drv.so
.....
[ 15.983] (II) AMDGPU: Driver for AMD Radeon:
All GPUs supported by the amdgpu kernel driver
[ 15.983] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 15.983] (II) AMDGPU(0): [KMS] Kernel modesetting enabled.
.....
Т.е. видим, что X-сервер обнаружил обе видеокарты, но активно использует только
одну и именно дискретную видеокарту.
Далее можем, например, установить ROCm 3 _без_ dkms драйвера в соответствие с родной инструкцией:
# dnf install rocm-dev rocm-libs
Следующие программы дополнительно покажут корректность описанной выше пошаговой настройки.
rocm-smi нормально отображает всю статистику по dGPU и управляет ею.
rocminfo отрабатывает без ошибок и отображает 2 вычислительных агента CPU и gfx803.
clinfo отрабатывает без ошибок и отображает 1 платформу AMD-APP и 1
устройство gfx803 (не считая Mesa Clover и Pocl).
hashcat видит устройство и работает нормально. (Самосборный пакет из
оригинальных исходников, т.к. из репозитория Fedora 31 сборка имеет урезанную
функциональность и проблемы с запуском.)
Компилятор AOMP в составе ROCm 3.1 проходит успешно 67 тестов из 69 из
приложенного набора тестов smoke.
vainfo , vdpauinfo отрабатывают нормально.
Итоги
В результате настройки получаем устойчивый GUI-десктоп с корректно работающим
dGPU и с условно корректно отключенным, "не используемым" iGPU.
Дополнительно
PS:
Пока удалось нарушить работу dGPU, только используя в Avidemux HW-кодер "Intel AVC HW (VA)".
В то же время HW-кодер "Intel HEVC" в Avidemux работает довольно быстро.
А "Intel H264" не работает совсем, и, судя по всему, встройка тут не при чём.
Запуск командой:
$ ( DRI_PRIME=1 avidemux3_qt5 )
позволяет использовать встроенные HW-кодеры "не используемого" iGPU, работают они примерно так же.
PPS:
В принципе, в ядро 5.6 были добавлены полезные патчи для Raven iGPU, и, с
применением воркэраунда для Mesa 19.2.8
# cat /etc/environment
AMD_DEBUG=nongg,nodma,nodcc
RADV_DEBUG=nongg
DRI_PRIME=0
стало возможным использовать Raven iGPU как первичную видеокарту в EFI, а dGPU
использовать вторичной видеокартой.
Соответственно, просто меняем местами BusID карт в xorg.conf , и включаем
вторичную dGPU в MATE: меню System -> Control Center -> Displays -> второй
дисплей , ON , Applay , Close (настройка сохраняется в ${HOME}/.config/dconf/).
В этом случае производительность dGPU в графике снижается.
Зато появляется возможность работать с tensorflow-rocm при 100% нагрузке dGPU
без замираний первичного экрана, и наблюдать происходящее в процессе.
И, однако, попутно выясняется, что ядро 5.6.8 (со своим таким же патчем с той
же веб-странички) _не_ загружается с primary dGPU в EFI.
Возможно, что для сочетаний конкретных APU и MainBoard это вылечится
обновлением Grub2 до актуальной версии.
Вероятно, старая версия Grub2 неправильно транслирует какие-то параметры ядру из EFI.
Этот момент и более поздние версии ядер 5.6.n и 5.7.n , пардон, проверить не
успел, т.к. заапгрейдил APU на обычный CPU Ryzen без iGPU.
Перспективы
Общие соображения, которые с одной стороны можно было бы и не добавлять в
статью, а с другой, почему бы и не добавить.
Судя по всему, RDNA 1 и 2 как архитектуры GPU есть шаги по направлению к
когерентной архитектуре Gen-Z.
Это означает, что:
основной свичованой шиной станет CCIX как приоритезированный PCIe Gen4 (и выше)
RAM будет выделена в отдельные модули на CCIX-шине
контроллер памяти будет в диспетчере и каждом модуле RAM
кэши CPU, GPU, RAM, плат расширения будут когерентны
IOMMUv2 (или выше) будет обязателено by design
GPU станут более самостоятельными относительно CPU (как вычислительные устройства)
iGPU / APU не вполне вписываются в эту концепцию
Выводы, конечно же, каждый сделает сам.
|
|
|
|
|
Как установить AMD Catalyst в Fedora 21, не ломая GNOME и другие вещи |
Автор: Stax
[комментарии]
|
| Преамбула
Прошу не начинать обсуждения не по теме вроде "какая ваша Fedora гадость, в
нормальных дистрибутивах проблем никаких" (в Fedora просто в силу прогресса
сломали раньше, дойдет и до остальных, например, в свежем Debian уже
случилось), "какой ваш GNOME гадость" (проблемы не специфичны для гномовского
десктопа, всякие rhythmbox и другой софт, использующий clutter сломан точно
также), "какие бинарные драйверы гадость" (с открытыми драйверами на многих
карточках безумно шумит кулер, пока не исправлена вот эта ошибка, а еще
проблемы с suspend и прочее) или так далее. А вот предложения, как сделать эти
инструкции более надежными приветствуются.
Задача
Итак, есть свежая Fedora 21, 64-х битная система с карточкой AMD, нужно
заставить работать Catalyst, чтобы не сломался gdm или программы, собранные с
clutter, в том числе GNOME. В rpmfusion каталиста нет, советы в интернете
предлагают идти на какие-то жертвы типа "снести GNOME", "выключить gdm" (лично
у меня с lightdm не работает блокировка экрана), "ставить левые пакеты
clutter/gnome-shell/etc после каждого обновления, пересобираемые каким-то
сомнительным товарищем и выкладываемые на что-то типа mediafire без подписи" и
так далее. Это не наш путь, нужно, чтобы работало все как есть и цивилизованно:
пакеты в rpm'ках, не сломанная функциональность и прочее. Это достижимо (ну,
почти). Инструкция проверена на последних версиях пакетов на данный момент
(Catalyst 14.12, ядро 3.17.7 gnome-shell 3.14.3, gdm 3.14.1, clutter 1.20.0)
Инструкция
Загружаем AMD Catalyst - amd-catalyst-omega-14.12-linux-run-installers.zip.
Распаковываем, переходим в fglrx-14.501.1003. Качаем патч, чтобы собрать с
ядром 3.17:
wget https://bluehatrecord.files.wordpress.com/2014/11/3-17_kernel-patch.doc
Накладываем патч и собираем rpm пакет. Федоры в списке нет, зато есть RHEL7,
который почти F19, которая почти F21 - в общем, то, что надо!
sh amd-driver-installer-14.501.1003-x86.x86_64.run --extract
cd fglrx-install.*
patch -p0 < ../3-17_kernel-patch.doc
./ati-installer.sh '14.501' --buildpkg RedHat/RHEL7_64a
Ставим пакет и создаем файл конфигурации Xorg.
sudo rpm -i ../fglrx64_p_i_c-14.501.1003-1.x86_64.rpm
aticonfig --initial
Выключаем драйвер radeon и kernel modesetting.
Правим /etc/sysconfig/grub, в строку GRUB_CMDLINE_LINUX= добавляем
radeon.modeset=0 rd.driver.blacklist=radeon nomodeset
к тому, что там уже есть; пересоздаем конфиг grub командой
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
на современной системе с UEFI, или же
grub2-mkconfig -o /boot/grub2/grub.cfg
на системой со старым BIOS или на UEFI-системе в legacy-режиме
Чиним ошибку в clutter. Создаем файл /etc/X11/xinit/xinitrc.d/cogl-setup.sh по такой инструкции:
sudo sh -c "cat > /etc/X11/xinit/xinitrc.d/cogl-setup.sh" << EOF
export COGL_DRIVER=gl
export COGL_OVERRIDE_GL_VERSION=1.4
export COGL_RENDERER=GLX
export LD_PRELOAD=/usr/lib64/fglrx/fglrx-libGL.so.1.2
EOF
sudo chmod +x /etc/X11/xinit/xinitrc.d/cogl-setup.sh
Чиним проверку версии X'ов в драйвере при использовании gdm. Аккуратнее - точно
выполняйте эти команды, нельзя их менять, если что-то в них непонятно - а то не
сработает, либо вообще повредите бинарник и придется переставлять fglrx:
sudo -i
Xorg -version > /amd_xversion 2>&1
cd /usr/lib64/xorg/modules/drivers/
offset=`strings -td fglrx_drv.so | grep '/proc/%i/fd/0' | sed 's/^ *//' | cut -d' ' -f1`
echo -ne '/amd_xversion' | dd conv=notrunc of=fglrx_drv.so bs=1 count=13 seek=$offset
cd ../extensions
offsetext=`strings -td libglx.so | grep '/proc/%i/fd/0' | sed 's/^ *//' | cut -d' ' -f1`
echo -ne '/amd_xversion' | dd conv=notrunc of=libglx.so bs=1 count=13 seek=$offsetext
exit
Здесь на диске меняются два бинарника, если переставить rpm'ку fglrx, это
придется делать заново. В процессе будет создан файл /amd_xversion, не удаляйте
его! Оттуда драйвер будет считывать версию иксов.
Чиним запускаемый специальным образом gnome-shell, который выполняет gdm (да,
он сейчас не сам по себе, фон и верхнюю панель рисует именно gnome-shell).
Правим /usr/share/gdm/greeter/applications/gnome-shell.desktop и меняем строку
Exec=gnome-shell --mode=gdm" на "Exec=env COGL_DRIVER=gl COGL_OVERRIDE_GL_VERSION=1.4 COGL_RENDERER=GLX LD_PRELOAD=/usr/lib64/fglrx/fglrx-libGL.so.1.2 gnome-shell --mode=gdm
Это самое несовершенное изменение - если обновить gdm, это придется делать
заново, так как rpm перетрет файл. Я не знаю, как это сделать более нормально -
патчить при загрузке изврат, вроде теоретически можно создать свою копию
gnome-shell.desktop и копию
/usr/share/gnome-session/sessions/gdm-shell.session, в котором прописать вместо
gnome-shell свою версию, а потом поправить dconf'ом файлик
/usr/share/gdm/greeter-dconf-defaults, чтобы gdm использовал системную сессию,
отличную от gdm-shell.session. Но, подозреваю, rpm это тоже переписывает.
В общем, если кто-то знает, как сделать аналог этого изменения, чтобы
нормально обновлялся gdm и ничего не ломалось - сообщите!
PS. Я также опубликовал английский вариант на fedoraforum - это не совсем
точный перевод русского текста, просто написав инструкцию на-английском, решил
сделать и русский вариант, заодно упростил некоторые вещи, так как полагаю, что
тут аудитория более подготовленная, чем на fedoraforum.
PPS. Ошибка в Clutter, из-за которой приходится прописывать переменные
окружения можно отслеживать на данной странице.
|
|
|
|
|
Диагональное размещение информации на экране (доп. ссылка 1) |
[комментарии]
|
| На системах с X-сервером при помощи утилиты xrandr можно организовать
размещение информации на экране монитора, установленного не только
горизонтально или вертикально, но и под произвольным углом.
Например, можно повернуть монитор на 45 градусов:
xrandr --output HDMI-3 --transform 0.707106781186548,-0.707106781186548,0,0.707106781186548,0.707106781186548,0,0,0,1
или 22 градуса:
xrandr --output HDMI-3 --transform 0.927183854566787,-0.374606593415912,0,0.374606593415912,0.927183854566787,0,0,0,1
Указываемые в параметре "--transform" значения рассчитываются по формуле
"cos(x),-sin(x),shift_left,sin(x),cos(x),shift_up,0,0,1", в которой "x" -
необходимый угол поворота.
|
|
|
|
|
Уменьшение жёстко определённого размера окна приложения в формате AppImage
|
[комментарии]
|
| При запуске некоторых приложений, поставляемых в формате AppImage, окно не
умещается на экран и штатные механизмы изменения размера окна не позволяют
уменьшить его до нужных размеров. Например, окно оказывается слишком длинным и
его нижняя часть на широкоформатном экране ноутбука всегда оказывается за
пределом экрана.
До выступающей за пределы экрана части можно добраться сместив окно в другую
сторону, перемещая его мышью за боковую грань при удержании клавиши Alt, но
при постоянной работе с программой так поступать неудобно.
Для постоянного уменьшения масштаба можно перед запуском программы выставить
переменную GDK_DPI_SCALE для программ на GTK, и
QT_SCALE_FACTOR для Qt. Например:
GDK_DPI_SCALE=0.8 ./prog.AppImage
QT_SCALE_FACTOR=0.8 ./prog.AppImage
|
|
|
|
|
Удалённая работа с GTK-приложениями через браузер (доп. ссылка 1) (доп. ссылка 2) |
[комментарии]
|
| В состав GTK+ входит бэкенд Broadway, позволяющий отрисовывать вывод в окне
web-браузера, передавая данные через WebSocket и формируя изображение с
использованием технологий HTML5. Каждое окно сопоставляется с элементом canvas,
а содержимое окон передается клиенту в виде копий слоев (для скроллинга) и
блоков, описывающих изменения между изображениями. Изображения отправляются в
формате PNG. Для обновления содержимого окна организуется передача потока
команд через "multipart/x-mixed-replace"-запросы XMLHttpRequest.
Начиная с Ubuntu 15.04 бэкенд Broadway поставляется по умолчанию. В более
ранних выпусках необходимо установить пакет из PPA:
sudo add-apt-repository ppa:malizor/gtk-broadway
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install broadwayd
Для использования Broadway в любом приложении на базе GTK+3 достаточно перед
запуском установить переменную окружения GDK_BACKEND=broadway, после чего
интерфейс приложения станет доступен при открытии в браузере страницы
http://127.0.0.1:8080. Для запуска нескольких приложений, с присвоением для них
разных номеров портов, следует использовать вспомогательный дисплейный сервер broadwayd.
Например:
broadwayd
GDK_BACKEND=broadway gedit
Если после запуска произошёл крах, можно попробовать отключить в программе
работу с глобальным меню и исчезающими полосами прокрутки:
GDK_BACKEND=broadway UBUNTU_MENUPROXY= LIBOVERLAY_SCROLLBAR=0 gedit
Для запуска ещё одного приложения, в broadwayd следует указать номер сеанса,
после чего номер порта для него выбирается по формуле "8080 + номер". Например (127.0.0.1:8081):
broadwayd :1
GDK_BACKEND=broadway gtk3-demo
Для доступа с другого ПК можно прикрепить обработчик на другой IP-адрес при
помощи опции --address, например:
broadwayd --address 192.168.1.34 :2
Для предотвращения несанкционированного доступа для сеанса можно задать пароль,
который нужно сохранить в файл ~/.config/broadway.passwd. Например:
openssl passwd -1 > ~/.config/broadway.passwd
|
|
|
|
|
Установка проприетарного драйвера AMD Crimson Edition 15.12 в Ubuntu 16.04 |
Автор: Аноним
[комментарии]
|
| Многие слышали о прекращении поддержки проприетарного драйвера fglrx в
Ubuntu 16.04. Меня это событие обошло стороной и я стал "счастливым"
обладателем свежей версии убунты.
Часть первая, где мы будем патчить
Сразу отмечу, что amdgpu у меня R9 390x не "взлетел". И я решил пойти по пути
наименьшего сопротивления. Установке драйверов препятствует отсутствие
поддержки ядра версии 4.4, заботливо предоставленного сборщиками из Canonical.
К счастью,некий imageguy, уверенной 10-ти пальцевой печатью, набил на клавиатуре
патч
для данного ядра. Спасибо imageguy!
Если упустить процедуру скачивания распоследнего crimson с сайта amd установка
сводится к следующим действиям:
sh amd-driver-installer-15.302-x86.x86_64.run --extract
cd fglrx-install.*/
wget https://raw.githubusercontent.com/imageguy/fglrx-for-Fedora/master/fglrx_kernel_4.4.diff
patch -p1 < fglrx_kernel_4.4.diff
Часть вторая, понижение версии xserver
Вот и славно, модуль ядра теперь точно соберется, но остается еще одна преграда
на пути к установке - это xserver-xorg версии 1.18. Но это совсем не беда,
поставим его из репозитория willy. Но сначала удалим пакеты xserver версии 1.18:
sudo apt-get purge xserver-xorg*
Заморачиваться со скачиванием пакетов xserver я не стал, просто закоментировал
текущие репозитории в:
sudo sed -i 's/deb/#deb/' /etc/apt/sources.list
и прописал репозитории wily:
deb http://cz.archive.ubuntu.com/ubuntu wily main
deb http://cz.archive.ubuntu.com/ubuntu wily-updates main
И поставил xserver из репозитория wily:
sudo apt-get update
sudo apt-get install xserver-xorg
Холдим пакеты с пониженной версией xserver:
packages=`aptitude search xserver|grep -E '^i'|grep -Eo '(xserver-.+) - '|awk '{print $1}'`; for pkg in $packages; do echo "$pkg hold" | sudo dpkg --set-selections;done
Восстанавливаем содержимое /etc/apt/sources.list:
sudo sed -i 's/#deb/deb/' /etc/apt/sources.list
Не забудте закоментировать репозитории wily, можно их и оставить, но не кошерно.
Находясь в директории с распакованым драйвером делаем:
sudo sh ./ati-installer.sh 15.302 --install
далее установка проходит в обычном режиме.
Источник: Инструкция по установке драйвера в Fedora.
|
|
|
|
|
Оценка работы Unity 8 в изолированном контейнере, запускаемом в обычном Ubuntu (доп. ссылка 1) |
[комментарии]
|
| Пользователям настольной версии Ubuntu, которая в выпуске 16.04 продолжает по
умолчанию поставляться с X-сервером и окружением рабочего стола Unity 7,
предоставлена возможность оценить работу свежей версии Unity 8 с минимальным
влиянием на текущее рабочее окружение. Начиная с Ubuntu 15.04, из штатных
репозиториев можно установить образ LXC-контейнера c Unity 8 и графическим
стеком на базе дисплейного сервера Mir и Qt5.
Для развёртывания контейнера достаточно установить пакет unity8-lxc и запустить
скрипт формирования и настройки начинки контейнера:
sudo apt install unity8-lxc
sudo unity8-lxc-setup
после чего возможность входа в сеанс Unity 8 появится в штатном интерфейсе
менеджера входа в систему.
Для обновления начинки контейнера следует выполнить команду
sudo unity8-lxc-setup --update-lxc
Пользователи Ubuntu 14.04 могут воспользоваться пакетом unity8-lxc после
подключения PPA-репозитория https://launchpad.net/~unity8-desktop-session-team/+archive/ubuntu/unity8-preview-lxc
sudo apt-add-repository ppa:unity8-desktop-session-team/unity8-preview-lxc
Свежая видеодемонстрация Unity 8: http://www.youtube.com/watch?v=ItFoz92zNm0
|
|
|
|
|
Запуск и использование сервера Xvnc |
Автор: 赤熊
[комментарии]
|
| В своё время была задача реализации игровой станции с множеством клиентов. В
качестве клиентов выступали телефоны на платформе Android.
Как оказалось обычного канала wi-fi хватало на раздачу игровой анимации
примерно на десять клиентов. В качестве приложения-клиента использовался simplevnc.
Ниже приведён скрипт запуска vnc-сервера, где первым параметром идёт адрес
дисплея, например 1, а вторым параметром - адрес порта, например 5555.
Расположение каталогов со шрифтами зависит от настроек вашей ОС, так что будьте внимательны.
Файл авторизации на моём ПК лежит /dev/shm/bin/.vnc/passwd
vncconfig позволяет настроить параметры запущенного vnc сервера. В приведённом
примере это параметры отключения клиентов и уровень компрессии.
#!/bin/sh
Xvnc :$1 -desktop worker:$1 -geometry 800x500 -depth 24 -rfbwait 30000 -rfbauth /dev/shm/bin/.vnc/passwd -rfbport $2 -pn -fp /usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/Speedo/,/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/,/usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb >/dev/shm/log_$1.txt 2>&1 &
export DISPLAY=:$1.0
vncconfig -DisconnectClients=0 -ZlibLevel=9 -IdleTimeout=120 NeverShared=1
Кроме создания игрового сервера, связка Android и vnc-сервера может оказаться
полезной для работы с инженерными программами и САПР, когда программа
выполняется на хосте, а вывод формируется на телефоне.
|
|
|
|
|
Способ обхода краха Firefox и OpenGL приложений из-за ошибки в видеодрайвере Intel (доп. ссылка 1) |
[комментарии]
|
| В Ubuntu 14.04 и более новых выпусках при использовании KMS-драйвера i915 на
системах со старыми видеочипами Intel 965GM, обычно используемыми в связке с
CPU Intel Core 2 Duo, периодически начинают падать OpenGL-приложения.
После загрузки некоторое время всё нормально, но после выхода из сна или
перехода в полноэкранный режим попытка обращения к OpenGL приводит к выводу
такой ошибки:
$ glxgears
intel_do_flush_locked failed: Input/output error
Неприятность ситуации в том, что в таких условиях непредсказуемым образом
начинает падать и Firefox, если на сайте используется WebGL или модные
графические трансформации.
Обходным способом решения проблемы является запуск OpenGL-программ с
программной реализацией OpenGL (включается установкой переменной окружения
LIBGL_ALWAYS_SOFTWARE=1), например, вместо прямого вызова в ярлык для запуска
Firefox можно прописать:
sh -c "LIBGL_ALWAYS_SOFTWARE=1 /usr/local/firefox/firefox"
Проблема решается установкой Mesa из репозитория xorg-edgers:
sudo apt-add-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get dist-upgrade
|
|
|
|
|
Простой способ существенно увеличить производительность открытого драйвера RadeonSI (доп. ссылка 1) |
Автор: Аноним
[комментарии]
|
| Как известно, открытый драйвер RadeonSI для GPU семейства Radeon на основе GCN
от компании AMD все чаще показывает производительность, сравнимую с
проприетарным драйвером и при этом не страдает некоторыми проблемами и
особенностями проприетарного драйвера, на данный момент полностью поддерживая
стандарт OpenGL 3.3, что зачастую делает этот драйвер интересным вариантом даже
для любителей игр.
Менее известен тот факт, что можно получить существенный дополнительный прирост
производительности открытого драйвера в ряде 3D-программ очень простым методом.
В RadeonSI по умолчанию отключен Hyper-Z, из-за проблем с стабильностью в
некоторых программах с некоторыми GPU. Тем не менее, по состоянию на данный
момент (MESA 10.3-devel, ядро Linux 3.17-rc1) большинство подобных сочетаний
GPU и программ работает вполне стабильно.
В результате можно получить достаточно существенный прирост производительности
в 3D, выставив переменную окружения R600_DEBUG=hyperz для активации hyper-z. Как
показали
тесты ресурса Phoronix, в зависимости от программы прирост составляет от 10
до 50%.
Дополнение:
MESA версий 10.4 и более новые активируют hyperz по умолчанию, поскольку все
известные проблемы со стабильностью были устранены. В данном случае указанная
настройка не требуется, а в случае проблем с hyperz его можно отключить
"обратной" настройкой - R600_DEBUG=nohyperz
Кроме этого, в свежих версиях MESA содержится и ряд иных оптимизаций,
существенно увеличивающих производительность в ряде случаев, поэтому
пользователям заинтересованным в высокой производительности 3D-графики с
открытыми драйверами семейства Radeon рекомендуется использовать свежие версии
компонентов графического стека.
|
|
|
|
|
Организация ввода спецсимволов в системах с X.Org |
Автор: pavlinux
[комментарии]
|
| В системах, использующих X.org, в модуле xkb существует подсистема Compose
Keys, которая нужна и может, или даже должна быть использована для ввода
спецсимволов, точнее знаков отсутствующих на обычных PC клавиатурах. Например
знаки копирайта ©, товарный знак, регистрационное имя, градус °, дроби и так далее.
Для включения этой возможности, нужно всего лишь добавить конфигурационный файл
Xorg, в секции "InputClass" или "InputDevice"
для клавиатуры, добавить опцию:
Option "XkbOptions" "compose:ralt"
Если таковая уже имеется, то, через запятую, можно дописать этот параметр в конец её аргументов:
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll,compose:ralt"
Как уже догадались, Compose-клавишей у нас является правый Alt.
§ Теперь осталось самое тяжёлое - запомнить комбинации и
потренироваться, так как некоторые знаки требуют 5 дана по клавиатурному феншую.
Например для набора знака +/- нужно
нажать и держать <Compose>, нажать и держать <Shift> , нажать <=>,
отпустить <Shift> нажать <->
Подсказку с комбинациями можно добавить в закладки браузера.
http://www.hermit.org/Linux/ComposeKeys.html
P.S. Кто не знает или забыл, где найти файл конфигурации Xorg:
Олдскульный - /etc/X11/xorg.conf.
В новых системах, в отдельном каталоге, что-то вроде /etc/X11/xorg.conf.d/
должен быть отдельный файл для клавиатуры, на openSuSE это 90-keytable.conf
Какой именно используется у вас, можно найти в логе Xorg:
grep "Using config" /var/log/Xorg.*
|
|
|
|
|
Кастомизация Unity и установка полноценного GNOME в Ubuntu 12.04 (доп. ссылка 1) |
[комментарии]
|
| Установка дополнительных утилит для тонкой настройки Unity.
В Ubuntu Software Center можно найти утилиту MyUnity, при помощи которой можно
настроить базовые аспекты поведения оболочки:
sudo apt-get install myunity
Для настройки Compiz и десктоп-эффектов следует использовать CompizConfig Settings Manager:
sudo apt-get install compizconfig-settings-manager
Для изменения поведения ланчера, панели и опций запуска удобно использовать
приложение Ubuntu Tweak:
sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak
Подборка разнообразных настроек панели, шрифтов, визуальных тем и других
параметров Unity также представлена в программе Unsettings:
sudo add-apt-repository ppa:diesch/testing
sudo apt-get update
sudo apt-get install unsettings
Помещение ярлыков приложений на рабочий стол.
Переместить иконки с приложениями на рабочий стол можно путем их перетаскивания
мышью из панели или области поиска. После перемещения необходимо убедиться, что
скопированные .desktop файлы имеют права на запуск и принадлежат текущему пользователю:
sudo chmod +x ~/Desktop/*.desktop
sudo chown логин ~/Desktop/*.desktop
Добавление классического меню.
Для возвращения классического иерархического меню в стиле GNOME 2 следует
установить апплет classicmenu:
sudo add-apt-repository ppa:diesch/testing
sudo apt-get update
sudo apt-get install classicmenu-indicator
Для активации меню следует найти и запустить через HUD программу
classicmenu-indicator, после чего меню появится в верхней части панели.
Отключение скрытых полос прокрутки.
Для возвращения привычных полос прокрутки следует выполнить:
sudo su
echo "export LIBOVERLAY_SCROLLBAR=0" > /etc/X11/Xsession.d/80overlayscrollbars
Отключение глобального меню.
Глобальное меню можно отключить в конфигураторе Unsettings или удалив связанные с ним пакеты:
sudo apt-get autoremove appmenu-gtk appmenu-gtk3 appmenu-qt
Вернуть глобальное меню можно установив пакеты:
sudo apt-get install appmenu-gtk appmenu-gtk3 appmenu-qt
В Firefox глобальное меню можно удалить отключив дополнние "Global Menu Bar Integration".
Добавление индикатора мониторинга параметров системы (CPU, сеть, память и т.п.) на панель.
sudo add-apt-repository ppa:indicator-multiload/stable-daily
sudo apt-get update
sudo apt-get install indicator-multiload
Для активации индикатора следует запустить программу indicator-multiload.
Установка GNOME вместо Unity.
Установка классического оформления GNOME:
sudo apt-get install gnome-panel
Установка десктопа GNOME 3:
sudo apt-get install gnome-shell
Установка Cinnamon, форка GNOME Shell с интерфейсом в стиле GNOME 2:
sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
sudo apt-get update
sudo apt-get install cinnamon
После установки пакетов, окружение можно выбрать через выпадающее меню менеджера входа в систему.
Для настройки параметров GNOME 3 можно установить конфигуратор GNOME Tweak:
sudo apt-get install gnome-tweak-tool
|
|
|
|
|
Восстановление стандартного KDE меню после его удаления (например, wine) |
Автор: kroz
[комментарии]
|
| Опишу ситуацию на примере подменю wine в меню KDE, так как проблема зачастую
проявляется именно здесь. Например, мы хотим удалить все установленные
Windows-программы. Для этого удаляется каталог ~/.wine, однако соответствующие
пункты KDE меню приложений остаются. Логичным шагом является удаление всего
подменю Wine. Однако после этого windows-программы больше не появятся в KDE
меню. Даже если создать подменю с именем Wine, это не изменит ситуацию.
Проблема состоит в том, что при редактировании стандартных пунктов KDE меню,
появляется вот такой файл:
.config/menus/applications-kmenuedit.menu
Файл описывает кастомизированное меню приложений KDE. Если его удалить
(переместить), то все модификации стандартных пунктов меню уйдут, в частности,
появится удаленный пункт меню Wine, и в него будут добавляться
свежеустановленные Windows-программы.
|
|
|
|
|
Инструкция по запуску Qt-приложений поверх дисплейного сервера Wayland (доп. ссылка 1) |
[комментарии]
|
| Для экспериментов с запуском Qt-приложений поверх дисплейного сервера Wayland
следует использовать экспериментальную ветку Qt, в которой обеспечена поддержка
последних дополнений протокола Wayland (в недавно выпущенном Qt 4.8 этих
дополнений нет).
Устанавливаем последний срез исходных текстов Qt из Git-репозитория проекта:
first, you have to clone qtbase:
mkdir qt; cd qt
git clone git://gitorious.org/qt/qtbase.git
Так как установка Qt будет производиться в отдельную директорию /opt/qt/qt5 в
процессе экспериментов следует установить следующие переменные окружения
(например, добавить в .bashrc):
export QTVER=qt5
export QTDIR=/opt/qt/$QTVER
export PATH=$QTDIR/bin/:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib/:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$QTDIR/lib/pkgconfig/:$PKG_CONFIG_PATH
export QT_PLUGIN_PATH=$QTDIR/lib/plugins/
Устанавливаем пакеты, необходимые для сборки Qt и Wayland (пример для Ubuntu 11.10):
apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev \
libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev \
libxcb-sync0 libxcb-sync0-dev libxcb-xfixes0-dev
Устанавливаем опции сборки Qt:
./configure -confirm-license -opensource -no-qt3support \
-no-multimedia -no-webkit -no-phonon -no-v8 -debug -qpa -xcb \
-wayland -egl -opengl es2 -nomake examples -prefix /opt/qt/qt5
Собираем и устанавливаем Qt в директорию /opt/qt/qt:
make
make install
Загружаем код платформы qtwayland с дополнениями к Qt для работы поверх Wayland:
cd ../
git clone git://gitorious.org/qt/qtwayland.git
Для сборки qtwayland требует наличие библиотек Wayland в системе, которые можно
поставить из PPA-репозитория дистрибутива или собрать вручную.
При необходимости запуска Wayland поверх X-сервера устанавливаем библиотеку libxcomposite:
apt-get install libxcomposite-dev
Собираем и устанавливаем qtwayland:
cd qtwayland/
qmake
make
make install
Для запуска Qt-приложения вначале следует определить директорию XDG, которую
будут использовать для взаимодействия между собой композитный сервер и клиент Wayland:
export XDG_RUNTIME_DIR=$HOME/.xdg
mkdir $HOME/.xdg
Собираем Qt-приложение:
cd ../qtbase/examples/opengl/hellowindow
qmake
make
Запускаем wayland:
wayland-compositor &
Запускаем Qt-приложение поверх Wayland:
./hellowindow -platform wayland
|
|
|
|
|
Возвращение возможности принудительного завершения X-сессии нажатием Ctrl+Alt+Backspace |
[комментарии]
|
| Во многих Linux-дистрибутивах блокирована возможность принудительного
перезапуска X-сервера при нажатии Ctrl+Alt+Backspace, что в случае
возникновения проблем с видеодрайверами вынуждает совершать перезагрузку всей
системы. Вернуть возможность принудительного завершения X-сервера через
Ctrl+Alt+Backspace можно двумя способами:
1. Добавить в файл ~/.xprofile строку:
setxkbmap -option terminate:ctrl_alt_bksp
Чтобы изменение сразу подействовало нужно не забыть выполнить эту команду
вручную, иначе настройки вступят в силу только после перезапуска X-сервера.
2. Изменить настройки X-сервера, в секцию "InputClass" файла /etc/X11/xorg.conf добавляем:
Option "XkbOptions" "terminate:ctrl_alt_bksp"
|
|
|
|
|
Дополнительное место в верхней панели в Ubuntu (доп. ссылка 1) |
Автор: szh
[комментарии]
|
| В верхней панели в Ubuntu можно получить дополнительное место сократив размер
записей "Application Places System" или их русского эквивалента. Это можно
сделать с помощью файла перевода.
1. Создаем файл:
msgid ""
msgstr ""
"Project-Id-Version: gnome-panel trunk\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-05-26 00:59+0000\n"
"PO-Revision-Date: 2008-05-26 00:59+0000\n"
"Last-Translator: YOUR NAME\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Launchpad-Export-Date: 2008-04-16 01:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
msgid "Applications"
msgstr "Apps"
msgid "Places"
msgstr "P"
msgid "System"
msgstr "Sys"
Новые названия в последних строчках.
2. В терминале выполняем:
msgfmt имя_файла
в результате чего сгенерируется файл messages.mo
3. Копируем созданный файл в директорию с файлами локализации
sudo mv messages.mo /usr/share/locale-langpack/en_US/LC_MESSAGES/gnome-panel-2.0.mo
Здесь в пути возможно вам надо заменить en_US на ru_RU.
4. Перезапускаем панель:
pkill gnome-panel
И все заработает, вместо "Application Places System" в верхнем левом углу
получим более короткую запись: "Apps P Sys"
|
|
|
|
|
Одновременная локальная работа двух пользователей на одном компьютере под управлением Ubuntu 11.04 |
Автор: Пётр Зуев
[комментарии]
|
| В данной статье рассматривается один из способов реализации возможности
одновременной независимой работы двух пользователей за одним компьютером, при
этом к одному системному блоку подключается два комплекта монитор/мышь/клавиатура.
Способов реализации подобного решения сейчас существует достаточно много, но,
их реализация является весьма сложным делом, особенно для неопытных
пользователей операционных систем Linux. Однако, описанный в данной статье
способ намного проще в реализации чем большинство аналогичных методов.
Для реализации данного решения необходим компьютер с двухголовой видеокартой
(желательно nvidia) с подключенными к нему двумя мониторами, мышами и
клавиатурами, а также установленной операционной системой Ubuntu 11.04.
Для начала необходимо настроить одновременную работу двух мониторов в режиме
"Separate X screen", если вы это уже сделали то можете смело пропустить данную
часть статьи и перейти к пункту "настройка устройств ввода"
Настройка режима Separate X screen с помощью утилиты nvidia-settings
У владельцев видеокарт nvidia после установки проприетарного драйвера
видеокарты появляется очень удобная утилита для настройки X-сервера под
названием nvidia-settings, открываем её и переходим к пункту "X Server Display Configuration"
Далее кликаете мышкой на второй монитор в окне программы и нажимаете кнопку
Confugure, после чего в появившемся окне выбираете режим Separate X screen.
После этого, при необходимости, можно указать разрешение и частоту второго монитора.
Далее, нажмите на кнопку "Save to X Configuration file" и сохраните созданный
утилитой файл конфигурации X-сервера.
После этого необходимо перезагрузить компьютер и, после выбора пользователя, до
ввода пароля, отключить лишние визуальные эффекты, выбрав вариант "классическая
Ubuntu (Без эффектов)"
Если всё сделано правильно то, после входа в систему на обоих мониторах должен
появится рабочий стол, при этом курсор мыши может свободно перемещаться с
одного экрана на другой.
Настройка устройств ввода
Приступим к настройке устройств ввода.
Открываем окно терминала и пишем команду:
xinput list
Ищем в списке вторую мышь и вторую клавиатуру, подключенную к USB интерфейсу и
запоминаем их id, в моём случае мышь имеет id 10 и клавиатура имеет id 8, у вас
устройства ввода будут иметь другие id.
Пишем в терминале команду
xinput create-master seat
После этого на экране появится второй курсор, теперь нам нужно переназначить
устройства ввода, для этого в терминале пишем команду
xinput reattach 10 "seat pointer"
обратите внимание, что в данном случае вместо числа 10 должно быть число,
взятое из id второй мыши в списке, полученном нами ранее по команде "xinput
list", далее пишем команду
xinput reattach 8 "seat keyboard"
число берём из id второй клавиатуры из того же списка.
Курсор второй мыши стоит увести на другой экран, после чего готовой
конфигурацией можно пользоваться.
Прописываем автозапуск.
Обратите внимание, на то, что изменения сделанные нами с помощью команды xinput
действуют только до перезапуска X-сервера или до перезагрузки компьютера,
поэтому, рекомендуется добавить автоматическое выполнение в список автозапуска,
для этого создаём файл с любым именем в удобном для вас месте, в моём случае
это файл "seat.sh" в директории /home/petr. Вносим в данный файл строки:
#!/bin/sh
xinput create-master seat
xinput reattach 10 "seat pointer"
xinput reattach 8 "seat keyboard"[[/CODE]]
Обратите внимание, вместо чисел 10 и 8 необходимо указать ваши id, после этого
прописываем файлу права на запуск, для этого переходим в директорию с файлом и,
даём файлу права на запуск, например
cd /home/petr
chmod 700 seat.sh
далее прописываем файл в автозапуск, удобнее всего это сделать открыв окно
настройки списка запускаемых приложений, (система/параметры/запускаемые приложения)
|
|
|
|
|
Установка AMD Catalyst 11.5 на Debian-подобную систему с Linux-ядром 2.6.39 (доп. ссылка 1) |
Автор: Карбофос
[комментарии]
|
| Для начала должны быть установлены пакеты:
sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf \
libstdc++6 dkms libqtgui4 execstack libelfg0 ia32-libs
Затем, нужен драйвер Catalyst и патчи к новому ядру:
mkdir atifix
cd atifix
wget http://www2.ati.com/drivers/linux/ati-driver-installer-11-5-x86.x86_64.run
wget http://www.mindwerks.net/wp-content/uploads/2011/03/2.6.39_bkl.patch
wget http://www.mindwerks.net/wp-content/uploads/2011/03/no_bkl.patch
Распаковываем драйвер и применяем патчи:
chmod +x ati-driver-installer-11-5-x86.x86_64.run
./ati-driver-installer-11-5-x86.x86_64.run --extract driver
mv *.patch ./driver/
cd ./driver/
patch -p1 -i 2.6.39_bkl.patch && patch -p1 -i no_bkl.patch
После патчей устанавливаем драйвер:
./ati-installer.sh 8.85 --install
Более правильный способ установки, использованием штатного пакетного менеджера:
1. узнаём список поддерживаемых дистрибутивов:
./ati-installer.sh 8.85 --listpkg
2. генерируем установочный пакет для нужного дистрибутива из списка
./ati-installer.sh 8.85 --buildpkg YourDistrName
3. устанавливаем. к примеру, пакет для Debian
dpkg -i fglrx*.deb
Если во время установки не всплыло никаких зависимостей, то выполняем
aticonfig --initial -f
Перегружаем компьютер или X-Server и проводим на всякий случай диагностику:
cat /var/log/Xorg.0.log | grep EE
После рестарта можно диагностировать с помощью
fglrxinfo и fgl_glxgears
|
|
|
|
|
Использование двух видеокарт на ноутбуках с поддержкой NVIDIA Optimus в Linux |
[комментарии]
|
| В настоящее время многие ноутбуки (например, некоторые модели Asus, Acer, Dell,
Toshiba и Samsung) поставляются с видеоподсистемой NVIDIA Optimus, позволяющей
на лету переходить на использование встроенного энергоэффективной видеокарты на
базе GPU Intel или переключаться на дискретную карту NVIDIA, потребляющую
больше энергии, но позволяющую достичь более высокой производительности. Для
задействования технологии NVIDIA Optimus в Linux можно использовать пакет
Bumblebee (до переименования Prime-ng) и VirtualGL.
Cвязка Bumblebee и VirtualGL не позволяет в прозрачном режиме переключать
видеокарты на лету, как это реализовано в драйверах для Windows (проприетарные
драйверы NVIDIA для Linux не поддерживают технологию Optimus, так как она
требует внесения изменений в X-сервер и драйверы для карт Intel и NVIDIA).
В штатном режиме при использовании Bumblebee десктоп-окружение работает с
использованием видеокарты Intel (с поддержкой 3D), дискретная видеокарта NVIDIA
при этом находится в неактивном состоянии. Для выполнения приложений, требующих
интенсивных 3D-операций, можно задействовать видеокарту NVIDIA. Для этого
следует запускать программы при помощи утилиты "optirun32 приложение" или
"optirun64 приложение", для 64-разрядных систем.
Подобный подход достаточно прост и эффективен, основан на использовании
стандартных видеодрайверов и не требует при этом переработки X-сервера.
Возможность запуска приложения с использованием для формирования вывода
дискретной видеокарты достигается благодаря использованию системы VirtualGL,
позволяющей перенаправить 3D-команды из OpenGL-приложения на внешний сервер,
преобразовав сформированные изображения в видеопоток. Таким образом, Bumblebee
не переключает видеокарты, а позволяет использовать их одновременно (для карт
NVIDIA поддерживается только пропритетарный драйвер). При этом недостатком
является то, что неактивная NVIDIA карта не обесточивается в момент простоя и
продолжает потреблять энергию.
Установка Bumblebee полностью автоматизирована. Готовые пакеты доступны для
Ubuntu, openSUSE, Arch и Fedora Linux. Для организации переключения между
видеокартами достаточно загрузить с сайта скрипт install.sh и пакеты,
содержащиеся в директории install-files.
После загрузки достаточно запустить скрипт install.sh, который сам определит
тип дистрибутива Linux, загрузит при необходимости проприетарный драйвер
NVIDIA, установит недостающие пакеты и внесёт изменения в конфигурацию X.Org.
|
|
|
|
|
Установка драйверов для ATI RadeonHD Series на Linux CentOS 5.x |
Автор: Юрий Рогоза
[комментарии]
|
| Прочитав множество статей и тем на форумах, методом чужих и собственных проб и
ошибок, мне все таки удалось заставить работать мой Radeon HD3870 с драйверами
и поддержкой OpenGL аппаратного ускорения. По этому поводу, решил написать
статью, которая,
возможно окажется полезной другим людям.
Конфигурация на которой выполнялась установка:
HARDWARE:
ASUS P5K
Intel Core 2 Quad Q6600
2 Gb RAM
ATI Radeon HD3870 GDDR4
OS:
Linux CentOS 5.5 x86_64 [64-bit]
Стандартное ядро: 2.6.18-194.el5
Итак, откроем консоль и приступим к пошаговой настройке:
Заходим под пользователем root
su
Пароль: *******
Устанавливаем репозиторий ELRepo
rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://elrepo.org/elrepo-release-5-2.el5.elrepo.noarch.rpm
Открываем в любимом текстовом редакторе файл /etc/yum.repos.d/elrepo.repo
Файл должен содержать 3 репозитория: elrepo, elrepo-testing и elrepo-kernel. Во избежании лишних вопросов для всех 3-х меняем строчку enabled=0 на enabled=1.
Устанавливаем fglrx драйвер x11 и модуль ядра (у меня это x86_64, для 32-битных систем не проверял)
yum install fglrx-x11-drv.x86_64 kmod-fglrx.x86_64
На заметку: модуль ядра fglrx.ko попадает по адресу
/lib/modules/версия ядра (у меня это: 2.6.18-194.el5)/weak-updates/fglrx/fglrx.ko
Другой вариант, установка ATI Catalyst с официального сайта.
Заходим на сайт: http://support.amd.com/us/gpudownload/Pages/index.aspx
Step 1 выбираем "Desktop Graphics",
Step 2 - "Radeon HD Series",
Step 3 - Radeon HD xxxx,
Step 4 - платформу "x86 или x86_64"
Step 5 (Display results) и скачиваем отобразившийся проприетарный драйвер.
Инсталлятор скачанного нами драйвера выполнен в формате .run Запускаем:
sh ati-driver-installer*.run
Начинает грузиться инсталлятор, в итоге мы получим окошко с двумя опциями, где
выбираем: "Install Driver....", нажимаем далее, принимаем лицензионное
соглашения, далее, выбираем Automatic.
После того как драйвер установлен вручную или из репозитория, приступаем к
настройке xorg.conf. Запускаем:
aticonfig --initial --input=/etc/X11/xorg.conf
Не пугайтесь! Ваш рабочий xorg.conf будет забэкаплен рядом с новым в /etc/X11/xorg.conf.fglrx-*
Во избежание глюков, откройте в текстовом файле новоиспеченный файл
конфигурации X-ов etc/X11/xorg.conf и в случае выявления загрузки модулей dri,
glx, dbe, xv и прочих "полезностей" в секции Section "Module", закомментируйте
или удалите их совсем. Функции этих модулей возложены на драйвер fglrx. В
идеале секция "Module" должна быть пуста и не содержать строк "Load dri" и тому подобных.
Пример файла конфигурации /etc/X11/xorg.conf:
# Xorg configuration created by pyxf86config
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib64/xorg/modules/extensions/fglrx"
ModulePath "/usr/lib64/xorg/modules"
EndSection
Section "Module"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:ctrl_shift_toggle"
Option "XkbVariant" ",winkeys"
EndSection
Section "Device"
# X.org Original Driver r500
Identifier "Videocard0"
Driver "fglrx"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Для правильной работы fglrx-модуля ядра выполним (по идее данный этап
выполняется инсталлятором драйвера Catalyst)
depmod
Перезагрузка или ручная загрузка модуля через "modprobe fglrx" (может
потребоваться предварительная выгрузка ранее установленного видеодрайвера)
Проверим загрузился ли наш модуль ядра:
lsmod | grep fglrx
fglrx 2782056 133
Тестирование
Посмотрим glxinfo
glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: ATI Radeon HD 3870
GL_NV_conditional_render, GL_NV_copy_depth_to_color,
Оценим вращающиеся шестерни glxgears
glxgears
|
|
|
|
|
Обособленная установка дисплейного сервера Wayland в Ubuntu (доп. ссылка 1) |
[комментарии]
|
| Ниже представлен скрипт, который позволяет установить дисплейный сервер Wayland
для проведения экспериментов. Wayland устанавливается в отдельную директорию
$HOME/install и не влияет на работу основного графического окружения
дистрибутива, что позволяет без боязни начать экспериментировать с дисплейным
сервером. Скрипт сам загружает все необходимые зависимости и проверен в Ubuntu 10.10.
Для работы необходима видеокарта NVIDIA и драйвер nouveau со включенным DRI
(конфигурация также без проблем будет работать с видеокартами Intel), для
установки которого можно использовать команды (указанные пакеты находятся в
репозитории Universe):
sudo aptitude install libgl1-mesa-dri-experimental
usermod -a -G video логин_пользователя
После установки nouveau отключаем проприетарный драйвер через System /
Administration / Additional Drivers и перезагружаем систему.
Проверить активность DRI можно так:
glxinfo | grep direct
direct rendering: Yes
Далее запускаем установочный скрипт, который работает несколько минут, так как
пересобирает из git-репозитория свежие версии drm, mesa, xproto, kbproto,
macros, libX11, libxkbcommon, cairo и wayland.
set -u # exit script if anything fails
# You might want to put these in your ~/.bashrc
PKG_CONFIG_PATH=$HOME/install/lib/pkgconfig/:$HOME/install/share/pkgconfig/
export PKG_CONFIG_PATH
ACLOCAL="aclocal -I $HOME/install/share/aclocal"
export ACLOCAL
C_INCLUDE_PATH=$HOME/install/include
export C_INCLUDE_PATH
LIBRARY_PATH=$HOME/install/lib
export LIBRARY_PATH
# Do *not* put this in your ~/.bashrc it will break things.
LD_LIBRARY_PATH=$HOME/install/lib
export LD_LIBRARY_PATH
mkdir -p $HOME/install/share/aclocal
# Paste these one at a time because they're interactive.
sudo aptitude remove --purge libegl1-mesa-drivers
sudo aptitude build-dep libglu1-mesa # diffstat{a} libx11-xcb-dev quilt
sudo aptitude build-dep libcairo2 # autopoint{a} dh-autoreconf
sudo aptitude install libtool libxi-dev libxmu-dev libxt-dev bison flex libgl1-mesa-dev xutils-dev libtalloc-dev
sudo aptitude install libdrm-dev autoconf x11proto-kb-dev libegl1-mesa-dev libgles2-mesa-dev
sudo aptitude install libgdk-pixbuf2.0-dev libudev-dev libxcb-dri2-0-dev libxcb-xfixes0-dev
sudo aptitude install shtool libffi-dev libpoppler-glib-dev libgtk2.0-dev git
git clone git://anongit.freedesktop.org/git/mesa/drm
cd drm
./autogen.sh --prefix=$HOME/install --enable-nouveau-experimental-api
make
make install
cd ..
git clone git://anongit.freedesktop.org/mesa/mesa
cd mesa/
./autogen.sh --prefix=$HOME/install --enable-egl --enable-gles2 --with-dri-drivers= \
--enable-gallium-nouveau --with-state-trackers=glx,dri,egl
make
make install
cd ..
git clone git://anongit.freedesktop.org/xorg/proto/xproto
cd xproto
./autogen.sh --prefix=$HOME/install
make install
cd ..
git clone git://anongit.freedesktop.org/xorg/proto/kbproto
cd kbproto/
./autogen.sh --prefix=$HOME/install
make install
cd ..
git clone git://anongit.freedesktop.org/xorg/util/macros
cd macros
./autogen.sh --prefix=$HOME/install
make install
cd ..
git clone git://anongit.freedesktop.org/xorg/lib/libX11
cd libX11
./autogen.sh --prefix=$HOME/install
make install
cd ..
git clone git://people.freedesktop.org/xorg/lib/libxkbcommon.git
cd libxkbcommon/
#./autogen.sh --prefix=$HOME/install --with-xkb-rootdir=/usr/share/X11/xkb
./autogen.sh --prefix=$HOME/install
make
make install
cd ..
git clone git://anongit.freedesktop.org/cairo
cd cairo
./autogen.sh --prefix=$HOME/install --enable-gl --enable-xcb
make
make install
cd ..
git clone git://anongit.freedesktop.org/wayland
cd wayland/
./autogen.sh --prefix=$HOME/install
make
make install
cd ..
sudo cp -a wayland/compositor/70-wayland.rules /etc/udev/rules.d/
sudo udevadm trigger --subsystem-match=drm --subsystem-match=input
mkdir -p $HOME/install/share/X11/
ln -s /usr/share/X11/xkb $HOME/install/share/X11/
Запуск wayland:
wayland/compositor/compositor &
sleep 1
wayland/clients/flower &
wayland/clients/gears &
wayland/clients/smoke &
wayland/clients/terminal &
Особенности сборки для видеокарт Intel отмечены в данной заметке
|
|
|
|
|
Подключение нескольких ПК к одной клавиатуре и мыши при помощи Synergy (доп. ссылка 1) |
Автор: Роман Сукочев
[обсудить]
|
| В рамках проекта Synergy (http://synergy-foss.org/) подготовлен программный
KVM-переключатель для использования одной клавиатуры и мыши с несколькими
компьютерами. В отличии от аппаратных переключателей Synergy поддерживает
единый буфер обмена для всех объединенных машин.
Ниже, будет приведен пример настройки synergy для двух компьютеров под
управлением Ubuntu. Главный компьютер, с которого управляются другие
компьютеры, будет называться ubuntu-server, второй компьютер - ubuntu-client.
Монитор ubuntu-client, физически, расположен слева от ubuntu-server. Не
забываем, чтобы все работало, нужно, чтобы компьютеры были подключены к одной сети.
Synergy есть в стандартном репозитории, но там довольно старая версия.
Пакеты с последней unstable-версией можно загрузить здесь. Устанавливаем
программу на главном и подключаемых компьютерах.
sudo apt-get install synergy
Настройка главного компьютера
Настраивается все довольно просто.
1. На компьютере, который будет главным, создаете файл в домашнем каталоге файл .synergy.conf:
section: screens
Ubuntu-server:
Ubuntu-client:
end
section: links
ubuntu-server:
left = ubuntu-client
ubuntu-client:
right = ubuntu-server
end
В первой секции 'screens' указаны IP или имена хостов для компьютеров,
завязанных для работы в synergy.
Во второй секции 'links' указано отношение компьютера к соседним компьютерам
(какой находится слева, справа, снизу и сверху)
2. Добавляем запуск synergys в автозагрузку, добавив команду 'synergys' в
'Система'->'Параметры'->'Запускаемые приложения'. Или 'synergys -c <путь к
конфигу>', если вы хотите использовать другой файл конфигурации для запуска synergy.
Настройка подключаемого компьютера
1. На подключаемом компьютере, добавляем запуск synergyc в автозагрузку,
добавив команду 'synergyc ubuntu-server' в 'Система'->'Параметры'->'Запускаемые приложения'.
Все. Теперь перезагружаем компьютеры и видим, что поднеся курсор мыши к левой
границе экрана монитора главного компьютера, курсор перескакивает на экран
подключенного компьютера и мы можем, мышкой и клавиатурой главного компьютера,
управлять подключенным.
QuickSynergy
Для тех, кто не любит работать с файлами конфигурации вручную, в репозитории
Ubuntu есть утилита quicksynergy, которая позволит Вам настроить Synergy в два
клика :)
1. Скачиваем quicksynergy:
sudo apt-get install quicksynergy
2. Если ранее поставлена unstable-версия synergy с сайта проекта, то
устанавливаем, игнорируя зависимости:
sudo apt-get install -d quicksynergy
cd /var/cache/apt/archives/
sudo dpkg --ignore-depends=synergy -i quicksynergy*.deb
Зависимости мы игнорировали для того, чтобы программа не подтянула с собой
старый пакет synergy из репозитория, который заменил бы собой, свежий synergy-plus.
3. Запускаем программу 'Приложения'-->'Стандартные'-->'QuickSynergy' и
настраиваем synergy в пару кликов.
Другие GUI-утилиты для Synergy: QSynergy, Sinerji и другие.
|
|
|
|
|
Добавление произвольных ссылок в апплет уведомлений Ubuntu (доп. ссылка 1) |
[комментарии]
|
| В состав Ubuntu 10.04 добавлен новый апплет уведомлений, который агрегирует
несколько сервисов по обмену сообщениями в рамках одного значка на панели
задач. По умолчанию апплет поддерживает Evolution (Mail), Empathy, Pidgin и Gwibber.
Для добавления ссылки на любое приложение в апплет уведомлений достаточно
создать новый файл в директории /usr/share/indicators/messages/applications/,
используя в качестве примера один из уже присутствующих файлов:
ls /usr/share/indicators/messages/applications/
empathy evolution gwibber pidgin
Для примера добавим в меню ссылку на программу licq:
создаем файл licq и добавляем в него путь к соответствующему desktop-файлу:
sudo vi /usr/share/indicators/messages/applications/licq
/usr/share/applications/kde/licq.desktop
desktop-файлы можно найти в директории /usr/share/applications
Готовые индикаторы для отображения числа новых сообщений для Thunderbird и
GMail можно загрузить на страницах https://launchpad.net/libnotify-mozilla и https://launchpad.net/gmailwatcher
|
|
|
|
|
Выборочное включение эффектов композитного режима в metacity (доп. ссылка 1) |
Автор: Аноним
[комментарии]
|
| Иногда достаточно только отбрасываемых теней под окнами (например, для того,
чтобы улучшить контраст между границами окон). Такие эффекты, как вязкие окна и
магические кубы из рабочих столов, некоторым пользователям только мешают.
Однако, многие продолжают устанавливать оконный менеджер Compiz, когда сам
metacity уже с 2.22 версии GNOME поддерживает эффекты рабочего стола.
Для того, чтобы включить отбрасываемые тени:
gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool true
Выключить:
gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool false
|
|
|
|
|
Организация доступа к рабочему столу Ubuntu/Debian Linux при помощи VNC |
Автор: males
[комментарии]
|
| Задача: получить доступ к рабочему столу домашнего компьютера с работы.
Стандартный vino из GNOME не подошел, так как его надо было каждый раз
запускать. Выбор остановился на x11vnc, настроить с первого захода который не
получилось - GMOME вылетал через 5 минут после логина с такой ошибкой:
gdm-session-worker[2473]: GLib-GObject-CRITICAL: g_value_get_boolean: assertion `G_VALUE_HOLDS_BOOLEAN (value)' failed
gdm-session-worker[2473]: pam_succeed_if(gdm:auth): requirement "user ingroup no passwdlogin" not met by user "males"
gdm-session-worker[2473]: pam_unix(gdm:session): session opened for user males by (uid=0)
gdm-session-worker[2473]: pam_ck_connector(gdm:session): nox11 mode, ignoring PAM_TTY :0
Ниже, пошаговая инструкция настройки рабочей конфигурации x11vnc:
Удаляем vino и установим x11vnc
sudo apt-get remove vino
sudo apt-get install x11vnc
после того как все прошло успешно создаем пароль для VNC:
sudo x11vnc -storepasswd пароль /etc/vnc/passwd
если запускать просто x11vnc -storepasswd то пароль создастся в ~/.vnc/passwd,
что мне не очень-то хотелось.
После того как пароль создан и записан добавим в самый конец файла
/etc/gdm/PreSession/Default такую строчку:
/usr/bin/x11vnc -dontdisconnect -display :0 -shared -noxfixes -forever \
-rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /etc/vnc/passwd
теперь по опциям:
-dontdisconnect не отключать клиентов при новом соединении
-display :0 какой дисплей использовать. Если не указать этот параметр у меня
создавался новый дисплей.
-shared Для подключения более одного пользователя
-noxfixes Что-то связанное с отрисовкой курсора.
-forever не закрывать x11vnc после разрыва соединения
-rfbport 5900 какой порт использовать
-bg запускать в фоне
последние два параметра это лог и файл паролей.
Если канал маленький можно добавить параметр -notruecolor, чтобы выдавался 8-битный цвет.
С запуском закончили. Теперь добавим в /etc/gdm/custom.conf строчку
"KillInitClients=true" чтобы при запуске gdm убивал X-клиенты запущенные через init.
Перезапускаем X-ы, заходим от любого пользователя, смотрим запустился ли VNC:
ps -ax | grep x11vnc
1726 ? Ss 1:51 /usr/bin/x11vnc -dontdisconnect -display :0
-noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /etc/vnc/passwd
sudo netstat -antp | grep x11vnc
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 1726/x11vnc
tcp6 0 0 :::5900 :::* LISTEN 1726/x11vnc
вот и всё. теперь можно смело подключаться с удаленного компьютера через VNC.
Для статьи использовались Google, хендбуки и http://linux.die.net/man/1/x11vnc
|
|
|
|
|
Отключение индикатора раскладки в Gnome 2.30 (доп. ссылка 1) |
[комментарии]
|
| В Gnome 2.30 появилась неприятная особенность, выражающаяся в появлении
индикатора раскладке в трее после настройки клавиатуры. Для отключения
индикатора нужно выполнить следующее:
gconftool-2 -s /desktop/gnome/peripherals/keyboard/general/disable_indicator -t bool true
|
|
|
|
|
Включение субпиксельного хинтинга шрифтов в Fedora 13 и openSUSE 11.3 (доп. ссылка 1) (доп. ссылка 2) (доп. ссылка 3) (доп. ссылка 4) |
[комментарии]
|
| Для библиотеки FreeType разработан патч (http://www.infinality.net/blog/?p=67),
приводящий рендеринг Truetype-шрифтов в вид, похожий на результат использования
метода сглаживания Microsoft Cleartype
(http://ru.wikipedia.org/wiki/ClearType). Особенно заметно повышение качества
отображения после использования патча на компьютерах с ЖК монитором.
В отличие от ранее представленных cleartype-патчей для FreeType и режимов
пиксельного хинтинга и субпиксельной фильтрации, обсуждаемый патч реализует не
только субпиксельную фильтрацию, но и субпиксельный хинтинг, что подразумевает
изменение контура букв с учетом субпиксельных границ, а не на основании
очерчивающих символ пикселов. При растеризации шрифтов патч также повторяет
особенности Truetype-интерпретатора из состава Windows XP (игнорирует некоторые
Truetype-инструкции, заложенные в шрифте).
Для настройки шрифтов авторы патча рекомендуют использовать специально
подготовленный файл конфигурации /etc/fonts/local.conf:
http://www.infinality.net/files/local.conf
Для установки модифицированной версии FreeType в openSUSE 11.3 достаточно
установить через сервис One Click мета-пакеты:
http://opensuse-community.org/subpixel/subpixel.ymp
http://software.opensuse.org/ymp/home:anshuljain:ubuntu_patch_11.3/openSUSE_11.3/cairo.ymp
В Fedora 13 необходимо подключить репозиторий, подготовленный разработчиками
infinality.net и установить нужные пакеты из него:
sudo rpm -Uhv http://www.infinality.net/fedora/linux/infinality-repo-1.0-1.noarch.rpm
Ставим патченный FreeType и модифицированные версии библиотек cairo и libXft:
sudo yum install freetype-subpixel cairo-freeworld libXft-freeworld
PS. В Ubuntu данные патчи включены по умолчанию.
|
|
|
|
|
Решение проблем при работе Adobe Flash в полноэкранном режиме |
[комментарии]
|
| При возникновении проблем с притормаживанием и заморозкой отображения видео в
полноэкранном режиме при перемещении мыши можно использовать следующее решение:
Создаем директорию /etc/adobe:
# mkdir /etc/adobe
Редактируем файл конфигурации mms.cfg
# vi /etc/adobe/mms.cfg
Добавляем в него строку, которая позволяет задействовать GPU-акселерацию при
выводе на экран для всех видеокарт:
OverrideGPUValidation = true
Перезапускаем браузер.
Инструкцию по допустимым в mms.cfg опциям можно найти
<a href="http://www.adobe.com/devnet/flashplayer/articles/flash_player_admin_guide.html">здесь</a>
Некоторые полезные опции (формат: опция = число или true/false):
AssetCacheSize - ограничивает размер кеша;
AutoUpdateDisable - выключает автоматическое обновление;
AutoUpdateInterval - задает интервал проверки обновлений;
AVHardwareDisable - запрещает доступ из SWF-файлов к web-камере и микрофону;
DisableDeviceFontEnumeration - запрещает передачу информации о шрифтах;
DisableNetworkAndFilesystemIn - запрещает сетевые функции и операции с файловой системой;
DisableSockets - запрещает методы Socket.connect() и XMLSocket.connect();
EnableSocketsTo - позволяет задать белый список серверов к которым разрешено сетевое соединение;
FileDownloadDisable/FileUploadDisable - запрещает использование функций
загрузки файлов в ActionScript FileReference API;
FullScreenDisable - запрещает переход в полноэкранный режим
LocalFileReadDisable - запрещает проигрывание SWF-файлов с локального жесткого диска;
LocalStorageLimit - ограничивает размер дискового пространства, которое
допустимо использовать в Flash
|
|
|
|
|
Добавление редактора главного меню в GNOME 2.30 |
Автор: Аноним
[комментарии]
|
| Возникла необходимость Fedora 13 быстро отредактировать пункт меню в GNOME
2.30. Оказалось, что в этой версии GNOME убрана утилита
редактирования меню.
Для появления пункта меню "Система / Параметры / Главное меню"
необходимо установить пакет alacarte-0.13.1-1.fc13.noarch.rpm
из доступных репозиториев:
yum install alacarte
или скачать вручную из любого зеркала
(/pub/mirrors/fedora//releases/13/Everything/i386/os/Packages/) и
воспользоваться командой установки:
rpm -ivh ./alacarte-0.13.1-1.fc13.noarch.rpm
|
|
|
|
|
Исправление ошибки в gnome-icon-theme, которая проявляется в новом Evolution |
Автор: rstone
[комментарии]
|
| В свежеоткомпилированном Evolution 2.30.1 поехала вся разметка. Выяснилось,
что отсутствует иконка "Mark mail as not junk" в нужном размере.
Чиним:
for dir in /usr/share/icons/gnome/{16x16,22x22,24x24,32x32};
do [ -f $dir/actions/mail-mark-notjunk.png ] && {
sudo ln -s $dir/actions/mail-mark-notjunk.png $dir/actions/mail-mark-not-junk.png
}
done
sudo gtk-update-icon-cache -f /usr/share/icons/gnome/
В гноме есть открытое сообщение об ошибке по этому поводу: https://bugzilla.gnome.org/show_bug.cgi?id=616954
|
|
|
|
|
Использование Opera 10.54 и выше с заданным виджетами рабочего стола |
Автор: Artem Tashkinov
[комментарии]
|
| Opera 10.54 подгружает поддержку среды рабочего стола (KDE, Gnome или без неё)
автоматически, основываясь на переменных окружения. Иногда она делает это
неправильно, а иногда может потребоваться и вовсе отказаться от этой функции и
использовать заданные вручную диалоги открытия и сохранения файлов.
Для того, что сделать это, наберите в строке адреса следующую строку:
opera:config#FileSelector|Dialogtoolkit
У вас появится выбор из следующих значений:
0 = автоматическое определение (значение по умолчанию)
2 = GTK
3 = KDE4
4 = x11
После этого не забудьте нажать Save (Сохранить) и перезапустите Opera.
|
|
|
|
|
Удаленное выполнение GUI-приложений от имени другого пользователя (доп. ссылка 1) |
Автор: xAnd
[комментарии]
|
| В работе системного администратора иногда возникает необходимость выполнения
команды от имени другого пользователя. Если доступна консольная версия команды,
то проблем обычно не возникает, помогает команда su, но если консольной версии
программы нет, возникают некоторые проблемы с невозможностью вывести
графическое содержимое на удалённом компьютере. Можно использовать тот же VNC
для подключения к удалённому рабочему столу, но если не хочется прерывать
работы пользователя на помощь может придти X-forwarding.
Данная технология позволяет перенаправить вывод X-сервера (или отдельной
программы) через тоннель (например SSH) на удалённый компьютер.
Итак, перед нами стоит задача запустить определённую программу от имени другого
пользователя на удалённом компьютере. На самом деле проблема всего одна.
X-сервер не может авторизоваться из-за неверного ключа другого пользователя.
Соответственно наша задача сводится к добавлению этого ключа.
Добавляем свой ключ к пользователю от которого хотим выполнить приложение:
sudo sh -c "cat /home/user/.Xauthority >> /home/user2/.Xauthority"
Теперь осталось просто выполнить команду от имени другого пользователя. В
качестве примера, запустим утилиту настройки встроенного в среду GNOME
VNC-клиента Vino:
sudo -u user2 vino-preferences
Осталось добавить только то, что user - это наш пользователь, а user2 -
пользователь от которого необходимо выполнить программу.
Если пароль пользователя известен, но все гораздо проще, для запуска достаточно выполнить:
ssh -X user2@host2 vino-preferences
|
|
|
|
|
Удаленное управление рабочим столом в Ubuntu при помощи FreeNX |
[комментарии]
|
| При необходимости организации запуска некоторых графических приложений с
рабочей машины из дома, даже при наличии широкополосного соединения
использование X11 или VNC достаточно не комфортно. Оптимальным в такой ситуации
является использование протокола NoMachine NX, позволяющего работать с рабочим
столом даже при наличии ощутимых задержек при передаче данных.
Настройка сервера
Устанавливаем пакет FreeNX из соответствующего PPA-репозитория:
sudo add-apt-repository ppa:freenx-team
sudo apt-get update
sudo apt-get install freenx-server
При необходимости настраиваем сервер через правку /etc/nxserver/node.conf
Запускаем сервер:
sudo /etc/init.d/freenx-server start
Настраиваем сервер:
sudo /usr/lib/nx/nxsetup --install
Выбираем использование ключей аутентификации по умолчанию.
если используем дополнительные ограничения в конфигурации SSH, например,
пускаем только избранных пользователей, то добавляем исключения для
пользователя "nx". В /etc/ssh/sshd_config в секцию AllowUsers или AllowGroups
добавляем nx и перезапускаем sshd. Также проверяем возможность подключения к
ssh серверу с хоста 127.0.0.1 (у меня было запрещено в /etc/hosts.allow).
Настройка клиента
Устанавливаем открытый клиент на базе библиотеки Qt:
sudo apt-get install qtnx
Или загружаем и устанавливаем deb-пакет с оригинальным проприетарным клиентом с
сайта http://www.nomachine.com/select-package-client.php
sudo dpkg -i nxclient_3.4.0-7_i386.deb
Запускаем
qtnx
в опциях по кнопке "Configure" прописываем имя сервера.
или запускаем проприетарный клиент:
/usr/NX/bin/nxclient
и следуем инструкции на экране.
В случае успешного соединения попадаем в окружение удаленного рабочего стола.
Субъективно проприетарный клиент nxclient и qtnx работают примерно одинаково.
В qtnx не возникло проблем с переключением раскладки клавиатуры по клавише
CapsLock. Nxclient переключать раскладку при стандартной настройке через GNOME
отказался и заработал только при запуске на удаленной машине:
setxkbmap -layout 'ru,us' -option "grp:ctrl_shift_toggle" -variant , winkeys
|
|
|
|
|
Выключение TouchPad в Linux (доп. ссылка 1) |
Автор: Kirill A. Korinskiy
[комментарии]
|
| Временное выключение TouchPad:
synclient TouchpadOff=1
Временное включение:
synclient TouchpadOff=0
Вообще, у X.Org-драйвера synaptic много интересных опций, посмотреть которые
можно через "man synaptics".
Для постоянного выключения через HAL (в старых X11 можно было просто убрать из
файла конфигурации), надо открыть файл, скажем /etc/hal/fdi/policy/touchpad.fdi
и поместить в него:
<match key="info.product" string="SynPS/2 Synaptics TouchPad">
<merge key="input.x11_options.TouchpadOff" type="string">1</merge>
</match>
вместо "SynPS/2 Synaptics TouchPad" возможно надо будет указать другую строку,
подробности стоит смотреть в "xinput list":
xinput list| grep -i touch
Еще есть syndaemon или в настройках gnome временное отключение TouchPad.
|
|
|
|
|
Возвращение кнопок сворачивания и закрытия в Ubuntu 10.04 в правую часть окна |
[комментарии]
|
| Начиная с Ubuntu 10.04 кнопки сворачивания и закрытия перемещены в левую часть
окна, что часто неудобно для бывалых пользователей Linux.
Для придания кнопкам привычного вида, достаточно запустить gconf-editor и в
иерархии apps/metacity/general установить переменной "button_layout" значение "menu:minimize,maximize,close".
Или из консоли:
gconftool-2 --type string --set /apps/metacity/general/button_layout "menu:minimize,maximize,close"
|
|
|
|
|
Увеличение скорости работы графического интерфейса Qt4 приложений |
Автор: Artem Tashkinov
[комментарии]
|
| Как оказывается, во многих случаях (неправильно установленные драйверы, плохая
поддержка драйверами требований к ускорению Xrender расширений) можно в
несколько раз увеличить скорость прорисовки графического интерфейса программ,
написанных с помощью библиотеки Qt4, запуская их с параметром -graphicssystem, например:
arora -graphicssystem raster
или
arora -graphicssystem opengl
На моём собственном компьютере с разрекламированными "качественными" Open
Source драйверами от Intel, запуск приложений Qt4 с параметрами
"-graphicssystem raster", сделал скорость прорисовки содержимого окна сравнимой
с Windows, тогда как по-умолчанию при изменении размеров окна видно торможение
прорисовки интерфейса.
|
|
|
|
|
Неотображение данных в Lotus Notes 8.5 при его запуске в Ubuntu 9.10 (доп. ссылка 1) |
[комментарии]
|
| При установке стандартных deb-пакетов с Lotus Notes 8.5 в Ubuntu 9.10 и других
достаточно свежих Linux дистрибутивах наблюдаются проблемы с отображением
данных в основном окне приложения. Lotus запустился, но вместо данных на
основном экране видна только пустота. Т.е. диалоги показываются, видно что
Lotus загружает данные и адресную книгу показывает, но на основном экране
только пустота.
Проблема решается, если в директорию /opt/ibm/lotus/notes скопировать более
старую версию библиотеки Gtk+.
Например, копирование libgdk-x11-2.0.so.0, libgdk_pixbuf-2.0.so.0,
libgtk-x11-2.0.so.0, libgdk_pixbuf_xlib-2.0.so.0 решает указанную проблему.
Данные библиотеки можно загрузить например здесь
(http://www.freetechie.com/upload/lotus_notes/) или скопировать из более старой
версии дистрибутива.
|
|
|
|
|
Подключение нескольких мониторов к Linux через USB-адаптеры Displaylink (доп. ссылка 1) |
[комментарии]
|
| Ниже описан процесс организации второго рабочего места в Debian/Ubuntu Linux,
подключив к компьютеру USB-хаб к которому подключены дополнительные клавиатура,
мышь и монитор (через USB2VGA переходник Displaylink).
1. Устанавливаем framebuffer-драйвер для адаптера DisplayLink:
Драйвер udlfb включен в состав staging-ветки ядра 2.6.32, но мы будем
использовать последний срез исходных текстов из Git-репозитория:
sudo apt-get install module-assistant
sudo module-assistant prepare
git clone http://git.plugable.com/webdav/udlfb/
cd udlfb
make
sudo make install
sudo depmod -a
Если драйвер установлен и загружен корректно, то при подключении монитора через
адаптер DisplayLinkNow, на мониторе будет отображен "зеленый экран".
2. Устанавливаем X-драйвер для DisplayLink:
sudo apt-get install pkg-config xorg-dev
cd ~git
git clone http://git.plugable.com/webdav/xf-video-udlfb/
cd xf-video-udlfb
./configure
make
sudo make install
Далее следует поправить несколько файлов конфигурации и скриптов, примеры можно
загрузить из Git-репозитория проекта udlfb:
git clone http://git.plugable.com/webdav/misc-udlfb/
3. Правим скрипты udev
Создаем с правами root файл /lib/udev/rules.d/50-usbseat.rules
# set all DisplayLink devices to configuration 1
# see http://libdlo.freedesktop.org/wiki/DeviceQuirks for more info
ATTR{idVendor}=="17e9", ATTR{bConfigurationValue}=="2", RUN="/bin/echo 1 > /sys%p/bConfigurationValue"
# aliases for display, kbd, mouse attached to specific hubs
KERNEL=="fb*",SUBSYSTEMS=="usb",PROGRAM="/bin/cat /sys/%p/../../../devnum",
SYMLINK+="usbseat/%c/display",RUN+="usbseat.sh %c"
KERNEL=="mouse*", SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03",
ATTRS{bInterfaceProtocol}=="02", PROGRAM="/bin/cat /sys/%p/../../../../../../devnum",
SYMLINK+="usbseat/%c/mouse",RUN+="usbseat.sh %c"
KERNEL=="event*", SUBSYSTEM=="input", ATTRS{bInterfaceClass}=="03",
ATTRS{bInterfaceProtocol}=="01",PROGRAM="/bin/cat /sys/%p/../../../../../../devnum",
SYMLINK+="usbseat/%c/keyboard",RUN+="usbseat.sh %c"
Данный скрипт будет запущен автоматически в момент подключения USB-устройства;
4. Создаем скрипт /lib/udev/usbseat.sh:
#!/bin/bash
# takes the "seat number" as parameter $1
# the seat number is the kernel device id of the hub the seat's devices are sitting off of
# called once for every usb device that MIGHT be part of a seat, when they arrive or remove
if [[ !(-n `/bin/pidof gdm`) ]]; then
exit 0
fi
seat_running=`/usr/bin/gdmdynamic -l | /bin/sed -n -e "/:$1,/p"`
# $ACTION environment variable is set by udev subsystem
case "$ACTION" in
'remove')
if [[ -n "{$seat_running}" ]]; then
/usr/bin/gdmdynamic -v -d $1
fi
;;
*)
# A device which might be part of a seat has been added
# if we already have a running seat for this #, exit
if [[ -n "${seat_running}" ]]; then
exit 0
fi
if [[ -e /dev/usbseat/$1/keyboard && -e /dev/usbseat/$1/mouse && \
-e /dev/usbseat/$1/display ]]; then
# We have a newly complete seat. Start it.
TMPFILE=`/bin/mktemp` || exit 1
/bin/sed "s/%ID_SEAT%/$1/g" < /lib/udev/usbseat-xf86.conf.sed > $TMPFILE
/usr/bin/gdmdynamic -v -t 2 -s 1 -a \
"$1=/usr/X11R6/bin/X -br :$1 -audit 0 -nolisten tcp -novtswitch -sharevts -config $TMPFILE"
/usr/bin/gdmdynamic -v -r $1
fi
;;
esac
exit 0
5. Создаем файл конфигурации для X-сервера:
Создаем файл /lib/udev/usbseat-xf86.conf.sed:
Section "ServerFlags"
Option "AutoEnableDevices" "false"
Option "AutoAddDevices" "false"
Option "DefaultLayout" "seat"
Option "DontZoom" "true"
Option "DontZap" "true"
Option "AllowMouseOpenFail" "yes"
EndSection
Section "Module"
Load "ddc"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
ModulePath "/usr/local/lib/xorg/modules"
EndSection
Section "Device"
Identifier "dl"
driver "displaylink"
Option "fbdev" "/dev/usbseat/%ID_SEAT%/display"
EndSection
Section "InputDevice"
Identifier "keyboard"
Driver "evdev"
Option "CoreKeyboard"
Option "Device" "/dev/usbseat/%ID_SEAT%/keyboard"
Option "XkbModel" "evdev"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "mouse"
Driver "mouse"
Option "CorePointer"
Option "Protocol" "auto"
Option "Device" "/dev/usbseat/%ID_SEAT%/mouse"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "monitor"
EndSection
Section "Screen"
Identifier "screen"
Device "dl"
Monitor "monitor"
EndSection
Section "ServerLayout"
Identifier "seat"
Screen 0 "screen" 0 0
InputDevice "keyboard" "CoreKeyboard"
InputDevice "mouse" "CorePointer"
EndSection
6. Запрещаем загрузку модуля ядра fbcon чтобы избежать конфликта при работе
Devicelink через framebuffer.
Создаем /etc/modprobe.d/fbcon.conf
blacklist font
blacklist tileblit
blacklist bitblit
blacklist fbcon
7. Обходной путь для решения проблемы с некорректным позиционированием экрана
Добавляем в /etc/gdm/Init/Default после упоминания gdmwhich() вызов xrand для
установки нормальной ориентации экрана
XRANDR=`gdmwhich xrandr`
if [ "x$XRANDR" != "x" ]; then
$XRANDR -o 0
fi
8. В /etc/rc.local добавляем код для проверки подключения usb-терминала:
oldIFS=$IFS
IFS=/
for seat in /dev/usbseat/*; do
set $seat
/lib/udev/usbseat.sh $4
done
IFS=$oldIFS
9. Правка /etc/init.d/gdm для использования разных конфигурация для работы с
несколькими X-серверами:
Добавляем в /etc/init.d/gdm после секции "Allow cdd to override the config"
(примерно в районе 35 строки):
# При наличии конфигурации для usb монитора подключаем отдельную конфигурацию
if [ -f /etc/gdm/gdm-usbseat.conf ]; then
for usbseat in /dev/usbseat/*; do
seatid=${usbseat##*/}
if [ -e "/dev/usbseat/$seatid/keyboard" -a \
-e "/dev/usbseat/$seatid/mouse" -a -e "/dev/usbseat/$seatid/display" ]; then
CONFIG_FILE="--config=/etc/gdm/gdm-usbseat.conf"
fi
done
fi
10. Создаем файл конфигурации /etc/gdm/gdm-usbseat.conf, который будет
использован вместо gdm.conf для монитора, подключенного через USB-переходник:
[daemon]
DynamicXServers=true
FlexibleXServers=0
Greeter=/usr/lib/gdm/gdmgreeter
[security]
[xdmcp]
[gui]
[greeter]
[chooser]
[debug]
[servers]
0=inactive
После внесения вышеуказанных изменений при подключении монитора через USB на
нем должно появиться приглашение для входа в систему
|
|
|
|
|
Одновременное использование двух мышей на одном экране в X.Org (доп. ссылка 1) |
[комментарии]
|
| Несколько дней назад в Debian unstable был добавлен пакет с Xorg 7.5, в котором
появилась поддержка подсистемы XInput2, позволяющей одновременно задействовать
на одном экране несколько устройств ввода.
Ниже показано как обеспечить работу в X.Org двух манипуляторов мышь, которыми
можно управлять взяв их в правую и левую руки.
Подключаем вторую мышь (Topro) к ПК и смотрим список доступных устройств ввода:
$ xinput list
Virtual core pointer id=2 [master pointer (3)]
Virtual core XTEST pointer id=4 [slave pointer (2)]
"Logitech USB-PS/2 Optical Mouse" id=10 [slave pointer (2)]
"Topro USB Mouse" id=12 [slave pointer (2)]
Virtual core keyboard id=3 [master keyboard (2)]
...
"Topro USB Mouse" будем использовать левой рукой, а мышь Logitech - правой.
Создаем дополнительное первичное устройство ввода
$ xinput create-master Auxiliary
Вновь смотрим список устройств:
$ xinput list
...
Auxiliary pointer id=13 [master pointer (14)]
Auxiliary XTEST pointer id=15 [slave pointer (13)]
Auxiliary keyboard id=14 [master keyboard (13)]
Auxiliary XTEST keyboard id=16 [slave keyboard (14)]
Переводим мышь Topro (id 12) в категорию Auxiliary:
$ xinput reattach 12 "Auxiliary pointer"
Смотрим, что получилось:
$ xinput list
Мышь Logitech осталась в блоке "Virtual core pointer", а Topro появилась в "Auxiliary pointer".
Теперь два указателя мыши перемещаются по экрану отдельно.
Но для удобства управления поменяем маппинг кнопок для мыши Topro (id 12),
которую будем держать в левой руке:
$ xinput set-button-map 12 3 2 1
Чтобы видеть какой указатель соответствует каждой мыши поменяем оформление курсора:
$ sudo aptitude install git-core
$ git clone git://git.ao2.it/xicursorset.git
$ cd xicursorset
$ sudo aptitude install libxi-dev libxcursor-dev
$ make
Меняем курсор для левой мыши (Auxiliary pointer, id 13):
$ ./xicursorset 13 right_ptr redglass
и для правой (Virtual core pointer, id=2):
$ ./xicursorset 2 left_ptr whiteglass
Для тестирования установим приложение vinput, поддерживающие multi-pointer (MPX) режим работы:
$ git clone git://gitorious.org/vinput/vinput.git
$ cd vinput/demo
$ gcc -o demo-paint demo-paint.c `pkg-config --cflags --libs xi`
$ ./demo-paint
В настоящее время MPX не поддерживается в Gtk+ и соответственно не получится
рисовать одновременно двумя мышами в GIMP или Inkscape, но можно одной мышью
выбирать инструменты или элементы меню, а другой рисовать. Ситуация изменится с
выходом Gtk+3. Также перетаскивание одновременно двух окон еще не работает в
оконном менеджере Metacity, но иконки перетаскивать одновременно в Nautilus с
перемещением окна в Metacity уже можно. Qt поддерживает мултитач начиная с
версии 4.6
|
|
|
|
|
Изменение размера пиктограмм в панели Gtk-приложений (доп. ссылка 1) (доп. ссылка 2) |
Автор: bosha
[комментарии]
|
| Чтобы уменьшить размер пиктограмм в панели инструментов Gtk-приложений можно
создать в своей домашней директории файл .gtkrc-2.0.mine, добавив в него:
gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-button=16,16:gtk-large-toolbar=16,16"
Если размер иконок уже определен в текущей теме, тогда может понадобиться
переопределить переменную gtk-icon-sizes через создание модифицированной темы.
1. Определяем местонахождение конфигурации текущей темы через меню
Система/Параметры/Внешний Вид. В нашем случае используется тема Clearlooks,
настройки которой размещены в директории "/usr/share/themes/Clearlooks"
2. Создаем в домашнем каталоге директорию ".themes".
mkdir ~/.themes
3. Создаем директорию с настройками, имя можно выбрать любое, например, "mycontrol".
mkdir ~/.themes/mycontrol
4. Копируем содержимое текущей активной темы в ~/.themes/mycontrol
cp -R /usr/share/themes/Clearlooks/* ~/.themes/mycontrol
5. Находим и правим в скопированных файлах gtkrc
gedit ~/.themes/mycontrol/gtk-2.0/gtkrc
6. Находим и меняем (или создаем) в фaйле gtkrc переменную gtk-icon-sizes:
gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-menu=16,16:gtk-large-toolbar=22,22:gtk-button=16,16"
7. В параметрах темы в меню Система/Параметры/Внешний Вид (Gnome
Menu/Desktop/Preferences/Theme) жмем "Настроить" (Theme Details) и выбираем в
списке "mycontrol".
8. Выходим из десктоп-окружения и заходим вновь для того, чтобы изменения подействовали.
|
|
|
|
|
Установка драйвера ATI Catalyst в openSUSE 11.2 |
Автор: Wizard
[комментарии]
|
| Вот и вышла долгожданная openSUSE 11.2 и сразу появились сложности с
видеоадаптерами производства ATI/AMD... Репозиторий
http://www2.ati.com/suse/11.2/ не содержит пакетов с нужными драйверами.
Остаётся "запасной" вариант - ati-driver-installer-9-10-x86.x86_64.run, скачанный с сайта AMD.
Однако и здесь есть некоторые сложности - данный инсталлер не может собрать
RPM-пакет, а установка вручную (у меня) приводит к неработоспособности
графической подсистемы.
При изучении механизма сборки пакетов, выяснилось, что проблема вызвана
манипуляциями с RPM_BUILD_ROOT. После правки скриптов/спеков и сборки пакета,
так же выяснилось, что пакет для x86_64 не содержит библиотек для поддержки
ускорения видео через VA-API, хотя в ati-driver-installer они присутствуют.
В итоге был создан патч для "лечения" механизма сборки RPM-пакетов для openSUSE
11.2, последовательность применения которого следующая:
chmod a+x ati-driver-installer-9-10-x86.x86_64.run
ati-driver-installer-9-10-x86.x86_64.run --extract <куда-нибудь>
cd <куда-нибудь>
patch -p1 < путь/к/патчу
/packages/SuSE/ati-packager.sh --buildpkg SUSE112-AMD64
или, соответсвенно,
/packages/SuSE/ati-packager.sh --buildpkg SUSE112-IA32
rpm -i ../fglrx*.rpm
Собственно, патч:
diff -Nuar ati.orig/packages/SuSE/ati-packager.sh ati/packages/SuSE/ati-packager.sh
--- ati.orig/packages/SuSE/ati-packager.sh 2009-10-06 00:23:48.000000000 +0400
+++ ati/packages/SuSE/ati-packager.sh 2009-11-17 12:12:31.274354947 +0300
@@ -91,7 +91,7 @@
END_SED_SCRIPT
#Build the package
- rpmbuild -bb --root ${TmpDrvFilesDir} --target ${ARCH} ${TmpPkgSpec} >
${TmpPkgBuildOut} 2>&1
+ rpmbuild -bb --target ${ARCH} ${TmpPkgSpec} > ${TmpPkgBuildOut} 2>&1
#Retrieve the absolute path to the built package
if [ $? -eq 0 ]; then
diff -Nuar ati.orig/packages/SuSE/x740_64a.SUSE112-AMD64.spec ati/packages/SuSE/x740_64a.SUSE112-AMD64.spec
--- ati.orig/packages/SuSE/x740_64a.SUSE112-AMD64.spec 2009-10-06
00:23:48.000000000 +0400
+++ ati/packages/SuSE/x740_64a.SUSE112-AMD64.spec 2009-11-17
12:12:31.274354947 +0300
@@ -36,10 +36,9 @@
%ATI_DRIVER_DESCRIPTION
%install
-export RPM_BUILD_ROOT=%ATI_DRIVER_BUILD_ROOT
tmpdir=$(mktemp -d /tmp/fglrx.XXXXXX)
mkdir $tmpdir/fglrx
-mv $RPM_BUILD_ROOT/* $tmpdir/fglrx
+mv %ATI_DRIVER_BUILD_ROOT/* $tmpdir/fglrx
export RPM_SOURCE_DIR=$(mktemp -d /tmp/fglrx.XXXXXX)
mv $tmpdir/fglrx/suse/* $RPM_SOURCE_DIR
#
@@ -190,9 +189,7 @@
install -m 644 amdcccle.desktop $RPM_BUILD_ROOT/usr/share/applications
install -m 644 amdccclesu.desktop $RPM_BUILD_ROOT/usr/share/applications
install -m 755 libatiadlxx.so $RPM_BUILD_ROOT/usr/%{_lib}
-%ifarch %ix86
install -m 755 libAMDXvBA.cap libAMDXvBA.so.1.0 libXvBAW.so.1.0 $RPM_BUILD_ROOT/usr/%{_lib}
-%endif
install -m 755 libaticaldd.so libaticalrt.so libaticalcl.so $RPM_BUILD_ROOT/usr/%{_lib}
install -m 755 libdri.so $RPM_BUILD_ROOT%{MODULES_DIR}/updates/extensions
test -f libglx.so && \
@@ -392,11 +389,9 @@
/usr/X11R6/lib/libGL.so.1.2
%endif
/usr/%{_lib}/libatiadlxx.so
-%ifarch %ix86
/usr/%{_lib}/libAMDXvBA.cap
/usr/%{_lib}/libAMDXvBA.so.1.0
/usr/%{_lib}/libXvBAW.so.1.0
-%endif
/usr/%{_lib}/libaticaldd.so
/usr/%{_lib}/libaticalrt.so
/usr/%{_lib}/libaticalcl.so
diff -Nuar ati.orig/packages/SuSE/x740.SUSE112-IA32.spec ati/packages/SuSE/x740.SUSE112-IA32.spec
--- ati.orig/packages/SuSE/x740.SUSE112-IA32.spec 2009-10-06 00:23:48.000000000 +0400
+++ ati/packages/SuSE/x740.SUSE112-IA32.spec 2009-11-17 12:13:54.819085923 +0300
@@ -36,10 +36,9 @@
%ATI_DRIVER_DESCRIPTION
%install
-export RPM_BUILD_ROOT=%ATI_DRIVER_BUILD_ROOT
tmpdir=$(mktemp -d /tmp/fglrx.XXXXXX)
mkdir $tmpdir/fglrx
-mv $RPM_BUILD_ROOT/* $tmpdir/fglrx
+mv %ATI_DRIVER_BUILD_ROOT/* $tmpdir/fglrx
export RPM_SOURCE_DIR=$(mktemp -d /tmp/fglrx.XXXXXX)
mv $tmpdir/fglrx/suse/* $RPM_SOURCE_DIR
#
|
|
|
|
|
Решение проблем s2ram и s2disk на Thinkpad T61p с видеокартой nVidia FX570 (доп. ссылка 1) |
[комментарии]
|
| Решение проблем с работой suspend и hibernate режимов из-за видеокарты nVidia в
SLED или openSUSE. После попытки проснуться, ноубтук перестает реагировать и
отображает только черный экран. Судя по всему проблема вызвана конфликтом из-за
наличия в системе двух видеоадаптеров - встроенного и дополнительного.
Решить проблему удалось изменив способ работы с AGP.
Шаг 1. Проверьте, какой AGP драйвер загружается:
lsmod | grep agp
Я получил intel_agp, но у вас может быть sis_agp или via_agp, в зависимости от материнской платы.
Шаг 2. Запрещение загрузки модуля ядра intel_agp (или agppart, sis_agp,
via_agp). В /etc/modprobe.local добавляем:
blacklist intel_agp
Шаг 3. Определяем, какие возможности поддерживаются драйвером:
cat /proc/driver/nvidia/registry
Найдите NvAGP: 3. Число - это поддерживаемое AGP состояние.
Шаг 4. Изменяем настройки X.Org, в /etc/X11/xorg.conf меняем содержимое секции [Device].
Было:
Section "Device"
BoardName "Quadro FX 570M"
Driver "nvidia"
Identifier "Device[0]"
VendorName "NVidia"
EndSection
Стало (добавлено Option "NvAGP" "3"):
Section "Device"
BoardName "Quadro FX 570M"
Driver "nvidia"
Identifier "Device[0]"
VendorName "NVidia"
Option "NvAGP" "3"
EndSection
|
|
|
|
|
Замена дисплейного менеджера на Qingy в Gentoo Linux (доп. ссылка 1) |
Автор: TheMixa
[комментарии]
|
| В случае когда X Display Manager (XDM, KDM, GDM) используется только для выбора
сессии и аутентификации,
вместо него можно установить Qingy (http://qingy.sourceforge.net/), замену
getty, использующую Framebuffer
и DirectFB для вывода графики и поддерживающую как X-сессии так и текстовую
консоль. Кроме того, Qingy позволяет
запустить более одной X-сессии, использовать хранитель экрана и организовать
автоматический вход в систему.
Установка Qingy в Gentoo Linux:
1. устанавливаем dev-libs/DirectFB (-X +fbdev) и sys-apps/qingy (+directfb)
2. берем fbset и его вывод записываем в /etc/fb.modes, также в /etc/directfbrc указываем этот режим
3. меняет в inittab на нужных нам консолях agetty на qingy
4. в файле конфигурации qingy указываем нужную тему (мне понравились matrix и vendetta3)
5. отключаем XDM и перезагружаемся для верности
За счет избавления от лишнего звена скорость загрузки изменилась в лучшую сторону.
|
|
|
|
|
Захват видео непосредственно с X-сервера (доп. ссылка 1) |
Автор: xAnd
[комментарии]
|
| Задача: снять видео с рабочего стола Ubuntu.
Устанавливаем ffmpeg и кодеки:
sudo apt-get install ffmpeg
sudo apt-get install libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 \
libavutil-unstripped-49 libpostproc-unstripped-51 libswscale-unstripped-0 ffmpeg faac
Команда, которая пишет видео с рабочего стола:
ffmpeg -f x11grab -s 1280x800 -r 25 -i :0.0 -vcodec qtrle screenvideo.mov
Разберёмся с параметрами командной строки:
-f x11grab - источник сигнала (в нашем случае X-сервер);
-i :0.0 - экран X-сервера или просто номер монитора;
-s 1280x800 - захватываемое разрешение экрана (тут очень рекомендую сохранять пропорции экрана,
а ещё лучше жать в натуральное разрешение экрана, ибо потеря качества очень серьезная);
-r 25 - количество кадров в секунду;
-vcodec qtrle - кодек для захвата (параметр необязательный, по идее ffmpeg определяет тип кодека
автоматически по расширению выходного файла);
screencast.mov - собственно выходной файл. Можно указывать полный путь.
После выполнения указанной команды сразу же начнётся процесс записи.
Чтобы остановить запись необходимо нажать "q" в терминале, в котором идёт процесс захвата.
Для удобства публикации, полученный файл можно конвертировать в формат .flv тем
же ffmpeg'ом, например так:
ffmpeg -i screencast.mov screencast.flv
|
|
|
|
|
Приемы использования GConf для тонкой настройки GNOME (доп. ссылка 1) (доп. ссылка 2) |
[комментарии]
|
| Для изменения параметров GNOME будем использовать утилиту gconftool-2, вызываемую в формате:
gconftool-2 --set путь_к_настройке --type "значение"
Управление равертыванием окна за пределы экранной области (например, полезно
для устройств с низким экранным разрешением):
gconftool-2 --set /apps/compiz/plugins/move/allscreens/options/constrain_y --type bool 0
Изменение громкости из командной строки (по умолчанию установлено 6):
gconftool-2 --set --type int /apps/gnome_settings_daemon/volume_step 2
Открывать в Nautilus директорию с содержимым после распаковки архива в File-roller:
gconftool-2 --type boolean --set /apps/file-roller/dialogs/extract/view_destination_folder true
Отображать на десктопе пиктограммы примонтированных дисковых разделов:
gconftool-2 --type boolean --set /apps/nautilus/desktop/volumes_visible true
Включить проверку наличия обновленной версии дистрибутива:
gconftool-2 --type boolean --set /apps/update-manager/check_dist_upgrades true
Включение возможности отсоединения тулбаров для GTK+ приложений:
gconftool-2 --type boolean --set /desktop/gnome/interface/toolbar_detachable true
Изменение программы для автоматического просмотра DVD с Totem на VLC или gxine:
gconftool-2 --type string --set /desktop/gnome/volume_manager/autoplay_dvd_command "gxine dvd:/%m"
gconftool-2 --type string --set /desktop/gnome/volume_manager/autoplay_dvd_command "vlc %m"
Изменение гарнитуры и размера шрифтов для элементов десктопа:
gconftool-2 --set /apps/nautilus/preferences/desktop_font --type string "Sans 8"
gconftool-2 --set /desktop/gnome/interface/document_font_name --type string "Sans 8"
gconftool-2 --set /desktop/gnome/interface/font_name --type string "Sans 8"
gconftool-2 --set /apps/metacity/general/titlebar_font --type string "Sans Bold 8"
gconftool-2 --set /desktop/gnome/interface/monospace_font_name --type string "Monospace 8"
Изменение DPI для рендеринга шрифтов в GNOME, если 0 то значение берется от X сервера:
gconftool-2 --type integer -s /desktop/gnome/font_rendering/dpi 96
Выключение отображения пиктограмм на десктопе:
gconftool-2 --set --type boolean /apps/nautilus/preferences/show_desktop false
Удаление ссылок о спящем и ждущем режиме из диалога завершения работы:
gconftool-2 --type boolean --set /apps/gnome-power-manager/can_suspend false
gconftool-2 --type boolean --set /apps/gnome-power-manager/can_hibernate false
Для применения настройки для всех пользователей, а не только для текущего пользователя:
gconftool-2 --direct--config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type boolean \
--set /apps/gnome-power-manager/can_hibernate false
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type boolean \
--set /apps/gnome-power-manager/can_suspend false
Назначение горячих клавиш Ctrl+C и Ctrl+V для копирования и вставки текста в gnome-terminal:
gconftool-2 -t str -s /apps/gnome-terminal/keybindings/copy "<Control>c"
gconftool-2 -t str -s /apps/gnome-terminal/keybindings/paste "<Control>v"
Установка пути к фоновому изображению:
gconftool-2 --type string -s /desktop/gnome/background/picture_filename "/home/user/image.jpg"
Отображать или нет фоновое изображение:
gconftool-2 --type bool -s /desktop/gnome/background/draw_background false
Управление отображением строки текущего пути в nautilus:
gconftool-2 --type boolean --set /apps/nautilus/preferences/always_use_location_entry true
Отображать на десктопе содержимое домашней директории, а не "$HOME/Desktop":
gconftool-2 --type boolean --set /apps/nautilus/preferences/desktop_is_home_dir true
Управление размещением различных служебных пиктограмм (computer|home|trash)на десктопе:
gconftool-2 --type boolean --set /apps/nautilus/desktop/[computer|home|trash]_icon_visible true
Отображать окно выхода при завершении работы:
gconftool-2 --type boolean --set /apps/gnome-session/options/logout_prompt false
Выбор оконного менеджера для запуска:
gconftool-2 --type string --set /apps/gnome-session/rh/window_manager "/usr/bin/icewm"
Установка параметров монтирования USB Flash с файловой системой VFAT:
gconftool-2 --type list --set /system/storage/default_options/vfat/mount_options --list-type string '[shortname=winnt,uid=]'
Включение удаленного доступа к десктопу через VNC:
gconftool-2 --set /desktop/gnome/remote_access/authentication_methods --type list --list-type string '[vnc]'
gconftool-2 --set /desktop/gnome/remote_access/vnc_passwd \
--type string `echo -n 'my_vnc_password' | base64`
gconftool-2 --set /desktop/gnome/remote_access/enabled --type bool true
Просмотр содержимого базовых настроек GNOME:
gconftool-2 -R /desktop/gnome
|
|
|
|
|
Решение проблем с перерисовкой окон в Compiz с новыми драйверами NVIDIA (доп. ссылка 1) (доп. ссылка 2) |
Автор: Waster
[комментарии]
|
| После очередного обновления драйверов NVIDIA обнаружил очень неприятную
проблему с перерисовкой символов внутри gnome-terminal,
например, если запустить mc. Эта проблема наблюдается, если запущен Compiz.
Некоторые также обнаруживают проблемы с перерисовкой не только окна терминала,
но и вообще окон Gnome.
Выяснилось, что в моем случае необходимо включить Indirect Rendering в Compiz,
чтобы эта проблема исчезла.
К сожалению, это немного сказывается на производительности, так что решите для
себя сами, нужен ли Compiz, или нет.
Также некоторым помогает добавление опции --loose-binding при старте Compiz.
Для включения Indirect Rendering в Ubuntu нужно добавить в файл
/etc/xdg/compiz/compiz-manager строчку
INDIRECT="yes"
Если вокруг окон отображаются лишние бордюры, можно попробовать выполнить:
sudo nvidia-xconfig --add-argb-glx-visuals -d 24
или указать в /etc/X11/xorg.conf
DefaultDepth 24
Option "AddARGBGLXVisuals" "true"
При появлении проблем с обновлением окон (содержимое "замерзает") при
использовании драйверов ati или intel,
в /etc/X11/xorg.conf можно добавить:
Option "XAANoOffscreenPixmaps" "true"
Подборка рекомендаций о решении проблем с Nvidia драйверами от посетителя pavlinux:
Настройки, которые можно попробовать в случае проблем:
Option "DamageEvents" "True" # Не работает при SLI
Option "DisableGLXRootClipping" "True" # для серии 100.xx.xx, но старее 100.14.19
Option "AllowGLXWithComposite" "True" # для версии старее 9639
Option "UseEvents" "False" # улучшение работы OpenGL рендеринга
Option "TripleBuffer" "True" # улучшение качества, испольщовать с включенным Sync2VBlank в OpenGL
Option "BackingStore" "True"
Option "RenderAccel" "True"
Option "AddARGBGLXVisuals" "True"
Option "MultisampleCompatibility" "True" # использование раздельных фронтального и фонового multisample буферов
# Оптимизиция процесса запуска
Option "NoLogo" "true"
Option "NvAGP" "1"
Option "NoPowerConnectorCheck" "off"
Option "NoBandWidthTest" "on"
Если на компьютере есть MSI, то грузить модуль с
modprobe nvidia NVreg_EnableMSI=1
Подобрать правильный NVreg_RemapLimit:
для 256Mb DDR3 NVreg_RemapLimit=0x0f800000
для 512MB DDR3 NVreg_RemapLimit=0x1F000000
для 768MB DDR3 NVreg_RemapLimit=0x2E800000
для 1Gb DDR3 NVreg_RemapLimit=0x3E000000
До версии 177.67, добавить в xorg.conf
Option "PixmapCacheSize" "1000000"
Option "AllowSHMPixmaps" "0"
в /etc/X11/xinit дописать
nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1
Испробовать варианты с
# export __GL_YIELD="NOTHING"
# export QT_NO_GLIB=1
В ядре выключить CONFIG_PCI_MMCONFIG, и все framebuffer драйверы, кроме CONFIG_FB_VESA=y
Распаковать драйвер -
# NVIDIA-Linux-x86_64-180.44-pkg2.run --extract-only
залезть редактором в NVIDIA-Linux-x86_64-180.44/usr/src/nv/Makefile.kbuild
найти EXTRA_CFLAGS
дописать -UDEBUG -U_DEBUG -DNDEBUG -UNVDEBUG -URMDEBUG -UDEBUGGING -UDBG
|
|
|
|
|
Включение круговой прокрутки на тачпадах Synaptics (доп. ссылка 1) |
Автор: Alinaki
[комментарии]
|
| В заметке показано как включить в драйвере Synaptics поддержку "круговой
прокрутки", при включении которой,
возможно совершение непрерывного скроллинга через описывание пальцем
непрерывных круговых движений,
начиная с заданного угла тачпада. При этом круги по часовой стрелке приводят к
прокрутке вниз, против - к прокрутке вверх.
Также показано как эмулировать нажатие правой кнопки мыши через прикосновение
двумя пальцами, а левой кнопки - тремя.
В xorg.conf изменяем секцию InputDevice, привязанную к тачпаду Synaptics:
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "CircularScrolling" "on" # Включить круговую прокрутку
Option "CircScrollTrigger" "2" # Привязка начала кругов на правый верхний угол
Option "HorizEdgeScroll" "on" # Горизонталная прокрутка по нижнему краю
Option "SHMConfig" "on" # Системная настройка, необходима для следующих строк
Option "TapButton2" "3" # Два пальца - на правую кнопку
Option "TapButton3" "2" # Три пальца - на среднюю (колесо)
EndSection
Привязки распределены следующим образом:
0 Любой, 1 Верхняя кромка, 2 Правый верхний угол, 3 Правая кромка, 4 Правый
нижний угол, 5 Нижняя кромка
6 Левый нижний угол, 7 Левая кромка, 8 Левый верхний угол
Если тачпадом поддерживается распознавание ладони, то можно включить опцию PalmDetect и
навсегда забыть о случайных нажатиях на панель во время печати. Подробнее в "man synaptics".
|
|
|
|
|
CentOS 5.2 и некорректная прорисовка экрана в vnc-server |
Автор: User
[комментарии]
|
| При использовании в xorg.conf vnc модуля из стандартного пакета vnc-server-4.1.2-9.el5.i386.rpm
обнаружена проблема: неправильная прорисовка экрана.
Метод лечения:
1. Удаляем vnc-server-4.1.2-9
2. Забираем vnc-4_1_3-x86_linux.rpm с сайта http://realvnc.com
3. Ставим vnc-4_1_3-x86_linux.rpm
4. Делаем ссылку
ln -s /usr/X11R6/lib/modules/extensions/vnc.so /usr/lib/xorg/modules/extensions/vnc.so
5. Выполняем ldconfig
6. All ok!
|
|
|
|
|
Настройка клавиатуры в X.Org 7.4 / X-Server 1.5 (доп. ссылка 1) (доп. ссылка 2) |
Автор: kaktyc
[комментарии]
|
| В xorg-server-1.5.x, если не отключить при компиляции X-сервера, конфигурация устройств ввода
осуществляется не в xorg.conf, а через HAL. Это позволяет подключать различные
клавиатуры и мышки "на лету"
и они будут работать без необходимости рестарта иксов. Но при этом, например
для настройки раскладки,
возникает необходимость правки xml-конфигов HAL вместо простого и удобного файла xorg.conf.
Например, чтобы реализовать настройку в xorg.conf:
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:shift_caps_toggle,grp_led:scroll,caps:internal,compose:ralt"
Необходимо создать файл /etc/hal/fdi/policy/10-keymap.fdi следующего содержания:
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keymap">
<append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
</match>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.xkb.rules" type="string">base</merge>
<merge key="input.xkb.layout" type="string">us,ru</merge>
<merge key="input.xkb.options" type="string">grp:shift_caps_toggle,grp_led:scroll,caps:internal,compose:ralt</merge>
<merge key="input.xkb.variant" type="string">,winkeys</merge>
</match>
</device>
</deviceinfo>
Отключается такое поведение добавлением в xorg секции:
Section "ServerFlags"
Option "AutoAddDevices" "False"
EndSection
Другой вариант, задействовать setxkbmap, поместив в ~/.xsessionrc строчку:
setxkbmap "us,ru" ",winkeys" "grp:caps_toggle"
|
|
|
|
|
Управление десктоп приложениями из shell при помощи D-Bus (доп. ссылка 1) |
[комментарии]
|
| В качестве консольной утилиты для работы с D-Bus можно использовать "qdbus" из состава Qt4.
При выполнении без аргументов, утилита qdbus выведет список активных шин:
qdbus
org.freedesktop.ScreenSaver
org.freedesktop.Notifications
org.freedesktop.PowerManagement
org.freedesktop.DBus
Отобразим список объектов для шины ScreenSaver:
qdbus org.freedesktop.ScreenSaver
/
/App
/Interface
/KBookmarkManager
/KBookmarkManager/konqueror
/KDebug
/MainApplication
/ManagerIface_contact
/ScreenSaver
Просмотрим методы объекта "/ScreenSaver":
qdbus org.freedesktop.ScreenSaver /ScreenSaver
signal void org.freedesktop.ScreenSaver.ActiveChanged(bool)
method bool org.freedesktop.ScreenSaver.GetActive()
method uint org.freedesktop.ScreenSaver.GetActiveTime()
method bool org.freedesktop.ScreenSaver.SetActive(bool e)
method void org.freedesktop.ScreenSaver.Lock()
method uint org.freedesktop.ScreenSaver.Inhibit(QString application_name, QString reason_for_inhibit)
...
Посмотрим значение текущего счетчика времени неактивности, после которого
активируется хранитель экрана. Просмотрим текущее значение:
qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime
0
С момента последнего нажатия клавиши прошло 0 сек. Попробуем ничего не нажимать:
sleep 5 ; qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime
4
Попробуем активировать хранитель экрана через метод org.freedesktop.ScreenSaver.SetActive:
qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive True
true
Блокируем экран:
qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock
В случае когда нужно предотвратить запуск хранителя экрана, например, во время
просмотра видео, можно использовать:
qdbus org.freedesktop.ScreenSaver /ScreenSaver \
org.freedesktop.ScreenSaver.Inhibit "$$" "Testing D-Bus Interface"
5822
где, "$$" - имя приложения запретившего активацию хранителя экрана,
в нашем случае это PID текущего shell (5822).
второй аргумент - причина сдерживания хранителя экрана.
После того как хранитель экрана можно опять активировать, выполняем:
qdbus org.freedesktop.ScreenSaver /ScreenSaver \
org.freedesktop.ScreenSaver.UnInhibit 5822
Другие примеры.
Просмотрим список заметок из Tomboy.
qdbus org.gnome.Tomboy /org/gnome/Tomboy/RemoteControl org.gnome.Tomboy.RemoteControl.ListAllNotes
note://tomboy/5e900d91-bd77-4f41-89d8-e71baaafd364
note://tomboy/f647c681-b1b9-4eca-bdab-fd4b04cb37f6
Отобразим содержимое одной из них:
qdbus org.gnome.Tomboy /org/gnome/Tomboy/RemoteControl \
org.gnome.Tomboy.RemoteControl.GetNoteContents note://tomboy/5e900d91-bd77-4f41-89d8-e71baaafd364
|
|
|
|
|
Изменение клавиш быстрого вызова пунктов меню в gtk приложениях (доп. ссылка 1) |
Автор: GiNeR
[обсудить]
|
| Для изменения клавиш быстрого вызова в GTK2 приложениях на лету:
Для Gnome:
Проверяем не включено ли:
gconftool -g /desktop/gnome/interface/can_change_accels
Если false:
gconftool -t boolean -s /desktop/gnome/interface/can_change_accels true
Для других оконных менеджеров и приложений (не использующих gconf2):
echo gtk-can-change-accels = 1 >> ~/.gtkrc-2.0
Если не работает, например в SUSE, нужно создать пустой файл
~/.no-qtrc-to-gtkrc-mapping и перезайти в X-ы.
После того как горячее назначение клавиш включено, достаточно подвести курсор мыши
к нужному пункту меню приложения и нажать удобное сочетание клавиш, оно запоминается.
|
|
|
|
|
Обмен данными между буфером обмена X-ов и консолью (доп. ссылка 1) |
[комментарии]
|
| Для копирования данных в буфер обмена X Window из консоли следует использовать
утилиты xclip и xsel.
Устанавливаем в Debian/Ubuntu:
sudo apt-get install xclip
в Fedora/RHEL/CentOS:
yum install xclip
Копируем вывод команды в буфер обмена:
sort file.txt | xclip
Выводим содержимое буфера обмена в стандартный поток, который записываем в файл:
xclip -o > file.txt
Например, так можно отсортировать данные в буфере обмена:
xclip -o | sort | xclip
посчитать число строк:
xclip -o | wc | xclip
или перекодировать текст:
xclip -o | iconv -f cp1251 -t utf-8 | xclip
Компана xsel, выполняет аналогичные действия:
pwd | xsel
xsel -o |less
|
|
|
|
|
Улучшение отображения шрифтов в X Window |
[комментарии]
|
| Первым делом нужно проверить собрана ли библиотека freetype2 с опцией
TT_CONFIG_OPTION_BYTECODE_INTERPRETER,
как правило отключаемой в дистрибтуивах из-за лицензионных ограничений
Для владельцев ноутбуков внимание также можно обратить на сборку с опцией WITH_LCD_FILTERING,
но это может потребовать обновления и пересборки cairo и libXft.
В основанный на RPM дистрибутивах Linux, загружаем src.rpm пакет и пересобираем.
Разворачиваем исходные тексты:
rpm -i ~/rpmbuild/SRPMS/freetype-2.3.5-3.fc8.src.rpm
Пересобираем
rpmbuild -bb --with bytecode_interpreter ~/rpmbuild/SPECS/freetype.spec
или, если в spec файле определено %define without_bytecode_interpreter 1
rpmbuild -bb --with withhout_bytecode_interpreter=0 ~/rpmbuild/SPECS/freetype.spec
или перед сборкой редактируем spec файл и раскомментируем строчки связанные с bytecode
например для OpenSUSE - "%%patch100 -p 1 -b .bytecode"
Устанавливаем собранный пакет:
rpm -Uvh --force ~/rpmbuild/RPMS/freetype-2.1.4-2.fc7.x86_64.rpm
В последних версиях Debian/Ubuntu достаточно выбрать Bytecode interpreter и Subpixel rendering
настройки при выполнении
sudo dpkg-reconfigure fontconfig
Во FreeBSD при сборке порта по умолчанию включается TTF_BYTECODE_ENABLED:
cd /usr/ports/print/freetype2/
make WITH_LCD_FILTERING=yes
make install
Копируем Windows шрифты в ~/.fonts
Если загрузка шрифтов из этой директории в дистрибутиве не настроена, то
переходим в данную директорию и запускаем "mkfontdir" и "fc-cache ./"
В Debian/Ubuntu/Fedora можно поставить пакет msttcorefonts или msttcore-fonts.
Проводим тюнинг параметров fontconfig, создав ~/.fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font" >
<edit mode="assign" name="antialias" >
<bool>true</bool>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="autohint" >
<bool>true</bool>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hinting" >
<bool>true</bool>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hintstyle" >
<const>hintfull</const>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="rgba" >
<const>none</const>
</edit>
</match>
</fontconfig>
Описание по параметрам можно посмотреть на странице
http://fontconfig.org/fontconfig-user.html
Кратко о параметрах:
autohint - метод исправления дефектов растеризации,
следует поэкспериментировать включением/выключением в сочетании с установкой antialias.
antialias - антиалиасинг, сглаживание начертаний.
hinting - уточнение, шрифт с хинтингом получается тоньше;
hintstyle - стиль уточнения, при hinting =true можно попробовать в hintstyle - hintfull и hintnone
rgba - если none, то используется субпиксельное сглаживание.
|
|
|
|
|
Назначение gmail в качестве почтового клиента по умолчанию в GNOME (доп. ссылка 1) |
[обсудить]
|
| В "System \ Preferences \ Preferred Applications" в качестве почтового клиента
нужно прописать скрипт
/home/имя/open_mailto.sh %s
, содержащий:
#!/bin/sh
firefox https://mail.google.com/mail?view=cm&tf=0&to=`echo $1 | sed 's/mailto://'`
Если нужно открывать gmail не в новом окне, а в новом табе:
#!/bin/sh
firefox -remote "openurl(https://mail.google.com/mail?view=cm&tf=0&to=`echo $1 | sed 's/mailto://'`,new-tab)"")
Для уведомления о появлении почты в Gmail можно использовать программы:
gmail-notify - http://gmail-notify.sourceforge.net/
KGmailNotifier - http://www.kde-apps.org/content/show.php/KGmailNotifier?content=55375
gnome-gmail-notifier - http://code.google.com/p/gnome-gmail-notifier/
|
|
|
|
|
Уведомление всплывающее на десктопе и управление оконным менеджером |
[комментарии]
|
| Утилита notify-send, входящая в состав пакета libnotify-bin, позволяет
отправить через D-BUS уведомление,
которое будет отражено в GNOME в виде всплывающего окошка.
Пример:
notify-send -c info -t 1800000 "заголовок окна" "текст внутри окна"
где, "-t 1800000" - таймаут висения окна в милисекундах.
"-c info" - категория оповещения, список можно найти здесь:
http://www.galago-project.org/specs/notification/0.9/x211.html
В тексте можно использовать тэги: <b>жирный шрифт</b>, <i>наклонный</i>, <u>с подчеркиванием</u>,
<a href="...">ссылки</a>, <img src="..." alt="...">картинки, размером до 200x100</img>.
Интересные возможности по управлению оконным менеджером из командной строки
предоставляет утилита wmctrl:
Получить список открытых окон:
wmctrl -l
Получить список открытых окон с отображением PID-процесса и инфрмацией о размере окна:
wmctrl -p -G -l
Сделать активным окно в названии которого есть слово licq:
wmctrl -a licq
Свернуть окно в названии которого есть слово 'mozilla':
wmctrl -r mozilla -b add,hidden
Закрыть окно по его имени:
wmctrl -F -c 'Debian bug tracking system - Mozilla'
Изменить заголовок окна для окна выбранного курсором мыши:
wmctrl -r :SELECT: -T "Selected Window"
Развернуть окно со словом video в заголовке на полный экран:
wmctrl -r "video" -b toggle,fullscreen
Посмотреть какое окно является активным:
xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"
Посмотреть подробную информацию об активном окне:
xwininfo -id 0x4a00021
где, 0x4a00021 идентификатор окна.
|
|
|
|
|
Контроль двух X дисплеев одной клавиатурой и мышью (доп. ссылка 1) |
[комментарии]
|
| Утилита x2x (http://x2x.dottedmag.net/) предназначена для контроля X дисплея одной машины,
клавиатурой и мышью с другой, т.е. позволяет одновременно работать с двумя X-серверами.
Активный дисплей выбирается в зависимости от установки фокуса мышью.
На обеих машинах создается единый буфер обмена.
Например, удобно принести ноутбук на работу, поставить рядом с рабочей машиной
и работать одной клавиатурой и мышью.
Подключаемся с локальной машины на удаленную:
ssh -X хост x2x -east -to :0
где, "-X" - включение перенаправление X-протокола,
"-east" - относительная позиция управляющего окна (другой вариант "-west").
При перемещении курсора мыши на окно вторичной системы, команды клавиатуры и
мыши будут переданы удаленному X-серверу.
Второй вариант запуска, при котором, в отличии от первого варианта,
будет создан единый буфер обмена.
На удаленной системе разрешаем подключение к X-серверу с локальной машины:
xhost +локальная_машина
На локальной системе выполняем:
x2x -to хост:0.0 -east
Где хост:0.0 определяет удаленный X-сервер к которому следует подключиться.
Для запуска x2x под Windows необходимо установить пакет Cygwin,
не забыв выбрать x2x в списке устанавливаемых программ.
При этом Windows может быть использована только в роли первичной управляющей системы,
к которой непосредственно подключена клавиатура и мышь.
Для подключения к удаленному Linux хосту выполняем в shell приглашении Cygwin:
x2x -fromwin -to адрес_linux_машины:0.0 -east
|
|
|
|
|
Уменьшение времени загрузки X11 программ через кэширование символьных таблиц (доп. ссылка 1) |
Автор: Robert Knight
[комментарии]
|
| В библиотеке libx11 имеется поддержка кэширования символьных таблиц (compose-table-cache),
получаемых в результате парсинга "/usr/share/X11/locale/имя_локали/Compose"
файлов локали (парсинг более 5000 строк при каждом запуске),
что позволяет сократить время запуска некоторых приложений (например,
использующих Qt или Gtk) на 40-200 мс.
и уменьшить потребление памяти каждым приложением примерно на 240Кб (данные для UTF8 локали).
Для включения кэша достаточно в домашней директории создать каталог .compose-cache
mkdir $HOME/.compose-cache
В SUSE Linux данный механизм задействован по умолчанию, кэш находится в
директории /var/cache/libx11/compose.
|
|
|
|
|
Как поменять коричневый цвет для процесса загрузки Ubuntu (доп. ссылка 1) |
Автор: www.openkazan.info
[комментарии]
|
| Для того чтобы убрать надоевший коричневый цвет, возникающий на несколько секунд
в процессе загрузки Ubuntu:
sudo gedit /etc/gdm/PreSession/Default
находим строки
# Default value
if [ "x$BACKCOLOR" = "x" ]; then
BACKCOLOR="#dab082"
fi
и меняем цвет на любой другой, например на чёрный:
# Default value
if [ "x$BACKCOLOR" = "x" ]; then
BACKCOLOR="#000000"
fi
|
|
|
|
|
Как в GDM запретить кнопки перезагрузки и выключения работы (доп. ссылка 1) |
[обсудить]
|
| Для запрещения кнопок перезагрузки и выключения в /etc/X11/gdm/gdm.conf нужно
исправить "SystemMenu=true" на "SystemMenu=false".
Затем перезапустить X-ы комбинацией клавиш Ctrl + Alt + Backspace.
Команды вызываемые для перезагрузки, выключения и засыпания, можно поменять
через переменные RebootCommand, HaltCommand и SuspendCommand.
Другие полезные настройки:
AutomaticLogin - логин для автоматического входа в систему.
AlwaysRestartServer - gdm будет при каждом входе перезапускать X сервер.
PostLoginScriptDir, PreSessionScriptDir, PostSessionScriptDir - пути к директории
со скриптами запускаемыми на разных этапах входа пользователя в систему.
SessionDesktopDir - директория с описанием вариантов сессий (/etc/X11/sessions/).
DefaultSession - сессия всегда выбираемая по умолчанию;
AllowRoot - запретить или разрешить входа под логином root;
GtkTheme, GraphicalTheme, GraphicalThemeDir - определение визуальной темы;
Browser - можно отключить показ пиктограмм для пользователей;
GlobalFaceDir - где хранятся пиктограммы (/usr/share/faces/)
Logo - путь к логотипу;
BackgroundColor - цвет фона;
BackgroundProgram - можно привязать хранитель экрана для формирования фона;
ShowLastSession -
Для kdm похожие настройки можно найти в файле /etc/X11/kdm/kdmrc
Также для настройки gdm можно использовать GUI интерфейс /usr/sbin/gdmsetup, для kdm - kdm_config
|
|
|
|
|
Улучшение качества отображения шрифтов в Debian GNU/Linux (доп. ссылка 1) |
Автор: andrey i. mavlyanov
[комментарии]
|
| В дебиан по-умолчанию xserver запускается с параметром -dpi 100.
Это необходимо исправить в файле /etc/X11/xinit/xserverrc:
#!/bin/sh
# $Id: xserverrc 189 2005-06-11 00:04:27Z branden $
exec /usr/bin/X11/X -dpi 96 -nolisten tcp
Поставьте пакет с шрифтами от Microsoft (для этого не забудьте включить в
/etc/apt/sources.list репозитарий с non-free пакетами).
$ sudo aptitude install msttcorefonts
Создайте файл /etc/fonts/local.conf:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>Times New Roman</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Arial</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Courier New</family>
</prefer>
</alias>
</fontconfig>
Положите в домашнюю директорию файл .Xresources.
В нём, помимо прочего, должна содержаться строчка:
Xft.dpi: 96
Также в домашнюю директорию следует положить файл .fonts.conf:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font" >
<edit mode="assign" name="rgba" >
<const>rgb</const>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hinting" >
<bool>true</bool>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hintstyle" >
<const>hintfull</const>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="antialias" >
<bool>true</bool>
</edit>
</match>
</fontconfig>
Вот и всё. Осталось перезапустить подсистему X.
|
|
|
|
|
Создание 32-битного chroot окружения в 64-битной Debian установке (доп. ссылка 1) |
Автор: Amadeu A. Barbosa Jr
[комментарии]
|
| Ниже пример организации 32-битного chroot окружения в 64-битной системе.
Устанавливаем пакет schroot
aptitude install schroot
Создаем файл конфигурации /etc/schroot/schroot.conf:
[sid]
description=Debian sid (unstable)
location=/srv/chroot/sid
priority=3
users=YOUR_USER
groups=SOME_GROUP_LIKE_users
root-groups=YOUR_ADMIN_USER
Формируем chroot окружение:
debootstrap --arch i386 sid /srv/chroot/sid http://ftp.br.debian.org/debian
Установка программ в chroot:
schroot -c sid -p aptitude install wengophone
Монтируем /proc и /dev основной системы в chroot:
mount /dev /srv/chroot/sid/dev -o bind
mount /proc /srv/chroot/sid/proc -o bind
Разрешаем запуск графических приложений из chroot на основном X сервере:
xhost +
Запускаем приложения wengophone и skype:
schroot -c sid -p wengophone
schroot -c sid -p skype
Закрываем полный доступ к X серверу.
xhost -
|
|
|
|
|
Использование буфера обмена X Window в скриптах и командной строке (доп. ссылка 1) |
Автор: JoshTriplett
[комментарии]
|
| Для обращения к буферу обмена из командной строки нужно использовать утилиту
xclip (http://sourceforge.net/projects/xclip),
которая помещает в буфер обмена то что приходит через STDIN и выталкивает из
буфера обмена в STDOUT.
Скопировать в буфер обмена: echo "test" | xclip
Вывести содержимое буфера обмена: xclip -o
Через опцию -sel можно выбрать буфер обмена:
clipboard (Ctrl+C,Ctrl+X, Ctrl+V или меню Copy/Paste в приложениях),
primary (средняя кнопка мыши), secondary.
Для вывода содержимого буфера обмена по Ctrl-v в bash, можно использовать .bashrc:
if [ -n "$DISPLAY" ] && [ -x /usr/bin/xclip ] ; then
# Work around a bash bug: \C-@ does not work in a key binding
bind '"\C-x\C-m": set-mark'
# The '#' characters ensure that kill commands have text to work on; if
# not, this binding would malfunction at the start or end of a line.
bind 'Control-v: "#\C-b\C-k#\C-x\C-?\"$(xclip -o -selection c)\"\e\C-e\C-x\C-m\C-a\C-y\C-?\C-e\C-y\ey\C-x\C-x\C-d"'
fi
|
|
|
|
|
Настройка GDM/KDM (доп. ссылка 1) |
Автор: soko1
[комментарии]
|
| Почему-то нигде нет информации о том, как во FreeBSD настраивается GDM/KDM
на предмет выбора загрузки оконных менеджеров.
Поэтому я решил написать короткое руководство.
1. Заходим в каталог '/usr/local/etc/dm/Sessions', создаем там текстовый файл с
расширением .desktop, например ion3.desktop:
%cd /usr/local/etc/dm/Sessions; touch ion3.desktop
2. Открываем файл в текстовом редакторе и пишем туда следующее:
[Desktop Entry]
Encoding=UTF-8
Name=Ion3
Exec=/usr/local/bin/ion3
Icon=
Type=Application
3. Ставим права доступа 0555:
%chmod 0555 ion3.desktop
Аналогичные файлы создаем для запуска других WM.
4. Перезапускаем наш DM.
|
|
|
|
|
Как запустить GUI приложение на сервере без монитора (доп. ссылка 1) |
Автор: Alexey Kovyrin
[комментарии]
|
| Можно воспользоваться xvfb (X window virtual framebuffer, http://en.wikipedia.org/wiki/Xvfb),
X-сервером эмулирующим работу frame-buffer в памяти.
Установка в Debian Linux:
# apt-get install xvfb
Запуск X-сервера.
# Xvfb -shmem -screen 0 1280x1024x24
Запуск приложения, которому обязательно нужен X Сервер.
# DISPLAY=:0 xdpyinfo
|
|
|
|
|
Как отключить клик через касание touchpad на ноутбуке (доп. ссылка 1) |
[комментарии]
|
| Одна из неприятных особенностей тачпадов - срабатывание клика при случайном
касании (tap-to-click).
Для отключения данной функции в Synaptic Touchpad, в xorg.conf необходимо
добавить в секции Input Device:
Option "MaxTapTime" "0"
или
Option "SHMConfig" "on"
плюс запуск syndaemon -t -d (опция -t запрещает tapping и scrolling)
или настройка через gsynaptics
|
|
|
|
|
Установка видеодрайверов ATi и nVIDIA в Fedora Core 6 Linux (доп. ссылка 1) |
Автор: Mihail Marinof
[комментарии]
|
| Проще всего установить готовые RPM пакеты из репозитория livna.org.
Подключаемся к репозиторию Livna:
rpm -Uhv http://rpm.livna.org/livna-release-6.rpm
rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
Проверяем его доступность:
yum info kmod-nvidia
Для упрощения работы с пакетами устанавливаем дополнение Yum Extender:
yum install yumex
возможности которого доступны через утилиту yumex или меню Kmenu / System / Yum Extender.
Обновление ядра собранного для архитектуры i586 до i686 сборки (не обязательно).
Проверьте присутствие репозитория Livna в списке, зайдите в секцию Remove
и выберите текущее Linux ядро и пакет kernel-devel, нажмите "add to queue" и
перейдите в секцию Install. Найдя список ядер (Kernel), выберите ядро и пакет
kernel-devel для i686 архитектуры и нажмите добавить в очередь (add to queue).
Войдите в секцию Queue и нажмите "Process Queue". Перезапуситите компьютер.
Установка nVIDIA драйверов:
yum install kmod-nvidia
Установка ATi драйверов:
yum install xorg-x11-drv-fglrx kmod-fglrx glx-utils
Проверяем после рестарта X сервера:
glxinfo | grep direct
direct rendering: Yes
Для AMD64 процессора нужно добавить опцию iommu=off при загрузке Linux ядра.
В /etc/grub.conf вносим подобную правку:
kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet iommu=off
Для материнских плат на базе чипсета Intel имеет смысл добавить в
/etc/X11/xorg.conf после секции Driver "fglrx":
Option "UseInternalAGPGART" "no"
|
|
|
|
|
Лог инсталляции Beryl |
Автор: Kroz
[комментарии]
|
| Ниже приводится лог действий инсталляции Beryl и сопутствующих
программ/библиотек на моем компьютере.
К сожалению этот лог не полный, но правильный на 99% . Формат записей, я
надеюсь, будет понятен без объяснений.
Моя ОС: Slackware 10.2
Инсталляция производилась преимущественно сборкой из исходников (за некоторым исключением)
Действия производились на основании материала по ссылке:
http://wiki.beryl-project.org/wiki/Install_Beryl_on_Slackware
Рекомендую пользоваться ссылкой, а мой лог использовать как помощь во избежание
следующих подводных камней: зависимости, версии (я ставил последние версии
софта, но некоторые не собрались,
поэтому приходилось брать не последние версии).
Лог не описывает инсталляцию последнего Xorg и dbus.
Ценность данного материала предоставляю определить модератору и публике.
Но лично я был бы рад найти что-то подобное перед тем как я начал инсталляцию.
-----------------------------
Beryl> Install DBus
Beryl> Install DBus-glibc
Beryl> Install beryl-core
Beryl>beryl-core> tar -jxvf beryl-core-0.1.99.2.tar.bz2
Beryl>beryl-core> cd beryl-core-0.1.99.2
Beryl>beryl-core> ./configure --prefix=/usr --with-x
Beryl>beryl-core> make all
Beryl>beryl-core> sudo make install
Beryl>beryl-core> cd ..
Beryl> Install beryl-plugins
Beryl>Beryl-plugins> Install librsvg
Beryl>Beryl-plugins>librsvg> Install FreeType
Beryl>Beryl-plugins>librsvg>FreeType> tar -jxvf freetype-2.1.10.tar.bz2
Beryl>Beryl-plugins>librsvg>FreeType> cd freetype-2.1.10
Beryl>Beryl-plugins>librsvg>FreeType> vi include/freetype/config/ftoption.h
Beryl>Beryl-plugins>librsvg>FreeType> Uncomment '#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER'
Beryl>Beryl-plugins>librsvg>FreeType> ./configure --prefix=/usr
Beryl>Beryl-plugins>librsvg>FreeType> make all
Beryl>Beryl-plugins>librsvg>FreeType> sudo make install
Beryl>Beryl-plugins>librsvg>FreeType> cd ..
Beryl>Beryl-plugins>librsvg> tar-jxvf librsvg-2.14.4.tar.bz2
Beryl>Beryl-plugins>librsvg> cd librsvg-2.14.4
Beryl>Beryl-plugins>librsvg> ./configure --prefix=/usr --with-x
Beryl>Beryl-plugins>librsvg> make all
Beryl>Beryl-plugins>librsvg> sudo install
Beryl>Beryl-plugins>librsvg> cd ..
Beryl>Beryl-plugins> tar -zxvf beryl-plugins-0.1.99.2.tar.bz2
Beryl>Beryl-plugins> cd beryl-plugins-0.1.99.2
Beryl>Beryl-plugins> ./configure --prefix=/usr
Beryl>Beryl-plugins> make all
Beryl>Beryl-plugins> sudo make install
Beryl>Beryl-plugins> cd ..
Beryl> Install Beryl-manager
Beryl>beryl-manager> tar -jxvf beryl-manager-0.1.99.2.tar.bz2
Beryl>beryl-manager> cd beryl-manager-0.1.99.2
Beryl>beryl-manager> ./configure --prefix=/usr
Beryl>beryl-manager> make all
Beryl>beryl-manager> sudo make install
Beryl>beryl-manager> cd ..
Beryl> Install beryl-settings-simple
Beryl>beryl-settings-simple> tar -jxvf beryl-settings-simple-0.1.99.2.tar.bz2
Beryl>beryl-settings-simple> cd beryl-settings-simple-0.1.99.2
Beryl>beryl-settings-simple> ./configure --prefix=/usr
Beryl>beryl-settings-simple> make all
Beryl>beryl-settings-simple> sudo make install
Beryl>beryl-settings-simple> cd ..
Beryl>Install beryl-settings
Beryl>beryl-settings> tar -jxvf beryl-settings-0.1.99.2.tar.bz2
Beryl>beryl-settings> cd beryl-settings-0.1.991.2
Beryl>beryl-settings> ./configure --prefix=/usr
Beryl>beryl-settings> make all
Beryl>beryl-settings> sudo make install
Beryl>beryl-settings> cd ..
Beryl> Install beryl-vidcap
Beryl>beryl-vidcap> Install seom
Beryl>beryl-vidcap>seom> Install yasm
Beryl>beryl-vidcap>seom>yasm> tar -zxvf yasm-0.5.0.tar.gz
Beryl>beryl-vidcap>seom>yasm> cd yasm-0.5.0
Beryl>beryl-vidcap>seom>yasm> ./configure --prefix=/usr
Beryl>beryl-vidcap>seom>yasm> make all
Beryl>beryl-vidcap>seom>yasm> sudo make install
Beryl>beryl-vidcap>seom>yasm> cd ..
Beryl>beryl-vidcap>seom> !!! Note: following way does not work. Seom was
actually installed from TGZ package.
Beryl>beryl-vidcap>seom> svn co svn://dbservice.com/big/svn/seom/trunk seom1
Beryl>beryl-vidcap>seom> cd seom
Beryl>beryl-vidcap>seom> ./configure --prefix=/usr
Beryl>beryl-vidcap>seom> make all
Beryl>beryl-vidcap>seom> sudo make install
Beryl>beryl-vidcap>seom> cd ..
Beryl>beryl-vidcap> tar -jxvg beryl-vidcap-0.1.99.2.tar.bz2
Beryl>beryl-vidcap> cd beryl-vidcap-0.1.99.2
Beryl>beryl-vidcap> In Makefile make PREFIX=/usr
Beryl>beryl-vidcap> make all
Beryl>beryl-vidcap> sudo make install
Beryl>beryl-vidcap> cd ..
Beryl> Install beryl-settings-bindings
Beryl>beryl-settings-bindings> Install Pyrex
Beryl>beryl-settings-bindings/Pyrex> tar -xvf Pyrex-0.9.5.tar.gz
Beryl>beryl-settings-bindings/Pyrex> cd Pyrex-0.9.5
Beryl>beryl-settings-bindings/Pyrex> sudo python setup.py install
Beryl>beryl-settings-bindings/Pyrex> cd ..
Beryl>beryl-settings-bindings> tar -jxvf beryl-settings-bindings-0.1.99.2.tar.bz2
Beryl>beryl-settings-bindings> cd beryl-settings-bindings-0.1.99.2
Beryl>beryl-settings-bindings> ./configure --prefix=/usr
Beryl>beryl-settings-bindings> make all
Beryl>beryl-settings-bindings> sudo make install
Beryl>beryl-settings-bindings> cd ..
Beryl> Install pygtk
Beryl>pygtk> Install pygobject
Beryl>pygtk>pygobject> tar -xvf pygobject-2.12.3.tar.bz2
Beryl>pygtk>pygobject> cd pygobject-2.12.3
Beryl>pygtk>pygobject> ./configure --prefix=/usr
Beryl>pygtk>pygobject> make all
Beryl>pygtk>pygobject> sudo make install
Beryl>pygtk>pygobject> cd ..
Beryl>pygtk> tar -jxvf pygtk-2.10.3.tar.bz2
Beryl>pygtk> cd pygtk-2.10.3
Beryl>pygtk> ./configure --prefix=/usr
Beryl>pygtk> make all
Beryl>pygtk> sudo make install
Beryl>pygtk> cd ..
Beryl> Install pycairo
Beryl>pycairo> Install cairo
Beryl>pycairo>cairo> Install cairo PNG backend (libpng)
Beryl>pycairo>cairo>libpng> tar -xvf libpng-1.2.15.tar.bz2
Beryl>pycairo>cairo>libpng> cd libpng-1.2.15
Beryl>pycairo>cairo>libpng> ./configure --prefix=/usr
Beryl>pycairo>cairo>libpng> make all
Beryl>pycairo>cairo>libpng> sudo make install
Beryl>pycairo>cairo>libpng> cd ..
Beryl>pycairo>cairo>tar -xvf cairo-1.2.4.tar.gz
Beryl>pycairo>cairo>cd cairo-1.2.4
Beryl>pycairo>cairo>./configure --prefix=/usr --with-x
Beryl>pycairo>cairo>make all
Beryl>pycairo>cairo>sudo make install
Beryl>pycairo>cairo>cd ..
Beryl>pycairo>tar -xvf pycairo-1.2.2.tar.bz2
Beryl>pycairo>cd pycairo-1.2.2
Beryl>pycairo>./configure --prefix=/usr
Beryl>pycairo>make all
Beryl>pycairo>sudo make install
Beryl> Install emerald
Beryl>emerald> Install libwnck
Beryl>emerald>libwnck> tar -jxvf libwnck-2.14.3.tar.bz2
Beryl>emerald>libwnck> cd libwnck-2.14.3
Beryl>emerald>libwnck> ./configure --prefix=/usr --with-x
Beryl>emerald>libwnck> make all
Beryl>emerald>libwnck> sudo make install
Beryl>emerald>libwnck> cd ..
Beryl>emerald> tar -jxvf emerald-0.1.99.2.tar.bz2
Beryl>emerald> cd emerald-0.1.99.2
Beryl>emerald> ./configure --prefix=/usr
Beryl>emerald> make all
Beryl>emerald> sudo make install
Beryl>emerald> cd ..
Beryl> Install emerald-plugins
Beryl>emerald-plugins> tar -jxvf emerald-themes-0.1.99.2.tar.bz2
Beryl>emerald-plugins> cd emerald-themes-0.1.99.2
Beryl>emerald-plugins> ./configure --prefix=/usr
Beryl>emerald-plugins> make all
Beryl>emerald-plugins> sudo make install
Beryl>emerald-plugins> cd ..
Beryl> Install aquamarine
Beryl>aquamarine> tar -jxvf aquamarine-0.1.99.2.tar.bz2
Beryl>aquamarine> cd aquamarine-0.1.99.2
Beryl>aquamarine> ./configure --prefix=/usr
Beryl>aquamarine> make all
Beryl>aquamarine> sudo make install
Beryl>aquamarine> cd ..
|
|
|
|
|
Настройка автозапуска программ в KDE и GNOME (доп. ссылка 1) |
Автор: cyberciti.biz
[комментарии]
|
| В любом оконном менеджере достаточно прописать запуск программы в ~/.xinitrc
например, дописать в конец:
/usr/bin/xawtv &
В KDE:
Для автозапуска достаточно создать символическую ссылку в директории ~/.kde/Autostart
Например:
$ cd ~/.kde/Autostart
$ ln -s $(which xawtv) .
$ ln -s $(which mozilla-thunderbird) .
В GNOME:
Меню "Open control center - Sessions - Startup Programs."
Или добавить программу в файл ~/.gnome2/session-manual
|
|
|
|
|
Как принудительно выключить LCD экран ноутбука (доп. ссылка 1) |
[комментарии]
|
| При включенном в ядре ACPI:
xset dpms force off
(включится после нажатия любой клавиши)
Для выключения по таймауту:
/etc/X11/xorg.conf
Section "Monitor"
Option "DPMS"
# Option "DPMS" "TRUE" # для закрытого nvidia драйвера
Section "ServerLayout"
Option "OffTime" "20" # таймаут 20 минут
|
|
|
|
|
Как в Linux решить проблему конфликта тачпада и мыши на ноутбуке (доп. ссылка 1) |
Автор: rmcgowan
[комментарии]
|
| Некоторые проблемы совместной работы мыши и Touchpad можно решить,
добавив параметр загрузки ядра:
psmouse.proto=imps
Ниже пример настройки Touchpad и внешней мыши для X.Org:
# Тачпад
Section "InputDevice"
Driver "synaptics"
Identifier "Mouse2"
Option "Device" "/dev/psaux"
Option "Edges" "1900 5400 1800 3900"
Option "Finger" "25 30"
Option "MaxTapTime" "20"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.02"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.0010"
EndSection
# USB мышь
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
EndSection
Section "ServerLayout"
....
InputDevice "Mouse2" "CorePointer"
InputDevice "Mouse1" "SendCoreEvents"
EndSection
|
|
|
|
|
XDM с альтернативным рабочим столом. |
Автор: Skif (Чижиков Владимир)
[комментарии]
|
| Часто вижу на разных форумах вопрос, а как сделать автоматическую загрузку blackbox/windowmaker/etc
из менеджера дисплеев разряда xdm потипу kde из kdm:
xdm -session /usr/X11R6/bin/blackbox
И тогда каждому авторизированному пользователю будет запущен после входа blackbox
ля старта xdm при загрузке машины:
[/etc/ttys]
root@fbsd1 /root :less /etc/ttys | grep xdm
.....
ttyv8 "/usr/X11R6/bin/xdm -nodaemon -session /usr/X11R6/bin/blackbox" xterm off secure
.....
или при помощи скрипта помещенного либо в
/usr/local/etc/rc.d/
либо в
/usr/X11R6/etc/rc.d/
вида:
[xdm.sh]
#!/bin/sh
X=Xorg
case $1 in
start)
echo "XDM starting now... "
/usr/X11R6/bin/xdm -session /usr/X11R6/bin/blackbox
echo "XDM started!"
;;
stop)
echo -n "XDM stopping now... "
killall -9 xdm
killall -9 $X
echo -n "XDM stopped!"
;;
*)
echo -n "Use start|stop parametrs! Error!"
exit 64
;;
esac
|
|
|
|
|
Как изменить разрешение в X'ах без перезапуска X-сервера (доп. ссылка 1) |
Автор: Steve
[комментарии]
|
| Смотрим список поддерживаемых разрешений:
xrandr
Выбираем одно из них:
xrandr --size 800x600
При необходимости указываем и частоту развертки:
xrandr -s 1024x768 -r 85
Автоматически задействовать все устройства вывода
xrandr --auto
Подключение второго монитора, без переконфигурации XOrg:
xrandr -output VGA -auto -left-of LVDS
После отключения второго монитора
xrandr -output VGA -off
Другие примеры:
xrandr --output DVI-0 --off
xrandr --output VGA --auto --right-of LVDS
xrandr --output DVI-0 --mode 0
xrandr --addmode S-video 800x600
xrandr --output S-video --mode 800x600
|
|
|
|
|
Как включить Windows раскладку клавиатуры в XWindow (точка и запятая, вместо ? и /) ? |
[комментарии]
|
| Чтобы при наборе русских символов, при нажатии на клавишу с вопросом, рядом с правым Shift,
печатались точка и запятая, вместо вопроса и слэша, в Section "InputDevice"
файла конфигурации XOrg или XFree86
меняем:
Option "XkbLayout" "us,ru"
на
Option "XkbLayout" "us,ru(winkeys)"
или просто добавляем (запятую не пропустите):
Option "XkbVariant" ",winkeys"
|
|
|
|
|
Как использовать графические диалоговые окна в shell скриптах (доп. ссылка 1) |
[обсудить]
|
| Выбор Yes или No (результат в $?, 0 - yes, 1 - no, 255 - закрыто окно), "0 0" -
размер окна по умолчанию:
Xdialog --title "Title" --yesno "Test or not" 0 0
Вывести окно с текстом (60 - это таймаут для отображения окна):
Xdialog --msgbox "text splitting\ntest..." 0 0
Xdialog --infobox "text splitting\ntest..." 0 0 60
Запросить текст от пользователя, по умолачнию выдать test:
user_text=`echo "test" | Xdialog --editbox "-" 0 0`
Показать, что выполнено 15% работы (--progress принимает накопительные данные)
(новые значения посылаются через stdin, как только будет больше 100 окно закроется):
Xdialog --gauge "test" 0 0 15
Xdialog --progress "test" 0 0 100
Ввод строки от пользователя (введенная строка помещается в stdout):
Xdialog --inputbox "test" 0 0 "string"
Ввод логина и пароля (в stduot - login/password):
Xdialog --password --2inputsbox "test" 0 0 "Login" "guest" "Password" ""
Выбор элемента из списка:
Xdialog -combobox "test" 0 0 "Test1" "Test2" "Test3"
Выбор диапазона (от 1 до 10):
Xdialog -rangebox "test" 0 0 1 10
Показывать в окне растущий хвост файла file.txt:
Xdialog --tailbox file.txt 0 0
Xdialog --logbox file.txt 0 0
Выбор файла или директории
Xdialog --fselect def_file.txt 0 0
Xdialog --dselect def_dir 0 0
Показать 5 июня на календаре
Xdialog --calendar "test" 0 0 5 6 2005
|
|
|
|
|
Разные раскладки клавиатуры для каждого пользователя в X Window (доп. ссылка 1) |
Автор: madskull
[обсудить]
|
| Создаем файл .Xkbmap и кладем его в свою домашнюю директорию (например: /home/mitya ).
Внутри файла пишем, например:
-option grp:ctrl_shift_toggle,grp:switch,grp_led:scroll us,ru
|
|
|
|
|
Как добавить Windows TrueType шрифты для xfs в X Window |
[комментарии]
|
| - Копируем ttf шрифты ~/.font, переходим в директорию ~/.font
- Запускаем: ttmkfdir > fonts.scale
- Запускаем: mkfontdir
- Запускаем: fc-cache ./
- Прописываем ~/.font в /etc/X11/fs/config (список "catalogue") или запускаем:
/usr/sbin/chkfontpath --add ~/.font
- Запускаем: xset fp rehash
- Запускаем: service xfs restart
- Проверяем, новые шрифты должны быть показаны в выводе утилит fc-list,
xlsfonts, xfontsel, kcharselect, gfontsel и chkfontpath;
В KDE можно использовать: "Control Center/System/Font Installer".
В OpenOffice для добавления шрифтов нужно использовать утилиту spadmin.
Для AbiWord шрифты нужно скопировать в /usr/share/abisuite/AbiSuite/fonts и запустить
mkfontdir; ttmkfdir > fonts.scale
При наличии проблем с антиалиасингом, необходимо пересобрать библиотеку FreeType, активировав
"#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER" в include/freetype/config/ftoption.h
В AltLinux рекомендуется поставить пакеты freefont-fonts-ttf, freetype и ms-fonts-ttf.
Другой способ добавления шрифтов:
Копируем шрифты например в директорию, ~/fonts
В ~/.xinitrc добавляем
xset fp+ $HOME/fonts/
|
|
|
|
|
Частота развертки в X.org (100hz не фантастика)
|
Автор: Казаков Александр aka classic
[комментарии]
|
| Пример как повысить частоту для режима 1152х864 с 75 до 100 Hz
И так для начала запустим утилиту входящую в состав xorg:
gtf 1152 864 100
Она выдаст строчку, которую на скопировать в /etc/X11/xorg.conf в section monitor:
Section "Monitor"
Identifier "iiyama"
VendorName "1152x864_100.00"
ModelName "1152x864@100.00 Hz"
# 1152x864 @ 100.00 Hz (GTF) hsync: 91.50 kHz; pclk: 143.47 MHz
Modeline "1152x864_100.00" 143.47 1152 1232 1360 1568 864 865 868 915 -HSync +Vsync
Option "DPMS"
EndSection
Теперь идем в section "Screen" и редактируем:
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "iiyama" # Монитор, который определили выше
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1152x864_100.00" # Режим определенный выше строчкой Modeline EndSubSection
EndSection
Рестартуем "иксы".
|
|
|
|
|
Как избавиться от линковки GNOME приложения с лишними библиотеками (доп. ссылка 1) |
[комментарии]
|
| Собираем по умолчанию:
readelf -d /usr/local/bin/gnome-terminal |grep NEEDED | wc -l
52 - требуется 52 библиотеки.
Устанавливаем флаг --as-needed:
export CFLAGS = "-Os -s -Wl,--as-needed"
После пересборки, требуется 21 реально необходимая для работы библиотека.
|
|
|
|
|
Настройка цветовой гаммы в rxvt |
[комментарии]
|
| В ~/.Xdefaults:
Rxvt*background: Black
Rxvt*foreground: #D0D0D0
Rxvt*font:-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-koi8-r
!Rxvt*sсrollBar_right: True
Rxvt*sсrollBar:False
Rxvt*saveLines: 500
Rxvt*color0: #000000
Rxvt*color1: #aa0000
Rxvt*color2: #00aa00
Rxvt*color3: #aa5500
Rxvt*color4: #0000aa
Rxvt*color5: #aa00aa
Rxvt*color6: #00aaaa
Rxvt*color7: #aaaaaa
Rxvt*color8: #555555
Rxvt*color9: #ff5555
Rxvt*color10: #55ff55
Rxvt*color11: #ffff55
Rxvt*color12: #5555ff
Rxvt*color13: #ff55ff
Rxvt*color14: #55ffff
Rxvt*color15: #ffffff
Другой вариант:
Rxvt*color0: #000000
Rxvt*color1: #fe0b12
Rxvt*color2: #00d900
Rxvt*color3: #ff7916
Rxvt*color4: #000095
Rxvt*color5: #aa00aa
Rxvt*color6: #00aaaa
Rxvt*color7: #e2e2e2
Rxvt*color8: #555555
Rxvt*color9: #aa3838
Rxvt*color10: #55ff55
Rxvt*color11: #ffff55
Rxvt*color12: #5555ff
Rxvt*color13: #ff55ff
Rxvt*color14: #bebebe
Rxvt*color15: #ffffff
Для активации изменений: xrdb -merge ~/.Xdefaults
Для rxvt-unicode (urxvt) нужно поменять "Rxvt*" на "URxvt*",
для aterm (использую его) - "Rxvt*" на "Aterm*".
|
|
|
|
|
Увеличение скорости работы Firefox |
Автор: Ilya Voronin
[комментарии]
|
| Пишем в адресной строке 'about:config', в полученном списке находим следующие параметры
(можно воспользоваться поиском):
network.http.pipelining
network.http.proxy.pipelining
И выставляем их в 'true'. По умолчанию браузер делает запросы к серверу последовательно,
а при включении pipelining все запросы будут выполнены параллельно.
Затем параметр:
network.http.pipelining.maxrequests
Выставляем его например в '32'. Это число - максимальное кол-во параллельно выполняемых запросов.
И последний:
nglayout.initialpaint.delay
Выставляем в '0'. (Скорей всего такого параметра ещё не существует, - нажимаем
правую кнопку мышки и
выбираем в меню 'New'=>'Integer'. Вводим имя - 'nglayout.initialpaint.delay' и
присваиваем значение '0'). Это число определяет задержку перед отображением полученных данных.
|
|
|
|
|
|
Как использовать доп. клавиши на ноутбуке/клавиатуре |
[комментарии]
|
| Вооружаемся man xev и man xmodmap и привязываем действия к cпецклавишам:
* Fn+F2 - mute
* Fn+F3 - Уменьшить звук
* Fn+F4 - Прибавить звук
* Кнопка слева от кнопки питания - запустить gnome-terminal
* Кнопка справа от кнопки питания - запустить xfmail
Определяем коды символов, запустив xev:
* Fn+F2 - 160
* Fn+F3 - 174
* Fn+F4 - 176
* кн. слева - 178
* кн. справа - 236
Прописываем имена комбинаций через xmodmap ("setxkbmap `cat file`" или "xmodmap file"):
vi /.xmodmaprc (/.Xmodmap, /etc/X11/xinit/Xmodmap, /.Xkbmap, /etc/X11/xinit/Xkbmap)
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 178 = XF86HomePage
keycode 236 = XF86Mail
Настраиваем WM для запуска программ при нажатии на клавиши (на примере icewm):
vi ~/.icewm/keys
key "XF86AudioLowerVolume" aumix -v -5
key "XF86AudioRaiseVolume" aumix -v +5
key "XF86AudioMute" aumix -v 0
key "XF86HomePage" gnome-terminal
key "XF86Mail" xfmail
|
|
|
|
|
Как изменить частоту обновления экрана через modeline для XFree86 |
Автор: vvk
[комментарии]
|
| From: Roman Blyshchyk (2:450/206.9)
> Modeline "mode_name" D H1 H2 H3 H4 V1 V2 V3 V4 Flags
Запускаешь утилитку xvidtune, котоpая должна быть в иксах. Далее, пишешь в
XF86Config-4 в pазделе монитоp
стpочку моделайн, где mode_name = 1280x1024, под D оставляешь пока место.
H1 - 1280, H2 - HSyncStart, H3 - HSyncEnd, H4 - HTotal
V1 - 1024, V2 - VSyncStart, V3 - VSyncEnd, V4 - VTotal
, где всякие синки беpуться из xvidtune.
А D считается так 100(тpебуемая частота)*H4*V4/100000(миллион), окpугляешь до сотых.
Flags - +hsync +vsync
|
|
|
|
|
Работа видеокарты radeon 9200 в XFree-4.3.X (доп. ссылка 1) |
Автор: dawnshade
[обсудить]
|
| Section "Device"
Identifier "Card0"
Driver "radeon"
VendorName "ATI Technologies Inc"
BoardName "ATI Radeon"
ChipID 0x514D
BusID "PCI:1:0:0"
EndSection
|
|
|
|
|
|
Как запустить XWindow приложение с удаленной машины. |
[комментарии]
|
| Локальная машина:
xhost +remote.host.ru
Удаленная машина:
export DISPLAY=local.host.ru:0.0
Если для ssh включен X11Forwarding, то DISPLAY=localhost:10.0 будет уже прописан:
ssh -X host
Проверьте настройки сервера (/etc/openssh/sshd_config)
X11Forwarding yes
и клиента (ssh_config):
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
Кроме единичных приложений, можно сразу удаленно запустить GNOME, выполнив команду:
gnome-session
|
|
|
|
|
|
Рекомендации по вызову xterm и установке шрифтов |
[обсудить]
|
| xterm -geometry 60x40 +sb -bg black -fg white -fn -*-*-medium-r-*--14-*-*-*-*-*-koi8-r
xterm -bg black -cr green -fg white -C -fn 9x15 -sl 500
xterm rxvt -bg black -cr green -fg white -C -fn 9x15 -sl 500 -tn xterm -geometry 90x45
xterm -T "Запуск приложения в xterm" -e /usr/bin/prog
Мне нравится использовать rxvt и gnome-terminal
|
|
|
|
|
|
|
Как избавится от падения NVidia драйвера при переключении режимов. |
[обсудить]
|
| В XF86Config-4, в Section "Device" добавить строку:
Option "NvAgp" "1"
|
|
|
|
|
Как насторить работу Mouse Wheel. |
[комментарии]
|
| gpm -t imps2 или в /etc/sysconfig/mouse:
MOUSETYPE=imps2
WHEEL=yes
ln -s /dev/psmouse /dev/mouse или ln -s /dev/psaux/ /dev/mouse
В XF86Config-4 в Section "InputDevice":
Identifier "Mouse"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/mouse"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
|
|
|
|
|
Как сделать скриншот всего экрана X Window |
[обсудить]
|
| В консоли, используя пакет ImageMagic:
import -display localhost:0.0 -window root screenshot.jpg
|
|
|
|
|
|
|
Создание глобальных горячих клавиш в GNOME (доп. ссылка 1) |
Автор: Андрей Синицын
[комментарии]
|
| Назначение собственных "горячих клавиш" для выполнения каких-либо команд в GNOME.
Есть небольшой апплет, доступный через меню GNOME
"Система" > "Параметры" > "Комбинации клавиш клавиатуры"
"Desktop" > "Preferences" > "Keyboard Shortcuts"
который позволяет назначить горячие клавиши для некоего набора предопределенных действий.
Используя этот апплет вы можете, например, назначить сочетание "Ctrl - Alt - t"
для запуска эмулятора терминала.
Но поскольку список фиксирован, вы не сможете добавить в него новое действие.
А вы хотите, к примеру, назначить сочетание "Ctrl - Alt - e" для запуска Emacs.
Назначить произвольные горячие клавиши, можно воспользовавшись gconf-editor
Откройте терминал и наберите:
user@desktop:~$ gconf-editor
Откроется редактор настроек GNOME. С его помощью мы должны сделать две вещи:
* Определить новую команду
* Определить сочетание клавиш для выполнения этой команды
Перейдите в раздел
"apps" > "metacity" > "keybinding_commands"
В правой панели выберите пункт "command_1" и измените его значение на /usr/bin/emacs
Теперь нам необходимо задать клавиатурную комбинацию для этой команды.
Перейдите в раздел
"apps" > "metacity" > "global_keybindings".
Выберите пункт "run_command_1" и измените его значение на <control><alt>e.
Вуаля! Нажимаем Ctrl - Alt -e и запускается Emacs
|
|
|
|
|
Установка ATI Catalyst 8.5 в Ubuntu 8.04 (доп. ссылка 1) |
Автор: Pronix
[комментарии]
|
| 1. Скачать ati-driver-installer-8-5-x86.x86_64.run
2. В консоли выполнить для синхронизации списка пакетов, доступных в репозиториях:
sudo apt-get update
Затем, установить пакеты, необходимые для сборки модуля ядра из исходных
текстов и создания deb пакета:
sudo apt-get install build-essential fakeroot dh-make debhelper debconf libstdc++5 dkms linux-headers-$(uname -r)
3. В консоли запускаем инсталлятор драйвера в режиме создания пакетов:
sudo sh ati-driver-installer-8-5-x86.x86_64.run --buildpkg Ubuntu/8.04
4. Теперь нужно занести в черный список драйвер fglrx из репозитория Ubuntu, выполняем
sudo gedit /etc/default/linux-restricted-modules-common
и в строке "DISABLED_MODULES" добавляем "fglrx"
получаем строку:
DISABLED_MODULES="fglrx"
сохраняем файл
5. далее в консоли устанавливаем подготовленные пакеты с драйвером:
sudo dpkg -i xorg-driver-fglrx_8.493*.deb fglrx-kernel-source_8.493*.deb fglrx-amdcccle_8.493*.deb
6. Перезагружаем X сервер.
7. проверяем:
$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: Radeon X1900 Series
OpenGL version string: 2.1.7537 Release
PS: все вышесказанное проверялось на i386 конфигурации с видеокартой X1900,
для amd64 возможны небольшие отличая в установке.
Оригинал: http://pronix.isgreat.org/news.php?item.86.5
|
|
|
|
|
Что делать если X Server стартует но KDE не загружается |
Автор: Владислав
[комментарии]
|
| Проблема:
Если запускаем XDM то все работает нормально,
но если запускаем startx то X-Server стартует но KDE не загружается (висит),
если убить X-Server (Ctrl+Alt+BackSpace) то остаются висеть процессы кkde*,
если теперь запустить чистый X-Server (X) то продолжается загрузка Kde
Решение в моем случае:
в файле /etc/X11/xinit/xinitrc.kde строку
startkde
заменить на
exec startkde >& ~/kde.error.log
после этого работает нормально
Объяснение:
когда стартует X-Server то видимо блокируется стандартный поток ошибок и если какая-то
программа хочет в него чего-то вывести она просто подвисает (наверно это глюк)
|
|
|
|
|