110 lines
6.9 KiB
Nix
110 lines
6.9 KiB
Nix
|
{
|
||
|
inputs = {
|
||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||
|
from-yaml ={
|
||
|
url = "github:pegasust/fromYaml";
|
||
|
flake = false;
|
||
|
};
|
||
|
};
|
||
|
outputs = {nixpkgs,from-yaml, ...}: let
|
||
|
system = "x86_64-linux";
|
||
|
pkgs = import nixpkgs {inherit system;};
|
||
|
lib = {
|
||
|
fromYaml = import "${from-yaml}/fromYaml.nix" {lib = pkgs.lib;};
|
||
|
};
|
||
|
in {
|
||
|
inherit nixpkgs;
|
||
|
inherit from-yaml;
|
||
|
inherit lib;
|
||
|
inherit pkgs;
|
||
|
fromYamlFn = lib.fromYaml;
|
||
|
yamlCmd = str: (builtins.fromJSON(pkgs.runCommand "echo ${str} | yq"));
|
||
|
test_0 = ''
|
||
|
key_bindings:
|
||
|
- hello:
|
||
|
"N"
|
||
|
'';
|
||
|
key_bind = ''
|
||
|
key_bindings:
|
||
|
- { key: N, mods: Control, action: CreateNewWindow }
|
||
|
# - { key: Paste, action: Paste }
|
||
|
# - { key: Copy, action: Copy }
|
||
|
#- { key: L, mods: Control, action: ClearLogNotice }
|
||
|
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
||
|
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp }
|
||
|
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
||
|
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop }
|
||
|
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
||
|
|
||
|
# Vi Mode
|
||
|
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
|
||
|
- { key: Escape, mods: Shift, mode: ~Search, action: ToggleViMode }
|
||
|
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
|
||
|
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
|
||
|
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
|
||
|
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
|
||
|
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
|
||
|
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
|
||
|
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
|
||
|
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
|
||
|
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
|
||
|
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
|
||
|
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
|
||
|
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
|
||
|
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
|
||
|
#- { key: Y, mode: Vi|~Search, action: Copy }
|
||
|
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
|
||
|
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
|
||
|
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
|
||
|
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
|
||
|
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
|
||
|
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
|
||
|
#- { key: Return, mode: Vi|~Search, action: Open }
|
||
|
#- { key: Z, mode: Vi|~Search, action: CenterAroundViCursor }
|
||
|
#- { key: K, mode: Vi|~Search, action: Up }
|
||
|
#- { key: J, mode: Vi|~Search, action: Down }
|
||
|
#- { key: H, mode: Vi|~Search, action: Left }
|
||
|
#- { key: L, mode: Vi|~Search, action: Right }
|
||
|
#- { key: Up, mode: Vi|~Search, action: Up }
|
||
|
#- { key: Down, mode: Vi|~Search, action: Down }
|
||
|
#- { key: Left, mode: Vi|~Search, action: Left }
|
||
|
#- { key: Right, mode: Vi|~Search, action: Right }
|
||
|
#- { key: Key0, mode: Vi|~Search, action: First }
|
||
|
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
|
||
|
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
|
||
|
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
|
||
|
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
|
||
|
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
|
||
|
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
|
||
|
#- { key: W, mode: Vi|~Search, action: SemanticRight }
|
||
|
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
|
||
|
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
|
||
|
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
|
||
|
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
|
||
|
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
|
||
|
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
|
||
|
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
|
||
|
#- { key: N, mode: Vi|~Search, action: SearchNext }
|
||
|
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
|
||
|
|
||
|
# Search Mode
|
||
|
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
|
||
|
#- { key: Escape, mode: Search, action: SearchCancel }
|
||
|
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
|
||
|
#- { key: U, mods: Control, mode: Search, action: SearchClear }
|
||
|
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
|
||
|
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
|
||
|
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
|
||
|
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
|
||
|
#- { key: Down, mode: Search, action: SearchHistoryNext }
|
||
|
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
|
||
|
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
|
||
|
|
||
|
# (Windows, Linux, and BSD only)
|
||
|
- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
|
||
|
- { key: C, mods: Control|Shift, action: Copy }
|
||
|
'';
|
||
|
};
|
||
|
}
|
||
|
|