From 745b985effc740962f02101b871491068c624e9e Mon Sep 17 00:00:00 2001 From: jdlugosz963 Date: Sun, 14 Sep 2025 20:54:39 +0200 Subject: Tune a little my new rde config --- src/jd/features/mail.scm | 34 +++++++++- src/jd/features/math.scm | 68 +++++++++++++++++++ src/jd/features/nextcloud.scm | 50 ++++++++++++++ src/jd/host.scm | 4 +- src/jd/user.scm | 151 +++++++++++++++++++++++------------------- 5 files changed, 237 insertions(+), 70 deletions(-) create mode 100644 src/jd/features/math.scm create mode 100644 src/jd/features/nextcloud.scm (limited to 'src') diff --git a/src/jd/features/mail.scm b/src/jd/features/mail.scm index f5c3536..bf137e9 100644 --- a/src/jd/features/mail.scm +++ b/src/jd/features/mail.scm @@ -27,7 +27,7 @@ #:use-module (guix diagnostics) #:use-module (guix i18n) - #:export (feature-l2md* feature-mail-mcron)) + #:export (feature-l2md* feature-mail-mcron feature-octave)) (define* (feature-l2md* #:key @@ -113,3 +113,35 @@ features that have been enabled." (feature (name 'mail-mcron) (home-services-getter get-home-services))) + +(define* (feature-octave + #:key (octave (@ (gnu packages maths) octave-cli))) + (define f-name 'octave) + (define (get-home-services config) + (list + (rde-elisp-configuration-service + f-name + config + `((with-eval-after-load 'org + (require 'ob-octave) + (add-to-list 'org-structure-template-alist + '("octave" . "src octave")) + (org-babel-do-load-languages + 'org-babel-load-languages + '((octave . t))) + (setq org-babel-default-header-args:octave + '((:results . "output") + (:session . "octave") + (:exports . "both") + (:eval . "no-export")))))) + (simple-service + 'octave-packages + home-profile-service-type + (append (or (and (get-value 'python config) + (list (@ (gnu packages python-xyz) python-sympy))) + '()) + (list octave))))) + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) diff --git a/src/jd/features/math.scm b/src/jd/features/math.scm new file mode 100644 index 0000000..7609370 --- /dev/null +++ b/src/jd/features/math.scm @@ -0,0 +1,68 @@ +(define-module (jd features math) + #:use-module (rde features) + #:use-module (gnu services) + #:use-module (rde features emacs) + #:use-module (gnu home services) + + + #:use-module (rde packages) + #:use-module (rde exceptions) + + #:use-module (rde predicates) + + #: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 configuration) + + #: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-octave)) + +(define* (feature-octave + #:key (octave (@ (gnu packages maths) octave-cli))) + (define f-name 'octave) + (define (get-home-services config) + (list + (rde-elisp-configuration-service + f-name + config + `((with-eval-after-load 'org + (require 'ob-octave) + (add-to-list 'org-structure-template-alist + '("octave" . "src octave")) + (org-babel-do-load-languages + 'org-babel-load-languages + '((octave . t))) + (setq org-babel-default-header-args:octave + '((:results . "output") + (:session . "octave") + (:exports . "both") + (:eval . "no-export")))))) + (simple-service + 'octave-packages + home-profile-service-type + (append (or (and (get-value 'python config) + (list (@ (gnu packages python-xyz) python-sympy))) + '()) + (list octave))))) + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) diff --git a/src/jd/features/nextcloud.scm b/src/jd/features/nextcloud.scm new file mode 100644 index 0000000..ff3c9fb --- /dev/null +++ b/src/jd/features/nextcloud.scm @@ -0,0 +1,50 @@ +(define-module (jd features nextcloud) + #:use-module (rde features) + #:use-module (rde predicates) + + #:use-module (gnu packages) + #:use-module (gnu packages polkit) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (guix gexp) + #:export (feature-nextcloud)) + +(define* (feature-nextcloud + #:key + (nextcloud-client (@ (gnu packages sync) nextcloud-client)) + (gnome-keyring (@ (gnu packages gnome) gnome-keyring)) + (polkit? #t)) + (define f-name 'nextcloud) + + (define (get-home-services config) + (list + (simple-service + 'add-nextcloud-home-package + home-profile-service-type + (append + (if polkit? (list gnome-keyring) '()) + (list 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"))))))))))))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) diff --git a/src/jd/host.scm b/src/jd/host.scm index 7071a3f..d94d0e2 100644 --- a/src/jd/host.scm +++ b/src/jd/host.scm @@ -43,5 +43,7 @@ #:extra-config `((profile laptop ((output eDP-1 enable))) (profile docked ((output eDP-1 disable) - (output DP-3 enable))))) + (output DP-3 enable))) + (profile docked ((output eDP-1 disable) + (output DP-4 enable))))) (feature-hidpi))) diff --git a/src/jd/user.scm b/src/jd/user.scm index 7c54a30..7a79e2c 100644 --- a/src/jd/user.scm +++ b/src/jd/user.scm @@ -4,12 +4,17 @@ #:use-module (gnu home-services ssh) #:use-module (gnu home services xdg) #:use-module (gnu packages) + #:use-module (gnu packages cups) #: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 base) + #:use-module (gnu services cups) #:use-module (gnu services nix) + #:use-module (gnu services desktop) + #:use-module (gnu system pam) #:use-module (guix channels) #:use-module (guix download) @@ -19,6 +24,7 @@ #:use-module (jd features mail) #:use-module (jd features networking) + #:use-module (jd features nextcloud) #:use-module (nongnu packages linux) #:use-module (nongnu system linux-initrd) @@ -72,14 +78,15 @@ (feature-base-services) (feature-base-packages) (feature-desktop-services) + (feature-tex) (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") + (pictures "$HOME/pics") + (documents "$HOME/docs") + (download "$HOME/dl") (publicshare "$HOME/sync") (desktop "$HOME") (templates "$HOME"))) @@ -142,6 +149,7 @@ (waybar-battery #:intense? #f) (waybar-tray) (waybar-clock))) + ;; (feature-nextcloud) (feature-foot) (feature-yt-dlp) (feature-libreoffice) @@ -152,9 +160,16 @@ (feature-swaylock) (feature-batsignal) (feature-imv) - (feature-mpv) (feature-librewolf) - (feature-ledger))) + (feature-librewolf + #:browser (@ (gnu packages gnuzilla) icecat) + #:default-browser? #f) + (feature-librewolf + #:browser (@ (nongnu packages mozilla) firefox) + #:default-browser? #f) + ;; (feature-ungoogled-chromium) + (feature-ledger) + (feature-mpv))) (define-public %mail-features (list @@ -182,14 +197,7 @@ (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 + `((with-eval-after-load 'notmuch (setq-default notmuch-search-oldest-first nil)) (with-eval-after-load 'paredit @@ -240,24 +248,30 @@ (global-page-break-lines-mode 1)) (with-eval-after-load 'gptel - (setq gptel-model 'gpt-4o - gptel-backend (gptel-make-gh-copilot "Copilot"))) + (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) - )) + (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) + (require 'multiple-cursors) + (require 'undo-tree) + (require 'rainbow-delimiters) + (require 'paredit) + (require 'url) + (require 'json) + (require 'org) + (require 'org-pdftools) + (defalias 'getf 'cl-getf) + (defalias 'find-if 'cl-find-if) + (add-hook 'org-mode-hook 'org-pdftools-setup-link))) (set-default 'display-fill-column-indicator-column 100) (add-hook 'prog-mode-hook 'display-fill-column-indicator-mode) (setq display-line-numbers-type 'relative) @@ -270,11 +284,10 @@ "emacs-hl-todo" "emacs-undo-tree" "emacs-multiple-cursors" - ;; "emacs-swiper" - ;; "emacs-solarized-theme" "emacs-nginx-mode" "emacs-yaml-mode" - "emacs-org-present")))) + "emacs-org-present" + "emacs-org-pdftools")))) (feature (name f-name) (values `((,f-name . #t))) @@ -282,30 +295,33 @@ (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-modus-themes #:deuteranopia? #f) + (feature-emacs-citation #:global-bibliography (list "/home/jakub/docs/notes/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-elfeed #:elfeed-org-files '("/home/jakub/docs/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-agenda #:org-agenda-files '("/home/jakub/docs/notes/personal.org" + "/home/jakub/docs/notes/s22425.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-org #:org-directory "/home/jakub/docs/notes" + #:org-indent? #t) + (feature-emacs-org-roam #:org-roam-directory "/home/jakub/docs/notes/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-monocle #:olivetti-body-width 100) + (feature-emacs-denote #:denote-directory "/home/jakub/docs/notes") + (feature-emacs-devdocs) (feature-emacs-appearance) (feature-emacs-dashboard) (feature-emacs-eglot) @@ -314,7 +330,6 @@ (feature-emacs-gptel) (feature-emacs-guix) (feature-emacs-message) - (feature-emacs-monocle) (feature-emacs-nov-el) (feature-emacs-pdf-tools) (feature-emacs-personal-config) @@ -331,10 +346,11 @@ (define %dev-features (list + (feature-markdown #:headings-scaling? #t) (feature-android) (feature-clojure) - (feature-markdown) - (feature-python))) + (feature-python) + (feature-octave))) (define %virtualization-features (list @@ -380,36 +396,25 @@ (feature-custom-services #:feature-name-prefix 'jd-additional-services #:system-services - (list (service nix-service-type)) + (list (service nix-service-type) + (service gnome-keyring-service-type) + (service pam-limits-service-type + (list + (pam-limits-entry "*" 'both 'nofile 100000) ;; Required for some cases when building Docker images in Nix + (pam-limits-entry "@users" 'both 'rtprio 99) ;; Needed for Guitarix + (pam-limits-entry "@users" 'both 'memlock 'unlimited))) + (service cups-service-type + (cups-configuration + (web-interface? #t) + (extensions + (list cups-filters))))) #: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 @@ -435,13 +440,23 @@ "gnome-themes-extra" "papirus-icon-theme" "arc-theme" + "xdg-desktop-portal-gnome" + "fd" "nautilus" "qbittorrent" "kdenlive" "gimp" "blender" - "ripgrep" "curl")))))) + "ripgrep" "curl" + + "texlive" "texlive-collection-basic" + "texlive-bin" "texlive-collection-latex" + "texlive-collection-fontsrecommended" + "texlive-collection-pictures" + "texlive-collection-latexextra" + "texlive-dvipng")))))) + (define-public (feature-nonfree-kernel) (feature-kernel -- cgit v1.2.3