commit
b271820fc0
|
@ -0,0 +1,55 @@
|
|||
# -*- 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()
|
||||
})
|
|
@ -0,0 +1,42 @@
|
|||
{ stdenv, lib, fetchFromGitHub, makeWrapper, python3Packages }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "xkeysnail";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mooz";
|
||||
repo = pname;
|
||||
rev = "bf3c93b4fe6efd42893db4e6588e5ef1c4909cfb";
|
||||
sha256 = "0plcpb4ndzfsd5hj32m0g32swnhyph9sd759cdhhzmjvlq3j8q6p";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
evdev
|
||||
xlib
|
||||
inotify-simple
|
||||
appdirs
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share
|
||||
cp ./example/config.py $out/share/example.py
|
||||
cp ${./browser-emacs-bindings.py} $out/share/browser.py
|
||||
|
||||
makeWrapper $out/bin/xkeysnail $out/bin/xkeysnail-example \
|
||||
--add-flags "-q" --add-flags "$out/share/example.py"
|
||||
makeWrapper $out/bin/xkeysnail $out/bin/xkeysnail-browser \
|
||||
--add-flags "-q" --add-flags "$out/share/browser.py"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Yet another keyboard remapping tool for X environment";
|
||||
homepage = "https://github.com/mooz/xkeysnail";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl1Only;
|
||||
maintainers = with maintainers; [ bb2020 ];
|
||||
};
|
||||
}
|
|
@ -9062,6 +9062,8 @@ in
|
|||
|
||||
xkbvalidate = callPackage ../tools/X11/xkbvalidate { };
|
||||
|
||||
xkeysnail = callPackage ../tools/X11/xkeysnail { };
|
||||
|
||||
xfstests = callPackage ../tools/misc/xfstests { };
|
||||
|
||||
xprintidle-ng = callPackage ../tools/X11/xprintidle-ng {};
|
||||
|
|
Loading…
Reference in New Issue