The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

papersway - PaperWM-like window management for Sway/i3wm

VERSION

version 0.001

SYNOPSIS

papersway [--i3status]

DESCRIPTION

This is an implementation of PaperWM-like 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.

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 papersway-msg focus left
        bindsym $mod+Down focus down
        bindsym $mod+Up focus up
        bindsym $mod+Right papersway-msg focus right
    
        bindsym $mod+Shift+Left papersway-msg move left
        bindsym $mod+Shift+Down move down
        bindsym $mod+Shift+Up move up
        bindsym $mod+Shift+Right move papersway-msg right
    
        bindsym $mod+f papersway-msg monocle toggle
        bindsym $mod+o papersway-msg other column
    
        bindsym $mod+a papersway-msg fresh-workspace
        bindsym $mod+n papersway-msg fresh-workspace send
        bindsym $mod+t papersway-msg fresh-workspace take
    
        bindsym $mod+e papersway-msg absorb_expel left
        bindsym $mod+r papersway-msg absorb_expel right
    
        bindsym $mod+minus papersway-msg cols decr
        bindsym $mod+equal papersway-msg cols incr
    
        bindsym $mod+i papersway-msg workspace prev
        bindsym $mod+o papersway-msg workspace next
        bindsym $mod+Shift+i papersway-msg move_workspace prev
        bindsym $mod+Shift+i papersway-msg move_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

Incompatibilities

The current implementation assumes the default configuration values for the focus_wrapping and workspace_layout configuration options, so remove any customisations you've made to those. You should also unbind the split (and splith etc.), layout, focus parent and focus child commands to avoid confusion (on the parts of both yourself and of papersway).

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-2024 by Sean Whitton <spwhitton@spwhitton.name>.

This is free software, licensed under:

  The GNU General Public License, Version 3, June 2007