Переключение скрипта LUA Logitech G Hub в соответствии с последним состоянием

Только что получил новую мышь Logitech, я хотел бы написать сценарий для переключения между состояниями. По сути, кнопка мыши циклически перебирает то, что она выводит. Я никогда раньше не создавал lua-скрипт, так что некоторая помощь будет признательна. По сути, пример того, что я хочу, это

    #set default state
    state = F9;
    if (state == f9)
    when mouse4 is pressed send f10
    state = f10;

    if (state == f10)
    when mouse4 is pressed send f9
    state = f9;

Я надеюсь, что в этом есть смысл. Если есть способ сделать это с помощью сценариев lua Logitech G Hub, было бы замечательно, если бы кто-нибудь мог показать мне, как должен выглядеть сценарий. Я полагаю, что это может сделать либо этот, либо даже Auto Hot Key.

РЕДАКТИРОВАТЬ: Спасибо, Егор, хорошо, поэтому я собрал версию, которая работает (или должна работать) с двумя кнопками. Я пытаюсь сделать то, что вы нажимаете кнопку мыши 11, и она переключается между возвратом f7 или f8 в зависимости от того, что вернуло в последний раз. Я добавил еще одну кнопку, мышь 10, которая затем должна переключаться между f7 и f9, также в зависимости от того, что было нажато последним. Однако по какой-то причине раздел для мыши 11 не переключается между ними и возвращает только f9.

local current_state_m4 = "f7"
local next_state_m4 = {f8 = "f7", f7 = "f8"}

local current_state_m5 = "f9"
local next_state_m5 = {f9 = "f7", f7 = "f9"}

function OnEvent(event, arg)
   if event == "MOUSE_BUTTON_PRESSED" and arg == 11 then
    PressKey(current_state_m4)
    Sleep(30)
    ReleaseKey(current_state_m4)
    current_state_m4 = next_state_m4[current_state_m4]

    elseif event == "MOUSE_BUTTON_PRESSED" and arg == 10 then
    PressKey(current_state_m5)
    Sleep(30)
    ReleaseKey(current_state_m5)
    current_state_m4 = next_state_m5[current_state_m5]
  end
end


person technolio    schedule 13.04.2020    source источник
comment
У вас опечатка.   -  person Egor Skriptunoff    schedule 14.04.2020