Skip to content

Commit

Permalink
Add window_id and window_title fields to --match-tab
Browse files Browse the repository at this point in the history
  • Loading branch information
kovidgoyal committed Dec 20, 2020
1 parent 3ce04c3 commit c3c5a54
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
7 changes: 7 additions & 0 deletions kitty/boss.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,13 @@ def match_tabs(self, match: str) -> Generator[Tab, None, None]:
if tab.matches(field, pat):
yield tab
found = True
elif field in ('window_id', 'window_title'):
wf = field.split('_')[1]
tabs = {self.tab_for_window(w) for w in self.match_windows(f'{wf}:{exp}')}
for q in tabs:
if q:
found = True
yield q
if not found:
tabs = {self.tab_for_window(w) for w in self.match_windows(match)}
for q in tabs:
Expand Down
6 changes: 4 additions & 2 deletions kitty/rc/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,14 @@ def __call__(self, key: str, opt_name: Optional[str] = None, missing: Any = None
MATCH_TAB_OPTION = '''\
--match -m
The tab to match. Match specifications are of the form:
:italic:`field:regexp`. Where field can be one of: id, title, pid, cwd, env, cmdline.
:italic:`field:regexp`. Where field can be one of:
id, title, window_id, window_title, pid, cwd, env, cmdline.
You can use the :italic:`ls` command to get a list of tabs. Note that for
numeric fields such as id and pid the expression is interpreted as a number,
not a regular expression. When using title or id, first a matching tab is
looked for and if not found a matching window is looked for, and the tab
for that window is used.
for that window is used. You can also use window_id and window_title to match
the tab that contains the window with the specified id or title.
'''


Expand Down

0 comments on commit c3c5a54

Please sign in to comment.