!
! Name: Treeps - A program to graphically display and manipulate process tree
!
! Type: X Resource File
!
! Date: 22/May/1999
!
! Description: Designed for use on Solaris 7
!
! Needs ~ 25 color cells available.
!
! Programs startup location - i.e. upper left of display
!
Treeps.geometry:	+0+0

! Some Treeps text formatting of strings is based on fixed width characters, 
! which makes such formating much more efficient. If your system defaults
! to a variable width font then you probably want to set the fonts here.
! Note: there are 3 top level dialogs, only the first two really need be set.
!
! The most asthetically pleasing font depends on your screen resolution,
! color depth, aspect ratio and monitor. I find the following pleasing
! for my configuration, I also like 7x14 and 6x10

Treeps*fontList:		6x13
processColorMap*fontList:	6x13
userGroupTree*fontList:		6x13

! Adjust the min width to be large enough to display the button bar, 
! which changes based on the buttons and button icons size used.

! For 16x16 icons use the following
! Treeps.minWidth:        490

! For 22x22 icons

Treeps.minWidth:	580
Treeps.minHeight:	100

Treeps*mainForm*tree.minWidth:  550
Treeps*mainForm*tree.minHeight: 100

! If the following are not set and fitToScreen is not set then the window 
! can grow unbounded.  This is useful for virtual screens that are edge
! scrollable
!
! Treeps.maxWidth:	1000
! Treeps.maxHeight:	600


! The following resource controls whether treeps attempts to limit it's
! window growth to the limits of the available screen space. It is only
! meaningful when autoSizeMainWindow is true.

Treeps.fitToScreen:		True

! When fitToScreen is true the following are used to "reserve" space
! on the bottom and right of the screen for important windows.

Treeps.rightOffset:		10
Treeps.bottomOffset:		90


! Set to your system symbol table, used for details popup wait addr field.
! It's used to lookup a symbol name when details dialog is switched to text mode
! The following is generaly a symbolic link to the real file
!
! This feature is currently only used on Linux
Treeps*systemMap:       /boot/System.map

! The following two resources set the size of an "outlined" process. Ensure
! this is large enough for you to easily select the widget for performing
! actions. If you have a low res screen you might want to make the values
! smaller. I used to use 4x4 on a 800x600 res 14" monitor. The 8x8 works well
! on my 21" monitor at 1600x1200.

Treeps*outline_height:	8
Treeps*outline_width:	8

