(use-modules (gnu home services shells) (gnu packages) (gnu packages emacs) (gnu packages fonts) (gnu packages gnome) (gnu packages gnupg) (gnu packages noweb) (gnu packages tree-sitter) (gnu packages version-control) (nongnu packages mozilla)) (use-modules (gnu) (gnu home services)) (use-package-modules emacs-xyz) (use-service-modules) (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)) (home-environment (packages (list dconf-editor emacs emacs-org-modern emacs-paredit firefox font-google-noto font-google-noto-emoji font-google-noto-sans-cjk font-google-noto-serif-cjk git gnupg gnome-tweaks noweb pinentry pwgen tree-sitter)) (services (append (list (simple-service 'emacs-home-profile home-profile-service-type (append (list emacs-guix emacs-nix-mode) (list (let ((commit* "cfab3eb8e1c25640439f10789872e28872d656a0")) (package (name "emacs-org-fc") (version (git-version "0.1.0" "0" commit*)) (source (origin (method git-fetch) (uri (git-reference (url "git://localhost/marek/org-fc") (commit commit*))) (file-name (git-file-name name version)) (sha256 (base32 "0x8bxjh4r1wqh48f69x8k6gxfpixhwci365n0rh827csfjaqs5hg")))) (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 ".emacs" ( local-file "home-files/emacs-configuration.el" ) ) ( list ".config/guix/channels.scm" ( local-file "channels.scm" ) ) ( list ".config/git/ignore" ;; https://github.com/github/gitignore/blob/main/Global/Emacs.gitignore ( local-file "home-files/git-ignore.conf" ) ) ) )) (list (let* ((and "&& ") (collect-garbage "sudo guix gc -d 7d ") (configuration-prefix "/home/marek/src/izumi/") (pull-guix "guix pull ") (reconfigure-home (string-append "git -C " configuration-prefix " pull --rebase=true " and "guix home reconfigure " configuration-prefix "home-configuration.scm ")) (reconfigure-system (string-append "git -C " configuration-prefix " pull --rebase=true " and "sudo guix system reconfigure " configuration-prefix "system-configuration.scm ")) (update-system (string-append pull-guix and reconfigure-system and reconfigure-home and collect-garbage))) (service home-bash-service-type (home-bash-configuration (aliases `(("collect-garbage" . ,collect-garbage) ("pull-guix" . ,pull-guix) ("reconfigure-home" . ,reconfigure-home) ("reconfigure-system" . ,reconfigure-system) ("update-system" . ,update-system))))))))))