wip
This commit is contained in:
118
home.org
118
home.org
@@ -1,4 +1,5 @@
|
|||||||
#+PROPERTY: header-args :mkdirp yes
|
#+PROPERTY: header-args :mkdirp yes
|
||||||
|
#+PROPERTY: header-args:elisp :lexical t
|
||||||
|
|
||||||
* Overall Structure
|
* Overall Structure
|
||||||
|
|
||||||
@@ -133,6 +134,7 @@ are still Shibumi-specific; ideally I'd find another way to install them.
|
|||||||
iosevka
|
iosevka
|
||||||
kube
|
kube
|
||||||
kubectl
|
kubectl
|
||||||
|
mariadb.client
|
||||||
nerd-fonts.jetbrains-mono
|
nerd-fonts.jetbrains-mono
|
||||||
openssh
|
openssh
|
||||||
tokei
|
tokei
|
||||||
@@ -602,7 +604,7 @@ emacs.
|
|||||||
<<emacs_packages>>
|
<<emacs_packages>>
|
||||||
];
|
];
|
||||||
emacs.extraConfig = ''
|
emacs.extraConfig = ''
|
||||||
<<emacs_early>>
|
;;; -*- lexical-binding: t -*-
|
||||||
<<emacs_config>>
|
<<emacs_config>>
|
||||||
'';
|
'';
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@@ -650,6 +652,10 @@ Turn off some default settings that I don't find useful.
|
|||||||
(setq make-backup-files nil)
|
(setq make-backup-files nil)
|
||||||
(setq split-window-threshold 200)
|
(setq split-window-threshold 200)
|
||||||
(setq split-height-threshold 200)
|
(setq split-height-threshold 200)
|
||||||
|
(setopt display-buffer-base-action
|
||||||
|
'((display-buffer-reuse-window display-buffer-same-window
|
||||||
|
display-buffer-in-previous-window
|
||||||
|
display-buffer-use-some-window)))
|
||||||
(setq view-read-only t)
|
(setq view-read-only t)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
@@ -763,6 +769,8 @@ Use variable-width fonts in text buffers. ~mixed-pitch-mode~ keeps most code blo
|
|||||||
(add-hook 'mhtml-mode 'no-mixed-pitch)
|
(add-hook 'mhtml-mode 'no-mixed-pitch)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
A basic ace-window setup. Allows switching between windows quickly (although avy can do the same...).
|
||||||
|
|
||||||
#+BEGIN_SRC elisp :noweb-ref emacs_config
|
#+BEGIN_SRC elisp :noweb-ref emacs_config
|
||||||
(use-package ace-window
|
(use-package ace-window
|
||||||
:bind (("M-o" . ace-window)
|
:bind (("M-o" . ace-window)
|
||||||
@@ -772,7 +780,7 @@ Use variable-width fonts in text buffers. ~mixed-pitch-mode~ keeps most code blo
|
|||||||
(setq aw-dispatch-always t))
|
(setq aw-dispatch-always t))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
Set up a few project- / workspace-related key bindings.
|
Set up a few project- / workspace-related key bindings.
|
||||||
|
|
||||||
#+name: workspace_keybinds
|
#+name: workspace_keybinds
|
||||||
#+BEGIN_SRC elisp :noweb no :noweb-ref emacs_config
|
#+BEGIN_SRC elisp :noweb no :noweb-ref emacs_config
|
||||||
@@ -801,6 +809,14 @@ I'm trying this out. This disables visual selections. It's bold, which is why I
|
|||||||
(transient-mark-mode -1)
|
(transient-mark-mode -1)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
I use tabs to manage multiple "workspaces". I don't tie a project to a tab or anything; often fixing
|
||||||
|
a single bug might involve pulling in files from multiple projects. Rather, I open a file per bug /
|
||||||
|
fix / issue, and leave it open until I'm done with that issue.
|
||||||
|
|
||||||
|
~tab-bar-history-mode~ allows quickly rolling back window changes; it can be used to undo a context
|
||||||
|
change when drilling into a help page or something. I've set up repeat mode to make it easier to
|
||||||
|
move backward / forward through history.
|
||||||
|
|
||||||
#+BEGIN_SRC elisp :noweb no :noweb-ref emacs_config
|
#+BEGIN_SRC elisp :noweb no :noweb-ref emacs_config
|
||||||
(use-package tab-bar
|
(use-package tab-bar
|
||||||
:config
|
:config
|
||||||
@@ -819,6 +835,7 @@ This configuration affects general text editing, across all modes. First, some p
|
|||||||
avy
|
avy
|
||||||
devil
|
devil
|
||||||
edit-indirect
|
edit-indirect
|
||||||
|
embark
|
||||||
god-mode
|
god-mode
|
||||||
string-inflection
|
string-inflection
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@@ -867,6 +884,10 @@ its own devil-mode-only repeat maps that don't interfere when using normal modif
|
|||||||
(which-key-enable-god-mode-support))
|
(which-key-enable-god-mode-support))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
Avy allows jumping to any place on the screen with just a few keystrokes. I've stolen most of these
|
||||||
|
ideas from Karthinks' article [[https://karthinks.com/software/avy-can-do-anything/][Avy can do Anything]]. I need to find more uses for this, in line with
|
||||||
|
his article.
|
||||||
|
|
||||||
#+BEGIN_SRC elisp :noweb-ref emacs_config
|
#+BEGIN_SRC elisp :noweb-ref emacs_config
|
||||||
(use-package avy
|
(use-package avy
|
||||||
:bind ("M-j" . avy-goto-char-timer))
|
:bind ("M-j" . avy-goto-char-timer))
|
||||||
@@ -888,10 +909,22 @@ its own devil-mode-only repeat maps that don't interfere when using normal modif
|
|||||||
(bind-keys
|
(bind-keys
|
||||||
("M-J" . avy-goto-char-timer-embark))
|
("M-J" . avy-goto-char-timer-embark))
|
||||||
|
|
||||||
|
(use-package embark
|
||||||
|
:bind
|
||||||
|
(("C-." . embark-act) ;; pick some comfortable binding
|
||||||
|
))
|
||||||
|
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Just "silently" wrap when searching at the bottom of a document.
|
||||||
|
|
||||||
|
#+BEGIN_SRC elisp :noweb-ref emacs_config
|
||||||
(use-package isearch
|
(use-package isearch
|
||||||
:custom
|
:custom
|
||||||
(isearch-wrap-pause 'no-ding))
|
(isearch-wrap-pause 'no-ding))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_SRC elisp :noweb-ref emacs_config
|
||||||
(use-package string-inflection
|
(use-package string-inflection
|
||||||
:commands
|
:commands
|
||||||
string-inflection-java-style-cycle
|
string-inflection-java-style-cycle
|
||||||
@@ -1138,34 +1171,52 @@ available? It seems to work for now anyway...
|
|||||||
'eglot-list-connections-mode-hook))
|
'eglot-list-connections-mode-hook))
|
||||||
(add-hook hook 'tab-line-mode))
|
(add-hook hook 'tab-line-mode))
|
||||||
|
|
||||||
(let ((bottom-window-params '((side . bottom)
|
(cl-flet ((defbottom (&optional (slot 1))
|
||||||
(slot . 1)
|
(lambda (rule)
|
||||||
(window-height . 0.33)
|
`(,rule
|
||||||
(window-parameters (no-delete-other-windows . t))))
|
(display-buffer-reuse-window display-buffer-in-side-window)
|
||||||
(right-window-params '((side . right)
|
(side . bottom)
|
||||||
(window-width . 0.5)
|
(slot . ,slot)
|
||||||
(window-parameters (no-delete-other-windows . t)))))
|
(window-height . 0.33)
|
||||||
(setopt display-buffer-alist
|
(window-parameters (no-delete-other-windows . t)))))
|
||||||
(append
|
(defright (&optional (slot 0))
|
||||||
(mapcar (lambda (buffer) `(,buffer
|
(lambda (rule)
|
||||||
(display-buffer-reuse-window display-buffer-in-side-window)
|
`(,rule
|
||||||
,@bottom-window-params))
|
(display-buffer-reuse-window display-buffer-in-side-window)
|
||||||
(list
|
(side . right)
|
||||||
"\\*Flymake diagnostics *"
|
(slot . ,slot)
|
||||||
"\\*Embark Export *"
|
(window-width . 0.5)
|
||||||
"\\*Embark Collect *"
|
(window-parameters (no-delete-other-windows . t)))))
|
||||||
"\\*xref*"
|
(defall (def &rest rules)
|
||||||
"\\*compilation\\*"
|
(mapcar (lambda (rule) (funcall def rule)) rules)))
|
||||||
"\\*sly-mrepl *"
|
(let* ((bottom-window-params '((side . bottom)
|
||||||
"\\*Messages\\*"
|
(slot . 1)
|
||||||
"\\*EGLOT connections\\*"))
|
(window-height . 0.33)
|
||||||
(mapcar (lambda (buffer) `(,buffer
|
(window-parameters (no-delete-other-windows . t))))
|
||||||
(display-buffer-reuse-window display-buffer-in-side-window)
|
(right-window-params '((side . right)
|
||||||
,@right-window-params))
|
(window-width . 0.5)
|
||||||
(list
|
(window-parameters (no-delete-other-windows . t))))
|
||||||
"magit: *"
|
(right-window-slot-1-params (cons '(slot . 1) right-window-params)))
|
||||||
"magit-revision: *"
|
(setopt display-buffer-alist
|
||||||
"\\*eldoc\\*")))))
|
(append
|
||||||
|
(defall (defbottom)
|
||||||
|
"\\*Flymake diagnostics *"
|
||||||
|
"\\*Embark Export *"
|
||||||
|
"\\*Embark Collect *"
|
||||||
|
"\\*xref*"
|
||||||
|
"\\*compilation\\*"
|
||||||
|
"\\*sly-mrepl *"
|
||||||
|
"\\*Messages\\*"
|
||||||
|
"\\*lispy-message\\*"
|
||||||
|
"\\*EGLOT connections\\*"
|
||||||
|
"\\*trace-output\\*")
|
||||||
|
(defall (defright)
|
||||||
|
"magit: *"
|
||||||
|
"magit-revision: *"
|
||||||
|
"\\*eldoc\\*"
|
||||||
|
"\\*Help\\*")
|
||||||
|
(defall (defright -1)
|
||||||
|
"\\*Embark Actions\\*")))))
|
||||||
|
|
||||||
(setq ediff-split-window-function 'split-window-horizontally)
|
(setq ediff-split-window-function 'split-window-horizontally)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@@ -1200,6 +1251,7 @@ available? It seems to work for now anyway...
|
|||||||
("C-c M-g" . magit-file-dispatch))
|
("C-c M-g" . magit-file-dispatch))
|
||||||
:custom
|
:custom
|
||||||
(magit-save-repository-buffers 'dontask)
|
(magit-save-repository-buffers 'dontask)
|
||||||
|
(magit-commit-show-diff nil)
|
||||||
:config
|
:config
|
||||||
(set-face-attribute 'git-commit-summary nil :inherit nil)
|
(set-face-attribute 'git-commit-summary nil :inherit nil)
|
||||||
(defun magit-fetch-all-on-load ()
|
(defun magit-fetch-all-on-load ()
|
||||||
@@ -1223,7 +1275,6 @@ available? It seems to work for now anyway...
|
|||||||
cape
|
cape
|
||||||
consult
|
consult
|
||||||
corfu
|
corfu
|
||||||
embark
|
|
||||||
embark-consult
|
embark-consult
|
||||||
marginalia
|
marginalia
|
||||||
orderless
|
orderless
|
||||||
@@ -1315,11 +1366,6 @@ available? It seems to work for now anyway...
|
|||||||
:config
|
:config
|
||||||
(marginalia-mode))
|
(marginalia-mode))
|
||||||
|
|
||||||
(use-package embark
|
|
||||||
:bind
|
|
||||||
(("C-." . embark-act) ;; pick some comfortable binding
|
|
||||||
))
|
|
||||||
|
|
||||||
(use-package corfu
|
(use-package corfu
|
||||||
:custom
|
:custom
|
||||||
(corfu-cycle t)
|
(corfu-cycle t)
|
||||||
|
|||||||
Reference in New Issue
Block a user