2 Commits

Author SHA1 Message Date
Joe Frikker 5f96f98158 wip 2026-07-15 15:21:15 -04:00
Joe Frikker a1abf5b4a1 wip 2026-07-10 00:11:54 -04:00
+114 -72
View File
@@ -201,7 +201,13 @@ These programs require a full desktop environment:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
linear linear
slack (slack.overrideAttrs {
version = "4.50.143";
src = pkgs.fetchurl {
url = "https://downloads.slack-edge.com/desktop-releases/mac/arm64/4.50.143/Slack-4.50.143-macOS.dmg";
hash = "sha256-f5oYi8NPKXWpDcowFYMUjptbQs4V9hK2bm1TuaQeJn0=";
};
})
teams teams
]; ];
} }
@@ -1034,12 +1040,30 @@ content to be.
(setopt persp-show-modestring nil) (setopt persp-show-modestring nil)
(persp-mode) (persp-mode)
(defun jf/popper-group-by-owning-perspective ()
"Return the name of the perspective that owns the current buffer.
Unlike `popper-group-by-perspective', which just returns whichever
perspective happens to be active on the frame right now, this looks
up which perspective's buffer list the popup buffer actually belongs
to. This matters because popper re-groups popups on
`window-configuration-change-hook', which perspective.el triggers
,*after* switching the frame's active perspective -- so
`popper-group-by-perspective' ends up filing a popup under the
perspective you just switched *to* rather than the one it came from."
(let ((buf (current-buffer)))
(or (cl-loop for persp being the hash-values of (perspectives-hash (selected-frame))
if (memq buf (persp-buffers persp))
return (persp-name persp))
(persp-current-name))))
(setopt popper-reference-buffers (setopt popper-reference-buffers
'("\\*Flymake diagnostics .*" '("\\*Flymake diagnostics .*"
"\\*Embark Export: .*" "\\*Embark Export: .*"
"\\*Embark Collect .*" "\\*Embark Collect .*"
"\\*xref\\*" "\\*xref\\*"
"\\*compilation\\*" "\\*compilation\\*"
"\\*pnpm:.*"
"\\*sly-mrepl *" "\\*sly-mrepl *"
"\\*Messages\\*" "\\*Messages\\*"
"\\*lispy-message\\*" "\\*lispy-message\\*"
@@ -1061,7 +1085,7 @@ content to be.
"\\*List .*" "\\*List .*"
"\\*eldoc\\*")) "\\*eldoc\\*"))
(setopt popper-display-control nil) (setopt popper-display-control nil)
(setopt popper-group-function 'popper-group-by-perspective) (setopt popper-group-function 'jf/popper-group-by-owning-perspective)
(popper-mode) (popper-mode)
(popper-echo-mode) (popper-echo-mode)
@@ -1075,6 +1099,7 @@ content to be.
"\\*Embark Collect .*" "\\*Embark Collect .*"
"\\*xref\\*" "\\*xref\\*"
"\\*compilation\\*" "\\*compilation\\*"
"\\*pnpm:.*"
"\\*sly-mrepl *" "\\*sly-mrepl *"
"\\*Messages\\*" "\\*Messages\\*"
"\\*lispy-message\\*" "\\*lispy-message\\*"
@@ -1185,7 +1210,7 @@ its own devil-mode-only repeat maps that don't interfere when using normal modif
(bind-keys ("<escape>" . (lambda () (interactive) (god-mode-all 1)))) (bind-keys ("<escape>" . (lambda () (interactive) (god-mode-all 1))))
(defun my-god-mode-update-cursor-type () (defun my-god-mode-update-cursor-type ()
(setq cursor-type (cond (setq cursor-type (cond
(org-present-mode nil) ((and (featurep 'org-present) org-present-mode) nil)
((or (and (featurep 'god-mode) god-local-mode) buffer-read-only) 'box) ((or (and (featurep 'god-mode) god-local-mode) buffer-read-only) 'box)
(t 'bar)))) (t 'bar))))
@@ -1214,11 +1239,15 @@ his article.
(bind-keys (bind-keys
("C-j" . avy-goto-char-timer) ("C-j" . avy-goto-char-timer)
("M-j" . avy-goto-char-timer-embark) ("M-j" . avy-goto-char-timer-embark)
("C-." . embark-act) ("C-." . embark-act))
:map lispy-mode-map
("C-j" . avy-goto-char-timer) (with-eval-after-load 'lispy
:map org-mode-map (bind-keys :map lispy-mode-map
("C-j" . avy-goto-char-timer)) ("C-j" . avy-goto-char-timer)))
(with-eval-after-load 'org
(bind-keys :map org-mode-map
("C-j" . avy-goto-char-timer)))
#+END_SRC #+END_SRC
Just "silently" wrap when searching at the bottom of a document. Just "silently" wrap when searching at the bottom of a document.
@@ -1313,6 +1342,7 @@ Just "silently" wrap when searching at the bottom of a document.
# lispyville # lispyville
lua-mode lua-mode
nix-mode nix-mode
pnpm-mode
prisma-ts-mode prisma-ts-mode
rust-mode rust-mode
sly sly
@@ -1572,6 +1602,9 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
(with-eval-after-load 'typescript-ts-mode (with-eval-after-load 'typescript-ts-mode
(define-key typescript-ts-mode-map (kbd "C-c '") #'my/edit-indirect-tagged-template-at-point) (define-key typescript-ts-mode-map (kbd "C-c '") #'my/edit-indirect-tagged-template-at-point)
(define-key tsx-ts-mode-map (kbd "C-c '") #'my/edit-indirect-tagged-template-at-point)) (define-key tsx-ts-mode-map (kbd "C-c '") #'my/edit-indirect-tagged-template-at-point))
(with-eval-after-load 'eglot
(add-to-list 'eglot-server-programs '((prisma-ts-mode) "prisma-language-server" "--stdio")))
#+END_SRC #+END_SRC
*** Java *** Java
@@ -1857,73 +1890,73 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
(set-face-attribute 'org-level-7 nil :font "Iosevka Aile") (set-face-attribute 'org-level-7 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-8 nil :font "Iosevka Aile") (set-face-attribute 'org-level-8 nil :font "Iosevka Aile")
(require 'org-present)
(require 'face-remap)
(require 'visual-fill-column)
(defvar-local my/org-present-face-remapping-cookies nil) (defvar-local my/org-present-face-remapping-cookies nil)
(defun my/org-present-start () (with-eval-after-load 'org-present
(setq-local my/org-present-face-remapping-cookies nil) (require 'face-remap)
;; Tweak font sizes (require 'visual-fill-column)
(dolist (face '((default :height 2.0)
(header-line :height 4.0 :background "#303446") (defun my/org-present-start ()
(org-document-title :height 1.75) (setq-local my/org-present-face-remapping-cookies nil)
(org-code :height 2.0) ;; Tweak font sizes
(org-verbatim :height 2.0) (dolist (face '((default :height 2.0)
(org-block :height 1.25) (header-line :height 4.0 :background "#303446")
(org-block-begin-line :height 0.7) (org-document-title :height 1.75)
(org-level-1 :height 3.0) (org-code :height 2.0)
(org-level-2 :height 3.0) (org-verbatim :height 2.0)
(org-level-3 :height 3.0) (org-block :height 1.25)
(org-level-4 :height 3.0) (org-block-begin-line :height 0.7)
(org-level-5 :height 3.0) (org-level-1 :height 3.0)
(org-level-6 :height 3.0) (org-level-2 :height 3.0)
(org-level-7 :height 3.0) (org-level-3 :height 3.0)
(org-level-8 :height 3.0))) (org-level-4 :height 3.0)
(push (apply #'face-remap-add-relative face) my/org-present-face-remapping-cookies)) (org-level-5 :height 3.0)
(org-level-6 :height 3.0)
(org-level-7 :height 3.0)
(org-level-8 :height 3.0)))
(push (apply #'face-remap-add-relative face) my/org-present-face-remapping-cookies))
;; Set a blank header line string to create blank space at the top ;; Set a blank header line string to create blank space at the top
(setq header-line-format " ") (setq header-line-format " ")
;; Display inline images automatically ;; Display inline images automatically
(org-display-inline-images) (org-display-inline-images)
(org-present-hide-cursor) (org-present-hide-cursor)
;; Center the presentation and wrap lines ;; Center the presentation and wrap lines
(visual-fill-column-mode 1) (visual-fill-column-mode 1)
(setq visual-fill-column-center-text t) (setq visual-fill-column-center-text t)
;; (visual-line-mode 1) ;; (visual-line-mode 1)
) )
(defun my/org-present-end () (defun my/org-present-end ()
;; Reset font customizations ;; Reset font customizations
(dolist (cookie my/org-present-face-remapping-cookies) (dolist (cookie my/org-present-face-remapping-cookies)
(face-remap-remove-relative cookie)) (face-remap-remove-relative cookie))
;; Clear the header line string so that it isn't displayed ;; Clear the header line string so that it isn't displayed
(setq header-line-format nil) (setq header-line-format nil)
;; Stop displaying inline images ;; Stop displaying inline images
(org-remove-inline-images) (org-remove-inline-images)
(org-present-show-cursor) (org-present-show-cursor)
;; Stop centering the document ;; Stop centering the document
(visual-fill-column-mode 0) (visual-fill-column-mode 0)
;; (visual-line-mode 0) ;; (visual-line-mode 0)
) )
(add-hook 'org-present-mode-hook 'my/org-present-start) (add-hook 'org-present-mode-hook 'my/org-present-start)
(add-hook 'org-present-mode-quit-hook 'my/org-present-end) (add-hook 'org-present-mode-quit-hook 'my/org-present-end))
(require 'org-roam) ;; (require 'org-roam)
(bind-keys ("C-c n l" . org-roam-buffer-toggle) ;; (bind-keys ("C-c n l" . org-roam-buffer-toggle)
("C-c n f" . org-roam-node-find) ;; ("C-c n f" . org-roam-node-find)
("C-c n g" . org-roam-graph) ;; ("C-c n g" . org-roam-graph)
("C-c n i" . org-roam-node-insert) ;; ("C-c n i" . org-roam-node-insert)
("C-c n c" . org-roam-capture)) ;; ("C-c n c" . org-roam-capture))
;; (setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag))) ;; (setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
(org-roam-db-autosync-mode) ;; (org-roam-db-autosync-mode)
(add-hook 'org-mode-hook 'org-modern-mode) (add-hook 'org-mode-hook 'org-modern-mode)
@@ -1969,9 +2002,16 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC #+END_SRC
#+BEGIN_SRC elisp #+BEGIN_SRC elisp
(setopt lui-time-stamp-format "[%Y-%m-%d %H:%M]") (use-package lui
(setopt slack-render-profile-images-p nil) :defer t
(setopt slack-buffer-function #'switch-to-buffer) :custom
(lui-time-stamp-format "[%Y-%m-%d %H:%M]"))
(use-package slack
:commands slack-start
:custom
(slack-render-profile-images-p nil)
(slack-buffer-function #'switch-to-buffer))
#+END_SRC #+END_SRC
** Ledger ** Ledger
@@ -2023,12 +2063,13 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
enable = true; enable = true;
extraPackages = epkgs: with epkgs; [ extraPackages = epkgs: with epkgs; [
(epkgs.trivialBuild { (epkgs.trivialBuild {
name = "claude-code"; pname = "claude-code";
version = "0.4.5";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "stevemolitor"; owner = "stevemolitor";
repo = "claude-code.el"; repo = "claude-code.el";
rev = "4a9914bd4161eb43f489820f9174c62390e5adc8"; rev = "03199df8b3a1e9cd4857f0851f7a912ba524aff3";
sha256 = "sha256-ISlD6q1hceckry1Jd19BX1MfobHJxng5ulX2gq9f644="; sha256 = "sha256-5QJrWIu4EgnHcOqMwlrs2JBBx7aI9OaSJswesr6Apfk=";
}; };
packageRequires = [ epkgs.inheritenv ]; packageRequires = [ epkgs.inheritenv ];
}) })
@@ -2039,8 +2080,9 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC #+END_SRC
#+BEGIN_SRC elisp #+BEGIN_SRC elisp
(require 'claude-code) (use-package claude-code
(keymap-global-set "C-c c" claude-code-command-map) :bind-keymap ("C-c c" . claude-code-command-map)
:custom (claude-code-optimize-window-resize nil))
#+END_SRC #+END_SRC
* Theme * Theme
I like Catppuccin Frappe as my theme. Let's use it in as many places as we can. I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.