Определить статус входной каретки под любым или большинством Linux DE? - PullRequest
0 голосов
/ 18 февраля 2020

Итак, я предложил это решение для Gnome 3 с ibus, но мне нужно что-то, что также работает в KDE и XFCE или вообще не зависит от DE. Мне просто нужно знать, ожидает ли текстовое поле ввода в данный момент, и это решение, которое в настоящее время работает под Ubuntu 19.10.

Мне просто нужно сделать его более совместимым с другими DE.

IBUSADD=$(cat ~/.config/ibus/bus/`ls ~/.config/ibus/bus -1rt | tail -n1` | awk -F'IBUS_ADDRESS=' '{print $2}' | xargs)

dbus-monitor --address $IBUSADD "path='/org/freedesktop/IBus/Panel/Extension/Emoji',interface='org.freedesktop.IBus.Panel',member='FocusOut'"

Если необходимо установить ibus, то это то, что я устанавливаю, но в GalliumOS (xfce) у меня все еще нет доступа к местоположению org.freedesktop.ibus.panel. Мне нужно найти другой способ.

# Actually ibus-mozc ibus-anthy installs japanese support - 
# may not need to do that just to run ibus-setup.. 
# unless it brings in missing dependencies for ibus-setup?
sudo apt-get install ibus-mozc ibus-anthy
ibus-setup

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

1 Ответ

0 голосов
/ 18 февраля 2020

Я уверен, что только что нашел ответ, который решил это более или менее. Будут оценены альтернативы, но теперь я понял, что другой системе, на которой я установил ibus, просто нужно было перенести ввод с клавиатуры для использования ibus через раскрывающееся меню. enter image description here

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

im-config -n ibus

Кроме того, вышеупомянутое решение действительно работает, если фильтр меньше специфицируется c , Достаточно удалить любое упоминание о расширении Emoji, которое может или не может быть включено, и тогда решение, совместимое с любым DE, работающим с IBus, из того, что я могу сказать.

path='/org/freedesktop/IBus/Panel
...