Рейтинг:0

X2Go и использование командной строки?

флаг fr

Я начал пробовать X2Go вместо VNC для управления моими компьютерами с Ubuntu — и, хотя в целом это работает, я не могу понять, как делать вещи, перечисленные ниже.

Но сначала я использую Ubuntu 20.04 с рабочим столом MATE на обоих ПК и использую sudo add-apt-repository ppa:x2go/stable (http://ppa.launchpad.net/x2go/stable/ubuntu). На управляемом компьютере (сервере) я установил:

sudo apt установить x2goserver x2goserver-xsession
sudo apt установить x2godesktopsharing
sudo usermod -a -G x2godesktopsharing мой пользователь

На компьютере, который управляет (клиент), я установил:

sudo apt установить x2goclient
  1. На сервере я фактически получаю настольный «апплет», где я могу включать или отключать сервер, что мне очень нравится:

настольный апплет x2go

Однако предположим, что я захожу на сервер через ssh, а сервер x2go деактивировал совместное использование рабочего стола. Тогда мой вопрос:

  • Как активировать (и деактивировать) общий доступ к рабочему столу на сервере x2go из командной строки (через ssh)?

Далее меня интересует размер клиента и экрана — позвольте мне проиллюстрировать это на примере с VNC:

Если у меня есть сервер VNC на моей серверной машине (скажем, 192.168.0.100) на порту 5900, я могу подключиться к нему из командной строки, используя, скажем, ssvncviewer:

ssvncviewer 192.168.0.100

Если у моего сервера есть рабочий стол с большим разрешением (размер пикселя, скажем, 1920 x 1200), а у моего клиента рабочий стол с меньшим разрешением (размер пикселя, скажем, 800 x 600), то приведенная выше команда показывает "вырез" рабочий стол сервера без масштабирования:

окно выреза ssvncviewer

Затем, если я нажму F9, чтобы выдать «Полный экран» для SSVNC, этот «вырез» займет весь экран — и, поскольку нет масштабирования, текст на рабочем столе сервера читается, но я все еще могу перемещаться, помещая указатель мыши по краям экрана (сверху, снизу, слева, справа) - и далее выполняется автопрокрутка (или автопанорамирование) по ssvncviewer.

С другой стороны, если я выдаю

ssvncviewer-масштаб авто 192.168.0.100

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

ssvncviewer масштабируется

Что ж, мне очень нравится иметь возможность переключаться между этими двумя режимами просмотра (вырез без масштаба и масштабированный)... однако:

  1. Я не могу найти параметры масштабированного и немасштабированного представления в графическом интерфейсе клиента X2Go, кроме этих (Сеанс/Управление сеансом.../(выберите сеанс)/Настройки сеанса/Ввод/Вывод):

настройки клиента x2go

Итак, если я подключаюсь через X2GoClient с размером «Пользовательский», я получаю вырез, но по центру:

Пользовательский клиент x2go

... и я не могу найти способ панорамирования; если я тогда ударю CTRL+ALT+СДВИГ+Ф, захожу в полноэкранный режим - а он масштабируется (нечитаемый текст); если я ударю CTRL+ALT+СДВИГ+Ф снова я выхожу из полноэкранного режима, но тогда в окне больше не отображается вырез, а вместо этого отображается масштабированный вид:

клиент x2go масштабируется

И, конечно же, если я запускаю полноэкранный режим, я всегда получаю масштабированный вид.

Итак, мои вопросы здесь:

  • Есть ли способ запустить клиентское соединение X2Go из командной строки (например, я могу запустить клиентское соединение VNC, скажем, ssvncviewer 192.168.0.100)?
  • Есть ли в клиенте X2Go режим «вырезания» (то есть немасштабированный) с какой-либо формой интерактивного панорамирования, и если есть, то как его активировать (либо через графический интерфейс, либо через командную строку)?
Рейтинг:0
флаг fr

В конце концов я нашел этот пост в списке рассылки, Альтернативы командной строки для x2goclient-cli, видимо с 2011 года:

Если я интерпретировал недавний почтовый трафик (и дорожную карту в вики) правильно, x2goclient-cli устарел и больше не будет активно разработан. Насколько я вижу, в настоящее время есть две альтернативы для использования x2goclient-cli:

  • x2goclient (клиент QT) с параметрами командной строки.
  • пихоча-кли.

Я попытался изучить параметры командной строки x2goclient, и я не могу понять, как начать сеанс, используя это...

С другой стороны, я обнаружил, что пихока-кли находится в репозиториях Ubuntu:

... и я нашел документ по его использованию:

Итак, я установил его с помощью:

sudo apt установить pyhoca-cli

... и следуя инструкциям, я попробовал это (так как я уже сделал подключения из x2goclient gui, я сбрасываю --добавить-к-известным-хостам из примеров на странице); сначала нужно «перечислить рабочие столы», то есть перечислить сеансы рабочего стола (поэтому вам нужно будет хотя бы один раз установить соединение из графического интерфейса клиента X2Go)

$ pyhoca-cli --server 192.168.0.100 --list-desktops --user myuser
pyhoca-cli[139077] ВНИМАНИЕ: подготовка запрошенного сеанса X2Go
...
Пароль: 
pyhoca-cli[139077] (x2gocontrolsession-pylib) ВНИМАНИЕ: подключение к [192.168.0.100]:22
pyhoca-cli[139077] (PyHocaCLI) ВНИМАНИЕ: аутентификация прошла успешно

Десктопы X2Go доступны для совместного использования
====================================
Хост: 192.168.0.100 - [192.168.0.100]:22
Имя пользователя: myuser

мой пользователь@:0

Итак, сверху у меня есть сессия мой пользователь@:0 - и это то, к чему я могу подключиться:

$ pyhoca-cli --server 192.168.0.100 --share-desktop myuser@:0 --user myuser --share-mode 1
pyhoca-cli[139324] ВНИМАНИЕ: подготовка запрошенного сеанса X2Go
...
pyhoca-cli[139324] (PyHocaCLI) ВНИМАНИЕ: переход к интерактивному входу в систему для пользователя ,,myuser''
Пароль: 
pyhoca-cli[139324] (x2gocontrolsession-pylib) ВНИМАНИЕ: подключение к [192.168.0.100]:22
pyhoca-cli[139324] (PyHocaCLI) ВНИМАНИЕ: аутентификация прошла успешно
pyhoca-cli[139324] (x2gosession-pylib) ПРИМЕЧАНИЕ. Использование сеанса myuser-50-1639641479_stS1XSHADmyuserXSHADPP0_dp24 в качестве основного сеанса для профиля Pyhoca-Client_Session.
pyhoca-cli[139324] (PyHocaCLI) ВНИМАНИЕ: нажмите CTRL+C, чтобы завершить общий доступ к рабочему столу в этом сеансе...


^CКлавиатураПрерывание
2021-12-16T07:58:35Z
pyhoca-cli[139324] (x2gosession-pylib) ПРЕДУПРЕЖДЕНИЕ: общий доступ к локальной папке отключен для этого профиля сеанса
pyhoca-cli[139324] (x2gosession-pylib) ПРЕДУПРЕЖДЕНИЕ: общий доступ к локальной папке отключен для этого профиля сеанса
pyhoca-cli[139324] (x2goterminalsession-pylib) ВНИМАНИЕ: очистка сеанса myuser-50-1639641479_stS1XSHADmyuserXSHADPP0_dp24 после завершения
pyhoca-cli[139324] (PyHocaCLI) ВНИМАНИЕ: сеанс X2Go myuser-50-1639641479_stS1XSHADmyuserXSHADPP0_dp24 был прекращен

Итак, это работает - обратите внимание, что:

  • Я испытал, что --share-desktop команда может не подключиться; в таком случае мне пришлось остановиться пихока-кли; затем запустите клиент X2Go в графическом режиме и подключитесь оттуда один раз (успешно); потом после этого --share-desktop снова начал работать
  • --share-desktop Команда снова открывает вырез по центру, как описано в OP, для которого затем требуется масштабированный полноэкранный режим, и масштабирование сохраняется после выхода из полноэкранного режима.

Итак, это хорошо - теперь просто нужно выяснить:

  • Как включить/активировать сервер X2Go из командной строки по ssh
  • Как указать, что я хочу немасштабируемый «вырез» в полноэкранном режиме с автоматическим панорамированием (путем перемещения указателя мыши к верхнему/нижнему/правому/левому краям экрана).

РЕДАКТИРОВАТЬ: Обнаружено следующее: приведенные выше примеры были выполнены с (я думаю) X2GOClient GUI/Настройки сеанса/Тип сеанса «X2Go/X11 Desktop Sharing». Мотивировано Клиент Windows x2go отображается с неправильным разрешением,

Я попытался изменить тип сеанса на «MATE» (это среда рабочего стола, которую я использую как на сервере, так и на клиенте, и она показана на снимках экрана выше).При этом открывается окно, которое масштабируется до максимально доступного размера при разрешении рабочего стола клиента, а внутри я получаю рабочий стол клиента, отображаемый с точным размером в пикселях, начиная с верхнего левого края (и верхняя панель масштабируется до размера этого окна) - так что я могу запускать программы и хорошо видеть, что происходит.

Чего я не могу сказать на данный момент, так это того, является ли это копией действительно работающего рабочего стола или это новый сеанс для того же пользователя (вероятно, новый, pyhoca-cli --list-desktops --сервер 192.168.0.100 впоследствии перечисляет два сеанса вместо одного); по крайней мере, для некоторых программ, которые я использую, это не имеет значения, так что это решило нечитаемое разрешение для меня (по крайней мере, частично на данный момент). Также обратите внимание, что как только вы закроете соединение с графическим интерфейсом X2GoClient, когда вы в следующий раз откроете настройки сеанса/тип сеанса (как сказано в связанном посте):

автоматически меняется на «Пользовательский рабочий стол» с помощью команды «MATE».

Я думаю, эквивалентом этого в командной строке является создание нового сеанса:

pyhoca-cli --server 192.168.0.100 --username myuser --new --command MATE

... и после создания нового сеанса после закрытия окна (обратите внимание, что также, если вы нажмете CTRL+С на pyhoca-cli` тоже закроет окно, и не удалит сессию, а вместо этого приостановит сессию) и хотите снова переподключиться, вам не нужно заново создавать новую сессию. Сначала подтвердите, что существует сеанс с:

pyhoca-cli --username myuser --list-sessions --server 192.168.0.100

... или, альтернативно, перечислите рабочие столы:

pyhoca-cli --username myuser --list-desktops --server 192.168.0.100

... а затем вместо этого вы можете возобновить сеанс (обратите внимание, что требуется имя сеанса, а не имя рабочего стола, но также можно использовать имена сеансов OLDEST и NEWEST):

pyhoca-cli --username myuser --server 192.168.0.100 --resume НОВЕЙШИЕ

...вернее, могли бы, если бы не этот баг #1445 - pyhoca-cli не может подключиться к приостановленному сеансу x2go - Журналы отчетов об ошибках X2Go, что, по-видимому, исправлено в pyhoca-cli 0.6.1.3, однако в моей Ubuntu 20.04 все еще есть 0.6.1.2.

И, наконец, чтобы уничтожить/убить/стереть сессию, используйте --завершить (который также принимает ВСЕ):

pyhoca-cli --username myuser --server 192.168.0.100 --завершить ВСЕ
флаг fr
Также есть сочетания клавиш для панорамирования, но они не работают: https://wiki.x2go.org/doku.php/doc:usage:x2goclient -> https://wiki.x2go.org/doku.php/ wiki:advanced:nx-keyboard-shortcuts ; https://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=1339;

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.