From a699d5a03888247b3d909402482fd1bc33c45bb5 Mon Sep 17 00:00:00 2001 From: Klesh Wong Date: Mon, 23 May 2022 01:41:26 +0800 Subject: [PATCH] feat: added keyd --- cli/keyd.sh | 22 +++++++++++++++++++++ cli/keyd/default.conf | 45 +++++++++++++++++++++++++++++++++++++++++++ cli/keyd/run | 3 +++ 3 files changed, 70 insertions(+) create mode 100644 cli/keyd.sh create mode 100644 cli/keyd/default.conf create mode 100755 cli/keyd/run diff --git a/cli/keyd.sh b/cli/keyd.sh new file mode 100644 index 0000000..2d4a4fd --- /dev/null +++ b/cli/keyd.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e +DIR=$(dirname "$(readlink -f "$0")") +. "$DIR/../env.sh" + +log 'Setting up keyd' + +# setup package mirror for CHINA +case "$UNAMEA" in + *Ubuntu*) + ;; + *artix*) + yay -S keyd + sudo mkdir /etc/runit/sv/keyd/ + sudo cp "$DIR/keyd/run" /etc/runit/sv/keyd/ + sudo ln -s /etc/runit/sv/keyd/ /run/runit/service/ + ;; +esac + +# configuration +sudo cp "$DIR/keyd/default.conf" /etc/keyd/default.conf diff --git a/cli/keyd/default.conf b/cli/keyd/default.conf new file mode 100644 index 0000000..95dacd9 --- /dev/null +++ b/cli/keyd/default.conf @@ -0,0 +1,45 @@ +# NOTE: to use this, rename this file to default.conf and put in /etc/keyd/ + +# Advanced use of capslock as a triple function key: +# +# - when 'capslock' is tapped (pressed + released), it behaves as ESC key +# +# - when 'capslock' is held, and used in combination with another key, it +# behaves like a 'ctrl' key modifier (just like xcape) +# +# - when 'capslock' is held, and the 'space' key is tapped, we enter a 3rd +# state for "VIM mode" where hjkl keys become arrow keys until capslock +# is released. +# +[ids] +* + +[main] + +capslock = overload(vim_mode, `) + +# ctrl_vim modifier layer; inherits from 'Ctrl' modifier layer + +[ctrl_vim:C] + +space = swap(vim_mode) + +# vim_mode modifier layer; also inherits from 'Ctrl' modifier layer + +[vim_mode] + +h = left +j = down +k = up +l = right +# forward word +w = C-right +# backward word +b = C-left +u = C-pageup +i = C-pagedown +a = home +e = end +y = back +o = forward + diff --git a/cli/keyd/run b/cli/keyd/run new file mode 100755 index 0000000..8b73ff9 --- /dev/null +++ b/cli/keyd/run @@ -0,0 +1,3 @@ +#!/bin/sh +sv check keyd >/dev/null || exit 1 +exec /usr/bin/keyd >/dev/null