GalliumOS / galliumos-distro

Docs, issues, and artwork sources for GalliumOS
https://galliumos.org/
GNU General Public License v2.0
347 stars 11 forks source link

Reconsider or improve XScreenSaver #153

Open jeremy447 opened 8 years ago

jeremy447 commented 8 years ago

When I close the lid of my Chromebook and I reopen it I have a black screen (the screen seems to be on but it seem to display just black) but if I press a key I have this "old fashion" xscreensaver window that allow me to unlock my Chromebook.

https://4.bp.blogspot.com/-BDdfMA_93iM/UQsasyE_4KI/AAAAAAAAGTs/s0Sgc8FfKNg/s1600/xscreensaver2.png

Is it intended ? Because I think it was the login manager that was displayed on beta 1 without the need to press a key.

reynhout commented 8 years ago

That's XScreenSaver, which replaces LightLocker in beta2.

chechoRP commented 8 years ago

IMO LightLocker was nicer :(

hugegreenbug commented 8 years ago

Actually, we used slim-lock from slim in beta1, which replaced the original light locker from xubuntu. Light locker has issues due to virtual terminal switching and would turn the screen off. Slim has been deprecated for a long time though. We chose it before because it was nicer, but decided to remove Slim since it is deprecated and go with more supported software (i.e., lxdm and xscreensaver). There isn't anything out there that is as good functionality wise as xscreensaver and desktop agnostic. If light locker stops relying on virtual terminal switching or a different screen locker shows up, we will consider it.

reynhout commented 8 years ago

Indeed. My mistake. I'm going to spend some time trying to customize the XScreenSaver appearance. It is a bit jarring.

jeremy447 commented 8 years ago

Is it possible to make xscreensaver display the login window when you wake up the chromebook like slim-lock did on beta 1 ?

reynhout commented 8 years ago

Is it possible to make xscreensaver display the login window when you wake up the chromebook

Do you mean without pressing a key first?

hugegreenbug commented 8 years ago

One of the reasons for using xscreensaver is to allow users to switch, which I realize is not showing up btw. I suppose a "screensaver" could be: lxdm -c USER_SWITCH , which would get to the login screen and support user switching.

hugegreenbug commented 8 years ago

oh, but I don't know if the screen would blank

jeremy447 commented 8 years ago

Do you mean without pressing a key first?

Yes

reynhout commented 8 years ago

oh, but I don't know if the screen would blank

It appears to. Or, it throws up the login background screen.

reynhout commented 8 years ago

but then you do have to enter your username again, and it isn't obvious from the screen whether you're already logged in and locked, or not logged in at all. This would bother me, but maybe not most people?

hugegreenbug commented 8 years ago

Yeah, good point. By blank, I mean the power management. It seemed to dim, but that's it.

jeremy447 commented 8 years ago

but then you do have to enter your username again

With the beta 1 you didn't have to enter your username again and it will be great if that can be done too in beta 2

ghost commented 8 years ago

@Paviluf No, you don't, for me the username box is filled in as soon as I open the thing in beta2.

And my further input on the matter is this: slimlock did look a lot better. I often get confused when opening my Chromebook with xscreensaver (the screen is totally dark so I think something is wrong). On top of that, the password dialog is ugly, displays a username feild for no fucking reason, and has the most hideous logo I've ever seen in my entire life (that might be an exaggeration). I also think we should make our best effort to make the login screen and the lock screen look the same or very close as it was before with slim and slimlock.

jeremy447 commented 8 years ago

No, you don't, for me the username box is filled in as soon as I open the thing in beta2.

I know I just answered to what reynhout says.

I agree with ColtonDRG.

ghost commented 8 years ago

@Paviluf Oh, I think reynhout was referring to the theorhetical of using lxdm's switch user mechanic as a "screensaver"

jeremy447 commented 8 years ago

Oh, I think reynhout was referring to the theorhetical of using lxdm's switch user mechanic as a "screensaver"

Yes and I tried to say that if that happen we should have the same behavior as beta 1 ;)

