Не очень знакомы с perl или bash-скриптами, пытаясь написать скрипт для переключения внутренней клавиатуры (на ноутбуке с использованием внешней механической клавиатуры).bash or perl: включить внутренний скрипт клавиатуры
Переключить внутренняя клавиатура достаточно легко сделать с помощью команды Xinput:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Elan Touchpad id=11 [slave pointer (2)]
⎜ ↳ SINO WEALTH USB KEYBOARD id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ USB2.0 VGA UVC WebCam id=10 [slave keyboard (3)]
↳ Asus WMI hotkeys id=12 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
↳ SINO WEALTH USB KEYBOARD id=14 [slave keyboard (3)]
Определить идентификатор и плывут количество AT Переведенный Set 2 клавиатуры (встроенный в клавиатуру).
$ xinput float 13
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Elan Touchpad id=11 [slave pointer (2)]
⎜ ↳ SINO WEALTH USB KEYBOARD id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ USB2.0 VGA UVC WebCam id=10 [slave keyboard (3)]
↳ Asus WMI hotkeys id=12 [slave keyboard (3)]
↳ SINO WEALTH USB KEYBOARD id=14 [slave keyboard (3)]
∼ AT Translated Set 2 keyboard id=13 [floating slave]
Чтобы установить использование клавиатуры:
$ xinput reattach 13 3
никаких серьезных проблемы здесь, просто любопытно о написании сценария, чтобы сделать это автоматически, до сих пор у меня есть некоторый макет код, который идет как это:
#bin/bash
val string = xinput | grep "AT keyboard"
if(parse(string).attached)
val floatPartNumber = parse(string).id
val reattachNumber = parse(string).slaveNumber
# float keyboard
xinput float floatPartNumber
# create hidden file for storage
file = makeFile(".reattachData")
#add needed data to file
writeTOFile(file)(floatPartNumber)
writeTOFile(file)(reattachNumber)
fi
else
val file = openFile(".reattachData")
val floatPartNumber = file.lineOne
val reattachNumber = file.lineTwo
# reattach keyboard
xinput reattach floatPartNumber reattachNumber
end
Я хочу перевести это в скрипт bash или perl, что-то легко запускаемое без перескакивания через любые обручи из моей оболочки.
Либо, что может быть хорошим онлайн-ресурсом или ресурсами, для меня ссылка при создании правильного синтаксиса для этого? Или как будет выглядеть функциональная версия этого скрипта?
Спасибо, что это работает как шарм. Это нормально без обработки ошибок для моего использования, потому что это очень предсказуемая, особая ситуация, когда я запускаю этот скрипт с небольшой неопределенностью относительно жестко закодированной строки , –