summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/common/emacs/default.nix58
-rw-r--r--modules/common/emacs/doom/config.el29
-rw-r--r--modules/common/emacs/doom/init.el36
-rw-r--r--modules/common/emacs/doom/packages.el2
4 files changed, 76 insertions, 49 deletions
diff --git a/modules/common/emacs/default.nix b/modules/common/emacs/default.nix
index 6c81ce2..94c7729 100644
--- a/modules/common/emacs/default.nix
+++ b/modules/common/emacs/default.nix
@@ -40,7 +40,7 @@ in {
"https://github.com/doomemacs/doomemacs" "$EMACSDIR"
fi
- if [[ ! -d "$DOOMDIR" ]]; then
+ if [[ ! -d "$DOOMDIR/snippets" ]]; then
mkdir -p "$DOOMDIR/snippets"
fi
@@ -67,6 +67,7 @@ in {
[
(aspellWithDicts (p: with p; [en ru])) # :checkers (spell +aspell)
asmfmt # :editor format
+ bashdb # :lang sh :tools debugger
cargo # :lang rust
clang-tools # :lang (cc +lsp) :editor format
cmake # :lang cc :term vterm
@@ -80,7 +81,8 @@ in {
ghc # :lang haskell
gnumake # :term vterm
gnuplot # :lang (org +gnuplot)
- gnutls # doom!
+ gnutar # :tools tree-sitter
+ gnutls # doom! :app irc
go # :lang go
gocode # :lang go org
godef # :lang go
@@ -90,15 +92,18 @@ in {
gotests # :lang go
gotools # :lang go
graphviz # :lang (org +roam2) :lang plantuml
+ gzip # :tools tree-sitter
haskellPackages.cabal-fmt # :lang haskell :editor format
haskellPackages.cabal-install # :lang haskell
haskellPackages.haskell-language-server # :lang (haskell +lsp)
haskellPackages.hoogle # :lang haskell
haskellPackages.ormolu # :lang haskell :editor format
html-tidy # :lang web :editor format
- jre # :lang plantuml
+ jdk # :lang java :lang plantuml :checkers grammar
+ languagetool # :checkers grammar
libtool # :term vterm
libxml2 # :lang data :editor format
+ markdownlint-cli # :lang markdown
nil # :lang (nix +lsp)
nodePackages.bash-language-server # :lang (sh +lsp)
nodePackages.eslint # :lang (json +lsp)
@@ -121,12 +126,10 @@ in {
python3Packages.pyflakes # :lang python :editor format
python3Packages.pytest # :lang python
python3Packages.python-lsp-server # :lang python :editor format
- racket # :lang racket scheme :editor format
ripgrep # doom!
rust-analyzer # :lang (rust +lsp)
rustc # :lang rust
rustfmt # :lang rust
- sbcl # :lang common-lisp
shellcheck # :lang sh
shfmt # :lang sh :editor format
sqlite # :lang (org +roam2) :tools lookup
@@ -158,9 +161,13 @@ in {
concatMapStringsSep ":" (x: "${x}/bin") extraBins
}"))
- (appendq! auth-sources '(("${config.secrets.authinfo.path}")))
+ ;; HACK Explicitly load specific Emacs packages from Nixpkgs.
+ ;; For some reason providing them as "extraPackages" doesn't
+ ;; work.
+ (add-to-list 'load-path "${pkgs.mu.mu4e}/share/emacs/site-lisp/mu4e")
+ (add-to-list 'load-path "${pkgs.emacsPackages.vterm}/share/emacs/site-lisp/elpa/vterm-${pkgs.emacsPackages.vterm.version}")
- (setq emacsql-sqlite-executable "${getExe pkgs.emacsql-sqlite}")
+ (appendq! auth-sources '(("${config.secrets.authinfo.path}")))
;; The font must be set to n+2, otherwise it looks too small.
(setq doom-font (font-spec
@@ -168,28 +175,34 @@ in {
:size ${toString (config.fontScheme.monospaceFont.size + 2)})
doom-unicode-font doom-font)
- ;; :app irc
- (setq circe-default-nick "${my.username}"
- circe-default-realname "${my.email}"
- circe-default-user circe-default-nick)
-
- ;; :lang plantuml
- (setq plantuml-jar-path "${pkgs.plantuml}/lib/plantuml.jar"
- plantuml-executable-path "${getExe' pkgs.plantuml "plantuml"}"
- org-plantuml-jar-path plantuml-jar-path
- org-plantuml-executable-path plantuml-executable-path)
-
;; :input japanese
- (setq migemo-dictionary "${pkgs.cmigemo}/share/migemo/utf-8/migemo-dict")
+ (setq migemo-dictionary "${pkgs.cmigemo}/share/migemo/utf-8/migemo-dict"
+ skk-large-jisyo "${pkgs.skk-dicts}/share/SKK-JISYO.L")
- ;; :input japanese
- (setq skk-large-jisyo "${pkgs.skk-dicts}/share/skk/SKK-JISYO.L")
+ ;; :editor parinfer
+ (setq parinfer-rust-auto-download nil
+ parinfer-rust-library "${pkgs.parinfer-rust}/lib/libparinfer_rust.so")
;; :lang nix
;; HACK Trick `nix-mode' to use alejandra instead of nixfmt.
(setq nix-nixfmt-bin "${pkgs.writeShellScript "nixfmt" ''
${getExe pkgs.alejandra} "$@"
''}")
+
+ ;; :lang (org +roam2) :email mu4e
+ (setq emacsql-sqlite-executable "${getExe pkgs.emacsql-sqlite}")
+
+ ;; :lang plantuml
+ (setq plantuml-jar-path "${pkgs.plantuml}/lib/plantuml.jar"
+ plantuml-executable-path "${getExe' pkgs.plantuml "plantuml"}"
+ org-plantuml-jar-path plantuml-jar-path
+ org-plantuml-executable-path plantuml-executable-path)
+
+
+ ;; :app irc
+ (setq circe-default-nick "${my.username}"
+ circe-default-realname "${my.email}"
+ circe-default-user circe-default-nick)
''
)
(with config.hm.accounts.email; let
@@ -214,9 +227,6 @@ in {
'')
muAccounts;
in ''
- ;; HACK Load missing site-lisp for `mu4e'.
- (add-to-list 'load-path "${pkgs.mu.mu4e}/share/emacs/site-lisp/mu4e")
-
(setq mu4e-root-maildir "${maildirBasePath}")
${mu4eAccounts}
diff --git a/modules/common/emacs/doom/config.el b/modules/common/emacs/doom/config.el
index 257a3ea..dee3d3d 100644
--- a/modules/common/emacs/doom/config.el
+++ b/modules/common/emacs/doom/config.el
@@ -33,6 +33,16 @@
lsp-modeline-code-actions-enable nil)
;;
+;;; Go
+;;
+
+(setq lsp-go-analyses '((shadow . t)
+ (unsedvariable . t)
+ (unusedparams . t)
+ (unusedwrite . t)
+ (useany . t)))
+
+;;
;;; Org
;;
@@ -107,6 +117,13 @@
org-roam-ui-open-on-start t))
;;
+;;; LaTeX
+;;
+
+(map! :map cdlatex-mode-map
+ :i "TAB" #'cdlatex-tab)
+
+;;
;;; PlantUML
;;
@@ -187,6 +204,18 @@
'("libera" "oftc" "hackint" "rizon")))
;;
+;;; Fcitx
+;;
+
+(use-package! fcitx
+ :after evil
+ :config
+ (when (setq fcitx-remote-command
+ (or (executable-find "fcitx5-remote")
+ (executable-find "fcitx-remote")))
+ (fcitx-evil-turn-on)))
+
+;;
;;; Hledger
;;
diff --git a/modules/common/emacs/doom/init.el b/modules/common/emacs/doom/init.el
index f03971f..0a5a417 100644
--- a/modules/common/emacs/doom/init.el
+++ b/modules/common/emacs/doom/init.el
@@ -1,26 +1,20 @@
(doom! :input
- ;; japanese
+ japanese
:completion
company
vertico
:ui
- ;; deft
doom
- ;; doom-dashboard
- ;; doom-quit
(emoji +unicode)
hl-todo
- hydra
indent-guides
ligatures
modeline
- ;; nav-flash
+ nav-flash
ophints
(popup +defaults)
- ;; tabs
- ;; unicode
(vc-gutter +diff-hl +pretty)
window-select
workspaces
@@ -30,10 +24,7 @@
file-templates
fold
format
- ;; lispy
- ;; multiple-cursors
parinfer
- ;; rotate-text
snippets
word-wrap
@@ -63,7 +54,7 @@
gist
(lookup +dictionary +offline)
(lsp +peek)
- (magit +forge)
+ magit
make
(pass +auth)
pdf
@@ -76,27 +67,24 @@
:lang
(cc +lsp +tree-sitter)
- (common-lisp +lsp +tree-sitter)
data
- (dhall +lsp +tree-sitter)
- (emacs-lisp +lsp +tree-sitter)
+ dhall
+ emacs-lisp
(go +lsp +tree-sitter)
(haskell +lsp +tree-sitter)
(java +lsp +tree-sitter)
(javascript +lsp +tree-sitter)
(json +lsp +tree-sitter)
- (kotlin +lsp +tree-sitter)
- (latex +lsp +tree-sittter)
- (markdown +lsp +tree-sitter)
+ kotlin
+ (latex +latexmk +cdlatex +lsp)
+ markdown
(nix +lsp +tree-sitter)
- (org +pandoc +roam2)
+ (org +contacts +gnuplot +pandoc +pomodoro +roam2)
plantuml
- (python +lsp +tree-sitter)
- (racket +lsp +tree-sitter)
+ (python +poetry +lsp +tree-sitter)
(rust +lsp +tree-sitter)
- (scheme +lsp +tree-sitter +racket)
(sh +lsp +tree-sitter)
- web
+ (web +lsp +tree-sitter)
(yaml +lsp +tree-sitter)
(zig +lsp +tree-sitter)
@@ -105,8 +93,6 @@
:app
calendar
- ;; emms
- ;; everywhere
irc
(rss +org)
diff --git a/modules/common/emacs/doom/packages.el b/modules/common/emacs/doom/packages.el
index 26a1d31..ba24eb8 100644
--- a/modules/common/emacs/doom/packages.el
+++ b/modules/common/emacs/doom/packages.el
@@ -10,3 +10,5 @@
:branch "main"))
(package! hledger-mode)
+
+(package! fcitx)