Skip to main content

i3 script to switch between windows in history

Project description



i3 script to switch between windows in history.

This script is inspired by i3-swap-focus.

It provides a configurable history length and supports consecutive switching within the history. Besides, it can skip the closed windows, windows in scratchpad, or windows not in the current workspace.


pip install i3-switch


Add the following lines to your i3 config file:

# Start i3-switch process
exec i3-switch

bindsym $mod+Tab exec pkill -USR1 -F "/tmp/"
# Switch in the same workspaces
# bindsym $mod+Tab exec pkill -USR2 -F "/tmp/"

To change the options for i3-switch in your i3 config:

exec i3-switch --max-len 1000 --timeout 400

Consecutive Switching

When switching before it times out, the history within the consecutive switch won't be recorded.

For example, at first the records are DCBA, after switch twice consecutively, it should become BDCA.

Internally, the process is as follows: DCBA -> CDCBA -> BCDCBA -> BDCA (cleanup after timeout). This process is necessary because the signal itself is stateless, so the state is kept in the history.


Name Description Default
--max-len Max length of the window deque 100
--timeout Timeout for consecutive switching in milliseconds 500

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

i3-switch-1.2.4.tar.gz (4.4 kB view hashes)

Uploaded Source

Built Distribution

i3_switch-1.2.4-py3-none-any.whl (4.7 kB view hashes)

Uploaded Python 3

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