Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Personalizing the environment: Making Squeak your own
Last updated at 6:08 pm UTC on 30 May 2009

The Problem


I don't see very well.
Any screen below 15 inches runnning at 1024x768 or greater with an "out of the box" squeak results in font/color combinations for me that just don't work.

The Solution:

Customize Squeak


A little "hard play" with squeak reveals an extensive preference system. Many... of Squeak's visual and mouse/keyboard behavior characteristics can be changed in ways that lesser environments cannot conceive of, let alone do.



There are several ways to access the magic. Some of them include the preference browser, external packages, and scripting. If you are new to Squeak, you should start with the preferences browser. Is you feel more comfortable, move on to external packages and scripting.



The preferences browser


A Fresh Squeak 3.4 to 3.7 image has several flaps around the edges of the world. The tools flap on the right side of the world includes a vertical looking Preferences browser. If ou drag it out into the world, you will find some very useful instructions and a search box. The top darker cyan part of the browser is a very... wrapped menu of various preference categories. Clicking them reveals assorted lists OF preferences that can be easily manipulated. The baloon help provides useful information about preferences you have your mouse form over. You can interactively change most of the Squeak preferences except for fonts and colors. Those can be set through the World | Appearance menu. Access the world menu by left clicking anywhere you can see the world desktop.



External Packages


The Squeak community has developed an extensive repository of enhancements and extensions located on SqueakMap. You can find everything from simple menu and morph enhancements like ShrinkingSelection (Standard in Squeak 3.7) to major overhauls like Personalizing the environment: Making Squeak your own. See the Publishing Packages with SqueakMap page for more information on using SqueakMap.



Scripting


By scripting I mean everything from a collection of instructions in a workspace to creating your own extensive Morphic/MVC modifications.



When I bring in a new image, I want it to customize it in a hurry so I can get back to creating. I use a preferences workspace and file in a special change set or two. I do it this way because it is much faster and less prone to typing errors.



If you study the class side of the Preferences class, you will find a very useful set of methods for directly setting just about any preferences. I find that I like a particular set of colors for the various windows. I also like scroll bars on the right that tend to stick around so I can find them. So, my preferences workspace includes the lines:



  Preferences
          disable: #alternativeScrollbarLook;
          disable: #menuColorFromWorld;
          enable: #scrollBarsNarrow;
          disable: #roundedWindowCorners;
          disable: #roundedMenuCorners;
          enable: #hiddenScrollBars;
          enable: #inboardScrollbars;
          enable: #scrollBarsOnRight;
          "  after loading Diego's look enhancements "
          disable: #menuAppearance3d;
          "  after loading *58* "
          "  3.7 includes this as a standard feature "
          enable: #selectionsMayShrink;
          enable: #wordStyleCursorMovement.



enable: #preferenceName
sets that preference to true.



disable: #preferenceName
sets that preference to false.



Some color aspects of squeak have special names, Here are some examples.



  Preferences
          desktopColor: ( Color r: 0.9 g: 0.92 b: 0.99 );
          insertionPointColor: ( Color r: 1.00 g: 0.55 b: 0.0 );
          keyboardFocusColor: ( Color r: 0.7 g: 0.75 b: 0.99 );
          textHighlightColor: ( Color r: 0.75 g: 0.95 b: 0.65).



I have not met two people who agree on what constitues a perfect color scheme. So, treat these choices as an example and have fun making the specific colors your own.



Now to the menus; I tend to adjust them to be easy for me to read. I find the "star"nix sand/earth thing works, so:



  Preferences
          setParameter: #menuColor to: ( Color r: 0.98 g: 0.94 b: 0.81 );
          setParameter: #menuTitleColor to: ( Color r: 0.90 g: 0.88 b: 0.71 );
          setParameter: #menuBorderColor to: ( Color r: 0.30 g: 0.27 b: 0.11 );
          setParameter: #menuLineLowerColor to: ( Color r: 0.30 g: 0.27 b: 0.11 );
          setParameter: #menuLineUpperColor to: ( Color r: 0.40 g: 0.37 b: 0.21 );
          setParameter: #menuTitleBorderColor to: ( Color r: 0.30 g: 0.27 b: 0.11 );
          setParameter: #menuLineColor to: ( Color r: 0.30 g: 0.27 b: 0.11 ).



setParameter: #aParameterName to: aValue
can be used to set any known parameter in the Parameters to any value. Be careful and have fun./P
PNow to turn the file list browser white. Here is one way to do it.


( Preferences parameterAt: #windowColors )
at: #FileList put: ( Color white )

The

#windowColors
value is a keyed collection of colors.



Other SWIKI resources:


More extensive font information can be found on the Fonts and High-quality font support pages.

More customization information can be found for Customizing the Squeak UI

Other look enhancements may be found at the Look Enhancements, New Look and Project Zurgle pages.

You can find some user documentation for the SqueakMap browser in squeak on The Publishing Packages with SqueakMap page.