dotfiles/oni/packages/emacs-config.scm
Tom Willemse b144e84ea5 Add ‘emacs-oni-hy’
I just added a configuration for programming in Hy. This is the first step for
moving more of my Emacs configuration into guix home. Instead of adding the
autoload for ‘oni-hy’ in the ‘oni-core’ package, I've added it directly to my
Guix configuration. In the future I'll want to change this so that each package
gets its own configuration and also extends my Emacs configuration so that it
automatically adds these autoloads when I add a package.
2023-07-14 00:54:48 -07:00

617 lines
21 KiB
Scheme

(define-module (oni packages emacs-config)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system emacs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages emacs-xyz)
#:use-module (gnu packages llvm)
#:use-module (gnu packages cmake)
#:use-module (gnu packages bash)
#:use-module ((gnu packages mail)
#:select (emacs-notmuch))
#:use-module (oni packages emacs)
#:use-module (oni packages go))
(define-public emacs-oni-config
(let ((commit "23ff70c4ef428bf554b4448c860e9b61c2db84f4")
(revision "0"))
(package
(name "emacs-oni-config")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://code.ryuslash.org/ryuslash/emacs-config.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "04i2xham1zwip85zrx76f1mvkaicnkfyw1bp98wx999igg1vlivx"))))
(build-system emacs-build-system)
(home-page "https://code.ryuslash.org/ryuslash/emacs-config")
(synopsis "My Emacs configuration")
(description "This package provides my configuration for emacs")
(license license:gpl3+))))
(define-public emacs-oni-vterm
(package
(inherit emacs-oni-config)
(name "emacs-oni-vterm")
(arguments
'(#:include '("oni-vterm.el")))
(propagated-inputs
`(("emacs-vterm" ,emacs-vterm)))
(synopsis "My Emacs vterm configuration")
(description "This package provides my configuration for emacs-vterm")))
(define-public emacs-oni-ui
(package
(inherit emacs-oni-config)
(name "emacs-oni-ui")
(arguments
'(#:include '("oni-ui.el")))
(propagated-inputs
(list emacs-beacon
emacs-diminish))
(synopsis "My Emacs vterm configuration")
(description "This package provides my configuration for emacs-vterm")))
(define-public emacs-oni-gui
(package
(inherit emacs-oni-config)
(name "emacs-oni-gui")
(arguments
'(#:include '("oni-gui.el")))
(propagated-inputs
(list emacs-oni-ui
emacs-oni-hydra
emacs-yoshi-theme
emacs-diminish))
(synopsis "My Emacs vterm configuration")
(description "This package provides my configuration for emacs-vterm")))
(define-public emacs-oni-elfeed
(package
(inherit emacs-oni-config)
(name "emacs-oni-elfeed")
(arguments
'(#:include '("oni-elfeed.el")))
(propagated-inputs
`(("emacs-elfeed" ,emacs-elfeed)))
(synopsis "My Emacs elfeed configuration")
(description "This package provides my configuration for emacs-elfeed")))
(define-public emacs-oni-magit
(package
(inherit emacs-oni-config)
(name "emacs-oni-magit")
(arguments
'(#:include '("oni-magit.el")))
(propagated-inputs
(list emacs-magit
emacs-magit-popup
emacs-oni-hydra))
(synopsis "My Emacs elfeed configuration")
(description "This package provides my configuration for emacs-elfeed")))
(define-public emacs-oni-alert
(package
(inherit emacs-oni-config)
(name "emacs-oni-alert")
(arguments
'(#:include '("oni-alert.el")))
(propagated-inputs
`(("emacs-alert" ,emacs-alert)))
(synopsis "My Emacs alert configuration")
(description "This package provides my configuration for emacs-alert")))
(define-public emacs-oni-bookmark
(package
(inherit emacs-oni-config)
(name "emacs-oni-bookmark")
(arguments
'(#:include '("oni-bookmark.el")))
(synopsis "My Emacs bookmark configuration")
(description "This package provides my configuration for the bookmark library
in Emacs")))
(define-public emacs-oni-lui
(package
(inherit emacs-oni-config)
(name "emacs-oni-lui")
(arguments
'(#:include '("oni-lui.el")))
(propagated-inputs
`(("emacs-circe" ,emacs-circe)))
(synopsis "My Emacs Line-UI configuration")
(description "This package provides my configuration for the lui library in
Emacs")))
(define-public emacs-oni-circe
(package
(inherit emacs-oni-config)
(name "emacs-oni-circe")
(arguments
'(#:include '("oni-circe.el")))
(propagated-inputs
`(("emacs-circe" ,emacs-circe)
("emacs-circe-serenityc" ,emacs-circe-serenity)
("emacs-oni-lui" ,emacs-oni-lui)
("emacs-olivetti" ,emacs-olivetti)))
(synopsis "My Emacs Circe configuration")
(description "This package provides my configuration for emacs-circe")))
(define-public emacs-oni-embrace
(package
(inherit emacs-oni-config)
(name "emacs-oni-embrace")
(arguments
'(#:include '("oni-embrace.el")))
(propagated-inputs
`(("emacs-embrace" ,emacs-embrace)))
(synopsis "My Emacs Embrace configuration")
(description "This package provides my configuration for emacs-embrace")))
(define-public emacs-oni-hydra
(package
(inherit emacs-oni-config)
(name "emacs-oni-hydra")
(arguments
'(#:include '("oni-hydra.el")))
(propagated-inputs
`(("emacs-hydra" ,emacs-hydra)
("emacs-posframe" ,emacs-posframe)))
(synopsis "My Emacs Hydra configuration")
(description "This package provides my configuration for emacs-hydra")))
(define-public emacs-oni-data-dir
(package
(inherit emacs-oni-config)
(name "emacs-oni-data-dir")
(arguments
'(#:include '("oni-data-dir.el")))
(synopsis "Data dir configuration")
(description "Utilities for placing all state files in 'data/' inside my
`user-emacs-directory'.")))
(define-public emacs-oni-core
(package
(inherit emacs-oni-config)
(name "emacs-oni-core")
(arguments
'(#:include '("oni-core.el")))
(propagated-inputs
`(("emacs-oni-data-dir" ,emacs-oni-data-dir)
("emacs-oni-embrace" ,emacs-oni-embrace)
("emacs-oni-hydra" ,emacs-oni-hydra)
("emacs-expand-region" ,emacs-expand-region)
("emacs-multiple-cursors" ,emacs-multiple-cursors)
("emacs-gcmh" ,emacs-gcmh)
("emacs-diminish" ,emacs-diminish)
("emacs-ws-butler" ,emacs-ws-butler)
("emacs-which-key" ,emacs-which-key)
("emacs-insert-char-preview" ,emacs-insert-char-preview)
("emacs-mixed-pitch" ,emacs-mixed-pitch)
("emacs-ace-window" ,emacs-ace-window)
("emacs-vertico" ,emacs-vertico)
("emacs-marginalia" ,emacs-marginalia)
("emacs-orderless" ,emacs-orderless)
("emacs-consult" ,emacs-consult)
("emacs-embark" ,emacs-embark)
("emacs-docstr" ,emacs-docstr)
("emacs-mini-frame" ,emacs-mini-frame)))
(synopsis "My core Emacs configuration")
(description "This package provides my core configuration for Emacs")))
(define-public emacs-oni-smartparens
(package
(inherit emacs-oni-config)
(name "emacs-oni-smartparens")
(arguments
'(#:include '("oni-smartparens.el")))
(propagated-inputs
`(("emacs-smartparens" ,emacs-smartparens)))
(synopsis "My Emacs smartparens configuration")
(description "This package provides my configuration for Emacs smartparens")))
(define-public emacs-oni-flycheck
(package
(inherit emacs-oni-config)
(name "emacs-oni-flycheck")
(arguments
'(#:include '("oni-flycheck.el")))
(propagated-inputs
`(("emacs-flycheck" ,emacs-flycheck)
("emacs-flycheck-posframe" ,emacs-flycheck-posframe)
("emacs-flycheck-cask" ,emacs-flycheck-cask)))
(synopsis "My Emacs flycheck configuration")
(description "This package provides my configuration for Emacs flycheck")))
(define-public emacs-oni-lsp
(package
(inherit emacs-oni-config)
(name "emacs-oni-lsp")
(arguments
'(#:include '("oni-lsp.el")))
(propagated-inputs
`(("emacs-lsp-mode" ,emacs-lsp-mode)
("emacs-lsp-ui" ,emacs-lsp-ui)
("emacs-lsp-ivy" ,emacs-lsp-ivy)))
(synopsis "My Emacs LSP configuration")
(description "This package provides my configuration for Emacs LSP")))
(define-public emacs-oni-c
(package
(inherit emacs-oni-config)
(name "emacs-oni-c")
(arguments
'(#:include '("oni-c.el")))
(propagated-inputs
`(("emacs-oni-flycheck" ,emacs-oni-flycheck)
("emacs-oni-lsp" ,emacs-oni-lsp)
("emacs-reformatter" ,emacs-reformatter)
("emacs-ccls" ,emacs-ccls)
("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
;; For `clang-format'.
("clang" ,clang)))
(synopsis "My Emacs C coding configuration")
(description "This package provides my configuration for coding in C")))
(define-public emacs-oni-sh
(package
(inherit emacs-oni-config)
(name "emacs-oni-sh")
(arguments
'(#:include '("oni-sh.el")))
(propagated-inputs
`(("emacs-reformatter" ,emacs-reformatter)
("emacs-oni-flycheck" ,emacs-oni-flycheck)
("emacs-oni-smartparens" ,emacs-oni-smartparens)
("shfmt" ,shfmt)))
(synopsis "My Emacs Shell coding configuration")
(description "This package provides my configuration for coding in Shell")))
(define-public emacs-oni-yasnippet
(package
(inherit emacs-oni-config)
(name "emacs-oni-yasnippet")
(arguments
'(#:include '("oni-yasnippet.el")))
(propagated-inputs
`(("emacs-yasnippet" ,emacs-yasnippet)
("emacs-yasnippet-snippets" ,emacs-yasnippet-snippets)
("emacs-diminish" ,emacs-diminish)))
(synopsis "My Emacs yasnippet configuration")
(description "This package provides my configuration for yasnippet")))
(define-public emacs-oni-bats
(package
(inherit emacs-oni-config)
(name "emacs-oni-bats")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir-oni-bats
(λ _ (chdir "oni-bats"))))
#:include '("\\.el$" "^snippets\\/bats-mode\\/")))
(propagated-inputs
`(("emacs-bats" ,emacs-bats)
("emacs-oni-sh" ,emacs-oni-sh)
("emacs-oni-yasnippet" ,emacs-oni-yasnippet)
("bats" ,bats)))
(synopsis "My Emacs Bats coding configuration")
(description "This package provides my configuration for coding in Bats")))
(define-public emacs-oni-org
(package
(inherit emacs-oni-config)
(name "emacs-oni-org")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir-oni-org
(λ _ (chdir "oni-org"))))
#:include '("\\.el$"
"^snippets\\/org-mode\\/"
"^capture-templates\\/"
"^icons\\/")))
(propagated-inputs
`(("emacs-oni-yasnippet" ,emacs-oni-yasnippet)
("emacs-oni-alert" ,emacs-oni-alert)
("emacs-oni-hydra" ,emacs-oni-hydra)
("emacs-org" ,emacs-org)
("emacs-org-contrib" ,emacs-org-contrib)
("emacs-org-bullets" ,emacs-org-bullets)
("emacs-org-edna" ,emacs-org-edna)
("emacs-diminish" ,emacs-diminish)
("emacs-all-the-icons" ,emacs-all-the-icons)
("emacs-olivetti" ,emacs-olivetti)
("emacs-form-feed" ,emacs-form-feed)
("emacs-org-pretty-table" ,emacs-org-pretty-table)
("emacs-ob-async" ,emacs-ob-async)))
(synopsis "My Emacs Org configuration")
(description "This package provides my configuration for org")))
(define-public emacs-oni-org-roam
(package
(inherit emacs-oni-config)
(name "emacs-oni-org-roam")
(arguments
'(#:include '("oni-org-roam.el")))
(propagated-inputs
`(("emacs-oni-org" ,emacs-oni-org)
("emacs-org-roam" ,emacs-org-roam)))
(synopsis "My Emacs Org Roam configuration")
(description "This package provides my configuration for Org Roam")))
(define-public emacs-oni-browse-url
(package
(inherit emacs-oni-config)
(name "emacs-oni-browse-url")
(arguments
'(#:include '("oni-browse-url.el")))
(synopsis "My Emacs Browse Url configuration")
(description "This package provides my configuration for Browse Url")))
(define-public emacs-oni-prescient
(package
(inherit emacs-oni-config)
(name "emacs-oni-prescient")
(arguments
'(#:include '("oni-prescient.el")))
(propagated-inputs
`(("emacs-prescient" ,emacs-prescient)
("emacs-oni-data-dir" ,emacs-oni-data-dir)))
(synopsis "My Emacs prescient configuration")
(description "This package provides my configuration for prescient")))
(define-public emacs-oni-company
(package
(inherit emacs-oni-config)
(name "emacs-oni-company")
(arguments
'(#:include '("oni-company.el")))
(propagated-inputs
`(("emacs-company" ,emacs-company)
("emacs-oni-prescient" ,emacs-oni-prescient)
("emacs-company-posframe" ,emacs-company-posframe)
("emacs-diminish" ,emacs-diminish)))
(synopsis "My Emacs Company configuration")
(description "This package provides my configuration for company")))
(define-public emacs-oni-paredit
(package
(inherit emacs-oni-config)
(name "emacs-oni-paredit")
(arguments
'(#:include '("oni-paredit.el")))
(propagated-inputs
`(("emacs-paredit" ,emacs-paredit)
("emacs-diminish" ,emacs-diminish)))
(synopsis "My Emacs paredit configuration")
(description "This package provides my configuration for paredit")))
(define-public emacs-oni-clojure
(package
(inherit emacs-oni-config)
(name "emacs-oni-clojure")
(arguments
'(#:include '("oni-clojure.el")))
(propagated-inputs
`(("emacs-clojure-mode" ,emacs-clojure-mode)
("emacs-oni-company" ,emacs-oni-company)
("emacs-cider" ,emacs-cider)
("emacs-oni-paredit" ,emacs-oni-paredit)
("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
("emacs-oni-data-dir" ,emacs-oni-data-dir)))
(synopsis "My Emacs Clojure configuration")
(description "This package provides my configuration for Clojure")))
(define-public emacs-oni-cmake
(package
(inherit emacs-oni-config)
(name "emacs-oni-cmake")
(arguments
'(#:include '("oni-cmake.el")))
(propagated-inputs
`(("emacs-cmake-mode" ,emacs-cmake-mode)
("emacs-oni-company" ,emacs-oni-company)
("emacs-oni-flycheck" ,emacs-oni-flycheck)
("emacs-oni-lsp" ,emacs-oni-lsp)
("emacs-cmake-font-lock" ,emacs-cmake-font-lock)
("emacs-eldoc-cmake" ,emacs-eldoc-cmake)))
(synopsis "My Emacs CMake confifguration")
(description "This package provides my configuration for CMake")))
(define-public emacs-oni-common-lisp
(package
(inherit emacs-oni-config)
(name "emacs-oni-common-lisp")
(arguments
'(#:include '("oni-common-lisp.el")))
(propagated-inputs
`(("emacs-oni-company" ,emacs-oni-company)
("emacs-oni-flycheck" ,emacs-oni-flycheck)
("emacs-oni-paredit" ,emacs-oni-paredit)
("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
("emacs-slime" ,emacs-slime)
("emacs-slime-company" ,emacs-slime-company)))
(synopsis "My Emacs Common Lisp configuration")
(description "This package provides my configuration for Common Lisp")))
(define-public emacs-oni-compilation
(package
(inherit emacs-oni-config)
(name "emacs-oni-compilation")
(arguments
'(#:include '("oni-compilation.el")))
(propagated-inputs
`(("emacs-oni-alert" ,emacs-oni-alert)
("emacs-xterm-color" ,emacs-xterm-color)))
(synopsis "My Emacs Compilation configuration")
(description "This package provides my configuration for Compilation mode")))
(define-public emacs-oni-conf
(package
(inherit emacs-oni-config)
(name "emacs-oni-conf")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir-oni-conf
(λ _ (chdir "oni-conf"))))
#:include '("\\.el$"
"^snippets\\/conf-mode\\/")))
(propagated-inputs
`(("emacs-oni-yasnippet" ,emacs-oni-yasnippet)))
(synopsis "My Emacs Conf mode configuration")
(description "This pakcage provides my configuation for Conf mode")))
(define-public emacs-oni-counsel
(package
(inherit emacs-oni-config)
(name "emacs-oni-counsel")
(arguments
'(#:include '("oni-counsel.el")))
(propagated-inputs
`(("emacs-counsel" ,emacs-counsel)
("emacs-diminish" ,emacs-diminish)))
(synopsis "My Emacs Counsel configuration")
(description "This package provides my configuration for Counsel mode")))
(define-public emacs-oni-cpp
(package
(inherit emacs-oni-config)
(name "emacs-oni-cpp")
(arguments
'(#:include '("oni-cpp.el")))
(propagated-inputs
`(("emacs-oni-company" ,emacs-oni-company)
("emacs-oni-flycheck" ,emacs-oni-flycheck)))
(synopsis "My Emacs C++ configuration")
(description "This package provides my configuration for programming in C++.")))
(define-public emacs-oni-csharp
(package
(inherit emacs-oni-config)
(name "emacs-oni-csharp")
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir-oni-csharp
(λ _ (chdir "oni-csharp"))))
#:include '("\\.el$" "^snippets\\/")))
(propagated-inputs
`(("emacs-csharp-mode" ,emacs-csharp-mode)
("emacs-oni-company" ,emacs-oni-company)
("emacs-oni-flycheck" ,emacs-oni-flycheck)
("emacs-oni-yasnippet" ,emacs-oni-yasnippet)
("emacs-oni-hydra" ,emacs-oni-hydra)
("emacs-oni-lsp" ,emacs-oni-lsp)
("emacs-oni-smartparens" ,emacs-oni-smartparens)))
(synopsis "My Emacs C# configuration")
(description "This package provides my configuration for programming in C#.")))
(define-public emacs-oni-css
(package
(inherit emacs-oni-config)
(name "emacs-oni-css")
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir-oni-css
(λ _ (chdir "oni-css"))))
#:include '("\\.el$" "^snippets\\/")))
(propagated-inputs
`(("emacs-oni-company" ,emacs-oni-company)
("emacs-oni-hydra" ,emacs-oni-hydra)
("emacs-rainbow-mode" ,emacs-rainbow-mode)
("emacs-oni-yasnippet" ,emacs-oni-yasnippet)))
(synopsis "My Emacs CSS configuration")
(description "This package provides my configuration for writing CSS.")))
(define-public emacs-oni-diff-hl
(package
(inherit emacs-oni-config)
(name "emacs-oni-diff-hl")
(arguments
'(#:include '("oni-diff-hl.el")))
(propagated-inputs
`(("emacs-diff-hl" ,emacs-diff-hl)))
(synopsis "My Emacs Diff Highlight configuration")
(description "This package provides my configuration for Diff Highlight.")))
(define-public emacs-oni-elisp
(package
(inherit emacs-oni-config)
(name "emacs-oni-elisp")
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir-oni-elisp
(λ _ (chdir "oni-elisp"))))
#:include '("\\.el$" "^snippets\\/")))
(propagated-inputs
`(("emacs-oni-company" ,emacs-oni-company)
("emacs-oni-flycheck" ,emacs-oni-flycheck)
("emacs-oni-paredit" ,emacs-oni-paredit)
("emacs-oni-yasnippet" ,emacs-oni-yasnippet)
("emacs-oni-hydra" ,emacs-oni-hydra)
("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
("emacs-nameless" ,emacs-nameless)
("emacs-erefactor" ,emacs-erefactor)
("emacs-flycheck-relint" ,emacs-flycheck-relint)
("emacs-handle" ,emacs-handle)
("emacs-elisp-format" ,emacs-elisp-format)))
(synopsis "My Emacs Lisp configuration")
(description "This package provides my configuration for Emacs Lisp.")))
(define-public emacs-oni-eshell
(package
(inherit emacs-oni-config)
(name "emacs-oni-eshell")
(arguments
'(#:include '("oni-eshell.el")))
(propagated-inputs
`(("emacs-esh-autosuggest" ,emacs-esh-autosuggest)
("emacs-xterm-color" ,emacs-xterm-color)
("emacs-eshell-syntax-highlighting" ,emacs-eshell-syntax-highlighting)
("emacs-eshell-fringe-status" ,emacs-eshell-fringe-status)))
(synopsis "My Emacs Lisp configuration")
(description "This package provides my configuration for Emacs Lisp.")))
(define-public emacs-oni-sendmail
(package
(inherit emacs-oni-config)
(name "emacs-oni-sendmail")
(arguments
'(#:include '("oni-sendmail.el")))
(synopsis "My configuration to send email through Emacs.")
(description "This package provides my configuration for sending mail through Emacs.")))
(define-public emacs-oni-notmuch
(package
(inherit emacs-oni-config)
(name "emacs-oni-notmuch")
(arguments
'(#:include '("oni-notmuch.el")))
(propagated-inputs
(list emacs-oni-sendmail
emacs-notmuch
emacs-ol-notmuch))
(synopsis "My notmuch configuration for Emacs.")
(description "This package provides my configuration for notmuch.")))
(define-public emacs-oni-hy
(package
(inherit emacs-oni-config)
(name "emacs-oni-hy")
(arguments
'(#:include '("oni-hy\\.el$")))
(propagated-inputs
(list emacs-hy-mode
emacs-oni-paredit
emacs-oni-yasnippet
emacs-rainbow-delimiters))
(synopsis "My Hy configuration")
(description "This package provides my configuration for Hy.")))