diff options
-rw-r--r-- | px/packages/base.scm | 86 | ||||
-rw-r--r-- | px/packages/desktop.scm | 159 | ||||
-rw-r--r-- | px/services/base.scm | 66 | ||||
-rw-r--r-- | px/services/desktop.scm | 277 | ||||
-rw-r--r-- | px/system/config.scm | 147 | ||||
-rw-r--r-- | px/system/install.scm | 1 |
6 files changed, 0 insertions, 736 deletions
diff --git a/px/packages/base.scm b/px/packages/base.scm deleted file mode 100644 index 2988402..0000000 --- a/px/packages/base.scm +++ /dev/null @@ -1,86 +0,0 @@ -;;; Package Repository for GNU Guix -;;; Copyright © 2021-2025 Franz Geffke <m@f-a.nz> - -(define-module (px packages base) - #:use-module (gnu system) - #:use-module (gnu packages admin) - #:use-module (gnu packages certs) - #:use-module (gnu packages curl) - #:use-module (gnu packages wm) - #:use-module (gnu packages freedesktop) - #:use-module (gnu packages glib) - #:use-module (gnu packages gnome) - #:use-module (gnu packages libusb) - #:use-module (gnu packages networking) - #:use-module (gnu packages openbox) - #:use-module (gnu packages screen) - #:use-module (gnu packages security-token) - #:use-module (gnu packages tls) - #:use-module (gnu packages xorg) - #:use-module (px packages desktop) - #:use-module (px packages device) - #:use-module (px packages package-management) - #:use-module (px packages setup) - #:use-module (px packages themes) - #:export (%px-core-packages - %px-desktop-minimal-packages - %px-desktop-packages-gtk - %px-desktop-packages-qt - %px-desktop-packages - %px-desktop-ee-packages - %px-server-packages - %px-server-ee-packages)) - -;;; -;;; CORE -;;; - -(define %px-core-packages - (append (list px - gnutls - libimobiledevice - screen) - %base-packages)) - -;;; -;;; DESKTOP -;;; - -;; Stuff for every desktop; QT / GTK on X / Wayland -(define %px-desktop-minimal-packages - (append %minimal-desktop-applications - %px-core-packages)) - -;; GTK-specific -(define %px-desktop-packages-gtk - (append %gtk-desktop-applications - %minimal-desktop-applications - %common-desktop-applications - %px-core-packages)) - -;; QT-specific -(define %px-desktop-packages-qt - (append %qt-desktop-applications - %minimal-desktop-applications - %common-desktop-applications - %px-core-packages)) - -;; Default -(define %px-desktop-packages - (append %px-desktop-packages-qt)) - -(define %px-desktop-ee-packages - (append (list px-device-identity) - %px-desktop-packages)) - -;;; -;;; SERVER -;;; - -(define %px-server-packages - (append (list) - %px-core-packages)) - -(define %px-server-ee-packages - (append (list px-device-identity) - %px-server-packages)) diff --git a/px/packages/desktop.scm b/px/packages/desktop.scm deleted file mode 100644 index f0350ff..0000000 --- a/px/packages/desktop.scm +++ /dev/null @@ -1,159 +0,0 @@ -;;; Package Repository for GNU Guix -;;; Copyright © 2021-2023 Reza Alizadeh Majd <r.majd@pantherx.org> -;;; Copyright © 2021-2025 Franz Geffke <m@f-a.nz> - -(define-module (px packages desktop) - #:use-module ((guix licenses) - #:prefix license:) - #:use-module (guix download) - #:use-module (guix gexp) - #:use-module (guix packages) - #:use-module (gnu system) - #:use-module (guix utils) - #:use-module (guix build-system trivial) - #:use-module (guix build-system cmake) - #:use-module (guix build-system qt) - #:use-module (gnu packages) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages admin) - #:use-module (gnu packages aspell) - #:use-module (gnu packages base) - #:use-module (gnu packages bittorrent) - #:use-module ((gnu packages compression) - #:prefix compression:) - #:use-module (gnu packages compton) - #:use-module (gnu packages curl) - #:use-module (gnu packages fonts) - #:use-module (gnu packages fontutils) - #:use-module (gnu packages freedesktop) - #:use-module (gnu packages gnome) - #:use-module (gnu packages networking) - #:use-module (gnu packages gnupg) - #:use-module (gnu packages image) - #:use-module (gnu packages jami) - #:use-module (gnu packages kde-pim) - #:use-module (gnu packages kde-frameworks) - #:use-module (gnu packages kde-plasma) - #:use-module (gnu packages kde-utils) - #:use-module (gnu packages libreoffice) - #:use-module (gnu packages lxde) - #:use-module (gnu packages lxqt) - #:use-module (gnu packages music) - #:use-module (gnu packages mail) - #:use-module (gnu packages maths) - #:use-module (gnu packages openbox) - #:use-module (gnu packages qt) - #:use-module (gnu packages security-token) - #:use-module (gnu packages suckless) - #:use-module (gnu packages video) - #:use-module (gnu packages wget) - #:use-module (gnu packages wm) - #:use-module (gnu packages xfce) - #:use-module (gnu packages xorg) - #:use-module (gnu packages pdf) - #:use-module (gnu packages syncthing) - #:use-module (gnu packages xdisorg) - #:use-module (gnu packages image-viewers) - #:use-module (px packages atril-thumbnailer) - #:use-module (px packages backup) - #:use-module (px packages common) - #:use-module (px packages desktop-tools) - #:use-module (px packages document) - #:use-module (px packages library) - #:use-module (px packages matrix-client) - #:use-module (px packages package-management) - #:use-module (px packages setup) - #:use-module (px packages themes) - #:use-module (px packages device) - #:use-module (nongnu packages compression) - #:use-module (nongnu packages mozilla) - #:use-module (srfi srfi-1) - #:export (%minimal-desktop-applications - %common-desktop-applications - %gtk-desktop-applications - %qt-desktop-applications)) - -;; -;; PantherX OS Desktop default Applications and Services -;; - -;; Stuff for every desktop; QT / GTK on X / Wayland -(define %minimal-desktop-applications - (list aspell - aspell-dict-en - - font-liberation - font-adobe-source-sans-pro - font-adobe-source-code-pro - font-wqy-zenhei - font-ibm-plex - font-vazir - font-openmoji - - gvfs - - pam-u2f - libu2f-host - libu2f-server - - compression:zip - compression:unzip - unrar - - curl - neofetch - wget - - blueman)) - - -(define desktop-applications - (list libreoffice - - px-sddm-theme - xcursor-themes - gnome-themes-standard - sddm-darkine-theme - paper-icon-theme - breeze-gtk - - ;; Keychain - ;; Conflict with gnome-keyring version - ;; gcr - gnome-keyring - - ;; Printing - print-manager - - network-manager-applet - )) - -;; GTK-specific -(define %gtk-desktop-applications - (list syncthing-gtk - - ;; PGP - seahorse)) - -;; QT-specific -(define %qt-desktop-applications - (list syncthingtray - speedcrunch - - qimgv - ;; strawberry - mpv - - featherpad - qpdfview - - lxqt-archiver - flameshot - pinentry-qt - lxmenu-data - - albert-launcher - kleopatra - - ;; Clipboard manager - copyq)) diff --git a/px/services/base.scm b/px/services/base.scm deleted file mode 100644 index ad04ab1..0000000 --- a/px/services/base.scm +++ /dev/null @@ -1,66 +0,0 @@ -;;; Package Repository for GNU Guix -;;; Copyright © 2021-2023 Reza Alizadeh Majd <r.majd@pantherx.org> -;;; Copyright © 2021-2025 Franz Geffke <m@f-a.nz> - -(define-module (px services base) - #:use-module (guix gexp) - #:use-module (guix utils) - #:use-module (srfi srfi-1) - #:use-module (gnu packages networking) - #:use-module (gnu services) - #:use-module (gnu services base) - #:use-module (gnu services desktop) - #:use-module (gnu services networking) - #:use-module (gnu services ssh) - - #:use-module (px services desktop) - #:use-module (px services device) - #:use-module (px services security-token) - - #:export (%px-core-services - - %px-desktop-minmal-services - %px-desktop-services - %px-desktop-ee-services - - %px-server-services - %px-server-ee-services)) - -;;; -;;; CORE -;;; - -(define %px-core-services - (append (list (service dhcp-client-service-type) - (service ntp-service-type)) - %base-services)) - -;;; -;;; DESKTOP -;;; - -(define %px-desktop-minmal-services - (append %px-desktop-base-minimal-services)) - -(define %px-desktop-services - (append %px-desktop-base-services)) - -(define %px-desktop-ee-services - ;; TODO: Does not include default desktop - (append (list (service px-device-identity-service-type) - (service px-user-identity-service-type)) - %px-desktop-base-services)) - -;;; -;;; SERVER -;;; - -(define %px-server-services - (append (list (service openssh-service-type - (openssh-configuration (permit-root-login 'prohibit-password))) - (service nftables-service-type)) - %px-core-services)) - -(define %px-server-ee-services - (append (list (service px-device-identity-service-type)) - %px-server-services)) diff --git a/px/services/desktop.scm b/px/services/desktop.scm deleted file mode 100644 index 079c49b..0000000 --- a/px/services/desktop.scm +++ /dev/null @@ -1,277 +0,0 @@ -;;; Package Repository for GNU Guix -;;; Copyright © 2021-2023 Reza Alizadeh Majd <r.majd@pantherx.org> -;;; Copyright © 2021-2025 Franz Geffke <m@f-a.nz> - -(define-module (px services desktop) - #:use-module (gnu packages admin) - #:use-module (gnu packages base) - #:use-module (gnu packages linux) - #:use-module (gnu packages xdisorg) - #:use-module (gnu packages libusb) - #:use-module (gnu packages nfs) - #:use-module (gnu services) - #:use-module (gnu services avahi) - #:use-module (gnu services base) - #:use-module (gnu services cups) - #:use-module (gnu services dbus) - #:use-module (gnu services desktop) - #:use-module (gnu packages gnome) - #:use-module (gnu packages lxqt) - #:use-module (gnu packages security-token) - #:use-module (gnu services networking) - #:use-module (gnu services shepherd) - #:use-module (gnu services sddm) - #:use-module (gnu services ssh) - #:use-module (gnu services xorg) - #:use-module (gnu services sound) - #:use-module (gnu services pm) - #:use-module (gnu system) - #:use-module (gnu system setuid) - #:use-module (guix build utils) - #:use-module (guix gexp) - #:use-module (guix packages) - #:use-module (guix records) - #:use-module (px packages desktop) - #:use-module (px services security-token) - #:use-module (srfi srfi-1) - #:use-module (guix utils) - #:use-module (ice-9 match) - #:export (px-desktop-configuration - px-desktop-configuration? - - polkit-network-manager-service - polkit-elogind-service - - create-swap-space-service - - %px-desktop-base-services - %px-desktop-base-minimal-services - %desktop-services-assembly-plain)) - -;; -;; allow netdev group to control network manger -;; - -(define polkit-network-manager - (file-union "polkit-nm" - `(("share/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules" , - (plain-file "nm.rules" - "polkit.addRule(function(action, subject) { - if (action.id.indexOf(\"org.freedesktop.NetworkManager.\") == 0 && subject.isInGroup(\"netdev\")) { - return polkit.Result.YES; - } -}); -"))))) - -;; primarily for ARM - -(define polkit-network-manager-service - (simple-service 'polkit-nm polkit-service-type - (list polkit-network-manager))) - -;; -;; Allow users group to perform reboot/poweroff -;; primarily for ARM -;; - -(define polkit-loginctl - (file-union "polkit-loginctl" - `(("share/polkit-1/rules.d/10-enable-session-power.rules" ,(plain-file - "login.rules" - "polkit.addRule(function(action, subject) { - if ( (action.id == \"org.freedesktop.login1.reboot\" || - action.id == \"org.freedesktop.login1.reboot-multiple-sessions\" || - action.id == \"org.freedesktop.login1.power-off\" || - action.id == \"org.freedesktop.login1.power-off-multiple-sessions\") - && subject.isInGroup(\"users\") ) { - return polkit.Result.YES; - } -}); -"))))) - -(define polkit-elogind-service - (simple-service 'polkit-login polkit-service-type - (list polkit-loginctl))) - -(define (make-firewall-rules open-ports) - - (define (make-port-rules open-ports status) - "Generate list of strings each is a port/service rule for nftables" - (reduce-right append - '() - (map (match-lambda - ((protocol ports ...) - (map (lambda (port) - (string-append " " - protocol - " dport " - port - " " - status)) ports))) open-ports))) - - (let ((port-rules (make-port-rules open-ports "accept"))) - (plain-file "nftables" - (string-append "#PantherX firewall rules\n" - "table inet filter {\n" - " chain input {\n" - " type filter hook input priority 0; policy drop; -" - " # early drop of invalid connections\n" - " ct state invalid drop\n" - " # allow established/related connections -" - " ct state { established, related } accept -" - " # allow from loopback\n" - " iifname lo accept\n" - " # allow icmp\n" - " ip protocol icmp accept\n" - " ip6 nexthdr icmpv6 accept\n" - (string-join port-rules "\n" - 'suffix) - " # reject everything else\n" - " reject with icmpx type port-unreachable -" - " }\n" - " chain forward {\n" - " type filter hook forward priority 0; policy drop; -" - " }\n" - " chain output {\n" - " type filter hook output priority 0; policy accept; -" - " }\n" - "}\n")))) - -;; Generic Desktop for Qt, GTP -(define* (desktop-services-for-system #:optional (system (or (%current-target-system) - (%current-system)))) - - ;; - ;; GUIX DEFAULT - ;; - - ;; List of services typically useful for a "desktop" use case. - (cons* (service screen-locker-service-type - (screen-locker-configuration (name "xlock") - (program (file-append xlockmore - "/bin/xlock")))) - - ;; Add udev rules for MTP devices so that non-root users can access them. - (simple-service 'mtp udev-service-type (list libmtp)) - ;; Add udev rules for scanners. - (service sane-service-type) - ;; Add polkit rules, so that non-root users in the wheel group can - ;; perform administrative tasks (similar to "sudo"). - polkit-wheel-service - - ;; Allow desktop users to also mount NTFS and NFS file systems - ;; without root. - (simple-service 'mount-setuid-helpers privileged-program-service-type - (map file-like->setuid-program - (list (file-append nfs-utils "/sbin/mount.nfs") - (file-append ntfs-3g "/sbin/mount.ntfs-3g")))) - - ;; This is a volatile read-write file system mounted at /var/lib/gdm, - ;; to avoid GDM stale cache and permission issues. - gdm-file-system-service - - ;; The global fontconfig cache directory can sometimes contain - ;; stale entries, possibly referencing fonts that have been GC'd, - ;; so mount it read-only. - fontconfig-file-system-service - - ;; NetworkManager and its applet. - (service network-manager-service-type) - (service wpa-supplicant-service-type) ;needed by NetworkManager - (simple-service 'network-manager-applet profile-service-type - (list network-manager-applet)) - (service modem-manager-service-type) - (service usb-modeswitch-service-type) - - ;; The D-Bus clique. - (service avahi-service-type) - (service udisks-service-type) - (service upower-service-type) - (service accountsservice-service-type) - (service cups-pk-helper-service-type) - (service colord-service-type) - (service geoclue-service-type) - (service polkit-service-type) - (service elogind-service-type) - (service dbus-root-service-type) - - (service ntp-service-type) - - (service x11-socket-directory-service-type) - - (service pulseaudio-service-type) - (service alsa-service-type) - - ;; - ;; PANTHERX SPECIFIC - ;; - - (simple-service 'custom-udev-rules udev-service-type - (list libu2f-host)) - - ;; Adding plugdev group once should suffice - (udev-rules-service 'nitro %nitro-key-udev-rule #:groups '("plugdev")) - ;; Using the rules from libfido2 package - (udev-rules-service 'fido2 libfido2) - (udev-rules-service 'yubikey yubikey-personalization) - (udev-rules-service 'coinkite %coinkite-udev-rule) - - ;; Power savings - (service tlp-service-type) - - ;; Bluetooth service - ;; (bluetooth-service #:auto-enable? #t) - (service bluetooth-service-type - (bluetooth-configuration (auto-enable? #t))) - - ;; Prevent overheating - ;; TLP does not conflict with thermald. - (service thermald-service-type) - - ;; Display manager - (service sddm-service-type - (sddm-configuration (minimum-uid 1000) - (theme "px-sddm-theme"))) - - ;; Printing - (service cups-service-type - (cups-configuration (web-interface? #t) - (browsing? #t) - (default-paper-size "a4"))) - - ;; Keychain - (service gnome-keyring-service-type - (gnome-keyring-configuration (pam-services '(("passwd" . passwd) - ("sddm" . login))))) - - ;; SSH is enabled by default but only with SSH key - (service openssh-service-type - (openssh-configuration (permit-root-login 'prohibit-password))) - - ;; Firewall - (service nftables-service-type - (nftables-configuration (ruleset (make-firewall-rules '())))) - - %base-services)) - -(define-syntax %px-desktop-base-services - (identifier-syntax (desktop-services-for-system))) - - -(define %px-desktop-base-minimal-services - (modify-services - %px-desktop-base-services - (delete login-service-type) - (delete agetty-service-type) - (delete mingetty-service-type) - (delete pulseaudio-service-type) - (delete alsa-service-type) - (delete sddm-service-type) - (delete gnome-keyring-service-type) - (delete openssh-service-type)))
\ No newline at end of file diff --git a/px/system/config.scm b/px/system/config.scm deleted file mode 100644 index 415159e..0000000 --- a/px/system/config.scm +++ /dev/null @@ -1,147 +0,0 @@ -;;; Package Repository for GNU Guix -;;; Copyright © 2021-2023 Reza Alizadeh Majd <r.majd@pantherx.org> -;;; Copyright © 2021-2025 Franz Geffke <m@f-a.nz> - -(define-module (px system config) - #:use-module (gnu bootloader) - #:use-module (gnu bootloader u-boot) - #:use-module (gnu services) - #:use-module (gnu system) - #:use-module (gnu system accounts) - #:use-module (gnu system nss) - #:use-module (gnu system file-systems) - #:use-module (gnu system shadow) - #:use-module (nongnu packages linux) - #:use-module (nongnu system linux-initrd) - #:use-module (px packages base) - #:use-module (px services base) - #:use-module (px system os) - #:use-module (guix gexp) - #:use-module (guix channels) - #:use-module (srfi srfi-1) - - #:export (px-core-os - px-desktop-os - px-desktop-ee-os - - px-server-os - px-server-ee-os - - %px-server-open-ports-common) - - ;; Re-export for convenience - #:re-export (%px-core-services - %px-desktop-minmal-services - %px-desktop-services - %px-desktop-ee-services - - %px-server-services - %px-server-ee-services - - %px-core-packages - - %px-desktop-minimal-packages - %px-desktop-packages-gtk - %px-desktop-packages-qt - %px-desktop-packages - %px-desktop-ee-packages - - %px-server-packages - %px-server-ee-packages - - %pantherx-default-channels)) - -;;; -;;; PantherX Desktop OS defintions -;;; - -(define %px-desktop-swap-devices - (list (swap-space - (target "/swapfile")))) - -(define %px-server-open-ports-common - '(("tcp" "ssh" "http" "https"))) - -;;; -;;; CORE -;;; - -(define* (px-core-os os-config - #:key (kernel 'libre) - (templates '()) - (open-ports #f) - (authorized-keys '())) - "returns operating-system definition for px-core-os, based on config" - (make-os os-config - #:kernel kernel - #:open-ports open-ports - #:authorized-keys authorized-keys - #:templates templates - #:default-packages %px-core-packages - #:default-services %px-core-services)) - -;;; -;;; DESKTOP -;;; - -(define* (px-desktop-os os-config - #:key (kernel 'nonlibre) - (templates '()) - (open-ports #f) - (authorized-keys '())) - (make-os (operating-system - (inherit os-config) - (swap-devices (prepare-swap-devices os-config - %px-desktop-swap-devices))) - #:kernel kernel - #:open-ports open-ports - #:authorized-keys authorized-keys - #:templates templates - #:default-packages %px-desktop-packages - #:default-services %px-desktop-services)) - -(define* (px-desktop-ee-os os-config - #:key (kernel 'nonlibre) - (templates '()) - (open-ports #f) - (authorized-keys '())) - (make-os (operating-system - (inherit os-config) - (swap-devices (prepare-swap-devices os-config - %px-desktop-swap-devices))) - #:kernel kernel - #:open-ports open-ports - #:authorized-keys authorized-keys - #:templates templates - #:default-packages %px-desktop-ee-packages - #:default-services %px-desktop-ee-services)) - -;;; -;;; SERVER -;;; - -(define* (px-server-os os-config - #:key (kernel 'libre) - (templates '()) - (open-ports %px-server-open-ports-common) - (authorized-keys '())) - (make-os os-config - #:kernel kernel - #:open-ports open-ports - #:authorized-keys authorized-keys - #:templates templates - #:default-packages %px-server-packages - #:default-services %px-server-services)) - -(define* (px-server-ee-os os-config - #:key (kernel 'libre) - (templates '()) - (open-ports %px-server-open-ports-common) - (authorized-keys '())) - (make-os os-config - #:kernel kernel - #:open-ports open-ports - #:authorized-keys authorized-keys - #:templates templates - #:default-packages %px-server-ee-packages - #:default-services %px-server-ee-services)) diff --git a/px/system/install.scm b/px/system/install.scm index 7451d7e..ab54142 100644 --- a/px/system/install.scm +++ b/px/system/install.scm @@ -20,7 +20,6 @@ #:use-module (gnu system install) #:use-module (nongnu packages linux) #:use-module (px packages setup) - #:use-module (px system config) #:use-module (px system os) #:export (installation-os-nonfree)) |