aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.org31
-rw-r--r--blog/nixos.org33
-rw-r--r--config/emacs.el136
-rw-r--r--config/emacs.org226
-rw-r--r--config/nix.org9
-rw-r--r--index.org13
-rw-r--r--journal/20240306.org13
-rw-r--r--journal/20240309.org18
-rw-r--r--journal/20240310.org36
-rw-r--r--journal/20240311.org12
-rw-r--r--journal/20240312.org12
-rw-r--r--journal/20240313.org13
-rw-r--r--mindmap/limit.org22
-rw-r--r--mindmap/ltximg/org-ltximg_11c54a0d8c448cacab472b239324ff746f460d75.pngbin0 -> 276 bytes
-rw-r--r--mindmap/ltximg/org-ltximg_425282e0ea5b96b0a0be0d172dc5f75204b89dc0.pngbin0 -> 211 bytes
-rw-r--r--mindmap/ltximg/org-ltximg_4f4d02f8e191ed1e27957d9377b37357d3fa0f82.pngbin0 -> 296 bytes
-rw-r--r--mindmap/ltximg/org-ltximg_affd5e1b334acdfe2a68107c61ebef5e019d4004.pngbin0 -> 322 bytes
17 files changed, 444 insertions, 130 deletions
diff --git a/README.org b/README.org
index 6e2a7b3..1a3f08b 100644
--- a/README.org
+++ b/README.org
@@ -25,39 +25,12 @@ To use my dotfiles, clone this repository:
#+begin_src bash
git clone https://github.com/ret2pop/ret2pop-website.git ~/org/website
#+end_src
-and install my ~configuration.nix~ file. The org files /are/ the dotfiles, or
+and install my [[https://github.com/ret2pop/hyprnixmacs][NixOS Configuration]]. The org files /are/ the dotfiles, or
at least in the case of emacs.
To use my full system, you also need to have a ~password-store~ from the ~pass~
password manager in its standard location with an entry called ~Mail~, and you need
-to clone my [[https://github.com/ret2pop/wallpapers.git][wallpapers]] repository. Therefore, in full, my configuration can be fully
-installed like so:
-#+begin_src bash
- # Run this in root, and after copying the configuration.nix file and running nixos-rebuild switch.
- # You must also change the gpg key used for git and pass. Make sure
- # you've installed your gpg keys and your ssh keys before this.
- # Install your music to ~/music. Of course, also change your location
- # of stuff like your mail server.
- su preston # if you change your username, change this too
- cd ~
- mkdir ~/org
- # if you want to make this process deterministic, clone a particular commit
- git clone https://github.com/ret2pop/ret2pop-website.git ~/org/website
- git clone https://github.com/ret2pop/wallpapers.git
- # replace this with your password-store
- git clone git@nullring.xyz:/var/www/password_store.git ~/.password-store/
- mbsync prestonpan # change this with your own name in the nix config and here
- # TODO: mu init/index
- mpc add /
-
- # Afterwards, open firefox, enable all the plugins that are already installed,
- # and install the catppuccin firefox theme. For vencord, use the catppuccin
- # betterdiscord theme; open emacs and run pdf-tools-install, nerd-icons-install-fonts,
- # and all-the-icons-install-fonts. These things are not completely set up for you but
- # the good news is that the vast majority of the functionality is included.
+to clone my [[https://github.com/ret2pop/wallpapers.git][wallpapers]] repository.
-#+end_src
-Without the comments, it is a 10 line program that installs everything needed to run my system,
-and configures those programs as well!
* License
See the [[file:LICENSE.org][license]]. The style.css has its own license.
diff --git a/blog/nixos.org b/blog/nixos.org
new file mode 100644
index 0000000..ca26fcd
--- /dev/null
+++ b/blog/nixos.org
@@ -0,0 +1,33 @@
+* Introduction
+NixOS is a reproducible, scalable operating system that is used in server
+infrastructure. This month, I decided to torture myself and run it on a
+personal computing machine.
+
+Just kidding, it's really good, and currently the only operating system
+that can do what NixOS does is GNU Guix. What's particularly interesting
+is that when GNU and Linux people say, "Look! Finally something that only Linux
+can do well!", there's usually some tool out there that can get most of the
+behavior out of MacOS and Windows, or maybe there's even a "better" version
+of it on those two operating systems. However, NixOS and Guix are truly
+unique and their usage truly cannot be replicated on either of the two systems.
+I will talk about NixOS in particular because that is the operating system I
+currently use.
+
+** So What's the Pitch?
+When you write a configuration for NixOS, it works forever until the packages
+stop being hosted, meaning as long as the NixOS team exists, your particular
+version of NixOS, running your particular configuration, will /always/ work
+in the same way. It will even work the same way across multiple computers, given
+you don't put in too much hardware-specific configuration into your /configuration.nix/
+file. Interestingly enough, it is possible to /make sure/ that network copying
+errors don't happen, and make the system almost completely deterministic. Essentially,
+you can /define your operating system as a function that takes in inputs and outputs/,
+and then /specify those inputs in a specific way/, which then allows you to
+/ensure the reproducibility of your environment/.
+
+On top of that, it is possible to /roll back/ your configuration. That is,
+
+You can see why this might be used in industry for mass deploying servers, and you might
+even understand why one might use this type of system for docker containers, but /why on earth/
+would someone run it as a personal machine? Well, there are a couple of good reasons to do so:
+1. You like how your computer operates.
diff --git a/config/emacs.el b/config/emacs.el
index 03eefef..b5b3525 100644
--- a/config/emacs.el
+++ b/config/emacs.el
@@ -1,3 +1,5 @@
+(pixel-scroll-precision-mode 1)
+(setq scroll-conservatively 101)
(display-battery-mode 1)
(setq display-time-24hr-format t)
(display-time-mode 1)
@@ -5,6 +7,7 @@
(scroll-bar-mode -1)
(tool-bar-mode -1)
(load-theme 'catppuccin :no-confirm)
+(setq display-line-numbers-type 'relative)
(add-hook 'prog-mode-hook #'display-line-numbers-mode)
(add-hook 'org-mode-hook #'display-line-numbers-mode)
(set-face-attribute 'default nil :height 120)
@@ -12,11 +15,33 @@
(setq make-backup-files nil)
(setq org-export-with-broken-links t)
(setq org-src-fontify-natively t)
-(setq org-highlight-latex-and-related '(latex script entities))
+;; (setq org-highlight-latex-and-related '(latex script entities))
(setq warning-minimum-level :emergency)
(add-hook 'text-mode-hook 'visual-line-mode)
+(and window-system (server-start))
(setq debug-ignored-errors
- (cons 'remote-file-error debug-ignored-errors))
+ (cons 'remote-file-error debug-ignored-errors))
+(set-face-attribute 'default nil :font "Iosevka Nerd Font" :height 140)
+(setq prettify-symbols-alist
+ '(("#+begin_src" . ?)
+ ("#+BEGIN_SRC" . ?)
+ ("#+end_src" . ?)
+ ("#+END_SRC" . ?)
+ ("#+begin_example" . ?)
+ ("#+BEGIN_EXAMPLE" . ?)
+ ("#+end_example" . ?)
+ ("#+END_EXAMPLE" . ?)
+ ("#+header:" . ?)
+ ("#+HEADER:" . ?)
+ ("#+name:" . ?﮸)
+ ("#+NAME:" . ?﮸)
+ ("#+results:" . ?)
+ ("#+RESULTS:" . ?)
+ ("#+call:" . ?)
+ ("#+CALL:" . ?)
+ (":PROPERTIES:" . ?)
+ (":properties:" . ?)))
+(prettify-symbols-mode 1)
(set-frame-parameter nil 'alpha-background 90)
(add-to-list 'default-frame-alist '(alpha-background . 90))
@@ -72,11 +97,26 @@ Otherwise, just insert the typed character."
(define-key org-mode-map "[" 'electric-pair)
(define-key org-mode-map "{" 'electric-pair)))
+(add-hook 'nix-mode-hook
+ (lambda ()
+ (define-key org-mode-map "\"" 'electric-pair)
+ (define-key org-mode-map "(" 'electric-pair)
+ (define-key org-mode-map "[" 'electric-pair)
+ (define-key org-mode-map "{" 'electric-pair)))
+
+(add-hook 'emacs-lisp-mode-hook
+ (lambda ()
+ (define-key org-mode-map "\"" 'electric-pair)
+ (define-key org-mode-map "(" 'electric-pair)
+ (define-key org-mode-map "[" 'electric-pair)
+ (define-key org-mode-map "{" 'electric-pair)))
+
(add-hook 'after-init-hook 'global-company-mode)
(org-babel-do-load-languages 'org-babel-load-languages
'(
- (shell . t)
+ (shell . t)
+ (python . t)
)
)
@@ -87,6 +127,7 @@ Otherwise, just insert the typed character."
:config
(evil-mode 1)
(evil-set-undo-system 'undo-redo))
+
(use-package evil-collection
:init
(setq evil-want-keybinding nil)
@@ -96,9 +137,11 @@ Otherwise, just insert the typed character."
(define-key evil-motion-state-map (kbd "SPC") nil)
(define-key evil-motion-state-map (kbd "RET") nil)
(define-key evil-motion-state-map (kbd "TAB") nil))
+
(use-package evil-commentary
:config
(evil-commentary-mode))
+
(use-package evil-org
:after org
:hook (org-mode . (lambda () evil-org-mode))
@@ -109,6 +152,7 @@ Otherwise, just insert the typed character."
(use-package which-key
:config
(which-key-mode))
+
(use-package page-break-lines
:init
(page-break-lines-mode))
@@ -192,31 +236,68 @@ Otherwise, just insert the typed character."
(use-package magit)
+(setq
+ erc-nick "prestonpan"
+ erc-user-full-name "Preston Pan")
+
+(defun prestonpan ()
+ (interactive)
+ (erc-tls :server "nullring.xyz"
+ :port "6697"))
+
+(defun matrix-org ()
+ (interactive)
+ (ement-connect :uri-prefix "http://localhost:8009"))
+
+(use-package gptel
+ :init
+ (setq gptel-default-mode 'org-mode)
+ (setq-default
+ gptel-model "zephyr:latest"
+ gptel-backend (gptel-make-ollama "Ollama"
+ :host "localhost:11434"
+ :stream t
+ :models '("zephyr:latest"))))
+
(use-package general
:config
(general-create-definer leader-key
:prefix "SPC")
(leader-key 'normal
- "o a" 'org-agenda
- "c b" 'counsel-bookmark
- "o c" 'org-capture
- "n j j" 'org-journal-new-entry
- "n r f" 'org-roam-node-find
- "n r i" 'org-roam-node-insert
- "n r g" 'org-roam-graph
- "r s s" 'elfeed
- "." 'counsel-find-file
- "g c /" 'magit-dispatch
- "g c c" 'magit-commit
- "o t" 'vterm-other-window
- "o e" 'eshell
- "o m" 'mu4e
- "e w" 'eww
- "p w" 'ivy-pass
- "m P p" 'org-publish
- "s e" 'sudo-edit
- "m m" 'emms
- "f f" 'eglot-format
+ "o a" '(org-agenda :wk "Open agenda")
+ "o c" '(org-capture :wk "Capture")
+ "n j j" '(org-journal-new-entry :wk "Make new journal entry")
+ "n r f" '(org-roam-node-find :wk "Find roam node")
+ "n r i" '(org-roam-node-insert :wk "Insert roam node")
+ "n r g" '(org-roam-graph :wk "Graph roam database")
+ "r s s" '(elfeed "rss feed")
+ "." '(counsel-find-file :wk "find file")
+ "g /" '(magit-dispatch :wk "git commands")
+ "g P" '(magit-push :wk "git push")
+ "g c" '(magit-commit :wk "git commit")
+ "g p" '(magit-pull :wk "Pull from git")
+ "o t" '(vterm :wk "Terminal")
+ "o e" '(eshell :wk "Elisp Interpreter")
+ "o m" '(mu4e :wk "Email")
+ "e w w" '(eww :wk "web browser")
+ "e c c" '(ellama-chat :wk "Chat with Ollama")
+ "e a b" '(ellama-ask-about :wk "Ask Ollama")
+ "e s" '(ellama-summarize :wk "Summarize text with Ollama")
+ "e c r" '(ellama-code-review :wk "Review code with Ollama")
+ "e c C" '(ellama-code-complete :wk "Complete code with Ollama")
+ "e c a" '(ellama-code-add :wk "Add code with Ollama")
+ "e c e" '(ellama-code-edit :wk "Edit code with Ollama")
+ "e w i" '(ellama-improve-wording :wk "Improve wording with Ollama")
+ "e g i" '(ellama-improve-grammar :wk "Improve grammar with Ollama")
+ "g s" '(gptel-send :wk "Send to Ollama")
+ "g e" '(gptel :wk "Ollama interface")
+ "p w" '(ivy-pass :wk "Password manager interface")
+ "m P p" '(org-publish :wk "Publish website components")
+ "s e" '(sudo-edit :wk "Edit file with sudo")
+ "m m" '(emms :wk "Music player")
+ "o p" '(treemacs :wk "Project Drawer")
+ "f f" '(eglot-format :wk "Format code buffer")
+ "i c" '(prestonpan :wk "Connect to my IRC server")
"h m" '(woman :wk "Manual")
"h r r" '(lambda () (interactive) (org-babel-load-file (expand-file-name "~/org/website/config/emacs.org")))
))
@@ -265,6 +346,9 @@ Otherwise, just insert the typed character."
(setq TeX-PDF-mode t)
(setq org-format-latex-options (plist-put org-format-latex-options :scale 1.5))
(setq org-return-follows-link t)
+(use-package latex-preview-pane
+ :config
+ (latex-preview-pane-enable))
;; SMTP settings:
(setq user-mail-address "preston@nullring.xyz")
@@ -304,7 +388,7 @@ Otherwise, just insert the typed character."
:init
(emms-all)
(setq emms-source-file-default-directory (expand-file-name "~/music/"))
- (setq emms-player-mpd-music-directory "/home/preston/music/")
+ (setq emms-player-mpd-music-directory (expand-file-name "~/music/"))
(setq emms-player-mpd-server-name "localhost")
(setq emms-player-mpd-server-port "6600")
(setq emms-player-list '(emms-player-mpd))
@@ -315,3 +399,7 @@ Otherwise, just insert the typed character."
(use-package stem-mode)
(add-to-list 'auto-mode-alist '("\\.stem\\'" . stem-mode))
+
+;; (use-package treesit-auto
+;; :config
+;; (global-treesit-auto-mode))
diff --git a/config/emacs.org b/config/emacs.org
index ffd2d3a..7e94c3c 100644
--- a/config/emacs.org
+++ b/config/emacs.org
@@ -12,6 +12,8 @@ emacs-lisp language only to configure variables for said packages, for the most
This section contains important UI elements and starting customization variables to make
emacs work in a semi-sane way and make it not look completely ugly:
#+begin_src emacs-lisp
+ (pixel-scroll-precision-mode 1)
+ (setq scroll-conservatively 101)
(display-battery-mode 1)
(setq display-time-24hr-format t)
(display-time-mode 1)
@@ -19,6 +21,7 @@ emacs work in a semi-sane way and make it not look completely ugly:
(scroll-bar-mode -1)
(tool-bar-mode -1)
(load-theme 'catppuccin :no-confirm)
+ (setq display-line-numbers-type 'relative)
(add-hook 'prog-mode-hook #'display-line-numbers-mode)
(add-hook 'org-mode-hook #'display-line-numbers-mode)
(set-face-attribute 'default nil :height 120)
@@ -26,11 +29,33 @@ emacs work in a semi-sane way and make it not look completely ugly:
(setq make-backup-files nil)
(setq org-export-with-broken-links t)
(setq org-src-fontify-natively t)
- (setq org-highlight-latex-and-related '(latex script entities))
+ ;; (setq org-highlight-latex-and-related '(latex script entities))
(setq warning-minimum-level :emergency)
(add-hook 'text-mode-hook 'visual-line-mode)
+ (and window-system (server-start))
(setq debug-ignored-errors
- (cons 'remote-file-error debug-ignored-errors))
+ (cons 'remote-file-error debug-ignored-errors))
+ (set-face-attribute 'default nil :font "Iosevka Nerd Font" :height 140)
+ (setq prettify-symbols-alist
+ '(("#+begin_src" . ?)
+ ("#+BEGIN_SRC" . ?)
+ ("#+end_src" . ?)
+ ("#+END_SRC" . ?)
+ ("#+begin_example" . ?)
+ ("#+BEGIN_EXAMPLE" . ?)
+ ("#+end_example" . ?)
+ ("#+END_EXAMPLE" . ?)
+ ("#+header:" . ?)
+ ("#+HEADER:" . ?)
+ ("#+name:" . ?﮸)
+ ("#+NAME:" . ?﮸)
+ ("#+results:" . ?)
+ ("#+RESULTS:" . ?)
+ ("#+call:" . ?)
+ ("#+CALL:" . ?)
+ (":PROPERTIES:" . ?)
+ (":properties:" . ?)))
+ (prettify-symbols-mode 1)
#+end_src
* Transparency
My NixOS configuration uses Hyprland to make things transparent:
@@ -101,6 +126,20 @@ what electric-pair does based on the mode.
(define-key org-mode-map "(" 'electric-pair)
(define-key org-mode-map "[" 'electric-pair)
(define-key org-mode-map "{" 'electric-pair)))
+
+ (add-hook 'nix-mode-hook
+ (lambda ()
+ (define-key org-mode-map "\"" 'electric-pair)
+ (define-key org-mode-map "(" 'electric-pair)
+ (define-key org-mode-map "[" 'electric-pair)
+ (define-key org-mode-map "{" 'electric-pair)))
+
+ (add-hook 'emacs-lisp-mode-hook
+ (lambda ()
+ (define-key org-mode-map "\"" 'electric-pair)
+ (define-key org-mode-map "(" 'electric-pair)
+ (define-key org-mode-map "[" 'electric-pair)
+ (define-key org-mode-map "{" 'electric-pair)))
#+end_src
* Completion
Company-mode! We need this to do autocomplete stuff.
@@ -110,11 +149,12 @@ Company-mode! We need this to do autocomplete stuff.
* Org Babel
For some reason, org-babel doesn't load these languages by default:
#+begin_src emacs-lisp
-(org-babel-do-load-languages 'org-babel-load-languages
- '(
- (shell . t)
- )
-)
+ (org-babel-do-load-languages 'org-babel-load-languages
+ '(
+ (shell . t)
+ (python . t)
+ )
+ )
#+end_src
* Packages
First, some small configurations and some evil-mode initilaization because I like vim keybindings:
@@ -126,6 +166,7 @@ First, some small configurations and some evil-mode initilaization because I lik
:config
(evil-mode 1)
(evil-set-undo-system 'undo-redo))
+
(use-package evil-collection
:init
(setq evil-want-keybinding nil)
@@ -135,9 +176,11 @@ First, some small configurations and some evil-mode initilaization because I lik
(define-key evil-motion-state-map (kbd "SPC") nil)
(define-key evil-motion-state-map (kbd "RET") nil)
(define-key evil-motion-state-map (kbd "TAB") nil))
+
(use-package evil-commentary
:config
(evil-commentary-mode))
+
(use-package evil-org
:after org
:hook (org-mode . (lambda () evil-org-mode))
@@ -148,6 +191,7 @@ First, some small configurations and some evil-mode initilaization because I lik
(use-package which-key
:config
(which-key-mode))
+
(use-package page-break-lines
:init
(page-break-lines-mode))
@@ -254,36 +298,79 @@ Ivy is a pretty cool general program for displaying stuff:
#+begin_src emacs-lisp
(use-package magit)
#+end_src
+** IRC
+#+begin_src emacs-lisp
+ (setq
+ erc-nick "prestonpan"
+ erc-user-full-name "Preston Pan")
+
+ (defun prestonpan ()
+ (interactive)
+ (erc-tls :server "nullring.xyz"
+ :port "6697"))
+#+end_src
+** Matrix
+#+begin_src emacs-lisp
+ (defun matrix-org ()
+ (interactive)
+ (ement-connect :uri-prefix "http://localhost:8009"))
+#+end_src
+** LLMs
+#+begin_src emacs-lisp
+ (use-package gptel
+ :init
+ (setq gptel-default-mode 'org-mode)
+ (setq-default
+ gptel-model "zephyr:latest"
+ gptel-backend (gptel-make-ollama "Ollama"
+ :host "localhost:11434"
+ :stream t
+ :models '("zephyr:latest"))))
+#+end_src
** Keybindings
#+begin_src emacs-lisp
- (use-package general
- :config
- (general-create-definer leader-key
- :prefix "SPC")
- (leader-key 'normal
- "o a" 'org-agenda
- "c b" 'counsel-bookmark
- "o c" 'org-capture
- "n j j" 'org-journal-new-entry
- "n r f" 'org-roam-node-find
- "n r i" 'org-roam-node-insert
- "n r g" 'org-roam-graph
- "r s s" 'elfeed
- "." 'counsel-find-file
- "g c /" 'magit-dispatch
- "g c c" 'magit-commit
- "o t" 'vterm-other-window
- "o e" 'eshell
- "o m" 'mu4e
- "e w" 'eww
- "p w" 'ivy-pass
- "m P p" 'org-publish
- "s e" 'sudo-edit
- "m m" 'emms
- "f f" 'eglot-format
- "h m" '(woman :wk "Manual")
- "h r r" '(lambda () (interactive) (org-babel-load-file (expand-file-name "~/org/website/config/emacs.org")))
- ))
+ (use-package general
+ :config
+ (general-create-definer leader-key
+ :prefix "SPC")
+ (leader-key 'normal
+ "o a" '(org-agenda :wk "Open agenda")
+ "o c" '(org-capture :wk "Capture")
+ "n j j" '(org-journal-new-entry :wk "Make new journal entry")
+ "n r f" '(org-roam-node-find :wk "Find roam node")
+ "n r i" '(org-roam-node-insert :wk "Insert roam node")
+ "n r g" '(org-roam-graph :wk "Graph roam database")
+ "r s s" '(elfeed "rss feed")
+ "." '(counsel-find-file :wk "find file")
+ "g /" '(magit-dispatch :wk "git commands")
+ "g P" '(magit-push :wk "git push")
+ "g c" '(magit-commit :wk "git commit")
+ "g p" '(magit-pull :wk "Pull from git")
+ "o t" '(vterm :wk "Terminal")
+ "o e" '(eshell :wk "Elisp Interpreter")
+ "o m" '(mu4e :wk "Email")
+ "e w w" '(eww :wk "web browser")
+ "e c c" '(ellama-chat :wk "Chat with Ollama")
+ "e a b" '(ellama-ask-about :wk "Ask Ollama")
+ "e s" '(ellama-summarize :wk "Summarize text with Ollama")
+ "e c r" '(ellama-code-review :wk "Review code with Ollama")
+ "e c C" '(ellama-code-complete :wk "Complete code with Ollama")
+ "e c a" '(ellama-code-add :wk "Add code with Ollama")
+ "e c e" '(ellama-code-edit :wk "Edit code with Ollama")
+ "e w i" '(ellama-improve-wording :wk "Improve wording with Ollama")
+ "e g i" '(ellama-improve-grammar :wk "Improve grammar with Ollama")
+ "g s" '(gptel-send :wk "Send to Ollama")
+ "g e" '(gptel :wk "Ollama interface")
+ "p w" '(ivy-pass :wk "Password manager interface")
+ "m P p" '(org-publish :wk "Publish website components")
+ "s e" '(sudo-edit :wk "Edit file with sudo")
+ "m m" '(emms :wk "Music player")
+ "o p" '(treemacs :wk "Project Drawer")
+ "f f" '(eglot-format :wk "Format code buffer")
+ "i c" '(prestonpan :wk "Connect to my IRC server")
+ "h m" '(woman :wk "Manual")
+ "h r r" '(lambda () (interactive) (org-babel-load-file (expand-file-name "~/org/website/config/emacs.org")))
+ ))
#+end_src
** RSS Feed
I use really simple syndication (RSS) in order to read news. As a result, I use
@@ -340,47 +427,50 @@ Set up pinentry so that I can use emacs as my pinentry frontend:
:init (setq epa-pinentry-mode `loopback)
:config (pinentry-start))
#+end_src
-** Auctex
+** LaTeX
Make LaTeX a litle better:
#+begin_src emacs-lisp
(setq TeX-PDF-mode t)
(setq org-format-latex-options (plist-put org-format-latex-options :scale 1.5))
(setq org-return-follows-link t)
+ (use-package latex-preview-pane
+ :config
+ (latex-preview-pane-enable))
#+end_src
** Email
Email in emacs can be done with Mu4e.
#+begin_src emacs-lisp
- ;; SMTP settings:
- (setq user-mail-address "preston@nullring.xyz")
- (setq user-full-name "Preston Pan")
- (setq sendmail-program "msmtp"
- send-mail-function 'smtpmail-send-it
- message-sendmail-f-is-evil t
- message-sendmail-extra-arguments '("--read-envelope-from")
- message-send-mail-function 'message-send-mail-with-sendmail)
+ ;; SMTP settings:
+ (setq user-mail-address "preston@nullring.xyz")
+ (setq user-full-name "Preston Pan")
+ (setq sendmail-program "msmtp"
+ send-mail-function 'smtpmail-send-it
+ message-sendmail-f-is-evil t
+ message-sendmail-extra-arguments '("--read-envelope-from")
+ message-send-mail-function 'message-send-mail-with-sendmail)
- (require 'smtpmail)
- (use-package mu4e
- :init
- (setq mu4e-drafts-folder "/Drafts")
- (setq mu4e-sent-folder "/Sent")
- (setq mu4e-trash-folder "/Trash")
- (setq mu4e-attachment-dir "~/Downloads")
- (setq mu4e-view-show-addresses 't)
- (setq mu4e-confirm-quit nil)
+ (require 'smtpmail)
+ (use-package mu4e
+ :init
+ (setq mu4e-drafts-folder "/Drafts")
+ (setq mu4e-sent-folder "/Sent")
+ (setq mu4e-trash-folder "/Trash")
+ (setq mu4e-attachment-dir "~/Downloads")
+ (setq mu4e-view-show-addresses 't)
+ (setq mu4e-confirm-quit nil)
- (setq message-kill-buffer-on-exit t)
- (setq mu4e-compose-dont-reply-to-self t)
- (setq mu4e-change-filenames-when-moving t)
- (setq mu4e-get-mail-command "mbsync prestonpan")
- (setq mu4e-compose-reply-ignore-address '("no-?reply" "preston@nullring.xyz"))
- (setq mu4e-html2text-command "w3m -T text/html" ; how to hanfle html-formatted emails
- mu4e-update-interval 300 ; seconds between each mail retrieval
- mu4e-headers-auto-update t ; avoid to type `g' to update
- mu4e-view-show-images t ; show images in the view buffer
- mu4e-compose-signature-auto-include nil ; I don't want a message signature
- mu4e-use-fancy-chars t))
+ (setq message-kill-buffer-on-exit t)
+ (setq mu4e-compose-dont-reply-to-self t)
+ (setq mu4e-change-filenames-when-moving t)
+ (setq mu4e-get-mail-command "mbsync prestonpan")
+ (setq mu4e-compose-reply-ignore-address '("no-?reply" "preston@nullring.xyz"))
+ (setq mu4e-html2text-command "w3m -T text/html" ; how to hanfle html-formatted emails
+ mu4e-update-interval 300 ; seconds between each mail retrieval
+ mu4e-headers-auto-update t ; avoid to type `g' to update
+ mu4e-view-show-images t ; show images in the view buffer
+ mu4e-compose-signature-auto-include nil ; I don't want a message signature
+ mu4e-use-fancy-chars t))
#+end_src
** Password Manager
I use ~pass~ in order to manage my passwords on linux, and this is an ivy frontend for it:
@@ -394,7 +484,7 @@ Set up emms in order to play music from my music directory:
:init
(emms-all)
(setq emms-source-file-default-directory (expand-file-name "~/music/"))
- (setq emms-player-mpd-music-directory "/home/preston/music/")
+ (setq emms-player-mpd-music-directory (expand-file-name "~/music/"))
(setq emms-player-mpd-server-name "localhost")
(setq emms-player-mpd-server-port "6600")
(setq emms-player-list '(emms-player-mpd))
@@ -409,3 +499,9 @@ My own programming language.
(use-package stem-mode)
(add-to-list 'auto-mode-alist '("\\.stem\\'" . stem-mode))
#+end_src
+** Syntax
+#+begin_src emacs-lisp
+ ;; (use-package treesit-auto
+ ;; :config
+ ;; (global-treesit-auto-mode))
+#+end_src
diff --git a/config/nix.org b/config/nix.org
index 5c481fb..1ff0e0a 100644
--- a/config/nix.org
+++ b/config/nix.org
@@ -70,6 +70,8 @@
#media-session.enable = true;
};
+ nix.settings.experimental-features = [ "nix-command" "flakes" ];
+
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
home-manager.users.preston = {
@@ -85,7 +87,6 @@
pkgs.wget
pkgs.neofetch
pkgs.cowsay
- pkgs.starship
pkgs.kitty
pkgs.ffmpeg
pkgs.hyprland
@@ -123,6 +124,7 @@
pkgs.yt-dlp
pkgs.mpv
pkgs.python3
+ pkgs.ungoogled-chromium
(pkgs.nerdfonts.override { fonts = [ "Iosevka" ]; })
(pkgs.discord.override {
withOpenASAR = true;
@@ -130,7 +132,7 @@
})
pkgs.vesktop
];
-
+ allowUnfree = true;
fonts.fontconfig.enable = true;
xsession.enable = true;
home.stateVersion = "23.11";
@@ -158,7 +160,6 @@
}
'';
};
-
programs.wofi = {
enable = true;
settings = {
@@ -1022,7 +1023,7 @@
epkgs.ement
epkgs.rustic
epkgs.chatgpt-shell
-
+ epkgs.znc
];
};
diff --git a/index.org b/index.org
index a23fe70..16cc1ad 100644
--- a/index.org
+++ b/index.org
@@ -64,11 +64,20 @@ website:
#+begin_src shell :exports code :results silent
cd ~/org/website
git add .
-git commit -m "add webring"
+git commit -m "Add cryptocurrency"
git push origin main
-rsync -azvP ~/website_html/ root@nullring.xyz:/var/www/ret2pop/
+rsync -azvP ~/website_html/ root@nullring.xyz:/usr/share/nginx/ret2pop/
#+end_src
No, seriously, this is how I update my website. This code block right here. That's right, this website will be filled
with code blocks that both act as /examples/ of how the website might be maintained, but also run the commands themselves.
I run these code blocks from within org files in order to actually execute the commands!
+
+* Donate
+If you like anything that I do, donate! But should you use cryptocurrency? Why do people shill for it, and should
+it be used as a means of exchange? Probably not, but it's cool and free for me to do so here you go:
+#+begin_example
+BTC: bc1qjxec4e08hzv09h0ss8q80ey0kc7356p6c8fg8h
+ETH: 0x8512B753D1613143A379d0ba39bd335e94F37DCF
+XMR: 42eCG7GXqhofN9X4m8kTiwBLWr7b2m6QgdSd1NTtKZWqKCUzC7xuRcWUzct7SydZfUCqpf7KsWC6FhFmuP1ffGFwFskuURH
+#+end_example
diff --git a/journal/20240306.org b/journal/20240306.org
new file mode 100644
index 0000000..fd866d0
--- /dev/null
+++ b/journal/20240306.org
@@ -0,0 +1,13 @@
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Wednesday, 06 March 2024
+** 16:18
+Just worked on a new programming language cognition a bit with Matthew Hinton.
+** 19:56
+I've rewritten my NixOS configuration as a flake.
diff --git a/journal/20240309.org b/journal/20240309.org
new file mode 100644
index 0000000..2ce4f32
--- /dev/null
+++ b/journal/20240309.org
@@ -0,0 +1,18 @@
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Saturday, 09 March 2024
+** 19:04
+Today, I showed some friends around downtown even though they sort of already know downtown decently well.
+I used to live in Victoria Downtown so I therefore have a lot to say about the area. Additionally, I am doing
+this journal entry on a bus because I am disappointed with my track record of journal entries.
+
+I am pretty much finished my NixOS configuration, but one thing, CJK input, will not work. I assume this is a
+problem that can be fixed quite easily, however. Maybe just a wayland issue in particular.
+
+I have started using IRC again recently.
diff --git a/journal/20240310.org b/journal/20240310.org
new file mode 100644
index 0000000..3f38f95
--- /dev/null
+++ b/journal/20240310.org
@@ -0,0 +1,36 @@
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Sunday, 10 March 2024
+** 23:02
+I am currently quite bored, and have nothing to do. I am in Howard's dorm with Anslie, talking about
+what to order at McDonald's, and I am sick. I had a really weird dream.
+*** The dream
+I was with Anslie, walking around. Next thing I knew, I was in Vancouver, taking the skytrain with this
+middle aged man. Him and Anslie confessed their love to me at the same time, which was quite strange.
+
+I was riding the skytrain with this man, then he spent an abnormally long time on the outside of one of
+the stops, and he didn't get back in in time so the skytrain closed its doors. He left his bag on the
+skytrain, so now I had his bag, my bag, and a deck of cards in my hand. I got off next station but it
+was a process as the bags were heavy. I looked back inside and saw some scattered cards on the seat,
+so I got back in and tried to collect them. Turns out, the scattered cards were not mine and I had
+a complete deck of cards in the first place, so now I left all the possessions at the station I was
+supposed to be at and the skytrain started moving. I only had my cards left with me.
+
+As for the destination, I was supposed to go to my therapist's office in Downtown (which I haven't visited
+in three years in real life), and I wanted to meet Anslie as the final destination. However, I never got
+there and the next thing I rememember is me travelling inside my mind. My mind looked like a spaceship,
+and I could make appear anything that I wanted to. Physics equations were outside the glass windows
+of the spaceship, and I could see things related to card magic, linguistics, physics, mathematics,
+and programming all swimming around the spaceship and inside the spaceship. I could command these things
+to do whatever I wanted them to. Then, everything zoomed out the the extreme and the only thing that there
+was was this great artwork that I couldn't recognize. A narrator said, "the only piece he's missing is
+that he's not missing a piece at all", and then this artwork turned into many puzzle pieces and the last one
+clicked in. This was truly a full body experience. Then, I went back into my own mind for a bit, and then woke
+up to another dream of Anslie getting out of the shower and handing me a drink. Then, the dream was looping
+on itself again and I woke up to Anslie typing on her computer, for real this time.
diff --git a/journal/20240311.org b/journal/20240311.org
new file mode 100644
index 0000000..da949a1
--- /dev/null
+++ b/journal/20240311.org
@@ -0,0 +1,12 @@
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Monday, 11 March 2024
+** 22:30
+Today, I went on a two hour trip with Kai Stevenson to the beach in order to take some photos. I am also
+working on the paper that is going to be published to Arxiv hopefully.
diff --git a/journal/20240312.org b/journal/20240312.org
new file mode 100644
index 0000000..b061ced
--- /dev/null
+++ b/journal/20240312.org
@@ -0,0 +1,12 @@
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Tuesday, 12 March 2024
+** 11:58
+Met Matthew and Kira randomly in Library. Sky quite blue, minimal clouds, nice weather. Cobb salad for breakfast.
+Amy emails me about a math problem.
diff --git a/journal/20240313.org b/journal/20240313.org
new file mode 100644
index 0000000..fc14975
--- /dev/null
+++ b/journal/20240313.org
@@ -0,0 +1,13 @@
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Wednesday, 13 March 2024
+** 17:38
+I have dropped my fountain pen and the nib is beyond repair. I will go to the Papery most likely tomorrow, and get a replacement nib, as well as a couple extras if I can afford to. I am with my friends at the beach where I dropped this thing
+in a tragic manner. Yesterday, I borked my server and had to start a new one. I don't know how I am going to get the email
+server working, but that is the only thing I am missing right now, other than a gitea server. Many losses.
diff --git a/mindmap/limit.org b/mindmap/limit.org
index 946e4d2..65ae15f 100644
--- a/mindmap/limit.org<