Цикл через клиенты на обоих экранах в awesomewm

Источник имел немного синтаксических ошибок, Таким образом, он даже не скомпилирует (самая низкая форма теста).

Если бы я понимаю правильно затем, что я был бы высоко удивлен, не имело ли это проблем. Нет, вероятно, никакого способа, которым Вы, возможно, исправили все ошибки путем фиксации ошибок компиляции, Вам будет нужно большое знание кода, и что изменилось (таким образом, можно сфокусироваться в).

6
14.01.2018, 13:46
2 ответа

Конечно, это!

Привязки клавиш в awesome управляются емкостно-резистивным файлом, который является на самом деле a lua сценарий. Привязки клавиш состоят просто в том, что, они связывают ключи к функциям lua. Вы свободны заставить функции сделать то, что Вы хотите, чтобы они сделали.

В Вашем случае Вы хотите связать те ключи к функции, которая изменяет активный тег на каждом экране, а не просто в настоящее время экран фокуса.

Прямо сейчас у Вас, вероятно, есть несколько строк, подобных этому в Вашей конфигурации:

awful.key({ modkey }, "j", awful.tag.viewprev )

... который делает примерно, на что это похоже.

То, что Вы собираетесь хотеть сделать, измениться, они от простой команды звонят в потрясающий API, чтобы быть небольшими функциями, которые выполняют несколько команд в последовательности. awful.tag.viewprev() и aweful.tag.viewnext() функции удобно берут дополнительный аргумент какой экран воздействовать на. По умолчанию они работают над текущим, но можно переопределить это.

Например, для выполнения того же самого на обоих экранах 1 и 2 вышеупомянутая строка могла бы быть изменена на это:

awful.key({ modkey }, "j", function () awful.tag.viewprev(1); awful.tag.viewprev(2) end)

Следует иметь в виду, что Ваш контекст мог бы немного отличаться. Убедитесь и смотрите, где различные структуры как parens, фигурные скобки, и т.д. открыты и закрыты и закончить строки, которые являются частью списков с запятой. Адаптируйтесь по мере необходимости для соответствия файлу конфигурации.

1
27.01.2020, 20:30
  • 1
    Спасибо за Ваш ответ, Caleb, но к сожалению он не работает. Это бросает синтаксическую ошибку. Кроме того, awful.tag.viewprev () работает с тегами, и я должен циклически повториться через клиенты. Чтобы это работало, я должен был бы открыть один клиент на тег только. Кроме того, эти призывы к каждому экрану сначала сфокусировали бы предыдущий тег на экране 1 и затем сфокусировали бы предыдущий тег на экране 2 (я предполагаю). –  Sergey Eremin 24.10.2012, 19:19

После ввода по абсолютному адресу вокруг ужасных документов модуля я нашел решение. Это - hacky, но это работает, поскольку я хотел, чтобы это работало.

awful.key({ modkey,           }, "Tab",
    function ()
        awful.client.focus.byidx(1)
        if awful.client.ismarked() then
            awful.screen.focus_relative(-1)
            awful.client.getmarked()
        end
        if client.focus then
            client.focus:raise()
        end
        awful.client.togglemarked()
    end),

Этот функциональные циклы через клиенты на текущем экране, отмечая их и когда они все отмечены, переходы на следующий экран. Вот то, что происходит шаг за шагом:

Это забавно, потому что я не знаю то, что "отметило", означает. Отмеченные клиенты, кажется, не отличаются от не отмеченные клиенты визуально или поведением.

Странно, что я должен был записать 10 функций строки для получения чего-то столь же тривиального как многоэкранный alt-tab. Я, возможно, сделал что-то чрезмерное),

1
27.01.2020, 20:30

Теги

Похожие вопросы