Add wakatime configuration
This commit is contained in:
parent
47737fd93c
commit
25d95f3cdd
2 changed files with 92 additions and 2 deletions
|
@ -97,7 +97,9 @@
|
||||||
home-emacs-pinentry-service-type
|
home-emacs-pinentry-service-type
|
||||||
home-emacs-vterm-service-type
|
home-emacs-vterm-service-type
|
||||||
home-emacs-vterm-configuration
|
home-emacs-vterm-configuration
|
||||||
home-emacs-org-modern-service-type))
|
home-emacs-org-modern-service-type
|
||||||
|
home-wakatime-service-type
|
||||||
|
home-wakatime-configuration))
|
||||||
#:use-module ((oni home services environment)
|
#:use-module ((oni home services environment)
|
||||||
#:select (home-environment-service))
|
#:select (home-environment-service))
|
||||||
#:use-module ((oni home services flameshot)
|
#:use-module ((oni home services flameshot)
|
||||||
|
@ -416,6 +418,11 @@
|
||||||
(home-emacs-vterm-configuration
|
(home-emacs-vterm-configuration
|
||||||
(buffer-name-string "*vterm* %s")))
|
(buffer-name-string "*vterm* %s")))
|
||||||
(service home-emacs-org-modern-service-type)
|
(service home-emacs-org-modern-service-type)
|
||||||
|
(service home-wakatime-service-type
|
||||||
|
(home-wakatime-configuration
|
||||||
|
(api-url "https://waka.ryuslash.org/api")
|
||||||
|
(exclude '("COMMIT_EDITMSG$"
|
||||||
|
"TAG_EDITMSG$"))))
|
||||||
|
|
||||||
(service home-flameshot-service-type)
|
(service home-flameshot-service-type)
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,12 @@
|
||||||
#:select (emacs-yasnippet-capf
|
#:select (emacs-yasnippet-capf
|
||||||
emacs-golden-ratio
|
emacs-golden-ratio
|
||||||
emacs-ace-link-notmuch))
|
emacs-ace-link-notmuch))
|
||||||
|
#:use-module ((rosenthal packages binaries)
|
||||||
|
#:select (wakatime-cli-bin))
|
||||||
|
#:use-module ((rosenthal packages emacs-xyz)
|
||||||
|
#:select (emacs-wakatime-mode))
|
||||||
|
#:use-module ((srfi srfi-1)
|
||||||
|
#:select (every))
|
||||||
|
|
||||||
#:export (home-emacs-service-type
|
#:export (home-emacs-service-type
|
||||||
home-emacs-configuration
|
home-emacs-configuration
|
||||||
|
@ -71,10 +77,20 @@
|
||||||
home-emacs-vterm-configuration
|
home-emacs-vterm-configuration
|
||||||
|
|
||||||
home-emacs-org-modern-service-type
|
home-emacs-org-modern-service-type
|
||||||
home-emacs-org-modern-configuration))
|
home-emacs-org-modern-configuration
|
||||||
|
|
||||||
|
home-wakatime-service-type
|
||||||
|
home-wakatime-configuration))
|
||||||
|
|
||||||
(define-maybe string)
|
(define-maybe string)
|
||||||
|
|
||||||
|
(define (list-of-strings? obj)
|
||||||
|
(and (list? obj)
|
||||||
|
(every string? obj)))
|
||||||
|
|
||||||
|
(define (serialize-list-of-strings field value)
|
||||||
|
(string-append " " (string-join value "\n ")))
|
||||||
|
|
||||||
;;; Emacs
|
;;; Emacs
|
||||||
|
|
||||||
(define-configuration/no-serialization home-emacs-extension
|
(define-configuration/no-serialization home-emacs-extension
|
||||||
|
@ -581,3 +597,70 @@
|
||||||
(compose identity)
|
(compose identity)
|
||||||
(default-value (home-emacs-org-modern-configuration))
|
(default-value (home-emacs-org-modern-configuration))
|
||||||
(description "Install and configure emacs-org-modern.")))
|
(description "Install and configure emacs-org-modern.")))
|
||||||
|
|
||||||
|
;;; Wakatime
|
||||||
|
|
||||||
|
(define-configuration/no-serialization home-wakatime-configuration
|
||||||
|
(package
|
||||||
|
(package wakatime-cli-bin)
|
||||||
|
"Package to use for the wakatime-cli program")
|
||||||
|
(emacs-package
|
||||||
|
(package emacs-wakatime-mode)
|
||||||
|
"Package to use for setting emacs-wakatime-mode")
|
||||||
|
(api-url
|
||||||
|
maybe-string
|
||||||
|
"URL where the API lives")
|
||||||
|
;; (api-key
|
||||||
|
;; maybe-string
|
||||||
|
;; "API key for connecting to wakatime")
|
||||||
|
(debug
|
||||||
|
(boolean #f)
|
||||||
|
"Run in debug mode?")
|
||||||
|
(exclude
|
||||||
|
(list-of-strings '())
|
||||||
|
"Filename patterns to exclude"))
|
||||||
|
|
||||||
|
(define (add-wakatime-emacs-configuration config)
|
||||||
|
(home-emacs-extension
|
||||||
|
(configurations
|
||||||
|
(append
|
||||||
|
(list (mixed-text-file "wakatime-config"
|
||||||
|
";;;;; wakatime-config starts here.\n"
|
||||||
|
;; (if (maybe-value-set? (home-wakatime-configuration-api-key config))
|
||||||
|
;; (format #f "(setq wakatime-api-key ~s)~%" (home-wakatime-configuration-api-key config))
|
||||||
|
;; "")
|
||||||
|
"(setq wakatime-cli-path \"" (home-wakatime-configuration-package config) "/bin/wakatime-cli\")\n"
|
||||||
|
"(global-wakatime-mode)\n"
|
||||||
|
";;;;; wakatime-config ends here.\n"))))))
|
||||||
|
|
||||||
|
(define (add-wakatime-configuration-file config)
|
||||||
|
`((".wakatime.cfg"
|
||||||
|
,(mixed-text-file
|
||||||
|
"wakatime.cfg"
|
||||||
|
"[settings]\n"
|
||||||
|
"api_url = " (home-wakatime-configuration-api-url config) "\n"
|
||||||
|
"api_key_vault_cmd = secret-tool lookup service wakatime host " (home-wakatime-configuration-api-url config) "\n"
|
||||||
|
"debug = " (if (home-wakatime-configuration-debug config) "true" "false") "\n"
|
||||||
|
"exclude =\n"
|
||||||
|
(serialize-list-of-strings 'exclude (home-wakatime-configuration-exclude config))))))
|
||||||
|
|
||||||
|
(define (add-wakatime-packages config)
|
||||||
|
(list (home-wakatime-configuration-package config)
|
||||||
|
(home-wakatime-configuration-emacs-package config)))
|
||||||
|
|
||||||
|
(define home-wakatime-service-type
|
||||||
|
(service-type
|
||||||
|
(name 'home-wakatime)
|
||||||
|
(extensions
|
||||||
|
(list (service-extension
|
||||||
|
home-emacs-service-type
|
||||||
|
add-wakatime-emacs-configuration)
|
||||||
|
(service-extension
|
||||||
|
home-profile-service-type
|
||||||
|
add-wakatime-packages)
|
||||||
|
(service-extension
|
||||||
|
home-files-service-type
|
||||||
|
add-wakatime-configuration-file)))
|
||||||
|
(compose identity)
|
||||||
|
(default-value (home-wakatime-configuration))
|
||||||
|
(description "Install and configure wakatime.")))
|
||||||
|
|
Loading…
Reference in a new issue