Курощение nomachine клиента - за шаг до ... ((1С, wine@Etersoft, freenx, NXClient for Windows))

Модераторы: dimbor, Модераторы разделов

Аватара пользователя
warlomak
Сообщения: 384
ОС: Ubuntu 10.04

Re: Курощение nomachine клиента - за шаг до ...

Сообщение warlomak »

Я на Ubuntu 8.04 Hardy 2.6.24 там вообще freenx в офф.репах нет, но у друзей "буржуев" есть, вот ссылки:
http://www.datakeylive.com/ubuntu не смотри, что там ubuntu, там исходники, причем афтар их периодически обновляет. По началу deb'ов небыло нормальных сам, собирал, сейчас из репа ставлю...

Альт мне не нравиться, слишком много лишнего руками править надо, а здесь быстренько поставил и экспериментируй :rolleyes:

p.s.
USER_X_STARTUP_SCRIPT :blush: Слона, то я и незаметил... :crazy:


p.s.s.
одно нравиться обсуждение freenx появилось ;-) Долго ждал...

НАРОД !!! Подключайтесь ведь многое еще не решено!!!
Спасибо сказали:

UTiM
Сообщения: 180
ОС: OpenSuse

Re: Курощение nomachine клиента - за шаг до ...

Сообщение UTiM »

dimbor писал(а):
22.05.2008 19:01
Хотя, у тебя freenx или где?

У меня freeNX 0.7.0-21 на OpenSUSE10.3 + 1c7.7 файловая на1.08 Wine@Etersoft

Сегодня ставил экстперименты с буфером. Похоже кодироку русских символов при передаче "сервер-клиент"портит именно сервер. Если у dimbor получится с NX-3.2.0 с freeNX тоже проблем не будет. (что поправить и как полнятно, а вот где?) А пока для любителей копировать с терминала ssh PuTTY + Xming. Можно и напрямую с иксами по XDMCP, но там слишком много лишних кнопок доступно у пользователей получается, не секъюрно как то.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

UTiM писал(а):
22.05.2008 23:47
У меня freeNX 0.7.0-21 на OpenSUSE10.3 + 1c7.7 файловая на1.08 Wine@Etersoft

Ага, точно такой же наборчик, как у меня, за исключением того, что у меня ALS4 на серваке.
Еще б узнать о версии NX и системной локали. А?
Походу, главная заморочка, что на разных операционках - разные глюки. И сравниваем здесь теперь теплое с круглым.
UTiM писал(а):
22.05.2008 23:47
Сегодня ставил экстперименты с буфером.

Не трудно сообщить, с моей сборкой клиента али нет?
Если с моей, то очень хотелось бы глянуть на получившийся winlog сессии при этих экспериментах.
UTiM писал(а):
22.05.2008 23:47
Похоже кодироку русских символов при передаче "сервер-клиент"портит именно сервер.

В том то и дело, что у меня до этого просто не доходит - Не может вся эта машинерия синхронизировать буфер винды и selections сессии при потере фокуса сессией.
Почему, сейчас выясняю.
UTiM писал(а):
22.05.2008 23:47
Если у dimbor получится с NX-3.2.0 с freeNX тоже проблем не будет. (что поправить и как полнятно, а вот где?)


С freeNX, собственно, и сейчас особых проблем нет. Допилить потом на досуге данный набор скриптов, для полного удовлетворения. Не горит.
От него не должно зависеть наличие двух основных проблем: буфер (nxagent, Nxwin.exe), иконки (nxproxy==libXComp.so). Потому как там одни сплошные параметры командной строки.
Спасибо сказали:

UTiM
Сообщения: 180
ОС: OpenSuse

Re: Курощение nomachine клиента - за шаг до ...

Сообщение UTiM »

dimbor писал(а):
23.05.2008 01:34
UTiM писал(а):
22.05.2008 23:47
У меня freeNX 0.7.0-21 на OpenSUSE10.3 + 1c7.7 файловая на1.08 Wine@Etersoft

Ага, точно такой же наборчик, как у меня, за исключением того, что у меня ALS4 на серваке.
Еще б узнать о версии NX и системной локали. А?
Походу, главная заморочка, что на разных операционках - разные глюки. И сравниваем здесь теперь теплое с круглым.

UTF-8 клиент 3.2.0-10 под винду. Пробовал различные вариаты, отчет письмом (много букв)

Да, в догонку письму. Под Linux те-же глюки с буфером только в обе стороны. Если в буфере (клиента или сервера - тут без разницы) русский UTF-8 - на противоположной стороне получаем "????" Если непосредственно из 1С (без "освежения" буфера) на противоположной стороне 1251. Если в буфере 1251 в виде "умляютов" в 1с вставляется читаемый текст.
Спасибо сказали:

SirYorik
Сообщения: 41

Re: Курощение nomachine клиента - за шаг до ...

Сообщение SirYorik »

> Под Linux те-же глюки с буфером только в обе стороны.

у меня такая схема:
копирование буфера обмена через посредника. решение состоит из серверной части и двух видов клиентских частей.

серверная часть - под каждой NX-сессией стартует типа демон, это баш скрипт который чекает состояние буфера иксов CLIPBOARD (1с в вайне с PRIMARY не работает), если есть изменения, то буфер сливается в файл ~/clipboard как есть с помощью xsel / xclipboard.
одновременно чекаются изменения самого файла ~/clipboard, если есть изменения, файл как есть загоняется в CLIPBOARD.
этот ~/clipboard - симлинк на файл в tmpfs, который в свою очередь создаётся скриптом-стартером 1с-ки приватным для юзера и с уникальным именем.

клиентские части для lin и win разные, но обе написаны на tcl\tk.
обе показывают тривиальное окно с галками "разрешить приём" и "разрешить передачу".
пока окно висит - буфер клиента работает с NX-сессией по русски.

tcl\tk - потому что только его функции корректно вставляли русский текст на последней стадии доставки буфера.
просто утилита xsel, на линукс клиенте, при схеме xsel-файл-доставка-xsel доставляет ровно теже кряки или вопросы.

lin клиент забирает и изменяет файл по scp. при установке клиента настраивается авторизация по ключу через ssh-copy-id. может работать как демон. внутри этого клиента происходит перекодировка utf8-cp1251

win клиент забирает по самбе (самба шарит хомяк каждого юзера как приватную шару \\serv\user.). клиент завёрнут в setup.exe и ставится вместе с клиентом NX.

эта схема корректна только для общения с софтом внутри вайна. с нативными линукс приложениями лишняя перекодировка портит текст. ну и таблицы естественно не копируются.

это пасётся на debian etch ; freenx из RX@Etersoft ; терминальные десктопы на JWM, смешное потребление памяти ; wine@etersoft + 1c 8.1 sql. нативный буфер обмена отключен в node.conf

из проблем есть непонятное отключение клиентов на линиях поверх впн (pptp или openvpn). какието ошибки сжатия, при типе линии ЛАН стабильность возрастает. есть прямая зависимость от машины на которой работает клиент. например подключение по pptp одно, рядом 2 машины, десктоп с тучей винсофта, и почти пустой по софту ноут. десктоп отваливается через 1-200 секунд. ноуту же пофиг.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

SirYorik писал(а):
24.05.2008 08:23
у меня такая схема:
копирование буфера обмена через посредника. решение состоит из серверной части и двух видов клиентских частей.

О как интересно!
Но очень не хочется идти по пути умножения сущностей, так-что буду дальше ковыряться с NX и его буфером до победного...
SirYorik писал(а):
24.05.2008 08:23
1с в вайне с PRIMARY не работает

Спасибо за потдтверждение сего факта. Пару-тройку часов исследований мне сэкономили. Как раз собирался выяснять, почему 1с ведет себя не так, как notepad.exe, а правильнее. Т.е. при вставке текста из виндовс-буфера, в 1с кодировка не корежится, в остальном wine - да.
SirYorik писал(а):
24.05.2008 08:23
эта схема корректна только для общения с софтом внутри вайна. с нативными линукс приложениями лишняя перекодировка портит текст. ну и таблицы естественно не копируются.

