/gxkb

:fr::uk::de: X11 keyboard indicator and switcher

Primary LanguageC

gxkb

Latest release Build Status

X11 keyboard layout indicator and switcher

screenshot 1 screenshot 2

Description

gxkb is a tiny indicator applet which allows to quickly switch between different keyboard layouts in X.
A flag corresponding to the country of the active layout is shown in the indicator area.
The applet is written in C and uses GTK+ library and therefore does not depend on any GNOME components.

Dependencies

  • GTK3
  • libwnck-3
  • libxklavier16
  • libayatana-appindicator3

Installing

Debian and Ubuntu

sudo apt-get install gxkb

Fedora

sudo dnf install gxkb

Building from source

  • Install dependencies

    • Debian

      sudo apt-get install libwnck-3-dev libxklavier-dev libgtk-3-dev dh-autoreconf dh-make devscripts fakeroot

      For AppIndicator support:

      sudo apt-get install libayatana-appindicator3-dev
  • Build

    wget https://github.com/zen-tools/gxkb/archive/master.tar.gz -O gxkb.tar.gz
    tar xzf gxkb.tar.gz
    cd gxkb-master
    ./autogen.sh
    ./configure

    For AppIndicator support:

    ./configure --enable-appindicator=yes

    Then:

    make && sudo make install

Usage

  • Show version and features

    gxkb -v
  • Run from a terminal

    gxkb &

Features

  • AppIndicator support

    To switch that off use the following command during building phase:

    ./configure --enable-appindicator=no
  • Custom flags support

    Put your flag images in .local/share/gxkb/flags in PNG format
    with the names like <country code>.png, e.g. us.png, ru.png, ua.png
    and the sizes of 24x24 pixels each

  • Scrolling support

    Switch layouts by scrolling while hovering over the flag

  • Using Scroll Lock led to indicate alternate layouts

    Can be changed in .config/gxkb/gxkb.cfg

Configuration

Configuration is done via config file: .config/gxkb/gxkb.cfg

The most interesting options are:
layouts=us,ru,ua
toggle_option=grp:alt_shift_toggle,grp_led:scroll,terminate:ctrl_alt_bksp

Instead of grp:alt_shift_toggle you can use whatever the following command gives you: grep grp:.*toggle /usr/share/X11/xkb/rules/base.lst

Known issues

  • In Elementary OS Freya gxkb does not work. Trying to figure out why.

  • In Gnome2/Gnome3, Unity, E17, possibly in KDE3/KDE4:
    Q: The layout does not get changed properly while switching between windows.
    A: In your DE settings find keyboard layout control settings, disable the inheriting of the layouts from parent window and disable splitting layouts between windows.

  • In Gnome3/Unity:
    Q: The layout icon is not displayed in system tray area.
    A: Due to different versions of Gnome3 there is no easy answer, Google might help to find the right one. But in fact gxkb works under the hood, so you can use the Gnome3/Unity system indicators for icon displaying, just don't forget to disable the splitting layouts between different windows.

  • In XFCE 4.12:
    Q: The layout icon is not displayed in system tray area.
    A: In "sessions and startup" settings try to find and disable indicator‑application‑service.
    More details here.

  • In Unity + AppIndicator:
    Q: The layout switching does not work.
    A: It can happen when the system layout switcher indicator‑keyboard uses the same key combination.
    One possible solution to this may be to assign an unused key combination for indicator‑keyboard.
    Another solution may be to remove the package indicator‑keyboard, but that will also remove the Unity control center, which will be replaced by a Gnome control center.