From 614959b59fbbe695b1d29b1c5c0245554fba4ec1 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Fri, 24 Jan 2003 00:05:01 +0000 Subject: Add XScreensaver defaults for kiosk use. --- X11/app-defaults/XScreenSaver.kiosk | 631 ++++++++++++++++++++++++++++++++++++ 1 file changed, 631 insertions(+) create mode 100644 X11/app-defaults/XScreenSaver.kiosk (limited to 'X11') diff --git a/X11/app-defaults/XScreenSaver.kiosk b/X11/app-defaults/XScreenSaver.kiosk new file mode 100644 index 0000000..7904845 --- /dev/null +++ b/X11/app-defaults/XScreenSaver.kiosk @@ -0,0 +1,631 @@ +! +! XScreenSaver +! +! a screen saver and locker for the X window system +! by Jamie Zawinski +! +! version 4.05 +! 11-Jun-2002 +! +! See "man xscreensaver" for more info. The latest version is always +! available at http://www.jwz.org/xscreensaver/ + + +! These resources, when placed in the system-wide app-defaults directory +! (e.g., /usr/lib/X11/app-defaults/XScreenSaver) will provide the default +! settings for new users. However, if you have a ".xscreensaver" file in +! your home directory, the settings in that file take precedence. + + +! Don't hand this file to "xrdb" -- that isn't how app-defaults files work. +! Though app-defaults files have (mostly) the same syntax as your ~/.Xdefaults +! file, they are used differently, and if you run this file through xrdb, +! you will probably mess things up. + +#error Do not run app-defaults files through xrdb! +#error That does not do what you might expect. +#error Put this file in /usr/lib/X11/app-defaults/XScreenSaver instead. + +! /* (xrdb prevention kludge: whole file) + +*timeout: 0:05:00 +*cycle: 0:10:00 +*lockTimeout: 0:00:00 +*passwdTimeout: 0:00:30 +*dpmsEnabled: False +*dpmsStandby: 2:00:00 +*dpmsSuspend: 2:00:00 +*dpmsOff: 4:00:00 +*grabDesktopImages: True +*grabVideoFrames: False +*chooseRandomImages: False +*imageDirectory: +*nice: 10 +*memoryLimit: 0 +*lock: False +*lockVTs: True +*verbose: False +*timestamp: True +*fade: False +*unfade: False +*fadeSeconds: 0:00:03 +*fadeTicks: 20 +*splash: False +*splashDuration: 0:00:05 +*visualID: default + +*captureStderr: False +*overlayTextForeground: #FFFF00 +*overlayTextBackground: #000000 +*overlayStderr: True +*font: *-medium-r-*-140-*-m-* + +! The default is to use these extensions if available (as noted.) +*sgiSaverExtension: True +*mitSaverExtension: False +*xidleExtension: True +*procInterrupts: True + +! This is what the "Demo" button on the splash screen runs (/bin/sh syntax.) +*demoCommand: xscreensaver-demo + +! This is what the "Prefs" button on the splash screen runs (/bin/sh syntax.) +*prefsCommand: xscreensaver-demo -prefs + +! This is the URL that the "Help" button on the splash screen loads. +*helpURL: http://www.jwz.org/xscreensaver/man.html + +! This is how the "Help" button loads URLs (/bin/sh syntax.) +! The "helpURL" will be substituted for up to two occurrences of "%s". +*loadURL: netscape -remote 'openURL(%s)' || netscape '%s' + +! This is what the "Manual" button in xscreensaver-demo runs (/bin/sh syntax.) +*manualCommand: /usr/bin/x-terminal-emulator +sb -T '%s manual' \ + -e /bin/sh -c 'man "%s" || read foo' +! For GNOME systems: +! *manualCommand: gnome-help-browser 'man:%s' + + +! The format used for printing the date and time in the password dialog box +! (see the strftime(3) manual page for details.) +*dateFormat: %d-%b-%y (%a); %I:%M %p +! To show the time only: +! *dateFormat: %I:%M %p +! For 24 hour time: +! *dateFormat: %H:%M + + +! Turning on "installColormap" interacts erratically with twm and tvtwm, +! but seems to work fine with mwm and olwm. Try it and see. If your +! screen turns some color other than black, the window manager is buggy, +! and you need to set this resource to False (or get a WM that works.) +! +*installColormap: True + + +! Any program which can draw on the root window will work as a screensaver. +! The following resource enumerates them. +! +! Programs are separated by newlines (specified in resource files with \n). +! Lines may be continued with a lone \ at the end of the line. +! +! Each line is an `sh' command. +! +! If the first (non-blank) character on the line is "-", then that means +! that this command is disabled: it's still in the list, but it won't ever +! be used. (This is just to make it easy to disable and then re-enable +! them later.) +! +! If the first word on the line is the name of a visual followed by a +! colon, then that visual will be used for the program, if it is available. +! If no such visual is available, then the program will be skipped. In +! this way, you can specify that you want certain programs to run only +! on color screens, and others only on mono screens, by making use of the +! magic visual names "color" and "mono". Likewise, if some hacks prefer +! colormaps, but others prefer 24-bit windows, that also can be arranged +! (in this case, by using "PseudoColor:" versus "TrueColor:".) +! +! Some of the screenhacks are written using OpenGL. OpenGL programs are +! a bit different than normal X programs, in that they prefer visuals that +! are *half* as deep as the screen. You can tell xscreensaver to select a +! good visual for a GL program by using the magic visual name "GL". +! +! All programs must be launched in such a way that they draw on the root +! window; they should not be spawned in the background with "&". If shell +! metacharacters are used, they must be understandable to `sh', not `csh' +! (the $SHELL variable is not consulted, for unfortunate but good reasons.) +! +! Be sure to check out Demo Mode: run the `xscreensaver-demo' program to +! edit the current list of programs interactively, try out the various modes, +! and change other parameters. See the man page for details. +! +*programs: \ +- "Qix (solid)" qix -root -solid -segments 100 \n\ +- "Qix (transparent)" qix -root -count 4 -solid -transparent \n\ +- "Qix (linear)" qix -root -count 5 -solid -transparent \ + -linear -segments 250 -size 100 \n\ +- mono: "Qix (xor)" qix -root -linear -count 5 -size 200 \ + -spread 30 -segments 75 -solid -xor \n\ + \ +- "Attraction (balls)" attraction -root -mode balls \n\ +- "Attraction (lines)" attraction -root -mode lines -points 3 \ + -segments 200 \n\ +- "Attraction (poly)" attraction -root -mode polygons \n\ +- "Attraction (splines)" attraction -root -mode splines -segments \ + 300 \n\ +- "Attraction (orbital)" attraction -root -mode lines -radius 300 \ + -orbit -vmult 0.5 \n\ + \ +- pyro -root \n\ +- rocks -root \n\ +- helix -root \n\ +- pedal -root \n\ +- rorschach -root -offset 7 \n\ +- hopalong -root \n\ +- greynetic -root \n\ +- imsmap -root \n\ +- slidescreen -root \n\ +- decayscreen -root \n\ +- jigsaw -root \n\ +- blitspin -root -grab \n\ +- slip -root \n\ +- distort -root \n\ +- spotlight -root \n\ +- "Ripples (oily)" ripples -root -oily -light 2 \n\ +- "Ripples (stir)" ripples -root -oily -light 2 -stir \n\ +- "Ripples (desktop)" ripples -root -water -light 6 \n\ +- hypercube -root \n\ +- hyperball -root \n\ +- halo -root \n\ +- maze -root \n\ +- noseguy -root \n\ +- flame -root \n\ +- lmorph -root \n\ +- deco -root \n\ +- moire -root \n\ +- moire2 -root \n\ +- lightning -root \n\ +- strange -root \n\ +- spiral -root \n\ +- laser -root \n\ +- grav -root \n\ +- "Grav (trails)" grav -root -trail -decay \n\ +- drift -root \n\ +- ifs -root \n\ +- julia -root \n\ +- penrose -root \n\ +- sierpinski -root \n\ +- braid -root \n\ +- galaxy -root \n\ +- bouboule -root \n\ +- swirl -root \n\ +- flag -root \n\ +- sphere -root \n\ +- forest -root \n\ +- lisa -root \n\ +- lissie -root \n\ +- goop -root -max-velocity 0.5 -elasticity \ + 0.9 \n\ +- starfish -root \n\ +- "Starfish (blob)" starfish -root -blob \n\ +- munch -root \n\ +- fadeplot -root \n\ +- coral -root -delay 0 \n\ +- mountain -root \n\ +- triangle -root -delay 1 \n\ +- worm -root \n\ +- rotor -root \n\ +- ant -root \n\ +- demon -root \n\ +- loop -root \n\ +- vines -root \n\ +- kaleidescope -root \n\ +- xjack -root \n\ +- xlyap -root -randomize \n\ +- cynosure -root \n\ +- flow -root \n\ +- epicycle -root \n\ +- interference -root \n\ +- truchet -root -randomize \n\ +- bsod -root \n\ +- crystal -root \n\ +- discrete -root \n\ +- kumppa -root \n\ +- rd-bomb -root \n\ +- "RD-Bomb (mobile)" rd-bomb -root -speed 1 -size 0.1 \n\ +- sonar -root \n\ +- t3d -root \n\ +- penetrate -root \n\ +- deluxe -root \n\ +- compass -root \n\ +- squiral -root \n\ +- xflame -root \n\ +- wander -root \n\ +- "Wander (spots)" wander -root -advance 0 -size 10 -circles \ + -length 10000 -reset 100000 \n\ +- critical -root \n\ +- phosphor -root \n\ + xmatrix -root \n\ +- petri -root -size 2 -count 20 \n\ +- "Petri 2" petri -root -minlifespeed 0.02 \ + -maxlifespeed 0.03 -minlifespan 1 \ + -maxlifespan 1 -instantdeathchan 0 \ +- -minorchan 0 -anychan 0.3 \n\ +- shadebobs -root \n\ +- ccurve -root \n\ +- blaster -root \n\ +- bumps -root \n\ +- xteevee -root \n\ +- xspirograph -root \n\ +- nerverot -root \n\ +- "NerveRot (dense)" nerverot -root -count 1000 \n\ +- "NerveRot (thick)" nerverot -root -count 100 -line-width 4 \ + -max-nerve-radius 0.8 -nervousness 0.5 -db \n\ +- xrayswarm -root \n\ +- "Zoom (Fatbits)" zoom -root \n\ +- "Zoom (Lenses)" zoom -root -lenses \n\ +- rotzoomer -root \n\ +- "RotZoomer (mobile)" rotzoomer -root -move \n\ +- "RotZoomer (sweep)" rotzoomer -root -sweep \n\ +- whirlwindwarp -root \n\ +- "WhirlyGig" whirlygig -root \n\ +- "SpeedMine" speedmine -root \n\ +- "SpeedWorm" speedmine -root -worm \n\ +- vermiculate -root \n\ +- twang -root \n\ +- apollonian -root \n\ +- euler2d -root \n\ +- "Euler2d (dense)" euler2d -root -count 4000 -eulertail 400 \ + -ncolors 230 \n\ +- juggle -root \n\ +- polyominoes -root \n\ +- thornbird -root \n\ +- fluidballs -root \n\ +- anemone -root \n\ +- color: bubbles -root \n\ +- default-n: webcollage -root \n\ + default-n: "WebCollage (whacked)" \ + webcollage -root -filter \ +- 'vidwhacker -stdin -stdout' \n\ +- default-n: vidwhacker -root \n\ + \ +- GL: gears -root \n\ +- GL: "Gears (planetary)" gears -root -planetary \n\ +- GL: superquadrics -root \n\ +- GL: morph3d -root \n\ +- GL: cage -root \n\ +- GL: moebius -root \n\ +- GL: stairs -root \n\ +- GL: pipes -root \n\ +- GL: sproingies -root \n\ +- GL: rubik -root \n\ +- GL: atlantis -root \n\ +- GL: lament -root \n\ +- GL: bubble3d -root \n\ +- GL: glplanet -root \n\ +- GL: pulsar -root \n\ +- GL: "Pulsar (textures)" \ + pulsar -root -texture -mipmap \ + -texture_quality -light -fog \n\ +- GL: extrusion -root \n\ +- GL: sierpinski3d -root \n\ +- GL: menger -root \n\ +- GL: "GFlux" gflux -root \n\ +- GL: "GFlux (grab)" gflux -root -mode grab \n\ +- GL: stonerview -root \n\ +- GL: starwars -root \n\ +- GL: gltext -root \n\ +- GL: "GLText (clock)" gltext -text "%A%n%d %b %Y%n%r" -root \n\ +- GL: "Molecule" molecule -root \n\ +- GL: "Molecule (lumpy)" molecule -root -no-bonds -no-labels \n\ +- GL: dangerball -root \n\ +- GL: circuit -root \n\ +- GL: engine -root \n\ +- GL: flipscreen3d -root \n\ +- GL: glsnake -root \n\ +- GL: boxed -root \n\ +- GL: glforestfire -root \n\ +- GL: sballs -root \n\ +- GL: cubenetic -root \n\ +- GL: spheremonics -root \n\ +- GL: lavalite -root \n\ +- GL: queens -root \n\ +- GL: endgame -root \n\ + \ +- xdaliclock -root -builtin3 -cycle \n\ +- default-n: xearth -nofork -nostars -ncolors 50 \ + -night 3 -wait 0 -timewarp 400.0 -pos \ + sunrel/38/-30 \n\ +- xplanetbg -xscreensaver -moonside \ + -markerfile earth -wait 1 -timewarp 400 \n\ +- xmountains -b -M -Z 0 -r 1 \n\ +- "XMountains (top)" xmountains -b -M -Z 0 -r 1 -m \n\ + xaos -fullscreen -autopilot \ + -incoloring -1 -outcoloring -1 \n\ + xfishtank -d -s \n\ +- xsnow \n\ +- goban -root \n\ + electricsheep --standalone 1 \ + --save-dir /var/lib/electricsheep \n\ +- cosmos -root \n\ +- GL: sphereEversion --root \n + + +! To display a randomized slideshow of images, you can do something like this: +! +! default-n: "Slideshow" xv -root -rmode 5 -random -viewonly \ +! -wloop -wait 30 $HOME/bitmaps/*.jpg \n\ +! +! Recipes for using other slideshow programs can be found in the +! XScreenSaver FAQ: http://www.jwz.org/xscreensaver/faq.html +! +! Note that we've used "default-n" as the visual name, rather than just +! "default": this means "default visual, no install", that is, it's like +! specifying the command-line arguments "-visual default -no-install". +! This is necessary because, when XV or XLI arerunning in "-root" mode, they +! always assume that the default visual and colormap are being used, rather +! than examining the window it is drawing on to see what visual and colormap +! it has. If we didn't force the default visual to be used, we would get an +! X error. If we didn't force the default colormap to be installed, the +! colors would be all wrong. "default-i" may also be used as a visual name +! (meaning, "-visual default -install") but you probably won't ever need +! to use that. +! +! +! Some of the GL demos that SGI ships work with XScreenSaver; most don't. +! XScreenSaver includes a program (not built or installed by default) +! called "xscreensaver-sgigl". To use the SGI demos with XScreenSaver, +! build that program, and use it to launch the SGI demos. For example, +! on Irix 6.2, you can do this: +! +! xscreensaver-sgigl /usr/demos/bin/ep -S +! xscreensaver-sgigl /usr/demos/bin/bongo +! +! On Irix 6.3, things have moved, so you need to do it like this: +! +! xscreensaver-sgigl /usr/sbin/ep -S +! +! (But note that, on non-SGIs, the bundled "stonerview" hack is a decent +! clone of "ep". Yay!) +! +! You can also use the "ant" demo, but first you need to wrap a shell script +! around it that cds to its home directory, so that it can find its files; +! and also pass it the -S argument, to prevent it from forking. What a mess! +! Basically, the SGI demo writers went out of their way to make my life hell. + + + +!============================================================================= +! +! You probably don't want to change anything after this point. +! +!============================================================================= + + +XScreenSaver.pointerPollTime: 0:00:05 +XScreenSaver.initialDelay: 0:00:00 +XScreenSaver.windowCreationTimeout: 0:00:30 +XScreenSaver.bourneShell: /bin/sh + + +! Resources for the password and splash-screen dialog boxes of +! the "xscreensaver" daemon. +! +*Dialog.headingFont: *-times-bold-r-*-*-*-180-*-*-*-iso8859-1 +*Dialog.bodyFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1 +*Dialog.labelFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1 +*Dialog.buttonFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1 +*Dialog.dateFont: *-courier-medium-r-*-*-*-80-*-*-*-iso8859-1 +*Dialog.foreground: #000000 +*Dialog.background: #D6D6D6 +*Dialog.Button.foreground: #000000 +*Dialog.Button.background: #EAEAEA +!*Dialog.Button.background: #D6D6D6 +!*Dialog.Button.pointBackground: #EAEAEA +!*Dialog.Button.clickBackground: #C3C3C3 +*Dialog.text.foreground: #000000 +*Dialog.text.background: #FFFFFF +*passwd.thermometer.foreground: #FF0000 +*passwd.thermometer.background: #FFFFFF +*Dialog.topShadowColor: #FFFFFF +*Dialog.bottomShadowColor: #666666 +*Dialog.logo.width: 210 +*Dialog.logo.height: 210 +*Dialog.internalBorderWidth: 30 +*Dialog.borderWidth: 1 +*Dialog.shadowThickness: 2 + +*passwd.heading.label: XScreenSaver %s +*passwd.body.label: This display is locked. +*passwd.user.label: User: +*passwd.passwd.label: Password: +*passwd.passwdFont: *-courier-medium-r-*-*-*-140-*-*-*-iso8859-1 +*passwd.thermometer.width: 8 + +*splash.heading.label: XScreenSaver %s +*splash.body.label: Copyright © 1991-2002 by +*splash.body2.label: Jamie Zawinski +*splash.demo.label: Settings +*splash.help.label: Help + + +! Resources for the Motif dialog boxes of the "xscreensaver-demo" program. +! +*fontList: *-helvetica-medium-r-*-*-*-120-*-*-*-iso8859-1 +*demoDialog*label1.fontList: *-helvetica-medium-r-*-*-*-140-*-*-*-iso8859-1 +*cmdText.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1 +*label0.fontList: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1 +XScreenSaver*doc.fontList: *-helvetica-medium-r-*-*-*-100-*-*-*-iso8859-1 +! above must be fully qualified to get around *sgiMode. + +*foreground: #000000 +*background: #C0C0C0 +*XmTextField.foreground: #000000 +*XmTextField.background: #FFFFFF +*list.foreground: #000000 +*list.background: #FFFFFF + +*ApplicationShell.title: XScreenSaver +*warning.title: XScreenSaver +*warning_popup.title: XScreenSaver +*allowShellResize: True +*autoUnmanage: False + +*menubar*file.labelString: File +*menubar*file.mnemonic: F +*file.blank.labelString: Blank Screen Now +*file.blank.mnemonic: B +*file.lock.labelString: Lock Screen Now +*file.lock.mnemonic: L +*file.kill.labelString: Kill Daemon +*file.kill.mnemonic: K +*file.restart.labelString: Restart Daemon +*file.restart.mnemonic: R +*file.exit.labelString: Exit +*file.exit.mnemonic: E + +*menubar*edit.labelString: Edit +*menubar*edit.mnemonic: E +*edit.cut.labelString: Cut +*edit.cut.mnemonic: u +*edit.copy.labelString: Copy +*edit.copy.mnemonic: C +*edit.paste.labelString: Paste +*edit.paste.mnemonic: P + +*menubar*help.labelString: Help +*menubar*help.mnemonic: H +*help.about.labelString: About... +*help.about.mnemonic: A +*help.docMenu.labelString: Documentation... +*help.docMenu.mnemonic: D + +*demoTab.marginWidth: 10 +*optionsTab.marginWidth: 10 + +*XmScrolledWindow.topOffset: 10 +*XmScrolledWindow.leftOffset: 10 +*demoTab.topOffset: 4 +*form1.bottomOffset: 10 +*form3.leftOffset: 10 +*form3.rightOffset: 10 +*frame.topOffset: 10 +*frame.bottomOffset: 10 +*enabled.topOffset: 10 +*visLabel.topOffset: 10 +*combo.topOffset: 10 +*form4.bottomOffset: 4 +*hr.bottomOffset: 4 +*XmComboBox.marginWidth: 0 +*XmComboBox.marginHeight: 0 + +*demo.marginWidth: 30 +*demo.marginHeight: 4 +*man.marginWidth: 10 +*man.marginHeight: 4 +*down.leftOffset: 40 +*down.marginWidth: 4 +*down.marginHeight: 4 +*up.marginWidth: 4 +*up.marginHeight: 4 +*frame.traversalOn: False + +*list.automaticSelection: True +*list.visibleItemCount: 20 +*doc.columns: 60 +*combo.columns: 11 + +*demoTab.labelString: Graphics Demos +*optionsTab.labelString: Screensaver Options +*down.labelString: \\/ +*up.labelString: /\\ +*frameLabel.labelString: +*cmdLabel.labelString: Command Line: +*cmdLabel.alignment: ALIGNMENT_BEGINNING +*enabled.labelString: Enabled +*visLabel.labelString: Visual: +*visLabel.alignment: ALIGNMENT_END +*visLabel.leftOffset: 20 +*demo.labelString: Demo +*man.labelString: Documentation... +*done.labelString: Quit + +*preferencesLabel.labelString: XScreenSaver Parameters + +*timeoutLabel.labelString: Saver Timeout +*cycleLabel.labelString: Cycle Timeout +*fadeSecondsLabel.labelString: Fade Duration +*fadeTicksLabel.labelString: Fade Ticks +*lockLabel.labelString: Lock Timeout +*passwdLabel.labelString: Password Timeout +*preferencesForm*XmTextField.columns: 8 + +*verboseToggle.labelString: Verbose +*cmapToggle.labelString: Install Colormap +*fadeToggle.labelString: Fade Colormap +*unfadeToggle.labelString: Unfade Colormap +*lockToggle.labelString: Require Password + + +*OK.marginWidth: 30 +*OK.marginHeight: 4 +*OK.leftOffset: 10 +*OK.bottomOffset: 10 +*Cancel.marginWidth: 30 +*Cancel.marginHeight: 4 +*Cancel.rightOffset: 10 +*Cancel.bottomOffset: 10 + + +!============================================================================= +! +! Pretty names for the hacks that have unusual capitalization. +! +!============================================================================= + +*hacks.imsmap.name: IMSmap +*hacks.slidescreen.name: SlideScreen +*hacks.decayscreen.name: DecayScreen +*hacks.blitspin.name: BlitSpin +*hacks.lmorph.name: LMorph +*hacks.ifs.name: IFS +*hacks.fadeplot.name: FadePlot +*hacks.bsod.name: BSOD +*hacks.rd-bomb.name: RD-Bomb +*hacks.t3d.name: T3D +*hacks.shadebobs.name: ShadeBobs +*hacks.ccurve.name: C Curve +*hacks.xteevee.name: XTeeVee +*hacks.xspirograph.name: XSpiroGraph +*hacks.nerverot.name: NerveRot +*hacks.webcollage.name: WebCollage +*hacks.vidwhacker.name: VidWhacker +*hacks.morph3d.name: Morph3D +*hacks.bubble3d.name: Bubble3D +*hacks.glplanet.name: GLPlanet +*hacks.sierpinski3d.name: Sierpinski3D +*hacks.gflux.name: GFlux +*hacks.xrayswarm.name: XRaySwarm +*hacks.whirlwindwarp.name: WhirlwindWarp +*hacks.rotzoomer.name: RotZoomer +*hacks.stonerview.name: StonerView +*hacks.starwars.name: StarWars +*hacks.gltext.name: GLText +*hacks.dangerball.name: DangerBall +*hacks.whirlygig.name: WhirlyGig +*hacks.speedmine.name: SpeedMine +*hacks.glsnake.name: GLSnake +*hacks.glforestfire.name: GLForestFire +*hacks.sballs.name: SBalls +*hacks.xdaliclock.name: XDaliClock +*hacks.xplanetbg.name: XPlanet +*hacks.xaos.name: XaoS +*hacks.xfishtank.name: XFishTank +*hacks.electricsheep.name: ElectricSheep +*hacks.sphereEversion.name: SphereEversion +*hacks.fluidballs.name: FluidBalls + +! obsolete, but still used by xscreensaver-demo-Xm. +*hacks.documentation.isInstalled: True + +! (xrdb prevention kludge: whole file) */ -- cgit v1.2.3