По исходникам NX пока ясно, что если даже починить нативный буфер, таблиц тоже не будет - там одни строки...
Можно увидеть код "супердемона"? В части работы с xsel / xclipboard.
Что-то не хватает NX, чтобы отдать клиенту CLIPBOARD. Мне надо увидеть хоть немножко правильного кода :)
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

UTiM писал(а):
23.05.2008 16:14
UTF-8 клиент 3.2.0-10 под винду. Пробовал различные вариаты, отчет письмом (много букв)
Да, в догонку письму. Под Linux те-же глюки с буфером только в обе стороны. Если в буфере (клиента или сервера - тут без разницы) русский UTF-8 - на противоположной стороне получаем "????" Если непосредственно из 1С (без "освежения" буфера) на противоположной стороне 1251. Если в буфере 1251 в виде "умляютов" в 1с вставляется читаемый текст.

Благодарю за описание ситуации. Поскольку сам с собой договорился не умножать сущностей, буду пилить только виндовый клиент и только для 1с :)
Интересует файлик winlog из каталога сессии клиента D-* при попытке копирования из 1с в буфер и последующей потерей фокуса окном (исправленной сборки).

ЗЫ. Архив бинарников клиента, поправленого на тему заголовков rootless 1с окон и включенными логами клипорды, вышлю интересующимся почтой.
Спасибо сказали:

SirYorik
Сообщения: 41

Re: Курощение nomachine клиента - за шаг до ...

Сообщение SirYorik »

все 3 скрипта в понедельник размещу..
сущьности оно конечно. зато работает.

пробовал еще сетевой клиент-сервер. там вся разница, что соеднения идут по tcpip на уникальном порту для кадой сессии. обе части на tcltk. добился полной эмуляции нативного nx-буфера. вместе с глюками . перекодировки и переформатирования не помогли (или не осилил)

косяк возникает в момент вставки буфер на стороне клиента. чтото из ужасов внутреннего формата буфера иксов. есть такая дока - ICCCM (в гугле с полпинка) там весь этот бардак описан. но я туда заглянул краем глаза и чуть не поседел.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

SirYorik писал(а):
24.05.2008 19:57
косяк возникает в момент вставки буфер на стороне клиента. чтото из ужасов внутреннего формата буфера иксов. есть такая дока - ICCCM (в гугле с полпинка) там весь этот бардак описан. но я туда заглянул краем глаза и чуть не поседел.

Ага, почитаю - люблю страшилки на ночь!
Спасибо сказали:

UTiM
Сообщения: 180
ОС: OpenSuse

Re: Курощение nomachine клиента - за шаг до ...

Сообщение UTiM »

SirYorik писал(а):
24.05.2008 08:23
у меня такая схема:
копирование буфера обмена через посредника. решение состоит из серверной части и двух видов клиентских частей.

серверная часть - под каждой NX-сессией стартует типа демон, это баш скрипт который чекает состояние буфера иксов CLIPBOARD (1с в вайне с PRIMARY не работает), если есть изменения, то буфер сливается в файл ~/clipboard как есть с помощью xsel / xclipboard.

А можно сливать не в файл, а обратно в буфер, только в cp1251 ?
Тогда вставка из Линух в Винду (если клиент на Windows) работать будет - проверял.

( типа; xclip -o | iconv -f UTF-8 -t cp1251 | xclip -i ) но там не все гладко - "xclip -о" UTF-8 RU из буфера тоже "портит", поиграться надо с параметрами и пр.

Для 1c под wine кажется (судя по другому виндовому приложению) пройдет просто

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

xclip -o -selection "clipboard" | xclip -i


Вообщем надо с запуском 1с запустить скриптик и посмотреть - что будет

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

#! /bin/sh
buf=$( xclip -o -selection "clipboard" )
while [ $( ps -U $USER | grep 1cv7.exe -c ) -gt 0 ]; do
nev=$( xclip -o -selection "clipboard" )
if [ buf != nev ]; then
buf=$nev
xclip -o -selection "clipboard" | xclip -i
fi
sleep 1
done

