gillescastel/inkscape-shortcut-manager

Changing the default arrows

Closed this issue · 1 comments

So the color scheme I use is dark and for that I had to change the colors of the default strokes and fills. One thing I can't figure out though is where the arrow assets are coming from. I can see that they are added from the normal.py file. The code for them looks like this:

    if 'x' in combination:
        style['marker-start'] = f'url(#marker-arrow-{w})'
        style['marker-end'] = f'url(#marker-arrow-{w})'

I want to add a different type of default arrows without having to create a new style, can you expand on where these arrow assets are coming from?
Thanks.

Okay so I figured it out. The assets are not being imported they are being made using svg code. Which I kind of discovered that is a real thing. So basically if anyone wants to change the arrows, you can do so by changing this code in the normal.py file. It will be present at the end almost.

<defs id="marker-defs">
                <marker
                id="marker-arrow-{w}"
                orient="auto-start-reverse"
                refY="0" refX="0"
                markerHeight="1.690" markerWidth="0.911">
                  <g transform="scale({(2.40 * w + 3.87)/(4.5*w)})">
                    <path
                       d="M -1.55415,2.0722 C -1.42464,1.29512 0,0.1295 0.38852,0 0,-0.1295 -1.42464,-1.29512 -1.55415,-2.0722"
                       style="fill:none;stroke:#ffffff;stroke-width:{0.6};stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
                       inkscape:connector-curvature="0" />
                   </g>
                </marker>
                </defs>
                '''

Here style is the thing that you will want to change. Fill and stroke are understandable enough, look up stroke-linecap and stroke-linejoin cause they are mostly responsible for the shape of that arrow.