Thank you guys for the screenshots and tips!
oxpal:
I've seen many times this colored pane headers stuff in tutorials, but didn't know that in the Preferences there is a switch for that, thanks.
Jeff:
Thanks for sharing your thoughts here.
There is a download button in the Edit/Colors window, and it works, but the schemes are old.
I recommend to try the flat schemes in qLib library (
http://qlab.github.io/qLib/ [qlab.github.io] ), there is a flat bright (qLibProFlat.hcs) and a flat dark (qLibProFlat.hcs) in the config folder. I used the dark one as a starting point, and will share later.
Here is my main desk file:
fullscreen -1
playbarshown 1
playbar 2
shelf 0
menubar 2
statusbar 0
radial menu set main
root {
split 0.711458 H {
split 0.483962 V {
split 0.433382 H {
tabs 0 0 {
pane panetab7 -a 0 -l 1 -H /obj/ -T OBJ -m neteditor
pane panetab18 -a 0 -l 2 -H /mat/ -T VOP -m neteditor
}
tabs 0 1 {
pane panetab1 -a 0 -l 0 -H /obj/ -T OBJ -m sceneview
pane panetab3 -a 0 -l 10 -H /obj/ -T OBJ -m iprviewer
pane panetab4 -a 0 -l 10 -H /img/comp1/ -T COP2 -m imageview
}
}
split 0.210102 H L {
tabs 0 1 {
pane panetab16 -a 0 -l 10 -H /obj/ -T OBJ -m treecontrol
pane panetab14 -a 0 -l 0 -H /obj/ -T OBJ -m neteditor
}
tabs 0 1 {
pane panetab10 -a 0 -l 2 -H /mat/ -T VOP -m neteditor
pane panetab2 -a 0 -l 10 -H /obj/ -T OBJ -m chaneditor
pane panetab9 -a 0 -l 10 -H /obj/ -T OBJ -m materialpalette
pane panetab6 -a 0 -l 0 -H /obj/ -T OBJ -m datatree
pane panetab11 -a 0 -l 10 -H /obj/ -T OBJ -m details
pane panetab13 -a 0 -l 10 -H /ch/ -T CHOPNET -m channelview
pane panetab17 -a 0 -l 0 -H /obj/ -T OBJ -m perfmon
pane panetab15 -a 0 -l 10 -H /out/ -T ROP -m renderview
}
}
}
split 0.484259 V {
tabs 0 1 {
pane panetab5 -a 0 -l 1 -H /obj/ -T OBJ -m parmeditor
pane copy_of_panetab5_1 -a 0 -l 0 -H /out/ -T ROP -m parmeditor
pane panetab19 -a 0 -l 0 -H /obj/ -T OBJ -m helpbrowser
}
tabs 0 0 {
pane panetab12 -a 1 -l 2 -H /mat/ -T VOP -m parmeditor
pane panetab8 -a 0 -l 2 -H /mat/ -T VOP -m parmeditor
}
}
}
}
shelfdock -o 1 -l icon -G 0.50 add shelf_set_3
networkeditor -p '{\n "shop:listmode":"0",\n "obj:listmode":"0",\n "sop:listmode":"0",\n "ch:listmode":"0",\n "cop2:listmode":"0",\n "out:listmode":"0",\n "showchilddep":"0",\n "showdep":"0",\n "perfstatname":"Time",\n "showperfstats":"1",\n "grouplistsplit":"0.75",\n "showtree":"0",\n "showtypesidebar":"0",\n "showparmdialogmax":"1",\n "treesplit":"0.25",\n "palettesize":"150 150",\n "typesidebarsplit":"0.25",\n "palettemode":"0",\n "showgrouplist":"0",\n "backgroundimagebrightness":"1.0",\n "backgroundimageediting":"0",\n "gridystep":"1.0",\n "gridmode":"0",\n "showtimedep":"0",\n "overviewbounds":"0.000000 0.000000 177.000000 127.800000",\n "overviewmode":"2",\n "palettecolors":"",\n "showmenu":"1",\n "gridxstep":"2.0",\n "showparmdialog":"0"\n}\n' panetab7
netcolumns -c display,xray,select,origin,capture,bone -n OBJ panetab7
netcolumns -c display,render,template,selectabletemplate,highlight,unload,bypass,lock -n SOP panetab7
netcolumns -c delscript,comment -n PART panetab7
netcolumns -c display,render,template,bypass -n POP panetab7
netcolumns -c delscript,comment -n CHOPNET panetab7
netcolumns -c display,export,audio,bypass,lock -n CHOP panetab7
netcolumns -c startrender,bypass,lock -n ROP panetab7
netcolumns -c delscript,comment -n SHOP panetab7
netcolumns -c display,render,template,bypass -n COP2 panetab7
netcolumns -c delscript,comment -n IMG panetab7
netcolumns -c delscript,comment,input -n VOP panetab7
netcolumns -c delscript,comment -n VOPNET panetab7
netcolumns -c delscript,comment -n DOP panetab7
netcolumns -c delscript,comment -n MGR panetab7
netcolumns -c delscript,comment -n DIR panetab7
networkeditor -p '{\n "showchilddep":"1",\n "showdep":"0",\n "perfstatname":"Time",\n "showperfstats":"1",\n "grouplistsplit":"0.75",\n "showtree":"0",\n "showtypesidebar":"0",\n "showparmdialogmax":"1",\n "treesplit":"0.25",\n "palettesize":"150 150",\n "typesidebarsplit":"0.25",\n "palettemode":"0",\n "showgrouplist":"0",\n "backgroundimagebrightness":"1.0",\n "backgroundimageediting":"0",\n "gridystep":"1.0",\n "gridmode":"0",\n "overviewbounds":"0.000000 0.000000 177.000000 127.800000",\n "overviewmode":"2",\n "palettecolors":"",\n "showmenu":"1",\n "gridxstep":"2.0",\n "showparmdialog":"0"\n}\n' panetab18
netcolumns -c display,xray,select,origin,capture,bone -n OBJ panetab18
netcolumns -c display,render,template,selectabletemplate,highlight,unload,bypass,lock -n SOP panetab18
netcolumns -c delscript,comment -n PART panetab18
netcolumns -c display,render,template,bypass -n POP panetab18
netcolumns -c delscript,comment -n CHOPNET panetab18
netcolumns -c display,export,audio,bypass,lock -n CHOP panetab18
netcolumns -c startrender,bypass,lock -n ROP panetab18
netcolumns -c delscript,comment -n SHOP panetab18
netcolumns -c display,render,template,bypass -n COP2 panetab18
netcolumns -c delscript,comment -n IMG panetab18
netcolumns -c delscript,comment,input -n VOP panetab18
netcolumns -c delscript,comment -n VOPNET panetab18
netcolumns -c delscript,comment -n DOP panetab18
netcolumns -c delscript,comment -n MGR panetab18
netcolumns -c delscript,comment -n DIR panetab18
viewerstow -x open -b stow -l open -m hide -c hide -d open 1_sciVfx_Multi.panetab1.world
vieweroption -a 2 1_sciVfx_Multi.panetab1.world
viewlayout -s 2 1_sciVfx_Multi.panetab1.world
viewtype -t ortho_right 1_sciVfx_Multi.panetab1.world.`vpname("1_sciVfx_Multi.panetab1.world",4)`
viewtype -t ortho_front 1_sciVfx_Multi.panetab1.world.`vpname("1_sciVfx_Multi.panetab1.world",3)`
viewtype -t ortho_top 1_sciVfx_Multi.panetab1.world.`vpname("1_sciVfx_Multi.panetab1.world",1)`
viewtype -t perspective 1_sciVfx_Multi.panetab1.world.`vpname("1_sciVfx_Multi.panetab1.world",2)`
iprview -t 0.1 -l 0 -e 1 -u 1 panetab3
treecontrol -a 0 -h 0 -i 1 -f 0 -O 0 -S 0 -D 0 -P 0 -H 0 -V 0 -C 0 -I 0 -R 0 panetab16
networkeditor -p '{\n "showchilddep":"1",\n "showdep":"0",\n "perfstatname":"Time",\n "showperfstats":"1",\n "grouplistsplit":"0.75",\n "showtree":"0",\n "showtypesidebar":"0",\n "showparmdialogmax":"1",\n "treesplit":"0.25",\n "palettesize":"150 150",\n "typesidebarsplit":"0.25",\n "palettemode":"0",\n "showgrouplist":"0",\n "backgroundimagebrightness":"1.0",\n "backgroundimageediting":"0",\n "gridystep":"1.0",\n "gridmode":"0",\n "overviewbounds":"0.000000 0.000000 44.514908 68.100000",\n "overviewmode":"2",\n "palettecolors":"",\n "showmenu":"1",\n "gridxstep":"2.0",\n "showparmdialog":"0"\n}\n' panetab14
netcolumns -c display,xray,select,origin,capture,bone -n OBJ panetab14
netcolumns -c display,render,template,selectabletemplate,highlight,unload,bypass,lock -n SOP panetab14
netcolumns -c delscript,comment -n PART panetab14
netcolumns -c display,render,template,bypass -n POP panetab14
netcolumns -c delscript,comment -n CHOPNET panetab14
netcolumns -c display,export,audio,bypass,lock -n CHOP panetab14
netcolumns -c startrender,bypass,lock -n ROP panetab14
netcolumns -c delscript,comment -n SHOP panetab14
netcolumns -c display,render,template,bypass -n COP2 panetab14
netcolumns -c delscript,comment -n IMG panetab14
netcolumns -c delscript,comment,input -n VOP panetab14
netcolumns -c delscript,comment -n VOPNET panetab14
netcolumns -c delscript,comment -n DOP panetab14
netcolumns -c delscript,comment -n MGR panetab14
netcolumns -c delscript,comment -n DIR panetab14
networkeditor -p '{\n "cop2:listmode":"0",\n "ch:listmode":"0",\n "obj:listmode":"0",\n "shop:listmode":"0",\n "sop:listmode":"0",\n "vop:listmode":"0",\n "showchilddep":"1",\n "showdep":"0",\n "perfstatname":"Time",\n "showperfstats":"1",\n "grouplistsplit":"0.75",\n "showtree":"0",\n "showtypesidebar":"0",\n "showparmdialogmax":"1",\n "treesplit":"0.25",\n "palettesize":"150 150",\n "typesidebarsplit":"0.25",\n "palettemode":"0",\n "showgrouplist":"0",\n "backgroundimagebrightness":"1.0",\n "backgroundimageediting":"0",\n "gridystep":"1.0",\n "gridmode":"0",\n "showtimedep":"0",\n "overviewbounds":"0.000000 0.000000 516.648045 172.849162",\n "img:listmode":"0",\n "overviewmode":"2",\n "palettecolors":"",\n "showmenu":"1",\n "gridxstep":"2.0",\n "showparmdialog":"0"\n}\n' panetab10
netcolumns -c display,xray,select,origin,capture,bone -n OBJ panetab10
netcolumns -c display,render,template,selectabletemplate,highlight,unload,bypass,lock -n SOP panetab10
netcolumns -c delscript,comment -n PART panetab10
netcolumns -c display,render,template,bypass -n POP panetab10
netcolumns -c delscript,comment -n CHOPNET panetab10
netcolumns -c display,export,audio,bypass,lock -n CHOP panetab10
netcolumns -c startrender,bypass,lock -n ROP panetab10
netcolumns -c delscript,comment -n SHOP panetab10
netcolumns -c display,render,template,bypass -n COP2 panetab10
netcolumns -c delscript,comment -n IMG panetab10
netcolumns -c delscript,comment,input -n VOP panetab10
netcolumns -c delscript,comment -n VOPNET panetab10
netcolumns -c delscript,comment -n DOP panetab10
netcolumns -c delscript,comment -n MGR panetab10
netcolumns -c delscript,comment -n DIR panetab10
datatree -p "Material Style Sheets" -D "{ \"use_full_shop_paths\":false } " panetab6
chopview -a 0 -c "" -k 1 -m 1 -b 1 -e 1 -f 0 -g 0 -H 1 -i 0 -j 1 -l 0 -n 1 -V 0 -y 0 -B 0 -s 0 -S 0.034375 -u 0 -v 0 -h -10 310 -r -1.5 1.5 panetab13
performance -c on -d on -f on -g off -k on -m off -n on -o on -t off -v on -y on -u on -e off -r absolute -w tree panetab17
ropview -c 1 panetab15
parmeditor -T 0.25 -w 0 panetab5
parmeditor -T 0.25 -w 0 copy_of_panetab5_1
helpbrowser panetab19
parmeditor -T 0.25 -w 0 panetab12
parmeditor -T 0.25 -w 0 panetab8
Now I use numbers at the beginning of the names to order the desktops and have a permanent shortcut for them.
The top part of the screen is the selection slot 1 for high level nodes, the bottom is for the VOP+ it's parameters (scene view pinned to aviod jumping) with slot 2. I set the backslash (changed the original Alt+\) to easily maximize the parameters for high level or for low level nodes, and switch back.
I also set some other easily accessible shortcuts for the UI stuff like the shelf hide/show command, which is Ctrl+Alt+Tab (kind of a high level Tab menu). So I use shelf tools, but just unhide when I need it. Lots of shortcut options are in the Hotkeys editor. It's easy to set up without searching by the command name: just click with Shift+Ctrl+Alt on almost any UI element (works with the shelf and other stow bars!) and click on >green circle with + sign< then the shortcut and apply/accept. That's all

The Houdini Creation Desk is a great idea, clean and useful.
Use your favourite raw text editor on one of the .desk files to see what is actually captured when you save a desktop. Pretty interesting…
I tried it now. Luckily on Linux the KWrite text editor automatically offers a file comparison when the opened file has changed. Lot to learn, I created my desk with the UI, I think there are additional opportunities with file tweaking…
arctor:
This isn't a competition and for rigging it can be better with this scheme/layout, but I'm more a look-dev/lighter guy, that's why I prefer dark/flat schemes. Also good example, because the node layout is important for rigging.
cpb:
Your UI seems aviation grade. At right there is the engine and systems instrument panel

Is it Linux?
Paq:
Not offtopic, I mentioned that we spend more time with VFX software than with humans, so all forms of Houdini & other related sw are welcome here.
Two additional things which I didn't mention in my first post:
- Fullscreen:
There is a discussion how to hide all the UI elements of the OS and have just Houdini in front of you, work without fancy icons and use the full screenspace:
https://www.sidefx.com/forum/topic/53236/ [
www.sidefx.com]
Luckily Vux shared his script there, anybody can put this on the shelf and create a shortcut. So it's easy to set F11 for fullscreen mode as it's default with many other apps, even in MPlay.
How to:
- Right click on an empy shelf area: New Tool…
- Options tab: Name/Label: Fullscreen or whatever
- Script tab: paste Vix's script
- Hotkeys tab: Global -> Edit
- Click on >green circle with + sign< then F11 or whatever
- Accept, Accept
- Custom cursor:
I modified the original cursor definition file and put it in the same subfolder in the user prefs:
Original: $HFS/houdini/config/Cursors/CursorMapping
Modified: $HOUDINI_USER_PREF_DIR/config/Cursors/CursorMapping
While Houdini uses own cursors, even if I set a crosshair at OS level, it switches back to arrow, which wasn't ok for me. Finally I found this solution, which is better than the native OS cursor use, you can define different cursors for many functions with this file

