diff options
-rw-r--r-- | px/packages/base.scm | 12 | ||||
-rw-r--r-- | px/packages/desktop.scm | 150 | ||||
-rw-r--r-- | px/services/base.scm | 14 | ||||
-rw-r--r-- | px/services/desktop.scm | 108 | ||||
-rw-r--r-- | px/system/config.scm | 16 |
5 files changed, 157 insertions, 143 deletions
diff --git a/px/packages/base.scm b/px/packages/base.scm index 3bded38..da1ad3f 100644 --- a/px/packages/base.scm +++ b/px/packages/base.scm @@ -25,6 +25,7 @@ #:use-module (px packages setup) #:use-module (px packages themes) #:export (%px-core-packages + %px-desktop-packages-core %px-desktop-packages-gtk %px-desktop-packages-qt %px-desktop-packages @@ -51,15 +52,24 @@ ;;; DESKTOP ;;; +;; Stuff for every desktop; QT / GTK on X / Wayland +(define %px-desktop-packages-core + (append %common-desktop-applications + %px-core-packages)) + +;; GTK-specific (define %px-desktop-packages-gtk - (append %gtk-desktop-applications %common-desktop-applications + (append %gtk-desktop-applications + %common-desktop-applications %px-core-packages)) +;; QT-specific (define %px-desktop-packages-qt (append %qt-desktop-applications %common-desktop-applications %px-core-packages)) +;; Default (define %px-desktop-packages (append %px-desktop-packages-qt)) diff --git a/px/packages/desktop.scm b/px/packages/desktop.scm index e9fe6d8..0737350 100644 --- a/px/packages/desktop.scm +++ b/px/packages/desktop.scm @@ -83,7 +83,6 @@ %gtk-desktop-applications %qt-desktop-applications)) - (define-public px-terminal-launcher (package (name "px-terminal-launcher") @@ -113,31 +112,14 @@ ;; PantherX OS Desktop default Applications and Services ;; +;; Stuff for every desktop; QT / GTK on X / Wayland (define %common-desktop-applications - (list ;; Default applications and so on... - ;; px-contacts - ;; px-backup - ;; px-hub-gui - ;; px-software - ;; px-software-assets-meta - - ;; Browser - firefox - - ;; Connectivity - ;; qbittorrent - - ;; Office - libreoffice + (list libreoffice aspell aspell-dict-en aspell-dict-de aspell-dict-uk - ;; Look and Feel - px-sddm-theme ;; Login theme - xcursor-themes - gnome-themes-standard font-liberation font-adobe-source-sans-pro font-adobe-source-code-pro @@ -147,135 +129,65 @@ font-vazir font-openmoji - ;; WIP - ;; lxqt-arc-dark-theme - - ;; Utils - ;; Userspace virtual file system for GIO gvfs print-manager - ;; U2F pam-u2f libu2f-host libu2f-server - ;; Compression compression:zip compression:unzip unrar - ;; Command line utils curl neofetch wget - xrandr - ;; Secrets - ;; Displaying certificates and accessing key stores gcr gnome-keyring - ;; seahorse - - ;; Bluetooth + blueman)) +;; GTK-specific (define %gtk-desktop-applications - (list + (list syncthing-gtk - ;; Excludes syncthingtray - ;; Does not work on Gnome wayland - ;; px-user-services-gtk - syncthing-gtk + ;; Look and feel + px-sddm-theme + xcursor-themes + gnome-themes-standard ;; PGP seahorse)) +;; QT-specific (define %qt-desktop-applications - (list - ;; Primarily for LXQt - paper-icon-theme - sddm-darkine-theme - breeze-gtk - - - ;; Includes syncthingtray (QT) - ;; px-user-services - - ;; Default applications and so on... - ;; px-first-login-welcome-screen - ;; px-desktop-wiki - lxqt-archiver - ;; px-settings-ui - - ;; Office - speedcrunch - - ;; Multimedia - qimgv - strawberry - mpv + (list px-sddm-theme + xcursor-themes + gnome-themes-standard + paper-icon-theme + sddm-darkine-theme + breeze-gtk - ;; Connectivity - ;; This package contains a systray applet for NetworkManager - ;; Does not work on Gnome wayland - network-manager-applet - featherpad - qpdfview + speedcrunch - ;; Utils - flameshot - pinentry-qt - lxmenu-data + qimgv + strawberry + mpv - albert-launcher + network-manager-applet + featherpad + qpdfview - ;; PGP - kleopatra + lxqt-archiver + flameshot + pinentry-qt + lxmenu-data - ;; Clipboard manager - copyq)) + albert-launcher - ;; Account Service Plugins - ;; px-accounts-service-plugin-etesync ;; TODO: uncomment whenever we had a working package for `px-contact-calendar` - ;; px-accounts-service-plugin-activity-watch - ;; px-accounts-service-plugin-claws-mail - ;; px-accounts-service-plugin-github - ;; px-accounts-service-plugin-gitlab - ;; px-accounts-service-plugin-oauth2-github - ;; px-accounts-service-plugin-oauth2-mastodon - ;; px-accounts-service-plugin-oauth2-google - ;; px-accounts-service-providers-mail - ;; px-accounts-service-plugin-imap - ;; px-accounts-service-plugin-maestral - ;; px-accounts-service-plugin-smtp - ;; px-accounts-service-plugin-carddav - ;; px-accounts-service-plugin-s3 - ;; px-accounts-service-plugin-backup-local - ;; px-accounts-service-plugin-etherscan - ;; px-accounts-service-plugin-blockio - ;; px-accounts-service-plugin-cryptocurrency - ;; px-accounts-service-plugin-discourse - - ;; Hub Service Plugins - ;; px-hub-service-plugin-claws-mail - ;; px-hub-service-plugin-github - ;; px-hub-service-plugin-gitlab - ;; px-hub-service-plugin-discourse - ;; px-hub-service-plugin-mastodon - - ;; Time Tracking Plugins - ;; px-time-tracking-plugin-gitlab - - ;; Settings Service Plugins - ;; px-settings-service-plugin-accounts - ;; px-settings-service-plugin-backup - ;; px-settings-service-plugin-desktop-search - ;; px-settings-service-plugin-maintenance - ;; px-settings-service-plugin-software - ;; px-settings-service-plugin-theme - ;; px-settings-service-plugin-theme-dark-bright)) + kleopatra -; (define %pantherx-desktop-i3 -; (list i3-wm i3lock i3lock-fancy i3status -; dmenu i3blocks)) + ;; Clipboard manager + copyq)) diff --git a/px/services/base.scm b/px/services/base.scm index b7b732c..85cef19 100644 --- a/px/services/base.scm +++ b/px/services/base.scm @@ -32,10 +32,8 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:export (%px-core-services - ;; for custom desktops (for ex. xfce) - ;; without lxqt - ;; %px-desktop-services-base - + + %px-desktop-core-services %px-desktop-services %px-desktop-ee-services @@ -60,11 +58,13 @@ ;;; ;;; DESKTOP ;;; px-desktop-os services -;;; px-new-desktop services ;;; +(define %px-desktop-core-services + (append %desktop-services-plain)) + (define %px-desktop-services - (append %px-desktop-services-base)) + (append %desktop-services)) ;;; ;;; @@ -76,7 +76,7 @@ ;; TODO: Does not include default desktop (append (list (service px-device-identity-service-type) (service px-user-identity-service-type)) - %px-desktop-services-base)) + %desktop-services)) ;;; ;;; SERVER diff --git a/px/services/desktop.scm b/px/services/desktop.scm index a97cfb0..1348adf 100644 --- a/px/services/desktop.scm +++ b/px/services/desktop.scm @@ -44,7 +44,8 @@ create-swap-space-service - %px-desktop-services-base)) + %desktop-services + %desktop-services-plain)) ;; ;; allow netdev group to control network manger @@ -141,6 +142,7 @@ " }\n" "}\n")))) +;; Generic Desktop for Qt, GTP (define* (desktop-services-for-system #:optional (system (or (%current-target-system) (%current-system)))) ;; List of services typically useful for a "desktop" use case. @@ -254,5 +256,107 @@ %base-services)) -(define-syntax %px-desktop-services-base +(define-syntax %desktop-services (identifier-syntax (desktop-services-for-system))) + +;; Generic Desktop for use with other locker's and DE's; for ex. Sway on Wayland +(define* (desktop-services-for-system-plain #:optional (system (or (%current-target-system) + (%current-system)))) + ;; List of services typically useful for a "desktop" use case. + + ;; Since GDM depends on Rust (gdm -> gnome-shell -> gjs -> mozjs -> rust) + ;; and Rust is currently unavailable on non-x86_64 platforms, default to + ;; SDDM there (FIXME). + (cons* + ;; 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 setuid-program-service-type + (map (lambda (program) + (setuid-program + (program program))) + (list (file-append nfs-utils "/sbin/mount.nfs") + (file-append ntfs-3g "/sbin/mount.ntfs-3g")))) + + ;; 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 + (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)) + + (ledger-wallet-service) + (nitro-key-service) + (coinkite-service) + + ;; 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) + + ;; 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) + ("greetd" . 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 %desktop-services-plain + (identifier-syntax (desktop-services-for-system-plain))) diff --git a/px/system/config.scm b/px/system/config.scm index e972926..7b6dc40 100644 --- a/px/system/config.scm +++ b/px/system/config.scm @@ -26,7 +26,6 @@ px-desktop-os px-desktop-ee-os - px-new-desktop px-server-os px-server-ee-os @@ -41,6 +40,7 @@ ;; Re-export for convenience #:re-export (%px-core-services + %px-desktop-core-services %px-desktop-services %px-desktop-ee-services @@ -53,6 +53,7 @@ %px-core-packages + %px-desktop-core-packages %px-desktop-packages-gtk %px-desktop-packages-qt %px-desktop-packages @@ -140,19 +141,6 @@ #:default-packages %px-desktop-ee-packages #:default-services %px-desktop-ee-services)) -(define* (px-new-desktop os-config - #:key (kernel 'nonlibre) - (open-ports #f) - (authorized-keys '()) - (templates '())) - (make-os os-config - #:kernel kernel - #:open-ports open-ports - #:authorized-keys authorized-keys - #:templates templates - #:default-packages %px-desktop-packages - #:default-services %px-desktop-services)) - ;;; ;;; SERVER ;;; |