как можно вызвать функцию подкачки для макета monadtall внутри qshell для оконного менеджера qtile

(01) Я изучаю qtile/qshell (qtile-0.14.2), используя метод, предложенный в http://docs.qtile.org/en/latest/manual/hacking.html

(02) У меня есть макет monadtall, информация которого в qshell выглядит следующим образом

group['s'].layout> info
{'clients': ['howare',
             'you',
             'world',
             'hello',
             'ksridhar@ksridhar: ~/rapidinfo/repos/trial-arena/08'],
 'current': 0,
 'group': 's',
 'main': 'howare',
 'name': 'monadtall',
 'secondary': ['you',
               'world',
               'hello',
               'ksridhar@ksridhar: ~/rapidinfo/repos/trial-arena/08']}

(03) Теперь я хочу поменять местами окна "привет" и "мир". Я пробовал следующее

group['s'].layout> doc('swap')
swap(window1, window2)
Swap two windows

group['s'].layout> swap('hello', 'world')
Command exception: Traceback (most recent call last):
  File "/home/ksridhar/rapidinfo/repos/trial-arena/08/qtile-0.14.2/libqtile/command.py", line 95, in call
    return (SUCCESS, cmd(*args, **kwargs))
  File "/home/ksridhar/rapidinfo/repos/trial-arena/08/qtile-0.14.2/libqtile/layout/xmonad.py", line 692, in cmd_swap
    self.clients.swap(window1, window2, 1)
  File "/home/ksridhar/rapidinfo/repos/trial-arena/08/qtile-0.14.2/libqtile/layout/base.py", line 513, in swap
    i1 = self.clients.index(c1)
ValueError: 'hello' is not in list

Обратите внимание, что в предыдущей команде info (шаг (02)) были указаны имена окон hello и world на дополнительной панели.

(04) любая помощь по командной строке qtile-cmd также будет большим подспорьем.


Я новичок, и мои наблюдения могут быть глупыми, так что заранее простите меня. Я использую версию Qtile 0.14.2. Я вставил в код функцию отслеживания, чтобы прийти к следующему выводу.

Когда я смотрю файл layout/xmonad.py, я вижу следующее

(a) функции cmd_swap_left, cmd_swap_right, cmd_swap_main вызывают self.cmd_swap (win, target) прямо или косвенно не имеют аргументов и, таким образом, являются кандидатами на "сопоставление" ключей.

(b) функции cmd_swap_left, cmd_swap_right, cmd_swap_main при вызове self.cmd_swap (win, target) предоставляют значение типа Window

(c) Но когда функция cmd_swap вызывается через qshell 'call'

    group['s'].layout> swap('hello', 'world')

функция cmd_swap вызывается с аргументами типа 'str'!

Похоже, что функция cmd_swap() предназначалась для "внутреннего" использования и была раскрыта случайно!

Если я программист, пользователь qshell или qtile-cmd, как мне это преодолеть (т.е. вызвать команду swap)?

0 ответов

Другие вопросы по тегам