The Tweaker's Guide to BeOS
Uncovering hidden optionsScot Hacker, 9/00
It's a rare user who doesn't take secret pleasure in the potentially endless process of dialing and tweaking a baseline installation to aesthetic and functional perfection. The bulk of settings and preferences possible in BeOS are either fairly obvious or are well-documented in the BeOS User's Guide, but I thought I might spend a column investigating some of the not-so-obvious options available to BeOS tweakers.
Before digging in though, I just have to share my excitement about two recent developments. First, BIAS, who make the popular and powerful multitrack audio editing tools for MacOS, are about to complete the port of their two-track editor Peak to BeOS, soon to be followed by a port of Deck. Meanwhile, a very polished MIDI sequencer called Sequiter has just appeared, and has BeOS MIDI fans frothing at the mouth. Second, BeOS Pro Audio site LeBuzz is getting ready to launch a 24-hour Internet radio station featuring BeOS news and music created or edited in BeOS. Can't wait.
Background TweaksThe Background preferences panel -- which lets you set a tiled, centered, or stretched background image for the Desktop or for folders -- accepts any image format for which you have an installed Translator. While the NetPositive web browser is set up by default to read GIF images, Be doesn't ship a GIF Translator with the OS, for legal reasons. Grab a 3rd party GIF Translator from BeBits, drop it in ~/config/add-ons/Translators, and you'll be able to use GIFs as backgrounds (all of your imaging applications will also gain GIF support simultaneously through the addition of this single object -- isn't object-oriented design wonderful?)
Because you can set backgrounds for individual folders or on a system-wide basis, you've got plenty of room to play around. If you're feeling ambitious someday, try using some of the popularly downloadable "left-hand nav" web backgrounds as your folder backgrounds. You'll have to rearrange some icons to make this work properly, but it is kind of cool.
Try using a "left hand nav" web background as the default folder background.
Tracker TweaksTracker (the open source BeOS file manager) offers a bunch of cool customization options. Open ~/config/settings/Tracker/TrackerSettings and you'll find a list of parameters with on/off toggle switches. You'll need to Restart the Tracker for these to take effect. A few of my favorites are:
ShowDisksIcon off MountVolumesOntoDesktop onToggle the off/on switches on these and you'll get an icon on the Desktop containing all mounted disk volumes, like back in the R3 days. This is great if you have a lot of BeOS volumes on your system and don't like having to scan the Desktop for them.
MountSharedVolumesOntoDesktop onIf you need to work with networked Windows shares, this one is a must (otherwise you'll be able to mount, but not see the shared volumes).
ShowFullPathInTitleBar onThat last one is my single favorite OpenTracker addition -- enable this and you'll get the full path -- not just the final folder name -- in each Tracker window's title bar. Way useful.
Menu and Window Color TweaksThis one is documented, but a lot of people seem to miss it. Launch the Menu preferences panel and look for the entry "Color Scheme." Click this entry and you'll get a set of RGB sliders you can use to set the color of the Deskbar and all application menus (horizontal and vertical). Alternatively, install a color-mixing utility like kColor and you'll be able to drag color swatches directly onto the Menu preferences panel.
Note, however, that this panel doesn't give you any control over the default "brilliant yellow" title tabs that ride atop all BeOS windows. To change this to something less visually assaultive, download Marco Nelissen's WindowShade, which patches the app_server and gives you complete control over window, title tab, and window border colors. WindowShade expects colors in hexadecimal values, but you can make life easier by dropping WSFrontEnd into the same folder. WSFrontEnd will create a script file called setcolors. All you have to do now is put the path to setcolors in your UserBootscript (more on that later). Hopefully a future version of BeOS will make this process easier.
While we're on the topic of window appearances, try this: Hold down Ctrl+Alt+Shift on the left side of your keyboard and pull down the Be Menu. You'll get a new entry in the Be Menu called "Window Decor," from which you can select the look and feel of Windows, MacOS, or even AmigaOS, rather than BeOS (check out this montage of the four window styles shown side-by-side). You even get some functional differences. For example, when you switch to the Windows decor, you can resize your windows from any border, rather than being constrained to dragging from the lower right corner (this is a "feature" Be inherited from the Mac world, the logic of which I've never been able to grasp).
Kernel Settings TweaksWhile some Linux users pride themselves on being able to recompile the kernel, some BeOS users pride themselves on not having to. Nevertheless, it is sometimes useful to be able to pass certain parameters to the kernel at boot time to deal with special circumstances or unusual hardware. Take a look in ~/config/settings/kernel/drivers and you'll find a folder called "sample," full of files with names like "ata," "vesa," "i810," "kernel," and the like. While the options contained in these files are too numerous to cover here, the files are fairly well-commented. To enable a kernel parameter, copy the sample file to its parent directory and uncomment the lines you need. There are even some useful, but undocumented kernel calls. If your machine has been running hot and you don't want to run a permanent code cruncher like seti@home or rc5des, add the line
hltto the main kernel file -- some users have found that this can cause CPU temperature to drop by as much as 12c.
The kernel settings files can also be used to make boot options permanent. When BeOS first begins to boot, hold down the Spacebar -- you'll find several menus and options which let you ignore the system BIOS, disable SMP, run in VESA graphics mode, etc. If you find you need to do any of these on each boot, editing an equivalent kernel settings file will make the boot option stick for good. More detailed descriptions of the kernel settings files can be found here.
Icon TweaksThe set of system icons shipped with BeOS is fairly attractive, but many users want to replace them, either on a document-by-document, or on a system-wide basis. In BeOS, icons aren't shipped as individual files, as they are in most OSes. Instead, they appear only as attributes of existing files. Search www.bebits.com for "Icons" and you'll find tons of icon packs, each of which consists of zipped archives containing empty files with custom icon attributes.
To shift icons around, open two FileType panels (one for the source icon file and one for the destination file or FileType), then drag-and-drop between "icon wells." Alternatively, use Alt+C, Alt+X, Alt+V to copy, cut, and paste icons around. To modify an icon double-click the icon well to bring it up in Icon-o-Matic.
One potentially confusing aspect to this system is that some icons are associated directly with files or filetypes, while others are inherited from the parent filetype. For example, if you create a new text file, it will automatically receive the icon associated with text/plain in FileTypes. That inheritance can be overridden (i.e. the file can be given a custom icon) by dropping an icon into that file's FileType add-on.
Some icons are inherited not from the system's FileTypes database, but from the handling application of that file's file type. For example, if you use SoundPlay as your audio player, your MP3s will receive a new icon. But changing the audio/x-mpeg file type in the FileTypes database will not cause your MP3's icons to change. This is because BeOS uses a hierarchy of icon inheritance rules. If an individual file doesn't have an icon, BeOS checks that file's preferred handling application. If no icon for that file type is defined there, the FileTypes database is used. Therefore, you'll need to navigate to the SoundPlay application itself and access its FileType add-on. A list of supported MIME types and corresponding icons will be listed, and can be edited normally.
And then there's the rare case of icons that are built directly into application binaries. A good example of this is the Tracker -- there's no obvious way to change your Trash icon, for example. This, too, is hackable -- grab a copy of Be's QuickRes and make a backup copy of the Tracker. Open the Tracker in QuickRes, navigate to the Trash, and drop a new icon into place (Warning: QuickRes is a potentially dangerous tool -- always back up files you intend to edit with it!)
UserBootscript, UserSetupEnvironment, and .profile TweaksTake a look in ~/config/boot and you'll find a few sample files named with .sample at the end. Make copies of them (Alt+D) and rename them (Alt+E) without the .sample. Anything you put in UserBootscript will be executed as your machine boots (after the system's bootscript has been run). I'm using mine to launch a web server and logging utility, two instances of seti@home, a few useful Deskbar replicants, a scheduling utility, setting my window tab colors, and launching a compact disk database lookup daemon for mounted audio CDs. There are utilities on BeBits that will let you set launch items without manually editing UserBootscript, but it's easy enough to do that I recommend doing it manually.
UserSetupEnvironment is used for establishing environment variables, or for overriding Be's default variables. Most users will have little need for this, unless you're the type who runs a lot of command-line utilities. One thing you'll probably want to do is change the default owner of your files (by default, "baron" appears to own your files). Add something like this to UserSetupEnvironment:
export USER=be_user export GROUP=halonYou may also want to add to or modify the default system path. A line like this will make sure a "scripts" directory is checked when you type a command from anywhere in the Terminal:
PATH=$PATH:/boot/home/config/scriptsI also like to have my Terminal prompt show the consecutive command number I'm working with, so I can recall old commands easily. To override the default bash history size, I put this in UserSetupEnvironment:
export HISTSIZE=5000To register changes to UserSetupEnvironment with the system, type:
source ~/config/boot/UserSetupEnvironmentSpeaking of Terminal prompts, try creating a file called .profile in your home directory and adding something like:
PS1='\n'`hostname`:"\! \W>"Your Terminal prompt will no longer be a useless "$" but rather:
waxwing:522 Words>Where "waxwing" is the hostname set in Network preferences, 522 is the current command number, and Words is the name of the current directory. This prompt is also preceded by a newline, which makes your Terminal session much easier to read. There are infinite ways to create a custom prompt. See Customize your Terminal prompt for more info.
.profile can also be used to store aliases to commonly used commands, to display custom information whenever you start a new Terminal, and to create custom functions (like aliases, but more complex and flexible).
I've barely scratched the surface here... and I didn't even get to the hardcore stuff (like what to do if you want to create a special-purpose BeOS box, like a BeOS-based home stereo component or something). If you're going to tweak beyond your abilities, always remember: good backups save lives!