diff options
author | Preston Pan <preston@nullring.xyz> | 2024-03-14 12:00:32 -0700 |
---|---|---|
committer | Preston Pan <preston@nullring.xyz> | 2024-03-14 12:00:32 -0700 |
commit | 7197cd031e6fe12a3efcc98a1ec0c3eb9c986e89 (patch) | |
tree | ce5171b05557c462dfaf4a5e30f71c053b711f49 | |
parent | 6131810bb69bcb7b221cb332391cd3482920b22b (diff) |
add stuff
-rw-r--r-- | README.org | 31 | ||||
-rw-r--r-- | blog/nixos.org | 33 | ||||
-rw-r--r-- | config/emacs.el | 136 | ||||
-rw-r--r-- | config/emacs.org | 226 | ||||
-rw-r--r-- | config/nix.org | 9 | ||||
-rw-r--r-- | index.org | 13 | ||||
-rw-r--r-- | journal/20240306.org | 13 | ||||
-rw-r--r-- | journal/20240309.org | 18 | ||||
-rw-r--r-- | journal/20240310.org | 36 | ||||
-rw-r--r-- | journal/20240311.org | 12 | ||||
-rw-r--r-- | journal/20240312.org | 12 | ||||
-rw-r--r-- | journal/20240313.org | 13 | ||||
-rw-r--r-- | mindmap/limit.org | 22 | ||||
-rw-r--r-- | mindmap/ltximg/org-ltximg_11c54a0d8c448cacab472b239324ff746f460d75.png | bin | 0 -> 276 bytes | |||
-rw-r--r-- | mindmap/ltximg/org-ltximg_425282e0ea5b96b0a0be0d172dc5f75204b89dc0.png | bin | 0 -> 211 bytes | |||
-rw-r--r-- | mindmap/ltximg/org-ltximg_4f4d02f8e191ed1e27957d9377b37357d3fa0f82.png | bin | 0 -> 296 bytes | |||
-rw-r--r-- | mindmap/ltximg/org-ltximg_affd5e1b334acdfe2a68107c61ebef5e019d4004.png | bin | 0 -> 322 bytes |
17 files changed, 444 insertions, 130 deletions
@@ -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 ]; }; @@ -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 s |