All Projects â†’ zen-tools â†’ gxkb

zen-tools / gxkb

Licence: other
🇫🇷🇬🇧🇩🇪 X11 keyboard indicator and switcher

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
M4
1887 projects
shell
77523 projects

Projects that are alternatives of or similar to gxkb

Clearine
Beautiful Logout UI for X11 window manager
Stars: ✭ 92 (-8.91%)
Mutual labels:  x11, gtk3
Quicktile
Adds window-tiling hotkeys to any X11 desktop. (An analogue to WinSplit Revolution for people who don't want to use Compiz Grid)
Stars: ✭ 719 (+611.88%)
Mutual labels:  x11, gtk3
notification-thing
Python-based implementation of Desktop Notifications Specification (notification-daemon)
Stars: ✭ 24 (-76.24%)
Mutual labels:  gtk3
markdown-rs
Simple Markdown editor
Stars: ✭ 47 (-53.47%)
Mutual labels:  gtk3
katriawm
A non-reparenting, dynamic window manager with decorations
Stars: ✭ 53 (-47.52%)
Mutual labels:  x11
Hypr
Hypr is a tiling window manager written in modern C++.
Stars: ✭ 659 (+552.48%)
Mutual labels:  x11
adw-gtk3
The theme from libadwaita ported to GTK-3
Stars: ✭ 660 (+553.47%)
Mutual labels:  gtk3
shapebar
A simple bar based on Lemonbar.
Stars: ✭ 16 (-84.16%)
Mutual labels:  x11
nextshot
A simple tool for taking screenshots on Linux and sharing via Nextcloud
Stars: ✭ 37 (-63.37%)
Mutual labels:  x11
voidwm
voidwm • sanely patched dwm
Stars: ✭ 32 (-68.32%)
Mutual labels:  x11
xcb-util-xrm
XCB utility functions for the X resource manager
Stars: ✭ 52 (-48.51%)
Mutual labels:  x11
postcss-gtk
Processes GTK+ CSS into browser CSS
Stars: ✭ 23 (-77.23%)
Mutual labels:  gtk3
knime-docker
KNIME Analytics Platform & SDK with Docker Container in X11 desktop
Stars: ✭ 19 (-81.19%)
Mutual labels:  x11
AbsTK
The Abstract Toolkit – a widget toolkit for GUI and text-mode applications.
Stars: ✭ 67 (-33.66%)
Mutual labels:  gtk3
wingpanel-indicator-datetime
Wingpanel Date & Time Indicator
Stars: ✭ 28 (-72.28%)
Mutual labels:  gtk3
tym
Lua-configurable terminal emulator
Stars: ✭ 119 (+17.82%)
Mutual labels:  gtk3
desktop-entry-creator
A user-friendly GUI for creating desktop entries for installed applications on Linux
Stars: ✭ 47 (-53.47%)
Mutual labels:  gtk3
westford
Westford Wayland Compositor
Stars: ✭ 39 (-61.39%)
Mutual labels:  x11
simdock
small dock with pseudo-transparency and good window handling
Stars: ✭ 31 (-69.31%)
Mutual labels:  x11
hazzy
Touchscreen UI for LinuxCNC
Stars: ✭ 30 (-70.3%)
Mutual labels:  gtk3

gxkb

Latest release

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].