В понедельник попробую.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Но все это фигня по сравнению с мировой революцией!!!
Отчет:
1. Читал отцовский пейджер ICCCM, много думал.
2. Порвал два бубна.
3. Починил буфер обмена в NX-клиенте 3.2.0 для rootless 1C!!! В обе стороны. И с кодировкой все нормально. В сервере не трогал ни байта.
4. Заполучил подозрение, что для всех остальных случаев окромя 1С возможно сделал еще хуже. Но это позже, спать хочу.
5. На очереди иконки.

P.S.: SirYorik, спасибо за наводку на ICCCM.
P.P.S.: Как установить нормальную русскую раскладку сессии, кто нибудь знает? Со знаками препинания на привычных местах. Лечится народными средствами, или опять надо пилить?
Спасибо сказали:

SirYorik
Сообщения: 41

Re: Курощение nomachine клиента - за шаг до ...

Сообщение SirYorik »

крут. респект. это win-клиент или lin-клиент, или оба ?

а на пункт 4, имхо можно смело забить, никто не мешает поставить 2 разных клиента если уж так приспичит шарить линукс-нативные приложения (ооо чтоли?) да еще с работающим буфером.


> Как установить нормальную русскую раскладку сессии, кто нибудь знает? Со знаками препинания на привычных местах.
чтото я недогнал, ты-же сам писал мантру в #27 сообщении? (с ru_winkeys)
Спасибо сказали:

UTiM
Сообщения: 180
ОС: OpenSuse

Re: Курощение nomachine клиента - за шаг до ...

Сообщение UTiM »

UTiM писал(а):
25.05.2008 01:11
В понедельник попробую.

"Волшебный" скрипт в сеансе KDE работает!!! Вроде! (В соединении через xterm что-то пока непонятно.... )
Рецепт.
1. Ставим из ближайшего репозитория утилитку xclip (для suse - у пакмана)
2. Создаем в удобном месте скрипт следующего содержания

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

#! /bin/sh
#даем стартануть 1С
sleep 5
buf=$( xclip -o -selection "clipboard" )
#проверяем наличие процесса (название - свое)
while [ $( ps -U $USER | grep 1Cv7.exe -c ) -gt 0 ]; do
nev=$( xclip -o -selection "clipboard" )
if [ buf != nev ]; then
buf=$nev
xclip -o -selection "clipboard" | xclip -i
fi
sleep 1
done


3. В команду запуска 1С (или любой другой программы под WINE) дописываем через знак & запуск данного скрипта

Но не все гладко. После тестирования выяснилось
1. Клавиши переключение раскладок должны быть одинаковые.
2. После некот. времени работы скрипт работать перестает - почему - пока неясно...
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

SirYorik писал(а):
25.05.2008 07:57
крут. респект. это win-клиент или lin-клиент, или оба ?

Да уж не настолько и крут, как, хотелось бы (см. ниже), и прошу помощи в тестировании.
Это вин-клиент - микс из установленного 3.2.0-10 от nomachine + пересобранный NXWin.exe на базе исходников nxwin-3.2.0-3 оттуда же.
Что поправить в lin-клиенте, примерно представляю, но у меня дело до него дойдет еще не скоро - как только буду хотеть лазить с домашней машины на работу в 1с.
SirYorik писал(а):
25.05.2008 07:57
> Как установить нормальную русскую раскладку сессии, кто нибудь знает? Со знаками препинания на привычных местах.
чтото я недогнал, ты-же сам писал мантру в #27 сообщении? (с ru_winkeys)

На практике раскладко хотя русская и языки переключает, но с точкой на месте цифры 7 (привет, "Лексикон"). Плюс ругань в логах клиента/сервера
на тему kbload.

