You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tassilo Horn 8b7bc263dd Fix mailinglist url 4 years ago
.builds Add build manifest for Arch & put build status badge in README.md 4 years ago
src New switch-to-urgent-or-lru-window command; add module docs 4 years ago
.gitignore New subcommand switch-workspace-or-window 4 years ago
Cargo.toml Release swayr 0.1.0 4 years ago
LICENSE Add README.md, complete Cargo.toml, add license, etc. 4 years ago
README.md Fix mailinglist url 4 years ago
rustfmt.toml Refactor and improve 4 years ago

README.md

Swayr is a window switcher (and more) for sway

Swayr consists of a demon, and a client. The demon swayrd records window/workspace creations, deletions, and focus changes using sway's JSON IPC interface. The client swayr offers subcommands, see swayr --help.

Right now, there are these subcommands:

  • switch-window displays all windows in the order urgent first, then LRU, focused last and focuses the selected.
  • quit-window displays all windows and quits the selected one.
  • switch-to-urgent-or-lru-window switches to the next window with urgency hint (if any) or to the last recently used window.
  • switch-workspace displays all workspaces in LRU order and switches to the selected one.
  • switch-workspace-or-window displays all workspaces and their windows and switches to the selected workspace or window.
  • quit-workspace-or-window displays all workspaces and their windows and allows to quit either the selected workspace (all its windows) or the selected window.
  • execute-swaymsg-command displays most swaymsg which don't require additional input and executes the selected one. That's handy especially for less often used commands not bound to a key.
  • execute-swayr-command displays all commands above and executes the selected one. (This is useful for accessing swayr commands which are not bound to a key.)

Usage

You need to start the swayr demon swayrd in your sway config (~/.config/sway/config) like so:

exec env RUST_BACKTRACE=1 swayrd > /tmp/swayrd.log 2>&1

The setting of RUST_BACKTRACE=1 and the redirection of the output to some logfile is optional but helps a lot when something doesn't work. Especially, if you encounter a crash in certain situations and you want to report a bug, it would be utmost helpful if you could reproduce the issue with backtrace and logging and attach that to your bug report.

Next to starting the demon, you want to bind swayr commands to some keys like so:

bindsym $mod+Delete exec env RUST_BACKTRACE=1 swayr quit-window > /tmp/swayr.log 2>&1
bindsym $mod+Space exec env RUST_BACKTRACE=1 swayr switch-window >> /tmp/swayr.log 2>&1
bindsym $mod+Tab exec env RUST_BACKTRACE=1 \
    swayr switch-to-urgent-or-lru-window >> /tmp/swayr.log 2>&1
bindsym $mod+Shift+Space exec env RUST_BACKTRACE=1 \
    swayr switch-workspace-or-window >> /tmp/swayr.log 2>&1
bindsym $mod+c exec env RUST_BACKTRACE=1 swayr execute-swaymsg-command >> /tmp/swayr.log 2>&1
bindsym $mod+Shift+c exec env RUST_BACKTRACE=1 swayr execute-swayr-command >> /tmp/swa

Of course, configure the keys to your liking. Again, enabling rust backtraces and logging are optional.

Questions & Patches

For asking questions, sending feedback, or patches, refer to my public inbox (mailinglist). Please mention the project you are referring to in the subject.

Bugs

Bugs and requests can be reported here.

Build status

builds.sr.ht status

License

Swayr is licensed under the GPLv3 (or later).