summaryrefslogtreecommitdiff
path: root/systems/izumi/home-configuration.scm
diff options
context:
space:
mode:
Diffstat (limited to 'systems/izumi/home-configuration.scm')
-rw-r--r--systems/izumi/home-configuration.scm190
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"))))))))))