summaryrefslogtreecommitdiff
path: root/px/system/config
diff options
context:
space:
mode:
Diffstat (limited to 'px/system/config')
-rw-r--r--px/system/config/config205
-rw-r--r--px/system/config/pxconfig11
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")