Page MenuHomeLubuntu Development

Our xscreensaver theme is too old
Closed, ResolvedPublic

Description

We should refine which xscreensaver themes we ship.

Event Timeline

tsimonq2 triaged this task as Normal priority.Mar 30 2019, 7:49 PM
tsimonq2 created this task.

Any sugestions as to which themes we should use? And how do I go about working on this?

@wxl wrote out a really nice set of suggestions in the old Phab instance, which I think is gone, unfortunately. :(

Some were recovered from google cache right?@tsimonq2

So I discovered that xscreensaver doesn't suck, but the default modules do. jwz continues to add "hacks," up to and including last December. The package requires xscreensaver-data but there's a ton of other options in xscreensaver-data-extra and the GL options xscreensaver-gl and xscreensaver-gl-extra. There's also xscreensaver-screensaver-bsod and xscreensaver-screensaver-webcollage but I'm meh about both.

That said, here's the list of modules I like, with a couple tweaks. These can be added to $HOME/.xscreensaver. Just comment out all the other ones with a - .

programs:								      \
				attraction -root			    \n\
				decayscreen -root			    \n\
				flame -root				    \n\
				drift -root				    \n\
				goop -root				    \n\
				grav -root				    \n\
				kaleidescope -root			    \n\
  GL: 				pipes -root				    \n\
  GL: 				atlantis -root				    \n\
  GL: 				cage -root				    \n\
				  -effect swamp -reflect -magnify	      \
				  -blackhole -vortex			    \n\
				kumppa -root				    \n\
				moire2 -root -ncolors 230 -thickness 5	    \n\
  GL: 				circuit -root				    \n\
				  -wireframe				    \n\
				vermiculate -root			    \n\
				anemone -root				    \n\
  GL: 				cubenetic -root -waves 20		    \n\
				euler2d -root				    \n\
				fluidballs -root -gravity 0.003		      \
				  -elasticity 1				    \n\
  GL: 				flurry -root				    \n\
  GL: 				glblur -root				    \n\
  GL: 				atunnel -root				    \n\
  GL: 				blocktube -root				    \n\
  GL: 				cubestorm -root				    \n\
  GL: 				gleidescope -root -zoom			    \n\
  GL: 				hypertorus -root			    \n\
				piecewise -root -count 40 -colorspeed 100     \
				  -maxradius 0.3107			    \n\
  GL: 				surfaces -root				    \n\
				fireworkx -root				    \n\
				interaggregate -root			    \n\
  GL: 				noof -root				    \n\
				substrate -root				    \n\
				wormhole -root -stars 14		    \n\
				boxfit -root				    \n\
				celtic -root				    \n\
				  26.3163 -no-logo			    \n\
  GL: 				cubicgrid -root				    \n\
  GL: 				glcells -root				    \n\
  GL: 				hypnowheel -root			    \n\
  GL: 				klein -root				    \n\
				  14.0985 -flexibility 0.1682 -wiggliness     \
				  0.5364				    \n\
  GL: 				geodesic -root				    \n\
  GL: 				unknownpleasures -root			    \n\
				binaryring -root			    \n\
  GL: 				cityflow -root				    \n\
  GL: 				projectiveplane -root			    \n\
  GL: 				romanboy -root				    \n\
  GL: 				hydrostat -root -count 8 -head-radius 67      \
				  -length 60 -friction 0		    \n\
  GL: 				splodesic -root				    \n\

Note that this would just be another addition to rDEFAULTSETTINGS.

Wait, so can this just be added via XDG settings?

I think we have to seed some of the extra packages.

Right; I was referring to the configuration. :)

If we can just throw a config file in /etc/xdg/xdg-Lubuntu/ that'd be cool.

According to the manpage:

Options to xscreensaver are stored in one of two places: in a .xscreensaver file  in  your
home  directory;  or  in  the  X  resource database.
If you want to set the system-wide defaults, then make your edits to the xscreensaver app-
defaults  file,  which  should have been installed when xscreensaver itself was installed.
The app-defaults file will usually be  named  /usr/lib/X11/app-defaults/XScreenSaver,  but
different  systems  might keep it in a different place

Also the $HOME/.xscreensaver file clobbers anything else and the preferences actually change that and do not change X resource database or the app-defaults file, so it doesn't keep a user from personalizing things the way they want.

That said, as far as I understand, X resource database (xrdb) ≠ XDG (X Desktop Group aka freedesktop.org).

The other thing you'll notice, @The_LoudSpeaker, that @kc2bez is bringing up, is that rSEED will need to be modified to include all those extra packages I mentioned.

In T21#608, @wxl wrote:
The app-defaults file will usually be  named  /usr/lib/X11/app-defaults/XScreenSaver,

The file is

/etc/X11/app-defaults/Xscreensaver

Will dig in more when I get time.

