Feature request for entire OSS community : per-window scaling in Wayland. ;)

So this is not exactly the canonical forum for such a question but I’ve already been down this rabbit trail with Wayland, sway, and Hyperland community forums and System Crafters channel has a solid history of mucking about with UI shells so I figured I would ask here anyway. Creative bunch around here.

I have lot of monitors. Like lots and lots of them. Mounted everywhere. My workstation looks like a Mission Control in every movie you’ve ever seen. I don’t want to add any more displays. What I want it to be able to selective zoom-in/zoom-out windows which do not have focus on a display so that I can roughly see what is going on in that window but I have to bring it to focus for full zoom and full detail. I want to pack more shit onto each display using zoom effects.

The community seems to refer to that as “per-window scaling” and it is something which appears impossible on shell based on X11 or Wayland. Wayland specifically only being able to do per-display scaling adjustments but not per-window scaling adjustments. Going back a way I feel like perhaps compiz was able to do this and it’s quite surprising to me that Hyprland does not even today.

Anybody have a solution?

Now, I’ve seen some folks say that the desktop would have to sort of be OpenGL-native and that would introduce so much load on the system that it would not be practical. You know what? If a system like that existed I would still give it a try. I have both and AMD and NVIDIA GPUs in this workstation and I’m willing to get creative and suffer some hackery.

What says the System Crafters community?

(Note: there’s also a Quest3 in the basement but I’m generally not all that impressed with it for various reasons and anything approaching what I have listed above seems like it would require purchasing a beta/in-development graphical shell which is not Free Software/Open Source and so, well, just “no”.

Thx y’all.

/me crosses fingers.

Sounds to me like you would like to have something like a KDE Plasma effect plugin that shrinks the display of non focused windows.

Maybe the WindowThumbnail in the example under KWin Effects | Developer is a good starting point.

    delegate: Rectangle {
        color: "pink"

        GridView {
            id: grid
            anchors.fill: parent
            cellWidth: 300
            cellHeight: 300

            model: WindowModel {}
            delegate: WindowThumbnail {
                client: model.window
                width: grid.cellWidth
                height: grid.cellHeight

                TapHandler {
                    acceptedButtons: Qt.MiddleButton
                    onTapped: client.closeWindow()
                }
            }
        }
    }

Your description sounds right but that code does something else. Perhaps that’s a mis-copy/paste?

I have to find why KWin is able to do this – albeit via plugin – but others are not. Perhaps KWin and compiz are doing it in a way that folks don’t find viable due to performance?

What’s the name of the shrink plugin?

I think this code makes live thumbnails of the windows and arranges them in a grid plus adds a handler to close them via middle mouse button.

I would try to swap the handler for one to put the window in focus and place it into a bigger slot in the grid, around which the thumbnails are arranged.

Ah, ok. I was looking at the mouse action part of it. Thanks for the pointer.

@dgr So I installed a VM of KDE Neon which already seems to have KWin Effects installed. The combination of KWin scripting and available plugins for tiling seem pretty promising. Thanks for the pointers!

1 Like