• 0 Posts
  • 14 Comments
Joined 1 year ago
cake
Cake day: June 18th, 2023

help-circle
  • There’s a very nice (albeit somewhat outdated) talk here.

    In a nutshell, both X11 and Wayland are protocols that define how software should communicate to (hopefully) display stuff on your screen.
    Protocols as in there’s a bunch of documentation somewhere that says which function a program must call to create a window, without specifying how either program or function should be implemented.
    This is great because it allows for independently written software to be magically compatible.

    X11 is the older protocol, and was working fine good enough for many years, but has issues handling a bunch of modern in-deman technologies - issues which can’t be fixed without changing the protocol in a way that would make it incompatible with existing software (which is the entire point).
    Plus its most used implementation - Xorg, consists of a huge and complex codebase that fewer and fewer people are willing to deal with.

    Wayland is the newer protocol, that mostly does the exact same thing, but better, in a way that allows for newer tech, and completely breaks compatibility in order to do so.

    The trouble with the whole situation was that in order to replace X with Wayland basically the entire Linux graphics stack had to be rewritten - and it was, with raging debates and flame wars and Nvidia being lame.
    They also wrote a compatibility layer called Xwayland that lets you keep using older X-only apps which somehow manages to outperform Xorg.

    Now we’re at the point where major distributions are not only switching to Wayland by default, but also dropping support for Xorg completely, and announcing that they’ll no longer maintain it, which is why posts about it keep popping up.





  • Wayland is trash and the fact that we are fourteen years into its life (YES, FOURTEEN) and still can’t get it working right is a good indication that we need to abandon it.

    lol, I don’t get why people keep using this argument…
    All of these developers, companies, toolkits, DEs and various other projects have decided that it’s easier to literally rewrite the entire Linux desktop than to continue hacking Xorg.
    In fact they don’t want to touch Xorg so much that they’re willing to spend 14 years (and counting) replacing it.
    And you see this as indication that Wayland is trash?

    Yes, you can. Seriously, people act like Xorg is some immutable black box no one can touch. IT’S FREE (AS IN FREEDOM) SOFTWARE. FIX IT.

    Go right ahead. Start by adding per monitor refresh rate.




  • There’s a bug open for Firefox and you can change VSCode’s behavior by putting this in your keybindings.json:

    {
        "key": "shift+insert",
        "command": "editor.action.selectionClipboardPaste",
        "when": "textInputFocus && !editorReadonly"
    }
    

    Not sure why either of them are messing with a “standard” shortcut…
    If you want a more system-wide solution there are utilities that let you sync the PRIMARY (on selection) and CLIPBOARD (Ctrl+c) buffers mentioned in the Arch Wiki entry.




    • “Screensaver” isn’t a feature of X - it’s functionality provided by XScreenSaver which uses X mechanisms to detect user inactivity, lock the screen and display an animation.
      Equivalent mechanisms exist in Wayland, but XScreenSaver doesn’t have logic to interact with them. This can be solved by either teaching XScreenSaver how to talk to these new mechanisms (difficult as it was developed for X from the ground up) or implementing something new.
    • Network transparency already exists (and has for some time) in the form of waypipe.
    • xset isn’t a feature of X - it’s a utility to control it. Since Wayland compositors aren’t X, it makes sense for them to be controlled differently.

  • Right so just installed xscreensaver - automatic blanking and locking is indeed broken BUT it does display all the pretty animations just fine! (at least on Sway)
    Don’t really have time to mess around with it but maybe try figuring out which mechanism is used for screen locking in your environment (in Sway’s case it’s swayidle) and get it to start xscreensaver right before calling the real locker program?
    BTW you can get xscreensaver-settings to come up by unsetting the WAYLAND_DISPLAY variable:

    env --unset=WAYLAND_DISPLAY xscreensaver-settings
    

    Philosophical BS: I don’t think it’s correct to say that Wayland doesn’t support screen savers, but rather that it doesn’t support XScreenSaver, or, more accurately, the mechanisms it uses for screen locking and idle-detection.
    As others have pointed out, equivalent functionality has already been implemented and is used by various screen lockers. What appears to be missing is something to take this functionality, and display an animation instead of just locking the screen.
    I noticed that all of XScreenSaver’s animations are actually separate binaries in /usr/lib/screensaver/ so we basically need a locker that speaks Wayland’s locking protocol, but also takes and runs those binaries in full screen mode.
    Or maybe XScreenSaver’s dev can be convinced to add support once the protocols are stable?