Initial dotfiles commit

Laptop config: zsh, emacs (with WSL detection for work), ghostty, tmux, ranger,
newsboat, neomutt + mbsync + msmtp (Outlook OAuth2), neomutt signature.
Work config: emacs with C#/TS/JS/CSS/HTML dev settings for WSL.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-20 14:39:23 -04:00
commit a0abf9705f
18 changed files with 945 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
;;; common-dev-settings.el --- Dev tooling shared across all hosts
;;; Completion
(use-package company
:defer 1
:config
(global-company-mode)
(setq company-idle-delay 0.2
company-minimum-prefix-length 2
company-show-numbers t
company-tooltip-align-annotations t))
;;; LSP
(use-package eglot
:ensure nil
:defer t
:commands (eglot eglot-ensure)
:config
(setq eglot-autoshutdown t
eglot-send-changes-idle-time 0.5)
(setq eldoc-echo-area-use-multiline-p nil)
(add-to-list 'eglot-stay-out-of 'eldoc))
;;; Tree-sitter mode management
;; Grammar sources and installation are host-specific; see dev-settings.el.
(use-package treesit-auto
:custom
(treesit-auto-install 'prompt)
:config
(treesit-auto-add-to-auto-mode-alist 'all)
(global-treesit-auto-mode))
;;; Utilities
(use-package helpful
:defer t
:commands (helpful-callable helpful-variable helpful-key))
(use-package smartparens
:defer 1
:hook (prog-mode . smartparens-mode)
:config
(require 'smartparens-config))
(use-package yasnippet
:defer 2
:config
(yas-global-mode 1))
(use-package yasnippet-snippets
:defer t
:after yasnippet)
;;; Emacs Lisp
(add-hook 'emacs-lisp-mode-hook #'eldoc-mode)
(add-hook 'emacs-lisp-mode-hook #'company-mode)
;;; LSP Keybindings
(with-eval-after-load 'eglot
(keymap-set eglot-mode-map "C-c l d" #'xref-find-definitions)
(keymap-set eglot-mode-map "C-c l r" #'xref-find-references)
(keymap-set eglot-mode-map "C-c l i" #'eglot-find-implementation)
(keymap-set eglot-mode-map "C-c l t" #'eglot-find-typeDefinition)
(keymap-set eglot-mode-map "C-c l h" #'eldoc-doc-buffer)
(keymap-set eglot-mode-map "C-c l s" #'eldoc)
(keymap-set eglot-mode-map "C-c l a" #'eglot-code-actions)
(keymap-set eglot-mode-map "C-c l n" #'eglot-rename)
(keymap-set eglot-mode-map "C-c l e" #'flymake-show-buffer-diagnostics)
(keymap-set eglot-mode-map "C-c l f" #'eglot-format-buffer))
(provide 'common-dev-settings)
;;; common-dev-settings.el ends here