#!/usr/NeWS/bin/psh % % Date: Sun, 23 Oct 88 00:32:20 EDT % To: NeWS-makers@brillig.umd.edu % Subject: getcolors: saves the current screen colors % From: jcricket!sjs@bellcore.com (Stan Switzer) % % Ok, fine. Now I have pretty colors on my screen. Do I have to set % them up every time I log in? What a hassle! % % No problem. This little ditty produces a postscript program that when % run sets your colors back to what they are right now. % % If you have all been good little hackers, you will have already % installed my window patches in your user.ps file. One of the last % things that file does is to check to see if a file called "color.ps" % or "mono.ps" exists (in the current directory, presumably $HOME) and % if so runs it. % % Suggested use: % 1) Get the colors just the way you like them. (Use good judgement. % Other people may have to look at your screen someday!) % 2) On a color workstation: getcolors >~/color.ps % 3) On a mono workstation: getcolors >~/mono.ps % % Again, as always, enjoy! % % Stan Switzer sjs@ctt.bellcore.com % % P.S.: Ignore article's reply address since my poster mungs it; use % signature address instead. % ------------------------------------------------------------- % % getcolors: output postscript program to restore current colors. % % Copyright (C) 1988 by Stan Switzer. All rights reserved. % This program is provided for unrestricted use, provided that this % copyright message is preserved. There is no warranty, and no author % or distributer accepts responsibility for any damage caused by this % program. % /OrigColor currentcolor def /Ip { 100 mul dup 99 gt { pop (1) print } { (0.)print .501 add cvi dup 10 lt { (0) print } if (xxxxx) cvs print } ifelse } def /P { dup type /Z type eq { dup 50 string cvs (/) print print } if dup type 11 type eq { dup Ip } if dup type .1 type eq { dup Ip } if dup type () type eq { dup print } if pop } def /X { ( ) print [ exch dup load setshade currentrgbcolor ] { P ( ) print } forall ( rgbcolor store\n) print } def /X? { currentdict 1 index known { X } { pop } ifelse } def /DefaultRootGrayOrColor X /backgroundcolor X /textcolor X LiteWindow begin (LiteWindow begin\n) print ( /ClientFillColor backgroundcolor store\n) print /FrameFillColor X /KeyFocusColor X /IconFillColor X /IconBorderColor X /IconTextColor X (end\n) print end UserProfile begin (UserProfile begin\n) print /NtermTextColor X? /NtermFillColor X? /NtermCaretColor X? (end\n) print end ({ framebuffer setcanvas PaintRoot\n) print ( { /setfgcolor where { pop % Hack Warning (find nterm windows)\n) print ( /NtermTextColor UserProfile 1 index known { UserProfile exch get\n)print ( dup /setfgcolor Text send /setfgcolor Win send } { pop } ifelse\n) print ( /NtermFillColor UserProfile 1 index known { UserProfile exch get\n) print ( dup /setbgcolor Text send /setbgcolor Win send } { pop } ifelse\n) print ( /NtermCaretColor UserProfile 1 index known { UserProfile exch get\n) print ( /setcaretcolor Text send } { pop } ifelse \n) print ( } if /paint self send} AllWin } fork pop\n) print 10 { pause } repeat OrigColor setcolor % ---- anything below this line is NOT part of the program ----