Руководство по настройке Sway

На этой странице представлен краткий обзор деталей конфигурации, специфичных для Fedora, и он является общим как для Sway Spin на основе пакетов, так и для варианта Sway Atomic. Важные различия будут выделены.

Если вы ищете более общие ресурсы, обратитесь к:

Профили конфигурации

Пакет Sway в Fedora передаёт большинство зависимостей и владение файлом конфигурации подпакетам sway-config-*. Это позволяет нам поставлять различные профили конфигурации с разными наборами зависимостей времени выполнения.

Следующие пакеты профилей в настоящее время доступны в Fedora:

  • sway-config-upstream — конфигурация из основного репозитория, как она поставляется с исходными кодами Sway. Единственными допустимыми изменениями в файле конфигурации этого профиля являются корректировки для зависимостей, в настоящее время недоступных в Fedora.

  • sway-config-minimal — минимальная конфигурация с исключением всех необязательных зависимостей. Профиль был создан для использования на безголовых серверах, в контейнерах и в среде сборки buildroot. Он также подходит для создания минимальной установки с нуля.

  • sway-config-fedora — настроенная конфигурация для Fedora Sway Spin.

Пакеты являются взаимоисключающими, и один из них должен присутствовать. Пакет, устанавливаемый по умолчанию с помощью dnf install sway, — это sway-config-upstream, а пакет, который будет установлен с Sway Spin/ группой сред рабочего стола Sway, — это sway-config-fedora.

Вы можете выбрать профиль с помощью следующей команды:

$ sudo dnf swap sway-config sway-config-upstream
$ sudo dnf swap sway-config sway-config-minimal
$ sudo dnf swap sway-config sway-config-fedora

Команда заменит файл /etc/sway/config по умолчанию и применит новый набор зависимостей. Пакеты, не используемые новым профилем, будут автоматически удалены.

Соответствующая команда для Sway Atomic и других пользовательских образов Sway:

$ sudo rpm-ostree override remove sway-config --install sway-config-upstream

Однако обратите внимание, что это не удаляет зависимости исходного профиля из базового слоя развёртывания.

Конфигурация Fedora

sway-config-fedora содержит конфигурацию по умолчанию для Fedora Sway Spin. Она построена поверх конфигурации Sway по умолчанию с несколькими улучшениями качества жизни и субъективными изменениями.

Большинство дополнений реализованы как отдельные фрагменты конфигурации, хранящиеся по адресу /usr/share/sway/config.d/ и автоматически загружаемые из основного файла конфигурации. Настройка окружения и перехват журналирования реализованы в скрипте-обёртке /usr/bin/start-sway.

Переменные окружения

Если вы используете совместимый менеджер дисплея (GDM или SDDM), вы должны иметь возможность настроить начальное окружение для Sway с помощью общесистемной конфигурации в /etc/sway/environment или пользовательской конфигурации в ~/.config/sway/environment. Переменные, заданные в пользовательской конфигурации, переопределяют соответствующие переменные, заданные на системном уровне.

Пожалуйста, ознакомьтесь с комментариями и примерами в /etc/sway/environment, чтобы узнать больше.

Разделы

Предоставляемые нами фрагменты конфигурации сгруппированы в следующие разделы:

50-59 (50-rules-*.conf)

Правила окон (for_window, assign и связанная конфигурация).

60-69 (60-bindings-*.conf, 65-mode-*.conf)

Привязки клавиш и режимы привязок.

90-94 (90-*.conf)

Системные приложения: панели, демоны бездействия и другие компоненты.

95-99 (95-*.conf)

Автозапуск приложений.

Переопределения и приоритет загрузки

Конфигурация Fedora использует детали реализации парсера конфигурации Sway (wordexp(3p)) для реализации механизма переопределения фрагментов.

Приоритет возрастает от поставляемой конфигурации к общесистемной конфигурации и каталогам пользовательской конфигурации:

  • /usr/share/sway/config.d/*.conf

  • /etc/sway/config.d/*.conf

  • $XDG_CONFIG_HOME/sway/config.d/*.conf (по умолчанию ~/.config/sway/config.d/*.conf)

Включаемые файлы также сортируются по имени файла во всех каталогах.

Создав файл с тем же именем в /etc/sway/config.d, вы заставите препроцессор конфигурации игнорировать соответствующий фрагмент из /usr и загружать его из /etc. Аналогично, фрагмент конфигурации из домашнего каталога имеет приоритет над более ранними местоположениями.

Если говорить ещё проще: представьте файл конфигурации дистрибутива /usr/share/sway/config.d/90-bar.conf, который устанавливает waybar в качестве панели состояния. Если вы хотите предотвратить запуск waybar, вы можете создать пустой файл в своём домашнем каталоге:

$ mkdir -p ~/.config/sway/config.d
$ touch ~/.config/sway/config.d/90-bar.conf

Если вы хотите использовать другую панель, вам просто нужно добавить некоторое содержимое в файл. Например, скопируйте раздел панели по умолчанию из конфигурации основного репозитория Sway:

$ mkdir -p ~/.config/sway/config.d
$ cat >~/.config/sway/config.d/90-bar.conf <<EOF
## Прочитайте `man 5 sway-bar` для получения дополнительной информации об этом разделе.
bar {
    position top

    ## Когда status_command выводит новую строку в stdout, swaybar обновляется.
    ## По умолчанию показывает текущую дату и время.
    status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done

    colors {
        statusline #ffffff
        background #323232
        inactive_workspace #32323200 #32323200 #5c5c5c
    }
}
EOF

Устранение неполадок

Иногда полезно знать, как на самом деле выглядит конфигурация, загруженная Sway. Есть два способа это проверить:

  • Запустите проверку конфигурации sway:

    $ sway --debug --validate [--config /путь/к/конфигурации]
  • Проверьте промежуточные файлы, созданные многослойным скриптом включения

    $ less $XDG_RUNTIME_DIR/sway/layered-include-*.conf