TreeTab
¶
TreeTab(**config)
Bases: Layout
Tree Tab Layout.
This layout works just like Max but displays tree of the windows at the
left border of the screen_rect, which allows you to overview all opened windows.
It's designed to work with uzbl-browser
but works with other windows
too.
The panel at the left border contains sections, each of which contains windows. Initially the panel looks like flat lists inside its section, and looks like trees if some of the windows are "moved" left or right.
For example, it looks like below with two sections initially:
+------------+
|Section Foo |
+------------+
| Window A |
+------------+
| Window B |
+------------+
| Window C |
+------------+
|Section Bar |
+------------+
And then it will look like below if "Window B" is moved right and "Window C" is moved right too:
+------------+
|Section Foo |
+------------+
| Window A |
+------------+
| Window B |
+------------+
| Window C |
+------------+
|Section Bar |
+------------+
Methods:
-
add_client
–Called whenever a window is added to the group.
-
add_defaults
–Add defaults to this object, overwriting any which already exist.
-
add_section
–Add named section to tree.
-
blur
–Called whenever focus is gone from this layout.
-
clone
–Duplicate a layout.
-
command
–Return the command with the given name.
-
commands
–Returns a list of possible commands for this object.
-
configure
–Configure the layout.
-
del_section
–Remove named section from tree.
-
doc
–Returns the documentation for a specified command name.
-
eval
–Evaluates code in the same context as this function.
-
focus
–Called whenever the focus changes.
-
focus_first
–Called when the first client in Layout shall be focused.
-
focus_last
–Called when the last client in Layout shall be focused.
-
focus_next
–Called when the next client in Layout shall be focused.
-
focus_previous
–Called when the previous client in Layout shall be focused.
-
function
–Call a function with current object as argument.
-
hide
–Called when layout is being hidden.
-
info
–Returns a dictionary of layout information.
-
items
–Build a list of contained items for the given item class.
-
next
–Switch down in the window list.
-
previous
–Switch up in the window list.
-
remove
–Called whenever a window is removed from the group.
-
select
–Return a selected object.
-
show
–Called when layout is being shown.
-
sort_windows
–Sorts window to sections using sorter function.
-
swap
–Swap the two given clients c1 and c2.
Attributes:
-
group
(_Group
) –Returns the group this layout is attached to.
group
property
¶
group: _Group
Returns the group this layout is attached to.
Layouts start out unattached, and are attached when the group is configured and each layout is cloned for every group.
add_client
¶
add_client(win)
Called whenever a window is added to the group.
Called whether the layout is current or not. The layout should just add the window to its internal datastructures, without mapping or configuring.
add_defaults
¶
add_defaults(defaults)
Add defaults to this object, overwriting any which already exist.
clone
¶
clone(group: _Group) -> Self
Duplicate a layout.
Make a copy of this layout. This is done to provide each group with a unique instance of every layout.
Parameters:
-
group
(_Group
) –Group to attach new layout instance to.
command
¶
commands
¶
Returns a list of possible commands for this object.
Used by qsh for command completion and online help
configure
¶
configure(client: Window, screen_rect: ScreenRect) -> None
Configure the layout.
This method should:
- Configure the dimensions and borders of a window using the
.place()
method. - Call either
.hide()
or.unhide()
on the window.
doc
¶
doc(name) -> str
Returns the documentation for a specified command name.
Used by qsh to provide online help.
eval
¶
Evaluates code in the same context as this function.
Return value is tuple (success, result)
, success being a boolean and
result being a string representing the return value of eval, or None if
exec was used instead.
focus_first
¶
focus_first() -> Window | None
Called when the first client in Layout shall be focused.
This method should:
- Return the first client in Layout, if any.
- Not focus the client itself, this is done by caller.
focus_last
¶
focus_last() -> Window | None
Called when the last client in Layout shall be focused.
This method should:
- Return the last client in Layout, if any.
- Not focus the client itself, this is done by caller.
focus_next
¶
focus_next(client: Window) -> Window | None
Called when the next client in Layout shall be focused.
This method should:
- Return the next client in Layout, if any.
- Return None if the next client would be the first client.
- Not focus the client itself, this is done by caller.
Do not implement a full cycle here, because the Groups cycling relies on returning None here if the end of Layout is hit, such that Floating clients are included in cycle.
Parameters:
-
win
(Window
) –The currently focused client.
focus_previous
¶
focus_previous(client: Window) -> Window | None
Called when the previous client in Layout shall be focused.
This method should:
- Return the previous client in Layout, if any.
- Return None if the previous client would be the last client.
- Not focus the client itself, this is done by caller.
Do not implement a full cycle here, because the Groups cycling relies on returning None here if the end of Layout is hit, such that Floating clients are included in cycle.
Parameters:
-
win
(Window
) –The currently focused client.
function
¶
function(function, *args, **kwargs) -> None
Call a function with current object as argument.
items
¶
Build a list of contained items for the given item class.
Exposing this allows qsh to navigate the command graph.
Returns a tuple (root, items)
for the specified item class, where:
root: True if this class accepts a "naked" specification without an
item seletion (e.g. "layout" defaults to current layout), and False
if it does not (e.g. no default "widget").
items: a list of contained items
remove
¶
remove(win: Window) -> None
Called whenever a window is removed from the group.
Called whether the layout is current or not. The layout should just de-register the window from its data structures, without unmapping the window.
Returns the "next" window that should gain focus or None.
select
¶
select(selectors: list[SelectorType]) -> CommandObject
Return a selected object.
Recursively finds an object specified by a list of (name, selector)
items.
Raises SelectError if the object does not exist.
sort_windows
¶
Sorts window to sections using sorter function.
Parameters:
-
sorter
(Callable
) –Function accepting a single argument, and returning a string. The function should return the name of the section where the window should be.
-
create_sections
(bool
, default:True
) –If this parameter is True (default), and the sorter returns "unknown", the section name will be created dynamically.