]> Untitled Git - monorepo.git/commitdiff
add stuff
authorPreston Pan <preston@nullring.xyz>
Thu, 14 Mar 2024 19:00:32 +0000 (12:00 -0700)
committerPreston Pan <preston@nullring.xyz>
Thu, 14 Mar 2024 19:00:32 +0000 (12:00 -0700)
17 files changed:
README.org
blog/nixos.org [new file with mode: 0644]
config/emacs.el
config/emacs.org
config/nix.org
index.org
journal/20240306.org [new file with mode: 0644]
journal/20240309.org [new file with mode: 0644]
journal/20240310.org [new file with mode: 0644]
journal/20240311.org [new file with mode: 0644]
journal/20240312.org [new file with mode: 0644]
journal/20240313.org [new file with mode: 0644]
mindmap/limit.org
mindmap/ltximg/org-ltximg_11c54a0d8c448cacab472b239324ff746f460d75.png [new file with mode: 0644]
mindmap/ltximg/org-ltximg_425282e0ea5b96b0a0be0d172dc5f75204b89dc0.png [new file with mode: 0644]
mindmap/ltximg/org-ltximg_4f4d02f8e191ed1e27957d9377b37357d3fa0f82.png [new file with mode: 0644]
mindmap/ltximg/org-ltximg_affd5e1b334acdfe2a68107c61ebef5e019d4004.png [new file with mode: 0644]

index 6e2a7b3090315a68643070c0f41a96181d1ebb74..1a3f08b0c04197889cac6652afb7cea48e1f333d 100644 (file)
@@ -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 (file)
index 0000000..ca26fcd
--- /dev/null
@@ -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.
index 03eefefb3e4cf2e494480627581954349460f339..b5b3525bd58e330c770f9912ba9cfe4c8b1c473b 100644 (file)
@@ -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)
 (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))
index ffd2d3a1557f468841ff39d2b3b59594242e25cf..7e94c3c1b1ac329e82e2996254d5c190d7e70a24 100644 (file)
@@ -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
index 5c481fb7b4fdfac7efec7aabb6e84d497877b392..1ff0e0abe6ee4adaa4f41ad354089c03b8976bc9 100644 (file)
@@ -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
        pkgs.yt-dlp
        pkgs.mpv
        pkgs.python3
+       pkgs.ungoogled-chromium
        (pkgs.nerdfonts.override { fonts = [ "Iosevka" ]; })
        (pkgs.discord.override {
          withOpenASAR = true;
        })
        pkgs.vesktop
       ];
-
+      allowUnfree = true;
       fonts.fontconfig.enable = true;
       xsession.enable = true;
       home.stateVersion = "23.11";
          }
        '';
       };
-
       programs.wofi = {
        enable = true;
        settings = {
          epkgs.ement
          epkgs.rustic
          epkgs.chatgpt-shell
-
+    epkgs.znc
        ];
       };
 
index a23fe70b5ce48292fc40f8d502d83241afb05895..16cc1ad2c0da264f75c20f548d9d1bf124243c26 100644 (file)
--- 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 (file)
index 0000000..fd866d0
--- /dev/null
@@ -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 (file)
index 0000000..2ce4f32
--- /dev/null
@@ -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 (file)
index 0000000..3f38f95
--- /dev/null
@@ -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 (file)
index 0000000..da949a1
--- /dev/null
@@ -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 (file)
index 0000000..b061ced
--- /dev/null
@@ -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 (file)
index 0000000..fc14975
--- /dev/null
@@ -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.
index 946e4d293751aa579eb01652f73c65a45632d101..65ae15fe92c1c99e6c71ac8d6e133b4f2e076b94 100644 (file)
@@ -28,21 +28,31 @@ ordering:
 \forall a \in \mathbb{R}, - \infty < a < +\infty
 \end{align*}
 defined. Note that we can define equivalence relations on these symbols, but algebra reamins undefined.
+** Unbounded Sequences
+Unbounded sequences can still limit to $+\infty$ or $-\infty$, although the limit does not exist
+for many unbounded sequences. If a sequence is one of:
+1. unbounded above
+2. unbounded below
+but not both, it is possible that such sequences limit to $\infty$.
 ** Limits on Monotone Sequences
 An increasing sequence is a sequence $\{s_{n}\}$ defined such that:
 \begin{align*}
 \forall n \in \mathbb{N}, \forall m \in \mathbb{N}, n \ge m \implies s_{n} \ge s_{m}.
 \end{align*}
-and now we wish to prove that the limit of monotone sequences always exist.
-
-\begin{align*}
-\lim s_{n} = s \iff \forall \epsilon > 0, \exists N, n > N \implies | s_{n} - s | < \epsilon \\
-\end{align*}
 
 #+begin_theorem
-If I am bad, then you are too.
+The limit of monotone sequences always exists.
 #+end_theorem
 
 #+begin_proof
+We know:
+\begin{align*}
+\lim s_{n} = s \iff \forall \epsilon > 0, \exists N, n > N \implies | s_{n} - s | < \epsilon \\
+\end{align*}
 
+and our sequence $\{s_{n}\}$ is monotone. If $\{s_{n}\}$ is increasing, we have:
+\begin{align*}
+s_{n + 1} \ge s_{n}
+\end{align*}
+for all n.
 #+end_proof
diff --git a/mindmap/ltximg/org-ltximg_11c54a0d8c448cacab472b239324ff746f460d75.png b/mindmap/ltximg/org-ltximg_11c54a0d8c448cacab472b239324ff746f460d75.png
new file mode 100644 (file)
index 0000000..d16e722
Binary files /dev/null and b/mindmap/ltximg/org-ltximg_11c54a0d8c448cacab472b239324ff746f460d75.png differ
diff --git a/mindmap/ltximg/org-ltximg_425282e0ea5b96b0a0be0d172dc5f75204b89dc0.png b/mindmap/ltximg/org-ltximg_425282e0ea5b96b0a0be0d172dc5f75204b89dc0.png
new file mode 100644 (file)
index 0000000..f44612e
Binary files /dev/null and b/mindmap/ltximg/org-ltximg_425282e0ea5b96b0a0be0d172dc5f75204b89dc0.png differ
diff --git a/mindmap/ltximg/org-ltximg_4f4d02f8e191ed1e27957d9377b37357d3fa0f82.png b/mindmap/ltximg/org-ltximg_4f4d02f8e191ed1e27957d9377b37357d3fa0f82.png
new file mode 100644 (file)
index 0000000..1a9c609
Binary files /dev/null and b/mindmap/ltximg/org-ltximg_4f4d02f8e191ed1e27957d9377b37357d3fa0f82.png differ
diff --git a/mindmap/ltximg/org-ltximg_affd5e1b334acdfe2a68107c61ebef5e019d4004.png b/mindmap/ltximg/org-ltximg_affd5e1b334acdfe2a68107c61ebef5e019d4004.png
new file mode 100644 (file)
index 0000000..04ca7f1
Binary files /dev/null and b/mindmap/ltximg/org-ltximg_affd5e1b334acdfe2a68107c61ebef5e019d4004.png differ