From c900af3e00a8ec88c2ec0bfa8cecee038a0a6ab8 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Thu, 14 Sep 2023 22:54:36 -0700 Subject: [PATCH] Add some more of my Emacs packages to my config --- oni/home/config/rincewind.scm | 78 ++++++++++- oni/home/services/emacs.scm | 42 +++++- oni/packages/emacs-config.scm | 242 +++++++++++++++++++++++++++++++++- 3 files changed, 355 insertions(+), 7 deletions(-) diff --git a/oni/home/config/rincewind.scm b/oni/home/config/rincewind.scm index 9879bef..acb5e90 100644 --- a/oni/home/config/rincewind.scm +++ b/oni/home/config/rincewind.scm @@ -73,7 +73,9 @@ home-emacs-configuration home-emacs-helpful-service-type home-emacs-helpful-configuration - home-emacs-yasnippet-capf-service-type)) + home-emacs-yasnippet-capf-service-type + home-emacs-dashboard-service-type + home-emacs-dashboard-configuration)) #:use-module ((oni home services environment) #:select (home-environment-service)) #:use-module ((oni home services flameshot) @@ -129,7 +131,41 @@ emacs-oni-magit emacs-oni-notmuch emacs-oni-hy - emacs-oni-project)) + emacs-oni-project + emacs-oni-bookmark + emacs-oni-dired + emacs-oni-browse-url + emacs-oni-c + emacs-oni-circe + emacs-oni-clojure + emacs-oni-cmake + emacs-oni-conf + emacs-oni-cpp + emacs-oni-csharp + emacs-oni-css + emacs-oni-diff-hl + emacs-oni-ediff + emacs-oni-elm + emacs-oni-emms + emacs-oni-epub + emacs-oni-eww + emacs-oni-grep + emacs-oni-haskell + emacs-oni-highlight-indent-guides + emacs-oni-html + emacs-oni-java + emacs-oni-json + emacs-oni-log-edit + emacs-oni-lua + emacs-oni-makefile + emacs-oni-nxml + emacs-oni-package + emacs-oni-projectile + emacs-oni-scheme + emacs-oni-sh + emacs-oni-shr + emacs-oni-tramp + emacs-oni-embrace)) #:use-module ((oni packages hlwm-run-or-raise) #:select (hlwm-run-or-raise)) #:use-module ((oni packages inbox-size) @@ -226,6 +262,7 @@ emacs-inkplate emacs-outli emacs-guix + emacs-oni-org-roam emacs-oni-vterm emacs-oni-elisp @@ -239,6 +276,41 @@ emacs-oni-notmuch emacs-oni-hy emacs-oni-project + emacs-oni-bookmark + emacs-oni-dired + emacs-oni-browse-url + emacs-oni-c + emacs-oni-circe + emacs-oni-clojure + emacs-oni-cmake + emacs-oni-conf + emacs-oni-cpp + emacs-oni-csharp + emacs-oni-css + emacs-oni-diff-hl + emacs-oni-ediff + emacs-oni-elm + emacs-oni-embrace + emacs-oni-emms + emacs-oni-epub + emacs-oni-eww + emacs-oni-grep + emacs-oni-haskell + emacs-oni-highlight-indent-guides + emacs-oni-html + emacs-oni-java + emacs-oni-json + emacs-oni-log-edit + emacs-oni-lua + emacs-oni-makefile + emacs-oni-nxml + emacs-oni-package + emacs-oni-projectile + emacs-oni-scheme + emacs-oni-sh + emacs-oni-shr + emacs-oni-tramp + tree-sitter-bash tree-sitter-scheme tree-sitter-python @@ -329,6 +401,7 @@ "init.el" "(with-eval-after-load 'hy-mode (require 'oni-hy))\n" "(with-eval-after-load 'project (require 'oni-project))\n" + "(projectile-mode)\n" "(setq custom-file \"~/.config/emacs/custom.el\")\n" "(load custom-file)\n" "(provide 'init)\n" @@ -339,6 +412,7 @@ (list (local-file "../services/emacs/oni-helpful.el"))))) (service home-emacs-yasnippet-capf-service-type) + (service home-emacs-dashboard-service-type) (service home-flameshot-service-type) diff --git a/oni/home/services/emacs.scm b/oni/home/services/emacs.scm index 564ed3d..99dd2dd 100644 --- a/oni/home/services/emacs.scm +++ b/oni/home/services/emacs.scm @@ -8,7 +8,8 @@ #:use-module ((gnu packages emacs) #:select (emacs)) #:use-module ((gnu packages emacs-xyz) - #:select (emacs-helpful)) + #:select (emacs-helpful + emacs-dashboard)) #:use-module ((gnu home services) #:select (service-type service-extension @@ -35,7 +36,10 @@ home-emacs-helpful-configuration home-emacs-yasnippet-capf-service-type - home-emacs-yasnippet-capf-configuration)) + home-emacs-yasnippet-capf-configuration + + home-emacs-dashboard-service-type + home-emacs-dashboard-configuration)) (define-configuration/no-serialization home-emacs-extension (configurations @@ -158,3 +162,37 @@ (compose identity) (default-value (home-emacs-yasnippet-capf-configuration)) (description "Install and configure emacs-yasnippet-capf."))) + +(define-configuration/no-serialization home-emacs-dashboard-configuration + (package + (package emacs-dashboard) + "Package to use for setting emacs-dashboard.") + (configurations + (text-config '()) + "Configuration for emacs-dashboard.")) + +(define (add-emacs-dashboard config) + (home-emacs-extension + (configurations + (append + (list (mixed-text-file "dashboard-config" + "(dashboard-setup-startup-hook)\n" + "(setq initial-buffer-choice (lambda () (get-buffer-create \"*dashboard*\")))\n")) + (home-emacs-dashboard-configuration-configurations config))))) + +(define (add-emacs-dashboard-packages config) + (list (home-emacs-dashboard-configuration-package config))) + +(define home-emacs-dashboard-service-type + (service-type + (name 'home-emacs-dashboard) + (extensions + (list (service-extension + home-emacs-service-type + add-emacs-dashboard) + (service-extension + home-profile-service-type + add-emacs-dashboard-packages))) + (compose identity) + (default-value (home-emacs-dashboard-configuration)) + (description "Install and configure emacs-dashboard."))) diff --git a/oni/packages/emacs-config.scm b/oni/packages/emacs-config.scm index 4734336..9f304eb 100644 --- a/oni/packages/emacs-config.scm +++ b/oni/packages/emacs-config.scm @@ -13,7 +13,7 @@ #:use-module (oni packages go)) (define-public emacs-oni-config - (let ((commit "6698c28e49456e532fc7a2f190193656b1a4101a") + (let ((commit "655ce45b2f4f8ebcc0e1937e1a362228022dd95d") (revision "0")) (package (name "emacs-oni-config") @@ -26,7 +26,7 @@ (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0x2slp01ziw05n084kd1sv9fbqy0c7fvq6j0c94q10s4wcbw277n")))) + (base32 "00l4g6n3rk3fwnz6sfmfyagdqik5w21cm8mg3biz48qjnhhm1n5w")))) (build-system emacs-build-system) (home-page "https://code.ryuslash.org/ryuslash/emacs-config") (synopsis "My Emacs configuration") @@ -267,7 +267,8 @@ Emacs"))) `(("emacs-reformatter" ,emacs-reformatter) ("emacs-oni-flycheck" ,emacs-oni-flycheck) ("emacs-oni-smartparens" ,emacs-oni-smartparens) - ("shfmt" ,shfmt))) + ;; ("shfmt" ,shfmt) + )) (synopsis "My Emacs Shell coding configuration") (description "This package provides my configuration for coding in Shell"))) @@ -319,6 +320,7 @@ Emacs"))) `(("emacs-oni-yasnippet" ,emacs-oni-yasnippet) ("emacs-oni-alert" ,emacs-oni-alert) ("emacs-oni-hydra" ,emacs-oni-hydra) + ("emacs-org-roam" ,emacs-org-roam) ("emacs-org" ,emacs-org) ("emacs-org-contrib" ,emacs-org-contrib) ("emacs-org-bullets" ,emacs-org-bullets) @@ -624,3 +626,237 @@ Emacs"))) '(#:include '("oni-project\\.el$"))) (synopsis "My project.el configuration") (description "This package provides my configuration for project.el."))) + +(define-public emacs-oni-dired + (package + (inherit emacs-oni-config) + (name "emacs-oni-dired") + (arguments + '(#:include '("oni-dired\\.el$"))) + (synopsis "My Dired configuration") + (description "This package provides my configuration for Dired."))) + +(define-public emacs-oni-ediff + (package + (inherit emacs-oni-config) + (name "emacs-oni-ediff") + (arguments + '(#:include '("oni-ediff\\.el$"))) + (synopsis "My Ediff configuration") + (description "This package provides my configuration for Ediff."))) + +(define-public emacs-oni-elm + (package + (inherit emacs-oni-config) + (name "emacs-oni-elm") + (arguments + '(#:include '("oni-elm\\.el$"))) + (propagated-inputs + (list emacs-elm-mode + emacs-oni-lsp + emacs-rainbow-delimiters)) + (synopsis "My Elm configuration") + (description "This package provides my configuration for writing Elm code."))) + +(define-public emacs-oni-emms + (package + (inherit emacs-oni-config) + (name "emacs-oni-emms") + (arguments + '(#:include '("oni-emms\\.el$"))) + (propagated-inputs + (list emacs-emms)) + (synopsis "My EMMS configuration") + (description "This package provides my configuration for EMMS."))) + +(define-public emacs-oni-epub + (package + (inherit emacs-oni-config) + (name "emacs-oni-epub") + (arguments + '(#:include '("oni-epub\\.el$"))) + (propagated-inputs + (list emacs-nov-el)) + (synopsis "My configuration for reading ePub files") + (description "This package provides my configuration for reading ePub files."))) + +(define-public emacs-oni-eww + (package + (inherit emacs-oni-config) + (name "emacs-oni-eww") + (arguments + '(#:include '("oni-eww\\.el"))) + (propagated-inputs + (list emacs-oni-data-dir)) + (synopsis "My configuration for EWW") + (description "This package provides my configuration for EWW."))) + +(define-public emacs-oni-grep + (package + (inherit emacs-oni-config) + (name "emacs-oni-grep") + (arguments + '(#:include '("oni-grep\\.el$"))) + (synopsis "My grep configuration") + (description "This package provides my configuration for grep."))) + +(define-public emacs-oni-haskell + (package + (inherit emacs-oni-config) + (name "emacs-oni-haskell") + (arguments + '(#:include '("oni-haskell\\.el$"))) + (propagated-inputs + (list emacs-haskell-mode)) + (synopsis "My configuration for Haskell programming") + (description "This package provides my configuration for programming Haskell."))) + +(define-public emacs-oni-highlight-indent-guides + (package + (inherit emacs-oni-config) + (name "emacs-oni-highlight-indent-guides") + (arguments + '(#:include '("oni-highlight-indent-guides\\.el$"))) + (propagated-inputs + (list emacs-highlight-indent-guides)) + (synopsis "My configuration for highlight indent guides") + (description "This package provides my configuration for highlight indent guides."))) + +(define-public emacs-oni-html + (package + (inherit emacs-oni-config) + (name "emacs-oni-html") + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir-oni-html + (λ _ (chdir "oni-html")))) + #:include '("\\.el$" "^snippets\\/"))) + (propagated-inputs + (list emacs-oni-yasnippet)) + (synopsis "My HTML configuration") + (description "This package provides my configuration for HTML."))) + +(define-public emacs-oni-java + (package + (inherit emacs-oni-config) + (name "emacs-oni-java") + (arguments + '(#:include '("oni-java\\.el$"))) + (propagated-inputs + (list emacs-oni-data-dir + emacs-oni-lsp + emacs-oni-hydra + emacs-lsp-java + emacs-rainbow-delimiters)) + (synopsis "My configuration for Java") + (description "This package provides my configuration for writing Java."))) + +(define-public emacs-oni-json + (package + (inherit emacs-oni-config) + (name "emacs-oni-json") + (arguments + '(#:include '("oni-json\\.el$"))) + (propagated-inputs + (list emacs-json-mode)) + (synopsis "My configuration for json") + (description "This package provides my configuration for writing json."))) + +(define-public emacs-oni-log-edit + (package + (inherit emacs-oni-config) + (name "emacs-oni-log-edit") + (arguments + '(#:include '("oni-log-edit\\.el$"))) + (synopsis "My configuration for log-edit") + (description "This package provides my configuration for log-edit."))) + +(define-public emacs-oni-lua + (package + (inherit emacs-oni-config) + (name "emacs-oni-lua") + (arguments + '(#:include '("oni-lua\\.el$"))) + (propagated-inputs + (list emacs-lua-mode)) + (synopsis "My configuration for Lua") + (description "This package provides my configuration for writing Lua."))) + +(define-public emacs-oni-makefile + (package + (inherit emacs-oni-config) + (name "emacs-oni-makefile") + (arguments + '(#:include '("oni-makefile\\.el$"))) + (synopsis "My configuration for GNU Make") + (description "This package provides my configuration for writing Makefiles."))) + +(define-public emacs-oni-nxml + (package + (inherit emacs-oni-config) + (name "emacs-oni-nxml") + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir-oni-nxml + (λ _ (chdir "oni-nxml")))) + #:include '("\\.el$" "^snippets\\/"))) + (propagated-inputs + (list emacs-oni-yasnippet + emacs-reformatter)) + (synopsis "My XML configuration") + (description "This package provides my configuration for writing XML."))) + +(define-public emacs-oni-package + (package + (inherit emacs-oni-config) + (name "emacs-oni-package") + (arguments + '(#:include '("oni-package\\.el$"))) + (synopsis "My configuration for package.el") + (description "This package provides my configuration for package.el."))) + +(define-public emacs-oni-projectile + (package + (inherit emacs-oni-config) + (name "emacs-oni-projectile") + (arguments + '(#:include '("oni-projectile\\.el$"))) + (propagated-inputs + (list emacs-projectile)) + (synopsis "My configuration for Projectile") + (description "This package provides my configuration for Projectile."))) + +(define-public emacs-oni-scheme + (package + (inherit emacs-oni-config) + (name "emacs-oni-scheme") + (arguments + '(#:include '("oni-scheme\\.el$"))) + (propagated-inputs + (list emacs-oni-company + emacs-oni-paredit + emacs-rainbow-delimiters + emacs-geiser + emacs-geiser-guile)) + (synopsis "My configuration for Scheme") + (description "This package provides my configuration for writing Scheme."))) + +(define-public emacs-oni-shr + (package + (inherit emacs-oni-config) + (name "emacs-oni-shr") + (arguments + '(#:include '("oni-shr\\.el$"))) + (synopsis "My configuration for shr") + (description "This package provides my configuration for shr."))) + +(define-public emacs-oni-tramp + (package + (inherit emacs-oni-config) + (name "emacs-oni-tramp") + (arguments + '(#:include '("oni-tramp\\.el$"))) + (synopsis "My configuration for TRAMP") + (description "This package provides my configuration for TRAMP.")))