summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/extensions/measure.inx7
-rwxr-xr-xshare/extensions/measure.py87
-rw-r--r--share/icons/Makefile.am1
-rw-r--r--share/keys/inkscape.xml144
4 files changed, 196 insertions, 43 deletions
diff --git a/share/extensions/measure.inx b/share/extensions/measure.inx
index cfbc3fce7..8fae020e0 100644
--- a/share/extensions/measure.inx
+++ b/share/extensions/measure.inx
@@ -9,6 +9,7 @@
<param name="type" type="enum" _gui-text="Measurement Type: ">
<_item value="length">Length</_item>
<_item msgctxt="measure extension" value="area">Area</_item>
+ <_item msgctxt="measure extension" value="cofm">Center of Mass</_item>
</param>
<param name="format" type="enum" _gui-text="Text Orientation: ">
<_item msgctxt="measure extension" value="textonpath">Text On Path</_item>
@@ -32,9 +33,9 @@
</param>
</page>
<page name="desc" _gui-text="Help">
- <_param name="measurehelp" type="description" xml:space="preserve">This effect measures the length, or area, of the selected paths and adds it as a text object with the selected units.
-
- * Display format can be either Text-On-Path, or stand-alone text at a specified angle.
+ <_param name="measurehelp" type="description" xml:space="preserve">This effect measures the length, area, or center-of-mass of the selected paths. Length and area are added as a text object with the selected units. Center-of-mass is shown as a cross symbol.
+
+ * Text display format can be either Text-On-Path, or stand-alone text at a specified angle.
* The number of significant digits can be controlled by the Precision field.
* The Offset field controls the distance from the text to the path.
* The Scale factor can be used to make measurements in scaled drawings. For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale must be set to 250.
diff --git a/share/extensions/measure.py b/share/extensions/measure.py
index ca471816f..edcd2e92f 100755
--- a/share/extensions/measure.py
+++ b/share/extensions/measure.py
@@ -1,8 +1,9 @@
#!/usr/bin/env python
'''
This extension module can measure arbitrary path and object length
-It adds a text to the selected path containing the length in a
-given unit.
+It adds text to the selected path containing the length in a given unit.
+Area and Center of Mass calculated using Green's Theorem:
+http://mathworld.wolfram.com/GreensTheorem.html
Copyright (C) 2010 Alvin Penner
Copyright (C) 2006 Georg Wiora
@@ -30,10 +31,31 @@ TODO:
2. check direction >90 or <-90 Degrees
3. rotate by 180 degrees around text center
'''
-import inkex, simplestyle, simplepath, simpletransform, sys, cubicsuperpath, bezmisc, locale
-# Set current system locale
+# standard library
+import locale
+# local library
+import inkex
+import simplestyle
+import simpletransform
+import cubicsuperpath
+import bezmisc
+
+inkex.localize()
locale.setlocale(locale.LC_ALL, '')
+# third party
+try:
+ import numpy
+except:
+ inkex.errormsg(_("Failed to import the numpy modules. These modules are required by this extension. Please install them and try again. On a Debian-like system this can be done with the command, sudo apt-get install python-numpy."))
+ exit()
+
+mat_area = numpy.matrix([[ 0, 2, 1, -3],[ -2, 0, 1, 1],[ -1, -1, 0, 2],[ 3, -1, -2, 0]])
+mat_cofm_0 = numpy.matrix([[ 0, 35, 10,-45],[-35, 0, 12, 23],[-10,-12, 0, 22],[ 45,-23,-22, 0]])
+mat_cofm_1 = numpy.matrix([[ 0, 15, 3,-18],[-15, 0, 9, 6],[ -3, -9, 0, 12],[ 18, -6,-12, 0]])
+mat_cofm_2 = numpy.matrix([[ 0, 12, 6,-18],[-12, 0, 9, 3],[ -6, -9, 0, 15],[ 18, -3,-15, 0]])
+mat_cofm_3 = numpy.matrix([[ 0, 22, 23,-45],[-22, 0, 12, 10],[-23,-12, 0, 35],[ 45,-10,-35, 0]])
+
def numsegs(csp):
return sum([len(p)-1 for p in csp])
def interpcoord(v1,v2,p):
@@ -69,20 +91,37 @@ def csplength(csp):
for i in xrange(1,len(sp)):
l = cspseglength(sp[i-1],sp[i])
lengths[-1].append(l)
- total += l
+ total += l
return lengths, total
def csparea(csp):
area = 0.0
for sp in csp:
+ if len(sp) < 2: continue
for i in range(len(sp)): # calculate polygon area
area += 0.5*sp[i-1][1][0]*(sp[i][1][1] - sp[i-2][1][1])
for i in range(1, len(sp)): # add contribution from cubic Bezier
- bezarea = ( 0.0*sp[i-1][1][1] + 2.0*sp[i-1][2][1] + 1.0*sp[i][0][1] - 3.0*sp[i][1][1])*sp[i-1][1][0]
- bezarea += (-2.0*sp[i-1][1][1] + 0.0*sp[i-1][2][1] + 1.0*sp[i][0][1] + 1.0*sp[i][1][1])*sp[i-1][2][0]
- bezarea += (-1.0*sp[i-1][1][1] - 1.0*sp[i-1][2][1] + 0.0*sp[i][0][1] + 2.0*sp[i][1][1])*sp[i][0][0]
- bezarea += ( 3.0*sp[i-1][1][1] - 1.0*sp[i-1][2][1] - 2.0*sp[i][0][1] + 0.0*sp[i][1][1])*sp[i][1][0]
- area += 0.15*bezarea
- return abs(area)
+ vec_x = numpy.matrix([sp[i-1][1][0], sp[i-1][2][0], sp[i][0][0], sp[i][1][0]])
+ vec_y = numpy.matrix([sp[i-1][1][1], sp[i-1][2][1], sp[i][0][1], sp[i][1][1]])
+ area += 0.15*(vec_x*mat_area*vec_y.T)[0,0]
+ return -area # require positive area for CCW
+def cspcofm(csp):
+ area = csparea(csp)
+ xc = 0.0
+ yc = 0.0
+ if abs(area) < 1.e-8:
+ inkex.errormsg(_("Area is zero, cannot calculate Center of Mass"))
+ return 0, 0
+ for sp in csp:
+ for i in range(len(sp)): # calculate polygon moment
+ xc += sp[i-1][1][1]*(sp[i-2][1][0] - sp[i][1][0])*(sp[i-2][1][0] + sp[i-1][1][0] + sp[i][1][0])/6
+ yc += sp[i-1][1][0]*(sp[i][1][1] - sp[i-2][1][1])*(sp[i-2][1][1] + sp[i-1][1][1] + sp[i][1][1])/6
+ for i in range(1, len(sp)): # add contribution from cubic Bezier
+ vec_x = numpy.matrix([sp[i-1][1][0], sp[i-1][2][0], sp[i][0][0], sp[i][1][0]])
+ vec_y = numpy.matrix([sp[i-1][1][1], sp[i-1][2][1], sp[i][0][1], sp[i][1][1]])
+ vec_t = numpy.matrix([(vec_x*mat_cofm_0*vec_y.T)[0,0], (vec_x*mat_cofm_1*vec_y.T)[0,0], (vec_x*mat_cofm_2*vec_y.T)[0,0], (vec_x*mat_cofm_3*vec_y.T)[0,0]])
+ xc += (vec_x*vec_t.T)[0,0]/280
+ yc += (vec_y*vec_t.T)[0,0]/280
+ return -xc/area, -yc/area
def appendSuperScript(node, text):
super = inkex.etree.SubElement(node, inkex.addNS('tspan', 'svg'), {'style': 'font-size:65%;baseline-shift:super'})
super.text = text
@@ -133,12 +172,13 @@ class Length(inkex.Effect):
self.OptionParser.add_option("--measurehelp",
action="store", type="string",
dest="measurehelp", default="",
- help="dummy")
-
+ help="dummy")
+
def effect(self):
# get number of digits
prec = int(self.options.precision)
- self.options.offset *= self.unittouu('1px')
+ scale = self.unittouu('1px') # convert to document units
+ self.options.offset *= scale
factor = 1.0
doc = self.document.getroot()
if doc.get('viewBox'):
@@ -150,16 +190,22 @@ class Length(inkex.Effect):
# loop over all selected paths
for id, node in self.selected.iteritems():
if node.tag == inkex.addNS('path','svg'):
- self.group = inkex.etree.SubElement(node.getparent(),inkex.addNS('text','svg'))
- a =[]
mat = simpletransform.composeParents(node, [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]])
p = cubicsuperpath.parsePath(node.get('d'))
simpletransform.applyTransformToPath(mat, p)
- factor *= self.unittouu('1px')/self.unittouu('1'+self.options.unit)
+ factor *= scale/self.unittouu('1'+self.options.unit)
if self.options.type == "length":
slengths, stotal = csplength(p)
- else:
+ self.group = inkex.etree.SubElement(node.getparent(),inkex.addNS('text','svg'))
+ elif self.options.type == "area":
stotal = csparea(p)*factor*self.options.scale
+ self.group = inkex.etree.SubElement(node.getparent(),inkex.addNS('text','svg'))
+ else:
+ xc, yc = cspcofm(p)
+ self.group = inkex.etree.SubElement(node.getparent(),inkex.addNS('path','svg'))
+ self.group.set('id', 'MassCenter_' + node.get('id'))
+ self.addCross(self.group, xc, yc, scale)
+ continue
# Format the length as string
lenstr = locale.format("%(len)25."+str(prec)+"f",{'len':round(stotal*factor*self.options.scale,prec)}).strip()
if self.options.format == 'textonpath':
@@ -173,6 +219,11 @@ class Length(inkex.Effect):
else:
self.addTextWithTspan(self.group, p[0][0][1][0], p[0][0][1][1], lenstr+' '+self.options.unit+'^2', id, 'start', -int(self.options.angle), -self.options.offset + self.options.fontsize/2)
+ def addCross(self, node, x, y, scale):
+ l = 3*scale # 3 pixels in document units
+ node.set('d', 'm %s,%s %s,0 %s,0 m %s,%s 0,%s 0,%s' % (str(x-l), str(y), str(l), str(l), str(-l), str(-l), str(l), str(l)))
+ node.set('style', 'stroke:#000000;fill:none;stroke-width:%s' % str(0.5*scale))
+
def addTextOnPath(self, node, x, y, text, id, anchor, startOffset, dy = 0):
new = inkex.etree.SubElement(node,inkex.addNS('textPath','svg'))
s = {'text-align': 'center', 'vertical-align': 'bottom',
diff --git a/share/icons/Makefile.am b/share/icons/Makefile.am
index 6053cd71c..5830f1254 100644
--- a/share/icons/Makefile.am
+++ b/share/icons/Makefile.am
@@ -46,6 +46,7 @@ icons_DATA = \
\
icons.svg \
tango_icons.svg \
+ symbolic_icons.svg \
\
inkscape.file.svg \
inkscape.file.png \
diff --git a/share/keys/inkscape.xml b/share/keys/inkscape.xml
index d39441f22..07192cb37 100644
--- a/share/keys/inkscape.xml
+++ b/share/keys/inkscape.xml
@@ -44,6 +44,9 @@ override) the bindings in the main default.xml.
<bind key="n" modifiers="Ctrl" action="FileNew" display="true" />
<bind key="N" modifiers="Ctrl" action="FileNew" />
+ <bind key="n" modifiers="Ctrl,Alt" action="FileTemplates" display="true" />
+ <bind key="N" modifiers="Ctrl,Alt" action="FileTemplates" />
+
<bind key="o" modifiers="Ctrl" action="FileOpen" display="true" />
<bind key="O" modifiers="Ctrl" action="FileOpen" />
@@ -64,16 +67,16 @@ override) the bindings in the main default.xml.
<bind key="i" modifiers="Ctrl" action="FileImport" display="true" />
<bind key="I" modifiers="Ctrl" action="FileImport" />
- <bind key="e" modifiers="Ctrl,Shift" action="FileExport" display="true" />
- <bind key="E" modifiers="Ctrl,Shift" action="FileExport" />
+ <bind key="e" modifiers="Ctrl,Shift" action="DialogExport" display="true" />
+ <bind key="E" modifiers="Ctrl,Shift" action="DialogExport" />
<bind action="FileVacuum" />
<bind key="w" modifiers="Ctrl" action="FileClose" display="true" />
- <bind key="W" modifiers="Ctrl" action="FileClose" display="true" />
+ <bind key="W" modifiers="Ctrl" action="FileClose" />
<bind key="q" modifiers="Ctrl" action="FileQuit" display="true" />
- <bind key="Q" modifiers="Ctrl" action="FileQuit" display="true" />
+ <bind key="Q" modifiers="Ctrl" action="FileQuit" />
<!-- Tools -->
@@ -119,6 +122,11 @@ override) the bindings in the main default.xml.
<bind action="ArcPrefs" />
+ <bind key="m" action="ToolMeasure" />
+ <bind key="M" action="ToolMeasure" display="true" />
+
+ <bind action="MeasurePrefs" />
+
<bind key="F9" modifiers="Shift" action="ToolStar" />
<bind key="asterisk" modifiers="Shift" action="ToolStar" />
<bind key="asterisk" action="ToolStar" />
@@ -190,7 +198,6 @@ override) the bindings in the main default.xml.
<bind action="SprayPrefs" />
-
<!-- Zoom -->
<bind key="plus" action="ZoomIn" display="true" />
@@ -230,48 +237,64 @@ override) the bindings in the main default.xml.
<bind key="grave" modifiers="Shift" action="ZoomNext" display="true" /> <!-- ` -->
<bind key="asciitilde" modifiers="Shift" action="ZoomNext" /> <!-- ~ -->
+ <bind key="KP_9" action="ZoomNext" />
<bind key="grave" action="ZoomPrev" display="true" /> <!-- ` -->
-
+ <bind key="KP_8" action="ZoomPrev" />
+
<!-- View -->
<bind key="F11" action="FullScreen" display="true" />
<bind key="F11" action="FocusToggle" modifiers="Shift" display="true" />
+ <bind key="F11" action="FullScreenFocus" modifiers="Ctrl" display="true" />
<bind key="Tab" modifiers="Ctrl" action="NextWindow" display="true" />
<bind key="ISO_Left_Tab" modifiers="Ctrl" action="NextWindow" />
<bind key="Tab" modifiers="Ctrl,Shift" action="PrevWindow" display="true" />
<bind key="ISO_Left_Tab" modifiers="Ctrl,Shift" action="PrevWindow" />
+ <bind key="numbersign" modifiers="Shift" action="ToggleGrid" /> <!-- # -->
+ <bind key="numbersign" action="ToggleGrid" display="true" />
+
+ <bind key="bar" modifiers="Shift" action="ToggleGuides" /> <!-- | -->
+ <bind key="bar" action="ToggleGuides" display="true" />
+
+ <bind key="percent" action="ToggleSnapGlobal" display="true" /> <!-- % -->
+ <bind key="percent" modifiers="Shift" action="ToggleSnapGlobal" />
+
+ <bind action="ToggleCommandsToolbar" />
+ <bind action="ToggleSnapToolbar" />
+ <bind action="ToggleToolToolbar" />
+ <bind action="ToggleToolbox" />
+
<bind key="r" modifiers="Ctrl" action="ToggleRulers" display="true" />
<bind key="R" modifiers="Ctrl" action="ToggleRulers" />
<bind key="b" modifiers="Ctrl" action="ToggleScrollbars" display="true" />
<bind key="B" modifiers="Ctrl" action="ToggleScrollbars" />
- <bind key="bar" modifiers="Shift" action="ToggleGuides" /> <!-- | -->
- <bind key="bar" action="ToggleGuides" display="true" />
+ <bind key="p" modifiers="Shift,Alt" action="TogglePalette" display="true" />
+ <bind key="P" modifiers="Shift,Alt" action="TogglePalette" />
- <bind key="numbersign" modifiers="Shift" action="ToggleGrid" /> <!-- # -->
- <bind key="numbersign" action="ToggleGrid" display="true" />
+ <bind action="ToggleStatusbar" />
- <bind key="percent" action="ToggleSnapGlobal" display="true" /> <!-- % -->
- <bind key="percent" modifiers="Shift" action="ToggleSnapGlobal" />
-
<bind action="ViewNew" />
<bind action="ViewNewPreview" />
<bind action="ViewIconPreview" />
+ <bind key="KP_5" modifiers="Ctrl" action="ViewModeToggle" display="true" />
+ <bind key="KP_Begin" modifiers="Ctrl" action="ViewModeToggle" />
+
<bind action="ViewModeNormal" />
+ <bind action="ViewModeNoFilters" />
<bind action="ViewModeOutline" />
- <bind action="ViewColorModeNormal" />
- <bind action="ViewColorModeGrayscale" />
- <bind key="KP_5" modifiers="Ctrl" action="ViewModeToggle" display="true" />
- <bind key="KP_Begin" modifiers="Ctrl" action="ViewModeToggle" />
<bind key="KP_5" modifiers="Shift" action="ViewColorModeToggle" display="true" />
-<!-- Edit -->
+ <bind action="ViewColorModeNormal" />
+ <bind action="ViewColorModeGrayscale" />
+<!-- Edit -->
+
<bind key="z" modifiers="Ctrl" action="EditUndo" display="true" />
<bind key="Z" modifiers="Ctrl" action="EditUndo" />
<bind key="y" modifiers="Ctrl,Shift" action="EditUndo" />
@@ -283,16 +306,19 @@ override) the bindings in the main default.xml.
<bind key="Y" modifiers="Ctrl" action="EditRedo" />
<bind key="h" modifiers="Ctrl,Shift" action="DialogUndoHistory" display="true" />
- <bind key="H" modifiers="Ctrl,Shift" action="DialogUndoHistory" display="true" />
+ <bind key="H" modifiers="Ctrl,Shift" action="DialogUndoHistory" />
<bind key="x" modifiers="Ctrl" action="EditCut" display="true" />
<bind key="X" modifiers="Ctrl" action="EditCut" />
-
+ <bind key="Delete" modifiers="Shift" action="EditCut"/>
+
<bind key="c" modifiers="Ctrl" action="EditCopy" display="true" />
<bind key="C" modifiers="Ctrl" action="EditCopy" />
+ <bind key="Insert" modifiers="Ctrl" action="EditCopy"/>
<bind key="v" modifiers="Ctrl" action="EditPaste" display="true" />
<bind key="V" modifiers="Ctrl" action="EditPaste" />
+ <bind key="Insert" modifiers="Shift" action="EditPaste"/>
<bind key="v" modifiers="Ctrl,Shift" action="EditPasteStyle" display="true" />
<bind key="V" modifiers="Ctrl,Shift" action="EditPasteStyle" />
@@ -320,9 +346,13 @@ override) the bindings in the main default.xml.
<bind key="d" modifiers="Alt,Shift" action="EditUnlinkClone" display="true" />
<bind key="D" modifiers="Alt,Shift" action="EditUnlinkClone" />
+ <bind action="EditRelinkClone" />
+
<bind key="d" modifiers="Shift" action="EditCloneSelectOriginal" display="true" />
<bind key="D" modifiers="Shift" action="EditCloneSelectOriginal" />
+ <bind action="EditCloneOriginalPathLPE" />
+
<bind key="a" modifiers="Ctrl" action="EditSelectAll" display="true" />
<bind key="A" modifiers="Ctrl" action="EditSelectAll" />
@@ -331,6 +361,14 @@ override) the bindings in the main default.xml.
<bind key="a" modifiers="Ctrl,Alt" action="EditSelectAllInAllLayers" display="true" />
<bind key="A" modifiers="Ctrl,Alt" action="EditSelectAllInAllLayers" />
+ <bind action="EditSelectSameFillStroke" />
+ <bind action="EditSelectSameFillColor" />
+ <bind action="EditSelectSameStrokeColor" />
+ <bind action="EditSelectSameStrokeStyle" />
+
+ <bind key="a" modifiers="Shift,Alt" action="EditSelectSameObjectType" display="true" />
+ <bind key="A" modifiers="Shift,Alt" action="EditSelectSameObjectType" />
+
<bind key="exclam" action="EditInvert" display="true" />
<bind key="exclam" modifiers="Shift" action="EditInvert" />
@@ -382,6 +420,8 @@ override) the bindings in the main default.xml.
<bind key="b" modifiers="Alt,Shift" action="SelectionTrace" display="true" />
<bind key="B" modifiers="Alt,Shift" action="SelectionTrace" />
+ <bind action="SelectionPixelArt" />
+
<bind key="i" modifiers="Alt" action="ObjectsToPattern" display="true" />
<bind key="I" modifiers="Alt" action="ObjectsToPattern" />
@@ -403,6 +443,10 @@ override) the bindings in the main default.xml.
<bind action="ObjectRemoveTransform" />
+ <bind action="FitCanvasToSelection" />
+ <bind action="FitCanvasToDrawing" />
+ <bind action="FitCanvasToSelectionOrDrawing" />
+
<!-- Path -->
<bind key="c" modifiers="Ctrl,Shift" action="ObjectToPath" display="true" />
@@ -521,9 +565,25 @@ override) the bindings in the main default.xml.
<bind key="Page_Down" modifiers="Shift" action="LayerMoveToPrev" display="true" />
<bind key="KP_Page_Down" modifiers="Shift" action="LayerMoveToPrev" />
+ <bind action="LayerMoveTo" />
+
<bind key="l" modifiers="Ctrl,Shift" action="DialogLayers" display="true" />
<bind key="L" modifiers="Ctrl,Shift" action="DialogLayers" />
+ <bind action="LayerDuplicate" />
+ <bind action="LayerDelete" />
+
+ <bind action="LayerHideAll" />
+ <bind action="LayerSolo" />
+ <bind action="LayerShowAll" />
+
+ <bind action="LayerLockAll" />
+ <bind action="LayerLockOthers" />
+ <bind action="LayerUnlockAll" />
+
+ <bind action="LayerToggleHide" />
+ <bind action="LayerToggleLock" />
+
<!-- Dialogs -->
<bind key="x" modifiers="Ctrl,Shift" action="DialogXMLEditor" display="true" />
@@ -553,9 +613,14 @@ override) the bindings in the main default.xml.
<bind key="o" modifiers="Ctrl,Shift" action="DialogObjectProperties" display="true" />
<bind key="O" modifiers="Ctrl,Shift" action="DialogObjectProperties" />
+ <bind action="DialogObjectAttributes" />
+
<bind key="w" modifiers="Ctrl,Shift" action="DialogSwatches" display="true" />
<bind key="W" modifiers="Ctrl,Shift" action="DialogSwatches" />
+ <bind key="y" modifiers="Ctrl,Shift" action="DialogSymbols" display="true" />
+ <bind key="Y" modifiers="Ctrl,Shift" action="DialogSymbols" />
+
<bind key="ampersand" modifiers="Ctrl,Shift" action="DialogLivePathEffect" />
<bind key="7" modifiers="Ctrl,Shift" action="DialogLivePathEffect" display="true" />
@@ -572,6 +637,27 @@ override) the bindings in the main default.xml.
<bind key="F12" action="DialogsToggle" display="true" />
+ <bind key="h" modifiers="Ctrl,Alt" action="AlignHorizontalCenter" display="true" />
+ <bind key="H" modifiers="Ctrl,Alt" action="AlignHorizontalCenter" />
+
+ <bind key="t" modifiers="Ctrl,Alt" action="AlignVerticalCenter" display="true" />
+ <bind key="T" modifiers="Ctrl,Alt" action="AlignVerticalCenter" />
+
+ <bind key="KP_2" modifiers="Ctrl,Alt" action="AlignVerticalBottom" display="true" />
+ <bind key="KP_2" modifiers="Ctrl,Alt" action="AlignVerticalBottom" />
+
+ <bind key="KP_4" modifiers="Ctrl,Alt" action="AlignHorizontalLeft" display="true" />
+ <bind key="KP_4" modifiers="Ctrl,Alt" action="AlignHorizontalLeft" />
+
+ <bind key="KP_5" modifiers="Ctrl,Alt" action="AlignVerticalHorizontalCenter" display="true" />
+ <bind key="KP_5" modifiers="Ctrl,Alt" action="AlignVerticalHorizontalCenter" />
+
+ <bind key="KP_6" modifiers="Ctrl,Alt" action="AlignHorizontalRight" display="true" />
+ <bind key="KP_6" modifiers="Ctrl,Alt" action="AlignHorizontalRight" />
+
+ <bind key="KP_8" modifiers="Ctrl,Alt" action="AlignVerticalTop" display="true" />
+ <bind key="KP_8" modifiers="Ctrl,Alt" action="AlignVerticalTop" />
+
<!-- Help -->
<bind action="HelpAboutExtensions" />
@@ -582,10 +668,24 @@ override) the bindings in the main default.xml.
<!-- Effects -->
- <bind action="EffectLast" />
- <bind action="EffectLastPref" />
+ <bind key="q" modifiers="Alt" action="EffectLast" display="true" />
+ <bind key="Q" modifiers="Alt" action="EffectLast" />
+ <bind key="q" modifiers="Shift,Alt" action="EffectLastPref" display="true" />
+ <bind key="Q" modifiers="Shift,Alt" action="EffectLastPref" />
+
<!-- You can also assign keys to individual effects. The action should be set to he
effect id from the .inx file, for example "org.ekips.filter.addnodes" for the Add
Nodes effect. -->
+ <bind key="g" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer" display="true"/>
+ <bind key="G" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer"/>
+
+<!--
+ <bind key="h" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer" display="true"/>
+ <bind key="H" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer"/>
+ -->
+
+ <bind key="j" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer" display="true"/>
+ <bind key="J" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer"/>
+
</keys>