summaryrefslogtreecommitdiff
path: root/px
diff options
context:
space:
mode:
Diffstat (limited to 'px')
-rw-r--r--px/packages/base.scm86
-rw-r--r--px/packages/desktop.scm159
-rw-r--r--px/services/base.scm66
-rw-r--r--px/services/desktop.scm277
-rw-r--r--px/system/config.scm147
-rw-r--r--px/system/install.scm1
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))