From db24b6377c67006b9f1578ef073f50180442933a Mon Sep 17 00:00:00 2001 From: Florrie Date: Tue, 2 Apr 2019 08:29:10 -0300 Subject: Vim HJKL keybindings :) --- todo.txt | 4 ++++ ui.js | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/todo.txt b/todo.txt index c0a00e1..9d0fc15 100644 --- a/todo.txt +++ b/todo.txt @@ -119,6 +119,7 @@ TODO: A "remove from queue" option for tracks and groups, which removes them TODO: After the end of a shuffled queue, the next song from the group of the last track is played (and so on, until the group is empty). This seems definitely wrong. + (Done! At the end of a shuffle queue, it just stops now.) TODO: Show a preview of where "Jump to" will go while typing. (Done!) @@ -215,3 +216,6 @@ TODO: Don't store duplicate metadata entries (prereq for tags, custom metadata, TODO: Metadata process status bar. (Done!) + +TODO: Add Vim arrow keys. Please forgive me. + (Done!) diff --git a/ui.js b/ui.js index e78caa9..0be43e3 100644 --- a/ui.js +++ b/ui.js @@ -35,6 +35,17 @@ const { promisify } = require('util') const readFile = promisify(fs.readFile) const writeFile = promisify(fs.writeFile) +// Sneaky hack :) +const addKey = (prop, key) => { + const oldFunc = telc[prop] + telc[prop] = input => input.toString().toLowerCase() === key || oldFunc(input) +} + +addKey('isDown', 'j') +addKey('isUp', 'k') +addKey('isLeft', 'h') +addKey('isRight', 'l') + class AppElement extends FocusElement { constructor() { super() -- cgit 1.3.0-6-gf8a5