diff --git a/.gitignore b/.gitignore index aaff588..846a65b 100644 --- a/.gitignore +++ b/.gitignore @@ -61,4 +61,5 @@ emacs.desktop /url/ /undo-fu-session/ /..emacs.d-tabspaces-session.el -/easysession \ No newline at end of file +/easysession +/tramp-rpc \ No newline at end of file diff --git a/early-init.el b/early-init.el index 5361061..a82c325 100644 --- a/early-init.el +++ b/early-init.el @@ -11,8 +11,8 @@ (setq package-enable-at-startup nil) -;; (setq native-comp-deferred-compilation t) -(setq native-comp-async-report-warnings-errors nil) +(setq native-comp-jit-compilation nil) +(setq native-comp-async-report-pwarnings-errors nil) (add-to-list 'load-path (expand-file-name "lisp/" user-emacs-directory)) (setq use-package-enable-imenu-support t) diff --git a/lisp/init-coding.el b/lisp/init-coding.el index 806fcf4..8c91300 100644 --- a/lisp/init-coding.el +++ b/lisp/init-coding.el @@ -8,29 +8,62 @@ (setq magit-show-long-lines-warning nil) ) -;; (use-package eat -;; :ensure `(eat :repo "https://codeberg.org/akib/emacs-eat" -;; :files ("*.el" ("term" "term/*.el") "*.texi" -;; "*.ti" ("terminfo/e" "terminfo/e/*") -;; ("terminfo/65" "terminfo/65/*") -;; ("integration" "integration/*") -;; (:exclude ".dir-locals.el" "*-tests.el"))) -;; :config -;; ) - -(use-package vterm) +(setq system-uses-terminfo nil) +(setq compilation-environment '("TERM=xterm-256color")) +(setq eshell-banner-message "") -(use-package vterm-toggle - :bind ("C-`" . vterm-toggle) +(use-package eat + :bind ("C-`" . eat-toggle) + :hook ((eshell-load . eat-eshell-mode) + (eshell-load . eat-eshell-visual-command-mode)) + :ensure `(eat :repo "https://codeberg.org/akib/emacs-eat" + :files ("*.el" ("term" "term/*.el") "*.texi" + "*.ti" ("terminfo/e" "terminfo/e/*") + ("terminfo/65" "terminfo/65/*") + ("integration" "integration/*") + (:exclude ".dir-locals.el" "*-tests.el"))) + :custom + (eat-term-name "xterm-256color") + (eat-kill-buffer-on-exit t) + (eat-shell ) :config - (define-key vterm-mode-map (kbd "C-`") #'vterm-toggle)) + (defun eat-toggle () (interactive) + (if (string= (buffer-name) "*eshell*") + (delete-window) + (eshell))) + + (setq tramp-remote-process-environment '("TERM=xterm-256color" "TERMINFO=''" "ENV=''" "TMOUT=0" "LC_CTYPE=''" "CDPATH=" "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH=" "PAGER=cat" "autocorrect=" "correct=")) + (when (eq system-type 'darwin) + (define-key eat-semi-char-mode-map (kbd "C-h") #'eat-self-input) + (define-key eat-semi-char-mode-map (kbd "") (kbd "C-h")))) + +(use-package eshell-prompt-extras + :after esh-opt + :defines eshell-highlight-prompt + :autoload (epe-theme-lambda epe-theme-dakrone epe-theme-pipeline) + :init + (setq eshell-highlight-prompt nil + eshell-prompt-function #'epe-theme-lambda)) + +(use-package eshell-z + :hook (eshell-mode . (lambda () (require 'eshell-z)))) + +(use-package esh-help + :commands setup-esh-help-eldoc + :init (setup-esh-help-eldoc)) + +;; (use-package vterm) + +;; (use-package vterm-toggle +;; :bind ("C-`" . vterm-toggle) +;; :config +;; (define-key vterm-mode-map (kbd "C-`") #'vterm-toggle)) (use-package editorconfig :diminish :hook elpaca-after-init) - (use-package yaml-mode) ;; Fish shell mode and auto-formatting (use-package fish-mode @@ -46,8 +79,6 @@ (use-package docker-compose-mode) -(use-package leetcode) - (use-package treesit-auto :hook (elpaca-after-init . global-treesit-auto-mode) :custom diff --git a/lisp/init-edit.el b/lisp/init-edit.el index 61590d5..41160fd 100644 --- a/lisp/init-edit.el +++ b/lisp/init-edit.el @@ -1,5 +1,9 @@ ;; -*- lexical-binding: t -*- +(use-package delsel + :ensure nil + :hook (elpaca-after-init . delete-selection-mode)) + (use-package smartparens :diminish :hook (elpaca-after-init . smartparens-global-mode) @@ -56,6 +60,11 @@ :diminish :hook (elpaca-after-init . global-auto-revert-mode)) +(use-package goto-addr + :ensure nil + :hook ((text-mode . goto-address-mode) + (prog-mode . goto-address-prog-mode))) + (use-package multiple-cursors :hook elpaca-after-init :bind (("C-S-c C-S-c" . mc/edit-lines) @@ -78,7 +87,35 @@ (use-package avy :bind - (("C-'" . avy-goto-char-timer))) + (("C-'" . avy-goto-char-timer)) + :config + (setq avy-all-windows nil + avy-all-windows-alt t + avy-background t + avy-style 'pre)) + +;; Kill text between cursor and char +(use-package avy-zap + :bind (("M-z" . avy-zap-to-char-dwim) + ("M-Z" . avy-zap-up-to-char-dwim))) + +(use-package ace-pinyin + :diminish + :hook (elpaca-after-init . ace-pinyin-global-mode)) + +;; show number of matches +(use-package anzu + :diminish + :bind (([remap query-replace] . anzu-query-replace) + ([remap query-replace-regexp] . anzu-query-replace-regexp) + :map isearch-mode-map + ([remap isearch-query-replace] . anzu-isearch-query-replace) + ([remap isearch-query-replace-regexp] . anzu-isearch-query-replace-regexp)) + :hook (elpaca-after-init . global-anzu-mode)) + +;; Goto last change +(use-package goto-chg + :bind ("C-," . goto-last-change)) ;; Treat undo history as a tree (use-package vundo diff --git a/lisp/init-ui.el b/lisp/init-ui.el index 2adfe04..caa5e5e 100644 --- a/lisp/init-ui.el +++ b/lisp/init-ui.el @@ -41,7 +41,7 @@ (use-package doric-themes :demand t - :bind ("" . doric-load-random) + :bind ("" . doric-themes-load-random) :bind ("C-" . doric-load-random-light) :bind ("M-" . doric-load-random-dark) :init @@ -61,12 +61,20 @@ doric-coral doric-earth doric-almond)) - (defun doric-load-random () - (interactive) - (mapc #'disable-theme custom-enabled-themes) - (let ((loaded (seq-random-elt (append my/doric-light-themes my/doric-dark-themes)))) + + (defun synchronise-theme () + (let* ((hour (string-to-number + (substring (current-time-string) 11 13))) + (theme-list (if (member hour (number-sequence 6 18)) + my/doric-light-themes + my/doric-dark-themes)) + (loaded (seq-random-elt theme-list))) + (mapc #'disable-theme custom-enabled-themes) (load-theme loaded :no-confirm))) + (synchronise-theme) + (run-with-timer 3600 3600 'synchronise-theme) + (defun doric-load-random-light () (interactive) (mapc #'disable-theme custom-enabled-themes) @@ -77,8 +85,7 @@ (interactive) (mapc #'disable-theme custom-enabled-themes) (let ((loaded (seq-random-elt my/doric-dark-themes))) - (load-theme loaded :no-confirm))) - (doric-load-random)) + (load-theme loaded :no-confirm)))) (use-package rainbow-delimiters :hook ((prog-mode . rainbow-delimiters-mode) diff --git a/lisp/init-utils.el b/lisp/init-utils.el index 6604ce7..7afa06b 100644 --- a/lisp/init-utils.el +++ b/lisp/init-utils.el @@ -44,4 +44,6 @@ ;; :config ;; (setq keycast-mode-line-remove-tail-elements nil)) +(use-package elcord) + (provide 'init-utils) diff --git a/snippets/latex-mode/bigop.yasnippet b/snippets/latex-mode/bigop.yasnippet index 7aa214f..ee03fb1 100644 --- a/snippets/latex-mode/bigop.yasnippet +++ b/snippets/latex-mode/bigop.yasnippet @@ -4,4 +4,4 @@ # group: math # name: \bigop_{n}^{} # -- -\\big${1:$$(yas/choose-value '("oplus" "otimes" "odot" "cup" "cap" "uplus" "sqcup" "vee" "wedge"))}_{$2}^{$3}$0 +\\big${1:$$(yas/choose-value '("oplus" "otimes" "odot" "cup" "cap" "uplus" "sqcup" "vee" "wedge"))}_{$2}^{$3}$0 \ No newline at end of file