KsI-wiki online documents

Windows-xserver

Материал из Ksimute

Перейти к: навигация, поиск
Коробанов Сергей
Ноябрь 21, 2007

Поехал я в "командировку".
Недалеко поехал в другой конец города, но застрял на 1,5 недели.
Телефон сделали, WAN есть но комп тормозит зверски. Проще повеситься, чем за ним работать.
600 celeron 256 мб. РАМ. И это в 2007-м году...

Раньше он пакеты кидал, теперь трудится на благо России :) моим десктопом в командировке.
Засетапленно на него WinXP

Лагает просто жесть!

Winamp 30% CPU Кушает :(.
Firefox 40-50 секунд запускается.

Вообщем нормальные люди так НЕ живут. Это существование какое-то, а не жизнь

Надо терминалом эту рухлядь сделать.
Нет преграды патриотам!


Вариантов реализации мало :( посмотрим, что можно поставить:
  1. VNC - VNС рулит, базару нету, пользовали и не один десяток раз, ну его лесом. Он тормозной.
  2. Xserver под windows экспортировать дисплей с unix машины и запускать всякие софтины.
    Кстати для секурности будем это делать через ssh. Либо для злостной секурности поднять туннель между машинами (читай статейку про OpenVpn)
    Супер-мега-шифрованный Туннель в моем случае поднимать не стоит CPU итак слабенький :( SSH есть. Его хватит.
  3. Remotelyanywhere Люди говорят, что в нем можно получить удаленный рабочий стол через
    web-интерфейс Java/ActiveX/просто картинками+JS и первые два вполне шустро работают
    Я лично RemotelyAnywhere не пробовал. Но IMHO Java или ActiveX будет очень медленно работать.

Содержание

Ставим X Server под windows.

X Серверов существует несколько, причем есть и коммерческие.
Ищем свободно распространяемый.
<A HREF="http://x.cygwin.com/">http://x.cygwin.com/</A>
Качаем инсталлятор, примерно 400 к. Он из инета еще пакетиков потянет.
Выбираем, что инсталлировать (я выбрал Только X11 (c зависимостями разумеется).)

Ждемс, мануалы почитываем...

Немного инфы из Интернета.

(откуда не помню, если найдется автор, пропишу ©)

Т.к. речь У нас идет о соединении Widows-unix, все немного нетривиально просто -
стандартно весь графический интерфейс (кроме высокоскоростной OpenGL-отрисовки, кажется)
гонится через сетевой протокол X-сервера.

Отсебятина:
(было бы соединение unix-windows, Поднял бы rdesktop и не заморачивался. Работы то на 5 минут...)

На машине, на которой вы сидите, прописываете

$xhost + IP

где IP - это адрес(или dns-имя) машины, X-приложениям которой разрешается к вашему X-серверу коннектиться.

потом на той машине, с которой вы хотите графическое приложение -

export DISPLAY=SERV_IP:0.0

Где SERV_IP - адрес(или dns-имя) вашей машины (на которой X-ы, видюха и т.п.)

0.0 замените на номер X-сервера

(значение локальной переменной DISPLAY - обычно оно именно :0.0)
И все - любое X-приложение должно запускаться.
Исключения и глюки - Все, что связанно с быстрой графикой, аппаратным ускорением и т.п.,
очевидно, либо будет тормозить, либо вообще работать не будет.

отсебятина:
vlc player играл,mplayer тоже. Разумеется без звука :) но с нормальной скорость.

P.S. канал у меня 100 мегабит. Вот только quake не запускал. :)


Поставили cygwin/X, запускаем:

Cygwin/X comes with a file called startxwin.bat that launches an X Server, a terminal, and a window manager.

Находим батник.

лежит в:
C:\cygwin\usr\X11R6\bin>

Запускаем startxwin.bat.
Видим в трее X. И консолька стартанула xterm т.е.

Идем на машину на которой linux. ssh-client использую putty.

Экспортируем дисплей:
ksi$ export DISPLAY=192.168.11.253:0.0

У себя в консоли (консоль которая не windows CMD а cygwinx - овская xterm)

прописываем:
ksi@nowhere ~
$ xhost + 192.168.25.6
192.168.25.6 being added to access control list

Запускаем firefox на linux хосте и видим вывод у себя в Windows.
Скорость порадовала. Думал будет лагать отображение окошек, а все о.к.
Это не VNC тормозная :) и трафик шифрованный идет.
открыли kmail,firefox c десятком не самых легкий сайтов, смотрим сколько памяти откушалось на "клиенте":
25 Mb! красота! При локальном запуске один firefox 62 mb отъедал (p.s. а IE в районе 25)
а про CPU ресурсы даже разговора нет :)
Жизнь налаживается!

Бенчмарки делать не буду, т.к. неактуально это мне.
Работать стало комфортно – это основной бенчмарк :)

