Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

An i3/Sway utility to switch focus to your last focused window. Alt+Tab in i3

License

Notifications You must be signed in to change notification settings

Cretezy/i3-back

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

21 Commits

Repository files navigation

i3-back

An i3/Sway utility to switch focus to your last focused window. Allows for behavior similar to Alt+Tab on other desktop environments.

Features:

  • Can switch between your 2 most recent windows
    • Runs a daemon (background process) to listen for focus changes and sets a mark
  • Supports i3 and Sway
  • Supports floating windows
  • Can be binded to any key through i3's bindsym

Demo

2023年02月25日.18-32-33.mp4

Installation

i3-back requires i3/Sway. It is written in Rust. It can be installed through many method:

  • Cargo (Rust's package manager) package:

    cargo +nightly install i3-back
    
  • Arch Linux from the AUR (i3-back-bin):

    yay -S i3-back-bin # Or with paru or other AUR wrappers
    # Or manually: https://wiki.archlinux.org/title/Arch_User_Repository#Installing_and_upgrading_packages
    
  • Debian/Ubuntu as a deb from GitHub releases

  • Binary from GitHub releases

Setup

In your i3/Sway configuration (~/.config/i3/config/~/.config/sway/config):

# Start the daemon which listens to focus changes and sets _back mark
exec --no-startup-id ~/.cargo/bin/i3-back
# Bind a switch key, which focuses the previously focused window
bindsym $mod+Tab [con_mark=_back] focus

Replace ~/.cargo/bin with wherever the i3-back binary is placed if not installed through Cargo.

Options

All options are optional. Options are passed to i3-back as flags.

Example exec with options:

exec --no-startup-id ~/.cargo/bin/i3-back --debug --mark _last

Available options:

  • --help/-h: See help text. Also see --version
  • --mark <MARK>/-m <MARK>: Change the default _back mark name. Make sure to update your switcher bind's con_mark to match
  • --debug/-d: Print extra debugging information

Example i3-back --help:

An i3/Sway utility to switch focus to your last focused window. Allows for behavior similar to Alt+Tab on other desktop environments.
Usage: i3-back [OPTIONS]
Options:
 -m, --mark <MARK> Change the name of the mark to set [default: _back]
 -d, --debug Print extra debugging information
 -h, --help Print help
 -V, --version Print version

How it works

The daemon (i3-back) listen for i3 window events (through i3's socket, from the I3SOCK environment variable). When a window event is received, i3-back records the previously focused window ID. When the previous focus has changed, it sets the _back mark (or whichever is configured through the --mark flag) to the last focused window.

When the switch bind is called (through i3's bindsym), it focuses the mark set by the daemon.

Prior work

About

An i3/Sway utility to switch focus to your last focused window. Alt+Tab in i3

Resources

License

Stars

Watchers

Forks

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /