Inkscape.org
Beginners' Questions New interface seems to lack indicator for overlapping end nodes
  1. #1
    tiggerbiggo tiggerbiggo @tiggerbiggo

    Hi,

    I've been sitting on an old version of inkscape for a while (Think it was 1.1.1) and had to upgrade for a specific extension.

    I noticed when I was working in the new one that the node indicators in node edit mode don't seem to indicate when there's duplicate / overlapping nodes any more.

    Screenshots show old and new inkscape, you can see in the older interface that there are a bunch of endpoint nodes that are overlapping indicated by a smaller node visual, you'll have to take my word that the second screenshot is of the same kind of geometry in 1.4.2, and there's no indication of the overlapping endpoints.

     

     

    I'm wondering whether or not this is a setting i've missed, or something that has been dropped / not implemented in the new interface?

    Steps from the advice list:

    1. Create a new topic: Done
    2. Describe what you have found: Googling doesn't seem to come up with anything
    3. Describe the source of the file: Created with Inkscape
    4. Describe the specific steps you took, the result you expected, and the result that actually happened.
      Make 2 separate paths that share an end node position
      In inkscape 1.1.1 this shows as a smaller icon to indicate the overlap
      In inkscape 1.4.2 this shows in the same way as other nodes
      I used this feature a lot to identify overlapping path endpoints so I can merge them manually where appropriate
    5. Describe your OS: Windows 10
    6. Describe if Inkscape was newly installed: Inkscape 1.4.2 was newly installed yesterday to gain access to new extensions, 1.1.1 was uninstalled before installing new version
    7. Inkscape installer: inkscape-1.4.2_2025-05-13_f4327f4-x64.msi
      Downloaded from inkscape website
    8. Describe any special hardware: No tablet / stylus, No external drives, Single monitor 1080p
    9. Describe any helper/assistive programs: No assistance programs or keyboard macros are being used

     

    Thanks everyone for any help, and for anyone from the dev team if you end up reading this, Inkscape is awesome :)
     

  2. #2
    Tyler Durden Tyler Durden @TylerDurden

    Before proceeding further I'd reset the preferences and restart Inkscape. https://inkscape.org/forums/questions/getting-back-to-square-one-and-starting-over-its-easy/

  3. #3
    tiggerbiggo tiggerbiggo @tiggerbiggo

    Resetting and restarting does not change anything about the node visualization.

  4. #4
    Tyler Durden Tyler Durden @TylerDurden

    ok. Replicated here in 1.4.2, Win10 and Linux Mint 21.

    I suggest reporting this as a new bug. I'm not finding a similar report.

    Fortunately, there is work being done on a medium priority node bug that could include resolving this issue (or at lease bring more visibility to it).

  5. #5
    COD COD @COD

    Tyler - I think I commented on this in a bug report someone submitted. Big change in how Inkscape displays nodes in 1.4.x and previous versions.

    If I get a chance, I will see if I can find it again. 

    On the bug report, a developer mentioned modifying a handles.css file. I followed the advice and I can now somewhat see overlapping/duplicate nodes. 

    I think 1.4 also introduced a new extension that removes duplicate nodes. That also seems to help. Extensions>Modify Path>Clean Up Path. 

  6. #6
    Tyler Durden Tyler Durden @TylerDurden

    Currently on my machines, I can only tell when the lower node is selected. :-/

     

  7. #7
    Tyler Durden Tyler Durden @TylerDurden

    @COD, can you share the tweaks to the handles.css file?  My attempts by altering the opacity are not very useful. 

  8. #8
    COD COD @COD
    🙇

    https://gitlab.com/inkscape/inbox/-/issues/11200

    This is one of the reports. There is another. See if I can find the one that had the advice. 

    Yes - I changed the opacity to 50%. It helps some but not much. Looking at the image you shared, the duplicate node is top left. 

    Not sure if you will be happy with my changes. I changed the LPE control nodes and a few other things. 

    /*
    CANVAS CONTROLS CUSTOMIZATION
    -----------------------------
    
    All available properties:
        shape: "shape-name";
        fill: color;
        stroke: color;
        outline: color;
        stroke-width: X px;
        outline-width: X px;
        opacity: value or percentage;
        fill-opacity: value or percentage;
        stroke-opacity: value or percentage;
        outline-opacity: value or percentage;
        scale: factor; -> scaling factor applied to requested "handle size" preference setting
        size-extra: 1px; -> extra space to fine-tune handle size with relation to other handles
        stroke-scale: 0.10; -> factor for scaling stroke with handle size or 0 to disable scaling
    
    Where 'shape' is one of: 
        'square'
        'diamond'
        'circle'
        'triangle'
        'triangle-angled'
        'cross'
        'plus'
        'plus'
        'pivot'
        'arrow'
        'skew-arrow'
        'curved-arrow'
        'side-align'
        'corner-align'
        'middle-align'
    
    All available selectors:
        * (all handles)
        .inkscape-adj-handle
        .inkscape-adj-skew
        .inkscape-adj-rotate
        .inkscape-adj-center
        .inkscape-adj-salign
        .inkscape-adj-calign
        .inkscape-adj-malign
        .inkscape-anchor
        .inkscape-point
        .inkscape-rotate
        .inkscape-margin
        .inkscape-center
        .inkscape-sizer
        .inkscape-shaper
        .inkscape-marker
        .inkscape-lpe
        .inkscape-node-auto
        .inkscape-node-cusp
        .inkscape-node-smooth
        .inkscape-node-symmetrical
        .inkscape-mesh
        .inkscape-invisible
        .inkscape-guide-handle
        .inkscape-move
    
    All available pseudo-classes (states):
        :hover
        :selected
        :click (same for click/drag)
        :selected:hover
        :selected:click
    
    Notes:
        Less specific selectors will apply to more specific handles
        unless overwritten by more specific selectors. (like usual css)
    
        User's node-handles.css overwrites default for any handle
        specified in the former
    
        Color can be #RRGGBB or name
    */
    
    * {
        fill: white;
        stroke: black;
        outline: white;
        stroke-width: 1.0px;
        outline-width: 2.0px;
        scale: 2.0;
        size-extra: 1px; /* extra space to fine-tune handle size */
        stroke-scale: 0.10; /* factor for scaling stroke with handle size or 0 to disable scaling */
    }
    
    *:selected {
        fill: #2a7fff;
    }
    
    *:hover,
    *:click {
        fill: #0066ff;
    }
    
    .inkscape-node-cusp { /* several path effects */
        shape: "diamond";
        scale: 3; 
        size-extra: 2px;
        opacity: 50% !important;
        outline-opacity: 50%;
        stroke-opacity: 50%;
        outline-width: 4px;
    }
    
    .inkscape-node-smooth,
    .inkscape-node-symmetrical {
        shape: "square";
        size-extra: 2px;
        opacity: 50% !important;
        outline-opacity: 50%;
        stroke-opacity: 50%;
        outline-width: 4px;
    }
    
    .inkscape-node-auto { /* LPE chamfer fillet */
        shape: "circle";
        scale: 3;
        size-extra: 2px;
        opacity: 50% !important;
        outline-opacity: 50%;
        stroke-opacity: 50%;
        outline-width: 4px;
    }
    
    .inkscape-shaper, /* box 3d, connector tool, gradient stops */
    .inkscape-lpe { /* several path effects */
        shape: "circle";
        fill: orange;
        scale: 2.828427; /* 2 * sqrt(2) */
        size-extra: 2px;
    }
    .inkscape-lpe:hover {
        fill: darkorange;
    }
    
    .inkscape-lpe:selected:click {
        fill: darkorange;
    }
    
    .inkscape-anchor, /* various drawing tools */
    .inkscape-sizer {
        shape: "square";
        size-extra: 2px;
      
    }
    
    .inkscape-margin, /* page tool */
    .inkscape-move { /* LPE chamfer fillet */
        shape: "circle";
        scale: 2.256758; /* 4 / sqrt(PI) */
        size-extra: 2px;
    
    }
    
    /* snap indicators, measure tool handles */
    .inkscape-point {
        shape: "circle";
        stroke-width: 1px;
        outline-width: 3px;
        fill: red;
        scale: 2;
        size-extra: 3px;
    }
    
    .inkscape-mesh,
    .inkscape-rotate {
        shape: "circle";
        scale: 2.256758; /* 4 / sqrt(PI) */
        size-extra: 2px;
    }
    
    .inkscape-mesh:selected {
        shape: "triangle";
    }
    
    .inkscape-adj-handle, .inkscape-adj-skew, .inkscape-adj-rotate,
    .inkscape-adj-salign, .inkscape-adj-calign, .inkscape-adj-malign,
    .inkscape-adj-center {
        fill: black;
        size-extra: 7px;
        stroke-scale: 0;
    }
    
    .inkscape-adj-handle:selected, .inkscape-adj-skew:selected, .inkscape-adj-rotate:selected,
    .inkscape-adj-salign:selected, .inkscape-adj-calign:selected, .inkscape-adj-malign:selected,
    .inkscape-adj-center:selected {
        fill: #4992fe;
    }
    
    .inkscape-adj-handle:hover, .inkscape-adj-skew:hover, .inkscape-adj-rotate:hover,
    .inkscape-adj-salign:hover, .inkscape-adj-calign:hover, .inkscape-adj-malign:hover,
    .inkscape-adj-center:hover {
        fill: #6da7ff;
    }
    
    .inkscape-adj-handle {
        shape: "arrow";
    }
    
    .inkscape-adj-skew {
        shape: "skew-arrow";
    }
    
    .inkscape-adj-rotate {
        shape: "curved-arrow";
    }
    
    .inkscape-adj-center {
        shape: "pivot";
    }
    
    .inkscape-adj-salign, .inkscape-adj-calign, .inkscape-adj-malign {
        size-extra: 11px;
    }
    
    .inkscape-adj-salign {
        shape: "side-align";
    }
    
    .inkscape-adj-calign {
        shape: "corner-align";
    }
    
    .inkscape-adj-malign {
        shape: "middle-align";
    }
    
    .inkscape-center {
        shape: "plus";
        stroke-width: 1px;
        size-extra: 1px;
        stroke-scale: 0.08; /* make stroke heavier more slowly */
    }
    
    .inkscape-marker {
        shape: "cross";
        stroke-width: 1px;
        size-extra: -1px;
        stroke-scale: 0.08;
    }
    
    .inkscape-invisible {
        opacity: 0% !important;
        /* despite being invisible size of this handle is important, as it is a hit target for path manipulation */
        scale: 2;
        size-extra: 1px;
        stroke-width: 0px;
        stroke-scale: 0;
        outline-width: 0px;
    }
    
    .inkscape-guide-handle {
        /* guide lines handles are tiny and unobtrusive */
        scale: 2.5;
        size-extra: 3px;
        stroke-width: 5.0px;
        stroke-scale: 0;
        outline-width: 1px;
    }
    
    /* corners LPE adjustment handles */
    .inkscape-pointer {
        shape: "triangle-angled";
        scale: 5.0; /* angled triangle occupies half of the image, so it needs larger scale */
        size-extra: 10px;
    }
    

     

  9. #9
    Tyler Durden Tyler Durden @TylerDurden

    I only changed the section at the top:

    
    * {
        fill: white;
        stroke: blue;
        outline: red;
        stroke-width: 1.0px;
    	stroke-opacity: 40%;
        outline-width: 1.0px;
        outline-opacity: 40%;
    	opacity: 90%;
        scale: 2.0;
        size-extra: 1px; /* extra space to fine-tune handle size */
        stroke-scale: 0.10; /* factor for scaling stroke with handle size or 0 to disable scaling */
    }
    

     

    I was hoping the red and blue would stand out more, but meh..

  10. #10
    COD COD @COD
    👍

    Like you said "meh". Helps a little. What really helped me was changing the LPE control point handles. I couldn't tell the difference between the control handles and the path node handles until I changed it. 

     

    Screenshot 2025 07 03 201457
Inkscape Inkscape.org Inkscape Forum Beginners' Questions New interface seems to lack indicator for overlapping end nodes