Nächste: Shell-Konfiguration, Nach oben: Persönliche Konfiguration [Inhalt][Index]
Die Persönliche Umgebung können Sie konfigurieren, indem Sie eine
home-environment
-Deklaration in einer Datei speichern, die Sie dem
Befehl guix home
übergeben (siehe guix home
aufrufen). Der
einfachste Einstieg gelingt, indem Sie mit guix home import
eine
anfängliche Konfiguration erzeugen lassen:
guix home import ~/src/guix-config
Durch den Befehl guix home import
werden einige dieser „Dotfiles“
wie ~/.bashrc aus Ihrem Persönlichen Verzeichnis gelesen und in das
angegebene Verzeichnis kopiert. In diesem Beispiel ist das
~/src/guix-config. Auch der Inhalt Ihres Profils in
~/.guix-profile wird gelesen und anhand davon wird eine Konfiguration
Ihrer Persönlichen Umgebung in
~/src/guix-config/home-configuration.scm erzeugt, die Ihrer
momentanen Konfiguration nachempfunden ist.
Zu einer einfachen Konfiguration kann z.B. Bash gehören zusammen mit einer eigenen Textdatei wie im folgenden Beispiel. Zögern Sie nicht damit, in der Persönlichen Umgebung etwas zu deklarieren, was mit Ihren bestehenden Dotfiles überlappt, denn bevor irgendeine Konfigurationsdatei installiert wird, legt Guix Home eine Sicherungskopie an einer anderen Stelle im Persönlichen Verzeichnis ab.
Anmerkung: Wir empfehlen sehr, Ihre Shell oder Shells mit Guix Home zu verwalten, weil dadurch sicherlich alle vorausgesetzten Skripte über
source
-Befehle in die Shell-Konfiguration eingebunden werden. Andernfalls müssten Sie sie von Hand einbinden (siehe Shell-Konfiguration).
(use-modules (gnu home) (gnu home services) (gnu home services shells) (gnu services) (gnu packages admin) (guix gexp)) (home-environment (packages (list htop)) (services (list (service home-bash-service-type (home-bash-configuration (guix-defaults? #t) (bash-profile (list (plain-file "bash-profile" "\ export HISTFILE=$XDG_CACHE_HOME/.bash_history"))))) (simple-service 'test-config home-xdg-configuration-files-service-type (list `("test.conf" ,(plain-file "tmp-file.txt" "the content of ~/.config/test.conf")))))))
Was das packages
-Feld tut, sollte klar sein: Dadurch werden die
aufgelisteten Pakete in das Profil des Benutzers installiert. Das wichtigste
Feld ist services
, was eine Liste Persönlicher Dienste zu
enthalten hat. Sie stellen die Grundbausteine einer Persönlichen Umgebung
dar.
Für Persönliche Dienste gibt es keinen Daemon (zumindest nicht zwingend). Ein Persönlicher Dienst stellt nur ein Element dar, um einen Aspekt einer Persönlichen Umgebung zu deklarieren bzw. andere Aspekte zu erweitern. Dieser im vorherigen Kapitel erörterte Erweiterungsmechanismus (siehe Dienste definieren) sollte nicht verwechselt werden mit Shepherd-Diensten (siehe Shepherd-Dienste). Mit dem Erweiterungsmechanismus und etwas Scheme-Code, um die Dinge zusammenzubringen, haben Sie als Nutzer die Freiheit, eigens auf Sie abgestimmte Persönliche Umgebungen zu entwerfen.
Wenn die Konfiguration brauchbar ausschaut, können Sie sie einem ersten Test in einem Wegwerf-„Container“ unterziehen:
guix home container config.scm
Dieser Befehl öffnet eine Shell, in der Ihre Persönliche Umgebung läuft. Diese Shell befindet sich in einem Container, ist also vom übrigen System isoliert. Deshalb können Sie Ihre Konfiguration so ausprobieren – Sie sehen, ob noch Teile der Konfiguration fehlen oder falsches Verhalten bewirken, ob Daemons gestartet werden und so weiter. Sobald Sie die Shell verlassen, haben Sie wieder die „wirkliche“ Eingabeaufforderung Ihrer ursprünglichen Shell vor sich.
Wenn Ihre Konfigurationsdatei so weit fertig ist und Ihrem Bedarf entspricht, wird es Zeit, Ihre Persönliche Umgebung zu rekonfigurieren, indem Sie diesen Befehl geben:
guix home reconfigure config.scm
Dadurch wird Ihre Persönliche Umgebung erstellt und von ~/.guix-home darauf verwiesen. Geschafft!
Anmerkung: Achten Sie darauf, dass Ihr Betriebssystem mit elogind, systemd oder einem entsprechenden Mechanismus das XDG-Laufzeitverzeichnis anlegt und die Variable
XDG_RUNTIME_DIR
festlegt. Wenn nicht, kann das Skript on-first-login nichts starten und Prozesse wie der benutzereigene Shepherd und alles, was davon abhängt, fahren nicht hoch.
Nächste: Shell-Konfiguration, Nach oben: Persönliche Konfiguration [Inhalt][Index]