We should refine which xscreensaver themes we ship.
Revisions and Commits
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\
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.
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.
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.
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?
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:
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 ?
Maybe we should just pick one as the default rather than using random?
- [drift](https://www.youtube.com/watch?v=cppZgCh6U7I), which was written by the author of fractal wizard Scott Draves, who also did Electric Sheep
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.
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
fuzzyflakes, cute but bright
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
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
- 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.
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.
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.
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:
- Easy: we create an image or use an existing image and make the default hack one of those ones that uses an image.
- 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.