Но я сейчас не об этом. Уже после рапорта о победе над буфером, произошла очень непонятная мистика. Сломалась правильная перекодировка ни пути вин-клипбоард -> окно 1с, которой я так радовался, и которая послужила исходной точкой в моих "исследованиях". Причем не в результате моих исправлений - откатываю клиента, сервера на родные версии - ситуация, увы, не исправляется. Строка "
В чащах юга жил-бы цитрус, да, но фальшивый экземпляр.!?" при вставке в rootless nx-сессию 1с превращается в "A ?auao ?aa aee-au oeodon, aa, ii oaeuoeaue yecaiieyd.!?". Даже не понял, что это за codepage (семибитная что-ли)?.
1c стала вести себя, как остальные wine приложения. А раньше было по другому.
При передаче обратно на поправленой версии теперь все ОК - кодировка не меняется. Это не непосредственные глюки NX. Либо изменилась настройка 1с в wine, либо конфигурация wine, либо настройки X-ов на сервере (пакеты разные ставил, типа xclipboard). А что изменилось , не пойму - момент изменения прощелкал.
Вторые сутки грохаюсь - уже готов создать тему «помогите бедному тупому ламеру».

Исправленая сборка сюда не цепляется - слишком здоровая - готов выслать по запросу, либо брать с depositfiles, slil.ru.
Прошу обращаться, тестить и сообщатьть результаты/идеи.
Умираюпомогитетону!!!
Спасибо сказали:

Ay49Mihas
Сообщения: 54
ОС: OpenSuSE 10.3

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Ay49Mihas »

Здравствуйте!

Из винды (будь проклят тот день!) пытаюсь подконнектиться на сервер
по NX. Клиент XP sp2, сервер SLES10 sp1. Пишет Can't determine the
location of the X display socket. По наблюдениям сокет создаётся, а потом уничтожается, после того, как пишет Negotiated link parameters.

На сервере ошибка NX Agent exited with status 1. И поясняется:

Info: Agent running with pid '15485'.
Session: Starting session at 'Mon May 26 13:16:26 2008'.
Info: Proxy running in server mode with pid '15485'.
Info: Waiting for connection from '127.0.0.1' on port '4502'.
Info: Accepted connection from '127.0.0.1' with port '57742'.
Info: Connection with remote proxy established.
Error: The remote NX proxy closed the connection.
Error: Failure negotiating the session in stage '7'.

Fatal server error:
Error: Unable to open display 'nx/nx,options=/home/test/.nx/C-terminal-server-502-41F315723AA08AEFD2C9B973353
C96A1/options:502'.

NX> 596 Session startup failed.
NX> 1001 Bye.


С остальных клиентских компов из винды цепляется без проблем. /tmp/.X11-unix удалял. Сервер перезагружал. Всё без толку.

NX-2.1.0 (В SuSE более новых и не собираются включать), FreeNX-0.7.0, nxclient-3.2.0-10. На одной и той же машине (P3-500, 128Mb) под Win2000sp4 отказывалась инициализировать сессию (то есть до коннекта вообще дело не доходило), после установки WinXP sp2 завелась, но в последний раз работала только в пятницу... Сегодня уже --- нет, простите.

Что может быть? Заранее благодарен!
Спасибо сказали:

SirYorik
Сообщения: 41

Re: Курощение nomachine клиента - за шаг до ...

Сообщение SirYorik »

ну в общем вот. выгрузил статейку из нашей базы.

(рекурсия с reschedule, это непонятный блекмаджик tcltk, но работает зараза.)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Ay49Mihas писал(а):
26.05.2008 14:50
На сервере ошибка NX Agent exited with status 1. И поясняется:
....
NX> 596 Session startup failed.
NX> 1001 Bye.

На клиенте, что в логах .nx\D-*\* и .nx\S-*\* ?
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

UTiM писал(а):
26.05.2008 12:06
"Волшебный" скрипт в сеансе KDE работает!!! Вроде! (В соединении через xterm что-то пока непонятно.... )

В консоли:
[dim@dimsrv ]$ xclip -o -selection "clipboard" -d dimsrv:1001
Xlib: connection to "dimsrv:1001.0" refused by server
Xlib: No protocol specified

Error: Can't open display: dimsrv:1001

чой-то делаю не так?
Спасибо сказали:

UTiM
Сообщения: 180
ОС: OpenSuse

Re: Курощение nomachine клиента - за шаг до ...

Сообщение UTiM »

