Sway-Konfigurationsleitfaden

Diese Seite bietet einen kurzen Überblick über die Konfigurationsdetails speziell für Fedora und gilt sowohl für den paketbasierten Sway Spin als auch für Sway Atomic. Wichtige Unterschiede werden hervorgehoben.

Falls Sie nach allgemeineren Ressourcen suchen, schauen Sie bitte hier nach:

Konfigurationsprofile

Das Sway-Paket in Fedora delegiert die meisten Abhängigkeiten und die Zuständigkeit für die Konfigurationsdatei an die Teilpakete mit dem Namensschema sway-config-*. Dadurch können wir verschiedene Konfigurationsprofile mit unterschiedlichen Laufzeitabhängigkeiten ausliefern.

Folgende Profilpakete sind derzeit in Fedora verfügbar:

  • sway-config-upstream – die Upstream-Konfiguration, wie sie mit den Sway-Quellen ausgeliefert wird. Die einzigen zulässigen Änderungen an der Konfigurationsdatei dieses Profils betreffen Anpassungen von Abhängigkeiten, die in Fedora derzeit nicht verfügbar sind.

  • sway-config-minimal – Minimale Konfiguration ohne optionale Abhängigkeiten. Dieses Profil wurde für Server ohne grafische Oberfläche, Container und die Verwendung mit Buildroot erstellt. Es eignet sich auch für den Aufbau einer minimalen Installation von Grund auf.

  • sway-config-fedora - benutzerdefinierte Konfiguration für Fedora Sway Spin.

Die Pakete schließen sich gegenseitig aus, und eines davon muss vorhanden sein. Das mit dnf install sway standardmäßig installierte Paket ist sway-config-upstream, und das mit der Sway Spin/Sway Desktop Environment-Gruppe installierte Paket ist sway-config-fedora.

Sie können das Profil mit folgendem Befehl auswählen:

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

Der Befehl ersetzt die Standardkonfigurationsdatei /etc/sway/config und wendet die neuen Abhängigkeiten an. Nicht verwendete Pakete des neuen Profils werden automatisch entfernt.

Der entsprechende Befehl für Sway Atomic und andere benutzerdefinierte Sway-Abbilder lautet:

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

Beachten Sie jedoch, dass dadurch die ursprünglichen Profilabhängigkeiten der Basisschicht einer Bereitstellung nicht entfernt werden.

Fedora-Konfiguration

sway-config-fedora enthält die Standardkonfiguration für Fedora Sway Spin. Sie basiert auf der Standard-Sway-Konfiguration und bietet einige Verbesserungen der Benutzerfreundlichkeit sowie einige Anpassungen.

Die meisten Erweiterungen sind als eigenständige Konfigurationsabschnitte implementiert, die unter /usr/share/sway/config.d/ gespeichert und automatisch aus der Hauptkonfigurationsdatei geladen werden. Die Umgebungskonfiguration und das Abfangen von Protokolleinträgen sind im Wrapper-Skript /usr/bin/start-sway implementiert.

Umgebungsvariablen

Wenn Sie einen kompatiblen Display Manager (GDM oder SDDM) verwenden, können Sie die anfängliche Umgebung für Sway entweder über eine systemweite Konfiguration unter /etc/sway/environment oder über eine benutzerbezogene Konfiguration unter ~/.config/sway/environment anpassen. Die in der Benutzerkonfiguration festgelegten Variablen setzen die entsprechenden systemweit festgelegten Variablen außer Kraft.

Weitere Informationen finden Sie in den Kommentaren und Beispielen in /etc/sway/environment.

Abschnitte

Die von uns bereitgestellten Konfigurationsbeispiele sind in folgende Abschnitte unterteilt:

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

Fensterregeln (for_window, assign und zugehörige Konfiguration).

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

Tastenbelegungen und Belegungsmodi.

90-94 (90-*.conf)

Systemanwendungen: Leisten, Leerlauf-Daemons und andere Komponenten.

95-99 (95-*.conf)

Anwendungen automatisch starten.

Außerkraftsetzungen und Ladepriorität

Die Fedora-Konfiguration nutzt die Implementierungsdetails des Sway-Konfigurationsparsers (wordexp(3p)), um einen Mechanismus zur Außerkraftsetzung der Snippets zu implementieren.

Die Priorität steigt von der Paketkonfiguration über die systemweite Konfiguration bis hin zu den Benutzerkonfigurationsverzeichnissen:

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

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

  • $XDG_CONFIG_HOME/sway/config.d/*.conf (Standardwert: ~/.config/sway/config.d/*.conf)

Die Include-Dateien sind außerdem über alle Verzeichnisse hinweg nach Dateinamen sortiert.

Durch das Erstellen einer gleichnamigen Datei in /etc/sway/config.d wird der Konfigurationspräprozessor gezwungen, den entsprechenden Abschnitt aus /usr zu ignorieren und den aus /etc zu laden. Analog dazu hat der Konfigurationsabschnitt aus dem Home-Verzeichnis Vorrang vor den Abschnitten aus den vorherigen Verzeichnissen.

Um es noch einfacher auszudrücken: Stellen Sie sich die Konfigurationsdatei /usr/share/sway/config.d/90-bar.conf vor, die waybar als Statusleiste festlegt. Wenn Sie verhindern möchten, dass waybar startet, können Sie eine leere Datei in Ihrem Home-Verzeichnis erstellen:

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

Wenn Sie eine andere Leiste verwenden möchten, müssen Sie lediglich einige Inhalte zur Datei hinzufügen. Kopieren Sie beispielsweise den Standard-Leistenabschnitt aus der ursprünglichen Sway-Konfiguration:

$ mkdir -p ~/.config/sway/config.d
$ cat >~/.config/sway/config.d/90-bar.conf <<EOF
## Lesen Sie `man 5 sway-bar` für weitere Informationen zu diesem Abschnitt.
bar {
    position top

    ## Wenn status_command eine neue Zeile in die Standardausgabe schreibt, aktualisiert sich die Swaybar.
    ## Die Standardeinstellung zeigt lediglich das aktuelle Datum und die Uhrzeit an.
    status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done

    Farben {
Statuszeile #ffffff
Hintergrund #323232
Inaktiver Arbeitsbereich #32323200 #32323200 #5c5c5c

}
}
EOF

Fehlerbehebung

Manchmal ist es hilfreich zu wissen, wie die von Sway geladene Konfiguration tatsächlich aussieht. Es gibt zwei Möglichkeiten, dies zu debuggen:

  • Sway-Konfigurationsvalidierung ausführen:

    $ sway --debug --validate [--config /Pfad/zur/Konfiguration]
  • Überprüfen Sie die vom Layered-Include-Skript generierten Zwischendateien

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