2. Konfiguration
- Der erste Programmstart von QGIS erzeugt (sofern nicht vorhanden) ein Benutzerprofil im Home-Verzeichnis des Anwenders, standardmäßig in
%APPDATA%\QGIS\QGIS3
- Das Profil (
default
) enthält neben Unterordnern für Processing, Farbpaletten, div. (optionale) Vorlagen, GUI Anpassungen, etc. sowie zusätzliche Python Plugins insbesondere - die Settings-Datei
QGIS3.ini
, die sämtliche QGIS Programmeinstellungen enthält bzw. aufnimmt.
2.1 Standardisierung
- Da alle Programmeinstellungen, die in QGIS vorgenommen werden, in der
QGIS3.ini
gespeichert werden, kann ein vorab manuell mittels QGIS konfiguriertes Profil ebenfalls als (Standard-) Kopie verteilt werden (z.B. über ein Netzlaufwerk, →Batch-Skript).- Die Erst-Einstellungen richten sich nach Vorgaben, die im Softwarecode einprogrammiert sind (sichtbar unter Menü: Einstellungen/Optionen…/Erweitert). Individuell angepasste Werte aus
QGIS3.ini
überstimmen die Default-Vorgaben.
- Durch die Verteilung eines vorbereiteten Benutzerprofils (
settings_template
) befindet sich die gesamte standardisierte Konfiguration schließlich als jeweils unabhängige Kopie auf den Arbeitsplatz-PCs — auch im Fall der Netzwerkinstallation! — Das bedeutet:- Anwender*innen können (Grund-)Einstellungen verändern oder löschen
- Korrektur und Pflege von Standardeinstellungen sind somit mindestens sehr aufwändig und evtl. langwierig (→ individuell pro Arbeitsplatz)
2.2 wichtige Einstellungen
- Verbindungen zu gemeinsamen Datenquellen (siehe Menü: Layer/Datenquellverwaltung), wie einer zentralen PostGIS-Datenbank oder OWS-Diensten der (eigenen) GDI, sind i.d.R. essentiell für die organisationsweite QGIS Nutzung.
- Die Verbindungsdetails finden sich in
QGIS3.ini
unter[PostgreSQL]
bzw.[qgis]
(OWS)
- Dazu gehören oft auch externe Erweiterungen (Plugins), inklusive ihrer umgebungsabhängigen Konfiguration wie Datenquellverbindungen (s.o.), z.B.:
- norGIS ALKIS-Einbindung — abfragbare ALKIS Vektorlayerkarte aus PostGIS-Datenbank1), Darstellung gem. GeoInfoDok
- Discovery — anpassbare Suchfunktion auf lokalen PostGIS-Datenbanken
- QGIS Map Library — vordefinierte Themenlayer auf Knopfdruck ins QGIS Projekt einfügen.
- Weitere QGIS Konfigurationen für die Nutzung bestehender, organisationsweiter Ressourcen können z.B. sein:
- Suchpfad(e) für SVG-Symbole oder zusätzliche Druckvorlagen → auf Netzlaufwerken
- Benutzerdefinierte Umgebungsvariablen — die erst nach Programmstart benötigt/genutzt werden, z.B.
PGSERVICEFILE
2) - spezielle Netzwerkeinstellungen und Proxy für Webzugriffe
- Suchfilter der Locator Bar
- …alles weitere, was standardisiert oder optimiert sein soll:
- Farben
- Layouts
- Einheitliche Nutzung spezifischer Daten und Ressourcen in der gesamten Organisation
- An jedem Arbeitsplatz standardisierte und gleichzeitig individualisierbare Arbeitsgrundlagen und Werkzeuge
3. Zentralisierung
- Für die Zentralisierung der QGIS Einstellungsoptionen gibt es verschiedene Methoden:
3.1 Startparameter
- Startparameter (command line options ), die in Verbindung mit der QGIS-Startdatei aufgerufen werden. Von Interesse sind hier besonders:
--globalsettingsfile [path]
— Hiermit kann der Pfad einer Datei mit globalen Voreinstellungen definiert werden, standardmäßig%OSGEO4W_ROOT%/resources/qgis_global_settings.ini
.- Diese Einstellungen ersetzen im Softwarecode einprogrammierte Vorgaben, die Einstellungen aus dem Benutzerprofil stehen jedoch noch über diesen!
- Platziert man
qgis_global_settings.ini
auf einem Netzlaufwerk, hat man als Systemadministrator die Möglichkeit durch Anpassen nur einer einzigen Datei grundlegende Einstellungen auf mehreren PCs gleichzeitig zu vollziehen! - Derzeit gibt es keine Möglichkeit den Speicherort von bestimmten Einstellungen festzulegen, daher ist manuell eine (umbenannte) Kopie anzulegen und mit den entsprechenden Werten aus QGIS3.ini zu ergänzen.3) Theoretisch müsste man somit eine komplett leere QGIS3.ini ausliefern können, die später automatisch mit individuellen Einstellungen gefüllt wird.
- Aber Issue #29281 & #29226 erfordern, dass das [locale]-Setting in
QGIS3.ini
enthalten sein muss![locale] userLocale=de_DE overrideFlag=false globalLocale=de_DE showGroupSeparator=false
- Wie ich gelernt habe, ist die Python-Klasse
QgsSettings
für die Verwendung der qgis_global_settings.ini erforderlich und ersetztQSettings
4). Diese Codeanpassung muss somit auch in externen Plugins nachvollzogen werden, damit deren Einstellungen aus qgis_global_settings.ini gelesen werden, siehe Discovery #73 & Map Library #2.
--authdbdirectory [path]
— Definiert, ähnlich wie globalsettingsfile, das Verzeichnis, in dem die Authentifizerungsdatenbank gespeichert wird.--profiles-path [path]
— Vorgabe für den (Anlage- und) Speicherort des Benutzerprofils- Dies ermöglicht z.B. die Verwendung eines (gemeinsamen) Profils auf einem Netzlaufwerk von verschiedenen Computern aus oder auch ein Mitnehmen der eigenen Einstellungen und Plugins auf einem USB-Stick.
--customizationfile [path]
— Vorgabe für eine Datei zur Oberflächenanpassung (QGISCUSTOMIZATION3.ini
), die beim Start angewendet wird.--code [path]
— Pfad zu einer bestehenden Pythondatei, die ausgeführt wird direkt nachdem QGIS gestartet worden ist.
3.2 Umgebungsvariablen
- Einige der Startparameter können auch als Umgebungsvariable (environment variables) gesetzt werden.
- Entscheidend für den Einsatz von Umgebungsvariablen ist, wann sie jeweils zur Verfügung stehen müssen, um ihren Zweck zu erfüllen!
QGIS_GLOBAL_SETTINGS_FILE
→ s.o.--globalsettingsfile
QGIS_CUSTOM_CONFIG_PATH
→ s.o.--profiles-path
Diese müssen jeweils beim/vor vollendetem QGIS-Start im (Benutzerprofil) des Betriebssystems [des Zielrechners] gesetzt werden, damit sie greifen. Als QGIS Systemoptionen (s.o., Standardisierung Pkt 3.) kann es nicht funktionieren!PYQGIS_STARTUP
— verweist auf ein Python-Skript, das ausgeführt wird noch bevor QGIS startet.
- Möglichkeiten zur Platzierung von Umgebungsvariablen (im Zielrechner)
- Verteilung & Aktualisierung mittels zu ergänzender
SET
-Befehle in.bat
-Datei wie der QGIS Startdatei - oder ausgelagert in eine separate Datei auf einem Netzlaufwerk
Auf diese Weise gesetzte Variablen werden wieder entladen, sobald QGIS beendet wird. - Oder schon bei der lokalen QGIS „Installation“ mittels
.reg
-Datei5) auf einem Netzlaufwerk ( manuell im Windows Registrierungs-Editor einrichten & exportieren). Befehlstart /wait regedit -s "[Netzwerkpfad\]qgis_userEnv.reg"
in angepasster QGIS-Startdatei. - [Oder mittels Windows Group/System Policy, die ggf. von der IT-Abteilung bei der Einrichtung eines Windows-Benutzerprofils installiert werden. Auf diese Weise wären keine veränderten QGIS-Startdateien auf den Zielrechnern notwendig, die Umgebungsvariablen sind gewissermaßen permanent vorhanden.]
3.3 Python-Skripte
- Python-Skripte — (Diese Methode verwende ich bisher nicht.)
- Bei jedem Start sucht QGIS im Benutzerverzeichnis
%AppData%\Roaming\QGIS\QGIS3
nach einer Datei namensstartup.py
und führt sie aus — unabhängig vom verwendeten Profil. - Mit der Umgebungsvariable
PYQGIS_STARTUP
kann ein Python-Skript (ggf. startup.py) schon ausgeführt werden bevor die Initialisierung von QGIS abgeschlossen ist. Dies kann verwendet werden, um zentral vorgehaltene Einstellungen etc. auf die Arbeitsplatz-PCs zu kopieren ( Beispiel).
1)
siehe norGIS-ALKIS-Import
3)
Da dies weder komfortabel noch übersichtlich ist, setze ich große Hoffnung in die Umsezung des QEP #124 "Setting Registry"