More emacs config updates
This commit is contained in:
parent
cbeb8faac6
commit
607ded5d0b
1 changed files with 135 additions and 20 deletions
153
guix/init.org
153
guix/init.org
|
|
@ -199,10 +199,11 @@ Setting this in the :init of evil doesn't work for some reason. It has to be ear
|
|||
(dolist (mode
|
||||
'(org-mode-hook
|
||||
term-mode-hook
|
||||
eshell-mode-hook))
|
||||
eshell-mode-hook
|
||||
treemacs-mode-hook))
|
||||
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
||||
(column-number-mode)
|
||||
#+end_src
|
||||
#+end_src
|
||||
** Buffers
|
||||
=TODO:= Make this use currently selected buffer
|
||||
#+begin_src emacs-lisp
|
||||
|
|
@ -301,6 +302,51 @@ Setting this in the :init of evil doesn't work for some reason. It has to be ear
|
|||
(ace-window arg)
|
||||
))
|
||||
#+end_src
|
||||
** Shackle
|
||||
#+begin_src emacs-lisp
|
||||
(use-package shackle
|
||||
:config
|
||||
(shackle-mode))
|
||||
|
||||
(setq shackle-rules
|
||||
'(
|
||||
(helpful-mode :align right :select t :size 0.3 :popup t)
|
||||
(help-mode :align right :select t :size 0.3 :popup t)
|
||||
("*shell*" :align below :select t :size 0.3 :popup t)
|
||||
("*eshell*" :align below :select t :size 0.3 :popup t)
|
||||
("*vterm*" :align below :select t :size 0.3 :popup t)
|
||||
("*scratch*" :align left :select t :size 0.25 :popup t)
|
||||
(treemacs-mode :align left :select t :size 0.40 :popup t)
|
||||
("*Messages*" :align right :select t :size 0.25 :popup t))
|
||||
'(:select t)) ;; Always select newly created windows
|
||||
#+end_src
|
||||
** Popper
|
||||
#+begin_src emacs-lisp
|
||||
(use-package popper
|
||||
:after (shackle projectile)
|
||||
:init
|
||||
(setq popper-reference-buffers
|
||||
'(("\\*Messages\\*" . hide)
|
||||
"\\*Error\\*"
|
||||
"Output\\*$"
|
||||
("\\*Warnings\\*" . hide)
|
||||
"\\*scratch*\\*"
|
||||
;; "\\*lsp-bridge\\*"
|
||||
"\\*Async Shell Command\\*"
|
||||
"^\\*eshell.*\\*$" eshell-mode ;eshell as a popup
|
||||
"^\\*shell.*\\*$" shell-mode ;shell as a popup
|
||||
"^\\*term.*\\*$" term-mode ;term as a popup
|
||||
"^\\*vterm.*\\*$" vterm-mode ;vterm as a popup
|
||||
helpful-mode
|
||||
compilation-mode
|
||||
inferior-python-mode
|
||||
consult-flymake-mode))
|
||||
:config
|
||||
(setq popper-display-control nil)
|
||||
(popper-mode +1)
|
||||
(popper-echo-mode +1))
|
||||
(setq popper-group-function #'popper-group-by-projectile)
|
||||
#+end_src
|
||||
** Dired
|
||||
#+begin_src emacs-lisp
|
||||
(setq ring-bell-function 'ignore)
|
||||
|
|
@ -335,7 +381,9 @@ Setting this in the :init of evil doesn't work for some reason. It has to be ear
|
|||
#+end_src
|
||||
** Treemacs
|
||||
#+begin_src emacs-lisp
|
||||
(use-package treemacs)
|
||||
(use-package treemacs
|
||||
:config
|
||||
(setq treemacs-width 45))
|
||||
|
||||
;; Follow project buffers instantly
|
||||
(setq treemacs--project-follow-delay 0)
|
||||
|
|
@ -381,12 +429,12 @@ I know these could be bound on a per-package basis, but since this is my primary
|
|||
;; Top level bindings
|
||||
"SPC" '(projectile-find-file :which-key "Find project file")
|
||||
"<backspace>" '(ian/treemacs-open-current-or-jump :which-key "Find current file in sidebar")
|
||||
"," '(prochectile-ibuffer :which-key "Buffers (workspace)")
|
||||
"TAB" '(popper-toggle :which-key "Toggle popup")
|
||||
"," '(projectile-ibuffer :which-key "Buffers (workspace)")
|
||||
"/" '(consult-ripgrep :which-key "Search project")
|
||||
":" '(execute-extended-command :which-key "M-x")
|
||||
";" '(eval-expression :which-key "Eval")
|
||||
"<" '(consult-buffer :which-key "Buffers (all)")
|
||||
"x" '(scratch-buffer :which-key "Scratch popup")
|
||||
"-" '(dired :which-key "Find Directory")
|
||||
"d" '(docker :which-key "Docker")
|
||||
"i" '(ian/conditional-imenu :which-key "Imenu")
|
||||
|
|
@ -444,8 +492,9 @@ I know these could be bound on a per-package basis, but since this is my primary
|
|||
;; File
|
||||
"f" '(:ignore t :which-key "File")
|
||||
;; "fp" '(doom/open-private-config :which-key "Browse private config")
|
||||
"fr" '(consult-recent-file :which-key "Recent files")
|
||||
"fR" '(ian/reload-config :which-key "Reload config")
|
||||
"fr" '(projectile-recentf :which-key "Recent files")
|
||||
"fR" '(consult-recent-file :which-key "Recent files")
|
||||
"fc" '(ian/reload-config :which-key "Reload config")
|
||||
;; "fm" '(doom/move-this-file :which-key "Move/rename file")
|
||||
;; "fS" '(doom/sudo-find-file :which-key "Sudo find file")
|
||||
;; "fs" '(doom/sudo-this-file :which-key "Sudo this file")
|
||||
|
|
@ -509,11 +558,10 @@ I know these could be bound on a per-package basis, but since this is my primary
|
|||
"hf" '(helpful-function :which-key "Describe function")
|
||||
"hi" '(info :which-key "Info")
|
||||
"hk" '(helpful-key :which-key "Describe key")
|
||||
"hl" '(view-lossage :which-key "View actions log")
|
||||
"hm" '(describe-mode :which-key "Describe mode")
|
||||
"ho" '(helpful-symbol :which-key "Describe symbol")
|
||||
"hp" '(explain-pause-top :which-key "Processes")
|
||||
"hs" '(yas-desrcibe-tables :which-key "Describe symbol")
|
||||
"hs" '(yas-describe-tables :which-key "Describe symbol")
|
||||
"hv" '(helpful-variable :which-key "Describe variable")
|
||||
"hx" '(helpful-command :which-key "Describe command")
|
||||
"hA" '(apropos-documentation :which-key "Apropos(documentation)")
|
||||
|
|
@ -569,16 +617,17 @@ I know these could be bound on a per-package basis, but since this is my primary
|
|||
"nb" '(org-roam-buffer-display-dedicated :which-key "Launch roam buffer")
|
||||
"ns" '(org-roam-db-sync :which-key "Sync database")
|
||||
"nc" '(org-roam-capture :which-key "Capture to node")
|
||||
"ni" '(org-roam-insert :which-key "Insert node at point")
|
||||
"ni" '(org-roam-node-insert :which-key "Insert node at point")
|
||||
|
||||
;; Org mode
|
||||
"o" '(:ignore t :which-key "org")
|
||||
"ol" '(org-store-link :which-key "Org store link")
|
||||
"oc" '(org-capture :which-key "Org Capture")
|
||||
"ol" '(org-store-link :which-key "Store link")
|
||||
"oc" '(org-capture :which-key "Capture")
|
||||
"oC" '(org-capture-goto-target :which-key "Goto Capture")
|
||||
"ot" '(org-babel-tangle :which-key "Org Tangle")
|
||||
"oy" '(+org/export-to-clipboard :which-key "Org export to clipboard")
|
||||
"oY" '(+org/export-to-clipboard-as-rich-text :which-key "Org export to clipboard (rich)")
|
||||
"oo" '(org-open-at-point :which-key "Open link")
|
||||
"ot" '(org-babel-tangle :which-key "Tangle")
|
||||
"oy" '(+org/export-to-clipboard :which-key "Export to clipboard")
|
||||
"oY" '(+org/export-to-clipboard-as-rich-text :which-key "Export to clipboard (rich)")
|
||||
"oe" '(:ignore t :which-key "export")
|
||||
"oeh" '(org-html-export-to-html :which-key "Export Org to HTML")
|
||||
"oa" '(:ignore t :which-key "attach")
|
||||
|
|
@ -602,6 +651,12 @@ I know these could be bound on a per-package basis, but since this is my primary
|
|||
"pT" '(projectile-test-project :which-key "Test project")
|
||||
"pz" '(+taskrunner/project-tasks :which-key "List project tasks")
|
||||
|
||||
;; Reference buffers
|
||||
"r" '(:ignore t :which-key "reference buffers")
|
||||
"s" '(scratch-buffer :which-key "Scratch")
|
||||
"m" '(view-echo-area-messages :which-key "Messages")
|
||||
"c" '(view-lossage :which-key "Commands History")
|
||||
|
||||
;; Shell
|
||||
"s" '(:ignore t :which-key "shell")
|
||||
"se" '(+eshell/toggle :which-key "Toggle eshell popup")
|
||||
|
|
@ -791,6 +846,8 @@ Idk I think this came from the vertico readme
|
|||
(add-hook 'eldoc-documentation-functions #'embark-eldoc-first-target)
|
||||
|
||||
:config
|
||||
(with-eval-after-load 'evil
|
||||
(define-key evil-normal-state-map (kbd "C-.") 'embark-act))
|
||||
;; Hide the mode line of the Embark live/completions buffers
|
||||
(add-to-list 'display-buffer-alist
|
||||
'("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*"
|
||||
|
|
@ -802,6 +859,45 @@ Idk I think this came from the vertico readme
|
|||
:ensure t ; only need to install it, embark loads it after consult if found
|
||||
:hook
|
||||
(embark-collect-mode . consult-preview-at-point-mode))
|
||||
|
||||
;; https://github.com/oantolin/embark/wiki/Additional-Configuration#use-which-key-like-a-key-menu-prompt
|
||||
(defun embark-which-key-indicator ()
|
||||
"An embark indicator that displays keymaps using which-key.
|
||||
The which-key help message will show the type and value of the
|
||||
current target followed by an ellipsis if there are further
|
||||
targets."
|
||||
(lambda (&optional keymap targets prefix)
|
||||
(if (null keymap)
|
||||
(which-key--hide-popup-ignore-command)
|
||||
(which-key--show-keymap
|
||||
(if (eq (plist-get (car targets) :type) 'embark-become)
|
||||
"Become"
|
||||
(format "Act on %s '%s'%s"
|
||||
(plist-get (car targets) :type)
|
||||
(embark--truncate-target (plist-get (car targets) :target))
|
||||
(if (cdr targets) "…" "")))
|
||||
(if prefix
|
||||
(pcase (lookup-key keymap prefix 'accept-default)
|
||||
((and (pred keymapp) km) km)
|
||||
(_ (key-binding prefix 'accept-default)))
|
||||
keymap)
|
||||
nil nil t (lambda (binding)
|
||||
(not (string-suffix-p "-argument" (cdr binding))))))))
|
||||
|
||||
(setq embark-indicators
|
||||
'(embark-which-key-indicator
|
||||
embark-highlight-indicator
|
||||
embark-isearch-highlight-indicator))
|
||||
|
||||
(defun embark-hide-which-key-indicator (fn &rest args)
|
||||
"Hide the which-key indicator immediately when using the completing-read prompter."
|
||||
(which-key--hide-popup-ignore-command)
|
||||
(let ((embark-indicators
|
||||
(remq #'embark-which-key-indicator embark-indicators)))
|
||||
(apply fn args)))
|
||||
|
||||
(advice-add #'embark-completing-read-prompter
|
||||
:around #'embark-hide-which-key-indicator)
|
||||
#+end_src
|
||||
** Snippets
|
||||
#+begin_src emacs-lisp
|
||||
|
|
@ -905,6 +1001,8 @@ Uses the external fish program to provide fish-style completions to eshell etc
|
|||
(use-package magit)
|
||||
(use-package magit-todos)
|
||||
(setq magit-display-buffer-function 'magit-display-buffer-same-window-except-diff-v1)
|
||||
|
||||
(use-package git-timemachine)
|
||||
#+end_src
|
||||
* Evil
|
||||
#+begin_src emacs-lisp
|
||||
|
|
@ -919,6 +1017,13 @@ Uses the external fish program to provide fish-style completions to eshell etc
|
|||
(define-key evil-normal-state-map (kbd "ghr") 'git-gutter+-revert-hunk)
|
||||
(define-key evil-normal-state-map (kbd "ghs") 'git-gutter+-popup-hunk)
|
||||
(define-key evil-normal-state-map (kbd "ghS") 'git-gutter+-stage-hunk)
|
||||
(define-key evil-normal-state-map (kbd "gp") nil)
|
||||
(define-key evil-normal-state-map (kbd "gpn") 'popper-cycle)
|
||||
(define-key evil-normal-state-map (kbd "gpp") 'popper-cycle-backwards)
|
||||
(define-key evil-normal-state-map (kbd "gpq") 'popper-kill-latest-popup)
|
||||
(define-key evil-normal-state-map (kbd "gpt") 'popper-toggle-type)
|
||||
(define-key evil-normal-state-map (kbd "gbn") 'projectile-next-project-buffer)
|
||||
(define-key evil-normal-state-map (kbd "gbp") 'projectile-previous-project-buffer)
|
||||
(evil-mode 1))
|
||||
|
||||
(use-package undo-tree
|
||||
|
|
@ -978,10 +1083,11 @@ Uses the external fish program to provide fish-style completions to eshell etc
|
|||
** Explain-Pause
|
||||
Scrutinize which processes are gumming up emacs
|
||||
#+begin_src emacs-lisp
|
||||
(use-package explain-pause-mode
|
||||
:straight (explain-pause-mode :type git :host github :repo "lastquestion/explain-pause-mode")
|
||||
:config
|
||||
(explain-pause-mode))
|
||||
;; (use-package explain-pause-mode
|
||||
;; :straight (explain-pause-mode :type git :host github :repo "lastquestion/explain-pause-mode")
|
||||
;; :diminish explain-pause-mode
|
||||
;; :config
|
||||
;; (explain-pause-mode))
|
||||
#+end_src
|
||||
* Todo
|
||||
** General
|
||||
|
|
@ -1043,6 +1149,7 @@ Scrutinize which processes are gumming up emacs
|
|||
- map default-text-scale operations
|
||||
- org-capture from string and org-ripgrep
|
||||
- move spc p s back to spc p p
|
||||
- org eval block
|
||||
- explain-pause spc h p
|
||||
- Want this for org-roam, don't want to rebind tab here
|
||||
- empv
|
||||
|
|
@ -1055,6 +1162,14 @@ Scrutinize which processes are gumming up emacs
|
|||
- spc m r(adio)
|
||||
- empv-video-dir empv-audio-dir?
|
||||
- empv-play-file
|
||||
- Set display-buffer-alist values for how I want windows treated (integrates with popper), e.g.
|
||||
#+begin_src emacs-lisp :tangle no
|
||||
(add-to-list 'display-buffer-alist
|
||||
'("\\*ielm\\*"
|
||||
(display-buffer-in-side-window)
|
||||
(side . left)
|
||||
(window-width . 50)))
|
||||
#+end_src
|
||||
|
||||
selected radio (See empv-radio-log-file and empv-radio-log-format
|
||||
variables and their documentations).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue