summaryrefslogtreecommitdiff
path: root/normal.py
diff options
context:
space:
mode:
Diffstat (limited to 'normal.py')
-rw-r--r--normal.py37
1 files changed, 32 insertions, 5 deletions
diff --git a/normal.py b/normal.py
index 1584812..66d61db 100644
--- a/normal.py
+++ b/normal.py
@@ -1,8 +1,9 @@
from Xlib import X, XK
-from clipboard import copy
+from clipboard import copy, paste
from constants import TARGET
from vim import open_vim
+from inkscape import distribute, ids_from_xml
import text
import styles
@@ -63,13 +64,14 @@ def normal_mode(self, event, char):
events.clear()
pressed.clear()
+# TODO: add key for distributing and grouping maybe
def handle_single_key(self, ev):
if ev == 't':
# Vim mode
- open_vim(self, compile_latex=False)
+ open_vim(self, compile_latex=True)
elif ev == 'Shift+t':
# Vim mode prerendered
- open_vim(self, compile_latex=True)
+ open_vim(self, compile_latex=False)
elif ev == 'a':
# Add objects mode
self.mode = styles.object_mode
@@ -91,12 +93,37 @@ def handle_single_key(self, ev):
elif ev == 'f':
# Bezier
self.press('b')
+ elif ev == 'b':
+ # Node
+ self.press('n')
elif ev == 'z':
# Undo
self.press('z', X.ControlMask)
elif ev == 'Shift+z':
# Delete
self.press('Delete')
+ elif ev == 'd':
+ # distribute horizontally
+ self.press('s', X.ControlMask)
+ self.press('c', X.ControlMask)
+ clipboard = paste()
+ distribute(ids_from_xml(clipboard), "hgap")
+ self.press('r', X.ControlMask)
+ elif ev == 'Shift+d':
+ # distribute vertically
+ self.press('s', X.ControlMask)
+ self.press('c', X.ControlMask)
+ clipboard = paste()
+ distribute(ids_from_xml(clipboard), "vgap")
+ self.press('r', X.ControlMask)
+ elif ev == 'v':
+ self.press('t', X.ControlMask | X.Mod1Mask)
+ elif ev == 'Shift+v':
+ self.press('h', X.ControlMask | X.Mod1Mask)
+ elif ev == 'g':
+ self.press('g', X.ControlMask)
+ elif ev == 'Shift+g':
+ self.press('g', X.ControlMask | X.ShiftMask)
elif ev == '`':
# Disabled mode
self.press('t')
@@ -123,7 +150,7 @@ def paste_style(self, combination):
'stroke-opacity': 1
}
- if {'s', 'a', 'd', 'g', 'h', 'x', 'e'} & combination:
+ if {'s', 'a', 'd', 'g', 'r', 'x', 'e'} & combination:
style['stroke'] = 'black'
style['stroke-width'] = w
style['marker-end'] = 'none'
@@ -136,7 +163,7 @@ def paste_style(self, combination):
w = thick_width
style['stroke-width'] = w
- if 'h' in combination:
+ if 'r' in combination:
w = very_thick_width
style['stroke-width'] = w