[HN Gopher] Papersway - a scrollable window management for Sway/...
       ___________________________________________________________________
        
       Papersway - a scrollable window management for Sway/i3wm
        
       Author : smartmic
       Score  : 164 points
       Date   : 2024-08-24 21:39 UTC (1 days ago)
        
 (HTM) web link (spwhitton.name)
 (TXT) w3m dump (spwhitton.name)
        
       | Coolbeanstoo wrote:
       | The demo video here is quite convincing, I'd seen paperwm before
       | but not really understood the idea of it. May add this to my sway
       | setup :)
        
       | christophilus wrote:
       | Niri is my current daily driver. I absolutely love it.
       | 
       | Edit: I realize this isn't about Niri, but it's basically Niri on
       | i3.
        
       | 3np wrote:
       | Cool project!
       | 
       | Feedback: I highly suggest a project rename to something that
       | does not have "sway" in the name. Reading the source it seems
       | like it actully has no dependency, API compatibility, or direct
       | interaction with either Sway, i3, or PaperWM?
       | 
       | Sway and i3 just happen to be the most well-known tiling WMs of
       | the hour. There are a bunch of other tiling WM which seem like
       | they will work just fine with Papersway. The docs make it seem
       | like it should only be expected to work with Sway and i3. The
       | possibility is high that most users will not look beyond the
       | "NAME" section before bouncing if they are not already using
       | either of those two and also already familiar with PaperWM.
       | 
       | Less urgently in the docs, it would be nice to be able to get an
       | rough idea about what the project does and the "pitch" without
       | having the reader research PaperWM first.
       | 
       | Why define it strictly in terms of other projects? Why not be
       | usable with other tiling WMs?
        
         | complaintdept wrote:
         | > This is an implementation of PaperWM-like scrollable 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 might be of interest.
         | 
         | Seems relevant.
        
         | spwhitton wrote:
         | It works by interacting with Sway's IPC API. (Or i3's IPC API.)
        
         | eichin wrote:
         | If you look at bin/papersway itself,
         | 
         | my $wm_ipc_socket = $have_sway ? $ENV{SWAYSOCK} : $ENV{I3SOCK};
         | my $wmipc = AnyEvent::I3->new($wm_ipc_socket);
         | $wmipc->connect->recv or die "couldn't connect to WM IPC
         | socket";
         | 
         | (One of the reasons I moved from ratpoison to i3 in the first
         | place was that i3 has this kind of interface, though usually I
         | use i3-msg and jq directly. I'd be curious if there are others
         | like it...)
        
       | hkmaxpro wrote:
       | Related projects (from niri's README):
       | 
       | PaperWM (Gnome) https://github.com/paperwm/PaperWM
       | 
       | karousel (KDE) https://github.com/peterfajdiga/karousel
       | 
       | niri (wayland) https://github.com/YaLTeR/niri
       | 
       | hyprscroller (hyprland plugin)
       | https://github.com/dawsers/hyprscroller
       | 
       | hyprslidr (hyprland plugin) https://gitlab.com/magus/hyprslidr
       | 
       | PaperWM.spoon (MacOS) https://github.com/mogenson/PaperWM.spoon
        
         | Zetaphor wrote:
         | I've become a really big fan of this model of window management
         | after using Karousel on KDE for the last 3 months. This is
         | especially useful if you're using a widescreen monitor.
         | 
         | I never understood the appeal of tiling as 99% of the time I am
         | focused on a single window at a time and I want it to take the
         | full height of my display, so scrolling with the focused window
         | centered is my ideal workflow.
         | 
         | I only wish I had the ability to quickly toggle the side-by-
         | side mode that is default with these for the occasional time I
         | need to have a code editor next to my browser.
         | 
         | If anyone knows if any of these supports that toggle, while
         | also supporting the other key features I use in karousel (being
         | able to shrink/expand the focused window with a hotkey), then
         | I'd be willing to leave KDE to get that _perfect_ workflow.
        
           | dsissitka wrote:
           | It sounds like we might have similar goals.
           | 
           | https://news.ycombinator.com/item?id=41343002
        
           | spwhitton wrote:
           | papersway has a toggle like that :)
        
           | ccakes wrote:
           | https://news.ycombinator.com/item?id=39803702
           | 
           | This got pretty close to perfect for me
        
           | celrod wrote:
           | Do you not often quickly look between files? If so, odds are
           | you're using tiles within tmux, vim, emacs, vscode, or
           | something.
           | 
           | I use kakoune, which has a client/server architecture. Each
           | kak instance I open within a project connects to the same
           | server, so it is natural for me to use my WM (niri) to tile
           | my terminals, instead of having something like tmux or the
           | editor do the tiling for me. I don't want to bother with more
           | than one layer of WM, where separate layers don't mix.
        
           | OJFord wrote:
           | > I never understood the appeal of tiling as 99% of the time
           | I am focused on a single window at a time and I want it to
           | take the full height of my display
           | 
           | Even if everything is full screen, it enforces that I don't
           | have something else hidden behind, gives me the ability to
           | snap immediately between them (programs/workspaces) with a
           | keyboard shortcut.
           | 
           | I mostly only have 1 full screen program per workspace (sway
           | on Linux, yabai on macOS) but find that invaluable, really
           | struggle to use say my wife's laptop with an overlapping mess
           | of windows, where the best I can is tab between them. The
           | main exception, where I do have them actually tile, is
           | terminals - I don't need the full width anyway, so my
           | workspace 1 is always 2-3 alacritty instances. Everything
           | else that's always open is full screen in its own workspace.
        
           | linsomniac wrote:
           | >I never understood the appeal of tiling
           | 
           | I like physical positional cues, and being able to just flick
           | my eyes over to other things to check status rather than
           | having to scroll through hidden context. I have a terrible
           | habit of losing my train of thought if I check on something
           | that's hidden, and thereby hide my current work. So just
           | being able to glance and then glance back is a huge plus.
           | 
           | I also have an insane amount of screen real estate on my work
           | machine (2x 4K 30" displays, 1x 2K 15"), so I can have
           | everything on screen at once. I mostly use terminals, a
           | couple browsers, and slack, so YMMV if you are using a bunch
           | of IDE-like windows or the like.
        
         | LanternLight83 wrote:
         | Related projects[1]:
         | 
         | Spacial Shell (i3/Sway, OCaml)
         | https://github.com/lthms/spatial-shell
         | 
         | Newm (Wayland, vry fancy) https://sr.ht/~atha/newm-atha/
         | 
         | Video of newm https://youtu.be/z7S3L-RZskY
         | 
         | Obsolete (but fascinating):
         | 
         | CardboardWM (https://gitlab.com/cardboardwm/cardboard)
         | 
         | EndlessWM (Wayland) https://github.com/peterfajdiga/EndlessWM
         | 
         | 1: From
         | https://lobste.rs/s/urwcat/spatial_shell_6th_release_might_b...
        
       | idle_zealot wrote:
       | Window management has been stagnant so long. I have mixed
       | feelings about the Paper paradigm, but it's heartening to see
       | some work in the space experimenting with the bedrock UX for
       | operating systems, and hope we can eventually move past the
       | floating windows approach on desktop and clumsy swipe-between-
       | apps approach on mobile.
        
         | deagle50 wrote:
         | Agreed. All I want is to manage OS windows the same way I
         | manage Vim windows where the content and the container are
         | decoupled. Surprised nobody has made this yet.
        
           | ryukafalz wrote:
           | Not that you likely want to hear this as a Vim user, but I
           | believe this is how EXWM works. Windows are displayed inside
           | Emacs buffers, which are pretty decoupled from the windows
           | they happen to be in.
           | 
           | (But heck, with evil-mode maybe it'd feel pretty familiar?)
        
             | deagle50 wrote:
             | No worries - I drove Doom for ~6 months and got fed up with
             | the lag, and with Lisp. I have a wrapper for Yabai that
             | places new windows into a predetermined number of
             | containers and allows me to move them quickly. It works ok.
             | 
             | I think Hyperland or i3/Sway could also be scripted to
             | behave this way.
        
             | cmrdporcupine wrote:
             | I tried exwm a couple times and the thing that got me
             | everytime was that it was... ok... as a window manager...
             | but actually made working with _emacs_ as a text editor
             | really uncomfortable. I 'm talking keybindings overlap (or
             | not), and buffer management generally. It got really
             | confusing. (That and the single-threaded behaviour of emacs
             | generally, freezing up etc)
        
           | jbaber wrote:
           | Ratpoison does this if I'm understanding correctly.
        
           | enticeing wrote:
           | musca is an X window manager that does something like this,
           | where the tiling layout and windows are decoupled.
           | github.com/enticeing/musca
        
           | jauntywundrkind wrote:
           | One thing I do want to mention as a vim limitation, even with
           | neovim & it's headless+client modes, there is still only a
           | single screen. I'd love a neovim where I can have multiple
           | separate clients connected to the same session, but each as a
           | separate viewpoint (but shared list of buffers, shared
           | registers, shared so much).
           | 
           | Doesnt seem super applicable to window managers at the
           | moment, but there being a singular screen does seem like a
           | severe UI limitation.
        
             | deagle50 wrote:
             | I do miss emacs frames.
        
           | globular-toast wrote:
           | I think Emacs works the same with frame/buffers. What I
           | really like in Emacs is not having "tabs" or anything like
           | that. I can always open any file on the filesystem, why do I
           | care what it is open currently? Only at the moment I want to
           | switch do I want to see a list, but I don't want to select it
           | like some neanderthal, I want to narrow it down by typing.
           | 
           | I wonder how well this would work for a WM, though. Processes
           | are a lot heavier than buffers so it kind of does matter how
           | many are running. Unless it's a system like Android where any
           | app expects to be oom killed at any time.
        
       | dsissitka wrote:
       | I do something similar with i3's built in horizontal tabs. A few
       | terminals and a browser look like this:
       | 
       | https://i.imgur.com/8vVNYno.png
       | 
       | You can add or remove columns by moving a window past an edge:
       | 
       | https://i.imgur.com/MlPR05b.png
        
         | spwhitton wrote:
         | Yeah, that's what I used to do, basically, before writing
         | papersway. I was happy with it for many years.
        
       | coppsilgold wrote:
       | I settled on a very simple approach to window management:
       | workspaces.
       | 
       | My sway setup has 20 workspaces on the main monitor and 10 for
       | each other monitor.
       | 
       | Most workspaces are dedicated to just a single window, some have
       | more as is their purpose.
        
         | globular-toast wrote:
         | I'm curious how you switch between workspaces. Do you give them
         | names? I currently keep a mental list of what each workspace is
         | for, but I still use the standard numbers 0-9.
        
           | coppsilgold wrote:
           | I keep them as unnamed numbers and remember what I use each
           | one for. I switch mostly with scrollwheel or directly with
           | keyboard.
        
       | WD-42 wrote:
       | Paperwm is so good! Been daily driving it over a year. Cool to
       | see it coming to sway.
        
       | eichin wrote:
       | https://www.youtube.com/watch?v=QifpqSiNSKA is the author showing
       | it off (since the visual aspect is kind of the whole point.) (The
       | little window-layout section of the status bar is neat, but I get
       | the "monocle" version of this with stock i3 with a lot less
       | effort - `workspace_layout tabbed` and some key bindings :-)
        
       | rrgok wrote:
       | Is there a solution like Paperwm for Windows? I've been looking
       | for it quite some time...
        
       | morsch wrote:
       | How does it interact with two or more physical displays?
        
         | Hackbraten wrote:
         | Sway uses workspaces as virtual desktops. Every workspace is
         | assigned to exactly one physical display at a time. Papersway,
         | from what I've read on the linked website, lives in a
         | workspace.
        
       | marliechiller wrote:
       | It would be great to have some screenshots or video of how this
       | works and what it looks like embedded on the landing page
       | provided. :)
        
         | riidom wrote:
         | Check out the Karousel (KDE) link from the "related projects"
         | comment: https://news.ycombinator.com/item?id=41342596
         | 
         | It has a short clip, I assume it is similar enough to the
         | actual submission to give an idea what it's about.
        
         | GrayShade wrote:
         | There is a video demo:
         | https://www.youtube.com/watch?v=QifpqSiNSKA
        
       | SuperSandro2000 wrote:
       | IMO tileable window managers are over hyped
        
       ___________________________________________________________________
       (page generated 2024-08-25 23:01 UTC)