diff --git a/init.el b/init.el index af41cad..dc1039c 100644 --- a/init.el +++ b/init.el @@ -15,6 +15,8 @@ (require 'init-bindings) +(require 'init-dashboard) + (require 'init-workspace) (require 'init-dired) diff --git a/lisp/init-better-default.el b/lisp/init-better-default.el index 442efd7..3b4e4a1 100644 --- a/lisp/init-better-default.el +++ b/lisp/init-better-default.el @@ -21,7 +21,8 @@ (use-package display-line-numbers :ensure nil - :hook (elpaca-after-init . global-display-line-numbers-mode) + :hook (text-mode . display-line-numbers-mode) + :hook (prog-mode . display-line-numbers-mode) :config (dolist (mode '(erc-mode-hook circe-mode-hook diff --git a/lisp/init-dashboard.el b/lisp/init-dashboard.el index b20ae5e..364599e 100644 --- a/lisp/init-dashboard.el +++ b/lisp/init-dashboard.el @@ -22,8 +22,8 @@ dashboard-vertically-center-content t dashboard-show-shortcuts nil dashboard-items '((recents . 10) - (bookmarks . 5) - (projects . 5)) + (projects . 5) + (bookmarks . 5)) dashboard-startupify-list '(dashboard-insert-banner dashboard-insert-newline diff --git a/lisp/init-org.el b/lisp/init-org.el index 362ba0b..e44dda2 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -229,7 +229,30 @@ the element after the #+HEADER: tag." (remove-hook 'org-latex-preview-overlay-update-functions #'my/org-latex-preview-center) (remove-hook 'org-latex-preview-overlay-open-functions - #'my/org-latex-preview-uncenter)))) + #'my/org-latex-preview-uncenter))) + (defun my/text-scale-adjust-latex-previews () + "Adjust the size of latex preview fragments when changing the buffer's text scale." + (pcase major-mode + ('latex-mode + (dolist (ov (overlays-in (point-min) (point-max))) + (if (eq (overlay-get ov 'category) + 'preview-overlay) + (my/text-scale--resize-fragment ov)))) + ('org-mode + (dolist (ov (overlays-in (point-min) (point-max))) + (if (eq (overlay-get ov 'org-overlay-type) + 'org-latex-overlay) + (my/text-scale--resize-fragment ov)))))) + + (defun my/text-scale--resize-fragment (ov) + (overlay-put + ov 'display + (cons 'image + (plist-put + (cdr (overlay-get ov 'display)) + :scale (+ 1.0 (* 0.25 text-scale-mode-amount)))))) + + (add-hook 'text-scale-mode-hook #'my/text-scale-adjust-latex-previews)) (use-package org-roam :ensure t diff --git a/lisp/init-tex.el b/lisp/init-tex.el index 8ae9302..61de53d 100644 --- a/lisp/init-tex.el +++ b/lisp/init-tex.el @@ -45,5 +45,4 @@ :defer nil :load-path "~/.emacs.d/lisp/packages/") - (provide 'init-tex) diff --git a/lisp/init-ui.el b/lisp/init-ui.el index 61fa6c4..0a42d75 100644 --- a/lisp/init-ui.el +++ b/lisp/init-ui.el @@ -2,6 +2,7 @@ ;; (setq idle-update-delay 1.0) +;; (setq-default line-spacing 0.16) (setq-default cursor-in-non-selected-windows nil) (setq highlight-nonselected-windows nil) @@ -20,7 +21,7 @@ :init (setq doom-themes-enable-bold t) (setq doom-themes-enable-italic t) - (load-theme 'modus-operandi t)) + (load-theme 'modus-operandi-tinted t)) (use-package rainbow-delimiters :hook ((prog-mode . rainbow-delimiters-mode) @@ -59,15 +60,20 @@ (pcase system-type ('darwin ; macOS - (set-face-attribute 'default nil :font "Sarasa Term SC-20") + (set-face-attribute 'default nil :font "Sarasa Term SC-20") ; 20 * 1.5 + ;; (set-face-attribute 'variable-pitch nil :font "Bookerly-18" :weight 'light) + (add-to-list 'default-frame-alist '(height . 53)) (add-to-list 'default-frame-alist '(width . 120))) ('gnu/linux ; Linux (including Debian) - (set-face-attribute 'default nil :font "Sarasa Term SC-14") ; 20 * 1.5 + (set-face-attribute 'variable-pitch nil :font "Sarasa Term SC-14") ; 20 * 1.5 (add-to-list 'default-frame-alist '(height . 40)) (add-to-list 'default-frame-alist '(width . 90)))) +;; (use-package mixed-pitch + ;; :hook text-mode + ;; :hook org-mode) (use-package diff-hl :init (global-diff-hl-mode)) diff --git a/lisp/init-workspace.el b/lisp/init-workspace.el index 986a28c..5db7c7b 100644 --- a/lisp/init-workspace.el +++ b/lisp/init-workspace.el @@ -1,65 +1,22 @@ ;; -*- lexical-binding: t; -*- -(use-package persp-mode - :hook (elpaca-after-init . persp-mode) + +(use-package project) + +(use-package tabspaces + :functions tabspaces-mode + :hook (elpaca-after-init . tabspaces-mode) :custom - (persp-mode-prefix-key "o") - :config - (setq wg-morph-on nil) - (setq persp-autokill-buffer-on-remove 'kill-weak)) - -(use-package persp-projectile - :after (persp-mode projectile)) - -(use-package projectile - :hook (elpaca-after-init . projectile-mode) - :bind ([remap projectile-switch-project] . projectile-persp-switch-project) - :custom - (projectile-enable-caching t) - :config - ;; Recommended keymap prefix on Windows/Linux - (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)) - -;; (use-package tabspaces -;; :functions tabspaces-mode -;; :hook (elpaca-after-init . tabspaces-mode) -;; :custom -;; (tab-bar-show nil) - -;; (tabspaces-use-filtered-buffers-as-default t) -;; (tabspaces-default-tab "Default") -;; (tabspaces-remove-to-default t) -;; (tabspaces-include-buffers '("*scratch*" "*Messages*")) -;; (tabspaces-exclude-buffers '("*eat*" "*vterm*" "*shell*" "*eshell*")) -;; ;; sessions -;; (tabspaces-session t) -;; (tabspaces-session-auto-restore t) -;; (tabspaces-keymap-prefix "C-c o") -;; :config -;; (with-no-warnings -;; ;; Filter Buffers for Consult-Buffer -;; (with-eval-after-load 'consult -;; ;; hide full buffer list (still available with "b" prefix) -;; (consult-customize consult--source-buffer :hidden t :default nil) -;; ;; set consult-workspace buffer list -;; (defvar consult--source-workspace -;; (list :name "Workspace Buffer" -;; :narrow ?w -;; :history 'buffer-name-history -;; :category 'buffer -;; :state #'consult--buffer-state -;; :default t -;; :items (lambda () (consult--buffer-query -;; :predicate #'tabspaces--local-buffer-p -;; :sort 'visibility -;; :as #'buffer-name))) -;; "Set workspace buffer list for consult-buffer.") -;; (add-to-list 'consult-buffer-sources 'consult--source-workspace)) - -;; (defun my-tabspaces-burry-window (&rest _) -;; "Burry *Messages* buffer." -;; (ignore-errors -;; (quit-windows-on messages-buffer-name))) -;; (advice-add #'tabspaces-restore-session :after #'my-tabspaces-burry-window))) + (tab-bar-show nil) + (tabspaces-use-filtered-buffers-as-default t) + (tabspaces-default-tab "Default") + (tabspaces-remove-to-default t) + (tabspaces-include-buffers '("*scratch*" "*Messages*")) + (tabspaces-exclude-buffers '("*eat*" "*vterm*" "*shell*" "*eshell*")) + ;; sessions + (tabspaces-session t) + (tabspaces-session-auto-restore t) + (tabspaces-keymap-prefix "C-c o")) + (provide 'init-workspace)