From 8e7b13c1059e001b8fd652fd5b1b2f87b866377a Mon Sep 17 00:00:00 2001 From: Duncan Date: Mon, 22 May 2023 13:55:22 -0500 Subject: Add accumulated Thinkpad changes --- config.org | 175 +++++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 142 insertions(+), 33 deletions(-) (limited to 'config.org') diff --git a/config.org b/config.org index 7cb1184..46d33d7 100644 --- a/config.org +++ b/config.org @@ -52,8 +52,14 @@ Noto Emoji is the fallback here. (add-to-list 'default-frame-alist '(font . "Iosevka-10")) - (setf use-default-font-for-symbols nil) - (set-fontset-font t 'unicode "Noto Emoji" nil 'append) + (defun dnw/unicode-fonts () + (setf use-default-font-for-symbols nil) + (set-fontset-font t 'unicode "Noto Emoji" nil 'append) + (set-fontset-font t 'emoji "Noto Color Emoji")) + + (if (daemonp) + (add-hook 'server-after-make-frame-hook #'dnw/unicode-fonts) + (dnw/unicode-fonts)) #+end_src @@ -121,7 +127,7 @@ Declare which archives to use, syncing them on start. Always-ensure downloads ne (setq use-package-always-ensure t) - (add-to-list 'load-path "/home/dnw/Code/PHYTS/phits-mode") + (add-to-list 'load-path "/home/dnw/Code/PyPHITS/phits-mode") (require 'phits-mode) (add-to-list 'auto-mode-alist '("\\.inp\\'" . phits-mode)) @@ -536,32 +542,34 @@ Evaluation of code blocks & abbreviated syntax for generating them. #+begin_src emacs-lisp - (with-eval-after-load 'org - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (python . t) - (fortran . t) - (gnuplot t) - (R . t) - (sqlite . t) - (haskell . t) - (lua . t))) - - (setq org-confirm-babel-evaluate nil) - - (require 'org-tempo) - - (add-to-list 'org-structure-template-alist '("sh" . "src shell")) - (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp")) - (add-to-list 'org-structure-template-alist '("py" . "src python")) - (add-to-list 'org-structure-template-alist '("ft" . "src fortran")) - (add-to-list 'org-structure-template-alist '("gp" . "src gnuplot")) - (add-to-list 'org-structure-template-alist '("sql" . "src sqlite")) - (add-to-list 'org-structure-template-alist '("r" . "src R")) - (add-to-list 'org-structure-template-alist '("hs" . "src haskell")) - (add-to-list 'org-structure-template-alist '("lu" . "src lua"))) - + (with-eval-after-load 'org + (org-babel-do-load-languages + 'org-babel-load-languages + '((emacs-lisp . t) + (python . t) + (fortran . t) + (gnuplot t) + (R . t) + (sqlite . t) + (haskell . t) + (lua . t) + (shell . t) + (C . t))) + + (setq org-confirm-babel-evaluate nil) + + (require 'org-tempo) + + (add-to-list 'org-structure-template-alist '("sh" . "src shell")) + (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp")) + (add-to-list 'org-structure-template-alist '("py" . "src python3")) + (add-to-list 'org-structure-template-alist '("ft" . "src fortran")) + (add-to-list 'org-structure-template-alist '("gp" . "src gnuplot")) + (add-to-list 'org-structure-template-alist '("sql" . "src sqlite")) + (add-to-list 'org-structure-template-alist '("r" . "src R")) + (add-to-list 'org-structure-template-alist '("hs" . "src haskell")) + (add-to-list 'org-structure-template-alist '("lu" . "src lua")) + (add-to-list 'org-structure-template-alist '("sys" . "src C"))) #+end_src @@ -818,7 +826,7 @@ Interact with PDFs from Emacs. Great for working with AUCTeX apparently. #+begin_src emacs-lisp ;; Done from Guix - (pdf-loader-install) + ;; (pdf-loader-install) ;; (use-package pdf-tools ;; :init ;; (add-hook 'TeX-after-compilation-finished-functions #'TeX-revert-document-buffer) @@ -848,7 +856,52 @@ TODO ** Eshell -TODO +#+begin_src emacs-lisp + + (defun dnw/prompt-prefix () + (let ((guess (apply + 'concat + (-map + (lambda (x) + (if (string= x "dnw") + "~/" + (concat x "/"))) + (seq-subseq + ;; extra ""'s are to prevent slicing errors + (cons "" (cons "" (split-string (eshell/pwd) "/"))) + -2))))) + (if (string= guess "home/~/") + "~" + (string-remove-suffix "/" guess)))) + + (remove-hook 'eshell-output-filter-functions + 'eshell-postoutput-scroll-to-bottom) + + (defun dnw/prompt () + (concat + (propertize + (dnw/prompt-prefix) + 'font-lock-face '(:foreground "#4068A3")) + (propertize " ᛋ" 'font-lock-face '(:foreground "#CB77F9")) + (propertize " " 'font-lock-face "default"))) + + (setq eshell-prompt-regexp "^[^ᛋ\n]* ᛋ ") + + (setq eshell-highlight-prompt nil + eshell-prompt-function #'dnw/prompt) + + (setq eshell-banner-message "We will reinvent the wheel. They used triangles. 🗿\n\n") + + ;; (add-to-list eshell-visual-subcommands '("guix" "search")) + ;; (add-to-list eshell-visual-subcommands '("guix" "install")) + ;; (add-to-list eshell-visual-subcommands '("guix" "remove")) + + (setq eshell-destroy-buffer-when-process-dies t) + + (setq eshell-prefer-lisp-functions t) + (setq eshell-prefer-lisp-variables t) + +#+end_src * Mail @@ -1156,7 +1209,8 @@ Play audio and video. #+begin_src emacs-lisp (require 'exwm-xim) - ;;(require 'exwm-systemtray) + (require 'exwm-randr) + (require 'exwm-systemtray) (defun dnw/exwm-config () "My configuration of EXWM, adapted from the example." @@ -1167,6 +1221,12 @@ Play audio and video. (add-hook 'exwm-update-class-hook (lambda () (exwm-workspace-rename-buffer exwm-class-name))) + (setq exwm-randr-workspace-output-plist '(1 "VGA1" 2 "VGA1" 3 "VGA1")) + (add-hook 'exwm-randr-screen-change-hook + (lambda () + (start-process-shell-command + "xrandr" nil "xrandr --output VGA1 --left-of LVDS1 --auto"))) + ;; Global keybindings. (unless (get 'exwm-input-global-keys 'saved-value) (setq exwm-input-global-keys @@ -1213,6 +1273,8 @@ Play audio and video. ;; Enable EXWM (exwm-enable) (exwm-xim-enable) + (exwm-randr-enable) + (exwm-systemtray-enable) (push ?\C-\\ exwm-input-prefix-keys)) (use-package exwm @@ -1224,7 +1286,8 @@ Play audio and video. #+begin_src emacs-lisp - (use-package password-store) + (use-package password-store + :config (pinentry-start)) #+end_src @@ -1238,6 +1301,36 @@ Edit selected text in org-mode-style source block. It full-screens it at the mom #+end_src +* EWW + +Primary web browser + +#+begin_src emacs-lisp + + (use-package eww + :config + (setq browse-url-browser-function 'eww-browse-url) + (setq eww-search-prefix "https://librex.devol.it/search.php?q=") + (setq dnw/eww-auto-readable-blacklist '("https://librex.devol.it")) + + (defun dnw/eww-auto-readable () + (if (seq-some (lambda (bl) (string-prefix-p bl (eww-current-url))) + dnw/eww-auto-readable-blacklist) + nil + (eww-readable))) + + (defun dnw/eww-unreadable () + (interactive) + (let ((hook eww-after-render-hook)) + (setq eww-after-render-hook nil) + (eww-reload t) + (setq eww-after-render-hook hook)))) + + ;; (add-hook 'eww-after-render-hook #'dnw/eww-auto-readable) + ;; :hook (eww-after-render-hook . dnw/eww-auto-readable) this, for some reason, doesn't work + ;; :bind ("U" . dnw/eww-unreadable) + +#+end_src * Lean #+begin_src emacs-lisp @@ -1248,6 +1341,22 @@ Edit selected text in org-mode-style source block. It full-screens it at the mom #+end_src +* Racket + +#+begin_src emacs-lisp + + (use-package racket-mode) + +#+end_src + +* Guile +#+begin_src emacs-lisp + + (use-package geiser + :config (require 'geiser-guile)) + +#+end_src + * Disable Annoying Quail Buffer #+begin_src emacs-lisp -- cgit v1.2.3