Nächste: Persönliche Netzwerkdienste, Vorige: Persönliche Mediendienste, Nach oben: Persönliche Dienste [Inhalt][Index]
Im Modul (gnu home services sway)
wird home-sway-service-type
angeboten, ein Persönlicher Dienst, um die
Sway-Fensterverwaltung für Wayland
deklarativ zu konfigurieren.
Hier sehen Sie ein Beispiel, wie so ein Dienst aussehen und konfiguriert
werden kann, wenn Sie ihn im services
-Feld innerhalb von
home-environment
in Ihrer Persönlichen Konfiguration eintragen:
(service home-sway-service-type
(sway-configuration
(gestures
'((swipe:3:down . "move to scratchpad")
(swipe:3:up . "scratchpad show")))
(outputs
(list (sway-output
(identifier '*)
(background (file-append sway
"\
/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png")))))))
Obiges Beispiel stellt eine Sway-Konfiguration dar, wo
sway
,
Anmerkung: Dieser Persönliche Dienst richtet nur die Konfigurationsdatei ein und legt Pakete für Sway ins Profil. Er startet Sway aber nicht von selbst. Wenn Sie das möchten, gefällt Ihnen dazu vielleicht stattdessen
greetd-wlgreet-sway-session
.Die unten definierte Prozedur
sway-configuration->file
kann als Wert für das optionale Feldsway-configuration
ingreetd-wlgreet-sway-session
genutzt werden.
Diese Prozedur nimmt ein Argument config
entgegen, das ein
sway-configuration
-Verbundsobjekt (wie unten definiert) sein muss,
und sie liefert ein dateiartiges Objekt, das der serialisierten
Konfiguration entspricht.
Dies ist ein Persönlicher Diensttyp zum Einrichten von Sway. Er kümmert sich um Folgendes:
Das Verbundsobjekt beschreibt die Sway-Konfiguration (siehe sway(5)).. Diese Felder sind verfügbar:
variables
(Vorgabe: %sway-default-variables
)Der Wert dieses Feldes ist eine assoziative Liste, wo die Schlüssel Symbole sind und die Werte entweder Zeichenketten, G-Ausdrücke oder dateiartige Objekte sind (siehe G-Ausdrücke).
Beispiel:
(variables `((mod . "Mod4") ; Zeichenkette
(term ; file-append
. ,(file-append foot "/bin/foot"))
(Term ; G-Ausdruck
. ,#~(string-append #$foot "/bin/foot"))))
Anmerkung: Die vorgegebenen Tastenbelegungen funktionieren nur, wenn Variable namens
$mod
,$left
,$right
,$up
und$down
zugewiesen wurden. Wenn Sie sie nicht alle definieren möchten, dann müssen Sie die Tastenbelegungen entfernen, die auf sie verweisen.
keybindings
(Vorgabe: %sway-default-keybindings
)Dieses Feld beschreibt die Tastenbelegungen im voreingestellten Modus default. Als Wert wird eine assoziative Liste angegeben; Schlüssel sind Symbole und Werte sind entweder Zeichenketten oder G-Ausdrücke.
Mit diesem Schnipsel würde man das Terminal über die Tastenkombination
$mod+t aufrufen und auch durch Drücken von $mod+Shift+t
(vorausgesetzt eine Variable $term
ist definiert):
`(($mod+t . ,#~(string-append "exec " #$foot "/bin/foot")) ($mod+Shift+t . "exec $term"))
gestures
(Vorgabe: %sway-default-gestures
)Genau wie im vorherigen Feld, aber für Fingergesten.
Mit folgendem Schnipsel wird es möglich, durch Wischen mit drei Fingern nach rechts und links durch die Arbeitsflächen zu navigieren:
'((swipe:3:right . "workspace next_on_output") (swipe:3:left . "workspace prev_on_output"))
packages
(Vorgabe: %sway-default-packages
)In diesem Feld wird eine Liste von Paketen aufgeführt, die ins
Benutzerprofil aufgenommen werden sollen. Derzeit besagt der Vorgabewert
nur, dass sway
zum Profil hinzugefügt werden soll.
inputs
(Vorgabe: '()
)Eine Liste von sway-input-Verbundsobjekten (unten beschrieben).
outputs
(Vorgabe: '()
)Eine Liste von sway-output-Verbundsobjekten (unten beschrieben).
bar
(optional sway-bar
-Verbundsobjekt)Optional ein sway-bar
-Verbundsobjekt (unten beschrieben), um eine
Leiste „Sway bar“ einzufügen.
modes
(Vorgabe: %sway-default-modes
)Eine Liste von sway-mode-Verbundsobjekten (unten beschrieben), um Modi
zur Sway-Konfiguration hinzuzufügen. Beim Vorgabewert
%sway-default-modes
wird ein Modus „resize“ wie in Sways
Voreinstellungen hinzugefügt (wie unten beschrieben).
startup+reload-programs
(Vorgabe: '()
)Welche Programme beim Start sowie nach jedem Neuladen der Konfiguration ausgeführt werden. Der Wert dieses Feldes ist eine Liste von Zeichenketten, G-Ausdrücken oder dateiartigen Objekten (siehe G-Ausdrücke).
startup-programs
(Vorgabe: %sway-default-execs
)Welche Programme beim Start ausgeführt werden. Der Wert dieses Feldes ist eine Liste von Zeichenketten, G-Ausdrücken oder dateiartigen Objekten (siehe G-Ausdrücke).
Beim Vorgabewert %sway-default-execs
läuft swayidle
, damit
nach 50 Minuten der Inaktivität der Bildschirm gesperrt wird (als
Hintergrund wird ein mit Sway mitgeliefertes Bild eingeblendet) und nach 100
Minuten Inaktivität wird der Bildschirm gesperrt.
extra-content
(Vorgabe: '()
)Weitere Zeilen, die an die Konfigurationsdatei angehängt werden. Als Wert für das Feld wird eine Liste von Zeichenketten oder G-Ausdrücken angegeben.
sway-input
-Verbundsobjekte beschreiben Blöcke für Eingabemethoden
(siehe sway-input(5)). Zum Beispiel wendet folgendes Schnipsel eine
französische Tastaturbelegung auf alle Tastaturen an und belegt zudem die
Taste capslock auf ctrl:
(sway-input (identifier "type:keyboard")
(layout
(keyboard-layout "fr" #:options '("ctrl:nocaps"))))
Verfügbare Felder für ein sway-input
-Verbundsobjekt sind:
identifier
(Vorgabe: '*
)Identifikator der Eingabe. Für das Feld können Sie ein Symbol oder eine
Zeichenkette angeben. Wenn identifier
ein Symbol ist, wird es einfach
eingefügt; wenn es eine Zeichenkette ist, wird sie in der
Konfigurationsdatei in Anführungszeichen gesetzt.
layout
(optional <keyboard-layout>
-Verbundsobjekt)Eine Option nur für Tastaturen. Das Feld gibt die für die Eingabe verwendete
Tastenbelegung an. Als Wert müssen Sie ein
<keyboard-layout>
-Verbundsobjekt angeben (siehe Tastaturbelegung).
Anmerkung:
(gnu home services sway)
re-exportiert nicht die Prozedurkeyboard-layout
.
disable-while-typing
(optional Boolescher-Ausdruck)Wenn es auf #t
(bzw. #f
) steht, wird mit der Option „disable
while typing“ das Abschalten beim Tippen dieser Eingabe aktiviert (bzw.
deaktiviert).
disable-while-trackpointing
(optional Boolescher-Ausdruck)Wenn es auf #t
(bzw. #f
) steht, wird mit der Option „disable
while track-pointing“ das Abschalten bei Trackpointnutzung dieser Eingabe
aktiviert (bzw. deaktiviert).
tap
(optional Boolescher-Ausdruck)Aktiviert oder deaktiviert die Option „tap“, durch die ein Antippen des Tastfelds als Klicken verstanden wird.
extra-content
(Vorgabe: '()
)Weitere Zeilen, die an den Eingabeblock angehängt werden. Als Wert für das Feld wird eine Liste von Zeichenketten oder G-Ausdrücken angegeben.
sway-output
-Verbundsobjekte beschreiben Ausgaben für Sway (siehe sway-output(5)). Verfügbare Felder sind:
identifier
(Vorgabe: '*
)Identifikator des Monitors. Für das Feld können Sie ein Symbol oder eine
Zeichenkette angeben. Wenn identifier
ein Symbol ist, wird es einfach
eingefügt; wenn es eine Zeichenkette ist, wird sie in der
Konfigurationsdatei in Anführungszeichen gesetzt.
resolution
(optional Zeichenkette)Diese Zeichenkette gibt die Auflösung des Monitors.
position
(optional)Der (optionale) Wert dieses Feldes muss ein point
sein. Beispiel:
(position
(point (x 1920)
(y 0)))
background
(optional)Der Wert dieses Feld benennt, welches Hintergrundbild diese Ausgabe zieren soll. Als Typ für den Wert des Feldes gibt es folgende Möglichkeiten:
stretch
, fill
, fit
,
center
oder tile
sein.
Wenn das zweite Argument nicht angegeben wird (d.h. wenn als Wert kein Paar
benutzt wird), wird der fill
-Modus angewandt.
Anmerkung: Um eine SVG-Datei benutzen zu können, muss
librsvg
in Ihrem Profil installiert sein (z.B. indem Sie es im Feldpackages
dersway-configuration
eintragen).
extra-content
(Vorgabe: '()
)Liste mit weiteren Zeilen, die an den Ausgabe-Konfigurationsblock angehängt werden. Elemente der Liste müssen Zeichenketten oder G-Ausdrücke sein.
border
Die Farbe des Randes.
background
Die Farbe des Hintergrunds.
text
Die Farbe des Textes.
background
(optional Zeichenkette)Hintergrundfarbe der Leiste.
statusline
(optional Zeichenkette)Textfarbe der Statuszeile.
focused-background
(optional Zeichenkette)Hintergrundfarbe der Leiste auf dem Monitor, der den Fokus hat.
focused-statusline
(optional Zeichenkette)Textfarbe der Statuszeile auf dem Monitor, der den Fokus hat.
focused-workspace
(optional sway-border-color
)Farbschema der Arbeitsflächen. die den Fokus haben.
active-workspace
(optional sway-border-color
)Farbschema aktiver Arbeitsflächen.
inactive-workspace
(optional sway-border-color
)Farbschema inaktiver Arbeitsflächen.
urgent-workspace
(optional sway-border-color
)Farbschema von Arbeitsflächen mit „dringenden“ Fenstern.
binding-mode
(optional sway-border-color
)Farbschema für den Indikator eines Belegungsmodus.
Beschreibt die „Sway bar“, eine Leiste für Sway (siehe sway-bar(5)).
identifier
(Vorgabe: 'bar0
)Identifikator der Leiste. Der Wert muss ein Symbol sein.
position
(optional)Gibt die Position der Leiste an. Akzeptierte Werte sind 'top
für oben
oder 'bottom
für unten.
hidden-state
(optional)Specify the appearance of the bar when it is hidden. Accepted values are
'hide
or 'show
.
binding-mode-indicator
(optional)Boolescher Ausdruck, mit dem der Indikator des Belegungsmodus an- oder ausgeschaltet wird.
colors
(optional)Optional ein sway-color-Verbundsobjekt.
status-command
(optional)This field accept strings, G-expressions and executable file-like values. The default value is a command (string) that prints the date and time every second.
Each line printed on stdout
by this command (or script) will be
displayed on the status area of the bar.
Hier sind ein paar Beispiele mit:
"while date +'%Y-%m-%d %X'; do sleep 1; done"
,
#~(string-append "while " #$coreutils "/bin/date" " +'%Y-%m-%d %X'; do sleep 1; done")
(program-file
"sway-bar-status"
#~(begin
(use-modules (ice-9 format)
(srfi srfi-19))
(let loop ()
(let* ((date (date->string
(current-date)
"~d/~m/~Y (~a) • ~H:~M:~S")))
(format #t "~a~%~!" date)
(sleep 1)
(loop)))))
mouse-bindings
(Vorgabe: '()
)This field accepts an associative list. Keys are integers describing mouse events. Values can either be strings or G-expressions.
The module (gnu home services sway)
exports constants
%ev-code-mouse-left
, %ev-code-mouse-right
and
%ev-code-mouse-scroll-click
whose values are integers corresponding
to left, right and scroll click respectively. For example, with
(mouse-bindings `((,%ev-code-mouse-left . "exec $term")))
, left
clicks in the status bar open the terminal (assuming that the variable
$term
is bound to a terminal).
Describes a Sway mode (see sway(5)). For example, the following snippet defines the resize mode of the default Sway configuration:
(sway-mode (mode-name "resize") (keybindings '(($left . "resize shrink width 10px") ($right . "resize grow width 10px") ($down . "resize grow height 10px") ($up . "resize shrink height 10px") (Left . "resize shrink width 10px") (Right . "resize grow width 10px") (Down . "resize grow height 10px") (Up . "resize shrink height 10px") (Return . "mode \"default\"") (Escape . "mode \"default\""))))
mode-name
(Vorgabe: "default"
)Name of the mode. This field accepts strings.
keybindings
(Vorgabe: '()
)This field describes keybindings. The value is an association list: keys are symbols and values are either strings or G-expressions, as above.
mouse-bindings
(Vorgabe: '()
)Ditto, but keys are mouse events (integers). Constants
%ev-code-mouse-*
described above can be used as helpers to define
mouse bindings.
Nächste: Persönliche Netzwerkdienste, Vorige: Persönliche Mediendienste, Nach oben: Persönliche Dienste [Inhalt][Index]