Hammerspoon: применение фильтра в использовании - PullRequest
0 голосов
/ 22 января 2019

Я привязываю некоторые ключи для выполнения скрипта.Мне нужно активировать привязку только тогда, когда окно Visual Studio Code сфокусировано.

Я вижу функции фильтров Hammerspoon, но не понимаю, как их использовать.

Имя приложения: Code

hs.hotkey.bind({"ctrl"}, "b", function()
    local codeWindowFilter = hs.window.filter:setAppFilter('Code')
    codeWindowFilter:isAppAllowed("Code", function()

        mycode here

    end)
end)

но я получаю ошибку attempt to call a nil value (method 'setAppFilter')

Это правильный путь?Есть ли способ поместить все привязки в утвержденный фильтр?

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 01 февраля 2019

Окончательное решение таково:

local frontmostApplication = hs.application.frontmostApplication()

if frontmostApplication and frontmostApplication:name() == "Code" then

   {my code here}

end
0 голосов
/ 17 апреля 2019

Вы можете отфильтровать приложение, как это

    wf_terminal = hs.window.filter.new{'Terminal','iTerm2'}
    for _, win in ipairs(wf_terminal:getWindows()) do
        if win ~= nil and string.find(win:title(), "nvim") then
            moveWindowToLeftHalf(win)
            win:focus()
        end
    end
0 голосов
/ 22 января 2019

Согласно документации здесь (http://www.hammerspoon.org/docs/hs.window.filter.html):

Вы должны следовать этой структуре:

local wf=hs.window.filter
wf.default:setAppFilter('My IDE',{allowTitles=1})

OR

Создайте новый фильтр окна, как описано здесь:

Хотя вы можете настроить оконный фильтр по умолчанию, обычно рекомендуется выполнить настройку для локальной копии с помощью mywf = hs.window.filter.new (); оконный фильтр по умолчанию может потенциально использоваться в нескольких модулях Hammerspoon, и изменение его может иметь непредвиденные последствия ...

Следовательно, измените свой код на следующий:

local codeWindowFilter = hs.window.filter.new():setAppFilter('Code')

Метод .new () создает новый фильтр окна. : SetAppFilter вызывает метод для нового объекта, а затем возвращает измененный объект фильтра окна.

...