dimbor писал(а):
26.05.2008 21:17
Error: Can't open display: dimsrv:1001

чой-то делаю не так?

что-то не нравится ему дисплей с именем машины. Я запускал без этого параметра "по умолчанию" т.е. текущий... У меня так же проходит -d :0.0 если указать имя машины - ругaется.

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

tim@tim:~> xclip -o -selection "clipboard" -d tim:0.0
Error: Can't open display: tim:0.0


2. После некот. времени работы скрипт работать перестает - почему - пока неясно...

Теперь ясно.....
Мысль была простая. Если NX неможет переслать UTF-8 RU, но успешно шлет 1251 - воспользоваться этим. Из буферов обмена нас интересуют "primary" и "clipboard", остальные вроде нипричем. При посылке из Виндовс в Linux текст попадает и в "primary" и "clipboard" в 1251. При обратной посылке из 1С, только в "clipboard", "primary" - не работает. Так надо взять его и туда скопировать (благо он уже в 1251), тогда nx его успешно пересылает.
Все вроде работает, до тех пор пока при очередном чтении "clipboard" не "подвисает" xclip - на этом скрипт замирает... (у меня) Происходит это как правило после очередного копирования из Windows в Linux. (в обратную сторону все "ОК"). Почему это происходит, толи чтение попадает на момент перезаписи буфера толи еще почему. (не можеш прочитать - отвали с ошибкой, но виснуть то зачем?) Написал еще один "дурной" скрипт в котором если "primary" изменился (было копирование из винды) чтение "clipboard" откладывается на цикл - (и вообще количество вызовов xclip -o -selection "clipboard" минимально) это уже "рыдания" (впору писать скрипт который будет "килить" подвисший xclip) , вроде работает, но тут начали рваться nx сессии и падать 1С (наверное предыдущий издевательств не выдержало), плюнул, сервак перезагрузил и пошел домой...
Толь ли с версией xclip мне не повезло, толи лыжи не едут.... Как на других операционках?
Спасибо сказали:

UTiM
Сообщения: 180
ОС: OpenSuse

Re: Курощение nomachine клиента - за шаг до ...

Сообщение UTiM »

Ну вроде добился стабильной работы скрипта во всех вариантах (KDE и xterm). Не красиво, с костылями, но работает. По сути запускать надо два скрипта. Один синхронизирует буфер, второй "пинает" первый при зависании чтения буфера.
"Синхронизатор"

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

#! /bin/sh
sleep 5
while [ $(ps -U $USER | grep " 1Cv7.exe" -c ) -gt 0 ]; do
prim=$(xclip -o -selection "primary") && clip=$(xclip -o -selection "clipboard")
  if [ "$prim" != "$clip" ]; then
    echo $clip | xclip -i -selection "primary"
  fi
done


"Пинатель"

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

#! /bin/sh
sleep 3

while [ $(ps -U $USER | grep " 1Cv7.exe" -c ) -gt 0 ]; do
pid1=$(ps -U $USER | grep " xclip" | head -n1 | cut -b1-5 )
if [ "$pid1" != "" ]; then
  sleep 3
  if [  $(ps -U $USER | grep " xclip" | grep "$pid1" -c ) -gt 0 ]; then
    kill $pid1
  fi
fi
done


Стартуем оба скрипта одновременно с 1С, дописав сзади команды запуска 1с-ки через &

Ну естественно - правим по вкусу. Я себе потом еще добавил контроль от повторного запуска скриптов в одной сессии, так как народ запускает несколько баз 1С.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

UTiM писал(а):
27.05.2008 21:51
Ну вроде добился стабильной работы скрипта во всех вариантах (KDE и xterm).

Мои поздравления, пришедшему к финишу первым!
Но мне тоже нужно добежать, хотя б из принципа :)
UTiM писал(а):
26.05.2008 23:22
При обратной посылке из 1С, только в "clipboard", "primary" - не работает. Так надо взять его и туда скопировать (благо он уже в 1251), тогда nx его успешно пересылает.

