[OS X TeX] A Pair of TeXShop Applescript Macros

Norm Gall gall at spookyhill.net
Tue Apr 26 09:33:57 EDT 2005


Since Carbon Emacs is broken on Tiger for the time being, I have  
returned ot good ol' TeXShop.

However, I like light characters on dark backgrounds and ever so  
slightly transparent windows. The {rgb} number system is terrible to  
use with the default write method of setting preferences, so I wrote  
these two applescripts for TeXShop.

Open up the Macro Editor and stick 'em in.

I have only two complaints: a) I cannot figure out how to get  
ScriptRunner to come to the front and b) the cursor and caret do not  
seem to have any defaults settings. They are essentially invisible  
with a very dark background.

Enjoy.  If you have suggestions, please e-mail.

-- Applescript to set the editor colours

-- This script reads the current TeXShop defaults and displays them
-- in the colour picker you see. If you want what you have, just
-- hit ok.

-- copyleft 2005 Norm Gall <gall at spookyhill.net>

display dialog "The current colours are pre-set for each picker. To  
accept the current setting, just press Ok for the picker." buttons  
"Ok" default button 1

-- do background colour

display dialog "Choose a background colour" buttons "Next" default  
button 1

set red to do shell script "defaults read TeXShop background_R"
set green to do shell script "defaults read TeXShop background_G"
set blue to do shell script "defaults read TeXShop background_B"

myPicker(red, green, blue)
set foo to the result

do shell script "defaults write TeXShop background_R " & item 1 of foo
do shell script "defaults write TeXShop background_G " & item 2 of foo
do shell script "defaults write TeXShop background_B " & item 3 of foo

-- do foreground colour

display dialog "Choose a foreground colour" buttons "Next" default  
button 1

set red to do shell script "defaults read TeXShop foreground_R"
set green to do shell script "defaults read TeXShop foreground_G"
set blue to do shell script "defaults read TeXShop foreground_B"

myPicker(red, green, blue)
set foo to the result

do shell script "defaults write TeXShop foreground_R " & item 1 of foo
do shell script "defaults write TeXShop foreground_G " & item 2 of foo
do shell script "defaults write TeXShop foreground_B " & item 3 of foo

-- do comment colour

display dialog "Choose a comment text colour" buttons "Next" default  
button 1

set red to do shell script "defaults read TeXShop commentred"
set green to do shell script "defaults read TeXShop commentgreen"
set blue to do shell script "defaults read TeXShop commentblue"

myPicker(red, green, blue)
set foo to the result

do shell script "defaults write TeXShop commentred " & item 1 of foo
do shell script "defaults write TeXShop commentgreen " & item 2 of foo
do shell script "defaults write TeXShop commentblue " & item 3 of foo

-- do command colour

display dialog "Choose a LaTeX command text colour" buttons "Next"  
default button 1

set red to do shell script "defaults read TeXShop commandred"
set green to do shell script "defaults read TeXShop commandgreen"
set blue to do shell script "defaults read TeXShop commandblue"

myPicker(red, green, blue)
set foo to the result

do shell script "defaults write TeXShop commandred " & item 1 of foo
do shell script "defaults write TeXShop commandgreen " & item 2 of foo
do shell script "defaults write TeXShop commandblue " & item 3 of foo

-- set marker colour

display dialog "Choose a LaTeX marker text colour" buttons "Next"  
default button 1

set red to do shell script "defaults read TeXShop markerred"
set green to do shell script "defaults read TeXShop markergreen"
set blue to do shell script "defaults read TeXShop markerblue"

myPicker(red, green, blue)
set foo to the result

do shell script "defaults write TeXShop markerred " & item 1 of foo
do shell script "defaults write TeXShop markergreen " & item 2 of foo
do shell script "defaults write TeXShop markerblue " & item 3 of foo

-- warn user

display dialog ¬
     "You must quit and re-launch TeXShop to see the effects of your  
changes" buttons "Ok" default button 1

-- get a picker
on myPicker(rValue, gValue, bValue)

     set rValue to rValue as real
     set gValue to gValue as real
     set bValue to bValue as real

     set rValue to rValue * 65535 as integer
     set gValue to gValue * 65535 as integer
     set bValue to bValue * 65535 as integer

     set rgbValue to ¬
         choose color default color {rValue, gValue, bValue}
     set rValue to (item 1 of rgbValue) / 65535
     set gValue to (item 2 of rgbValue) / 65535
     set bValue to (item 3 of rgbValue) / 65535

     set rgbValue to rValue & gValue & bValue
     return rgbValue

end myPicker



-- Applescript to set window transparency

--  Created by Norman Gall on 26/04/05.
--  Copyleft 2005 Spookyhill. All rights reserved.

-- do source window

set alpha to do shell script "defaults read TeXShop SourceWindowAlpha"

set the Reply to display dialog "Set transparency of source window:
(value between 0 and 1):" default answer alpha buttons {"Cancel",  
"Ok"} default button "Ok"

set alpha to text returned of the result as real

if alpha is greater than or equal to 0 and alpha is less than or  
equal to 1 then
     do shell script "defaults write TeXShop SourceWindowAlpha " & alpha
else
     display dialog "Value must be between 0 and 1" buttons "ok"  
default button 1
end if

-- do preview window

set alpha to do shell script "defaults read TeXShop PreviewWindowAlpha"

set the Reply to display dialog "Set transparency of preview window:
(value between 0 and 1):" default answer alpha buttons {"Cancel",  
"Ok"} default button "Ok"

set alpha to text returned of the result as real

if alpha is greater than or equal to 0 and alpha is less than or  
equal to 1 then
     do shell script "defaults write TeXShop PreviewWindowAlpha " &  
alpha
else
     display dialog "Value must be between 0 and 1" buttons "ok"  
default button 1
end if

-- do console

set alpha to do shell script "defaults read TeXShop ConsoleWindowAlpha"

set the Reply to display dialog "Set transparency of console window:
(value between 0 and 1):" default answer alpha buttons {"Cancel",  
"Ok"} default button "Ok"

set alpha to text returned of the result as real

if alpha is greater than or equal to 0 and alpha is less than or  
equal to 1 then
     do shell script "defaults write TeXShop ConsoleWindowAlpha " &  
alpha
else
     display dialog "Value must be between 0 and 1" buttons "ok"  
default button 1
end if

-- warn user

display dialog ¬
     "You must quit and re-launch TeXShop to see the effects of your  
changes" buttons "Ok" default button 1


-- 
"The Americans  will always do the right thing... After they've  
exhausted
  all the  alternatives."                              - Winston  
Churchill

--------------------- Info ---------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
           & FAQ: http://latex.yauh.de/faq/
TeX FAQ: http://www.tex.ac.uk/faq
List Post: <mailto:MacOSX-TeX at email.esm.psu.edu>





More information about the MacOSX-TeX mailing list