Благодаря подсказке adawdp про loloswitcher, изменил код, и все получилось!
Автоматически загружается loloswitcher,
работает раздельное переключение раскладки клавиатуры в ubuntu по left right ctrl:
ru русский всегда по правому ctrl,
us english всегда по левому ctrl.
Из недостатков - необходимость прописать в настройках устройство ввода, которое слушаем, и,
то, что делаем у loloswitcher установленным set user id on execution (иначе не можем прослушать устройство).
В файле main.cpp кроме закомментированых строк, изменил в функции readConfig
путь к файлу config.ini на "/usr/sbin/loloswitcher.ini".
Собраный loloswitcher c установленным set user id on execution и config.ini,
переименованный в loloswitcher.ini, поместил в /usr/bin.
# LoLo Switcher config file
# Config version (do not edit this parameter!)
ConfigVersion=1
# Input device for notebook - event4
InputDevice=/dev/input/by-path/pci-0000:00:14.0-usb-0:1.3:1.0-event-kbd
# Type of device
# 0 - keyboard
# 1 - joystick
DeviceType=0
# Total number of language layout
# For example:
# if you use ENG and RUS, set 2
# if you use ENG, RUS and UKR, set 3
NumberOfLayout=2
# Language switch method
# 0 - cyclic switch
# 1 - direct switch
SwitchMethod=1
# RegExp for primary filtering device events
# For classic keyboard, set value to ^1,[0-9]+,[0-9]+;$
# and this filter enabled only KeyPress, KeyHold and KeyRelease event.
# Before research device codes (with option -t1), clear this value.
EventFilter=^1,[0-9]+,[0-9]+;$
# RegExp with codes for switch language layouts
# If you use cyclic switch method, set variable Sequence0 only.
# If you use direct switch method, set variable SequenceX
# for each layout (numeric from 0).
Sequence0=(?<!1,42,1;|1,42,2;|1,54,1;|1,54,2;|1,56,1;|1,56,2;|1,100,1;|1,100,2;)1,29,1;1,29,0;$
Sequence1=(?<!1,42,1;|1,42,2;|1,54,1;|1,54,2;|1,56,1;|1,56,2;|1,100,1;|1,100,2;)1,97,1;1,97,0;$
# Bash command if language layout switched (optional).
# Set CommandX for each layout (numeric from 0).
Command0=setxkbmap -layout us,ru
Command1=setxkbmap -layout ru,us