diff --git a/examples/keybindings.js b/examples/keybindings.js index a9c6499..1275b5a 100644 --- a/examples/keybindings.js +++ b/examples/keybindings.js @@ -3,6 +3,27 @@ var Keybindings = Extension.imports.keybindings; var Main = imports.ui.main; var Tiling = Extension.imports.tiling; +function gotoByIndex() { + function goto(k) { + return () => { + let space = Tiling.spaces.get(global.screen.get_active_workspace()); + let metaWindow = space.getWindow(k, 0) + if (!metaWindow) + return; + + if (metaWindow.has_focus()) { + // Can happen when navigator is open + Tiling.ensureViewport(metaWindow); + } else { + Main.activateWindow(metaWindow); + } + } + } + for(let k = 1; k <= 9; k++) { + Keybindings.bindkey(`${k}`, `goto-coloumn-${i}`, + goto(k-1), {activeInNavigator: true}) + } +} function windowMarks() { var marks = {} @@ -26,10 +47,11 @@ function windowMarks() { } } - for(let k = 0; k < 9; k++) { - Keybindings.bindkey(`${k}`, gotoMark(k), {activeInNavigator: true}) - Keybindings.bindkey(`${k}`, setMark(k), - {activeInNavigator: true}) + for(let k = 0; k <= 9; k++) { + Keybindings.bindkey(`${k}`, `goto-mark-${k}`, + gotoMark(k), {activeInNavigator: true}) + Keybindings.bindkey(`${k}`, `set-mark-${k}`, + setMark(k), {activeInNavigator: true}) } }