LINUX.ORG.RU
ФорумAdmin

Как сделать проброс X11 «персистентным»?

 , , , ,


0

1

Расклад:

Выполняю соединение по ssh с пробросом x11 до машины на которой имеется tmux сессия в одной из панелей которой запущен vim с поддержкой x11.

Чего хотелось бы: вне зависимости от адреса подключения использовались бы иксы последнего подключившегося, как программа максимум. Либо простой способ без перезапуска vim перейти на новые иксы.

★★★★★

Последнее исправление: pon4ik (всего исправлений: 1)
Ответ на: комментарий от pon4ik

Я прочитал его раза три перед написанием ответа. Слова понятные, но суть хотелки я понять так и не смог.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Есть tmux сессия. Я подключился к ней с одного адреса, пробросил иксы, открыл новый pane(pane1) в нём работает echo asd | xclip -sel clip. Запустил в pane1 vim, в нём регистр + оказался соединён с primary clipboard x11 клиентской машины. Отсоединился.

Подключился с другого адреса, подключился к сессии, перешёл на pane1, регистр + уже запущенном vim больше не соединён с primary clipboard x11 клиентской машины.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от Radjah

То же самое ещё и с докер контейнерами куда проброшен x11 на самом деле, но это не так критично.

pon4ik ★★★★★
() автор топика

Либо простой способ без перезапуска vim перейти на новые иксы.

это типа как?

Deleted
()
Ответ на: комментарий от pon4ik

если я правильно понял, у тебя память, выделенная операционкой под vim очистится, либо поменяются страницы. теоретически можно но это штучная работа и тонкая. нахрена козе боян?

Deleted
()
Ответ на: комментарий от Deleted

Это типа как добавили в 8.1 :xrestore. Только хотелось бы решить это на уровень выше, т.к. интересует решение не только для vim.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Люди с молотками везде ищут гвозди. Речь всего лишь о том, как автоматизировать переключение на другой сокет, либо чем удобно будет зафиксировать прокси.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Например, можно завести юникс сокет, который будет сокетом для x11, и socat’ом соединять его с x11 сокетом проброшенным.

Я всего лишь ищу шоткат для такого решения годный, т.к. не могу пока придумать удобного интерфейса для этой истории.

Т.е. хотелось бы в итоге получить решения вида:

Нужно выполнить команду x11-reconnect при повторном подключении. Как написать такое ПО я представляю, но мне супер сильно не охота этим заниматься.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Подключился с другого адреса, подключился к сессии, перешёл на pane1, регистр + уже запущенном vim больше не соединён с primary clipboard x11 клиентской машины.

А если так:
- выполнить в tmux такое:

set-option -g update-environment "SSH_AUTH_SOCK SSH_CONNECTION DISPLAY DESKTOP_SESSION XAUTHORITY DBUS_SESSION_BUS_ADDRESS DESKTOP_STARTUP_ID GNOME_KEYRING_CONTROL SESSION_MANAGER XDG_SEAT_PATH XDG_SEAT XDG_SESSION_CLASS XDG_SESSION_COOKIE XDG_SESSION_DESKTOP XDG_SESSION_PATH XDG_SESSION_TYPE XDG_VTNR"

- подключился с другого адреса
- подключился к сессии
- выполнить в tmux такое:
attach-session

- создать новый pane
- в новом pane'е запустить vim и попробовать там
?

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 2)
Ответ на: комментарий от Kroz

Это у меня всё проделанно, в свежих версиях tmux это окружение обновляется автоматически.

В новом pane разумеется всё работает, но вот перезапускать vim как раз и не охота.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от Kroz

в новом pane'е запустить vim

я так понял ему нужен вим с запущеным контентом. допустим ты запускаешь экземпляр вима и нужно чтобы отображалось определённое состояние контента, определённая страница допустим. с холодного старта ты не сделаешь никак

Deleted
()
Ответ на: комментарий от pon4ik

Если только буфер обмена интересует, то можно на удалённой машине запустить персистентные иксы (Xvfb) и синкать их с проброшенными.

NeXTSTEP ★★
()

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

i-rinat ★★★★★
()
Ответ на: комментарий от pon4ik

В новом pane разумеется всё работает, но вот перезапускать vim как раз и не охота.

Посмотри в сторону :help client-server. Вот здесь люди приводят свои use cases:
https://www.rohanjain.in/yet-another-vim-productivity-post-server-client/
https://vi.stackexchange.com/questions/7966/what-are-practical-uses-of-the-cl...

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Сломает воркфлоу сильнее чем отсутсвие клипборда. Но идея рабочая скорее всего. Хотя, таким макаром проще перейти на nvim и вообще не париться.

pon4ik ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.