[2024-jan-12] The Wiki has been upgraded and its template changed from MonoBook to Vector for a more modern look and feel.

Welcome to the Slackware Documentation Project

Initially I did not remove the 'template' tag on purpose. I thought it'd make more sense for this page to be accessible only from the main keyboard article (Setting a keyboard layout). –sycamorex

Removed from the TOC. It's part of the generic keyboard layout article — sycamorex 2012/08/26 15:49

setxkbmap already has many ways for changing layouts (man xkeyboard-config and look at the change layout section)

  setxkbmap -layout de,gb
  setxkbmap -option 'grp:ctrl_alt_toggle'

is particularly useful when you only have two layouts you want to toggle with ctrl-alt

However with this setup setxkbmap will not give the “current” layout. The only way I could find to do that was to use xkblayout-state

The new i3script.sh is: (for i3bar output)

  i3status --config ~/.i3status.conf | while :
          read line
          LG=$(xkblayout-state print %s)
          dat=" [{\"name\":\"layout\",\"full_text\":\"$LG\"}"
          echo "${line/[{/$dat,{}" || exit 1

NOTE: the original script that uses #!/bin/sh fails on some systems where the default shell is not bash

Thank you for your comments/updates - I will update the article next week - I like the method you shown above. — Marcin Herda 2014/04/20 15:52

I had thought xkblayout-state was part of of stock Slackware. I'd rather keep everything with stock Slackware packages or packages avaiable through SB.org. I've just made a small change to shorten setxkbmap command as well as additional ways of changing layouts. — Marcin Herda 2014/04/26 04:41

 talk:howtos:window_managers:keyboard_layout_in_i3 ()