summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--machines/amd64.scm (renamed from machines/portable-bios.scm)41
-rw-r--r--systems/akashi.scm11
-rw-r--r--systems/ayase.scm13
-rw-r--r--systems/izumi/izumi.scm954
-rw-r--r--systems/izumi/system-files/hosts4
-rw-r--r--systems/mcdowell-old.scm168
-rw-r--r--systems/mcdowell.scm58
-rw-r--r--users/id1000.scm1
8 files changed, 714 insertions, 536 deletions
diff --git a/machines/portable-bios.scm b/machines/amd64.scm
index 5364300..4730607 100644
--- a/machines/portable-bios.scm
+++ b/machines/amd64.scm
@@ -1,10 +1,4 @@
-(define-module (machines portable-bios)
- ;; bootloader-configuration
- #:use-module (gnu bootloader)
-
- ;; grub-bootloader
- #:use-module (gnu bootloader grub)
-
+(define-module (machines amd64)
;; file-system
;; swap-space
#:use-module (gnu system file-systems)
@@ -16,15 +10,6 @@
;; microcode-initrd
#:use-module (nongnu system linux-initrd))
-;; bootloader-configuration
-(define-public (bootloader-configuration* keyboard-layout*)
- (let ((bootloader* grub-bootloader)
- (bootloader-targets (list "/dev/sdb")) ; TODO: generalize the target
- )
- (bootloader-configuration (bootloader bootloader*)
- (targets bootloader-targets)
- (keyboard-layout keyboard-layout*))))
-
;; string ->
;; (list record* file-system)
(define-public (file-systems* host-name*)
@@ -35,7 +20,8 @@
(file-system-root (file-system (type "ext4")
(mount-point "/")
(device root-device))))
- (list file-system-root)))
+ (append %base-file-systems
+ (list file-system-root))))
;; (list record* package)
(define-public firmware*
@@ -46,7 +32,7 @@
microcode-initrd)
;; record* package
-(define-public kernel*
+(define-public kernel-amd64
linux)
;; string ->
@@ -58,3 +44,22 @@
(swap-space* (swap-space (target target*))))
(list swap-space*)))
+
+;;;???????????????????????????????????????????????????????????????????
+
+(define-public (bootloader-device-path host-name)
+ (let*
+ ((close-pipe (@ (ice-9 popen) close-pipe))
+ (open-input-pipe (@ (ice-9 popen) open-input-pipe))
+ (read-line (@ (ice-9 rdelim) read-line))
+ (command-chain (string-append "findmnt -o SOURCE,LABEL "
+ "| grep "
+ host-name
+ " "
+ "| head -n 1 "
+ "| awk '{print $1}' "
+ "| sed 's/[0-9]*$//' "))
+ (port (open-input-pipe command-chain))
+ (output (read-line port)))
+ (close-pipe port)
+ output))
diff --git a/systems/akashi.scm b/systems/akashi.scm
index 0a4ebe3..0084d7f 100644
--- a/systems/akashi.scm
+++ b/systems/akashi.scm
@@ -1,4 +1,5 @@
-(define-module (systems akashi))
+(define-module (systems akashi)
+ #:use-module (users id1000))
(define root-partition
((@ (gnu system file-systems) file-system)
@@ -33,8 +34,7 @@
'adb-udev
(@ (gnu packages android) android-udev-rules))))))
-(define (users)
- (use-modules (users id1000))
+(define users
(list uid1000-account))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -45,8 +45,7 @@
(machines thinkpad-x200)
(nongnu packages linux)
(suweren commons sudoers)
- (suweren system)
- (users id1000))
+ (suweren system))
(let* ((patter-placeholder #f)
(timezone* "Europe/Warsaw"))
((@ (gnu system) operating-system)
@@ -56,7 +55,7 @@
(host-name host-name*)
(file-systems (file-systems))
(swap-devices (swap-devices* host-name*))
- (users (users))
+ (users users)
(timezone timezone*)
(locale polish-locale-string)
(locale-definitions %suweren-locale-definitions)
diff --git a/systems/ayase.scm b/systems/ayase.scm
index 1c14e8d..bc10886 100644
--- a/systems/ayase.scm
+++ b/systems/ayase.scm
@@ -1,4 +1,7 @@
-(define-module (systems ayase))
+(define-module (systems ayase)
+ #:use-module ((suweren services)
+ #:prefix suweren-services:)
+ #:use-module (users id1000))
(define efi-filesystem-uuid
((@ (gnu system uuid) uuid)
@@ -43,8 +46,7 @@
ruby))))
(define (home-services)
- (use-modules (gnu services guix)
- (users id1000))
+ (use-modules (gnu services guix))
(let ((uid1000-home-environment* (uid1000-home-environment host-name)))
((@ (gnu services) service)
guix-home-service-type
@@ -114,7 +116,7 @@
efi-partition)))
(define services
- (append (@ (suweren services) %distribution-services)
+ (append suweren-services:%distribution-services
(list (gc-workaround-service)
(home-services)
(libvirt-service)
@@ -130,8 +132,7 @@
(swap-label "-2"))
(define (users)
- (use-modules (gnu system accounts)
- (users id1000))
+ (use-modules (gnu system accounts))
(append (@ (gnu system shadow) %base-user-accounts)
(list uid1000-account)))
diff --git a/systems/izumi/izumi.scm b/systems/izumi/izumi.scm
index 8595e5d..809ccdc 100644
--- a/systems/izumi/izumi.scm
+++ b/systems/izumi/izumi.scm
@@ -1,430 +1,520 @@
(define-module (systems izumi izumi)
- #:use-module (suweren commons sudoers))
+ #:use-module (users id1000))
(define radicale-keys "/secrets/radicale/keys")
(define dovecot-keys "/secrets/dovecot")
-( use-modules
- ( gnu )
- ( gnu services syncthing )
- ( guix records )
- ( ice-9 match )
- ( nongnu packages linux )
- ( nongnu system linux-initrd )
- (suweren system))
-
-( use-package-modules
- admin certs kde-frameworks kde-multimedia kde-pim kde-plasma kde-utils mail
- version-control )
-
-( use-service-modules
- base certbot cgit desktop mail shepherd ssh version-control web xorg )
-
-(use-modules (channels)
- (gnu)
- (gnu home)
- (gnu home services)
- (gnu home services shells)
- (gnu packages emacs-xyz))
-
-(use-modules
- (gnu)
- (gnu home services)
- (guix build-system emacs)
- (guix git-download)
- ((guix licenses)
- #:prefix license:)
- (guix packages))
-
-(use-package-modules base emacs-xyz gawk)
-
-(use-modules
- (gnu services)
- (gnu home services)
- (gnu packages password-utils)
- (guix gexp))
-
-(use-modules
- (gnu home services shells)
- (gnu services)
- (gnu services guix))
-
-(define nginx-accounts
- (list (user-group (name "nginx")
- (system? #t))
- (user-account (name "nginx")
- (group "nginx")
- (supplementary-groups '("git"))
- (system? #t)
- (comment "nginx server user")
- (home-directory "/var/empty")
- (shell (file-append (specification->package "shadow")
- "/sbin/nologin")))))
+(define (nginx-accounts)
+ (use-modules (gnu packages)
+ (guix gexp))
+ (list ((@ (gnu system accounts) user-group)
+ (name "nginx")
+ (system? #t))
+ ((@ (gnu system accounts) user-account)
+ (name "nginx")
+ (group "nginx")
+ (supplementary-groups '("git"))
+ (system? #t)
+ (comment "nginx server user")
+ (home-directory "/var/empty")
+ (shell (file-append (specification->package "shadow")
+ "/sbin/nologin")))))
+
+(define (nginx-service-type*)
+ (use-modules (gnu services)
+ (gnu services web)
+ (gnu system shadow))
+ ((@ (gnu services) service-type)
+ (inherit nginx-service-type)
+ (extensions (map (lambda (extension)
+ (if (eq? ((@ (gnu services) service-extension-target)
+ extension)
+ account-service-type)
+ ((@ (gnu services) service-extension)
+ account-service-type
+ (const (nginx-accounts)))
+ extension))
+ ((@ (gnu services) service-type-extensions)
+ nginx-service-type)))))
(define nginx-service-type*
- (service-type (inherit nginx-service-type)
- (extensions (map (lambda (extension)
- (if (eq? (service-extension-target extension)
- account-service-type)
- (service-extension account-service-type
- (const nginx-accounts))
- extension))
- (service-type-extensions nginx-service-type)))))
-
-(define hosts-izumi
- (local-file "system-files/hosts"))
+ (nginx-service-type*))
;;;???????????????????????????????????????????????????????????????????
+(define (certbot)
+ (use-modules (gnu services certbot))
+ ((@ (gnu services) service)
+ ((@ (gnu services) service-type)
+ (inherit certbot-service-type)
+ (extensions (map (lambda (extension)
+ (if (eq? ((@ (gnu services) service-extension-target)
+ extension)
+ nginx-service-type)
+ ((@ (gnu services) service-extension)
+ nginx-service-type*
+ (@@ (gnu services certbot)
+ certbot-nginx-server-configurations))
+ extension))
+ ((@ (gnu services) service-type-extensions)
+ certbot-service-type))))
+ ((@ (gnu services certbot) certbot-configuration)
+ (certificates
+ (list
+ ((@ (gnu services certbot) certificate-configuration)
+ (deploy-hook
+ (program-file
+ "nginx-deploy-hook"
+ ((@ (guix gexp) gexp)
+ (let
+ ((pid (call-with-input-file "/var/run/nginx/pid" read)))
+ (kill pid SIGHUP)))))
+ (domains
+ (list
+ "marekpasnikowski.pl"
+ "git.marekpasnikowski.pl"
+ "radicale.marekpasnikowski.pl")))))
+ (email "marek@marekpasnikowski.pl")
+ (webroot "/srv/www/marek/marekpasnikowski.pl"))))
+
+(define (cgit-izumi)
+ (use-modules (gnu packages version-control)
+ (gnu services cgit)
+ (gnu services version-control))
+ ((@ (gnu services) service)
+ ((@ (gnu services) service-type)
+ (inherit cgit-service-type)
+ (extensions (map (lambda (extension)
+ (if (eq? ((@ (gnu services) service-extension-target)
+ extension)
+ nginx-service-type)
+ ((@ (gnu services) service-extension)
+ nginx-service-type*
+ cgit-configuration-nginx-config)
+ extension))
+ ((@ (gnu services) service-type-extensions)
+ cgit-service-type))))
+ ((@ (gnu services cgit) cgit-configuration)
+ (nginx
+ (list
+ ((@ (gnu services web) nginx-server-configuration)
+ (locations
+ (list
+ (git-http-nginx-location-configuration
+ ((@ (gnu services version-control) git-http-configuration)
+ (git-root "/var/lib/gitolite/repositories")
+ (uri-path "/git")))
+ ((@ (gnu services web) nginx-location-configuration)
+ (body
+ (list
+ "fastcgi_param HTTP_HOST $server_name ;"
+ "fastcgi_param PATH_INFO $uri ;"
+ "fastcgi_param QUERY_STRING $args ;"
+ "fastcgi_param SCRIPT_FILENAME $document_root/lib/cgit/cgit.cgi ;"
+ "fastcgi_pass 127.0.0.1:9000 ;"))
+ (uri "@cgit"))
+ ((@ (gnu services web) nginx-location-configuration)
+ (body (list "root /srv/www/marek/marekpasnikowski.pl/ ;"))
+ (uri "/.well-known"))))
+ (listen (list "192.168.10.2:443 ssl"))
+ (root cgit)
+ (server-name (list "git.marekpasnikowski.pl"))
+ (ssl-certificate
+ "/etc/letsencrypt/live/marekpasnikowski.pl/fullchain.pem")
+ (ssl-certificate-key
+ "/etc/letsencrypt/live/marekpasnikowski.pl/privkey.pem")
+ (try-files (list "$uri" "@cgit")))))
+ (repositories
+ (list
+ ((@ (gnu services cgit) repository-cgit-configuration)
+ (hide? #t)
+ (path "/srv/git/marek/packages"))))
+ (repository-directory "/var/lib/gitolite/repositories"))))
+
+(define (desktop-services-izumi)
+ (use-modules (gnu services base)
+ (gnu services desktop)
+ (gnu services xorg))
+ ((@ (gnu services) modify-services)
+ (@ (gnu services desktop) %desktop-services)
+ (elogind-service-type
+ configuration =>
+ ((@ (gnu services desktop) elogind-configuration)
+ (inherit configuration)
+ (handle-lid-switch 'ignore)
+ (handle-lid-switch-docked 'ignore)
+ (handle-lid-switch-external-power 'ignore)))
+ (gdm-service-type
+ configuration =>
+ ((@ (gnu services xorg) gdm-configuration)
+ (inherit configuration)
+ (auto-suspend? #f)
+ (wayland? #t)))
+ (guix-service-type
+ configuration =>
+ (let*
+ ((non-guix.pub
+ (string-append
+ "( public-key ( ecc ( curve Ed25519 )"
+ "( q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98# ) ) )"))
+ (authorized-keys
+ (append
+ %default-authorized-guix-keys
+ (list (plain-file "non-guix.pub" non-guix.pub))))
+ (extra-options
+ (list "--gc-keep-derivations=yes" "--gc-keep-outputs=yes"))
+ (substitute-urls
+ (append
+ %default-substitute-urls
+ (list "https://substitutes.nonguix.org"))))
+ ((@ (gnu services base) guix-configuration)
+ (inherit configuration)
+ (authorized-keys authorized-keys)
+ (extra-options extra-options)
+ (substitute-urls substitute-urls))))))
+
+(define (etc-mailname)
+ (simple-service 'etc-files
+ etc-service-type
+ (list `("mailname" ,(plain-file "mailname"
+ "marekpasnikowski.pl\n")))))
+
+(define (fcgiwrap)
+ ((@ (gnu services) service)
+ fcgiwrap-service-type
+ ((@ (gnu services web) fcgiwrap-configuration)
+ (user "git")
+ (group "git"))))
+
+(define (gitolite)
+ ((@ (gnu services) service)
+ gitolite-service-type
+ ((@ (gnu services version-control) gitolite-configuration)
+ (rc-file ((@ (gnu services version-control) gitolite-rc-file)
+ (umask #o0027)))
+ (admin-pubkey (plain-file "gitolite-admin.pub"
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK4THTYnHCc/ihCJNKJtGTNu1zCnLndbMHnxnrxzJk+N marek@izumi\n")))))
+
+(define (home-services)
+ (use-modules (channels)
+ (gnu home services)
+ (gnu packages base)
+ (gnu packages emacs-xyz)
+ (gnu packages gawk)
+ (guix build-system emacs)
+ (guix git-download)
+ ((guix licenses)
+ #:prefix license:))
+ ((@ (gnu services) service)
+ (@ (gnu services guix) guix-home-service-type)
+ `(("marek" ,((@ (gnu home) home-environment)
+ (packages (map specification->package+output
+ (list "dconf-editor"
+ "emacs"
+ "emacs-org-modern"
+ "emacs-paredit"
+ "font-google-noto"
+ "font-google-noto-emoji"
+ "font-google-noto-sans-cjk"
+ "font-google-noto-serif-cjk"
+ "git"
+ "gnupg"
+ "gnome-tweaks"
+ "noweb"
+ "pinentry"
+ "pwgen"
+ "unzip"
+ "zip")))
+ (services (append (list izumi-channels-service-type)
+ (list
+ (simple-service
+ 'emacs-home-profile
+ home-profile-service-type
+ (append
+ (list emacs-guix emacs-nix-mode)
+ (list
+ (let
+ ((commit* "wip-algo-tn"))
+ ((@ (guix packages) package)
+ (name "emacs-org-fc")
+ (version (git-version "0.1.2" "0" commit*))
+ (source
+ ((@ (guix packages) origin)
+ (method git-fetch)
+ (uri
+ ((@ (guix git-download) git-reference)
+ (url "https://git.marekpasnikowski.pl/org-fc.git")
+ (commit commit*)))
+ (file-name (git-file-name name version))
+ (sha256 ((@ (guix packages) base32)
+ '"1i8ii1garx2pdg08a12yzsd0fhwdzcpxp9m97zj8m5s275i8ccaj"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:include ((@ (guix gexp) gexp)
+ (cons* "\\.awk$" "\\.org$" %default-include))
+ #:exclude ((@ (guix gexp) gexp)
+ (cons "^test/" %default-exclude))
+ #:tests? #t
+ #:test-command
+ ((@ (guix gexp) gexp)
+ (list
+ "emacs"
+ "--batch"
+ "-L" "."
+ "-L" "tests/"
+ "-l" "tests/org-fc-filter-test.el"
+ "-l" "tests/org-fc-indexer-test.el"
+ "-l" "tests/org-fc-review-data-test.el"
+ "-f" "ert-run-tests-batch-and-exit"))
+ #:phases
+ ((@ (guix gexp) gexp)
+ (modify-phases
+ %standard-phases
+ (add-after
+ 'unpack
+ 'qualify-paths
+ (lambda*
+ (#:key inputs
+ #:allow-other-keys)
+ (substitute*
+ "org-fc-awk.el"
+ (("\"find ")
+ (string-append
+ "\""
+ (search-input-file inputs "/bin/find")
+ " "))
+ (("\"gawk ")
+ (string-append
+ "\""
+ (search-input-file inputs "/bin/gawk")
+ " "))
+ (("\"xargs ")
+ (string-append
+ "\""
+ (search-input-file inputs "/bin/xargs")
+ " ")))))))))
+ (inputs (list findutils gawk))
+ (propagated-inputs (list emacs-hydra))
+ (home-page "https://www.leonrische.me/fc/index.html")
+ (synopsis "Spaced repetition system for Emacs Org mode")
+ (description
+ (string-append
+ "Org-fc is a spaced-repetition system for Emacs' Org mode.\n"
+ "It allows you to mark headlines in a file as flashcards, turning pieces of\n"
+ "knowledge you want to learn into a question-answer test. These cards are\n"
+ "reviewed at regular interval. After each review, the next review interval is\n"
+ "calculated based on how well you remembered the contents of the card.\n"))
+ (license license:gpl3+))))))
+ (simple-service 'home-files
+ home-files-service-type
+ (list (list ".config/emacs/init.el"
+ ((@ (guix gexp) local-file)
+ "home-files/emacs-configuration.el" ))
+ (list ".gnus"
+ ((@ (guix gexp) local-file)
+ "home-files/gnus-configuration.el"))
+ (list ".gitconfig"
+ ((@ (guix gexp) local-file)
+ "home-files/gitconfig"))
+ (list ".config/git/ignore"
+ ;; https://github.com/github/gitignore/blob/main/Global/Emacs.gitignore
+ ((@ (guix gexp) local-file)
+ "home-files/git-ignore.conf"))))
+ (simple-service
+ 'environment-variables
+ home-environment-variables-service-type
+ `(("EDITOR" . "emacsclient -nw"))))
+ (list
+ (let*
+ ((and "&& ")
+ (collect-garbage "sudo guix gc -d 7d ")
+ (configuration-prefix
+ "/home/marek/Publiczny/src/deployment/systems/izumi/")
+ (pull-guix "guix pull ")
+ (reconfigure-home
+ (string-append
+ "guix home delete-generations 7d ; "
+ "guix home reconfigure "
+ configuration-prefix
+ "home-configuration.scm "))
+ (reconfigure-system
+ (string-append
+ "sudo guix system delete-generations 7d ; "
+ "sudo guix system reconfigure "
+ configuration-prefix
+ "izumi.scm "))
+ (update-system
+ (string-append
+ pull-guix
+ and
+ reconfigure-system
+ ;; and
+ ;; reconfigure-home
+ and
+ collect-garbage)))
+ (simple-service
+ 'bash-extension
+ (@ (gnu home services shells) home-bash-service-type)
+ ((@ (gnu home services shells) home-bash-extension)
+ (aliases
+ `(("collect-garbage" . ,collect-garbage)
+ ("edit" . "$EDITOR")
+ ("pull-guix" . ,pull-guix)
+ ("reconfigure-home" . ,reconfigure-home)
+ ("reconfigure-system" . ,reconfigure-system)
+ ("update-system" . ,update-system)))
+ (bash-profile
+ (list
+ (mixed-text-file
+ "newline-prompt"
+ "PS1=${PS1%?}\n"
+ "PS1=${PS1%?}\\n'$ '\n"
+ "PS1=\"\\n$PS1\""))))))))))))))
+
(define keyboard-layout-izumi
- (keyboard-layout "pl"))
+ ((@ (gnu system keyboard) keyboard-layout)
+ "pl"))
+
+(define (mapped-devices-izumi)
+ (use-modules (gnu system mapped-devices))
+ (list ((@ (gnu system mapped-devices) mapped-device)
+ (source "/dev/sda2")
+ (target "izumi")
+ (type luks-device-mapping))))
+
+(define mapped-devices-izumi
+ (mapped-devices-izumi))
+
+(define (nginx-izumi)
+ ((@ (gnu services) service)
+ nginx-service-type*
+ ((@ (gnu services web) nginx-configuration)
+ (server-blocks
+ (list
+ ;; Top-Level
+ ((@ (gnu services web) nginx-server-configuration)
+ (locations
+ (list
+ ((@ (gnu services web) nginx-location-configuration)
+ (uri "/.well-known" )
+ (body
+ (list "root /srv/www/marek/marekpasnikowski.pl ;")))))
+ (listen (list "192.168.10.2:443 ssl"))
+ (root "/srv/www/marek/marekpasnikowski.pl")
+ (server-name ( list "marekpasnikowski.pl"))
+ (ssl-certificate
+ "/etc/letsencrypt/live/marekpasnikowski.pl/fullchain.pem")
+ (ssl-certificate-key
+ "/etc/letsencrypt/live/marekpasnikowski.pl/privkey.pem"))
+ ;; Radicale
+ ((@ (gnu services web) nginx-server-configuration)
+ (locations
+ (list
+ ((@ (gnu services web) nginx-location-configuration)
+ (body
+ (list
+ "proxy_pass http://localhost:5232/ ;"
+ "proxy_set_header X-Script-Name \"\" ;"
+ "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;"
+ "proxy_set_header Host $http_host ;"
+ "proxy_pass_header Authorization ;"))
+ (uri "/"))
+ ((@ (gnu services web) nginx-location-configuration)
+ (body
+ (list "root /srv/www/marek/marekpasnikowski.pl ;"))
+ (uri "/.well-known"))))
+ (listen (list "192.168.10.2:443 ssl"))
+ (server-name (list "radicale.marekpasnikowski.pl"))))))))
+
+(define (openssh)
+ (use-modules (gnu services ssh))
+ ((@ (gnu services) service)
+ openssh-service-type))
+
+(define (plasma-desktop)
+ ((@ (gnu services) service)
+ plasma-desktop-service-type))
+
+(define (radicale)
+ (use-modules (gnu services mail))
+ ((@ (gnu services) service)
+ radicale-service-type
+ ((@ (gnu services mail) radicale-configuration)
+ (auth ((@ (gnu services mail) radicale-auth-configuration)
+ (type 'htpasswd)
+ (htpasswd-filename radicale-keys)
+ (htpasswd-encryption 'plain)))
+ (storage ((@ (gnu services mail) radicale-storage-configuration)
+ (filesystem-folder "/data/radicale/collections"))))))
+
+(define swap-device-izumi-1-label
+ ((@ (gnu system file-systems) file-system-label)
+ "izumi-swap-f"))
+
+(define (syncthing)
+ (use-modules (gnu services syncthing))
+ ((@ (gnu services) service)
+ syncthing-service-type
+ ((@ (gnu services syncthing) syncthing-configuration)
+ (user "marek"))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(define (bootloader-izumi)
+ (use-modules (gnu bootloader grub))
+ ((@ (gnu bootloader) bootloader-configuration)
+ (bootloader grub-efi-bootloader)
+ (keyboard-layout keyboard-layout-izumi)
+ (targets (list "/boot/efi"))))
+
+(define (file-systems-izumi)
+ (use-modules (gnu system file-systems))
+ (append %base-file-systems
+ (list ((@ (gnu system file-systems) file-system)
+ (device "/dev/sda1")
+ (mount-point "/boot/efi")
+ (type "vfat"))
+ ((@ (gnu system file-systems) file-system)
+ (dependencies mapped-devices-izumi)
+ (device "/dev/mapper/izumi")
+ (mount-point "/")
+ (type "xfs")))))
+
+(define (groups-izumi)
+ (use-modules (gnu system shadow))
+ (append %base-groups
+ (list
+ ((@ (gnu system accounts) user-group)
+ (name "vmail")
+ (system? #t)))))
+
+(define host-name-izumi
+ "izumi")
(define services-izumi
- (append
- ( modify-services
- %desktop-services
- ( elogind-service-type
- configuration =>
- ( elogind-configuration
- ( inherit configuration )
- ( handle-lid-switch 'ignore )
- ( handle-lid-switch-docked 'ignore )
- ( handle-lid-switch-external-power 'ignore ) ) )
- ( gdm-service-type
- configuration =>
- ( gdm-configuration
- ( inherit configuration )
- ( auto-suspend? #f )
- ( wayland? #t ) ) )
- ( guix-service-type
- configuration =>
- ( let*
- ( ( non-guix.pub
- ( string-append
- "( public-key ( ecc ( curve Ed25519 )"
- "( q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98# ) ) )" ) )
- ( authorized-keys
- ( append
- %default-authorized-guix-keys
- ( list ( plain-file "non-guix.pub" non-guix.pub ) ) ) )
- ( extra-options
- ( list "--gc-keep-derivations=yes" "--gc-keep-outputs=yes" ) )
- ( substitute-urls
- ( append
- %default-substitute-urls
- ( list "https://substitutes.nonguix.org" ) ) ) )
- ( guix-configuration
- ( inherit configuration )
- ( authorized-keys authorized-keys )
- ( extra-options extra-options )
- ( substitute-urls substitute-urls ) ) ) ) )
- ( list
- (@ (users id1000) dkim-service)
- (@ (users id1000) dovecot-service)
- (@ (users id1000) smtp-service)
- (service (service-type (inherit certbot-service-type)
- (extensions (map (lambda (extension)
- (if (eq? (service-extension-target extension)
- nginx-service-type)
- (service-extension nginx-service-type*
- (@@ (gnu services certbot)
- certbot-nginx-server-configurations))
- extension))
- (service-type-extensions certbot-service-type))))
- ( certbot-configuration
- ( certificates
- ( list
- ( certificate-configuration
- ( deploy-hook
- ( program-file
- "nginx-deploy-hook"
- #~
- ( let
- ( ( pid ( call-with-input-file "/var/run/nginx/pid" read ) ) )
- ( kill pid SIGHUP ) ) ) )
- ( domains
- ( list
- "marekpasnikowski.pl"
- "git.marekpasnikowski.pl"
- "radicale.marekpasnikowski.pl" ) ) ) ) )
- ( email "marek@marekpasnikowski.pl" )
- ( webroot "/srv/www/marek/marekpasnikowski.pl" ) ) )
- (service (service-type (inherit cgit-service-type)
- (extensions (map (lambda (extension)
- (if (eq? (service-extension-target extension)
- nginx-service-type)
- (service-extension nginx-service-type*
- cgit-configuration-nginx-config)
- extension))
- (service-type-extensions cgit-service-type))))
- ( cgit-configuration
- ( nginx
- ( list
- ( nginx-server-configuration
- ( locations
- ( list
- ( git-http-nginx-location-configuration
- ( git-http-configuration
- ( git-root "/var/lib/gitolite/repositories" )
- ( uri-path "/git" ) ) )
- ( nginx-location-configuration
- ( body
- ( list
- "fastcgi_param HTTP_HOST $server_name ;"
- "fastcgi_param PATH_INFO $uri ;"
- "fastcgi_param QUERY_STRING $args ;"
- "fastcgi_param SCRIPT_FILENAME $document_root/lib/cgit/cgit.cgi ;"
- "fastcgi_pass 127.0.0.1:9000 ;" ) )
- ( uri "@cgit" ) )
- ( nginx-location-configuration
- ( body ( list "root /srv/www/marek/marekpasnikowski.pl/ ;" ) )
- ( uri "/.well-known" ) ) ) )
- ( listen ( list "192.168.10.2:443 ssl" ) )
- ( root cgit )
- ( server-name ( list "git.marekpasnikowski.pl" ) )
- ( ssl-certificate
- "/etc/letsencrypt/live/marekpasnikowski.pl/fullchain.pem" )
- ( ssl-certificate-key
- "/etc/letsencrypt/live/marekpasnikowski.pl/privkey.pem" )
- ( try-files ( list "$uri" "@cgit" ) ) ) ) )
- ( repositories
- ( list
- ( repository-cgit-configuration
- ( hide? #t )
- ( path "/srv/git/marek/packages" ) ) ) )
- ( repository-directory "/var/lib/gitolite/repositories" ) ) )
- (service fcgiwrap-service-type
- (fcgiwrap-configuration (user "git")
- (group "git")))
- ( service gitolite-service-type
- ( gitolite-configuration
- ( rc-file ( gitolite-rc-file ( umask #o0027 ) ) )
- ( admin-pubkey ( plain-file "gitolite-admin.pub"
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK4THTYnHCc/ihCJNKJtGTNu1zCnLndbMHnxnrxzJk+N marek@izumi\n") ) ) )
- ( service plasma-desktop-service-type )
- ( service syncthing-service-type ( syncthing-configuration ( user "marek" ) ) )
- (service nginx-service-type*
- ( nginx-configuration
- ( server-blocks
- ( list
- ;; Top-Level
- ( nginx-server-configuration
- ( locations
- ( list
- ( nginx-location-configuration
- ( uri "/.well-known" )
- ( body
- ( list "root /srv/www/marek/marekpasnikowski.pl ;" ) ) ) ) )
- ( listen ( list "192.168.10.2:443 ssl" ) )
- ( root "/srv/www/marek/marekpasnikowski.pl" )
- ( server-name ( list "marekpasnikowski.pl" ) )
- ( ssl-certificate
- "/etc/letsencrypt/live/marekpasnikowski.pl/fullchain.pem" )
- ( ssl-certificate-key
- "/etc/letsencrypt/live/marekpasnikowski.pl/privkey.pem" ) )
- ;; Radicale
- ( nginx-server-configuration
- ( locations
- ( list
- ( nginx-location-configuration
- ( body
- ( list
- "proxy_pass http://localhost:5232/ ;"
- "proxy_set_header X-Script-Name \"\" ;"
- "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;"
- "proxy_set_header Host $http_host ;"
- "proxy_pass_header Authorization ;" ) )
- ( uri "/" ) )
- ( nginx-location-configuration
- ( body
- ( list "root /srv/www/marek/marekpasnikowski.pl ;" ) )
- ( uri "/.well-known" ) ) ) )
- ( listen ( list "192.168.10.2:443 ssl" ) )
- ( server-name ( list "radicale.marekpasnikowski.pl" ) ) ) ) ) ) )
- ( service openssh-service-type )
- ( service radicale-service-type
- ( radicale-configuration
- ( auth
- ( radicale-auth-configuration
- ( type 'htpasswd )
- ( htpasswd-filename radicale-keys )
- ( htpasswd-encryption 'plain ) ) ) ) )
- ( simple-service 'base-profile profile-service-type
- ( append %base-packages
- ( list ) ) )
- ( simple-service
- 'nss-profile
- profile-service-type
- ( list nss-certs ) )
- ( simple-service
- 'etc-files
- etc-service-type
- ( list
- `( "mailname" ,( plain-file "mailname" "marekpasnikowski.pl\n" ) ) ) )
- (service guix-home-service-type
- `(("marek" ,(home-environment (packages (map specification->package+output
- (list "dconf-editor"
- "emacs"
- "emacs-org-modern"
- "emacs-paredit"
- "font-google-noto"
- "font-google-noto-emoji"
- "font-google-noto-sans-cjk"
- "font-google-noto-serif-cjk"
- "git"
- "gnupg"
- "gnome-tweaks"
- "noweb"
- "pinentry"
- "pwgen"
- "unzip"
- "zip")))
- (services (append (list izumi-channels-service-type)
- (list
- (simple-service
- 'emacs-home-profile
- home-profile-service-type
- (append
- (list emacs-guix emacs-nix-mode)
- (list
- (let
- ((commit* "wip-algo-tn"))
- (package
- (name "emacs-org-fc")
- (version (git-version "0.1.2" "0" commit*))
- (source
- (origin
- (method git-fetch)
- (uri
- (git-reference
- (url "https://git.marekpasnikowski.pl/org-fc.git")
- (commit commit*)))
- (file-name (git-file-name name version))
- (sha256 (base32 "1i8ii1garx2pdg08a12yzsd0fhwdzcpxp9m97zj8m5s275i8ccaj"))))
- (build-system emacs-build-system)
- (arguments
- (list
- #:include #~ (cons* "\\.awk$" "\\.org$" %default-include)
- #:exclude #~ (cons "^test/" %default-exclude)
- #:tests? #t
- #:test-command
- #~
- (list
- "emacs"
- "--batch"
- "-L" "."
- "-L" "tests/"
- "-l" "tests/org-fc-filter-test.el"
- "-l" "tests/org-fc-indexer-test.el"
- "-l" "tests/org-fc-review-data-test.el"
- "-f" "ert-run-tests-batch-and-exit")
- #:phases
- #~
- (modify-phases
- %standard-phases
- (add-after
- 'unpack
- 'qualify-paths
- (lambda*
- (#:key inputs
- #:allow-other-keys)
- (substitute*
- "org-fc-awk.el"
- (("\"find ")
- (string-append
- "\""
- (search-input-file inputs "/bin/find")
- " "))
- (("\"gawk ")
- (string-append
- "\""
- (search-input-file inputs "/bin/gawk")
- " "))
- (("\"xargs ")
- (string-append
- "\""
- (search-input-file inputs "/bin/xargs")
- " "))))))))
- (inputs (list findutils gawk))
- (propagated-inputs (list emacs-hydra))
- (home-page "https://www.leonrische.me/fc/index.html")
- (synopsis "Spaced repetition system for Emacs Org mode")
- (description
- (string-append
- "Org-fc is a spaced-repetition system for Emacs' Org mode.\n"
- "It allows you to mark headlines in a file as flashcards, turning pieces of\n"
- "knowledge you want to learn into a question-answer test. These cards are\n"
- "reviewed at regular interval. After each review, the next review interval is\n"
- "calculated based on how well you remembered the contents of the card.\n"))
- (license license:gpl3+))))))
- (simple-service 'home-files
- home-files-service-type
- (list (list ".config/emacs/init.el"
- (local-file "home-files/emacs-configuration.el" ))
- (list ".gnus"
- (local-file "home-files/gnus-configuration.el"))
- (list ".gitconfig"
- (local-file "home-files/gitconfig"))
- (list ".config/git/ignore"
- ;; https://github.com/github/gitignore/blob/main/Global/Emacs.gitignore
- (local-file "home-files/git-ignore.conf"))))
- (simple-service
- 'environment-variables
- home-environment-variables-service-type
- `(("EDITOR" . "emacsclient -nw"))))
- (list
- (let*
- ((and "&& ")
- (collect-garbage "sudo guix gc -d 7d ")
- (configuration-prefix
- "/home/marek/Publiczny/src/deployment/systems/izumi/")
- (pull-guix "guix pull ")
- (reconfigure-home
- (string-append
- "guix home delete-generations 7d ; "
- "guix home reconfigure "
- configuration-prefix
- "home-configuration.scm "))
- (reconfigure-system
- (string-append
- "sudo guix system delete-generations 7d ; "
- "sudo guix system reconfigure "
- configuration-prefix
- "izumi.scm "))
- (update-system
- (string-append
- pull-guix
- and
- reconfigure-system
- ;; and
- ;; reconfigure-home
- and
- collect-garbage)))
- (simple-service
- 'bash-extension
- home-bash-service-type
- (home-bash-extension
- (aliases
- `(("collect-garbage" . ,collect-garbage)
- ("edit" . "$EDITOR")
- ("pull-guix" . ,pull-guix)
- ("reconfigure-home" . ,reconfigure-home)
- ("reconfigure-system" . ,reconfigure-system)
- ("update-system" . ,update-system)))
- (bash-profile
- (list
- (mixed-text-file
- "newline-prompt"
- "PS1=${PS1%?}\n"
- "PS1=${PS1%?}\\n'$ '\n"
- "PS1=\"\\n$PS1\""))))))))))))))))
+ (append (desktop-services-izumi)
+ (list dkim-service
+ dovecot-service
+ smtp-service
+ (certbot)
+ (cgit-izumi)
+ (etc-mailname)
+ (fcgiwrap)
+ (gitolite)
+ (home-services)
+ (nginx-izumi)
+ (openssh)
+ (plasma-desktop)
+ (radicale)
+ (syncthing))))
(define swap-device-izumi-1
- (swap-space (target "/dev/sda3")))
+ ((@ (gnu system file-systems) swap-space)
+ (target swap-device-izumi-1-label)))
(define (users-izumi)
(use-modules (gnu system shadow)
- (users id1000)
(users vmail))
(append %base-user-accounts
(list uid1000-account
@@ -433,46 +523,22 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (operating-system-izumi)
- (operating-system
- ( bootloader
- ( bootloader-configuration
- ( bootloader grub-efi-bootloader )
- ( keyboard-layout keyboard-layout-izumi )
- ( targets ( list "/boot/efi" ) ) ) )
- ( mapped-devices
- ( list
- ( mapped-device
- ( source "/dev/sda2" )
- ( target "izumi" )
- ( type luks-device-mapping ) ) ) )
- ( file-systems
- ( append
- %base-file-systems
- ( list
- ( file-system
- ( device "/dev/sda1" )
- ( mount-point "/boot/efi" )
- ( type "vfat" ) )
- ( file-system
- ( dependencies mapped-devices )
- ( device "/dev/mapper/izumi" )
- ( mount-point "/" )
- ( type "xfs" ) ) ) ) )
- ( firmware ( list linux-firmware ) )
- ( groups
- ( append
- %base-groups
- ( list
- ( user-group
- ( name "vmail" )
- ( system? #t ) )) ) )
- ( host-name "izumi" )
- (hosts-file hosts-izumi)
+ (use-modules (nongnu packages linux)
+ (nongnu system linux-initrd)
+ (suweren commons sudoers)
+ (suweren system))
+ ((@ (gnu system) operating-system)
+ (bootloader (bootloader-izumi))
(kernel linux)
(keyboard-layout keyboard-layout-izumi)
(initrd microcode-initrd)
+ (firmware (list linux-firmware))
+ (host-name host-name-izumi)
+ (mapped-devices mapped-devices-izumi)
+ (file-systems (file-systems-izumi))
(swap-devices (list swap-device-izumi-1))
(users (users-izumi))
+ (groups (groups-izumi))
(timezone "Europe/Warsaw")
(locale polish-locale-string)
(locale-definitions %suweren-locale-definitions)
diff --git a/systems/izumi/system-files/hosts b/systems/izumi/system-files/hosts
deleted file mode 100644
index bc92c36..0000000
--- a/systems/izumi/system-files/hosts
+++ /dev/null
@@ -1,4 +0,0 @@
-127.0.0.1 localhost izumi
-::1 localhost izumi
-
-81.190.248.246 marekpasnikowski git.marekpasnikowski.pl \ No newline at end of file
diff --git a/systems/mcdowell-old.scm b/systems/mcdowell-old.scm
new file mode 100644
index 0000000..f915087
--- /dev/null
+++ b/systems/mcdowell-old.scm
@@ -0,0 +1,168 @@
+(define-module (systems mcdowell-old)
+ #:use-module (users id1000))
+
+(define host-name*
+ "mcdowell")
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(define install-grub-mcdowell
+ ((@ (guix gexp) gexp)
+ (lambda (bootloader device mount-point)
+ (let ((grub (string-append bootloader "/sbin/grub-install"))
+ (install-dir (string-append mount-point "/boot")))
+ ;; Install GRUB on DEVICE which is mounted at MOUNT-POINT. If DEVICE
+ ;; is #f, then we populate the disk-image rooted at MOUNT-POINT.
+ (if device
+ (begin
+ ;; Tell 'grub-install' that there might be a LUKS-encrypted
+ ;; /boot or root partition.
+ (setenv "GRUB_ENABLE_CRYPTODISK" "y")
+
+ ;; Hide potentially confusing messages from the user, such as
+ ;; "Installing for i386-pc platform."
+ (invoke/quiet grub
+ "--no-floppy"
+ "--target=x86_64-efi"
+ "--removable"
+ "--no-nvram"
+ "--boot-directory"
+ install-dir
+ "--efi-directory"
+ "/boot/efi")
+
+ ;; (invoke/quiet grub
+ ;; "--no-floppy"
+ ;; "--target=i386-efi"
+ ;; "--removable"
+ ;; "--no-nvram"
+ ;; "--boot-directory"
+ ;; install-dir
+ ;; "--efi-directory"
+ ;; "/boot/efi")
+
+ (invoke/quiet grub "--no-floppy" "--target=i386-pc"
+ "--boot-directory" install-dir
+ device))
+ ;; When creating a disk-image, only install a font and GRUB modules.
+ (let* ((fonts (string-append install-dir "/grub/fonts")))
+ (mkdir-p fonts)
+ (copy-file (string-append bootloader "/share/grub/unicode.pf2")
+ (string-append fonts "/unicode.pf2"))
+ (copy-recursively (string-append bootloader "/lib/")
+ install-dir)))))))
+
+(define home-environments-mcdowell
+ `((,uid1000-name ,(uid1000-home-environment host-name*))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(define bootloader-target-mcdowell
+ ((@ (machines amd64) bootloader-device-path) host-name*))
+
+(define (desktop-services-mcdowell)
+ (use-modules (suweren system))
+ %suweren-services)
+
+(define grub-custom-bootloader-mcdowell
+ (let
+ ((grub-mkrescue-bootloader (@ (gnu bootloader grub) grub-mkrescue-bootloader)))
+ ((@ (gnu bootloader) bootloader)
+ (inherit grub-mkrescue-bootloader)
+ (installer install-grub-mcdowell))))
+
+(define keyboard-layout-mcdowell
+ ((@ (gnu system keyboard) keyboard-layout)
+ "pl"))
+
+(define (guix-home-service-mcdowell)
+ (use-modules (gnu services guix))
+ ((@ (gnu services) service)
+ guix-home-service-type
+ home-environments-mcdowell))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(define bootloader-mcdowell
+ ((@ (gnu bootloader) bootloader-configuration)
+ (bootloader grub-custom-bootloader-mcdowell)
+ (keyboard-layout keyboard-layout-mcdowell)
+ (targets (list bootloader-target-mcdowell))))
+
+(define (label-mcdowell operating-system)
+ (let*
+ ((operating-system-default-label (@ (gnu system) operating-system-default-label))
+ (default-label-string (operating-system-default-label operating-system)))
+ (string-append host-name*
+ ": "
+ default-label-string)))
+
+(define services-mcdowell
+ (append (desktop-services-mcdowell)
+ (list (guix-home-service-mcdowell))))
+
+(define users-mcdowell
+ (list uid1000-account))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(define-public operating-system*
+ (let
+ ((%base-groups (@ (gnu system shadow) %base-groups))
+ (%base-packages (@ (gnu system) %base-packages))
+ (%base-initrd-modules (@ (gnu system linux-initrd) %base-initrd-modules))
+ (%default-issue (@@ (gnu system) %default-issue))
+ (%default-kernel-arguments (@ (gnu system) %default-kernel-arguments))
+ (%default-locale-libcs (@ (gnu system locale) %default-locale-libcs))
+ (%default-nss (@ (gnu system nss) %default-nss))
+ (%default-privileged-programs (@ (gnu system) %default-privileged-programs))
+ (%setuid-programs (@ (gnu system) %setuid-programs))
+ (%sudoers-specification* (@ (suweren commons sudoers) %sudoers-specification*))
+ (%suweren-locale-definitions (@ (suweren system) %suweren-locale-definitions))
+ (base-pam-services ((@ (gnu system pam) base-pam-services)))
+ (default-skeletons ((@ (gnu system shadow) default-skeletons)))
+ (file-systems* (@ (machines amd64) file-systems*))
+ (firmware* (@ (machines amd64) firmware*))
+ (initrd* (@ (machines amd64) initrd*))
+ (kernel-amd64 (@ (machines amd64) kernel-amd64))
+ (location-mcdowell (and=> ((@ (guix utils) current-source-location))
+ (@ (guix utils) source-properties->location)))
+ (operating-system-default-essential-services (@ (gnu system) operating-system-default-essential-services))
+ (polish-locale-string (@ (suweren system) polish-locale-string))
+ (swap-devices* (@ (machines amd64) swap-devices*)))
+ ((@ (gnu system) operating-system)
+ (kernel kernel-amd64)
+ (kernel-loadable-modules (list))
+ (kernel-arguments %default-kernel-arguments)
+ (hurd #f)
+ (bootloader bootloader-mcdowell)
+ (label (label-mcdowell (@ (gnu system) this-operating-system)))
+ (keyboard-layout keyboard-layout-mcdowell)
+ (initrd initrd*)
+ (initrd-modules %base-initrd-modules)
+ (firmware firmware*)
+ (host-name host-name*)
+ (mapped-devices (list))
+ (file-systems (file-systems* host-name*))
+ (swap-devices (swap-devices* host-name*))
+ (users users-mcdowell)
+ (groups %base-groups)
+ (skeletons default-skeletons)
+ (issue %default-issue)
+ (packages %base-packages)
+ (timezone "Europe/Warsaw")
+ (locale polish-locale-string)
+ (locale-definitions %suweren-locale-definitions)
+ (locale-libcs %default-locale-libcs)
+ (name-service-switch %default-nss)
+ (essential-services (operating-system-default-essential-services (@ (gnu system) this-operating-system)))
+ (services services-mcdowell)
+ (pam-services base-pam-services)
+ (privileged-programs %default-privileged-programs)
+ (setuid-programs %setuid-programs)
+ (sudoers-file %sudoers-specification*)
+ (location location-mcdowell))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+operating-system*
diff --git a/systems/mcdowell.scm b/systems/mcdowell.scm
deleted file mode 100644
index 8b9d3ad..0000000
--- a/systems/mcdowell.scm
+++ /dev/null
@@ -1,58 +0,0 @@
-(define-module (systems mcdowell)
- #:use-module (gnu services) ; service
- #:use-module (gnu services guix) ; guix-home-service-type
- #:use-module (gnu system keyboard) ; keyboard-layout
- #:use-module (machines portable-bios) ; bootloader-configuration*
- ; file-systems*
- ; firmware*
- ; hardware-groups
- ; initrd*
- ; kernel*
- ; swap-devices*
- #:use-module (suweren system) ; %suweren-operating-system
- #:use-module (users id1000) ; uid1000-account
- ; uid1000-home-environment
- ; uid1000-name
- )
-
-;; ;; string
-;; (define host-name*
-;; "mcdowell")
-
-;; ;; (record user-account)
-;; (define users*
-;; (list uid1000-account))
-
-;; ;; record operating-system
-;; (define (operating-system*)
-;; (use-modules (machines portable-bios)
-;; (suweren system))
-;; (let* ((home-environments `((,uid1000-name ,(uid1000-home-environment host-name*))))
-
-;; (guix-home (service guix-home-service-type
-;; home-environments))
-
-;; (keyboard-layout* (keyboard-layout "pl"))
-;; (services* (list guix-home))
-;; (timezone* "Europe/Warsaw")
-;; ;; (locale* "en_US.utf8")
-;; )
-;; ((@ (gnu system) operating-system)
-;; (inherit %suweren-operating-system)
-;; (kernel kernel*)
-;; (bootloader (bootloader-configuration* keyboard-layout*))
-;; (keyboard-layout keyboard-layout*)
-;; (initrd initrd*)
-;; (firmware firmware*)
-;; (host-name host-name*)
-;; (file-systems (file-systems* host-name*))
-;; (swap-devices (swap-devices* host-name*))
-;; (users users*)
-;; (timezone timezone*)
-;; ;; locale*
-;; (services services*))))
-
-;; (define-public operating-system*
-;; (operating-system*))
-
-;; operating-system*
diff --git a/users/id1000.scm b/users/id1000.scm
index 308fc84..81dbbb4 100644
--- a/users/id1000.scm
+++ b/users/id1000.scm
@@ -541,6 +541,7 @@
gitignore-file))
(emacs-packages (list emacs
+ emacs-org
emacs-org-roam
emacs-paredit))
(git-configuration-files (list gitconfig