diff options
Diffstat (limited to 'systems/izumi/home-configuration.scm')
-rw-r--r-- | systems/izumi/home-configuration.scm | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/systems/izumi/home-configuration.scm b/systems/izumi/home-configuration.scm new file mode 100644 index 0000000..3e61353 --- /dev/null +++ b/systems/izumi/home-configuration.scm @@ -0,0 +1,190 @@ +(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 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)) + (services + (append + (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.0" "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 "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 ".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/src/izumi/") + (pull-guix "guix pull ") + (reconfigure-home + (string-append + "guix home reconfigure " + configuration-prefix + "home-configuration.scm ")) + (reconfigure-system + (string-append + "sudo guix system reconfigure " + configuration-prefix + "system-configuration.scm " + and + "sudo chmod 751 /var/lib/gitolite " + and + "echo 'WARNING: Upstream the correct permission bits to gitolite.'")) + (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))) + (bashrc (list (plain-file "source-home-profile" "source ~/.profile\n")))))))))) |