From bc591dcedf45b80f70661f33c42c68dbd581e901 Mon Sep 17 00:00:00 2001 From: jdlugosz963 Date: Mon, 11 Aug 2025 17:36:57 +0200 Subject: Migrate to RDE --- src/jd/config.scm | 23 ++ src/jd/features/mail.scm | 115 ++++++++++ src/jd/features/networking.scm | 81 +++++++ src/jd/host.scm | 47 ++++ src/jd/user.scm | 507 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 773 insertions(+) create mode 100644 src/jd/config.scm create mode 100644 src/jd/features/mail.scm create mode 100644 src/jd/features/networking.scm create mode 100644 src/jd/host.scm create mode 100644 src/jd/user.scm (limited to 'src') diff --git a/src/jd/config.scm b/src/jd/config.scm new file mode 100644 index 0000000..f79df44 --- /dev/null +++ b/src/jd/config.scm @@ -0,0 +1,23 @@ +(define-module (jd config) + #:use-module (jd host) + #:use-module (jd user) + #:use-module (rde features) + #:use-module (gnu services) + #:use-module (gnu system) + #:use-module (gnu services guix) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match)) + + +(define-public jd-config + (rde-config + (integrate-he-in-os? #t) + (features + (append + (list (feature-nonfree-kernel)) + %host-features + %user-features)))) + +(define-public %os + (rde-config-operating-system jd-config)) + diff --git a/src/jd/features/mail.scm b/src/jd/features/mail.scm new file mode 100644 index 0000000..f5c3536 --- /dev/null +++ b/src/jd/features/mail.scm @@ -0,0 +1,115 @@ +(define-module (jd features mail) + #:use-module (rde packages) + #:use-module (rde exceptions) + #:use-module (rde features) + #:use-module (rde predicates) + #:use-module (rde features emacs) + #:use-module (rde features mail) + #:use-module ((rde features mail providers) #:prefix mail-providers:) + #:use-module (gnu packages mail) + #:use-module (gnu packages emacs-xyz) + #:use-module (rde packages emacs-xyz) + #:use-module (rde packages mail) + #:use-module (rde serializers elisp) + #:use-module (rde home services mail) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu home services) + #:use-module (gnu home-services mail) + #:use-module (gnu home services mcron) + #:use-module (gnu home-services version-control) + #:use-module (gnu home services xdg) + + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (guix gexp) + #:use-module (guix deprecation) + #:use-module (guix diagnostics) + #:use-module (guix i18n) + + #:export (feature-l2md* feature-mail-mcron)) + +(define* (feature-l2md* + #:key + (l2md l2md)) + "Configure l2md MDA." + (ensure-pred file-like? l2md) + + (define (get-home-services config) + (require-value 'mail-directory-fn config) + (require-value 'mailing-lists config) + (define mail-dir ((get-value 'mail-directory-fn config) config)) + (define mls (filter (lambda (x) (eq? (mailing-list-synchronizer x) 'l2md)) + (get-value 'mailing-lists config))) + (define (get-repo-config ml) + (let ((repo-config (mailing-list-config ml))) + (if (eq? %unset-value (l2md-repo-maildir repo-config)) + (l2md-repo + (inherit repo-config) + (maildir (string-append + mail-dir "/lists/" (mailing-list-fqda ml) "/archive"))) + repo-config))) + ;; + ;; Applying patches + + (define add-ml-tag + (map (lambda (x) + (format + #f "notmuch tag +~a -- path:lists/~a/**" + ;; TODO: Use new tag not to retag already existing entities. + ;; Do it before new tag will be romved + ;; TODO: Fix order of items in post-new hook + (mailing-list-id x) (mailing-list-fqda x))) + mls)) + + (list + (simple-service + 'l2md-add-tags-to-mailing-list + home-notmuch-service-type + (home-notmuch-extension + (post-new + (list + #~(begin (for-each system '#$add-ml-tag)))))) + + (service + home-l2md-service-type + (home-l2md-configuration + (l2md l2md) + (oneshot 1) + (repos (map get-repo-config mls)))))) + + (feature + (name 'l2md) + (home-services-getter get-home-services) + (values `((l2md . ,l2md))))) + +(define* (feature-mail-mcron + #:key + (time-spec '(next-minute + (range 0 60 20)))) + "Configure mcron to invoke other email commands based on the other +features that have been enabled." + (define (get-home-services config) + (list + (when (get-value 'isync config) + (let* ((sync-cmd (list `(,((get-value 'mbsync config) config) "-a"))) + (notmuch-cmd (if (get-value 'notmuch config) + (list `(,(file-append (get-value 'notmuch config) "/bin/notmuch") + "new")) + (list))) + (l2md-cmd (if (get-value 'l2md config) + (list `(,(file-append (get-value 'l2md config) "/bin/l2md"))) + (list)))) + (simple-service + 'isync-mcron-job + home-mcron-service-type + (list + #~(job '#$time-spec + (lambda () + (setenv "DISPLAY" ":0") + #$@(map (lambda (x) `(system* ,@x)) + (append sync-cmd l2md-cmd notmuch-cmd)))))))))) + + (feature + (name 'mail-mcron) + (home-services-getter get-home-services))) diff --git a/src/jd/features/networking.scm b/src/jd/features/networking.scm new file mode 100644 index 0000000..59eeb90 --- /dev/null +++ b/src/jd/features/networking.scm @@ -0,0 +1,81 @@ +(define-module (jd features networking) + #:use-module (rde features) + #:use-module (rde predicates) + + #:use-module (gnu services) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (rde home services i2p) + #:use-module (gnu services networking) + #:use-module (gnu system nss) + ;; #:use-module (rde system services networking) + #:use-module (rde system services accounts) + + #:use-module (gnu packages i2p) + #:use-module (gnu packages networking) + #:use-module (gnu packages ssh) + #:use-module (gnu packages gnome) + #:use-module (rde packages) + + #:use-module (guix gexp) + + #:export (feature-networking*)) + +(define* (feature-networking* + #:key + (iwd-autoconnect? #t) + (network-manager network-manager) + (network-manager-applet network-manager-applet) + (network-manager-vpn-plugins '()) + mdns?) + "Configure iwd and everything." + (ensure-pred file-like? network-manager) + (ensure-pred file-like? network-manager-applet) + + (define f-name 'networking) + (define (get-home-services config) + + (list + (simple-service 'network-manager-applet-package + home-profile-service-type + (list network-manager-applet)) + ;; TODO: Disable nm-applet notification by default + ;; gsettings set org.gnome.nm-applet disable-connected-notifications true + (simple-service + 'networking-nm-applet-shepherd-service + home-shepherd-service-type + (list + (shepherd-service + (provision '(nm-applet)) + (requirement '(dbus)) + (stop #~(make-kill-destructor)) + (start #~(make-forkexec-constructor + (list #$(file-append network-manager-applet "/bin/nm-applet") + "--indicator") + #:log-file (string-append + (getenv "XDG_STATE_HOME") "/log" + "/nm-applet.log")))))))) + + (define (get-system-services config) + (list + (service network-manager-service-type + (network-manager-configuration + (network-manager network-manager) + (vpn-plugins network-manager-vpn-plugins) + (shepherd-requirement '(iwd)))) + (service (@@ (rde system services networking) iwd-service-type) + ((@@ (rde system services networking) iwd-configuration) + (main-conf + `((Settings ((AutoConnect . ,iwd-autoconnect?))))))) + (service modem-manager-service-type) + (service usb-modeswitch-service-type))) + + (feature + (name f-name) + (values `((,f-name . #t) + ,@(if mdns? + `((name-service . ,%mdns-host-lookup-nss) + (mdns . #t)) + '()))) + (home-services-getter get-home-services) + (system-services-getter get-system-services))) diff --git a/src/jd/host.scm b/src/jd/host.scm new file mode 100644 index 0000000..7071a3f --- /dev/null +++ b/src/jd/host.scm @@ -0,0 +1,47 @@ +(define-module (jd host) + #:use-module (rde features base) + #:use-module (rde features system) + #:use-module (rde features wm) + #:use-module (gnu system file-systems) + #:use-module (gnu system mapped-devices) + #:use-module (ice-9 match)) + +(define-public %host-features + (list + (feature-host-info + #:host-name "berserker" + #:timezone "Europe/Warsaw") + (feature-file-systems + #:mapped-devices (list (mapped-device + (source (uuid + "1f2b1bf2-89fe-4e2c-8b40-c460572bb776")) + (target "crypthome") + (type luks-device-mapping))) + #:file-systems (list + (file-system + (mount-point "/") + (device (uuid + "c895e61e-1a5e-470f-b7aa-a502fc0b8596" + 'ext4)) + (type "ext4")) + (file-system + (mount-point "/boot/efi") + (device (uuid "9669-0171" + 'fat32)) + (type "vfat")) + (file-system + (mount-point "/home") + (device "/dev/mapper/crypthome") + (type "ext4") + (dependencies + (list (mapped-device + (source (uuid + "1f2b1bf2-89fe-4e2c-8b40-c460572bb776")) + (target "crypthome") + (type luks-device-mapping))))))) + (feature-kanshi + #:extra-config + `((profile laptop ((output eDP-1 enable))) + (profile docked ((output eDP-1 disable) + (output DP-3 enable))))) + (feature-hidpi))) diff --git a/src/jd/user.scm b/src/jd/user.scm new file mode 100644 index 0000000..7c54a30 --- /dev/null +++ b/src/jd/user.scm @@ -0,0 +1,507 @@ +(define-module (jd user) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (gnu home-services ssh) + #:use-module (gnu home services xdg) + #:use-module (gnu packages) + #:use-module (gnu packages emacs-xyz) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages guile-xyz) + #:use-module (gnu services) + #:use-module (gnu services nix) + + #:use-module (guix channels) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix inferior) + #:use-module (guix packages) + + #:use-module (jd features mail) + #:use-module (jd features networking) + + #:use-module (nongnu packages linux) + #:use-module (nongnu system linux-initrd) + + #:use-module (rde features) + #:use-module (rde packages) + #:use-module (rde packages aspell) + + #:use-module (srfi srfi-1)) + + +(define-syntax-rule (use-rde-features-modules module ...) + (use-modules (rde features module) ...)) + +(define-syntax-rule (use-rde-home-services-modules module ...) + (use-modules (rde features module) ...)) + +(use-rde-features-modules + android base bittorrent clojure containers + documentation emacs emacs-xyz finance fontutils + gnupg gtk guile image-viewers irc keyboard + libreoffice linux llm mail markup networking ocaml + password-utils presets security-token shells + shellutils sourcehut ssh system terminals tmux uml + version-control video virtualization web-browsers wm xdg python) + +(use-rde-home-services-modules + emacs shells video wm) + +(define* (mail-acc id user #:optional (type 'migadu)) + "Make a simple mail-account with gmail type by default." + (mail-account + (id id) + (fqda user) + (type type))) + +(define* (mail-lst id fqda urls) + "Make a simple mailing-list." + (mailing-list + (id id) + (fqda fqda) + (config (l2md-repo + (name (symbol->string id)) + (urls urls))))) + +(define-public %base-features + (list + (feature-backlight #:step 10) + (feature-networking* #:network-manager-vpn-plugins (list network-manager-openvpn) + #:mdns? #t) + (feature-base-services) + (feature-base-packages) + (feature-desktop-services) + (feature-xdg + #:xdg-user-directories-configuration + (home-xdg-user-directories-configuration + (music "$HOME/music") + (videos "$HOME/videos") + (pictures "$HOME/pictures") + (documents "$HOME/documents") + (download "$HOME/downloads") + (publicshare "$HOME/sync") + (desktop "$HOME") + (templates "$HOME"))) + (feature-pipewire) + (feature-shepherd))) + +(define-public %desktop-features + (list + (feature-sway-run-on-tty #:sway-tty-number 2) + (feature-gtk3 #:gtk-theme (make-theme "Adwaita-dark" gnome-themes-extra)) + (feature-fonts #:default-font-size 14) + (feature-transmission #:auto-start? #f) + (feature-sway + #:extra-config + '((input type:touchpad + ((tap enabled) + (middle_emulation enabled))) + (workspace_layout tabbed) + (bindsym $mod+q layout tabbed) + (bindsym $mod+a layout stacking) + (bindsym $mod+z layout toggle split) + (default_border none) + (default_floating_border pixel 3) + ;; (default_border normal 3) + ;; (default_floating_border normal 3) + ;; (gaps inner 0) + (output * bg "#181818" solid_color) + (client.focused "#181818" "#383838" "#d8d8d8" "#7cafc2") + (client.focused_inactive "#181818" "#282828" "#b8b8b8" "#7cafc2") + (client.unfocused "#181818" "#282828" "#b8b8b8" "#7cafc2") + (client.urgent "#181818" "#ab4642" "#f8f8f8" "#181818") + (bindsym $mod+h focus left) + (bindsym $mod+j focus down) + (bindsym $mod+k focus up) + (bindsym $mod+l focus right) + + (unbindsym --to-code $mod+Shift+l) + (bindsym --to-code $mod+Escape exec $lock) + + (bindsym $mod+Shift+h move left) + (bindsym $mod+Shift+j move down) + (bindsym $mod+Shift+k move up) + (bindsym $mod+Shift+l move right))) + (feature-waybar + ;; #:base16-css base16-solarized-dark + #:waybar-modules + (list + (waybar-sway-workspaces + #:format-icons + `(,@(map + (lambda (x) (cons + (number->string x) + (number->string x))) + (iota 10 1)) + ("urgent" . ) + ("default" . ))) + (waybar-idle-inhibitor) + (waybar-temperature) + (waybar-cpu) + (waybar-battery #:intense? #f) + (waybar-tray) + (waybar-clock))) + (feature-foot) + (feature-yt-dlp) + (feature-libreoffice) + (feature-emacs-power-menu) + (feature-sway-screenshot) + (feature-swaynotificationcenter) + (feature-swayidle) + (feature-swaylock) + (feature-batsignal) + (feature-imv) + (feature-mpv) + (feature-librewolf) + (feature-ledger))) + +(define-public %mail-features + (list + (feature-isync #:isync-verbose #t) + (feature-mail-mcron) + (feature-l2md*) + (feature-msmtp))) + +(define-public %cli-features + (list + (feature-zsh #:enable-zsh-autosuggestions? #t) + (feature-git #:extra-config '((gpg ((program . "gpg"))))) + (feature-manpages) + (feature-vterm) + (feature-bash) + (feature-direnv) + (feature-guile) + (feature-ssh))) + +(define* (feature-emacs-personal-config) + (define f-name 'personal-emacs-config) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + f-name + config + `((with-eval-after-load 'geiser-mode + (defun jd/guix-repl () + (interactive) + (let ((geiser-guile-binary '("guix" "repl")) + (geiser-guile-load-path (cons "~/dotfiles/rde" geiser-guile-load-path))) + (geiser 'guile)))) + + (with-eval-after-load 'notmuch + (setq-default notmuch-search-oldest-first nil)) + + (with-eval-after-load 'paredit + (defun jd/paredit-RET () + "Wraps `paredit-RET' to provide a sensible minibuffer experience" + (interactive) + (cond + ((minibufferp) + (read--expression-try-read)) + ((and (eq major-mode 'inferior-emacs-lisp-mode) + (string-prefix-p "*ielm*" (buffer-name))) + (ielm-return)) + (t + (paredit-RET)))) + (bind-key "" 'jd/paredit-RET paredit-mode-map) + + (dolist (hook '(emacs-lisp-mode-hook + eval-expression-minibuffer-setup-hook + ielm-mode-hook + lisp-mode-hook + lisp-interaction-mode-hook + scheme-mode-hook + clojure-mode-hook)) + (add-hook hook 'paredit-mode))) + + (with-eval-after-load 'rainbow-delimiters + (dolist (hook '(emacs-lisp-mode-hook + eval-expression-minibuffer-setup-hook + ielm-mode-hook + lisp-mode-hook + lisp-interaction-mode-hook + scheme-mode-hook + clojure-mode-hook)) + (add-hook hook 'rainbow-delimiters-mode))) + + (with-eval-after-load 'undo-tree + (setq-default undo-tree-auto-save-history nil) + (global-undo-tree-mode 1)) + + (with-eval-after-load 'multiple-cursors + (setq-default mc/always-run-for-all t) + (global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines) + (global-set-key (kbd "C->") 'mc/mark-next-like-this) + (global-set-key (kbd "C-<") 'mc/mark-previous-like-this) + (global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)) + + (with-eval-after-load 'page-break-lines + (global-page-break-lines-mode 1)) + + (with-eval-after-load 'gptel + (setq gptel-model 'gpt-4o + gptel-backend (gptel-make-gh-copilot "Copilot"))) + + (with-eval-after-load 'simple + (add-hook 'after-init-hook (lambda () + (delete-selection-mode 1) + (pixel-scroll-precision-mode 0) + (electric-pair-mode 1) + (setq-default truncate-lines t) + (setq-default cursor-in-non-selected-windows 'hollow) + (setq-default cursor-type 'box) + ;; (set-face-attribute 'default nil :height 165) + ;; (require 'solarized-theme) + (require 'multiple-cursors) + (require 'undo-tree) + (require 'rainbow-delimiters) + (require 'paredit) + )) + (set-default 'display-fill-column-indicator-column 100) + (add-hook 'prog-mode-hook 'display-fill-column-indicator-mode) + (setq display-line-numbers-type 'relative) + (add-hook 'prog-mode-hook 'display-line-numbers-mode))) + #:elisp-packages + (strings->packages + "emacs-rainbow-mode" + "emacs-rainbow-delimiters" + "emacs-paredit" + "emacs-hl-todo" + "emacs-undo-tree" + "emacs-multiple-cursors" + ;; "emacs-swiper" + ;; "emacs-solarized-theme" + "emacs-nginx-mode" + "emacs-yaml-mode" + "emacs-org-present")))) + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + +(define-public %emacs-features + (list + (feature-emacs-modus-themes #:headings-scaling? #t + #:deuteranopia? #f) + (feature-emacs-citation #:global-bibliography (list "/home/jakub/Notes/Roam/references/master.bib")) + (feature-emacs-completion #:mini-frame? #f ;; Dziwne kurwa bledy + #:marginalia-align 'right) + (feature-emacs-corfu #:corfu-doc-auto #f) + (feature-emacs #:default-application-launcher? #t) + (feature-emacs-elfeed #:elfeed-org-files '("/home/jakub/Notes/Rss.org")) + (feature-emacs-erc #:erc-log? #t + #:erc-autojoin-channels-alist '((Libera.Chat "#rde") + (Libera.Chat "#systemcrafters") + (Libera.Chat "#lisp-pl") + (Libera.Chat "#hsp"))) + (feature-emacs-keycast #:turn-on? #f) + (feature-emacs-org-agenda #:org-agenda-files '("/home/jakub/Notes/Me.org" "/home/jakub/Notes/Work.org")) + (feature-emacs-org-dailies #:encrypted? #t) + (feature-emacs-org #:org-directory "/home/jakub/Notes" + #:org-indent? #f) + (feature-emacs-org-roam #:org-roam-directory "/home/jakub/Notes/Roam/slip-box") + (feature-emacs-spelling #:spelling-program (@ (gnu packages hunspell) hunspell) + #:spelling-dictionaries (list (@ (gnu packages hunspell) hunspell-dict-en) + (@ (gnu packages hunspell) hunspell-dict-pl)) + #:ispell-standard-dictionary "pl_PL") + (feature-emacs-dired #:extra-switches "-h") + (feature-emacs-appearance) + (feature-emacs-dashboard) + (feature-emacs-eglot) + (feature-emacs-eshell) + (feature-emacs-git) + (feature-emacs-gptel) + (feature-emacs-guix) + (feature-emacs-message) + (feature-emacs-monocle) + (feature-emacs-nov-el) + (feature-emacs-pdf-tools) + (feature-emacs-personal-config) + (feature-emacs-project) + (feature-emacs-time) + (feature-emacs-tramp) + (feature-emacs-vertico) + (feature-emacs-webpaste) + (feature-emacs-which-key) + (feature-emacs-battery) + (feature-notmuch) + (feature-plantuml) + (feature-compile))) + +(define %dev-features + (list + (feature-android) + (feature-clojure) + (feature-markdown) + (feature-python))) + +(define %virtualization-features + (list + (feature-distrobox) + (feature-podman) + (feature-qemu))) + +(define (feature-ssh-extra-config) + (feature-custom-services + #:feature-name-prefix 'jd-ssh-extra-config + #:home-services + (list + (simple-service + 'ssh-extra-config + home-ssh-service-type + (home-ssh-extension + (extra-config + (append + (list + (ssh-host + (host "jdlugosz.com") + (options + '((user . "root") + (port . 22) + (compression . #t)))) + (ssh-host + (host "amg.abaks.pl") + (options + '((user . "serwis") + (port . 22) + (compression . #t)))) + (ssh-host + (host "wifi-dev.abaks.pl") + (options + '((user . "serwis") + (port . 22) + (compression . #t))))))) + (toplevel-options + '((host-key-algorithms . "+ssh-rsa") + (pubkey-accepted-key-types . "+ssh-rsa")))))))) + +(define (feature-additional-services) + (feature-custom-services + #:feature-name-prefix 'jd-additional-services + #:system-services + (list (service nix-service-type)) + #:home-services + (list + (simple-service + 'home-environment-extra-variables + home-environment-variables-service-type + '(("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share"))) + ;; (simple-service + ;; 'home-nextcloud-package + ;; home-profile-service-type + ;; (list + ;; (@@ (gnu packages sync) nextcloud-client))) + (simple-service + 'nextcloud-shepherd-service + home-shepherd-service-type + (list + (shepherd-service + (provision `(nextcloud)) + (auto-start? #t) + (stop #~(make-kill-destructor)) + (start #~(make-forkexec-constructor + (list #$(program-file + "nextcloud" + #~(begin + (setenv "QT_QPA_PLATFORM" "wayland-egl;xcb") + (apply system* + (list + #$(file-append (@ (gnu packages sync) nextcloud-client) "/bin/nextcloud"))))))))))) + ;; (simple-service + ;; 'home-nextcloud-daemon) + (simple-service + 'home-profile-extra-packages + home-profile-service-type + (append + (list + (@ (gnu packages tree-sitter) tree-sitter-clojure) + (@ (gnu packages tree-sitter) tree-sitter-html)) + (strings->packages + "figlet" + "calibre" + + "libnotify" + + "flatpak" + + "alsa-utils" + "pavucontrol" + "imagemagick" + "obs" "obs-wlrobs" + "binutils" "make" "gdb" + + "hicolor-icon-theme" "adwaita-icon-theme" + "gnome-themes-extra" "papirus-icon-theme" + "arc-theme" + + "fd" + "nautilus" + "qbittorrent" + "kdenlive" "gimp" + "blender" + + "ripgrep" "curl")))))) + +(define-public (feature-nonfree-kernel) + (feature-kernel + #:kernel linux + #:firmware (list linux-firmware) + #:initrd microcode-initrd)) + +(define-public %all-features + (append + %base-features + %cli-features + %desktop-features + %dev-features + %emacs-features + %mail-features + %virtualization-features)) + +(define-public %user-features + (append + %all-features + (list + (feature-user-info + #:user-name "jakub" + #:full-name "Jakub Dlugosz" + #:email "me@jdlugosz.com" + #:user-initial-password-hash + "$6$C6xUaxw3xOpsPrBF$/nmP.SXpzoAYGu7CrcIMQ02S4f8QDNZTuAyaIZusmz4e3xXTdSYpt8D1WCaLXcAuhVJA5llPf9MH7L1TTlgG81" + #:emacs-advanced-user? #t) + (feature-gnupg + #:gpg-primary-key "83AD9E56AE266488CA2F2598BACE123052C9E77A") + (feature-security-token) + (feature-password-store + #:password-store-directory "/home/jakub/.password-store" + #:remote-password-store-url "ssh://git@jdlugosz.com:passwords") + (feature-mail-settings + #:mail-directory-fn (lambda (config) + (string-append (get-value 'home-directory config) "/Mail")) + #:mail-accounts (list + (mail-account + (id 'work) + (type 'migadu) + (fqda "me@jdlugosz.com") + (aliases '("admin@jdlugosz.com" "postmaster@jdlugosz.com")) + (pass-cmd "pass show mail/me@jdlugosz.com"))) + #:mailing-lists (list (mail-lst 'guile-devel "guile-devel@gnu.org" + '("https://yhetil.org/guile-devel/0")) + (mail-lst 'guix-devel "guix-devel@gnu.org" + '("https://yhetil.org/guix-devel/0")) + (mail-lst 'guix-bugs "guix-bugs@gnu.org" + '("https://yhetil.org/guix-bugs/0")) + (mail-lst 'guix-patches "guix-patches@gnu.org" + '("https://yhetil.org/guix-patches/1")))) + (feature-irc-settings #:irc-accounts (list + (irc-account + (id 'libera) + (network "irc.libera.chat") + (nick "jdlugosz963")))) + (feature-sourcehut + #:user-name-fn (const "jdlugosz963")) + (feature-keyboard + #:keyboard-layout (keyboard-layout "pl")) + (feature-ssh-extra-config) + (feature-additional-services)))) -- cgit v1.2.3