Last active
January 2, 2020 05:09
-
-
Save JoshuaJChan/989c786379a73a76511cea4d013ae723 to your computer and use it in GitHub Desktop.
script to play videos on xscreensaver on i3 to then transition into i3lock (Needs xautolock too)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# XScreenSaver Preferences File | |
# Written by xscreensaver-demo 5.43 for play on Mon Aug 5 20:23:29 2019. | |
# https://www.jwz.org/xscreensaver/ | |
timeout: 12:00:00 | |
cycle: 12:00:00 | |
lock: False | |
lockTimeout: 0:00:00 | |
passwdTimeout: 0:00:30 | |
visualID: default | |
installColormap: True | |
verbose: False | |
timestamp: True | |
splash: False | |
splashDuration: 0:00:05 | |
demoCommand: xscreensaver-demo | |
prefsCommand: xscreensaver-demo -prefs | |
nice: 10 | |
memoryLimit: 0 | |
fade: True | |
unfade: False | |
fadeSeconds: 0:00:03 | |
fadeTicks: 20 | |
captureStderr: True | |
ignoreUninstalledPrograms:False | |
font: *-medium-r-*-140-*-m-* | |
dpmsEnabled: False | |
dpmsQuickOff: False | |
dpmsStandby: 2:00:00 | |
dpmsSuspend: 2:00:00 | |
dpmsOff: 4:00:00 | |
grabDesktopImages: True | |
grabVideoFrames: False | |
chooseRandomImages: False | |
imageDirectory: | |
mode: one | |
selected: 0 | |
textMode: file | |
textLiteral: XScreenSaver | |
textFile: | |
textProgram: fortune | |
textURL: https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss | |
programs: \ | |
"Screensaver Videos" mpv --really-quiet --no-audio --fs \ | |
--loop=inf --no-stop-screensaver \ | |
--shuffle --wid=$XSCREENSAVER_WINDOW \ | |
$HOME/SSVids/* \n\ | |
maze -root \n\ | |
GL: superquadrics -root \n\ | |
attraction -root \n\ | |
blitspin -root \n\ | |
greynetic -root \n\ | |
helix -root \n\ | |
hopalong -root \n\ | |
imsmap -root \n\ | |
- noseguy -root \n\ | |
- pyro -root \n\ | |
qix -root \n\ | |
- rocks -root \n\ | |
rorschach -root \n\ | |
decayscreen -root \n\ | |
flame -root \n\ | |
halo -root \n\ | |
slidescreen -root \n\ | |
pedal -root \n\ | |
bouboule -root \n\ | |
- braid -root \n\ | |
coral -root \n\ | |
deco -root \n\ | |
drift -root \n\ | |
- fadeplot -root \n\ | |
galaxy -root \n\ | |
goop -root \n\ | |
grav -root \n\ | |
ifs -root \n\ | |
GL: jigsaw -root \n\ | |
julia -root \n\ | |
- kaleidescope -root \n\ | |
GL: moebius -root \n\ | |
moire -root \n\ | |
GL: morph3d -root \n\ | |
mountain -root \n\ | |
munch -root \n\ | |
penrose -root \n\ | |
GL: pipes -root \n\ | |
rd-bomb -root \n\ | |
GL: rubik -root \n\ | |
- sierpinski -root \n\ | |
slip -root \n\ | |
GL: sproingies -root \n\ | |
starfish -root \n\ | |
strange -root \n\ | |
swirl -root \n\ | |
triangle -root \n\ | |
xjack -root \n\ | |
xlyap -root \n\ | |
GL: atlantis -root \n\ | |
bsod -root \n\ | |
GL: bubble3d -root \n\ | |
GL: cage -root \n\ | |
- crystal -root \n\ | |
cynosure -root \n\ | |
discrete -root \n\ | |
distort -root \n\ | |
epicycle -root \n\ | |
flow -root \n\ | |
GL: glplanet -root \n\ | |
interference -root \n\ | |
kumppa -root \n\ | |
GL: lament -root \n\ | |
moire2 -root \n\ | |
GL: sonar -root \n\ | |
GL: stairs -root \n\ | |
truchet -root \n\ | |
- vidwhacker -root \n\ | |
blaster -root \n\ | |
bumps -root \n\ | |
ccurve -root \n\ | |
compass -root \n\ | |
deluxe -root \n\ | |
- demon -root \n\ | |
- GL: extrusion -root \n\ | |
- loop -root \n\ | |
penetrate -root \n\ | |
petri -root \n\ | |
phosphor -root \n\ | |
GL: pulsar -root \n\ | |
ripples -root \n\ | |
shadebobs -root \n\ | |
GL: sierpinski3d -root \n\ | |
spotlight -root \n\ | |
squiral -root \n\ | |
wander -root \n\ | |
- webcollage -root \n\ | |
xflame -root \n\ | |
xmatrix -root \n\ | |
GL: gflux -root \n\ | |
- nerverot -root \n\ | |
xrayswarm -root \n\ | |
xspirograph -root \n\ | |
GL: circuit -root \n\ | |
GL: dangerball -root \n\ | |
- GL: dnalogo -root \n\ | |
GL: engine -root \n\ | |
GL: flipscreen3d -root \n\ | |
GL: gltext -root \n\ | |
GL: menger -root \n\ | |
GL: molecule -root \n\ | |
rotzoomer -root \n\ | |
speedmine -root \n\ | |
GL: starwars -root \n\ | |
GL: stonerview -root \n\ | |
vermiculate -root \n\ | |
whirlwindwarp -root \n\ | |
zoom -root \n\ | |
anemone -root \n\ | |
apollonian -root \n\ | |
GL: boxed -root \n\ | |
GL: cubenetic -root \n\ | |
GL: endgame -root \n\ | |
euler2d -root \n\ | |
fluidballs -root \n\ | |
GL: flurry -root \n\ | |
- GL: glblur -root \n\ | |
GL: glsnake -root \n\ | |
halftone -root \n\ | |
GL: juggler3d -root \n\ | |
GL: lavalite -root \n\ | |
- polyominoes -root \n\ | |
GL: queens -root \n\ | |
- GL: sballs -root \n\ | |
GL: spheremonics -root \n\ | |
- thornbird -root \n\ | |
twang -root \n\ | |
- GL: antspotlight -root \n\ | |
apple2 -root \n\ | |
GL: atunnel -root \n\ | |
barcode -root \n\ | |
GL: blinkbox -root \n\ | |
GL: blocktube -root \n\ | |
GL: bouncingcow -root \n\ | |
cloudlife -root \n\ | |
GL: cubestorm -root \n\ | |
eruption -root \n\ | |
GL: flipflop -root \n\ | |
GL: flyingtoasters -root \n\ | |
fontglide -root \n\ | |
GL: gleidescope -root \n\ | |
GL: glknots -root \n\ | |
GL: glmatrix -root \n\ | |
- GL: glslideshow -root \n\ | |
GL: hypertorus -root \n\ | |
- GL: jigglypuff -root \n\ | |
metaballs -root \n\ | |
GL: mirrorblob -root \n\ | |
piecewise -root \n\ | |
GL: polytopes -root \n\ | |
pong -root \n\ | |
popsquares -root \n\ | |
GL: surfaces -root \n\ | |
xanalogtv -root \n\ | |
abstractile -root \n\ | |
anemotaxis -root \n\ | |
- GL: antinspect -root \n\ | |
fireworkx -root \n\ | |
fuzzyflakes -root \n\ | |
interaggregate -root \n\ | |
intermomentary -root \n\ | |
memscroller -root \n\ | |
GL: noof -root \n\ | |
pacman -root \n\ | |
GL: pinion -root \n\ | |
GL: polyhedra -root \n\ | |
- GL: providence -root \n\ | |
substrate -root \n\ | |
wormhole -root \n\ | |
- GL: antmaze -root \n\ | |
GL: boing -root \n\ | |
boxfit -root \n\ | |
GL: carousel -root \n\ | |
celtic -root \n\ | |
GL: crackberg -root \n\ | |
GL: cube21 -root \n\ | |
fiberlamp -root \n\ | |
GL: fliptext -root \n\ | |
GL: glhanoi -root \n\ | |
GL: tangram -root \n\ | |
GL: timetunnel -root \n\ | |
GL: glschool -root \n\ | |
GL: topblock -root \n\ | |
GL: cubicgrid -root \n\ | |
cwaves -root \n\ | |
GL: gears -root \n\ | |
GL: glcells -root \n\ | |
GL: lockward -root \n\ | |
m6502 -root \n\ | |
GL: moebiusgears -root \n\ | |
GL: voronoi -root \n\ | |
GL: hypnowheel -root \n\ | |
GL: klein -root \n\ | |
- lcdscrub -root \n\ | |
GL: photopile -root \n\ | |
GL: skytentacles -root \n\ | |
GL: rubikblocks -root \n\ | |
GL: companioncube -root \n\ | |
GL: hilbert -root \n\ | |
GL: tronbit -root \n\ | |
GL: geodesic -root \n\ | |
hexadrop -root \n\ | |
GL: kaleidocycle -root \n\ | |
GL: quasicrystal -root \n\ | |
GL: unknownpleasures -root \n\ | |
binaryring -root \n\ | |
GL: cityflow -root \n\ | |
GL: geodesicgears -root \n\ | |
GL: projectiveplane -root \n\ | |
GL: romanboy -root \n\ | |
tessellimage -root \n\ | |
GL: winduprobot -root \n\ | |
GL: splitflap -root \n\ | |
GL: cubestack -root \n\ | |
GL: cubetwist -root \n\ | |
GL: discoball -root \n\ | |
GL: dymaxionmap -root \n\ | |
GL: energystream -root \n\ | |
GL: hexstrut -root \n\ | |
GL: hydrostat -root \n\ | |
GL: raverhoop -root \n\ | |
GL: splodesic -root \n\ | |
GL: unicrud -root \n\ | |
GL: esper -root \n\ | |
GL: vigilance -root \n\ | |
GL: crumbler -root \n\ | |
filmleader -root \n\ | |
glitchpeg -root \n\ | |
GL: handsy -root \n\ | |
GL: maze3d -root \n\ | |
GL: peepers -root \n\ | |
GL: razzledazzle -root \n\ | |
vfeedback -root \n\ | |
GL: deepstars -root \n\ | |
GL: gravitywell -root \n\ | |
pointerPollTime: 0:00:05 | |
pointerHysteresis: 10 | |
windowCreationTimeout:0:00:30 | |
initialDelay: 0:00:00 | |
GetViewPortIsFullOfLies:False | |
procInterrupts: True | |
xinputExtensionDev: False | |
overlayStderr: True | |
authWarningSlack: 20 | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
exec --no-startup-id xautolock -time 30 -locker "killall xscreensaver-co & killall xscreensaver-wa ; ~/989c786379a73a76511cea4d013ae723/xscreensaver-watch.sh & xscreensaver-command -activate" -killtime 30 -killer "systemctl suspend" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# You must have installed xautolock, xscreensaver, i3, i3lock | |
## Set up xscreensaver daemon ## | |
cp xscreensaver.service ~/.config/systemd/user/xscreensaver.service | |
systemctl --user enable xscreensaver | |
## Create Directory to play selected videos ## NOTE: vids must be short <1min | |
mkdir ~/SSVids | |
## Directory to hold Screensaver pictures, must edit xscreensaver-watch.sh to display a specific picture | |
mkdir ~/SSPics | |
## xscreensaver config file ## | |
cp .xscreensaver ~ | |
## Append line to i3 config file ## | |
cat ~/.config/i3/config | |
echo "$(cat ~/.config/i3/config addline)" >> ~/.config/i3/config | |
## Extra: To control xscreensaver using other programs in general, can watch output using this script below: ## | |
# https://gist.github.com/rduplain/3852987 | |
## Call this command and choose the video folder in: | |
# xscreensaver-demo | |
## restart X |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# Code credited to: https://gist.github.com/rduplain/3852987 | |
# | |
# Watch xscreensaver and react to status changes. | |
# | |
# Include somewhere in X session startup with: | |
# | |
# xscreensaver-watch & | |
lock() { | |
# Log this somewhere with `date` instead of just echoing. | |
# echo `uname -n` screen is now blank | |
# Do other things here, like stop music playback & mute speakers. | |
: | |
} | |
unlock() { | |
# Log this somewhere with `date` instead of just echoing. | |
echo `uname -n` screen is now unblank | |
# Do other things here, like resume music playback & unmute speakers. | |
i3lock -i "$HOME/SSPics/randompic.png" | |
} | |
# The purpose of -watch is to print a line each time the screensaver changes state | |
# The output is piped into grep where an "UNBLANK" string is search for | |
# If received, call unlock() and eventually calls i3lock | |
# grep -q is quiet output, ^ is from beginning of line | |
$exitCounter = 0 | |
xscreensaver-command -watch | while read watchOutput; do | |
# echo "$watchOutput" | grep -q '^BLANK' && lock | |
# echo "$watchOutput" >> ~/tmp.txt | |
if [$exitCounter = 1]; then | |
echo "$watchOutput" | grep -q '^UNBLANK' && unlock | |
break | |
else | |
echo "$watchOutput" | grep -q '^UNBLANK' && unlock | |
fi | |
((exitCounter++)) | |
done |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Unit] | |
Description=XScreenSaver | |
[Service] | |
ExecStart=xscreensaver | |
[Install] | |
WantedBy=default.target |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment