PAPERSWAY(1p)

NAME
papersway - PaperWM-like scrollable tiling window management for Sway/i3wm

VERSION
version 2.003

SYNOPSIS
papersway [--i3status] [--cols=N] [--debug]

DESCRIPTION
This is an implementation of PaperWM-like scrollable tiling window management for Sway/i3wm. If you like Sway/i3wm's commitments to stability, avoiding scope creep etc. but dislike the window management model, papersway is an alternative.

OPTIONS

--i3status
    Start a background instance of i3status, filter and print its output.

--cols=N
    Set the number of columns on a new workspace. The default, and minimum, is 2.

--debug
    Enable some debug printing and don't hide Sway's workspace buttons.

USAGE
Here we discuss how to integrate papersway into your existing Sway/i3wm configuration file, usually found at ~/.config/sway/config or ~/.config/i3/config, as appropriate.

  Activation
The recommended way to activate papersway is by using it as your bar command:

    bar {
        status_command papersway --i3status

        # [ .. further bar options .. ]
    }

This ensures that you can see a visual representation of your paper workspaces, which will be useful while getting the hang of papersway.

  Binding keys
Here are some sample bindings to get you started.

    set $mod Mod4

    bindsym $mod+Left exec papersway-msg focus left
    bindsym $mod+Down focus down
    bindsym $mod+Up focus up
    bindsym $mod+Right exec papersway-msg focus right

    bindsym $mod+Shift+Left exec papersway-msg move left
    bindsym $mod+Shift+Down move down
    bindsym $mod+Shift+Up move up
    bindsym $mod+Shift+Right move exec papersway-msg move right

    bindsym $mod+f exec papersway-msg width toggle
    bindsym $mod+o exec papersway-msg other-column

    bindsym $mod+a exec papersway-msg fresh-workspace
    bindsym $mod+n exec papersway-msg fresh-workspace send
    bindsym $mod+t exec papersway-msg fresh-workspace take
    bindsym $mod+b exec papersway-msg bury-workspace
    bindsym $mod+Shift+b exec papersway-msg bury-column

    bindsym $mod+e exec papersway-msg absorb-expel left
    bindsym $mod+r exec papersway-msg absorb-expel right

    bindsym $mod+minus exec papersway-msg cols decr
    bindsym $mod+equal exec papersway-msg cols incr

    bindsym $mod+u exec papersway-msg workspace prev
    bindsym $mod+i exec papersway-msg workspace next
    bindsym $mod+Shift+u exec papersway-msg move-to-workspace prev
    bindsym $mod+Shift+i exec papersway-msg move-to-workspace next

    bindsym $mod+c [con_mark=caffeinated] inhibit_idle none; \
        inhibit_idle open, mark caffeinated
    bindsym $mod+Shift+c [con_mark=caffeinated] inhibit_idle none, \
        mark --toggle caffeinated
    for_window [con_mark=caffeinated] inhibit_idle open

Delete any bindings you have for the split, splith, splitv, splitt, layout, focus parent and focus child commands, to avoid confusion (on the parts of both yourself and of papersway).

  Other configuration

•   Set focus_wrapping to no.

•   Leave workspace_layout with its default value, default.

SEE ALSO
<https://github.com/paperwm/PaperWM>, i3status(1), sway(5)

AUTHOR
Sean Whitton <spwhitton@spwhitton.name>

COPYRIGHT AND LICENSE
This software is Copyright (c) 2019-2025 by Sean Whitton <spwhitton@spwhitton.name>.

This is free software, licensed under:

  The GNU General Public License, Version 3, June 2007