Skip to main content

Automatically switch layout based on your active window

Project description

Swytcher 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.


0.3.0 (2017-09-02)


  • –version to CLI interface.

  • command for copying sample config to user’s confdir.

0.1.0 (2017-03-23)

  • First release on PyPI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swytcher-0.3.2.tar.gz (26.6 kB view hashes)

Uploaded source

Built Distribution

swytcher-0.3.2-py3-none-any.whl (12.0 kB view hashes)

Uploaded 3 6

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page