Установите ibus
в диспетчере программного обеспечения:
Запустите команду ibus-daemon
.
Он уже должен появиться в системном трее.
Щелкните правой кнопкой мыши значок в области уведомлений, чтобы получить доступ к настройкам, настроить сочетание клавиш и добавить макеты.
Добавьте эту строку в ~ / .fluxbox / keys
:
ibus-daemon &
Переключайте раскладки, щелкая левой кнопкой мыши значок в трее или используя ярлык для просмотра списка вариантов.
Это решение, похоже, имеет серьезное ограничение в том, что оно может не иметь доступа к некоторым вариантам макета .
Нет, такого ограничения нет. Если бы это было так, команды, которые на практике не реализуют управление заданиями (, а только оболочки ), не смогли бы разветвить процесс (, поскольку дочерние процессы наследуют группу процессов )при запуске. как xterm -e that-command
, например.
Даже если лидером сеанса является интерактивная оболочка с включенным управлением заданиями, вы можете иметь другие процессы в его группе.
Работает:
xterm -e 'sleep 1000 & exec zsh'
И в этомxterm
:
PID PGID SID TTY TIME CMD
14003 14003 14003 pts/20 00:00:00 zsh
14004 14003 14003 pts/20 00:00:00 sleep
14012 14012 14003 pts/20 00:00:00 ps
Большинство команд, запускаемых из интерактивной оболочки, выполняются в отдельных группах процессов, но это не относится ко всем.
Например, вbash
:
$ exec 3< <(sleep 1000)
$ ps -j
PID PGID SID TTY TIME CMD
13913 13913 13913 pts/19 00:00:00 bash
14136 13913 13913 pts/19 00:00:00 bash
14137 13913 13913 pts/19 00:00:00 sleep
14138 14138 13913 pts/19 00:00:00 ps
Или процессы, запущенные в рамках расширения подсказки:
$ PS1=$'$(ps -j)\n$ '
PID PGID SID TTY TIME CMD
14212 14212 14212 pts/18 00:00:00 bash
14292 14212 14212 pts/18 00:00:00 ps
$
Все внешние команды выполняются в группе процессов, отличной от группы процессов оболочки. Оболочка является лидером сеанса и, таким образом, является единственным процессом в своей группе процессов.
Все команды, принадлежащие одному конвейеру, находятся в одной группе процессов.