Nächste: , Nach oben: Persönliche Konfiguration   [Inhalt][Index]


13.1 Deklaration der Persönlichen Umgebung

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]