Also output layout state in kitty @ ls
This commit is contained in:
parent
cf0b2389a3
commit
518057489c
@ -5,8 +5,8 @@
|
||||
from functools import partial
|
||||
from itertools import repeat
|
||||
from typing import (
|
||||
Dict, Generator, Iterable, Iterator, List, NamedTuple, Optional, Sequence,
|
||||
Tuple
|
||||
Any, Dict, Generator, Iterable, Iterator, List, NamedTuple, Optional,
|
||||
Sequence, Tuple
|
||||
)
|
||||
|
||||
from kitty.borders import BorderColor
|
||||
@ -380,3 +380,6 @@ class Layout:
|
||||
|
||||
def layout_action(self, action_name: str, args: Sequence[str], all_windows: WindowList) -> Optional[bool]:
|
||||
pass
|
||||
|
||||
def layout_state(self) -> Dict[str, Any]:
|
||||
return {}
|
||||
|
||||
@ -6,7 +6,7 @@ from functools import lru_cache
|
||||
from itertools import repeat
|
||||
from math import ceil, floor
|
||||
from typing import (
|
||||
Callable, Dict, Generator, List, Optional, Sequence, Set, Tuple
|
||||
Any, Callable, Dict, Generator, List, Optional, Sequence, Set, Tuple
|
||||
)
|
||||
|
||||
from kitty.borders import BorderColor
|
||||
@ -294,3 +294,9 @@ class Grid(Layout):
|
||||
'left': side(row, col, -1) if col else [],
|
||||
'right': side(row, col, 1) if col < ncols - 1 else [],
|
||||
}
|
||||
|
||||
def layout_state(self) -> Dict[str, Any]:
|
||||
return {
|
||||
'biased_cols': self.biased_cols,
|
||||
'biased_rows': self.biased_rows
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# License: GPLv3 Copyright: 2020, Kovid Goyal <kovid at kovidgoyal.net>
|
||||
|
||||
from typing import (
|
||||
Collection, Dict, Generator, List, NamedTuple, Optional, Sequence, Tuple,
|
||||
Any, Collection, Dict, Generator, List, NamedTuple, Optional, Sequence, Tuple,
|
||||
Union
|
||||
)
|
||||
|
||||
@ -546,3 +546,21 @@ class Splits(Layout):
|
||||
if swap:
|
||||
pair.one, pair.two = pair.two, pair.one
|
||||
return True
|
||||
|
||||
def layout_state(self) -> Dict[str, Any]:
|
||||
|
||||
def add_pair(p: Pair) -> Dict[str, Any]:
|
||||
ans: Dict[str, Any] = {}
|
||||
ans['horizontal'] = p.horizontal
|
||||
ans['bias'] = p.bias
|
||||
if isinstance(p.one, Pair):
|
||||
ans['one'] = add_pair(p.one)
|
||||
elif p.one is not None:
|
||||
ans['one'] = p.one
|
||||
if isinstance(p.two, Pair):
|
||||
ans['two'] = add_pair(p.two)
|
||||
elif p.one is not None:
|
||||
ans['two'] = p.two
|
||||
return ans
|
||||
|
||||
return {'pairs': add_pair(self.pairs_root)}
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# License: GPLv3 Copyright: 2020, Kovid Goyal <kovid at kovidgoyal.net>
|
||||
|
||||
from itertools import islice, repeat
|
||||
from typing import Dict, Generator, List, Optional, Sequence, Tuple
|
||||
from typing import Any, Dict, Generator, List, Optional, Sequence, Tuple
|
||||
|
||||
from kitty.borders import BorderColor
|
||||
from kitty.conf.utils import to_bool
|
||||
@ -278,6 +278,13 @@ class Tall(Layout):
|
||||
)
|
||||
yield from perp_borders[1:-1]
|
||||
|
||||
def layout_state(self) -> Dict[str, Any]:
|
||||
return {
|
||||
'num_full_size_windows': self.num_full_size_windows,
|
||||
'main_bias': self.main_bias,
|
||||
'biased_map': self.biased_map
|
||||
}
|
||||
|
||||
|
||||
class Fat(Tall):
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# vim:fileencoding=utf-8
|
||||
# License: GPLv3 Copyright: 2020, Kovid Goyal <kovid at kovidgoyal.net>
|
||||
|
||||
from typing import Dict, Generator, Iterable, List, Tuple
|
||||
from typing import Any, Dict, Generator, Iterable, List, Tuple
|
||||
|
||||
from kitty.borders import BorderColor
|
||||
from kitty.types import Edges
|
||||
@ -130,6 +130,9 @@ class Vertical(Layout):
|
||||
return {'left': before, 'right': after, 'top': [], 'bottom': []}
|
||||
return {'top': before, 'bottom': after, 'left': [], 'right': []}
|
||||
|
||||
def layout_state(self) -> Dict[str, Any]:
|
||||
return {'biased_map': self.biased_map}
|
||||
|
||||
|
||||
class Horizontal(Vertical):
|
||||
|
||||
|
||||
@ -38,6 +38,7 @@ class TabDict(TypedDict):
|
||||
is_focused: bool
|
||||
title: str
|
||||
layout: str
|
||||
layout_state: Dict[str, Any]
|
||||
windows: List[WindowDict]
|
||||
active_window_history: List[int]
|
||||
|
||||
@ -671,6 +672,7 @@ class TabManager: # {{{
|
||||
'is_focused': tab is active_tab,
|
||||
'title': tab.name or tab.title,
|
||||
'layout': str(tab.current_layout.name),
|
||||
'layout_state': tab.current_layout.layout_state(),
|
||||
'windows': list(tab.list_windows(active_window, self_window)),
|
||||
'active_window_history': list(tab.windows.active_window_history),
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user