Skip to content

Commit 4ffe555

Browse files
committed
Fix Window.select_layout. Freeze 'layout' of windows
1 parent e8b550b commit 4ffe555

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

tmuxp/cli.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,9 @@ def setup_logger(logger=None, level='INFO'):
196196
logger = logging.getLogger()
197197
if not logger.handlers:
198198
channel = logging.StreamHandler()
199-
channel.setFormatter(log.LogFormatter())
199+
channel.setFormatter(log.DebugLogFormatter())
200+
201+
#channel.setFormatter(log.LogFormatter())
200202
logger.setLevel(level)
201203
logger.addHandler(channel)
202204

@@ -263,7 +265,11 @@ def load_workspace(config_file, args):
263265
builder.session.attach_session()
264266
return
265267
except Exception as e:
268+
import traceback
269+
270+
print(traceback.format_exc())
266271
logger.error(e)
272+
267273
choice = prompt_choices(
268274
'Error loading workspace. (k)ill, (a)ttach, (d)etach?',
269275
choices=['k', 'a', 'd'],

tmuxp/window.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,17 @@ def select_layout(self, layout=None):
110110
:param layout: string of the layout, 'even-horizontal', 'tiled', etc.
111111
:type layout: string
112112
'''
113-
self.tmux(
113+
114+
115+
proc = self.tmux(
114116
'select-layout',
117+
'-t%s:%s' % (self.get('session_id'), self.get('window_index')),
115118
layout
116119
)
117120

121+
if proc.stderr:
122+
raise Exception(proc.stderr)
123+
118124
@property
119125
def target(self):
120126
return "%s:%s" % (self.session.get('session_id'), self.get('window_id'))

tmuxp/workspacebuilder.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,9 @@ def build(self, session=None):
141141
assert(isinstance(p, Pane))
142142
p = p
143143

144-
if 'layout' in wconf:
145-
w.select_layout(wconf['layout'])
144+
if 'layout' in wconf:
145+
logger.error(wconf['layout'])
146+
w.select_layout(wconf['layout'])
146147

147148
def iter_create_windows(self, s):
148149
''' generator that creates tmux windows, yields :class:`Window` object
@@ -206,6 +207,10 @@ def iter_create_panes(self, w, wconf):
206207
p = w.attached_pane()
207208
assert(isinstance(p, Pane))
208209

210+
if 'layout' in wconf:
211+
logger.error(wconf['layout'])
212+
w.select_layout(wconf['layout'])
213+
209214
for cmd in pconf['shell_command']:
210215
p.send_keys(cmd)
211216

@@ -227,6 +232,7 @@ def freeze(session):
227232
wconf = {}
228233
wconf['options'] = w.show_window_options()
229234
wconf['window_name'] = w.get('window_name')
235+
wconf['layout'] = w.get('window_layout')
230236
wconf['panes'] = []
231237
logger.error(w)
232238
logger.error(dict(w))

0 commit comments

Comments
 (0)