|2.0.0||Mar 3, 2023|
|1.1.5||May 22, 2022|
|1.1.4||Apr 12, 2022|
|1.1.3||Apr 11, 2022|
|1.1.2||Oct 16, 2021|
#74 in GUI
33 downloads per month
This binary helps you configure sway to work a bit more like Awesome. This currently means workspaces that are name-spaced on a per-screen basis.
It may also work with i3, but this is untested.
swaysome should be compatible with sworkstyle.
Arch Linux: Found on the AUR as swaysome-git.
If you have Rust installed, then you can just
cargo install swaysome and you're good to go.
Otherwise, you may grab a pre-built
binary from the
CI and put it in your
WARNING: please double-check that your
swaysome binary is in
$PATH. Depending on your setup, the
$PATH you have in your shell may not be the same as
sway's, and if
swaysome can't be called by
symptoms will only look like non-functional shortcuts.
If you're in this situation, a quick workaround is to call
swaysome with its full absolute path from
to check that everything works before fixing your
Then create the file (and the directory if needed)
~/.config/sway/config.d/swaysome.conf and paste this inside:
unbindcode $mod+10 unbindcode $mod+11 unbindcode $mod+12 unbindcode $mod+13 unbindcode $mod+14 unbindcode $mod+15 unbindcode $mod+16 unbindcode $mod+17 unbindcode $mod+18 unbindcode $mod+19 bindcode $mod+10 exec "swaysome focus 1" bindcode $mod+11 exec "swaysome focus 2" bindcode $mod+12 exec "swaysome focus 3" bindcode $mod+13 exec "swaysome focus 4" bindcode $mod+14 exec "swaysome focus 5" bindcode $mod+15 exec "swaysome focus 6" bindcode $mod+16 exec "swaysome focus 7" bindcode $mod+17 exec "swaysome focus 8" bindcode $mod+18 exec "swaysome focus 9" bindcode $mod+19 exec "swaysome focus 0" unbindcode $mod+Shift+10 unbindcode $mod+Shift+11 unbindcode $mod+Shift+12 unbindcode $mod+Shift+13 unbindcode $mod+Shift+14 unbindcode $mod+Shift+15 unbindcode $mod+Shift+16 unbindcode $mod+Shift+17 unbindcode $mod+Shift+18 unbindcode $mod+Shift+19 bindcode $mod+Shift+10 exec "swaysome move 1" bindcode $mod+Shift+11 exec "swaysome move 2" bindcode $mod+Shift+12 exec "swaysome move 3" bindcode $mod+Shift+13 exec "swaysome move 4" bindcode $mod+Shift+14 exec "swaysome move 5" bindcode $mod+Shift+15 exec "swaysome move 6" bindcode $mod+Shift+16 exec "swaysome move 7" bindcode $mod+Shift+17 exec "swaysome move 8" bindcode $mod+Shift+18 exec "swaysome move 9" bindcode $mod+Shift+19 exec "swaysome move 0" unbindcode $mod+Ctrl+10 unbindcode $mod+Ctrl+11 unbindcode $mod+Ctrl+12 unbindcode $mod+Ctrl+13 unbindcode $mod+Ctrl+14 unbindcode $mod+Ctrl+15 unbindcode $mod+Ctrl+16 unbindcode $mod+Ctrl+17 unbindcode $mod+Ctrl+18 unbindcode $mod+Ctrl+19 bindcode $mod+Ctrl+10 exec "swaysome focus-group 1" bindcode $mod+Ctrl+11 exec "swaysome focus-group 2" bindcode $mod+Ctrl+12 exec "swaysome focus-group 3" bindcode $mod+Ctrl+13 exec "swaysome focus-group 4" bindcode $mod+Ctrl+14 exec "swaysome focus-group 5" bindcode $mod+Ctrl+15 exec "swaysome focus-group 6" bindcode $mod+Ctrl+16 exec "swaysome focus-group 7" bindcode $mod+Ctrl+17 exec "swaysome focus-group 8" bindcode $mod+Ctrl+18 exec "swaysome focus-group 9" bindcode $mod+Ctrl+19 exec "swaysome focus-group 0" unbindcode $mod+Ctrl+Shift+10 unbindcode $mod+Ctrl+Shift+11 unbindcode $mod+Ctrl+Shift+12 unbindcode $mod+Ctrl+Shift+13 unbindcode $mod+Ctrl+Shift+14 unbindcode $mod+Ctrl+Shift+15 unbindcode $mod+Ctrl+Shift+16 unbindcode $mod+Ctrl+Shift+17 unbindcode $mod+Ctrl+Shift+18 unbindcode $mod+Ctrl+Shift+19 bindcode $mod+Ctrl+Shift+10 exec "swaysome move-to-group 1" bindcode $mod+Ctrl+Shift+11 exec "swaysome move-to-group 2" bindcode $mod+Ctrl+Shift+12 exec "swaysome move-to-group 3" bindcode $mod+Ctrl+Shift+13 exec "swaysome move-to-group 4" bindcode $mod+Ctrl+Shift+14 exec "swaysome move-to-group 5" bindcode $mod+Ctrl+Shift+15 exec "swaysome move-to-group 6" bindcode $mod+Ctrl+Shift+16 exec "swaysome move-to-group 7" bindcode $mod+Ctrl+Shift+17 exec "swaysome move-to-group 8" bindcode $mod+Ctrl+Shift+18 exec "swaysome move-to-group 9" bindcode $mod+Ctrl+Shift+19 exec "swaysome move-to-group 0" bindcode $mod+o exec "swaysome next-output" bindcode $mod+Shift+o exec "swaysome prev-output" exec "swaysome init 1"
Finally append your
sway configuration with this:
You should end-up with workspaces from
0, prefixed with a screen index,
giving you workspace
11 on the first screen, and workspace
21 on the second
one, both accessible with shortcut
$mod+1 when focused on the right output.
init command simply walks through every screen to initialize a prefixed
workspace. It does it backwards so that you end-up focused on the first screen,
Exhaustive swaysome commands list
move [name]: move the focused container to
[name]on the same group
move-to-group [id]: move the focused container to the same relative workspace on the
next-output: move the focused container to the next output
prev-output: move the focused container to the previous output
focus [name]: change focus to
[name]on the same group
focus-all-outputs [name]: change all outputs focus to
focus-group [id]: change focus to group
next-group: change focus to the next workspace group
previous-group: change focus to the previous workspace group
init [name]: cycle all outputs to create a default workspace with name
rearrange-workspacesRearrange already opened workspaces to the correct outputs, useful when plugging or unplugging screens
- Starting with 2.0,
prev_outputhave been changed to