diff options
Diffstat (limited to 'px/system/config')
-rw-r--r-- | px/system/config/config | 205 | ||||
-rw-r--r-- | px/system/config/pxconfig | 11 |
2 files changed, 216 insertions, 0 deletions
diff --git a/px/system/config/config b/px/system/config/config new file mode 100644 index 0000000..c919b65 --- /dev/null +++ b/px/system/config/config @@ -0,0 +1,205 @@ +;; This is an operating system configuration template +;; for PantherX core Desktop + +(use-modules (gnu) + (gnu system nss) + (gnu packages fonts) + (gnu packages gnuzilla) + (gnu packages gnome) + (gnu packages qt) + (gnu packages rsync) + (gnu packages vim) + (guix build utils) + (px packages accounts) + (px packages user-services) + (px packages themes) + (px packages desktop) + (px packages software) + (px packages tarsnap) + (px packages settings) + (px packages hub) + (srfi srfi-1)) + + +(load "pxconfig.scm") +(use-modules (pxconfig)) + +;; Yeap! We really need to organize those package more logically ... + +(use-service-modules desktop networking ssh xorg sddm dbus avahi) +(use-package-modules connman screen ssh certs tls version-control lxqt xorg) + + +;; +;; PantherX Packages Definition +;; +(define %panther-packages + (cons* px-user-services + + ;; PantherX Desktop Applications + px-software + px-settings-ui + + ;; px-accounts-service related plugins + px-accounts-service-plugin-oauth2-github + px-accounts-service-plugin-oauth2-mastodon + px-accounts-service-plugin-oauth2-google + + ;; px-hub-service related plugins + px-hub-service-plugin-mastodon + + ;; px-settings-service related plugins + px-settings-service-plugin-accounts + px-settings-service-plugin-software + + %base-packages)) + + +;; +;; PantherX Services Definition +;; +(define %panther-services + (cons* + ;; Desktopp + (service sddm-service-type + (sddm-configuration + (minimum-uid 1000) + (theme "darkine"))) + (service elogind-service-type) + (service udisks-service-type) + (service dbus-root-service-type) + (service colord-service-type) + (service polkit-service-type) + (service ntp-service-type) + (service avahi-service-type) + (service upower-service-type) + + ;; network configuration + (service openssh-service-type + (openssh-configuration + (port-number 22) + (permit-root-login 'without-password) + (authorized-keys + `()))) + (service wpa-supplicant-service-type) + (service connman-service-type + (connman-configuration + (disable-vpn? #f))) + + ;; System Services + ;; We need to Authorize public key of PantherX build server + ;; before using this new configuration on core image: + ;; $ guix archive --authorize < path/to/signing-key.pub + (modify-services %base-services + (guix-service-type + config => (guix-configuration + (substitute-urls '("https://ci.guix.gnu.org" + "https://build.pantherx.org"))))))) + +;; +;; PantherX Skeleton Fils Definition +;; +(define (pantherx-skeletons) + (define mkpath + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir-p #$output)))) + + (let ((gtk2 "\ +# Created by lxqt-config-appearance (DO NOT EDIT!) +gtk-theme-name = \"Breeze\" +gtk-icon-theme-name = \"breeze\" +gtk-font-name = \"Source Sans Pro 11\" +gtk-button-images = 1 +gtk-menu-images = 1 +gtk-toolbar-style = GTK_TOOLBAR_BOTH_HORIZ") + (gtk3 "\ +# Created by lxqt-config-appearance (DO NOT EDIT!) +[Settings] +gtk-theme-name = Breeze +gtk-icon-theme-name = breeze +# GTK3 ignores bold or italic attributes. +gtk-font-name = Source Sans Pro 11 +gtk-menu-images = 1 +gtk-button-images = 1 +gtk-toolbar-style = GTK_TOOLBAR_BOTH_HORIZ") + (pcmanfmqt "\ +[Desktop] +Wallpaper=/run/current-system/profile/share/wallpapers/pantherx/wallpaper.jpg +WallpaperMode=zoom")) + (append + `((".config/guix" ,(computed-file "channels_dir" mkpath)) + (".gtkrc-2.0" ,(plain-file "gtk2" gtk2)) + (".config/gtk-3.0" ,(computed-file "gtk3_dir" mkpath)) + (".config/gtk-3.0/settings.ini" ,(plain-file "gtk3" gtk3)) + (".config/pcmanfm-qt/lxqt" ,(computed-file "pcmanfmqt_dir" mkpath)) + (".config/pcmanfm-qt/lxqt/settings.conf" ,(plain-file "pcmanfmqt" pcmanfmqt))) + (default-skeletons) + ))) + + +(load "pxconfig.scm") +(use-modules (pxconfig)) + +;; +;; Operating System Definition +;; +(operating-system + (host-name hostname) + (timezone timezone) + (locale locale) + + ;; Boot in "legacy" BIOS mode + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (target "/dev/sda"))) + (file-systems (cons (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + + ;; in case of low memory occurence during build, you need to uncomment + ;; `swap-devices` section and perform these steps before reconfigure: + ;; + ;; 1. fallocate -l 1G /swapfile + ;; 2. chmod 600 /swapfile + ;; 3. mkswap /swapfile + ;; 4. swapon /swapfile + ; (swap-devices '("/swapfile")) + + ;; The "root" account is implicit + (users (cons (user-account + (name username) + (comment comment) + (group groupname) + ;; Adding the account to the "wheel" group + ;; makes it a sudoer. Adding it to "audio" + ;; and "video" allows the user to play sound + ;; and access the webcam. + (supplementary-groups '("wheel" + "audio" "video")) + (home-directory (string-append "/home/" username))) + %base-user-accounts)) + + (skeletons (pantherx-skeletons)) + + ;; Globally-installed packages. + (packages (cons* openssh nss-certs gnutls + git vim rsync ;; development + screen ;; terminal window manager + ;; Desktop + px-desktop-dev ;; desktop + ;; PantherX stuff for desktop + ;; tarsnap + ;; build failed: px-settings-service + ;; Temporary - to reduce compile times + ;; qtwebkit + %panther-packages)) + + ;; Add services to the baseline + (services %panther-services) + + ;; Allow resolution of '.local' host names with mDNS. + (name-service-switch %mdns-host-lookup-nss)) diff --git a/px/system/config/pxconfig b/px/system/config/pxconfig new file mode 100644 index 0000000..f30b93b --- /dev/null +++ b/px/system/config/pxconfig @@ -0,0 +1,11 @@ + +(define-module (pxconfig) + #:export (username comment groupname timezone locale hostname) + #:declarative? #f) + +(define username "panther") +(define comment "-") +(define groupname "users") +(define hostname "my-computer.local") +(define timezone "Europe/Berlin") +(define locale "en_US.UTF-8") |