! The following set various resources for process tips(i.e. the window
! that pops up when your mouse enters a process widget/node. The default is
! to display process tips, black on white with the 8x13 font.
!
!Treeps*show_process_tips:		True
!Treeps*process_tip_font:		12x24
!Treeps*process_tip_background:  	white
!Treeps*process_tip_foreground:  	black


! You can override the root of the run time files, I use this for testing
! You probably won't need it. This is where treeps looks for icons and other
! data files.
!
! Treeps*treeps_lib_root:		/home/gmd/dev/motif/treeps/src

! You probably also don't need this which allows one to change the name
! of the root dir of the icons. It allows me to test new icons. But if you
! don't like my icons then by all means have at it. If you do some better
! ones and feel like sharing send them to me and I'll add them to the
! distribution.
!
!Treeps*button_bar_icon_dir:	myIcons

! Icons size can be 16/22/32/48/64 - Check to see if they are defined first,
! as only certain combos seemed to make sense to me and I still need to create
! some more combos, in particular the hiColor ones. Time to whip out the
! ray tracer!

Treeps*button_bar_icon_size:	22
!Treeps*button_bar_icon_size:	16

! Button_bar_icon_Depth can be:
!
!	mono     -  i.e. b/w bitmaps
!       loColor  -  Uses less than 16 colors from a predefined set
!       hiColor  -  Uses many colors, designed for TrueColor(16/24/32 bit)

!Treeps*button_bar_icon_depth:	mono
Treeps*button_bar_icon_depth:	loColor


! Note: the lines between the "====" bars should in general not be 
! changed as a new "smart" resize mechanism is in use. These resources
! were used to switch between autosizing and fixed size with scrollbars.
! The new scheme is both autosizing and uses scrollbars, so when the
! window gets above the max window size, the scrollbars allow access to
! the non visible parts of the process tree. You can still manually
! make the window larger/smaller but if will only stay that size until
! the next time the tree size changes(then it will auto size to 
! display as much of the tree as possible). You can now turn this feature
! on/off from a menu item.

!=================================================================
!
! The following allows the widget to be resized automatically
! this keeps the window size to a minimum on startup. If you do this then
! also comment out scrollingPolicy, tree.width and tree.height. Note the
! window size does not shrink automatically when the process tree shrinks,
! if that is desired then also set resizePolicy to True.
!
! Treeps*allowShellResize:	True

! If the scrollingPolicy resource is set to AUTOMATIC, scroll bars will
! show up when needed for the tree widget. Note, the tree widget will not 
! automatically resize and will default to a really small window, so if 
! you set the following also set tree.width and tree.height to a reasonable 
! value. 
!
Treeps*scrollingPolicy:	AUTOMATIC

Treeps*scrollBarDisplayPolicy:	STATIC

! The treeps.width and treeps.height control the width and height of the
! initial tree widget, set this if you enable scrollingPolicy and
! allowShellResize.
!
Treeps.width:		500
Treeps.height:		400

! If resize_policy is set to True then the tree will automatically try and 
! minimize it's size to just the size large enough to view the tree.
!
Treeps*Tree.resizePolicy:	True

! When resizePolicy is set to True then shrink_delay determines the number
! of itterations before the window shrinks. This stops the window from
! thrashing(rapid shrink/expand) during times when many processes are being
! created/destroyed. The window will shrink in no more than 
! refresh_rate * shrink_delay milliseconds. See refresh_rate below.
! Treeps.shrink_delay:		8
!
!=================================================================




! The treeOrientation resource accepts the following values:
!
!	TOP_TO_BOTTOM	-  Tree is arranged with root at top 
!	BOTTOM_TO_TOP	-  Root node is at bottom of window
!	LEFT_TO_RIGHT	-  Root is on left side of window children to the right
!	RIGHT_TO_LEFT   -  The root node is on the right
!	STAR_TOPOLOGY   -  Children radiate outwards from center
!
! If none specified, then LEFT_TO_RIGHT is the default

!Treeps*Tree.treeOrientation:	RIGHT_TO_LEFT

! The position of a parent above it's children can be set, this allows
! one to choose between the more asthetic "centered" positioning or the
! "generally" more compact above "last child". The default is centered.
! By default there is an icon on the button bar that allows one to
! quickly toggle between these two options. A third option is centered
! over first child, it's generally not that useful.
!
!Treeps*Tree.parentPlacement:	PARENT_ABOVE_LAST_CHILD

! When the following is set to True, a box is drawn arround the process 
! "node" in the process tree. In a star topology, a circle is drawn.
!
Treeps*Tree.nodeShape:	TRUE

! The following defines the style of connecting lines, valid values are
!
!	DIAGONAL_CONNECTION, 
!	PATHWAY_CONNECTION,
!	TIER_CONNECTION,
!
Treeps*Tree.connectionStyle:	TIER_CONNECTION

! The following determines the size of the box drawn and filled arround
! the process name(:pid). The meaningful values are:
!
!	VARIABLE_SIZE		-  Uses only as much as needed(default)
!	FIXED_SIZE_FOR_LEVEL 	-  All nodes one level are the same size
!	FIXED_SIZE_FOR_TREE	-  All nodes for the whole tree are the same
!
! Note for star topology, try the FIXED_SIZE_FOR_TREE if you have the space.

Treeps*Tree.NodeSize: VARIABLE_SIZE
!Treeps*Tree.NodeSize: FIXED_SIZE_FOR_TREE


Treeps*scrollWindow.leftOffset:		2
Treeps*scrollWindow.rightOffset:	2
Treeps*scrollWindow.topOffset:		2
Treeps*scrollWindow.bottomOffset:	2


! The following set various Colors, there are a few different color
! schemes, if you wander off of the default(blues) then you will have a lot of
! work to define a workable set. It gets complicated trying to keep
! the various color usage from clashing... I am still not satisfied
! with the default set after countless hours of tweaking. My book on
! color psychology is on the east coast, and in this mortal realm I
! am currently instantiated on the left coast! 

! ------------------  My colors - The blues  ---------------------------
!
Treeps*background:		slateblue
Treeps*foreground:		white
Treeps*Tree.foreground:		white
Treeps*Tree.nodeForeground:	darkgrey
Treeps*Tree.nodeBackground:	grey66
Treeps*Tree.ringBackground:	midnightblue
Treeps*Tree.ringForeground:	DeepSkyBlue
Treeps*node.foreground:		white
Treeps*node.background:		slateblue
!
! ----------------------------------------------------------------------


! ------------------  MS like colors - dark  ---------------------------
!
!Treeps*background:		grey80
!Treeps*tree.background:	grey25
!
! ----------------------------------------------------------------------

! -----------------  MS like colors - light  ---------------------------
!
! MS like colors - light
!Treeps*background:		grey80
!Treeps*tree.background:	grey95
!Treeps*Tree.nodeBackground:	black
!Treeps*Tree.nodeForeground:	black
!Treeps*Tree.foreground:	black
!
! ----------------------------------------------------------------------



! If you prefer using the keyboard, then the following allow's the tree 
! nodes to be traversed via the keyboard. The Menu key(F4 on my system)
! brings up the popup menu for the highlighted node.
!
! Treeps*node.highlightThickness:	2
! Treeps*node.traversalOn:		True
! Treeps*node.highlightColor:		Yellow

! Again if you prefer keyboard, then the resources under keyboard allow the
! buttons in the button bar to be traversed via the keyboard. If you mainly use
! the mouse and don't need keyboard traversal of the button bar
! then set use the resources under mouse,
!
! Keyboard
!
! 	Treeps*button_bar*traversalOn:		True
! 	Treeps*button_bar*shadowThickness:		0
! 	Treeps*button_bar*highlightThickness:		2
!
! Mouse
!
!Treeps*button_bar*traversalOn:		False
!Treeps*button_bar*highlightThickness:		0

! This turns of all highlighting, which I prefer, as the 
! highlighting causes strange artifacts on my system.

Treeps**highlightThickness:	0


! Setting the auto centering off, causes the code to only
! display the bounding rectangle surrounding the tree nodes.

Treeps*Tree.rootCenterX:	True
Treeps*Tree.rootCenterY:	True
Treeps*Tree.showRings:	True


! Application resources
!

! The debug_level resource is a numeric value which enables a simple macro
! based debuging package. The code must be compiled with NODEBUG undefined.
! Increasing numberic values increase the volume of output. 
!
!Treeps*debug_level:			15

! The short_tic resource specifies the number of milleseconds between
! active process information updates. 1000 millisecs is 1 second. An active
! process is one which has had any kind of detected change in the last
! 2 long tics(see below).
!
Treeps*short_tic: 1000

! The long_tic resource specifies the number of short tics in a long tic.
! Every long tic all process information is refreshed. Careful use of
! these resources allow for more efficient sampling. On a slow machine
! increase the short_tic value.

Treeps*long_tic:   5


! The following defines the attachment policy for dis-connected processes.
! i.e. processes that were not started by init but have been "orphaned".
! The program can show a more meaningful hierarchy by connecting up some
! of these orphans to a more desirable parent. The possible attachment
! methods are:
!
!	0 - Child attaches to parent (init if parent can't be found)
!	1 - Child attached to parent if available if not it try's to
!	    attach to a group leader if one is defined for the process.
!	2 - Child attaches to parent if available, if not then it trys
!	    for a group leader. If that fails then it tries to attach
!	    to a session leader such as gnome-session or ksmserver.
!
! The default is smart attachment when gnome is present otherwise
! option 1
!
!Treeps*process_attach_mode: 2

! The following resource sets the startup process view to either the
! default(users processes) or ALL processes. The default is just the users.
!Treeps*show_all:		True

! The following sets the startup daemon filter to either the 
! foreground and daemons processes or foreground only processes. Daemons
! are considered to be any process that has no controlling terminal.
! The default is now to show daemons.
!
!Treeps*show_daemons:		False

! The display_* resources control the default information displayed for
! each process in the process tree display. When set TRUE the info is displayed
! when set to FALSE it is not.
!
!	*_name: 	The process name
!	*_pid:		The process id

Treeps*display_name:    TRUE
Treeps*display_pid:  	FALSE


! The following turns on/off the menu bar, some functions are available 
! from the keyboard so if you want a minimum real estate and a faster app
! then set the value to False. 
!
! Currently the menu bar is required so don't disable it.

Treeps*menu_bar:	True

! The following turns on/off a button bar, this provides short cuts
! to the most frequently used functions. Everything is available via
! the menu's and some via keyboard commands, so if you want to use
! less screen real estate set it to False.

! Treeps*button_bar:	False


! The following section defines the resources related to process 
! colorization values. 
!
! The first resource specifies the startup colorization, which
! may be one of:
!
!	real_user_id		
!	effective_user_id		
!	real_group_id		
!	effective_group_id		
!	load
!	total_cpu_time
!	status
!	resident_pages
!	image_size
!	priority
!
!Treeps*color_based_on:	effective_user_id
!Treeps*color_based_on:	load
Treeps*color_based_on:	load


! The following defines the colors used to display users processes, put most 
! frequently used last in the list. The format is "user_name", foreground,
! background color. Note no trailing comma on last record.
!
! The easiest way to do this is to change the "gmd" user, that's me on 
! my system, to be your user_id. Then change the colors as desired, you
! may want to try mine for a while to check out the color interactions...
! Dark hues seem to work best.


Treeps*users_color_list:	\
sys,      yellow, slateblue,  \
operator, black,  white, \
games,    black,  green, \
daemon,   red,    yellow, \
root,     white,  slateblue, \
gmd,      yellow, midnightblue \

! The following define colors for groups, these are used in two ways:
!
! 	1) Static color inheritance:
!
!	2) Color_by_group:
!
! During startup the group_id associated with the group_name provided is
! assigned the colors supplied. All of the users who have that group as
! their group_id in the passwd file can inherit these colors simply by
! not specifying any colors in the users_color_list. In otherwords you
! can have a blue group, a red group, a green group ... and all the users
! in those groups will have the colors of the group by default. These can
! then be easily overriden if you wish one of the users to have different
! colors, perhaps you may want to use the foreground color as some other
! kind of qualifier.
!
! The other use is when selecting the Color_by_group option from the
! Color_based_On menu. In this case the colors used for the processes are
! the group colors and not user derived colors.
!
! The format is the same as the users_color_list.
!
! A slight efficiency can be had by putting the most frequently accessed
! groups at the end of the list, typically root and the login user if a
! single user system
!

