From a1995974779801c8743076479b04d6f11a94e836 Mon Sep 17 00:00:00 2001 From: Jack Jamison Date: Fri, 7 Nov 2025 12:23:20 -0500 Subject: vterm and plan --- .config/emacs/.gitignore | 11 +++---- .config/emacs/TODO.org | 24 ++++++++++++--- .config/emacs/init.el | 79 +++++++++++++++++++++++++++++++++++++++++------- 3 files changed, 92 insertions(+), 22 deletions(-) (limited to '.config/emacs') diff --git a/.config/emacs/.gitignore b/.config/emacs/.gitignore index b71c3d2..37577e6 100644 --- a/.config/emacs/.gitignore +++ b/.config/emacs/.gitignore @@ -1,8 +1,5 @@ -settings.el +var/ +etc/ +elpa/ +tree-sitter/ customs.el -/auto-save-list/ -/eln-cache/ -/elpa/ -/etc/ -/snippets/ -/var/ \ No newline at end of file diff --git a/.config/emacs/TODO.org b/.config/emacs/TODO.org index 561be26..7f6f53c 100644 --- a/.config/emacs/TODO.org +++ b/.config/emacs/TODO.org @@ -3,8 +3,24 @@ - [x] indent switch statements right - [x] evil mode stop $ selecting newline - [x] C-g dwim for minibuffer -- [ ] vterm and command to open term, session management with projectile + (multi-vterm) -- [ ] better window management (close frame and kill window) -- [ ] compile command caching and always running under dape -- [ ] switch to eglot +- [x] vterm and command to open terms +- [x] spacious padding +- [ ] easier keybind for close frame and kill frame +- [ ] session management with perspective.el - [ ] connect xdg open to current session +- [ ] vterm fix resizing + % + +- [ ] switch to eglot +- [ ] agent shell +- [ ] compile command cacheing and always running under dape + +- [ ] theme resetter + +Perspective System +- Set up binds for perspective +- Initialize misc perspective +- Command to open this perspective's vterm. Also to open a second vterm for this perspective +- open to re-open a vterm buffer (to reset its directory) +- System wide keybind to open misc perspective or terminal +- System wide keybind to open an emacs client with a perspective (or yank the view to a current one) +- XDG open client which asks which perspective diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 1fcd2d2..0c61ea7 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -72,14 +72,18 @@ (tooltip-mode -1) (menu-bar-mode -1) -;; columns and line numbers +;; columns and truncation (column-number-mode +1) (setq-default fill-column 80) -(global-display-line-numbers-mode t) -(setq display-line-numbers-width-start t - display-line-numbers-type t) (setq-default truncate-lines t) +;; line numbers in prog mode +(defun my/prog-mode-hook () + (display-line-numbers-mode t) + (setq display-line-numbers-width-start t + display-line-numbers-type t)) +(add-hook 'prog-mode-hook 'my/prog-mode-hook) + ;; rainbow delimiters (use-package rainbow-delimiters :hook (prog-mode . rainbow-delimiters-mode)) @@ -210,6 +214,18 @@ :config (load-theme 'doom-tokyo-night)) +(use-package spacious-padding + :config + (setq spacious-padding-widths (plist-put spacious-padding-widths :internal-border-width 10)) + (setq spacious-padding-widths (plist-put spacious-padding-widths :right-divider-width 10)) + (spacious-padding-mode)) + +(use-package doom-modeline + :config + (setq doom-modeline-modal nil + doom-modeline-height 0) + (doom-modeline-mode)) + ;; icons (use-package nerd-icons) (use-package nerd-icons-dired @@ -270,13 +286,11 @@ (use-package consult :custom (consult-preview-key nil) - :bind - (("C-x b" . 'consult-buffer) ;; Switch buffer, including recentf and bookmarks - ("M-l" . 'consult-git-grep) ;; Search inside a project - ("M-y" . 'consult-yank-pop) ;; Paste by selecting the kill-ring - ("M-s" . 'consult-line) ;; Search current buffer, like swiper - ("C-c i" . 'consult-imenu) ;; Search the imenu - )) + :bind (("M-l" . 'consult-git-grep) ;; Search inside a project + ("M-y" . 'consult-yank-pop) ;; Paste by selecting the kill-ring + ("M-s" . 'consult-line) ;; Search current buffer, like swiper + ("C-c i" . 'consult-imenu) ;; Search the imenu + )) ;; projectile (use-package rg) @@ -297,6 +311,9 @@ :custom (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) +;; == flycheck +(use-package flycheck) + ;; == lsp (use-package lsp-mode :custom @@ -430,6 +447,46 @@ (setq treesit-load-name-override-list '((c++ "libtree-sitter-cpp"))) +;; == development environment +(use-package vterm + :bind ( ("C-c a" . vterm-other-window) + :map vterm-mode-map + ("C-c c" . vterm-copy-mode) + ("C-l" . my-vterm-clear) + :map vterm-copy-mode-map + ("C-c c" . vterm-copy-mode)) + :config + (defun my-vterm-clear () + (interactive) + (vterm-send-key "l" nil nil t) + (vterm-clear-scrollback)) + (defun my-vterm-copy-mode-evil-setup () + "Enable evil only in vterm-copy-mode." + (if vterm-copy-mode + ;; on enter + (progn + (evil-local-mode 1) + (evil-force-normal-state)) + ;; on exit + (evil-local-mode -1))) + (defun my-vterm-setup () + (when (bound-and-true-p evil-local-mode) + (evil-local-mode -1)) + (text-scale-set 1) + (setq-local truncate-lines nil)) + ;; disable evil + (with-eval-after-load 'evil + (evil-set-initial-state 'vterm-mode 'emacs)) + (add-hook 'vterm-mode-hook #'my-vterm-setup) + (add-hook 'vterm-copy-mode-hook #'my-vterm-copy-mode-evil-setup)) + +(use-package perspective + :bind (("C-x k" . persp-kill-buffer*)) + :custom + (persp-mode-prefix-key (kbd "C-c M-p")) + :init + (persp-mode)) + ;; == languages ;; === c mode -- cgit v1.2.3