diff --git a/home.org b/home.org index 2d398c5..b29b9c0 100644 --- a/home.org +++ b/home.org @@ -910,7 +910,7 @@ less so? I'm trying this out. This disables visual selections. It's bold, which is why I like it :) #+BEGIN_SRC elisp - (transient-mark-mode -1) + ;; (transient-mark-mode -1) #+END_SRC I use tabs to manage multiple "workspaces". I don't tie a project to a tab or anything; often fixing @@ -1006,9 +1006,11 @@ This configuration affects general text editing, across all modes. First, some p enable = true; extraPackages = epkgs: with epkgs; [ avy + devil edit-indirect embark god-mode + meow string-inflection ]; extraConfig = builtins.readFile ./emacs-editing.el; @@ -1046,21 +1048,111 @@ its own devil-mode-only repeat maps that don't interfere when using normal modif #+END_SRC #+BEGIN_SRC elisp - (require 'god-mode) - (require 'which-key) + (defun meow-setup () + (setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty) + (meow-motion-define-key + '("j" . meow-next) + '("k" . meow-prev) + '("" . ignore)) + (meow-leader-define-key + ;; Use SPC (0-9) for digit arguments. + '("1" . meow-digit-argument) + '("2" . meow-digit-argument) + '("3" . meow-digit-argument) + '("4" . meow-digit-argument) + '("5" . meow-digit-argument) + '("6" . meow-digit-argument) + '("7" . meow-digit-argument) + '("8" . meow-digit-argument) + '("9" . meow-digit-argument) + '("0" . meow-digit-argument) + '("/" . meow-keypad-describe-key) + '("?" . meow-cheatsheet)) + (meow-normal-define-key + '("0" . meow-expand-0) + '("9" . meow-expand-9) + '("8" . meow-expand-8) + '("7" . meow-expand-7) + '("6" . meow-expand-6) + '("5" . meow-expand-5) + '("4" . meow-expand-4) + '("3" . meow-expand-3) + '("2" . meow-expand-2) + '("1" . meow-expand-1) + '("-" . negative-argument) + '(";" . meow-reverse) + '("," . meow-inner-of-thing) + '("." . meow-bounds-of-thing) + '("[" . meow-beginning-of-thing) + '("]" . meow-end-of-thing) + '("a" . meow-append) + '("A" . meow-open-below) + '("b" . meow-back-word) + '("B" . meow-back-symbol) + '("c" . meow-change) + '("d" . meow-delete) + '("D" . meow-backward-delete) + '("e" . meow-next-word) + '("E" . meow-next-symbol) + '("f" . meow-find) + '("g" . meow-cancel-selection) + '("G" . meow-grab) + '("h" . meow-left) + '("H" . meow-left-expand) + '("i" . meow-insert) + '("I" . meow-open-above) + '("j" . meow-next) + '("J" . meow-next-expand) + '("k" . meow-prev) + '("K" . meow-prev-expand) + '("l" . meow-right) + '("L" . meow-right-expand) + '("m" . meow-join) + '("n" . meow-search) + '("o" . meow-block) + '("O" . meow-to-block) + '("p" . meow-yank) + '("q" . meow-quit) + '("Q" . meow-goto-line) + '("r" . meow-replace) + '("R" . meow-swap-grab) + '("s" . meow-kill) + '("t" . meow-till) + '("u" . meow-undo) + '("U" . meow-undo-in-selection) + '("v" . meow-visit) + '("w" . meow-mark-word) + '("W" . meow-mark-symbol) + '("x" . meow-line) + '("X" . meow-goto-line) + '("y" . meow-save) + '("Y" . meow-sync-grab) + '("z" . meow-pop-selection) + '("'" . repeat) + '("" . ignore))) - (bind-keys :map god-local-mode-map - ("i" . (lambda () (interactive) (god-mode-all -1))) - ("z" . repeat)) - (bind-keys ("" . (lambda () (interactive) (god-mode-all 1)))) - (defun my-god-mode-update-cursor-type () - (setq cursor-type (cond - (org-present-mode nil) - ((or god-local-mode buffer-read-only) 'box) - (t 'bar)))) + (require 'meow) + (meow-setup) + (meow-global-mode) +#+END_SRC - (add-hook 'post-command-hook 'my-god-mode-update-cursor-type) - (which-key-enable-god-mode-support) + #+BEGIN_SRC elisp + ;; (require 'god-mode) + (require 'which-key) + + ;; (bind-keys :map god-local-mode-map + ;; ("i" . (lambda () (interactive) (god-mode-all -1))) + ;; ("z" . repeat)) + ;; (bind-keys ("" . (lambda () (interactive) (god-mode-all 1)))) + (defun my-god-mode-update-cursor-type () + (setq cursor-type (cond + (org-present-mode nil) + ((or (and nil god-local-mode) buffer-read-only + (and meow-mode (not (eq 'insert meow-current-state)))) 'box) + (t 'bar)))) + + (add-hook 'post-command-hook 'my-god-mode-update-cursor-type) + ;; (which-key-enable-god-mode-support) #+END_SRC Avy allows jumping to any place on the screen with just a few keystrokes. I've stolen most of these @@ -1083,6 +1175,7 @@ his article. (bind-keys ("M-j" . avy-goto-char-timer) + ("C-c j" . avy-goto-char-timer) ("M-J" . avy-goto-char-timer-embark) ("C-." . embark-act)) #+END_SRC @@ -1147,6 +1240,8 @@ Just "silently" wrap when searching at the bottom of a document. g.tree-sitter-dot g.tree-sitter-elisp g.tree-sitter-graphql + g.tree-sitter-gitcommit + g.tree-sitter-gitignore g.tree-sitter-haskell g.tree-sitter-html g.tree-sitter-java @@ -1789,7 +1884,8 @@ available? It seems to work for now anyway... #+END_SRC #+BEGIN_SRC elisp - (global-set-key (kbd "C-c c") claude-code-command-map) + (autoload 'claude-code-command-map "claude-code" :type 'keymap) + (keymap-global-set "C-c c" 'claude-code-command-map) #+END_SRC * Theme I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.