И это есть истина!
Я исправил в клиенте, чтобы при потере фокуса окна им запрашивалась у сервера clipboard вместо primary. Результат тот-же, т.е. хороший.
UTiM писал(а):
26.05.2008 23:22
При посылке из Виндовс в Linux текст попадает и в "primary" и "clipboard" в 1251.

Знаю, что nxagent-у приходит в 1251 и nxagent устанавливает свойство "SELECTION_DATA" окна wine, запущенной на сервере (Х-клиента) . Если перекодировки при этом не происходит, то все ок. Так было раньше. Теперь же по неустановленным причинам, а, главное, неизвестно кем - эта штука перекодируется в utf-8 и так отображаеся. Видимо, с этим связаны отличия в поведении буфера на разных системах. Блин, шеф, что делать? :)
Спасибо сказали:

Аватара пользователя
warlomak
Сообщения: 384
ОС: Ubuntu 10.04

Re: Курощение nomachine клиента - за шаг до ...

Сообщение warlomak »

По поводу черных значков в 1с 8.1 поставил nxnode последний, цвета в норме, все ok, но правда он вроде не бесплатный. Удалил с цветами все равно все ok...

p.s.
Магия ;-)
завтра на работе попробую.
компрессия "Модем".
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

warlomak писал(а):
30.05.2008 16:52
По поводу черных значков в 1с 8.1 поставил nxnode последний, цвета в норме, все ok, но правда он вроде не бесплатный. Удалил с цветами все равно все ok...
p.s.
Магия ;-)
завтра на работе попробую.
компрессия "Модем".

Из моего понимания nxnode, как пастуха для nxagent-a следует, что измениться могла только командная строка запуска nxagent. Если он остался прежний.
Командную строку в студию, плз!
Спасибо сказали:

Аватара пользователя
warlomak
Сообщения: 384
ОС: Ubuntu 10.04

Re: Курощение nomachine клиента - за шаг до ...

Сообщение warlomak »

dimbor писал(а):
30.05.2008 17:48
warlomak писал(а):
30.05.2008 16:52
По поводу черных значков в 1с 8.1 поставил nxnode последний, цвета в норме, все ok, но правда он вроде не бесплатный. Удалил с цветами все равно все ok...
p.s.
Магия ;-)
завтра на работе попробую.
компрессия "Модем".

Из моего понимания nxnode, как пастуха для nxagent-a следует, что измениться могла только командная строка запуска nxagent. Если он остался прежний.
Командную строку в студию, плз!

чета я недоганяю :crazy: какую ?
пиши чего смотреть, я еще не разбирался где этот nxagent запускается...
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

warlomak писал(а):
30.05.2008 18:26
пиши чего смотреть, я еще не разбирался где этот nxagent запускается...

В node.conf прописана NX_LOGFILE=/var/log/nxserver.log (у меня)
Желательно, чтобы NX_LOG_LEVEL оттуда-же была повыше (7)

Тогда в nxserver.log можно найти (искать с конца) такие строки:

NX> 105 startsession --rootless="1" --virtualdesktop="0" --application="/home/dim/1c.sh"
--link="lan" --backingstore="1" --encryption="1" --cache="64M" --images="128M" --shmem="1"
--shpix="1" --strict="0" --composite="1" --media="0" --imagecompressionmethod="3" --image
compressionlevel="-1" --render="1" --session="1c" --type="unix-application" --client="winn
t" --kbload=" --kbload=pc102/ru" --keymap=" --keymap=ru" --keyboard="pc102/ru" --aux="1" -
-screeninfo="1400x1020x32+render"

&rootless=1&virtualdesktop=0&application=/home/dim/1c.sh&link=lan&backingstore=1&encryptio
n=1&cache=64M&images=128M&shmem=1&shpix=1&strict=0&composite=1&media=0&imagecompressionmet
hod=3&imagecompressionlevel=-1&render=1&session=1c&type=unix-application&client=winnt&kblo
ad=&kbload=pc102/ru&keymap=&keymap=ru&keyboard=pc102/ru&aux=1&screeninfo=1400x1020x32+rend
er&clientproto=2.1.0&user=dim&userip=192.168.1.1&uniqueid=AC07841525CE582320F76B730D785073

