LINUX.ORG.RU

Запуск X или программы в tty*

 , , ,


0

1

Добрый день.

В связи с добровольным переходом на wayland сессию (KDE opensuse tumbleweed), возник вопрос с редкой нуждой запустить X(lutris\steam\wine) в отдельном tty, т.к. под wayland это всё не гладко работает.(в сравнении с X)

Пробовал как написано в Archwiki - xinit /usr/bin/lutris – :1 vt$XDG_VTNR. Запуск производил от обычного пользователя и получил ошибку server already running.

Прошу ткнуть что конкретно нужно сделать, чтобы запустить программу либо игру в отдельном X сервере?

Спасибо.

Я делаю проще. У меня лиса в отдельных иксах под отдельным пользователем.

Просто переключаюсь по ctrl alt f# на нужный TTY и там startx (в .xinitrc прописан dwm и автостарт лисы). В перекатиполе почему-то стартуют со второго раза всегда. Первый раз access denied для иксов, второй следом норм. В leap сразу стартует.

Но у меня нет DM никакого, если что

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

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

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

Как DM влияет на запуск Х не подскажете?

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

Как теперь там с systemd уже не вникал. Поэтому не подскажу.

gutaper ★★★★★
()

xinit /usr/bin/lutris – :1 vt$XDG_VTNR

server already running

Значит у тебя либо X с DISPLAY=:1 уже запущен, либо vt${XDG_VTNR} уже занят.

mord0d ★★★★★
()
Ответ на: комментарий от realiddqd
[ 186.151] (EE) xf86OpenConsole: Cannot open virtual console 3 (Permission denied)

Покажи выхлоп команды id от пользователя. Впрочем, я вряд ли смогу помочь с Linux, тем более с RPM-based.

Вроде @Darth_Revan шарит в openSUSE.

Ну и запускать в том же tty — не очень хорошая идея, по крайней мере пока пытаешься завести.

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

uid=1000(fr0st) gid=100(users) группы=100(users),458(vboxusers)

А как иначе запускать, в tty1 и команда типа vt3 вместо vt$XDG_VTNR в случае tty3 как целевой?

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

uid=1000(fr0st) gid=100(users) группы=100(users),458(vboxusers)

Обычно ты логинишься в графическую сессию через DM?

Не знаю как в openSUSE, но в большинстве дистрибутивов, чтобы пользователь мог запускать сессию xorg, ему необходимо состоять в группе video (GID может различаться).

А как иначе запускать, в tty1 и команда типа vt3 вместо vt$XDG_VTNR в случае tty3 как целевой?

xinit(1) не умеет автоопределять доступный DISPLAY (по умолчанию пытается стартовать с :0, и если он занят, то завершается с ошибкой), потому тебе надо указывать любой доступный, например :11. А вот по поводу занимаемого vt я не знаю.

Вообще, рекомендую начать с секции EXAMPLES в xinit(1). А ещё на archwiki было что-то про мультивыбор в xinitrc. Но для начала начни с группы video.

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

В общем поднял сессию icewm и всё бы хорошо, стим запускается, видны разрывы окошек(novsync) и сессии не зависают. Но, волосы не шелковистые, окно lutris в вейленд сессии появляется и я не знаю как его перетащить в нужную.

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

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

Я лет десять не пользовался мультиситом, я уже не помню что я делал и что нужно делать сейчас, когда всё изменилось с приходом logind на Linux.

Ну и да, желательно пинать новую сессию через dbus-run-session(1), оно решает часть проблем с окружением.

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

Спасибо за помощь, решение нашлось, хоть и не совсем то чего ожидал.

Из новой сессии не получилось запустить лутрис в ней самой. Зато из плазмы с передачей DISPLAY=:2 всё пошло-поехало.

P.S. википедии любых дистров для домохозяек не подходят

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

Из новой сессии не получилось запустить лутрис в ней самой.

Значит ты что-то делаешь не так. Можешь написать скрипт-обёртку для запуска всего что нужно и пинать его, а не пинать Lutris напрямую.

Что-то типа такого:

#!/bin/sh

DISPLAY="${DISPLAY:-\:2}"
export DISPLAY

setxkbmap 'us,ru'
exec dbus-run-session -- lutris

и xinit /path/to/this/script -- :4.

P.S. википедии любых дистров для домохозяек не подходят

Вики Арча — вполне человеческое. Да, там много арчеспецифического, но почти всё применимо к большинству дистрибутивов Linux.

mord0d ★★★★★
()
Ответ на: комментарий от realiddqd
#!/bin/bash
export DISPLAY=:2
/usr/bin/lutris

Достаточно просто DISPLAY=:2 /usr/bin/lutris, но оба варианта не будут работать если сессия на DISPLAY=:2 не запущена.

Можно ещё так:

#!/bin/sh

DISPLAY="${DISPLAY:-\:2}"
export DISPLAY

run_lutris() {
  setxkbmap 'us,ru'
  exec dbus-run-session -- /usr/bin/lutris
}
xinit run_lutris ${DISPLAY} vt3

И пинать его напрямую из tty.

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

Может чего не так делаю, но не работает.

у меня есть 2 файла: xserverrc

#!/bin/sh
exec /usr/bin/Xorg -nolisten tcp "$@" vt$XDG_VTNR
xinitrc
 icewm-session 
я запускаю сессию командой startx от обычного пользователя.

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

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

Попробуй запустить во второй сессии эмулятор терминала, запустить из него lutris и посмотреть на то, что он скажет при запуске. Только предварительно убедись что у тебя DISPLAY экспортирован в сессию (echo $DISPLAY).

mord0d ★★★★★
()
Ответ на: комментарий от mord0d
fr0st@linux-g0ei:~> echo $DISPLAY
:2
fr0st@linux-g0ei:~> lutris
Unable to load locale dir, translations won't work.
2020-10-27 23:29:41,428: MAME XML generation launched in the background, not returning anything this time
2020-10-27 23:29:41,428: Getting full game list from MAME...
2020-10-27 23:29:41,435: MAME isn't installed, can't retrieve systems list.
2020-10-27 23:29:41,515: Running Lutris 0.5.7.1
2020-10-27 23:29:41,515: Using X.Org
2020-10-27 23:29:41,515: Running Mesa driver 20.2.1 on Radeon RX 560 Series (POLARIS11, DRM 3.38.0, 5.8.15-1-default, LLVM 10.0.1) (0x67ff)
2020-10-27 23:29:41,515: GPU: 1002:67FF 1043:0531 using amdgpu drivers
2020-10-27 23:29:41,536: Vulkan is supported
2020-10-27 23:29:41,766: Connected to lutris.net as realiddqd
2020-10-27 23:29:42,231: MAME XML written
2020-10-27 23:29:54,550: Shutting down Lutris - выключил потому что он в вейленд показался
realiddqd
() автор топика
Ответ на: комментарий от realiddqd

А если указывать в этой же сессии принудительно DISPLAY для запуска lutris, происходит то же самое?

DISPLAY=:2 lutris

Вообще, странное поведение, но я никогда не пользовался Wayland, тыкал ещё когда он только начинал, но тогда под ним мало что запускалось вообще.

2020-10-27 23:29:41,515: Using X.Org

Не понимаю как/почему он выбирает не текущую сессию, а соседнюю. С экспортированным DISPLAY этого происходить не должно.

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

Пробовал, такая же фигня.

Через жопу, но работает и ладно

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

Командой startx /usr/bin/steam – :2 запускаются иксы и стим без вм и прочей шелухи в tty3. Сраный лутрис нет, да и хер с ним.

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