summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranz Geffke <franz@pantherx.org>2023-12-27 15:02:01 +0000
committerFranz Geffke <franz@pantherx.org>2023-12-27 15:02:01 +0000
commit96dba421d4fca88ede93b69cd46818b1caa9de77 (patch)
tree20776d1b63700972bd9d12637a4f1deaf8fd7325
parenteb420b501874f5fedb538dabfb0fb4d28e33c5fe (diff)
export new package and service set for wayland-desktops
-rw-r--r--px/packages/base.scm12
-rw-r--r--px/packages/desktop.scm150
-rw-r--r--px/services/base.scm14
-rw-r--r--px/services/desktop.scm108
-rw-r--r--px/system/config.scm16
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
;;;