scroll is a Wayland compositor forked from sway, but with a scrolling layout similar to PaperWM, niri or hyprscroller.
scroll is mostly compatible with your sway configuration.
Aside from the scrolling layout, scroll adds many new features to sway, including:
- Animations: scroll supports very customizable animations.
- Rounded borders and title bars, dimming of inactive windows, and dynamic shadows with blur.
- Lua API: scroll provides a lua API to script the window manager.
- Content scaling: The content of individual windows (X and Wayland) can be scaled independently of the general output scale.
- Overview and Jump modes: You can see a full overview of the desktop and work with the windows at that scale. Jump allows you to move to any window with just a few key presses, like easymotion in some editors. There are jump modes to preview and switch workspaces, tiling or floating windows, or applications in the scratchpad. For floating windows and the scratchpad, it shows every window without overlaps for easier selection.
- Workspace scaling: Apart from overview, you can scale the workspace to any scale using key bindings or the mouse, and work at that scale.
- Several full screen modes: workspace, global, application and layout.
- Trails, trailmarks and spaces.
- Trackpad/Mouse scrolling: You can use the trackpad or mouse dragging to navigate/scroll the workspace windows.
- Portrait and Landscape monitor support: scroll is designed from the ground up to adapt its layout to both portrait or landscape monitors. You can define the layout orientation per output (monitor) or change it with a key stroke.
...and many other features.
Make sure to check out the TUTORIAL linked from the main README. It contains several videos explaining some of the features.
I have released scroll, a new Wayland compositor. It is a fork of sway with a layout similar to PaperWM or niri. It is based on my plugin for Hyprland, hyprscroller.
Aside from the usual scrolling workflow, it remains very compatible with sway's configuration, and adds new features like:
- Workspace Scaling: you can work at any scale. This also supports overview and quick jump modes (like easymotion).
- Content Scaling: you can also scale the content of individual windows. You can zoom in and out, and the content will be scaled.
- Trackpad and Mouse scrolling gestures: scroll the windows of your workspace using the trackpad or dragging with the mouse.
- Portrait and Landscape monitor support: the scrolling layout adapts to your monitor transparently.
The workflow is very similar to hyprscroller on which I based it.
Note that the only layout supported is the scrolling layout. The original sway/i3 layouts have been removed to simplify things.
There is an AUR package if you want to try it out.
You can also use workspaces with a scrolling layout, you keep the advantages of both, and you don't need to keep on resizing/moving windows because they are too small.
When I moved to Hyprland after having tried almost every DE and tiling WM, I had to write my own layout plugin (hyprscroller) because of how much I missed PaperWM.
If you moved from classic DEs with floating windows and lots of mouse to a tiling WM, scrolling adds another advantage. You can even ignore it and use it as a classic tiling WM, but you also have all the advantages of scrolling once you find a use for them.
I used almost every DE and tiling window manager before I arrived to PaperWM, and when I moved to Hyprland because of its simplicity and the control it gave me, I had to write a scrolling layout because of how much I missed PaperWM.
- Having a scrolling layout doesn't prevent you from using workspaces, you have both. I use workspaces, some of which are scrolling with rows and columns depending on the task associated to them.
- Jumping to arbitrary locations also takes just one keystroke (and no mouse). For example, hyprscroller supports marks. Set a mark to a window, and you can jump (and get immediate focus) to that window with a key combination. You can move to your editor, e-mail program etc, with one key press, even if they are in different workspaces and not seen on the screen (kind of like in vim)
- You don't need to browse through stacks of hidden windows, they can all be at their preferred size and "seen" at the same time. Once you accept the paradigm, it is very fast, and there is support for overview modes where you can see all your windows scaled to fit the monitor.
- You can automatically resize a set of windows to fit your monitor with a key stroke, allowing you to have all your currently needed windows (editor, docs, browser) visible at the same time, while you don't "lose" the rest, they are simply outside of the monitor area, a keystroke away, and keeping their original size.
It changed the way I work so much I had to write my own plugin as soon as I moved to Hyprland. You basically forget about the mouse and resizing/moving windows.
https://github.com/dawsers/scroll