Treeps*groups_color_list:	\
noaccess, white,       red, \
nogroup,  red,         black,  \
tty,      white,       black, \
nobody,   green,       black,  \
daemon,   red,         white, \
mail,     blue,        white,  \
lp,       black,       white, \
news,     black,       white,  \
uucp,     blue,        white,  \
nuucp,    blue,        white,  \
atd,      yellow,      black,  \
adm,      black,       green,  \
sysadm,   black,       green,  \
bin,      black,       yellow,  \
staff,    yellow,      midnightblue, \
users,    yellow,      midnightblue, \
sys,      black,       yellow,  \
root,     white,       slateblue  \





! The following define the default colors used when color coding by value.
! The number of colors define how many partitions the range of
! any particular variable is divided into. This is a simple 
! linear subdivision of the largest value either known or detected.
! NOTE: This is no longer used and may not currently be working, so don't use
! it.
!
!	load
!	total_cpu_time
!	status
!	resident_pages
!	image_size
!	priority
!
! The format is the of each record is the same as the user and group colors
! however the identifier is only used for comment.
!

Treeps*stats_color_list:	\
very_high,     black,  red,\
high,          black,  orange,\
above_normal,  black,  yellow,\
normal,        black,  green,\
below_normal,  white,  midnightblue,\
low,           black,  grey,\
very_low,      white,  black