ghost commented 8 years ago

Oh, OK, I understand.

jeremy447 commented 8 years ago

Xubuntu use LightDM and LightLocker right ?

Because I was wondering why not simply using them ? They are already pre-configured, work well and look nice.

ghost commented 8 years ago

Because we don't want to.

No, really though, it has some problem. Ask @hugegreenbug for more details.

reynhout commented 8 years ago

I spent a little bit of time yesterday customizing the appearance of xscreensaver. It looks a lot better, but still has a ways to go. There are four things to consider:

  1. Colors. This is easy.
  2. Logo. This is only slightly more difficult, but comes with some baggage. The developer has strong opinions about the use of his logo. I think there's a valid compromise in deemphasizing his logo, and not adding one of our own, just branding colors.
  3. Layout. This is harder. It's a couple hundred lines of Xlib C code with no autolayout or higher level tools. I remember enough Xlib to make this work, but it's definitely a bit of a project.
  4. Font. This might be fatal. It's easy to change fonts and sizes, but Xlib doesn't do antialiasing, so all characters are displayed with 1 bit depth, and they look blocky. Two things help to mitigate this problem: dark backgrounds (lighter letter colors) and font size: generally larger fonts render better.

It turns out to be difficult to get a screenshot of xscreensaver, or I'd post what I have so far. I will continue the effort if we think it's worthwhile, but if the likelihood of switching to another screen locker is high, then I will wait until a decision is made.

On that topic, I have no strong opinion. Xscreensaver is fine with me, but it'd be nice if it was more attractive. I'd also be fully in support of a simpler option that merely blanked the screen. User switching is a big plus.

lyam23 commented 8 years ago

You could always take a picture - analog screenshot!

I'm a fan of consistent and beautiful design so I'm all for a nicer looking login screen, especially when Gallium OS is beautiful in every other respect. It's a shame to mar it with the default xscreensaver appearance. On the other hand, how much time and effort should be spent on appearance when there are potential improvements to be found with battery life and other practical issues...

ghost commented 8 years ago

You can take a screenshot if you're in VirtualBox ;)

reynhout commented 8 years ago

I am unable to attach PNGs to this issue, or to upload them to the wiki, so I stuck them under the galliumos.org webroot.

Two images, the first is the default style and the second is a work in progress with a different layout.

https://galliumos.org/tmp/xscreensaver-default.png

https://galliumos.org/tmp/xscreensaver-wip1.png

Ignore the alignment issues and the colors. The only important question is whether the font rendering is good enough. If it is OK, and we like XScreenSaver for other reasons, I'll continue the layout work.

[Edit: for what it's worth (which is nothing, IGNORE THE COLORS, but) that blue is considerably less vibrant on the Chromebook display than on my desktop -- not sure how it'll render for you...it's possible that the Xlib colormap doesn't translate directly.]

jeremy447 commented 8 years ago

I think that we should use LightDM / LightLocker. They are already pre-configured, need less work, work well, look nice and you don't have to type your username each time you open your session.

xubuntu_lock_light-locker

hugegreenbug commented 8 years ago

@Paviluf I have reasons for the decisions. I do agree that they look nice and I would have preferred to use them. Here are my reasons:

  1. Lightdm has performance issues. I noticed the mouse/system stuttering on start up and when logging out. I believe that I tried to turn off loading the user's background and I still noticed issues. Lxdm seems much faster to me and looks nice too.
  2. Light-locker would turn off the screen on resume. There are many different bug reports about this. I've tried the work arounds and they can help, but they don't solve it. They seemed to have solved the screen not returning at all, at least most of the time. Instead, the screen turns off on resume and you can get it back with a keypress, but it's annoying. Another issue is that the display backlight's brightness would change on resume. These issues are really i915 driver problems I think due to the VT switching of lightdm/light-locker. So, it would look nicer but have other issues. Here is one such bug report: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1357090
