LINUX.ORG.RU

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

Юзай костыль, Люк! Напиши скрипт, кладущий в текстовый файлик либо 1 либо 0 при нажатии капса, другим скриптом читай.

Zhbert ★★★★★
()
$ xset q 2> /dev/null | grep LED
  auto repeat:  on    key click percent:  0    LED mask:  00000000

Нажимаем Caps Lock:

edigaryev@brick ~ $ xset q 2> /dev/null | grep LED
  auto repeat:  on    key click percent:  0    LED mask:  00000001

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

Спасибо тебе. А вот ты может быть и про это знаешь. Я вчера пытался вывести текущую раскладку и нашел в интернете такой способ

[code]
setxkbmap -print | grep xkb_symbols
[/code]
Вот там будет написано либо «pc+us» либо «ps+ru» так вот если я меняю раскладку комбинациями Alt+Shift то это строчка не меняется, а когда я меняю setxkbmap -layour us/ru то меняется. Это баг или так должно быть?

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

Посмотри этот топик

Блин прочитал как «Посмотри этот ролик» и пошёл смотреть :)

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

Скорее всего так и должно быть. Да и вряд ли получится узнать сторонними программами раскладку, ибо она часто привязана к отдельному окну/приложению

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

А там не так. Там 0001 - только капса. 0002 - намлок. 0003 - капса и нам лок. Кстати, у меня тут нет скролл лока, народ, посмотрите пожалуйста другие коды.

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

Там 0001 - только капса. 0002 - намлок. 0003 - капса и нам лок.

Оператор case придумали для этого. Или я неправильно понял?

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

Ну да. Но все же это непопонятиям. Правильно бы было сделать битовыми операциями.

is_caps = led & 0x01
is_num = led & 0x02
is_scroll = led & 0x04

ну и т.д. Их же много может быть, и писать большой кейс затрахаешься.

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



SOME_INPUT_VALUE=9

bits=$(printf «%32s\n» «$(echo 'ibase=10;obase=2; '${SOME_INPUT_VALUE} | bc)» )

if [ «${bits:<num_bit>:1}» = «1» ]; then
echo 'up!'
fi

Тут нумерация битов от старшего к младшему. То есть, первым (с индексом 0) будет самый старший бит, а последним (с индексом 31) - самый младший

Slavaz ★★★★★
()

> включен CapsLock или нет

Это тебе ничего не даст.

Раскладку - запросто :]

Поищи kxkbswitch или xkb (утилитка), там код простой

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