diff --git a/home.org b/home.org index 2768024..e8ad7ba 100644 --- a/home.org +++ b/home.org @@ -188,7 +188,7 @@ These programs require a full desktop environment: nerd-fonts.symbols-only (iosevka-bin.override { variant = "Aile"; }) (iosevka-bin.override { variant = "Etoile"; }) - (iosevka-bin.override { variant = "SGr-IosevkaTerm"; }) + (iosevka-bin.override { variant = "SGr-IosevkaTermSS14"; }) keymapp proton-pass wireshark @@ -835,6 +835,9 @@ Turn off some default settings that I don't find useful. (setopt mouse-wheel-tilt-scroll t) (setq-default truncate-lines t) + + (setopt tab-bar-show nil) + (tab-bar-mode) #+END_SRC Make sure which-key mode is always on. The on-the-fly keymap help it gives is indespensable. @@ -960,11 +963,12 @@ Set up a few project- / workspace-related key bindings. #+BEGIN_SRC elisp (bind-keys ("s-f" . project-find-file) ("s-F" . project-switch-project) - ("s-s" . persp-switch)) + ;; ("s-s" . persp-switch) + ) - ;; (with-eval-after-load 'tab-bar - ;; (bind-keys :map tab-bar-mode-map - ;; ("s-s" . tab-bar-switch-to-tab))) + (with-eval-after-load 'tab-bar + (bind-keys :map tab-bar-mode-map + ("s-s" . tab-bar-switch-to-tab))) #+END_SRC Don't run a server. I'm not using this, I can always turn it back on if I need to. @@ -1035,27 +1039,40 @@ content to be. when height do (progn (window-resize child (- height (window-height child))) (window-preserve-size child nil t)))))))) - (require 'perspective) - (setopt persp-mode-prefix-key (kbd "C-x t")) - (setopt persp-show-modestring nil) - (persp-mode) + (defun jf/enforce-right-side-width (win) + "Resize side window WIN so its frame keeps 120 columns for the rest of the frame." + (let ((width (max 1 (- (frame-width (window-frame win)) 120)))) + (window-resize win (- width (window-width win)) t))) - (defun jf/popper-group-by-owning-perspective () - "Return the name of the perspective that owns the current buffer. + (defun jf/enforce-right-side-widths (frame) + "Re-apply `jf/enforce-right-side-width' to all of FRAME's right-side windows." + (dolist (win (window-list frame 'nomini)) + (when (eq (window-parameter win 'window-side) 'right) + (jf/enforce-right-side-width win)))) - 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)))) + (add-hook 'window-size-change-functions #'jf/enforce-right-side-widths) + + ;; (require 'perspective) + ;; (setopt persp-mode-prefix-key (kbd "C-x t")) + ;; (setopt persp-show-modestring nil) + ;; (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 '("\\*Flymake diagnostics .*" @@ -1085,7 +1102,7 @@ content to be. "\\*List .*" "\\*eldoc\\*")) (setopt popper-display-control nil) - (setopt popper-group-function 'jf/popper-group-by-owning-perspective) + ;; (setopt popper-group-function 'jf/popper-group-by-owning-perspective) (popper-mode) (popper-echo-mode) @@ -1128,9 +1145,9 @@ content to be. (display-buffer-in-side-window) (side . right) (slot . 0) - (window-width . 93) + (window-width . jf/enforce-right-side-width) (window-height . jf/enforce-right-side-heights) - (preserve-size . (t . nil)) + (preserve-size . (nil . nil)) (window-parameters (no-delete-other-windows . t) (no-other-window . t))) ((or "\\*Embark Actions\\*" @@ -1138,9 +1155,9 @@ content to be. (display-buffer-in-side-window) (side . right) (slot . -1) - (window-width . 93) + (window-width . jf/enforce-right-side-width) (window-height . jf/enforce-right-side-heights) - (preserve-size . (t . t)) + (preserve-size . (nil . t)) (window-parameters (no-delete-other-windows . t) (no-other-window . t))))) @@ -1793,7 +1810,21 @@ for completion. That makes it really annoying to use; don't use yasnippet with e (eval-when-compile (require 'consult)) - (require 'perspective) + ;; (require 'perspective) + ;; (with-eval-after-load 'consult + ;; (consult-customize + ;; consult-theme :preview-key '(:debounce 0.2 any) + ;; consult-ripgrep consult-git-grep consult-grep consult-man + ;; consult-bookmark consult-recent-file consult-xref + ;; consult-source-bookmark consult-source-file-register + ;; consult-source-recent-file + ;; consult-source-buffer + ;; ;; :preview-key "M-." + ;; consult-source-project-recent-file + ;; :preview-key '(:debounce 0.4 any)) + ;; (consult-customize consult-source-buffer :hidden t :default nil) + ;; (add-to-list 'consult-buffer-sources persp-consult-source)) + (with-eval-after-load 'consult (consult-customize consult-theme :preview-key '(:debounce 0.2 any) @@ -1804,9 +1835,7 @@ for completion. That makes it really annoying to use; don't use yasnippet with e consult-source-buffer ;; :preview-key "M-." consult-source-project-recent-file - :preview-key '(:debounce 0.4 any)) - (consult-customize consult-source-buffer :hidden t :default nil) - (add-to-list 'consult-buffer-sources persp-consult-source)) + :preview-key '(:debounce 0.4 any))) (setopt consult-narrow-key "<") ;; "C-+" @@ -1958,9 +1987,10 @@ for completion. That makes it really annoying to use; don't use yasnippet with e ;; (setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag))) ;; (org-roam-db-autosync-mode) - (add-hook 'org-mode-hook 'org-modern-mode) + (use-package org-modern + :hook org-mode-hook) - (define-key org-mode-map (kbd "C-c C-r") verb-command-map) + ;; (define-key org-mode-map (kbd "C-c C-r") verb-command-map) #+END_SRC ** Terminal @@ -1981,7 +2011,9 @@ for completion. That makes it really annoying to use; don't use yasnippet with e #+END_SRC #+BEGIN_SRC elisp - (eat-eshell-mode) + (use-package eat + :commands (eat) + :hook (eshell-load-hook . eat-eshell-mode)) #+END_SRC ** Slack @@ -2045,10 +2077,13 @@ for completion. That makes it really annoying to use; don't use yasnippet with e #+END_SRC #+BEGIN_SRC elisp - (setopt age-default-identity "~/source/dotfiles/keys/yubi1age.txt") - (setopt age-default-recipient "~/source/dotfiles/keys/myself.txt") - (setenv "PINENTRY_PROGRAM" "pinentry-mac") - (age-file-enable) + (use-package age + :custom + (setopt age-default-identity "~/source/dotfiles/keys/yubi1age.txt") + (age-default-recipient "~/source/dotfiles/keys/myself.txt") + :config + (setenv "PINENTRY_PROGRAM" "pinentry-mac") + (age-file-enable)) #+END_SRC ** Claude Code @@ -2197,7 +2232,7 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can. ;; (set-face-attribute 'default nil :font "JetBrainsMono Nerd Font" :height 130) ;; (set-face-attribute 'fixed-pitch nil :font "JetBrainsMono Nerd Font" :height 130) - (set-face-attribute 'default nil :font "Iosevka Term" :height 130 :width 'expanded) - (set-face-attribute 'fixed-pitch nil :font "Iosevka Term" :height 130 :width 'expanded) + (set-face-attribute 'default nil :font "Iosevka Term SS14" :height 130 :width 'expanded) + (set-face-attribute 'fixed-pitch nil :font "Iosevka Term SS14" :height 130 :width 'expanded) (set-face-attribute 'variable-pitch nil :font "Iosevka Etoile" :height 130) #+END_SRC