aboutsummaryrefslogtreecommitdiff
path: root/config.org
diff options
context:
space:
mode:
Diffstat (limited to 'config.org')
-rw-r--r--config.org175
1 files changed, 142 insertions, 33 deletions
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