Это параметры nxagent и, как я пол, его ответ.
Спасибо сказали:

Аватара пользователя
warlomak
Сообщения: 384
ОС: Ubuntu 10.04

Re: Курощение nomachine клиента - за шаг до ...

Сообщение warlomak »

Смысла в log'е мало, т.к. после экспериментов выяснилось, что nxagent просто иногда (часто) выдергивает эти картинки из кэша ;-( Т.ч. при таких экспериментах его надо чистить постоянно...
Спасибо сказали:

UTiM
Сообщения: 180
ОС: OpenSuse

Re: Курощение nomachine клиента - за шаг до ...

Сообщение UTiM »

Ну вроде добился стабильной работы скрипта во всех вариантах (KDE и xterm). Не красиво, с костылями, но работает. По сути запускать надо два скрипта. Один синхронизирует буфер, второй "пинает" первый при зависании чтения буфера.


Работать-то работает. Только теперь сервер в конце дня, когда пользователи закрывают сессии начал падать, ругаясь (судя по логам) на ошибку памяти. Толи сессию кто-то криво закрывает, толи скрипты не все нюансы учитывают... С утра естественно ничего не работает -надо перезагружаться. Пришлось пока отключить скрипты, а то пользователи уже "бочку" катят...

Как там дела у dimbor-ра? А то специально ставит себе windows и разбираться с тонкостями компиляции под Cygwin времени нет совсем...
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Текущее положение:
Копирование (Cut) работает для 1С, других wine программ. Не работает (знаки вопроса) - для линукс программ.
Вставка (Paste) работает для линукс программ, не работает (умлауты) - для wine программ. С 1с мистика разрешилась, перешла в категорию нехорошего бага.
В реквизиты "поле ввода" конфигурации вставка идет нормально. В реквизиты "многострочный текст", в таблицы и в системные поля вставка идет плохо (умлауты)
Ужо не падает.

Это сборка



В данный момент учу английские буквы - читаю про локализацию в X-ах.
ICCCM курит в углу из-за своей простоты по сравнению с этим механизмом .
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Копирование и вставка в любые wine-прораммы побеждены полностью. В том числе и 1С работает с русским теперь стабильно-хорошо.
Используется исправленная сборка NXClient-а (уже постил в #59).

Сервер пришлось тоже пересобрать. А именно nxagent-3.2.x. В Clipboard.c две строчки меняются местами :)
Естественно никакого секрета нет - как только возникнет интерес со стороны ментейнеров, да и кого угодно, расскажу.
В связи с этим вопрос к "людям в черном" из Etersoft, которые прочитают этот пост:
Знаю, что существует отдельная сборка nx-сервера от Etersoft. Она 3.1 или 3.2? А интерес к нормальному буферу обмена есть?

По буферу обмена осталась бяка с копированием знаков вопросов из линуксовых программ. По прикидкам nx-клиент не виноват, nxagent не виноват.
X-сервер отдает обоим эти знаки вопроса. Такая же проблема была решена в rdesktop 1.5. Читаю код, курю бамбук. Там архитектура проще - X-сервер всего один.
А у NX их как бы два. Да еще путаница чисто в голове с сервером, который клиент и наоборот.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1509
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Вдогонку:

Поправил также nxagent, чтобы клиент отображал нормальные иконки в 1с во всех режимах (MODEM, ISDN, ...etc). Отображает!

Как известно, 1с выдергивает иконки 16х16 и 16х15 из битмапов (n*16)х16, (n*16)х15. Вот у nxagent-a при включении кэширования и сносило башню - не хотел работать с картинками, которых на экране не видно :) . Х-серверу(ам) сами они не нужны, а вот их всякческие маски туда должны проходить, как оказалось.
Исправление сделано через известное место, и, скорее всего, эти битмапы теперь не кэшируются на стороне клиента. Но теоретически - это копейки. А практика покажет...

ЗЫ. Стопудово косячу с терминологией в объяснении. (и с пониманием наверно тоже :) )
Спасибо сказали: