#i3 #sway #窗口 #焦点 #切换 #已聚焦 #最后

nightly app i3-back

一个用于切换到您最后聚焦窗口的i3/Sway实用工具。允许类似其他桌面环境中的Alt+Tab的行为。

7个版本

0.3.2 2023年2月26日
0.3.0 2023年2月26日
0.2.0 2023年2月26日
0.1.3 2023年2月26日

#657GUI

每月 25 次下载

MIT 许可证

10KB
105

i3-back

一个用于切换到您最后聚焦窗口的i3/Sway实用工具。允许类似其他桌面环境中的Alt+Tab的行为。

特性:

  • 可以在您最近使用的两个窗口之间切换
    • 运行守护进程(后台进程)以监听焦点变化并设置标记
  • 支持i3和Sway
  • 支持浮动窗口
  • 可以通过i3的bindsym绑定到任何键

演示

https://user-images.githubusercontent.com/2672503/221384419-3d62413d-8987-4147-82bc-5e87cea8bb90.mp4

安装

i3-back需要i3/Sway。它用Rust编写。可以通过多种方法安装

  • Cargo(Rust的包管理器)包

    cargo install i3-back
    
  • Arch Linux从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作为来自GitHub发布的deb(《GitHub发布》)

  • 来自GitHub发布的二进制文件

设置

在您的i3/Sway配置文件中(~/.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

如果未通过Cargo安装,请将~/.cargo/bin替换为您放置i3-back二进制文件的任何位置。

选项

选项作为标志传递给i3-back。使用--help/-h查看所有选项。

带有选项的示例exec

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

可用选项

  • --help/-h:查看帮助文本。还可以查看--version
  • --mark <MARK>/-m <MARK>:更改默认的_back标记名称。确保更新您的切换器绑定的con_mark以匹配
  • --debug/-d:打印额外的调试信息

示例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

工作原理

守护进程(i3-back)监听i3窗口事件(通过i3的套接字,从环境变量I3SOCK)。当接收到窗口事件时,i3-back记录之前聚焦的窗口ID。当之前的焦点发生变化时,它将守护进程设置的_back 标记(或通过--mark标志配置的任何标记)设置为最后一个聚焦的窗口。

当调用切换绑定时(通过i3的bindsym),它聚焦由守护进程设置的标记。

先前的工作

依赖项

~3–11MB
~127K SLoC