There's an upstream discussion that hits on the same concern this task originally had ("it's ugly") that has a similar conclusion: xscreensaver is the best choice security wise, and you can make it what you need it to be.

The other thing I learned dealing with an unrelated issue is that you can actually theme the lock dialog which is great because it is ugly and is not easily changed. We should probably have a separate task for this. While there is a reason for this, there are ways around it, as you can see in the various links.

Also interesting to note that LXQt is leveraging xdg-screensaver to handle which screensaver/locker to use.

P.S. I notice new hacks as of this month so make sure to give a once over all the options and recommend any you feel like should be included.

To further clarify, we should be using the X resources to change .xscreensaver (we could also do .Xdefaults but I like that this is more specific and easier— see the manpage for more) to get the lock screen we want. There are examples in the upstream [xscreensaver.ad](https://github.com/Zygo/xscreensaver/blob/master/driver/XScreenSaver.ad.in) file.

We don't want to use the theme patch since it's not maintained and is actually modifying the code. Even a small amount of change can be problematic. Most of the GNOME, MATE, Cinammon, etc. screensavers out there are xscreensaver forks inended to make them look pretty or add other features. And they almost all have security issues.

So I did some tweaking. Installed xfonts-efont-unicode to get it to look this good. This is old style xlib font rendering so you have to use X11 fonts. xfontsel is your friend here. Not sure why the "new login" button is showing weird.

potential xscreensaver lock dialog

{P22}

In addition to the above, we may be able to change the logo. The key: must be a xpm indexed to 90 colors with 350 pixel width and 274 pixel height. The problem is it would have to be done at compile time, which is to say it would be for the whole package. Supposedly this has been done before but apparently it's been reverted?

In T21#1589, @wxl wrote:

So I did some tweaking. Installed xfonts-efont-unicode to get it to look this good. This is old style xlib font rendering so you have to use X11 fonts. xfontsel is your friend here. Not sure why the "new login" button is showing weird.

potential xscreensaver lock dialog

That looks much better.

What's the next step to moving forward with this?

@tsimonq2 I will have a look into it as soon as I am done with T59. Sorry for the delay.

I made a list of those which are good from the currently shipped ones:
abstractile
binary ring
cwaves
Deco
Fiberlamp
fuzzy flakes
penrose
popsquares
slidescreen

I will have a detailed look soon.
You were saying something about fonts @wxl ?

@The_LoudSpeaker did you see all the suggestions I made (across several packages) at T21#594? Looks like latest in Debian doesn't have any of the new hacks, so don't sweat looking beyond that.

Regarding fonts, that was a discussion relevant to changing the lock dialog. That's probably a discussion appropriate for a separate task.

Here's the file with required edits:
http://paste.ubuntu.com/p/3FmJTWCgQk/

I modified the file according to T21#594 and T21#2139
The file was obtained from /etc/X11/app-defaults/XscreenSaver
but it is a link to /etc/X11/app-defaults/XscreenSaver-nogl

According to man page, it should be put it in /usr/lib/X11/app-defaults/Xscreensaver
but as it is linked to the other file, should I put the other file also with it (the no-gl one)? In rDEFAULTSETTINGS ?

So I should have said this before but I really don't like popsquares or slidescreen and fuzzy flakes is not a big favorite, either. Someone please overrule me, but I'd really like us to not include those. Since @tsimonq2 is the op here, maybe he can chime in?

Maybe we should just pick one as the default rather than using random?

Another idea (I'm full of them): we make our own hack for xscreensaver.

The instructions are fairly basic and suggest hacking on an existing one. Of these, the simplest is [greynetic](https://github.com/Zygo/xscreensaver/blob/master/hacks/greynetic.c).

Alternately, we just create a folder of images and use one of the hacks that use them, e.g. glflux or gleidescope (which is pretty rad, especially if tweaked from default settings a tad). That would be something easy that we could do right now.

Regarding the path, using apt-file search, it seems that the XScreenSaver* files are provided by xscreensaver packages, so those are out. These are overwritten in Ubuntu Studio and Xubuntu's default settings packages via providing .xscreensaver in [/etc/skel](http://www.linfo.org/etc_skel.html). The problem with this is anyone upgrading will not have the changes. Maybe we could postinst the installation for old users? Any other ideas?

Strange thing: lubuntu-default-settings has a /usr/share/lubuntu/xscreensaver/xscreensaver that contains only mode: blank. I wonder if we can somehow make use out of that.

In T21#2311, @wxl wrote:

Maybe we should just pick one as the default rather than using random?

From this selection I vote for drift or flurry.

@kc2bez what do you think about using one of the stock ones versus making something ourselves?

In T21#2315, @wxl wrote:

@kc2bez what do you think about using one of the stock ones versus making something ourselves?

Making one might be cool, someday. There are some really good stock ones though. Picking a decent one over random is probably the most important thing.

In T21#2311, @wxl wrote:

Maybe we should just pick one as the default rather than using random?

Works. drift seems good imo.

In T21#2312, @wxl wrote:

Another idea (I'm full of them): we make our own hack for xscreensaver.

The instructions are fairly basic and suggest hacking on an existing one. Of these, the simplest is [greynetic](https://github.com/Zygo/xscreensaver/blob/master/hacks/greynetic.c).

Alternately, we just create a folder of images and use one of the hacks that use them, e.g. glflux or gleidescope (which is pretty rad, especially if tweaked from default settings a tad). That would be something easy that we could do right now.

Also works. I will read the instructions. also, patterns better than a folder of images imo. images will need more resources to load na?

In T21#2311, @wxl wrote:

Maybe we should just pick one as the default rather than using random?

Either drift or flurry, in that order for my vote, from this list, though my opinion bears no weight in this decision.

In T21#2311, @wxl wrote:

Maybe we should just pick one as the default rather than using random?

    cubicgrid
    drift, which was written by the author of fractal wizard Scott Draves, who also did Electric Sheep
    flurry
    goop
    hypnowheel//////

Of that list, I'd pick flurry (NO hypnowheel please, others are good but bright)

I just booted a 19.10 install from 2019-08-26 daily, and my 'picks' (& thoughts) are

abstractile, alas bright
distort, - great WHEN wallpaper or desktop image - not xscreensaver logo
fiberlamp
fuzzyflakes, cute but bright
galaxy
m6502, cute, but most will wonder why?
penrose; but somewhat bright
ripples, - but like distort - not with xscreensaver logo default config
shadebobs, - i like it but 'black' lines you can't see that erase look like mistakes
slidescreen, - i love this but not with xscreensaver logo or default config

(it's an older qa-install (updated), and i limited to ones visible using installed packages; I'll amend this if I find a more recent 'fresh' install. I prefer others that were not-installed though I would suggest distort/ripples/slidescreen IF we use the desktop display or wallpaper folder and not xscreensaver logo used by this box)

I'm not a fan of [too] bright screensavers; distracting in dark rooms or if you're using another machine & the screensaver kicks in/changes in the edges of your vision; neither of which would effect most users.

Comment made b/c of stand-up request

I have no preference here, do what y'all think is right.

default hacks

Seems like flurry is the overwhelming preference here. Let's go ahead and make that the default when we fix the config with the right available hacks. Also, let's select the water option because it's blue and purple and like Lubuntu's colors and is kind of smoky and slow and not as distracting. This means:

-mode:          random
-selected:      -1
+mode:          one
+selected:      115

and

-  GL:                          flurry -root                                \n\
+  GL:                          flurry -root -preset water                  \n\

Also, since Simon has avoided any opinion, I'll just go on record saying that I will not accept any changes that include popsquares, slidescreen or those dumb flakes. Feel free to convince him to overrule me if you want to insist.

seed

Don't forget that flurry is not a default hack, so xscreensaver-gl-extra will need to be added to the rSEED and rLUBUNTUMETAPACKAGING. The list of hacks enabled by default will need to be gone through and we'll need to make sure we have all the extra packages installed, too. Separate task, please. This should also preceed the config changes.

dialog

As mentioned in T21#1589, it's pretty easy to fix the dialog (don't forget this uses [.Xresources](https://askubuntu.com/questions/85109/how-do-i-theme-the-xscreensaver-unlock-screen)). This ideally needs a separate task. Someone please make one and run with it.

dialog logo

As mentioned in T21#1590, the logo could be changed, but it would have to be done for everyone in Ubuntu because it has to be done at compile time. It would be nice if someone could create a bug on Launchpad to resolve this.

It looks like Tormod Volden has been the primary maintainer but I also notice friend-of-Lubuntu Unit193 did the last upload. He is always on IRC (he's on the Council) so might be a good person to start an inquiry with. He's also very security-minded, so I think he would be good to bounce ideas off of.

I'm thinking it would be nice to have a simple Ubuntu Circle of Friends logo. Assuming it features the right criteria and it's guaranteed to be found, it should pose no security problems. I'm thinking we could make a script to verify all of that or revert to the standard logo when building.

our own hack

We need a separate task to explore the notion of creating our own hack. There's two possibilities:

  1. Easy: we create an image or use an existing image and make the default hack one of those ones that uses an image.
  2. Hard: we create a hack from scratch. This is going to require C and some real low-level graphics stuff. Unless we have someone really excited about this idea, it's unlikely to see the light of day.

Here's the patch that got us the Ubuntu logo in the xscreensaver lock dialog. It turns out this was reverted because [gnome-screensaver would better integrate with the desktop](https://wiki.ubuntu.com/ScreenSaver).

Also an FYI I found out recently: KWin swallowed up the screensaver and includes it.

Note the changes in latest iso.