summary refs log tree commit diff stats
path: root/ranger
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2010-10-14 16:14:18 +0200
committerhut <hut@lavabit.com>2010-10-14 16:14:18 +0200
commit1640991f9364447613c140b022cdf5165a3456f3 (patch)
tree995a4c2baa6a377305ee2a9ffd3df5d1fb0b4398 /ranger
parent1c907e9a50c55cb787aab2e6d76453eaf39398b1 (diff)
downloadranger-1640991f9364447613c140b022cdf5165a3456f3.tar.gz
ext.keybinding_parser: allow mapping alt+special keys
Diffstat (limited to 'ranger')
-rw-r--r--ranger/ext/keybinding_parser.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/ranger/ext/keybinding_parser.py b/ranger/ext/keybinding_parser.py
index 015d173f..e044d80d 100644
--- a/ranger/ext/keybinding_parser.py
+++ b/ranger/ext/keybinding_parser.py
@@ -66,10 +66,13 @@ DIRKEY = 9001
 ANYKEY = 9002
 PASSIVE_ACTION = 9003
 
-special_keys = {
+very_special_keys = {
 	'dir': DIRKEY,
 	'any': ANYKEY,
 	'bg': PASSIVE_ACTION,
+}
+
+special_keys = {
 	'bs': curses.KEY_BACKSPACE,
 	'backspace': curses.KEY_BACKSPACE,
 	'backspace2': curses.ascii.DEL,
@@ -92,11 +95,16 @@ special_keys = {
 	's-tab': curses.KEY_BTAB,
 }
 
-for char in ascii_lowercase:
-	special_keys['c-' + char] = ord(char) - 96
+for key, val in special_keys.items():
+	special_keys['a-' + key] = (27, val)
 
-for char in (ascii_lowercase + '0123456789'):
+for char in ascii_lowercase + '0123456789':
 	special_keys['a-' + char] = (27, ord(char))
 
+for char in ascii_lowercase:
+	special_keys['c-' + char] = ord(char) - 96
+
 for n in range(64):
 	special_keys['f' + str(n)] = curses.KEY_F0 + n
+
+special_keys.update(very_special_keys)
' href='#n172'>172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213