Fixes for macOS
This commit is contained in:
57
init.el
57
init.el
@@ -45,6 +45,9 @@
|
|||||||
elfeed elfeed-org
|
elfeed elfeed-org
|
||||||
|
|
||||||
;; Email (mu4e installed separately)
|
;; Email (mu4e installed separately)
|
||||||
|
|
||||||
|
;; Finance tracking
|
||||||
|
beancount
|
||||||
))
|
))
|
||||||
|
|
||||||
;; Auto-install missing packages
|
;; Auto-install missing packages
|
||||||
@@ -102,6 +105,7 @@
|
|||||||
treemacs-all-the-icons treemacs-magit
|
treemacs-all-the-icons treemacs-magit
|
||||||
treemacs-projectile use-package wgrep which-key
|
treemacs-projectile use-package wgrep which-key
|
||||||
yasnippet))
|
yasnippet))
|
||||||
|
'(ring-bell-function 'ignore)
|
||||||
'(safe-local-variable-values
|
'(safe-local-variable-values
|
||||||
'((company-backends
|
'((company-backends
|
||||||
(company-qml company-capf company-files company-yasnippet))
|
(company-qml company-capf company-files company-yasnippet))
|
||||||
@@ -125,7 +129,7 @@
|
|||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
;; Your init file should contain only one such instance.
|
;; Your init file should contain only one such instance.
|
||||||
;; If there is more than one, they won't work right.
|
;; If there is more than one, they won't work right.
|
||||||
'(default ((t (:family "0xProto Nerd Font" :foundry "0x " :slant normal :weight regular :height 120 :width normal))))
|
'(default ((t (:family "0xProto Nerd Font Mono" :foundry "nil" :slant normal :weight regular :height 140 :width normal))))
|
||||||
'(diff-hl-change ((t (:background "blue3" :foreground "blue3"))))
|
'(diff-hl-change ((t (:background "blue3" :foreground "blue3"))))
|
||||||
'(diff-hl-delete ((t (:background "red3" :foreground "red3"))))
|
'(diff-hl-delete ((t (:background "red3" :foreground "red3"))))
|
||||||
'(diff-hl-insert ((t (:background "green3" :foreground "green3")))))
|
'(diff-hl-insert ((t (:background "green3" :foreground "green3")))))
|
||||||
@@ -467,7 +471,8 @@
|
|||||||
(setq dired-dwim-target t) ; Guess target directory
|
(setq dired-dwim-target t) ; Guess target directory
|
||||||
(setq dired-recursive-copies 'always)
|
(setq dired-recursive-copies 'always)
|
||||||
(setq dired-recursive-deletes 'always)
|
(setq dired-recursive-deletes 'always)
|
||||||
(setq dired-listing-switches "-alh --group-directories-first")
|
;; Use macOS-compatible ls options (no --group-directories-first)
|
||||||
|
(setq dired-listing-switches "-alh")
|
||||||
|
|
||||||
;; Enable multiple file marking with mouse
|
;; Enable multiple file marking with mouse
|
||||||
(define-key dired-mode-map (kbd "<mouse-2>") 'dired-find-file)
|
(define-key dired-mode-map (kbd "<mouse-2>") 'dired-find-file)
|
||||||
@@ -627,8 +632,10 @@
|
|||||||
(global-hl-line-mode 1)
|
(global-hl-line-mode 1)
|
||||||
|
|
||||||
;; Use system ls for better performance and features
|
;; Use system ls for better performance and features
|
||||||
(setq ls-lisp-use-insert-directory-program t) ; Use system's ls command
|
;; Use ls-lisp (Emacs's built-in ls emulation) for better cross-platform compatibility
|
||||||
(setq insert-directory-program "ls") ; Explicitly set to use ls
|
;; This avoids issues with macOS ls not supporting GNU ls options
|
||||||
|
(setq ls-lisp-use-insert-directory-program nil) ; Use Emacs's ls-lisp instead of system ls
|
||||||
|
(setq ls-lisp-dirs-first t) ; Group directories first (already set in custom-variables)
|
||||||
|
|
||||||
;; Auto-save and backup settings
|
;; Auto-save and backup settings
|
||||||
(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))
|
(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))
|
||||||
@@ -707,6 +714,11 @@
|
|||||||
(when (file-exists-p dev-config)
|
(when (file-exists-p dev-config)
|
||||||
(load-file dev-config)))
|
(load-file dev-config)))
|
||||||
|
|
||||||
|
;; Reload SHR config if it exists
|
||||||
|
(let ((shr-config (expand-file-name "shr-config.el" user-emacs-directory)))
|
||||||
|
(when (file-exists-p shr-config)
|
||||||
|
(load-file shr-config)))
|
||||||
|
|
||||||
;; Reload elfeed config if it exists
|
;; Reload elfeed config if it exists
|
||||||
(let ((elfeed-config (expand-file-name "elfeed-config.el" user-emacs-directory)))
|
(let ((elfeed-config (expand-file-name "elfeed-config.el" user-emacs-directory)))
|
||||||
(when (file-exists-p elfeed-config)
|
(when (file-exists-p elfeed-config)
|
||||||
@@ -727,6 +739,22 @@
|
|||||||
(global-set-key (kbd "C-c C-r") 'reload-emacs-config)
|
(global-set-key (kbd "C-c C-r") 'reload-emacs-config)
|
||||||
(global-set-key (kbd "C-x C-b") 'helm-buffers-list)
|
(global-set-key (kbd "C-x C-b") 'helm-buffers-list)
|
||||||
|
|
||||||
|
;;; Fix for keybinding conflicts with CUA mode
|
||||||
|
(let ((keybinding-fix (expand-file-name "keybinding-fix.el" user-emacs-directory)))
|
||||||
|
(when (file-exists-p keybinding-fix)
|
||||||
|
(load-file keybinding-fix)
|
||||||
|
;; Automatically apply fixes for special modes
|
||||||
|
(fix-elfeed-keybindings)
|
||||||
|
(fix-portfolio-tracker-keybindings)
|
||||||
|
(disable-cua-in-special-modes)
|
||||||
|
(message "Keybinding fixes loaded and applied.")))
|
||||||
|
|
||||||
|
;;; SHR Configuration (for HTML rendering in mu4e, elfeed, eww)
|
||||||
|
(let ((shr-config (expand-file-name "shr-config.el" user-emacs-directory)))
|
||||||
|
(when (file-exists-p shr-config)
|
||||||
|
(load-file shr-config)
|
||||||
|
(message "SHR configuration loaded.")))
|
||||||
|
|
||||||
;;; RSS Reader Configuration (Elfeed)
|
;;; RSS Reader Configuration (Elfeed)
|
||||||
(let ((elfeed-config (expand-file-name "elfeed-config.el" user-emacs-directory)))
|
(let ((elfeed-config (expand-file-name "elfeed-config.el" user-emacs-directory)))
|
||||||
(when (file-exists-p elfeed-config)
|
(when (file-exists-p elfeed-config)
|
||||||
@@ -743,6 +771,27 @@
|
|||||||
(error
|
(error
|
||||||
(message "mu4e configuration available but mu4e not installed. Install mu4e package to enable email.")))))
|
(message "mu4e configuration available but mu4e not installed. Install mu4e package to enable email.")))))
|
||||||
|
|
||||||
|
;;; Beancount Configuration
|
||||||
|
(let ((beancount-config (expand-file-name "beancount-config.el" user-emacs-directory)))
|
||||||
|
(when (file-exists-p beancount-config)
|
||||||
|
(load-file beancount-config)
|
||||||
|
(message "Beancount portfolio tracking configuration loaded.")))
|
||||||
|
|
||||||
|
;;; Portfolio Tracker Configuration
|
||||||
|
(with-eval-after-load 'tabulated-list
|
||||||
|
(let ((portfolio-tracker (expand-file-name "portfolio-tracker-v2.el" user-emacs-directory)))
|
||||||
|
(when (file-exists-p portfolio-tracker)
|
||||||
|
(load-file portfolio-tracker)
|
||||||
|
(message "Portfolio tracker with live prices loaded."))))
|
||||||
|
|
||||||
|
;; Optional: Set default portfolio file to load on startup
|
||||||
|
(defvar portfolio-tracker-default-file
|
||||||
|
(expand-file-name "sample-portfolio-v2.el" user-emacs-directory)
|
||||||
|
"Default portfolio file to load.")
|
||||||
|
|
||||||
|
;; Keybinding for quick access to portfolio tracker
|
||||||
|
(global-set-key (kbd "C-c $") 'portfolio-tracker)
|
||||||
|
|
||||||
;;; Theme Management
|
;;; Theme Management
|
||||||
(defun load-jens-dark-theme ()
|
(defun load-jens-dark-theme ()
|
||||||
"Load the custom jens-dark theme."
|
"Load the custom jens-dark theme."
|
||||||
|
|||||||
Reference in New Issue
Block a user