From 37c653d06fd85680e074bbbd4df28bb4d8efd660 Mon Sep 17 00:00:00 2001 From: Sakooooo <78461130+Sakooooo@users.noreply.github.com> Date: Fri, 22 Dec 2023 15:00:42 +0000 Subject: [PATCH] tangle --- config/emacs/init.el | 287 ++++++++++++++++++++++++++++++------------- 1 file changed, 204 insertions(+), 83 deletions(-) diff --git a/config/emacs/init.el b/config/emacs/init.el index 565b089f..d68685da 100644 --- a/config/emacs/init.el +++ b/config/emacs/init.el @@ -21,7 +21,7 @@ kept-old-versions 5) (setq frame-resize-pixelwise t) ;; ui settings apparently go below -(setq default-frame-alist '((font . "JetBrains Mono") +(setq default-frame-alist '((font . "JetBrainsMono NF") '(vertical-scroll-bars . nil) '(horizontal-scroll-bars . nil))) @@ -48,6 +48,7 @@ kept-old-versions 5) (add-hook 'yaml-mode 'display-line-numbers-mode) (add-hook 'conf-mode 'display-line-numbers-mode) (setq display-line-numbers-width-start t) +(setq display-line-numbers-type 'relative) ;; switch buffers (global-set-key (kbd "C-M-j") 'counsel-switch-buffer) @@ -55,8 +56,10 @@ kept-old-versions 5) (global-set-key (kbd "") 'keyboard-escape-quit) ;; repeat keybinds (repeat-mode) +;; electric pairs +(electric-pair-mode) -(set-face-attribute `default nil :font "JetBrains Mono" :height 130) +(set-face-attribute `default nil :font "JetBrainsMono NF" :height 130) (message "setting up use-package") (require `package) @@ -109,7 +112,9 @@ kept-old-versions 5) (add-hook 'emacs-startup-hook (lambda () - (setq gc-cons-threshold 16777216 ; 16mb + ;;(setq gc-cons-threshold 16777216 ; 16mb + ;; this could be really bad idk + (setq gc-cons-threshold 100000000 gc-cons-percentage 0.1))) (defun doom-defer-garbage-collection-h () @@ -124,11 +129,133 @@ kept-old-versions 5) (add-hook 'minibuffer-setup-hook #'doom-defer-garbage-collection-h) (add-hook 'minibuffer-exit-hook #'doom-restore-garbage-collection-h) +(setq read-process-output-max (* 1024 1024)) ;; 1mb + (setq package-native-compile t) (setq comp-deferred-compilation t) (setq native-comp-deferred-compilation-deny-list nil) (setq warning-suppress-log-types '((comp))) +(setq mode-line-format nil) + + (kill-local-variable 'mode-line-format) + + (force-mode-line-update) + + ;; (setq-default mode-line-format + ;; `("%e" + ;; sakoline-evil-mode + + ;; ;; begin BUFFER name + ;; " " + + ;; sakoline-buffer-name + + ;; " " + ;; sakoline-buffer-state + ;; " " + ;; ;; everything under here goes to the right + ;; sakoline-major-mode + + ;; )) + + (setq-default mode-line-format + '((:eval (sakoline-render + ;; left + (quote ("%e" + sakoline-evil-mode + " " + sakoline-buffer-name + " " + sakoline-buffer-state)) + ;; right + (quote (sakoline-major-mode + ) + ))))) + + (defun sakoline-render (left right) + "Return a string of `window-width' length. +Containing LEFT, and RIGHT aligned respectively." + (let ((available-width + (- (window-total-width) + (+ (length (format-mode-line left)) + (length (format-mode-line right)))))) + (append left + (list (format (format "%%%ds" available-width) "")) + right))) + + (defvar-local sakoline-buffer-name + '(:eval + (propertize (buffer-name) 'face '(:foreground "#669999"))) + "Mode line variable that shows the buffer name.") + + (put 'sakoline-buffer-name 'risky-local-variable t) + + (defface sakoline-major-mode-color + '((t :foreground "grey")) + "Major Mode color for sakoline.") + + (defun sakoline--major-mode-name () + "Return Capitalized Major Mode" + (capitalize (symbol-name major-mode))) + + (defvar-local sakoline-major-mode + '(:eval + (propertize (sakoline--major-mode-name) 'face 'sakoline-major-mode-color))) + + (put 'sakoline-major-mode 'risky-local-variable t) + + (defface sakoline-evil-visual-color + '((t :background "#6600cc" :foreground "black")) + "Evil Visual Color") + + (defface sakoline-evil-normal-color + '((t :background "#99ff99" :foreground "black")) + "Evil Visual Color") + + (defface sakoline-evil-insert-color + '((t :background "#00cc66" :foreground "black")) + "Evil Visual Color") + + (defface sakoline-evil-emacs-color + '((t :background "#9900ff" :foreground "black")) + "Evil Visual Color") + + (defface sakoline-evil-operator-color + '((t :background "#ff3300" :foreground "black")) + "Evil Visual Color") + + (defvar-local sakoline-evil-mode + '(:eval (cond + ((eq evil-state 'visual) (propertize " VISUAL " 'face 'sakoline-evil-visual-color )) + ((eq evil-state 'normal) (propertize " NORMAL " 'face 'sakoline-evil-normal-color )) + ((eq evil-state 'insert) (propertize " INSERT " 'face 'sakoline-evil-insert-color )) + ((eq evil-state 'emacs) (propertize " EMACS " 'face 'sakoline-evil-emacs-color )) + ((eq evil-state 'operator) (propertize " OPERATOR " 'face 'sakoline-evil-operator-color)) + "Get current evil mode state"))) + + (put 'sakoline-evil-mode 'risky-local-variable t) + + (defface sakoline-buffer-state-readonly + '((t :foreground "red")) + "Face for read-only buffer") + (defface sakoline-buffer-state-modified + '((t :foreground "orange")) + "Face for modified buffer") + + (defvar-local sakoline-buffer-state + '(:eval + (cond + (buffer-read-only + (propertize ">:(" + 'face 'sakoline-buffer-state-readonly + 'help-echo "buffer is read only")) + ((buffer-modified-p) + (propertize "!!!" + 'face 'sakoline-buffer-state-modified))))) + + (put 'sakoline-buffer-state 'risky-local-variable t) + (message "setting up packages") (use-package command-log-mode @@ -169,6 +296,14 @@ kept-old-versions 5) :init (ivy-rich-mode 1)) +;; ivy in the middle +(use-package ivy-posframe + :straight t + :init + (setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-frame-center))) + :config + (ivy-posframe-mode 1)) + ;; counsel M+X (use-package counsel :straight t @@ -192,19 +327,10 @@ kept-old-versions 5) (doom-themes-org-config) -(setq doom-themes-treemacs-theme "doom-monokai-pro") - (doom-themes-treemacs-config) ;; Enable flashing mode-line on errors (doom-themes-visual-bell-config)) -;; Enable custom neotree theme (all-the-icons must be installed!) -;;(doom-themes-neotree-config) -;; or for treemacs users -;;(setq doom-themes-treemacs-theme "doom-atom") ; use "doom-colors" for less minimal icon theme -;;(doom-themes-treemacs-config) -;; Corrects (and improves) org-mode's native fontification. -;;(doom-themes-org-config)) (use-package all-the-icons) @@ -227,11 +353,11 @@ kept-old-versions 5) :config (setq which-key-idle-delay 1)) -(use-package doom-modeline - :ensure t - :straight t - :hook (after-init . doom-modeline-mode) - :custom ((doom-modeline-height 40))) +;; (use-package doom-modeline +;; :ensure t +;; :straight t +;; :hook (after-init . doom-modeline-mode) +;; :custom ((doom-modeline-height 40))) (use-package hide-mode-line :straight t @@ -303,6 +429,7 @@ kept-old-versions 5) "op" `(treemacs :which-key "treemacs") "oP" `(treemacs-find-file :which-key "treemacs find file") "oe" `(eshell :which-key "eshell") + "or" `(elfeed :which-key "rss") ;; notes "n" `(:ignore o :which-key "notes") "na" `(org-agenda :which-key "agenda") @@ -420,7 +547,7 @@ kept-old-versions 5) :straight t :hook (org-mode . org-indent-mode) :config - (setq org-ellipsis "▼") + (setq org-ellipsis " ↓") (setq org-agenda-start-with-log-mode t) (setq org-log-done 'time) (setq org-log-into-drawer t) @@ -448,6 +575,10 @@ kept-old-versions 5) ;; Following (setq org-return-follows-link t) + ;; hide stars except for leader star + (setq org-hide-leading-stars t) + (setq org-hide-emphasis-markers nil) + ;; org mode src thing (require 'org-tempo) @@ -541,33 +672,8 @@ kept-old-versions 5) :clock-in :clock-resume :empty-lines 1)))) -(use-package org-modern - :hook - (org-mode . global-org-modern-mode) - :custom - ;; Org styling - (org-hide-emphasis-markers t) - (org-pretty-entities t) - (org-ellipsis " ▾ ") - - ;; Agenda styling - (org-agenda-tags-column 0) - (org-agenda-block-separator ?─) - (org-agenda-current-time-string "◀── now ─────────────────────────────────────────────────")) - -(use-package org-superstar - :after org - :hook (org-mode . org-superstar-mode) - :config - (setq org-superstar-headline-bullets-list '("◯" "◯" "◯" "◯")) - (setq org-superstar-remove-leading-stars t) - (setq org-superstar-item-bullet-alist - '((?+ . ?•) - (?* . ?➤) - (?- . ?–))) - ) - (use-package olivetti + :straight t :hook (org-mode . (lambda () (interactive) (olivetti-mode) (olivetti-set-width 100)))) (use-package org-roam @@ -687,6 +793,11 @@ kept-old-versions 5) :straight t :ensure t) +(use-package treemacs-nerd-icons + :straight t + :config + (treemacs-load-theme "nerd-icons")) + (use-package magit :straight t :custom @@ -743,7 +854,8 @@ kept-old-versions 5) (use-package js2-mode :straight t -:mode "\\.js\\'" +:mode ("\\.js\\'" + "\\.jsx\\'") :hook (js2-mode . lsp) :config (setq web-mode-markup-indent-offset 2) ; HTML @@ -751,6 +863,31 @@ kept-old-versions 5) (setq web-mode-code-indent-offset 2) ; JS/JSX/TS/TSX (setq web-mode-content-types-alist '(("jsx" . "\\.js[x]?\\'")))) +(use-package typescript-mode + :straight t + :mode ("\\.ts\\'" + "\\.tsx\\'") + :hook (typescript-mode . lsp)) + +(define-derived-mode astro-mode web-mode "astro") + (setq auto-mode-alist + (append '((".*\\.astro\\'" . astro-mode)) + auto-mode-alist)) + + (add-to-list 'lsp-language-id-configuration + '(astro-mode . "astro")) + +(defun astro-get-tsserver () + "" + (f-join (lsp-workspace-root) "node_modules/typescript/lib/tsserverlibrary.js")) + +(lsp-register-client + (make-lsp-client :new-connection (lsp-stdio-connection '("astro-ls" "--stdio")) + :activation-fn (lsp-activate-on "astro") + :initialization-options (lambda () + `(:typescript (:serverPath ,(astro-get-tsserver)))) + :server-id 'astro-ls)) + (add-hook 'c-mode-hook 'lsp) (add-hook 'c++-mode-hook 'lsp) @@ -759,6 +896,11 @@ kept-old-versions 5) :straight t :hook (cmake-mode . lsp)) +(use-package lua-mode + :mode "\\.lua\\'" + :straight t + :hook (lua-mode . lsp)) + (use-package python-mode :mode "\\.py\\'" :straight t @@ -807,6 +949,9 @@ kept-old-versions 5) :straight t :hook (markdown-mode . visual-line-mode)) +(use-package markdown-preview-mode + :straight t) + (use-package evil-nerd-commenter :straight t :bind ("M-/" . evilnc-comment-or-uncomment-lines)) @@ -892,15 +1037,16 @@ kept-old-versions 5) (use-package elfeed :straight t + :config + (setq elfeed-use-curl t) + (setq browse-url-browser-function 'eww-browse-url) + (setq elfeed-search-title-max-width 100) ) (use-package elfeed-protocol :straight t :after elfeed - :ensure t :config - ;; curl recommend - (setq elfeed-use-curl t) (elfeed-set-timeout 36000) (setq elfeed-curl-extra-arguments '("--insecure")) ;necessary for https without a trust certificate @@ -913,7 +1059,7 @@ kept-old-versions 5) :use-authinfo t))) ;; enable elfeed-protocol - (setq elfeed-protocol-enabled-protocols '(fever newsblur owncloud ttrss)) + (setq elfeed-protocol-enabled-protocols '(fever)) (elfeed-protocol-enable) ) @@ -931,41 +1077,16 @@ kept-old-versions 5) :straight t ) -(use-package system-packages +(use-package pdf-tools + :straight t + :mode ("\\.pdf\\'" . pdf-view-mode) + :config + (setq-default pdf-view-display-size 'fit-page) :init - (cond - ((eq system-type 'windows-nt) - (progn - (add-to-list 'system-packages-support-package-managers - '(winget . - ((default-sudio . nil) - (install . "winget install") - (uninstall . "winget uninstall") - (update . "winget update --all") - (log . nil) - (search . "winget search") - (change-log . nil) - (clean-cache. nil) - (get-info . nil) - (get-info-remote . nil) - (list-files-provided-by . nil) - (owning-file . nil) - (verify-all-dependencies . nil) - (remove-orphaned . nil) - (list-installed-packages . "winget list -q") - (list-installed-packages-all . "winget list") - (list-installed-packages-all . "winget list") - (noconfirm . "--accept-source-agreements --accept-package-agreements")))) - (setq system-packages-package-manager 'winget) - (setq system-packages-noconfirm t)) - ((eq system-type 'darwin) - (progn - ;;(message "Mac OS X"))) - (setq system-packages-package-manager 'brew) - ((eq system-type 'gnu/linux) - (progn - (setq system-packages-package-manager 'nix) - ))))))) + (pdf-tools-install)) + +(use-package ement + :straight t) (org-babel-do-load-languages 'org-babel-load-languages