2017-10-18 2 views
0

Ich habe das Modul "undocumented spaces" von https://github.com/asmagill/hs._asm.undocumented.spaces installiert. Insbesondere stellt sie ein Verfahren moveWindowToSpace, die ich zu verwenden Ich versuche cmd+1 zu binden, die das aktuelle Fenster auf Platz 1 mit dem folgenden verschieben:Mit hammerspoon und dem Leerzeichen-Modul zum Verschieben des Fensters in einen neuen Raum

local spaces = require("hs._asm.undocumented.spaces") 
function MoveWindowToSpace(sp) 
    local spaceID = spaces.query()[sp] 
    spaces.moveWindowToSpace(hs.window.focusedWindow():id(), spaceID) 
    spaces.changeToSpace(spaceID) 
end 
hs.hotkey.bind({"cmd"}, "1",function() MoveWindowToSpace(1) end) 

Dies funktioniert in dem Sinne, dass er sich bewegt, das Fenster zu einem neuen Raum jedoch erscheinen die Räume in einer pseudozufälligen Reihenfolge.

Kann jemand spaceID s, wie von spaces.query() zurückgegeben, zu den tatsächlichen Räumen korrekt zuordnen?

Antwort

0

Nach einigen Hinweisen vom Autor des Spaces-Moduls habe ich folgendes gefunden, was den Trick zu tun scheint.

local spaces = require("hs._asm.undocumented.spaces") 
-- move current window to the space sp 
function MoveWindowToSpace(sp) 
    local win = hs.window.focusedWindow()  -- current window 
    local uuid = win:screen():spacesUUID()  -- uuid for current screen 
    local spaceID = spaces.layout()[uuid][sp] -- internal index for sp 
    spaces.moveWindwToSpace(win:id(), spaceID) -- move window to new space 
    spaces.changeToSpace(spaceID)    -- follow window to new space 
end 
hs.hotkey.bind(hyper, '1', function() MoveWindowToSpace(1) end) 

Früher eine Variation der Code bei https://github.com/Hammerspoon/hammerspoon/issues/235, die Haken in osx mit definierten Hotkeys für Räume Schalt Ich war, aber der Code oben ist viel schneller!

Verwandte Themen