56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
import re
|
||
|
from xkeysnail.transform import *
|
||
|
|
||
|
aa = False
|
||
|
def a_setvar(v):
|
||
|
def _setvar():
|
||
|
transform._mark_set = False
|
||
|
global aa; aa = v
|
||
|
return _setvar
|
||
|
def a_ifvar():
|
||
|
def _ifvar():
|
||
|
transform._mark_set = False
|
||
|
global aa
|
||
|
if aa:
|
||
|
aa = False
|
||
|
return K("esc")
|
||
|
return K("enter")
|
||
|
return _ifvar
|
||
|
def a_flipmark():
|
||
|
def _flipmark():
|
||
|
transform._mark_set = not transform._mark_set;
|
||
|
return _flipmark
|
||
|
|
||
|
define_keymap(re.compile("Google-chrome|Chromium-browser|Firefox"), {
|
||
|
K("C-b"): with_mark(K("left")),
|
||
|
K("C-f"): with_mark(K("right")),
|
||
|
K("C-p"): with_mark(K("up")),
|
||
|
K("C-n"): with_mark(K("down")),
|
||
|
K("M-b"): with_mark(K("C-left")),
|
||
|
K("M-f"): with_mark(K("C-right")),
|
||
|
K("C-a"): with_mark(K("home")),
|
||
|
K("C-e"): with_mark(K("end")),
|
||
|
|
||
|
K("C-w"): [K("C-x"), set_mark(False)],
|
||
|
K("M-w"): [K("C-c"), K("right"), set_mark(False)],
|
||
|
K("C-y"): [K("C-v"), set_mark(False)],
|
||
|
K("C-k"): [K("Shift-end"), K("C-x"), set_mark(False)],
|
||
|
K("C-d"): [K("delete"), set_mark(False)],
|
||
|
K("M-d"): [K("C-delete"), set_mark(False)],
|
||
|
K("M-backspace"): [K("C-backspace"), set_mark(False)],
|
||
|
|
||
|
K("C-slash"): [K("C-z"), set_mark(False)],
|
||
|
K("C-space"): a_flipmark(),
|
||
|
K("C-M-space"): with_or_set_mark(K("C-right")),
|
||
|
|
||
|
# K("C-s"): K("F3"),
|
||
|
# K("C-r"): K("Shift-F3"),
|
||
|
# K("C-g"): [K("esc"), set_mark(False)]
|
||
|
|
||
|
K("C-s"): [K("F3"), a_setvar(True)],
|
||
|
K("C-r"): [K("Shift-F3"), a_setvar(True)],
|
||
|
K("C-g"): [K("esc"), a_setvar(False)],
|
||
|
K("enter"): a_ifvar()
|
||
|
})
|