Странно, но у меня в putty enable X connections forwarding не стояло, но все равно заработало...

Поставил галочку, проверил. Абсолютно параллельно включена ли эта опция в putty или нет.

Теперь разруление небольших траблов и прикручивание русской раскладки клавиатуры:

Общий клипборд:

Между Windows и CygwinX есть общий клипборд, правда работает через прослойку xwinclip.

и работает только для текстовой информации.

The X Window System, and thus Cygwin/X, uses its own internal clipboard system that is distinct from the clipboard system used by Windows. Copying and pasting text between these two clipboard systems requires a clipboard integration program that watches for updates to either clipboard and copies data between them when either one is updated.

Смотрим startxwin.bat:
%RUN% XWin -multiwindow -clipboard -silent-dup-error

Значит, по-умолчанию стартует встроенный xwinclip.

Ахтунг! косяк! Не работает клипборд при копировании русских букв из X приложения в Windows.

Наоборот работает.

Русская раскладка:

отсутствует русская раскладка, но это чинится :)

читаем FAQ по cygwin пункт 4.1.1:

4.1.1. How do I use a non-U.S. keyboard layout? Some keyboard layouts are configured according to the Windows keyboard settings. For these layouts no special change is needed. For all other layouts there is the possibility to configure the layout via commandline options. The mainoption for changing the layout is -xkblayout countrycode where countrycode is in most cases the 2 character code which also represents the country in internet adresses (e.g. Australia = au, Deutschland = de, France = fr, Japan = jp) Other options for tweaking the XKB layout are -xkbmodel,-xkbvariant, -xkboptions and -xkbrules. These are the counterparts for the similar named options known from the XF86Config file.


Все просто:
$ setxkbmap -layout "us,ru" -variant "winkeys" -option "grp:ctrl_shift_toggle"

И мы заимели переключатор клавиатуры.
Ну не прописывать же эти строчки каждый раз в терминале...
пропишем в startxwin.bat:

%RUN% xhost + 192.168.25.6
%RUN% setxkbmap -layout "us,ru" -variant "winkeys" -option "grp:ctrl_shift_toggle"

Теперь следующий косяк - правим маленькие буквы:



читаем доку:
<A HREF="http://linuxshop.ru/lib/HowTo/TT-Debian.html">Мини-HOWTO: Настройка шрифтов

TrueType Fonts в Debian</A>


Разрешение экрана измеряется в точках на дюйм (dots per inch (dpi)), что на самом деле есть пиксели на дюйм. Эти единицы используются в двух наборах растровых шрифтов, поставляемых вместе с XFree86: fonts-75 используются на недорогих дисплеях с разрешением около 75 dpi, fonts-100 используются на мониторах среднего качества с разрешением примерно 100 dpi. К сожалению, в поставку не входят шрифты для высококачественных дисплеев с разрешением 120 dpi и выше.

В качестве конкретного примера можно привести экран с диагональю 13 дюймов (видимая область изображения 11.1 дюйма), выводит изображение размером 640x480 пикселей с разрешением 72.0 dpi. Это Не Совпадение. На самом деле многие web-страницы (и приложения фирмы Microsoft) рассчитаны на стандартные дисплеи с разрешением именно 72 dpi. Стандартная конфигурация XFree86 предполагает наличие дисплея с разрешением 75 dpi.

Однако в настоящее время никто уже практически не пользуется разрешением 640x480. Никто больше не использует 13-дюймовые мониторы. Так как видеокарты обогнали в своем развитии мониторы, то можно нередко встретить следующую конфигурацию: 19-дюймовый монитор (диагональ изображения больше 17 дюймов), 1600x1200 пикселей, разрешение - 117 точек на дюйм.

Если я запущу стандартную конфигурацию X, то все мои шрифты будут равны примерно 2/3 нормального размера. Не будет преувеличением сказать, что все шрифты будут уменьшены на порядок - большие шрифты (12 пунктов) станут средними (9). Средние шрифты (9) станут маленькими (6).

Существует три вещи, которые надо сделать, чтобы исправить это несоответствие.

  • указать X-серверу настоящее разрешение экрана (dpi 100):
    %RUN% XWin -multiwindow -clipboard -silent-dup-error -dpi 100
    

    Т.е. xserver будет использовать шрифты под разрешение 100 dpi.

  • подправить xfs.conf на использование сначала растровых шрифтов 100 dpi потом 75 dpi
  • Лучше всего вообще прописать ttf шрифты.

Меня устроило "-dpi 100".
Будет время пропишу ttf шрифты и дополню статью.

Вот только не знаю, перепишется ли startxwin.bat при обновлении cygwin впрочем ничего не мешает сделать свой батничек для старта Х-ов.
Вот собственно и все.

Ссылки

http://x.cygwin.com/
http://linuxshop.ru/lib/HowTo/TT-Debian.html - Мини-HOWTO: Настройка шрифтов TrueType Fonts в Debian