This commit is contained in:
Joe Frikker
2026-07-15 15:21:15 -04:00
parent a1abf5b4a1
commit 5f96f98158
+104 -66
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))))
@@ -1317,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
@@ -1576,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
@@ -1861,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")
(org-document-title :height 1.75)
(org-code :height 2.0)
(org-verbatim :height 2.0)
(org-block :height 1.25)
(org-block-begin-line :height 0.7)
(org-level-1 :height 3.0)
(org-level-2 :height 3.0)
(org-level-3 :height 3.0)
(org-level-4 :height 3.0)
(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 (defun my/org-present-start ()
(setq header-line-format " ") (setq-local my/org-present-face-remapping-cookies nil)
;; Tweak font sizes
(dolist (face '((default :height 2.0)
(header-line :height 4.0 :background "#303446")
(org-document-title :height 1.75)
(org-code :height 2.0)
(org-verbatim :height 2.0)
(org-block :height 1.25)
(org-block-begin-line :height 0.7)
(org-level-1 :height 3.0)
(org-level-2 :height 3.0)
(org-level-3 :height 3.0)
(org-level-4 :height 3.0)
(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))
;; Display inline images automatically ;; Set a blank header line string to create blank space at the top
(org-display-inline-images) (setq header-line-format " ")
(org-present-hide-cursor)
;; Center the presentation and wrap lines ;; Display inline images automatically
(visual-fill-column-mode 1) (org-display-inline-images)
(setq visual-fill-column-center-text t) (org-present-hide-cursor)
;; (visual-line-mode 1)
)
(defun my/org-present-end () ;; Center the presentation and wrap lines
;; Reset font customizations (visual-fill-column-mode 1)
(dolist (cookie my/org-present-face-remapping-cookies) (setq visual-fill-column-center-text t)
(face-remap-remove-relative cookie)) ;; (visual-line-mode 1)
)
;; Clear the header line string so that it isn't displayed (defun my/org-present-end ()
(setq header-line-format nil) ;; Reset font customizations
(dolist (cookie my/org-present-face-remapping-cookies)
(face-remap-remove-relative cookie))
;; Stop displaying inline images ;; Clear the header line string so that it isn't displayed
(org-remove-inline-images) (setq header-line-format nil)
(org-present-show-cursor)
;; Stop centering the document ;; Stop displaying inline images
(visual-fill-column-mode 0) (org-remove-inline-images)
;; (visual-line-mode 0) (org-present-show-cursor)
)
(add-hook 'org-present-mode-hook 'my/org-present-start) ;; Stop centering the document
(add-hook 'org-present-mode-quit-hook 'my/org-present-end) (visual-fill-column-mode 0)
;; (visual-line-mode 0)
)
(require 'org-roam) (add-hook 'org-present-mode-hook 'my/org-present-start)
(bind-keys ("C-c n l" . org-roam-buffer-toggle) (add-hook 'org-present-mode-quit-hook 'my/org-present-end))
("C-c n f" . org-roam-node-find)
("C-c n g" . org-roam-graph) ;; (require 'org-roam)
("C-c n i" . org-roam-node-insert) ;; (bind-keys ("C-c n l" . org-roam-buffer-toggle)
("C-c n c" . org-roam-capture)) ;; ("C-c n f" . org-roam-node-find)
;; ("C-c n g" . org-roam-graph)
;; ("C-c n i" . org-roam-node-insert)
;; ("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)
@@ -1973,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
@@ -2027,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 ];
}) })
@@ -2043,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.