! The folowing resources define a number of range color maps. These define
! a number of non-uniform contiguous ranges and their corresponding colors.
! Each range color map consist's of n entries, where n is <= 256. Each entry
! has the format is  
!
!	<label> <min> <max> <fg> <bg>
!
! Ex.
!
!	low,    0,  33,   black, green
!       med,   33,  66,   black, yellow
!      high,   66, 100    black, red
!
! NOTE:  In the above 33 appear's in two range spec's, it would fall into
!        the SECOND range 33-66. Gaps in ranges, cause values in those gaps
!	 to be mapped to the first range.  Any value above the last value of 
!        the last range is mapped to the last range. Likewise any value below 
!	 the first range is mapped to the first range. Range values are real 
!	 numbers.
!
!	White space is significant in the labels only, after that white space 
!	is ignored. Labels are truncated to 20 characters when displayed.
!
!  WARNING: On my system their appears to be a limit on the length of a X
! 	    resource string. This limits the number of range definitions to
!	    about 15. This should be adequate for most uses, any more than
!	    that and it get's hard to differentiate anyhow.




! The following defines the color coding used when displaying cpu Load.
!
! Load is calculated by determining the amount of CPU time used during the last
! sample interval. The sample interval is currently one long tic.
!
Treeps*load_color_map:	\
 0.00 -  0.33,   0.00,	0.33,	white,  #090,\
 0.33 -  0.66,  0.33	0.66,	white,  #0C0,\
 0.66 -  1.00,	0.66,   1.00,	black,  #0F0,\
 1.00 -  4.00,	1.00,   4.00,	white,  #990,\
 4.00 -  7.00,	4.00,   7.00,	black,  #CC0,\
 7.00 - 10.00,	7.00,  10.00,	black,  #FF0,\
