LINUX.ORG.RU
ФорумAdmin

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

 , , , ,


0

1

Расклад:

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

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

★★★★★

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

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

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

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

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

Deleted ()
Ответ на: комментарий от 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 ()

Иксы это протокол с состоянием. Нельзя тривиально переключить 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 ★★★★★ ()