Are there at least some plans to implement screensavers into Wayland? Is there any way to override Wayland’s restrictions and set a screensaver up?

  • Eggymatrix@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    56 minutes ago

    Why are screensavers still used?

    Nothing that causes pixels to change color “saves” anything these days, unless you have some kind of old LCD display.

    Wayland has no limitations for how a traditional screensaver should work, nobody bothered to implement one, that is why there isn’t one yet IMO.

    Hate to be the guy but if you need one you either need to hack something on top of xscreensaver like others in the thread said, or implement something native for those that need it to protect their old monitor.

    That said, in case you don’t actually need a screensaver but a looping video for a kiosk type of situation you might just setup a videoplayer in a loop and turn off screen power saving.

    • whatiswrongwithyou@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      19 minutes ago

      To be happy. The canvas can be more than a blank slate waiting to be transformed into beloved good screen or hated bad screen. Back on x11 the screensaver can also be the locker, so if you need to know it’s not a piece of crap you can pick a locker that works good (like xscreensaver).

      People have been complaining that xscreensaver doesn’t work in Wayland for a decade that I’m aware of, the answer has always been “you don’t need that”. Its not that people don’t want it, its that Wayland devs have actively resisted it.

  • whatiswrongwithyou@lemmy.ml
    link
    fedilink
    arrow-up
    2
    arrow-down
    4
    ·
    3 hours ago

    Welcome to using Wayland, where no one cares what you want and it’s out of scope and actually you’re out of line for wanting it, get with the times!

    You can graft xscreensaver in but the extent to which it will work is wholly dependent on your environment. Wayland provides the protocols, not implementations, so you may be running something that surfaces hooks for making xscreensaver work and you may not.

    Lest this just be about showing pretty pictures, there have been numerous times when some desktop environment has decided to staple the pretty pictures part of xscreensaver on to its own locker (most famously to get matching window decorations when the computer asks for a password) and ended up with very funny bugs (most famously the “smash keyboard to bypass lock”).

  • communism@lemmy.ml
    link
    fedilink
    arrow-up
    8
    ·
    1 day ago

    There’s screen lockers. Is there a reason why programs like swaylock couldn’t play an animation instead of showing a static image? Am I missing a reason why it’s structurally impossible?

    • juipeltje@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      23 hours ago

      Hadn’t thought about it before since i don’t have a need for them, but yeah i think that could work with swaylock, cause i’m pretty sure you can configure it in such a way that the static indicator isn’t on the screen the whole time. I don’t know if it can do video files, but you might be able to use a gif instead. Only downside would be that you still have to enter your password to get rid of it again, which isn’t typical for a screensaver i think.

      • communism@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        14 hours ago

        I’m just confused as some comments seem to suggest it’s not possible. There are already idle daemons like swayidle, so you just need to have an idle daemon execute a program that plays an animation and exits when it receives any input? I don’t know of any such programs, but I don’t see how it’d be impossible.

  • Scipitie@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    9
    arrow-down
    1
    ·
    1 day ago

    If there are any plans I don’t know but what I can tell you is that there’s currently no way to circumvent these “restrictions” - because there are none.

    Although from a user perspective it feels like something got taken away from Wayland perspective it’s the other way arou d: screensavers want rights that Wayland simply doesn’t provide to any user space application.

    A screensaver needs to track user interaction globally (for the timeout), overlay over existing apps, manipulate viewport properties, manage the session and similar things, depending on the details.

    Depending on what you want there might be ways to hack something together though.

    Then there’s of course the disclaimer that although I’m not ab LLM my training data (aka experience) might be out of date :D

  • Maiq@piefed.social
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 day ago

    Just installed xscreensaver and it works more or less. i don’t think it can screenlock but haven’t tested everything. Just popped up a terminal and ran xscreensaver-settings and it asked if I wanted to run the server. Picked a few savers off the list changed the times and waited. Only working on one desktop but that doesn’t bother me. A little buggy, hard to get it to stop with a mouse wiggle or keypress. Have to switch desktops and kill the pid. Better than it was a year ago though. Might work better in kde than in hyprland?

    Using Arch, wayland, xorg-wayland

  • tekato@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    1 day ago

    Set a systemd timer to start mpv in fullscreen with whatever you want as the screensaver in a loop

  • Bonje@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    1 day ago

    Might be able to with a quickshell. Some of them have idle timeout plugins then just start mpv or terminal pipes in full screen.

  • Kongar@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    3
    ·
    1 day ago

    Full screensaver functionality is tough on Wayland, if not impossible right now. They apparently don’t know how to have fun over there.

    That said, it’s worth noting that you can install dosbox, fire up win3.11 on it, and then run your nostalgic screensavers full screen from there. Afterdark and whatnot. Dosbox keeps the computer alive so the screen saver runs forever and the computer doesn’t lock - so it’s not really full functionality. But if you’re just looking for some fun - that works great. (I do love my flying toasters)

  • Snot Flickerman@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 day ago

    I’m on Kubuntu 24.04 and I got xscreensaver working in Wayland.

    You have to log into an X11 session first and set up xscreensaver how you want it. Once it’s set up and working, log out of the X11 session and log back into the Wayland session.

    Go to the System Settings and look for Autostart. Make an autostart entry for xscreensaver here. Then check the xscreensaver.desktop file that created and make sure it looks like this:

    [Desktop Entry]
    Comment[en_US]=
    Comment=
    Exec=xscreensaver --no-splash
    GenericName[en_US]=
    GenericName=
    Icon=xscreensaver
    MimeType=
    Name[en_US]=XScreenSaver
    Name=XScreenSaver
    Path=
    StartupNotify=true
    Terminal=false
    TerminalOptions=
    Type=Application
    X-KDE-SubstituteUID=false
    X-KDE-Username=
    X-Ubuntu-Gettext-Domain=xscreensaver
    

    As long as this is set to autostart, you will have a working xscreensaver in Kubuntu, if nothing else. I cannot confirm it working on any other systems and you absolutely do need both X11 and Wayland as sign in options for this to work. If you want to change settings you will have to switch back to X11 or I use scripts to edit the .xscreensaver configuration file.

    For example I wrote two small python scripts for changing the length of time before the screen saver activates, and use cron to run them in the morning and evening. This is the one for the morning:

    import os
    import sys
    import fileinput
    
    # Read in the file
    with open('.xscreensaver', 'r') as file:
      filedata = file.read()
    
    # Replace the target string
    filedata = filedata.replace('timeout:	0:05:00', 'timeout:	1:00:00')
    
    # Write the file out again
    with open('.xscreensaver', 'w') as file:
      file.write(filedata)
    

    The morning script changes the timeout to five minutes, and the evening script changes is to an hour, making it a simple find and replace a string for both since we’re just rotating numbers.

    and this is what it would look like in your crontab:

    0 7 * * * python3 /home/yourusername/screensavermorning.py

  • picandocodigo@lemmy.world
    link
    fedilink
    arrow-up
    2
    arrow-down
    8
    ·
    1 day ago

    Until they fix being able to use screensavers -XScreenSaver at the very least- on Wayland, we’ll never have the “Year of Linux on the desktop".

    • Snot Flickerman@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      1 day ago

      My solution was to set up xscreensaver how I wanted it in X11 and then start it via CLI as a background app on system startup for wayland.

      You can’t manage screensaver settings from wayland, but you can force it into working.

      I’m on Kubuntu 24.04