https://img.shields.io/pypi/v/swytcher.svg https://img.shields.io/travis/eddie-dunn/swytcher.svg Documentation Status Updates

Automatically switches your keyboard layout based on your active window.

Are you using multiple keyboard layouts? Have you discovered that the US keyboard layout is a lot more suitable for programming than the layout you have to use when writing email or otherwise communicating in your native language?

Does it annoy you that you need to remember to manually switch between layouts when going from VIM to your chat/email/whatever app?

If so, Swytcher will solve your problems.


  • Switch keyboard layout based on X window class
  • Switch keyboard layout based on X window name

Planned features

  • Switch layout based on combination of window class and name
  • Remember last keyboard layout for each window


$ pip install --user swytcher


First, copy the sample configuration:

$ swytcher --cpcfg

Now you can edit ~/.config/swytcher/config.ini and add the window classes/names to the corresponding layout section.

layout_primary maps to your first keyboard layout, and layout_secondary will map to your second. If you have more than two layouts you will have to add more sections to the config file. Each additional layout section must start with layout, and be uniquely named. The order that they have in the config file should map to the order that you have defined your different layouts in.

Once you are done editing your config file, you can start Swytcher, and your keyboard layout will be switched whenever you change focus to a window that corresponds to a window class and/or name in your config file.

Swytcher has been tested with the Gnome Desktop Environmant and the i3 window manager. Since Swytcher looks at your X keyboard config it should work with most DEs and WMs.


This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.