Skip to content

Instantly share code, notes, and snippets.

@juzam
Last active January 4, 2019 14:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juzam/a2ffd87d763f8bb7fa320b0732b6d951 to your computer and use it in GitHub Desktop.
Save juzam/a2ffd87d763f8bb7fa320b0732b6d951 to your computer and use it in GitHub Desktop.
Keybow Custom Layout
require "keybow"
alt = 0 -- used to cycle key 11
function modifier(key, ...)
for i = 1, select('#', ...) do
local j = select(i, ...)
keybow.set_modifier(j, keybow.KEY_DOWN)
end
keybow.tap_key(key)
for i = 1, select('#', ...) do
local j = select(i, ...)
keybow.set_modifier(j, keybow.KEY_UP)
end
end
function setup()
keybow.auto_lights(false)
keybow.clear_lights()
math.randomseed(os.time())
--[[
-- startup lights ??
pixels = {9, 6, 3, 0}
for pix = 1, 4 do
keybow.set_pixel(pixels[pix], math.random(255), math.random(255), math.random(255))
keybow.sleep(1000)
keybow.clear_lights()
end
]]
end
--- Juzam Custom Layout ---
--- Landscape mode ----
--- 11 8 5 2
--- 10 7 4 1
--- 9 6 3 0
--- Top Row
-- 11 Browser: ^ "Vimium: visitPreviousTab"
-- 8 Tmux: CTRL+b+s "tmux sync panels"
-- 5 Tmux: CTRL+b CTRL+b "tmux switch to last window"
-- 2 Win: Win+Space "Win: change keyboard lang"
--[[
function handle_key_11(pressed) -- Chrome: cycle CTRL+1 / CTRL+2
if pressed then
keybow.clear_lights()
keybow.set_pixel(11, math.random(255), math.random(255), math.random(255))
if ( alt == 0 ) then
modifier("1",keybow.LEFT_CTRL)
alt = 1
else
modifier("2",keybow.LEFT_CTRL)
alt = 0
end
end
end
]]
function handle_key_11(pressed) -- Chrome: cycle CTRL+1 / CTRL+2
keybow.set_key("^", pressed)
end
function handle_key_08(pressed) -- tmux sync panels
if pressed then
modifier("b",keybow.LEFT_CTRL)
keybow.sleep(500)
keybow.tap_key("s")
keybow.clear_lights()
keybow.set_pixel(08, math.random(255), math.random(255), math.random(255))
end
end
function handle_key_05(pressed) -- tmux switch to last window CTLR+b CTRL+b
if pressed then
modifier("b",keybow.LEFT_CTRL)
modifier("b",keybow.LEFT_CTRL)
keybow.clear_lights()
keybow.set_pixel(05, math.random(255), math.random(255), math.random(255))
end
end
function handle_key_02(pressed) -- Win: swap keyboard lang
if pressed then
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_DOWN)
keybow.tap_space()
keybow.sleep(750)
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_UP)
keybow.clear_lights()
keybow.set_pixel(02, math.random(255), math.random(255), math.random(255))
end
end
--- Middle Row - Tmux Windows 1 .. 4
function handle_key_10(pressed) -- tmux win 1
if pressed then
modifier("b",keybow.LEFT_CTRL)
keybow.tap_key("1", pressed)
keybow.clear_lights()
keybow.set_pixel(10, math.random(255), math.random(255), math.random(255))
end
end
function handle_key_07(pressed) -- tmux win 2
if pressed then
modifier("b",keybow.LEFT_CTRL)
keybow.tap_key("2", pressed)
keybow.clear_lights()
keybow.set_pixel(07, math.random(255), math.random(255), math.random(255))
end
end
function handle_key_04(pressed) -- tmux win 3
if pressed then
modifier("b",keybow.LEFT_CTRL)
keybow.tap_key("3", pressed)
keybow.clear_lights()
keybow.set_pixel(04, math.random(255), math.random(255), math.random(255))
end
end
function handle_key_01(pressed) -- tmux win 4
if pressed then
modifier("b",keybow.LEFT_CTRL)
keybow.tap_key("4", pressed)
keybow.clear_lights()
keybow.set_pixel(01, math.random(255), math.random(255), math.random(255))
end
end
--- Bottom Row - switch/launch pinned taskbar items
-- 9 Win: launch/switch to Outlook (win+2)
-- 6 Win: launch/switch to Firefox (win+7)
-- 3 Win: launch/switch to Chrome (win+8)
-- 0 Win: launch/switch to Swan (win+6)
function handle_key_09(pressed) -- Outlook
if pressed then
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_DOWN)
keybow.tap_key("2", pressed)
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_UP)
end
keybow.clear_lights()
keybow.set_pixel(09, math.random(255), math.random(255), math.random(255))
end
function handle_key_06(pressed) -- Firefox
if pressed then
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_DOWN)
keybow.tap_key("7", pressed)
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_UP)
keybow.clear_lights()
keybow.set_pixel(06, math.random(255), math.random(255), math.random(255))
end
end
function handle_key_03(pressed) -- Chrome
if pressed then
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_DOWN)
keybow.tap_key("8", pressed)
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_UP)
keybow.clear_lights()
keybow.set_pixel(03, math.random(255), math.random(255), math.random(255))
end
end
function handle_key_00(pressed) -- Swan
if pressed then
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_DOWN)
keybow.tap_key("6", pressed)
keybow.set_modifier(keybow.LEFT_META, keybow.KEY_UP)
keybow.clear_lights()
keybow.set_pixel(00, math.random(255), math.random(255), math.random(255))
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment