2022-11-09 11:35:28 +00:00
|
|
|
{
|
|
|
|
inputs = {
|
|
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
2023-01-13 06:42:21 +00:00
|
|
|
from-yaml = {
|
2022-11-09 11:35:28 +00:00
|
|
|
url = "github:pegasust/fromYaml";
|
|
|
|
flake = false;
|
|
|
|
};
|
|
|
|
};
|
2023-01-13 06:42:21 +00:00
|
|
|
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 }
|
2022-11-09 13:00:23 +00:00
|
|
|
|
2023-01-13 06:42:21 +00:00
|
|
|
# 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 }
|
2022-11-09 13:00:23 +00:00
|
|
|
|
2023-01-13 06:42:21 +00:00
|
|
|
# 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 }
|
2022-11-09 13:00:23 +00:00
|
|
|
|
2023-01-13 06:42:21 +00:00
|
|
|
# (Windows, Linux, and BSD only)
|
|
|
|
- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
|
|
|
|
- { key: C, mods: Control|Shift, action: Copy }
|
|
|
|
'';
|
|
|
|
};
|
2022-11-09 11:35:28 +00:00
|
|
|
}
|
|
|
|
|