summaryrefslogtreecommitdiff
path: root/.config/emacs
diff options
context:
space:
mode:
authorJack Jamison <jackqjamison@gmail.com>2025-11-07 12:23:20 -0500
committerJack Jamison <jackqjamison@gmail.com>2025-11-07 12:23:26 -0500
commita1995974779801c8743076479b04d6f11a94e836 (patch)
treebebb4d61e27fb317927b3f8c5b0b1b411369d4d3 /.config/emacs
parent9de4b69532faff189fc424c6b6fbf924716aaa91 (diff)
vterm and plan
Diffstat (limited to '.config/emacs')
-rw-r--r--.config/emacs/.gitignore11
-rw-r--r--.config/emacs/TODO.org24
-rw-r--r--.config/emacs/init.el79
3 files changed, 92 insertions, 22 deletions
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