Created
February 14, 2013 16:26
-
-
Save StefanoRausch/4953979 to your computer and use it in GitHub Desktop.
Sublime : 2 Columns Layout Management
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ "keys" : [ "alt+1" ], "command" : "focus_group", "args" : { "group" : 0 } }, | |
{ "keys" : [ "alt+2" ], "command" : "focus_group", "args" : { "group" : 1 } }, | |
{ // workspace left | |
"keys" : [ "ctrl+alt+super+left" ], | |
"command" : "run_multiple_commands", | |
"args" : { | |
"commands" : [ | |
{ | |
"command" : "set_layout", | |
"args" : { | |
"cols" : [ 0.0, 0.80, 1.0 ], | |
"rows" : [ 0.0, 1.0 ], | |
"cells" : [ [ 0, 0, 1, 1 ], [ 1, 0, 2, 1 ] ] | |
}, | |
"context" : "window" | |
}, | |
{ "command" : "focus_group", "args" : { "group" : 0 }, "context" : "window" } | |
] | |
} | |
}, | |
{ // fetch from the right | |
"keys" : [ "ctrl+alt+left" ], | |
"command" : "run_multiple_commands", | |
"args" : { | |
"commands" : [ | |
{ // give visual feedback due to change of focus, if coming from the right | |
"command" : "set_layout", | |
"args" : { | |
"cols" : [ 0.0, 0.80, 1.0 ], | |
"rows" : [ 0.0, 1.0 ], | |
"cells" : [ [ 0, 0, 1, 1 ], [ 1, 0, 2, 1 ] ] | |
}, | |
"context" : "window" | |
}, | |
{ "command" : "focus_group", "args" : { "group" : 1 }, "context" : "window" }, | |
{ "command" : "move_to_group", "args" : { "group" : 0 }, "context" : "window" }, | |
{ "command" : "focus_group", "args" : { "group" : 0 }, "context" : "window" } | |
] | |
} | |
}, | |
{ // put to the right | |
"keys" : [ "ctrl+alt+right" ], | |
"command" : "run_multiple_commands", | |
"args" : { | |
"commands" : [ | |
{ // give visual feedback due to change of focus, if coming from the right | |
"command" : "set_layout", | |
"args" : { | |
"cols" : [ 0.0, 0.80, 1.0 ], | |
"rows" : [ 0.0, 1.0 ], | |
"cells" : [ [ 0, 0, 1, 1 ], [ 1, 0, 2, 1 ] ] | |
}, | |
"context" : "window" | |
}, | |
{ "command" : "focus_group", "args" : { "group" : 0 }, "context" : "window" }, | |
{ "command" : "move_to_group", "args" : { "group" : 1 }, "context" : "window" }, | |
{ "command" : "focus_group", "args" : { "group" : 0 }, "context" : "window" } | |
] | |
} | |
}, | |
{ // workspace right | |
"keys" : [ "ctrl+alt+super+right" ], | |
"command" : "run_multiple_commands", | |
"args" : { | |
"commands" : [ | |
{ | |
"command" : "set_layout", | |
"args" : { | |
"cols" : [ 0.0, 0.20, 1.0 ], | |
"rows" : [ 0.0, 1.0 ], | |
"cells" : [ [ 0, 0, 1, 1 ], [ 1, 0, 2, 1 ] ] | |
}, | |
"context" : "window" | |
}, | |
{ "command" : "focus_group", "args" : { "group" : 1 }, "context" : "window" } | |
] | |
} | |
}, | |
{ // fetch from the left | |
"keys" : [ "alt+super+right" ], | |
"command" : "run_multiple_commands", | |
"args" : { | |
"commands" : [ | |
{ // give visual feedback due to change of focus, if coming from the left | |
"command" : "set_layout", | |
"args" : { | |
"cols" : [ 0.0, 0.20, 1.0 ], | |
"rows" : [ 0.0, 1.0 ], | |
"cells" : [ [ 0, 0, 1, 1 ], [ 1, 0, 2, 1 ] ] | |
}, | |
"context" : "window" | |
}, | |
{ "command" : "focus_group", "args" : { "group" : 0 }, "context" : "window" }, | |
{ "command" : "move_to_group", "args" : { "group" : 1 }, "context" : "window" }, | |
{ "command" : "focus_group", "args" : { "group" : 1 }, "context" : "window" } | |
] | |
} | |
}, | |
{ // put to the left | |
"keys" : [ "alt+super+left" ], | |
"command" : "run_multiple_commands", | |
"args" : { | |
"commands" : [ | |
{ // give visual feedback due to change of focus, if coming from the left | |
"command" : "set_layout", | |
"args" : { | |
"cols" : [ 0.0, 0.20, 1.0 ], | |
"rows" : [ 0.0, 1.0 ], | |
"cells" : [ [ 0, 0, 1, 1 ], [ 1, 0, 2, 1 ] ] | |
}, | |
"context" : "window" | |
}, | |
{ "command" : "focus_group", "args" : { "group" : 1 }, "context" : "window" }, | |
{ "command" : "move_to_group", "args" : { "group" : 0 }, "context" : "window" }, | |
{ "command" : "focus_group", "args" : { "group" : 1 }, "context" : "window" } | |
] | |
} | |
} | |
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# run_multiple_commands.py | |
import sublime, sublime_plugin | |
# Takes an array of commands (same as those you'd provide to a key binding) with | |
# an optional context (defaults to view commands) & runs each command in order. | |
# Valid contexts are 'text', 'window', and 'app' for running a TextCommand, | |
# WindowCommands, or ApplicationCommand respectively. | |
class RunMultipleCommandsCommand(sublime_plugin.TextCommand): | |
def exec_command(self, command): | |
if not 'command' in command: | |
raise Exception('No command name provided.') | |
args = None | |
if 'args' in command: | |
args = command['args'] | |
# default context is the view since it's easiest to get the other contexts | |
# from the view | |
context = self.view | |
if 'context' in command: | |
context_name = command['context'] | |
if context_name == 'window': | |
context = context.window() | |
elif context_name == 'app': | |
context = sublime | |
elif context_name == 'text': | |
pass | |
else: | |
raise Exception('Invalid command context "'+context_name+'".') | |
# skip args if not needed | |
if args is None: | |
context.run_command(command['command']) | |
# uncomment the next line, if you want to add a delay to the execution | |
# sublime.set_timeout( lambda: context.run_command(command['command']), 2000 ) | |
else: | |
context.run_command(command['command'], args) | |
# uncomment the next line, if you want to add a delay to the execution | |
# sublime.set_timeout( lambda: context.run_command(command['command'], args), 2000 ) | |
def run(self, edit, commands = None): | |
if commands is None: | |
return # not an error | |
for command in commands: | |
self.exec_command(command) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Works on ST3, thanks for sharing mate!