summaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
Diffstat (limited to 'users')
-rw-r--r--users/id1000.scm215
-rw-r--r--users/id1001.scm81
-rw-r--r--users/uid1000-gitconfig13
-rw-r--r--users/vmail.scm14
4 files changed, 179 insertions, 144 deletions
diff --git a/users/id1000.scm b/users/id1000.scm
index cfc4827..a80f63e 100644
--- a/users/id1000.scm
+++ b/users/id1000.scm
@@ -1,40 +1,42 @@
(define-module (users id1000)
- ;; home-environment
- #:use-module (gnu home)
-
- ;; home-profile-service-type
- ;; home-xdg-configuration-files-service-type
- #:use-module (gnu home services)
-
- ;; gparted
- #:use-module (gnu packages disk)
-
- ;; emacs
- #:use-module (gnu packages emacs)
-
- ;; emacs-org-roam
- ;; emacs-paredit
- #:use-module (gnu packages emacs-xyz)
-
- ;; git
- #:use-module (gnu packages version-control)
-
- ;; simple-service
- #:use-module (gnu services)
-
- ;; user-account
- #:use-module (gnu system shadow)
-
- ;; local-file
#:use-module (guix gexp)
+ #:use-module (ice-9 match)
+ #:use-module ( (deployment users)
+ #:prefix deployment:users:)
+ #:use-module ( (gnu home)
+ #:prefix gnu:home:)
+ #:use-module ( (gnu home services)
+ #:prefix gnu:home:services:)
+ #:use-module ( (gnu home services desktop)
+ #:prefix gnu:home:services:desktop:)
+ #:use-module ( (gnu home services shepherd)
+ #:prefix gnu:home:services:shepherd:)
+ #:use-module ( (gnu home services sound)
+ #:prefix gnu:home:services:sound:)
+ #:use-module ( (gnu packages audio)
+ #:prefix gnu:packages:audio:)
+ #:use-module ( (gnu packages disk)
+ #:prefix gnu:packages:disk:)
+ #:use-module ( (gnu packages kde)
+ #:prefix gnu:packages:kde:)
+ #:use-module ( (gnu packages librewolf)
+ #:prefix gnu:packages:librewolf:)
+ #:use-module ( (gnu packages version-control)
+ #:prefix gnu:packages:version-control:)
+ #:use-module ( (gnu services)
+ #:prefix gnu:services:)
+ #:use-module ( (gnu system accounts)
+ #:prefix gnu:system:accounts:)
+ #:use-module ( (guix records)
+ #:prefix guix:records:)
+ #:use-module ( (sovereign services admin)
+ #:prefix sovereign:services:admin:)
+ #:use-module ( (sovereign services fontutils)
+ #:prefix sovereign:services:fontutils:)
+ #:use-module ( (sovereign systems)
+ #:prefix sovereign:systems:))
- ;; %suweren-home-services
- #:use-module (suweren home)
-
- #:use-module (guix records)
- #:use-module (ice-9 match))
-
-(define-record-type* <dkimproxy-out-signature-configuration>
+(guix:records:define-record-type* <dkimproxy-out-signature-configuration>
dkimproxy-out-signature-configuration
make-dkimproxy-out-signature-configuration
dkimproxy-out-signature-configuration?
@@ -94,7 +96,7 @@
")")
"")))))
-(define-record-type* <dkimproxy-out-configuration>
+(guix:records:define-record-type* <dkimproxy-out-configuration>
dkimproxy-out-configuration
make-dkimproxy-out-configuration
dkimproxy-out-configuration?
@@ -225,27 +227,29 @@
(stop #~ (make-kill-destructor)))))))
(define %dkimproxy-accounts
- (list (user-group (name "dkimproxy")
- (system? #t))
- (user-account (name "dkimproxy")
- (group "dkimproxy")
- (system? #t)
- (comment "Dkimproxy user")
- (home-directory "/var/empty")
- (shell (file-append (@ (gnu packages admin)
- shadow)
- "/sbin/nologin")))))
+ (list (gnu:system:accounts:user-group
+ (name "dkimproxy")
+ (system? #t))
+ (gnu:system:accounts:user-account
+ (name "dkimproxy")
+ (group "dkimproxy")
+ (system? #t)
+ (comment "Dkimproxy user")
+ (home-directory "/var/empty")
+ (shell (file-append (@ (gnu packages admin)
+ shadow)
+ "/sbin/nologin")))))
(define dkimproxy-out-service-type
- (service-type
+ (gnu:services:service-type
(name 'dkimproxy-out)
(description "stub")
(extensions
(list
- (service-extension
- account-service-type
+ (gnu:services:service-extension
+ (@ (gnu system shadow) account-service-type)
(const %dkimproxy-accounts))
- (service-extension
+ (gnu:services:service-extension
(@ (gnu services shepherd) shepherd-root-service-type)
dkimproxy-out-shepherd-service)))))
@@ -440,8 +444,8 @@
"\n"
"# We define some actions\n"
"action receive lmtp \"/var/run/dovecot/lmtp\" rcpt-to virtual <aliases>\n"
+ "action godkim relay host smtp://localhost:10027\n"
"action outbound relay helo \"" domain "\"\n"
- "action godkim relay host smtp://127.0.0.1:10027\n"
"\n"
"# We accept to relay any mail from authenticated users\n"
"match for any from any auth action godkim\n"
@@ -474,7 +478,7 @@
(define dkimproxy-out-configuration*
(dkimproxy-out-configuration
(listen "127.0.0.1:10027")
- (relay "172.0.0.1:10028")
+ (relay "127.0.0.1:10028")
(sender-map `(,dkimproxy-sender-marekpasnikowski))))
(define dovecot-configuration*
@@ -494,76 +498,89 @@
(userdbs (list dovecot-userdb-static-configuration))))
(define groups
- (list "kvm"
+ (list "audio"
+ ;; "libvirt"
+ "netdev"
+ "video"
"wheel"))
(define opensmtpd-configuration*
((@ (gnu services mail) opensmtpd-configuration)
+ (shepherd-requirement (list 'dkimproxy-out
+ 'networking))
(config-file (opensmtpd-config "enp1s0"
"marekpasnikowski.pl"))))
;;;
+(define environment-variables
+ (let
+ ( (l-variables (list '("EDITOR" . "kate -s sesja -b"))))
+ (gnu:services:simple-service 'id1000-environment-variables
+ gnu:home:services:home-environment-variables-service-type
+ l-variables)))
+
(define-public dkim-service
- (service dkimproxy-out-service-type
+ (gnu:services:service dkimproxy-out-service-type
dkimproxy-out-configuration*))
(define-public dovecot-service
- (service (@ (gnu services mail) dovecot-service-type)
+ (gnu:services:service (@ (gnu services mail) dovecot-service-type)
dovecot-configuration*))
(define-public smtp-service
- (service (@ (gnu services mail) opensmtpd-service-type)
+ (gnu:services:service (@ (gnu services mail) opensmtpd-service-type)
opensmtpd-configuration*))
(define-public uid1000-name
"marek")
(define-public uid1000-account
- (user-account (name uid1000-name)
- (group "users")
- (supplementary-groups groups)
- (uid 1000)
- (comment "Marek Paśnikowski")
- (home-directory "/home/marek")))
+ (gnu:system:accounts:user-account
+ (name uid1000-name)
+ (password deployment:users:initial-password)
+ (uid 1000)
+ (group "users")
+ (supplementary-groups groups)
+ (comment "Marek Paśnikowski")
+ (home-directory "/home/marek")))
(define-public uid1000-home-environment
- (lambda (host-name*)
- (let* ((gitconfig-file (local-file "uid1000-gitconfig")) ; TODO modularize
- (gitignore-file (local-file "uid1000-gitignore")) ; TODO review the contents
-
- (gitconfig (list "git/config"
- gitconfig-file))
- (gitignore (list "git/ignore"
- gitignore-file))
-
- (emacs-packages (list emacs
- emacs-org-roam
- emacs-paredit))
- (git-configuration-files (list gitconfig
- gitignore))
- (git-packages (list git))
- (packages (list gparted))
-
- (emacs-software (simple-service 'emacs-packages
- home-profile-service-type
- emacs-packages))
- (git-configuration (simple-service 'git-configuration
- home-xdg-configuration-files-service-type
- git-configuration-files))
- (git-software (simple-service 'git-packages
- home-profile-service-type
- git-packages))
- (profile (simple-service 'user-packages
- home-profile-service-type
- packages))
-
- (%suweren-home-services* (%suweren-home-services host-name*))
- (user-services (list emacs-software
- git-configuration
- git-software
- profile))
+ (let
+ ( (l-gitconfig-file (local-file "uid1000-gitconfig")) ; TODO modularize
+ (l-gitignore-file (local-file "uid1000-gitignore")) ; TODO review the contents
+ (l-home-dbus-service (gnu:services:service gnu:home:services:desktop:home-dbus-service-type))
+ (l-home-pipewire-service (gnu:services:service gnu:home:services:sound:home-pipewire-service-type))
+ (l-home-shepherd-service (gnu:services:service gnu:home:services:shepherd:home-shepherd-service-type)))
+ (let
+ ( (l-gitconfig (list "git/config"
+ l-gitconfig-file))
+ (l-gitignore (list "git/ignore"
+ l-gitignore-file)))
+ (let*
+ ( (l-git-configuration-files (list l-gitconfig
+ l-gitignore))
+ (l-git-configuration (gnu:services:simple-service 'git-configuration
+ gnu:home:services:home-xdg-configuration-files-service-type
+ l-git-configuration-files))
+ (l-user-services (list sovereign:systems:bash-configuration
+ environment-variables
+ l-git-configuration
+ (sovereign:services:fontutils:home-fontconfig-service-type #f
+ #f
+ "Unifont")))
+ (l-services (cons* sovereign:services:admin:update-commands
+ l-home-dbus-service
+ l-home-pipewire-service
+ l-home-shepherd-service
+ l-user-services)))
+ (gnu:home:home-environment
+ (packages (cons* gnu:packages:version-control:git
+ gnu:packages:disk:gparted
+ gnu:packages:librewolf:librewolf
+ sovereign:systems:common-home-environment-packages))
+ (services l-services))))))
- (services* (append %suweren-home-services*
- user-services)))
- (home-environment (services services*)))))
+(define-public name/home-environment
+ (list uid1000-name
+ uid1000-home-environment))
diff --git a/users/id1001.scm b/users/id1001.scm
index 26a76f6..2e53210 100644
--- a/users/id1001.scm
+++ b/users/id1001.scm
@@ -1,45 +1,46 @@
-(define-module (users id1001)
- ;; home-environment
- #:use-module (gnu home)
-
- ;; home-profile-service-type
- ;; home-xdg-configuration-files-service-type
- #:use-module (gnu home services)
-
- ;; simple-service
- #:use-module (gnu services)
-
- ;; user-account
- #:use-module (gnu system shadow)
+;;; SPDX-License-Identifier: GPL-3.0-or-later
+;;; SPDX-FileCopyrightText: 2025 Marek Paśnikowski <marek@marekpasnikowski.pl>
- ;; %suweren-home-services
- #:use-module (suweren home))
-
-;; string
-(define-public uid1001-name
- "lilia")
-
-;; (string) ->
-;; record user-account
-(define-public uid1001-account
- (user-account (name uid1001-name)
- (group "users")
- (uid 1001)
- (comment "Liliana Ruszuk")
- (home-directory "/home/lilia")))
+(define-module (users id1001)
+ #:use-module ( (deployment users)
+ #:prefix deployment:users:)
+ #:use-module ( (gnu home)
+ #:prefix gnu:home:)
+ #:use-module ( (gnu system accounts)
+ #:prefix gnu:system:accounts:)
+ #:use-module ( (nongnu packages mozilla)
+ #:prefix nongnu:packages:mozilla:)
+ #:use-module ( (sovereign services admin)
+ #:prefix sovereign:services:admin:)
+ #:use-module ( (sovereign services fontutils)
+ #:prefix sovereign:services:fontutils:)
+ #:use-module ( (sovereign systems)
+ #:prefix sovereign:systems:))
-;; record home-environment
-(define-public uid1001-home-environment
- (lambda (host-name*)
- (let* ((packages (list ))
+(define name
+ "janusz")
- (profile (simple-service 'user-packages
- home-profile-service-type
- packages))
+(define home-environment
+ (let
+ ( (l-fontconfig (sovereign:services:fontutils:home-fontconfig-service-type #t
+ #t
+ "Noto")))
+ (let
+ ( (l-services (list sovereign:systems:bash-configuration
+ sovereign:services:admin:update-commands
+ l-fontconfig)))
+ (gnu:home:home-environment
+ (packages (cons* nongnu:packages:mozilla:firefox
+ sovereign:systems:common-home-environment-packages))
+ (services l-services)))))
- (%suweren-home-services* (%suweren-home-services host-name*))
- (user-services (list profile))
+(define-public name/home-environment
+ (list name
+ home-environment))
- (services* (append %suweren-home-services*
- user-services)))
- (home-environment (services services*)))))
+(define-public user-account
+ (gnu:system:accounts:user-account
+ (name name)
+ (password deployment:users:initial-password)
+ (group "users")
+ (supplementary-groups (list "wheel"))))
diff --git a/users/uid1000-gitconfig b/users/uid1000-gitconfig
index 300f906..c8cfb5d 100644
--- a/users/uid1000-gitconfig
+++ b/users/uid1000-gitconfig
@@ -1,10 +1,13 @@
+[core]
+quotePath = false
+
[commit]
- gpgsign = true
+gpgsign = true
[user]
- email = marek@marekpasnikowski.pl
- name = Marek Paśnikowski
- signingkey = 6D81B1207711899F
+email = marek@marekpasnikowski.pl
+name = Marek Paśnikowski
+signingkey = 6D81B1207711899F
[push]
- autoSetupRemote = true
+autoSetupRemote = true
diff --git a/users/vmail.scm b/users/vmail.scm
new file mode 100644
index 0000000..95ba916
--- /dev/null
+++ b/users/vmail.scm
@@ -0,0 +1,14 @@
+(define-module (users vmail)
+ #:use-module ((gnu system accounts)
+ #:prefix gnu:system:accounts:))
+
+(define vmail-name
+ "vmail")
+
+(define-public vmail-account
+ (gnu:system:accounts:user-account
+ (name vmail-name)
+ (group vmail-name)
+ (comment "used to own and manage mailboxes")
+ (home-directory "/home/vmail")
+ (system? #t)))