That was one of the last things with the newer Maya versions when I decided to migrate… The first let's say ten versions used the OS cursor, which was ok for me, but in a version few years ago they introduced a hard coded/burned in custom ugly arrow. I didn't find any way to get a rid of it… I really don't like when developers put concrete boundaries around the user.
Maybe the main reason why I sticked with Maya was the better UI… things have changed, now I think Houdini has better and more customizable UI than Maya.
Here is my actual CursorMapping file (bit crosshair maniac):
# CursorMapping
#
# This file lists the mouse cursor information for Houdini.
#
# Each mouse cursor is defined as a triplet of lines:
# <cursorName>.file := <filename of image in Cursors directory> ;
# <cursorName>.x := <x coordinate of hotspot location> ;
# <cursorName>.y := <y coordinate of hotspot location> ;
#
# If the file is the .cursor format, then the hotspot location is ignored since
# it already includes hotspot information within. Otherwise, the hotspot
# location is relative to the TOP LEFT corner of the image. If an image is
# supplied and the hotspot coordinates are either negative or missing, then
# the hotspot location will default to the center of the image.
#
##############################################################################
# TODO:
# - For all new style cursors (.svg), we need to specify hotspots for them
# - For all used cursors, we need to have new style cursors for it
#
##############################################################################
# View tool cursors
DM_viewDolly.file := crosshair_toggle.svg; # RMB (dolly)
DM_viewDolly.x := 11;
DM_viewDolly.y := 11;
DM_viewRx.file := tilt.svg; # Alt+LMB (rotate in X)
DM_viewRx.x := 11;
DM_viewRx.y := 11;
DM_viewRy.file := swivel.svg; # Alt+LMB (rotate in Y)
DM_viewRy.x := 11;
DM_viewRy.y := 11;
DM_viewRz.file := roll.svg; # Ctrl+LMB (roll)
DM_viewRz.x := 11;
DM_viewRz.y := 11;
DM_viewScroll.file := crosshair_toggle.svg; # MMB (pan)
DM_viewScroll.x := 11;
DM_viewScroll.y := 11;
DM_viewTumble.file := crosshair_toggle.svg; # LMB (tumble)
DM_viewTumble.x := 11;
DM_viewTumble.y := 11;
DM_viewZoom.file := zoom.svg; # Alt+RMB (zoom)
DM_viewZoom.x := 11;
DM_viewZoom.y := 11;
hand.file := crosshair_toggle.svg; # Default view cursor
hand.x := 11;
hand.y := 11;
# Arrow cursors
iris.file := crosshair.svg; # default arrow cursor
iris.x := 11;
iris.y := 11;
arrowAll.file := resize_all.svg; # Resizing
arrowAll.x := 11;
arrowAll.y := 11;
arrowDiag.file := resize_diagonal.svg; # Diagonal resizing
arrowDiag.x := 11;
arrowDiag.y := 11;
arrowD1.file := arrowD1.cursor; # Selector arrow
arrowD2.file := white.svg; # Dragging handle
arrowD2.x := 7;
arrowD2.y := 2;
arrowAllDiagonal.file := arrowAllDiagonal.cursor; # unused
arrow.file := arrow.cursor; # unused
arrow_brush.file := brush.svg; # new unused
arrow_brush.x := 11;
arrow_brush.y := 11;
arrow_brush2.file := brush2.svg; # new unused
arrow_brush2.x := 11;
arrow_brush2.y := 11;
arrow_move.file := move.svg; # new unused
ibeam.file := white_ibeam.svg; # For text fields.
ibeam.x := 16;
ibeam.y := 16;
# Selection
select_white_replace.file := crosshair.svg; # Default selection mode
select_white_replace.x := 11;
select_white_replace.y := 11;
select_white_add.file := crosshair_add.svg; # Add to selection
select_white_add.x := 11;
select_white_add.y := 11;
select_white_remove.file := crosshair_remove.svg; # Remove to selection
select_white_remove.x := 11;
select_white_remove.y := 11;
select_white_toggle.file := crosshair_toggle.svg; # Toggle selection
select_white_toggle.x := 11;
select_white_toggle.y := 11;
select_black_replace.file := crosshair.svg; # Default selection mode
select_black_replace.x := 11;
select_black_replace.y := 11;
select_black_add.file := crosshair_add.svg; # Add to selection
select_black_add.x := 11;
select_black_add.y := 11;
select_black_remove.file := crosshair_remove.svg; # Remove to selection
select_black_remove.x := 11;
select_black_remove.y := 11;
select_black_toggle.file := crosshair_toggle.svg; # Toggle selection
select_black_toggle.x := 11;
select_black_toggle.y := 11;
select_laser_replace.file := crosshair.svg; # Laser select default
select_laser_replace.x := 11;
select_laser_replace.y := 11;
select_laser_add.file := crosshair_add.svg; # Laser select add
select_laser_add.x := 11;
select_laser_add.y := 11;
select_laser_remove.file := crosshair_remove.svg; # Laser select remove
select_laser_remove.x := 11;
select_laser_remove.y := 11;
select_laser_toggle.file := crosshair_toggle.svg; # Laser select toggle
select_laser_toggle.x := 11;
select_laser_toggle.y := 11;
# Handle locate cursors
handle_locate.file := crosshair.svg;
handle_locate.x := 11;
handle_locate.y := 11;
handle_locate_x.file := crosshair.svg;
handle_locate_x.x := 11;
handle_locate_x.y := 11;
handle_locate_y.file := crosshair.svg;
handle_locate_y.x := 11;
handle_locate_y.y := 11;
handle_locate_z.file := crosshair.svg;
handle_locate_z.x := 11;
handle_locate_z.y := 11;
handle_locate_xy.file := crosshair.svg;
handle_locate_xy.x := 11;
handle_locate_xy.y := 11;
handle_locate_yz.file := crosshair.svg;
handle_locate_yz.x := 11;
handle_locate_yz.y := 11;
handle_locate_xz.file := crosshair.svg;
handle_locate_xz.x := 11;
handle_locate_xz.y := 11;
handle_locate_xyz.file := crosshair.svg;
handle_locate_xyz.x := 11;
handle_locate_xyz.y := 11;
handle_locate_u.file := crosshair.svg;
handle_locate_u.x := 11;
handle_locate_u.y := 11;
handle_locate_v.file := crosshair.svg;
handle_locate_v.x := 11;
handle_locate_v.y := 11;
handle_locate_w.file := crosshair.svg;
handle_locate_w.x := 11;
handle_locate_w.y := 11;
handle_locate_uv.file := crosshair.svg;
handle_locate_uv.x := 11;
handle_locate_uv.y := 11;
# Splitter cursors (should be black to be consistent with Windows)
arrowRight.file := resize_right.svg; # Move splitter right
arrowRight.x := 11;
arrowRight.y := 11;
arrowUp.file := resize_up.svg; # Move splitter up
arrowUp.x := 11;
arrowUp.y := 11;
arrowLeft.file := resize_left.svg; # Move splitter left
arrowLeft.x := 11;
arrowLeft.y := 11;
arrowDown.file := resize_down.svg; # Move splitter down
arrowDown.x := 11;
arrowDown.y := 11;
arrowUpDown.file := resize_v.svg; # Move splitter up/down
arrowUpDown.x := 11;
arrowUpDown.y := 11;
arrowLeftRight.file := resize_h.svg; # Move splitter left/right
arrowLeftRight.x := 11;
arrowLeftRight.y := 11;
arrowNE.file := resize_ne.svg;
arrowNE.x := 11;
arrowNE.y := 11;
arrowNW.file := resize_nw.svg;
arrowNW.x := 11;
arrowNW.y := 11;
arrowSE.file := resize_se.svg;
arrowSE.x := 11;
arrowSE.y := 11;
arrowSW.file := resize_sw.svg;
arrowSW.x := 11;
arrowSW.y := 11;
arrowNWSE.file := resize_nwse.svg;
arrowNWSE.x := 11;
arrowNWSE.y := 11;
arrowSWNE.file := resize_swne.svg;
arrowSWNE.x := 11;
arrowSWNE.y := 11;
swapLeftRight.file := swap_h.svg; # Swap panes horizontally
swapLeftRight.x := 7;
swapLeftRight.y := 2;
swapUpDown.file := swap_v.svg; # Swap panes vertically
swapUpDown.x := 7;
swapUpDown.y := 2;
# Other generic cursors
cross.file := crosshair.svg; # Draw tool
cross.x := 11;
cross.y := 11;
X.file := do_not.svg; # Action is invalid
# (COPs uses for delete)
busy.file := wait.svg; # Hourglass on Windows
interruptable.file := wait2.svg; # Arrow with hourglass
interruptable.x := 2;
interruptable.y := 0;
dragdropOn.file := drag_drop.svg; # DnD allowed
dragdropOn.x := 1;
dragdropOn.y := 0;
dragdropOff.file := drag_nodrop.svg; # DnD not allowed
dragdropOff.x := 1;
dragdropOff.y := 0;
question.file := question.cursor; # unused
cut.file := cut.svg; # unused
cut.x := 5;
cut.y := 10;
# COP viewer related
handpoint.file := point.svg; # Start tab move
handpoint.x := 7;
handpoint.y := 2;
select.file := select.cursor; # Cursor mouseover on handle
# Misc other unused cursors
metal.file := metal.svg; # new unused
metal.x := 7;
metal.y := 2;
chili.file := chili.svg; # new unused
chili.x := 6;
chili.y := 3;
wire.file := wire.svg; # new unused
wire.x := 7;
wire.y := 2;
zoomin.file := zoom_in.svg; # new unused
zoomout.file := zoom_out.svg; # new unused
smallBusy.file := smallBusy.cursor; # unused
cornerBL.file := cornerBL.cursor; # unused
cornerBR.file := cornerBR.cursor; # unused
cornerTL.file := cornerTL.cursor; # unused
cornerTR.file := cornerTR.cursor; # unused