jeremy447 commented 8 years ago

Ok, that's too bad. It would have be great to avoid this extra work.

reynhout commented 8 years ago

@hugegreenbug doesn't XScreenSaver also have an issue when resuming? Part of @Paviluf's earlier report was that you need to press a key to display the unlock dialog. Or are you describing something different?

It might be possible to change that behaviour in XScreenSaver, if that's the way we end up going. I haven't looked at that part yet.

How do you feel about the font rendering in the modified XScreenSaver layout? It's difficult for me to evaluate. I mean, it's clear that they look rough, but they're so familiar that it just doesn't bother me any more.

Are there any other contenders to replace XScreenSaver at this point?

jeremy447 commented 8 years ago

XScreenSaver also have an issue when resuming ?

You are right. If that can't be changed it's a show stopper for XScreenSaver I guess.

Are there any other contenders to replace XScreenSaver at this point?

Here is a list of Screen lockers : https://wiki.archlinux.org/index.php/List_of_applications#Screen_lockers

Here is a list of Display managers : https://wiki.archlinux.org/index.php/Display_manager#List_of_display_managers

hugegreenbug commented 8 years ago

@reynhout this issue is a cosmetic one, not a functionality issue. We set xscreensaver to blank the screen only. So, when locking or resuming it blanks the screen. If we had a screensaver, you would see that instead. I think you can start typing your password without pressing another key first. We can change the behavior to show the password prompt immediately.

For light locker, the screen is powered off like when power saving mode turns on and turns off the screen. Also, some times the screen would never display anything and you would have to reboot

jeremy447 commented 8 years ago

Is this interesting ?

https://github.com/AeroNotix/slim-git

reynhout commented 8 years ago

@hugegreenbug makes sense.

If I'm reading correctly then: XScreenSaver is the chosen option, and no information has surfaced that points to a better choice.

And aside from a few reports of initial surprise, there isn't widespread interest in significant cosmetic changes to XScreenSaver -- or at least not within the limitations described previously.

If this is all correct, we should close this issue.

hugegreenbug commented 8 years ago

@reynhout I'm still planning to work on an alternative. we can leave it open until either we give up or have a better solution.

jeremy447 commented 8 years ago

I'm still planning to work on an alternative

Can you say us what alternative is it please ? I'm curious :)

hugegreenbug commented 8 years ago

I think I can add locking to lxdm without too much effort. I haven't had a chance to work on it yet.

jeremy447 commented 8 years ago

That can be great but I hope that not need to much work to make it work.

Did you take a look at this https://github.com/AeroNotix/slim-git It seems to be a maintained version of slim. I'm not sure but I read that it integrate the screen locker too.

In the mean time is it possible to make xscreensaver to directly display the password field on wake up ?

ghost commented 8 years ago

Yes, during beta 1 we had a maintained version of slim too, but we ditched it because it had too many other shortcomings.

Yekutiel commented 8 years ago

@Paviluf

Here's the best answer in this thread so far to your problem:

https://www.reddit.com/r/GalliumOS/comments/451cip/how_to_change_login_manager_after_beta2_update/

Reddit user @Hotspot3 figured this out. All credit goes to him, not to me.

The Gallium OS developers are clever guys. Ultimately, I think they'll either do the heavy lifting necessary to make xscreensaver look nice or use an alternative.

By the way, xscreensaver kept popping up on my machine once in a while. Therefore I ended up removing it completely with:

sudo apt-get remove xscreensaver

I'm glad to be rid of xscreensaver. It looks ugly to me. Also, believe it or not, the developer who created xscreensaver explicitly wrote, he intentionally made it difficult to customize because he did not want it customized. Not a very "open sourcey" decision on his part.

jeremy447 commented 8 years ago

Thanks for the infos but I will stick with the default screen locker, even if it's not optimal, for now.

ghost commented 8 years ago

I've been using gnome-screensaver on C720 without any issues for a while now. I have the model with i3 and 4GB RAM.

Honestly, I think choosing xscreensaver is taking a step back. From a maintenance standpoint, the Debian version of xscreensaver is severely outdated. And cosmetically, not only does xscreensaver have the worst looking lockscreen, it is also the only ugly component in GalliumOS.

reynhout commented 8 years ago

@siddhanathan We don't use Debian's version, we use the most recent version available (5.34). As for the cosmetics, I agree...but I also have some ideas for improving them if we continue to have technical issues with other options.

Yekutiel commented 8 years ago

snip

Reading this comment hurt my head, so I'm just going to remove it. You can find the original version here: https://paste.ubuntu.com/24924246/ (though I strongly advise against reading it) -- @ColtonDRG

reynhout commented 8 years ago

@Yekutiel this commentary is unwelcome. Be civil or be banned.

cpcnw commented 8 years ago

Sorry if I am not getting this. I am not really too bothered about 'locking' my screen, only saving power on idle. I went to Setting > Screensaver and got ticked off for using an old version of xscreensaver. I then selected 'Disable' - but still get the lockout prompt?

Ed: does this help? http://tools.suckless.org/slock/

reynhout commented 8 years ago

@cpcnw if you get the "old version" popup, then you haven't updated your packages in a long time (or you've just installed from the 1.0 image). Be sure to update packages: sudo apt-get update;sudo apt-get dist-upgrade. ...and if you've freshly installed 1.0, I'd recommend updating to 2.0 instead. 2.0 is still labelled beta, but it's a better choice than 1.0 at this time.

Re: XScreenSaver disabling: You might need to log out/in after changing the config. I will try to repro your report.

Also, I'm a fan of the suckless stuff in general, but I don't think slock is right for most users. XScreenSaver is merely unattractive. The functionality is solid, and the design is better than the other alternatives.

cpcnw commented 8 years ago

Tnx - possible to move up to 2.0 from cli?

reynhout commented 8 years ago

@cpcnw yes, but the procedure is not perfect. It works most of the time. See #228.

cpcnw commented 8 years ago

Not this time sadly. Did fresh install of 2 Beta 1 and am running it now. Install on C720 went smoothly and every bit as slick as 1.0 - top job thanks!

reynhout commented 8 years ago

If we stick with XScreenSaver, we should probably disable the savers ("hacks") from the selection menu that are not available.

ghost commented 7 years ago

A year later, any updates about getting a more acceptable alternative?

I would like to use light-locker and lightdm instead of xscreensaver and lxdm. Has anyone tested whether or not the issues listed below are still a problem?

@Paviluf I have reasons for the decisions. I do agree that they look nice and I would have preferred to use them. Here are my reasons:

Lightdm has performance issues. I noticed the mouse/system stuttering on start up and when logging out. I believe that I tried to turn off loading the user's background and I still noticed issues. Lxdm seems much faster to me and looks nice too. Light-locker would turn off the screen on resume. There are many different bug reports about this. I've tried the work arounds and they can help, but they don't solve it. They seemed to have solved the screen not returning at all, at least most of the time. Instead, the screen turns off on resume and you can get it back with a keypress, but it's annoying. Another issue is that the display backlight's brightness would change on resume. These issues are really i915 driver problems I think due to the VT switching of lightdm/light-locker. So, it would look nicer but have other issues. Here is one such bug report: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1357090

Lxdm isn't horrible. It looks bad, but only in comparison with the rest of the distro.

GalliumOS is such a beautiful distro, but the use of xscreensaver is fairly bewildering decision. For something that the user interacts with every time they use the computer, it is so jarringly out of place and ugly! I expect this kind of compromise when looking for a distro for an ultra-low resource machine, when you just want something lightweight that works, but Chromebooks are just not that.

It feels like putting rusty wheels with missing hubcaps on a brand new sports car. Why is this not a higher priority?? It really negatively impacts the overall feel of this product.