Skip to content

Instantly share code, notes, and snippets.

@trevren11
Last active September 20, 2023 07:48
Show Gist options
  • Save trevren11/a4099bfc650643de6aaff223a046851a to your computer and use it in GitHub Desktop.
Save trevren11/a4099bfc650643de6aaff223a046851a to your computer and use it in GitHub Desktop.
LuaMacros examples for second keyboard for use with debugging and android studio
-- assign logical name to macro keyboard
-- lmc_assign_keyboard('MACROS')
-- lmc_minimize();
-- lmc_reset();
lmc_say('Loading keyboard configuration')
lmc.minimizeToTray = false
-- lmc_minimize()
-- lmc_load('E:\\lmc.lua')
-- The function returns title of active window. Useful if you want different behaviour of macros depending of active application.
-- lmc_get_window_title()
clear();
-- get device names, regex matches on device id
-- dev = lmc_get_devices()
-- for key,value in pairs(dev) do
-- print(key..':')
-- for key2,value2 in pairs(value) do print(' '..key2..' = '..value2) end
-- end
lmc_device_set_name('MACROS', 'FEF860')
lmc_print_devices();
-- define callback for whole device
lmc_set_handler(
'MACROS',
function(button, direction)
if (direction == 1) then -- then return end -- ignore down
if (button == string.byte('N')) then
lmc_spawn('code.cmd') -- controls above arrow keys, top left to right
-- ^ = Control
-- % = Alt
-- + = Shift
-- # = Win
-- & = Tab
elseif (button == 45) then
lmc_send_keys('^{F8}') -- insert->toggle line breakpoint
elseif (button == 36) then
lmc_send_keys('^%+{1}') -- home->restart activity
elseif (button == 33) then
lmc_send_keys('%{F8}') -- page up->evaluate expression
elseif (button == 46) then
lmc_send_keys('+{F9}') -- delete->debug
lmc_say('Let\'s Debug!')
elseif (button == 35) then
lmc_send_keys('+{F10}') -- end->run application
lmc_say('Run app')
elseif (button == 34) then
lmc_send_keys('{F9}') -- page down->continue
elseif (button == 37) then
lmc_send_keys('^%+1') -- restart activity
lmc_say('Restart activity')
elseif (button == 38) then
lmc_send_keys('+{F8}') -- step out
elseif (button == 39) then
lmc_send_keys('{F8}') -- step over
elseif (button == 40) then
lmc_send_keys('{F7}') -- step into
-- number keys
elseif (button == 49) then
lmc_send_keys('^+1') -- 1->ctrl shift 1
-- regular keys (a-z)
elseif (button == 65) then
lmc_send_keys('^+{A}') -- a->ctrl shift a
elseif (button == 90) then
lmc_send_keys('^z') -- z->undo
elseif (button == 88) then
lmc_send_keys('^x') -- x->cut
elseif (button == 67) then
lmc_send_keys('^c') -- c->copy
elseif (button == 86) then
lmc_send_keys('^v') -- v->paste
elseif (button == 76) then
lmc_send_keys('^%({DEL})') -- v-> ctrl alt del then enter
lmc_say('logging out')
elseif (button == 81) then -- q-> clear all consoles android studio
lmc_send_keys('^%+{F4}') -- s->select all + copy
elseif (button == 83) then
lmc_send_keys('^a^c') -- s->select all + copy
elseif (button == 68) then
lmc_send_keys('^a^v') -- d->select all + paste
-- change desktop
elseif (button == 100) then
lmc_send_keys('#^{LEFT}') -- move desktop back, left arrow
elseif (button == 102) then
lmc_send_keys('#^{RIGHT}') -- move desktop forward screen, right arrow
elseif (button == 104) then
lmc_send_keys('#{TAB}') -- move desktop forward screen, up arrow
-- media controls
elseif (button == 116) then
lmc_say('spotify')
elseif (button == 117) then
lmc_send_input(0xaf, 0, 0)
lmc_say('amazon music')
elseif (button == 118) then
lmc_send_input(0xb0, 0, 0) -- f7
lmc_say('previous track') --
elseif (button == 119) then
lmc_send_input(0xb1, 0, 0) -- f8
lmc_say('next track') --
elseif (button == 191) then
lmc_send_input(0xb1, 0, 0) -- f8
lmc_send_keys('^/')
elseif (button == 192) then -- ~ key
-- open desktop views, same as 8 key on num pad
lmc_send_keys('#{TAB}')
else
print('Not yet assigned: ' .. button)
end
elseif (direction == 0) then
-- to easily see which button is being pushed
print('button up : ' .. button)
end
return
end
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment