LINUX.ORG.RU
решено ФорумGames

Xorg, как форсированно переключить клавиатуру на «US» раскладку перед запуском игры?

 ,


1

1

Привет, у нативного Transport Fever 2 есть противный глюк, если его стартовать из Steam в то время когда выбрана раскладка клавиатуры «RU» отваливаются «горячие клавиши», помогает только перезапуск при «правильной» раскладке. Собсно хочу в его свойствах Steam перед %command% написать что то такое что принудительно переключит раскладку на «US».

Какой у меня WM\DE не пишу потому что это не важно, переключением раскладок управляет Xorg.

PS. Локаль тут ни при чём, не нужно не вникая в вопрос советовать LC_ALL=C.

★★★★★

Последнее исправление: Jameson (всего исправлений: 1)

setxkbmap us? Но это как-то радикально, потом придётся восстанавливать настройки, какие были. В скрипте, наверно, можно сохранить результат setxkbmap -query во временный файл и потом скормить его обратно.

alegz ★★★★★
()

В настройках нет привязки к кейкодам, а не раскладке? Обычно такой чекбокс решает проблему на линуксе.

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

В настройках нет привязки к кейкодам, а не раскладке? Обычно такой чекбокс решает проблему на линуксе.

В настройках игры такого нет.

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

setxkbmap us? Но это как-то радикально, потом придётся восстанавливать настройки, какие были. В скрипте, наверно, можно сохранить результат setxkbmap -query во временный файл и потом скормить его обратно.

Как вариант, могу скрипт написать, да, но хотелось бы как то проще и лаконичнее, чтобы выход не ловить и настройки не восстанавливать, просто активную раскладку переключить.

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

Частичное решение, но во время игры раскладка естественно не переключается

setxkbmap us && %command% ; setxkbmap us,ru
Jameson ★★★★★
() автор топика

Не совсем по теме, но давным-давно, когда еще только начинал осваивать mpv столкнулся с невосприимчивостью хоткеев, при раскладке ru.

Видел, что многие дублировали все en-клавиши ru-клавишами в input.conf. Но я установил тогда gxkb, который запоминал раскладку окна.

p.s. Мой случай ну оооочень отдаленно напоминает тему, :) и я бы не стал писать, но раз уж выше предложили, как я понял, хорошее решение (xkb-switch), то почему бы и нет. )

krasnh ★★★★
()
#!/bin/sh

# Сохраняем текущую раскладку:
saved_layout="$(xkb-switch -p)"

# Функция, возвращающая сохранённую раскладку:
restore_layout() {
	xkb-switch -s "${saved_layout}"
}

# Триггер, вызывающий функцию, при завершении скрипта:
trap restore_layout EXIT INT ABRT TERM QUIT

# Переключаемся на первую раскладку (у меня оно us):
xkb-switch -s "$(xkb-switch -l | head -n1)"

# БЕЗ exec! Иначе trap работать не будет!
your-prog -args
mord0d ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.