diff --git a/sdcard/keys.lua b/sdcard/keys.lua index 5652466..44a6b7d 100644 --- a/sdcard/keys.lua +++ b/sdcard/keys.lua @@ -1,6 +1,7 @@ require "keybow" require "layouts/shift" -- for cycling between layouts. require "layouts/media-player" -- indispensable media player controls. -require "layouts/vsc-golang" -- debugging Go programs in VisualStudio Code. -require "layouts/kdenlive" -- editing video using Kdenlive. +--require "layouts/vsc-golang" -- debugging Go programs in VisualStudio Code. +--require "layouts/kdenlive" -- editing video using Kdenlive. +require "layouts/numpad" -- numpad with shift layout require "layouts/empty" -- empty, do-nothing layout. diff --git a/sdcard/layouts/media-player.lua b/sdcard/layouts/media-player.lua index f67e40f..a12ceba 100644 --- a/sdcard/layouts/media-player.lua +++ b/sdcard/layouts/media-player.lua @@ -66,6 +66,11 @@ mplay.keymap = { [mplay.KEY_MUTE] = { c={r=0.5, g=0.1, b=0.1}, press=function() mb.tap(keybow.MEDIA_MUTE) end}, [mplay.KEY_VOLDN] = { c={r=0.5, g=0.5, b=0.5}, press=function() mb.tap(keybow.MEDIA_VOLUMEDOWN) end}, [mplay.KEY_VOLUP] = { c={r=1, g=1, b=1}, press=function() mb.tap(keybow.MEDIA_VOLUMEUP) end}, + + [10] = { c={r=0, g=1, b=0}, press=function() mb.tap(keybow.ESC) end}, --exit fullscreen on most players + [9] = { c={r=0, g=1, b=0}, press=function() mb.tap(keybow.SPACE) end}, --pause on web eg. plex + + } mb.register_keymap(mplay.keymap) diff --git a/sdcard/layouts/numpad.lua b/sdcard/layouts/numpad.lua new file mode 100644 index 0000000..24c4a5d --- /dev/null +++ b/sdcard/layouts/numpad.lua @@ -0,0 +1,82 @@ +local km = _G.km or {} +local mb = require("snippets/multibow") + +--[[ +The Keybow layout is as follows when in landscape orientation, with the USB +cable going off "northwards": + + ┋┋ +┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ +┊ A1 ┊ ┊ B1 ┊ ┊ C1 ┊ ┊ D1 ┊ +└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ +┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ +┊ A2 ┊ ┊ B2 ┊ ┊ C2 ┊ ┊ D2 ┊ +└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ +┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ +┊ A3 ┊ ┊ B3 ┊ ┊ C3 ┊ ┊ D3 ┊ +└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ + +]]-- +-- Instead of using 0 to 11, i renamed them to row/colums +km.A1 = km.A1 or 11 +km.A2 = km.A2 or 10 +km.A3 = km.A3 or 9 + +km.B1 = km.B1 or 8 +km.B2 = km.B2 or 7 +km.B3 = km.B3 or 6 + +km.C1 = km.C1 or 5 +km.C2 = km.C2 or 4 +km.C3 = km.C3 or 3 + +km.D1 = km.D1 or 2 +km.D2 = km.D2 or 1 +km.D3 = km.D3 or 0 + +-- Setup shift key +function km.unshift(_) + mb.activate_keymap(km.keymap.name) +end + +-- The keymap layout... +km.keymap = { + name="numpad", + -- A1 is the shift key, so we skip that + [km.A2] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("0") end}, + [km.A3] = { c={r=0, g=0, b=1}, press=function() mb.tap(keybow.ENTER) end}, + [km.B1] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("9") end}, + [km.B2] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("6") end}, + [km.B3] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("3") end}, + [km.C1] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("8") end}, + [km.C2] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("5") end}, + [km.C3] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("2") end}, + [km.D1] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("7") end}, + [km.D2] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("4") end}, + [km.D3] = { c={r=0, g=1, b=0.5}, press=function() mb.tap("1") end}, +} + +km.keymap_shifted = { + name="numpad-shifted", + secondary=true, + + [km.A2] = { c={r=0, g=1, b=0}, press=function() mb.tap(".") end}, + [km.A3] = { c={r=0, g=1, b=0}, press=function() mb.tap(",") end}, + [km.B1] = { c={r=0, g=1, b=1}, press=function() mb.tap("+") end}, + [km.C1] = { c={r=0, g=1, b=1}, press=function() mb.tap("-") end}, + [km.D1] = { c={r=0, g=1, b=1}, press=function() mb.tap("=") end}, + [km.B2] = { c={r=0, g=1, b=1}, press=function() mb.tap("/") end}, + [km.C2] = { c={r=0, g=1, b=1}, press=function() mb.tap("%") end}, + [km.D2] = { c={r=1, g=1, b=0}, press=function() mb.tap("$") end}, + [km.B3] = { c={r=1, g=0, b=0}, press=function() mb.tap(keybow.BACKSPACE) end}, + [km.C3] = { c={r=1, g=0, b=0}, press=function() mb.tap(keybow.DELETE) end}, + --[km.D3] = { c={r=0.5, g=0.5, b=1}, press=function() mb.tap(keybow.ESC) end}, + + [-1] = {release=km.unshift}, +} +km.keymap.shift_to = km.keymap_shifted +km.keymap_shifted.shift_to = km.keymap + +mb.register_keymap(km.keymap) +mb.register_keymap(km.keymap_shifted) +