10.00 - 13.33, 10.00,  13.33,	white,  #F70,\
13.33 - 16.66, 13.33,  16.66,	black,  #F90,\
16.66 - 20.00, 16.66,  20.00,  	black,  #FB0,\
20.00 - 40.00, 20.00,  40.00,	white,  #900,\
40.00 - 60.00, 40.00,  60.00,	white,  #C00,\
60.00 - 100.0, 60.00, 100.00,	black,  #F00


! The following defines the color coding used when displaying total cpu time.
!
! time measured in seconds:
!
Treeps*tcpu_color_map:	\
None,  		0,	     0.001,	white,  #000,\
 0    -  .33  Sec,    0.001,  0.33,	white,  #009,\
.33   -  .66  Sec,    0.33,   0.66,	white,  #00C,\
.66   -  1.0  Sec,    0.66 ,  1.0,	white,  #00F,\
 1    -   20  Sec,    1.0,   20.0,	white,  #090,\
20    -   40  Sec,   20.0,   40.0,	white,  #0C0,\
40    -   60  Sec,   40.0,   60.0,	black,  #0F0,\
 1    -   20  Min,   60.0, 1200.0,	white,  #990,\
20    -   40  Min, 1200.0, 2400.0,	white,  #CC0,\
40    -   60  Min, 2400.0, 3600.0,	black,  #FF0,\
 1    -   2   Hrs, 3600.0, 7200.0,	white,  #900,\
 2    -   5   Hrs, 7200.0, 18000.0,	white,  #C00,\
 5    -       Hrs, 18000.0, 999999.0,	black,  #F00

! The following is the color map used when displaying process status.
! This map is unique in that the status is defined as one of 9 values.
! These state values are mapped to a numeric value, which can then be used to
! assign a color. The status->number mapping is:
!
!	Running:	95.0  [1]
!	Runable:	80.0  [2]
!	Recently Ran:	78.0  [6]
!	SXBRK:		70.0  [3]
!	Sleeping:	50.0
!	Idle:		40.0  [4]
!	Wait/Swap:	30.0  [5]
!	Stopped:	20.0
!	Zombie:		 5.0
!
! [1], [3], [4] Not used on Linux
! [2] On linux there is no Running state, so running processes are state R.
! [5] On linux this state is used for uninteruptable sleep
! [6] This is currently synthesized on Linux only
!
! The numbers have no implied meaning other than they map to something useful
! in the default color map. So if you are happy with the default map, then
! don't bother to change this, unless you want the labels of course.
!
! Note: This is the Solaris status color map!
!
Treeps*status_color_map: \
Zombie,		0.0,	10.0,	black,   white,\
Stopped,       10.0,    30.0,   black,   grey,\
Idle,          30.0,    45.0,   white,   midnightblue,\
Sleeping,      45.0,    60.0,   black,   green,\
SXBRK,         60.0,    75.0,   black,   yellow,\
Recently Ran,  75.0,    79.0,   black,   DarkOrange,\
Runable,       79.0,    90.0,   black,   orange, \
Running,       90.0,   100.0,   black,   red


! The following is the color map used when displaying colors based on
! resident memory  size. Values are Kbytes.
!
Treeps*resident_color_map:	\
        None,	      0.0,	  1.0,	white,  #000,\
   1 -  166k,           1,    166,	white,  #009,\
 166 -  333k,         166,    333,	white,  #00C,\
 333 -  500k,	      333,    500,	white,  #00F,\
 500 -  666k,         500,    666,	white,  #090,\
 666 -  833k,         666,    833,	black,  #0C0,\
 833 - 1000k,         833,   1000,	black,  #0F0,\
   1 -  3.3M,        1000,   3300,	white,  #990,\
 3.3 -  6.6M,        3300,   6600,	black,  #CC0,\
 6.6 -   10M,        6600,  10000,	black,  #FF0,\
  10 -   55M,       10000,  55000,	white,  #900,\
  55 -  100M,       55000, 100000,	white,  #C00,\
 100 -     M,      100000, 999999,	black,  #F00


