With this code, you can align all the nodes you have selected. You can either align them in X or align them in Y. The hotkey I use is ctrl+l for horizontal alignment, and crtl+shift+l for vertical.
I like my scripts to be as organized as I can have them, and this code makes it super easy to make sure the connections have straight lines.
Expand Align Nodes
import nuke def alignY(): selected = nuke.selectedNodes() yPosList =  heightList =  for i in selected: yPos = i['ypos'].getValue() yPosList.append(yPos) height = i.screenHeight()/2 heightList.append(height) avrgYPos = sum(yPosList)/len(yPosList) print 'Average Position is %s' % avrgYPos lowestHeight = min(heightList) print 'Lowest Height is %s' % lowestHeight for i in selected: if i.screenHeight()/2 == lowestHeight: i['ypos'].setValue(avrgYPos) else: newHeight = i.screenHeight()/2 - lowestHeight i['ypos'].setValue(avrgYPos-newHeight) def alignX(): selected = nuke.selectedNodes() xPosList =  widthList =  for i in selected: xPos = i['xpos'].getValue() xPosList.append(xPos) width = i.screenWidth()/2 widthList.append(width) avrgXPos = sum(xPosList)/len(xPosList) print 'Average Position is %s' % avrgXPos lowestWidth = min(widthList) print 'Lowest Width is %s' % lowestWidth for i in selected: if i.screenWidth()/2 == lowestWidth: i['xpos'].setValue(avrgXPos) else: newWidth = i.screenWidth()/2 - lowestWidth i['xpos'].setValue(avrgXPos-newWidth)