! The following is the color map used when displaying colors based on
! image size. Values are Kbytes.
!
Treeps*image_color_map:	\
        None,	      0.0,	  1.0,	white,  #000,\
   1 -  166k,           1,    166,	white,  #009,\
 166 -  333k,         166,    333,	white,  #00C,\
 333 -  500k,	      333,    500,	white,  #00F,\
 500 -  666k,         500,    666,	white,  #090,\
 666 -  833k,         666,    833,	black,  #0C0,\
 833 - 1000k,         833,   1000,	black,  #0F0,\
   1 -  3.3M,        1000,   3300,	white,  #990,\
 3.3 -  6.6M,        3300,   6600,	black,  #CC0,\
 6.6 -   10M,        6600,  10000,	black,  #FF0,\
  10 -   55M,       10000,  55000,	white,  #900,\
  55 -  100M,       55000, 100000,	white,  #C00,\
 100 -     M,      100000, 999999,	black,  #F00


! Note: this is the Solaris priority color map
!
Treeps*priority_color_map: \
highest(  0 - 10),    0,  10,  black,  #F00,\
high   ( 10 - 20),   10,  20,  black,  #F70,\
high   ( 20 - 30),   20,  30,  black,  #E90,\
high   ( 30 - 40),   30,  40,  black,  #EE0,\
normal ( 40 - 50),   40,  50,  black,  #0F0,\
normal ( 50 - 60),   50,  60,  black,  #0F0,\
low    ( 60 - 70),   60,  70,  black,  #0D0,\
low    ( 70 - 80),   70,  80,  black,  #08F,\
low    ( 80 - 90),   80,  90,  white,  #00D,\
lowest ( 90 - 100),  90, 100,  white,  #00A

10.00 - 13.33, 10.00,  13.33,	white,  #F70,\
13.33 - 16.66, 13.33,  16.66,	black,  #F90,\
16.66 - 20.00, 16.66,  20.00,  	black,  #FB0,\











! The following sets various values for the Groups and Users window
!
!	userGroupTree	- The application shell
!	  userTree	- the tree widget
!	  ugInfo	- label widgets holding user/group info

userGroupTree*geometry:					-25+10
userGroupTree*allowShellResize:				True
userGroupTree*userTree.resizePolicy:			True
userGroupTree*userTree*connectionStyle:			TIER_CONNECTION
userGroupTree*userTree*foreground:			white
userGroupTree*userTree*background:			slateblue
userGroupTree*userTree*resizePolicy:			False
userGroupTree*userTree.nodeShape:			TRUE
!userGroup*scrollingPolicy:				AUTOMATIC

userGroupTree*node*foreground:				white
userGroupTree*node*background:				slateblue
userGroupTree*userTree.nodeForeground:			darkgrey



! The following sets various values for the color Bar window
!
!	processColorMap		- The Application Shell

processColorMap.geometry:                               -195+10

!processColorMap*scrollingPolicy:			AUTOMATIC

processColorMap*allowShellResize:			True





! The following defines the color of the toggle indicator in the menu's
!
!Treeps*selectColor:				midnightblue
Treeps*selectColor:				black


! Turn off border of core part of tree widgets

Treeps*borderWidth:	0


! Keyboard translations

*mainForm*translations: #override \n\
<Key>+:     change_space( 1, 1) \n\
<Key>-:     change_space(-1,-1) \n\
<Key>l:     orientation(LEFT_TO_RIGHT) \n\
<Key>r:     orientation(RIGHT_TO_LEFT) \n\
<Key>t:     orientation(TOP_TO_BOTTOM) \n\
<Key>b:     orientation(BOTTOM_TO_TOP) \n\
<Key>s:     orientation(STAR_TOPOLOGY) \n\
<Key>d:     connect_style(DIAGONAL_CONNECTION) \n\
<Key>e:     connect_style(TIER_CONNECTION) \n\
<Key>p:     connect_style(PATHWAY_CONNECTION) \n\
<Key>n:     connect_style(NO_CONNECTION) \n\
<Key>f:     show_find() \n\
<Key>h:     show_hidden() \n\
<Key>u:     show_user_processes() \n\
<Key>a:     show_all_processes() \n\
<Key>o:     toggle_outline() \n\
<Key>q:     toggle_decorations() \n\
<Key>x:     inc_debug()
