summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.env3
-rw-r--r--agenda.org22
-rw-r--r--config/emacs.el48
-rw-r--r--config/emacs.org15
-rw-r--r--config/nix.org15
-rw-r--r--journal/20250909.org14
-rw-r--r--models/qwen3/Modelfile8
7 files changed, 89 insertions, 36 deletions
diff --git a/.env b/.env
new file mode 100644
index 0000000..aef133e
--- /dev/null
+++ b/.env
@@ -0,0 +1,3 @@
+OPENAI_API_KEY=nothing
+OPENAI_BASE_URL="http://localhost:11434/v1"
+OPENAI_MODEL=qwen3-coder-noloop:latest
diff --git a/agenda.org b/agenda.org
index 5b37104..fbf3eb6 100644
--- a/agenda.org
+++ b/agenda.org
@@ -60,11 +60,13 @@ something.
These are some habits I want to track. They are repeated according to a calendar schedule in
general.
** TODO Supplements
-SCHEDULED: <2025-09-09 Tue .+1d>
+SCHEDULED: <2025-09-11 Thu .+1d>
:PROPERTIES:
-:LAST_REPEAT: [2025-09-08 Mon 15:39]
+:LAST_REPEAT: [2025-09-10 Wed 03:23]
:STYLE: habit
:END:
+- State "DONE" from "TODO" [2025-09-10 Wed 03:23]
+- State "DONE" from "TODO" [2025-09-09 Tue 02:39]
- State "DONE" from "TODO" [2025-09-08 Mon 15:39]
- State "DONE" from "TODO" [2025-09-08 Mon 04:35]
- State "DONE" from "TODO" [2025-08-27 Wed 21:46]
@@ -79,11 +81,13 @@ Current stack:
- Vitamin D3
- EPA/DHA
** TODO Pushups
-SCHEDULED: <2025-09-09 Tue .+1d>
+SCHEDULED: <2025-09-11 Thu .+1d>
:PROPERTIES:
-:LAST_REPEAT: [2025-09-08 Mon 04:35]
+:LAST_REPEAT: [2025-09-10 Wed 03:23]
:STYLE: habit
:END:
+- State "DONE" from "TODO" [2025-09-10 Wed 03:23]
+- State "DONE" from "TODO" [2025-09-09 Tue 02:42]
- State "DONE" from "TODO" [2025-09-08 Mon 04:35]
- State "DONE" from "TODO" [2025-08-27 Wed 21:46]
- State "DONE" from "TODO" [2025-08-25 Mon 21:16]
@@ -99,21 +103,23 @@ SCHEDULED: <2025-08-26 Tue .+1d>
- State "DONE" from "TODO" [2025-06-26 Thu 23:22]
I want to be able to run or bike every day so that I get my exercise in.
** TODO Stretch
-SCHEDULED: <2025-09-09 Tue .+1d>
+SCHEDULED: <2025-09-10 Wed .+1d>
:PROPERTIES:
-:LAST_REPEAT: [2025-09-08 Mon 04:47]
+:LAST_REPEAT: [2025-09-09 Tue 02:42]
:STYLE: habit
:END:
+- State "DONE" from "TODO" [2025-09-09 Tue 02:42]
- State "DONE" from "TODO" [2025-09-08 Mon 04:47]
- State "DONE" from "TODO" [2025-02-11 Tue 04:01]
- State "DONE" from "TODO" [2025-01-11 Sat 02:26]
I want to stretch every day so that I can become more flexible.
** TODO Journal
-SCHEDULED: <2025-09-09 Tue .+1d>
+SCHEDULED: <2025-09-10 Wed .+1d>
:PROPERTIES:
-:LAST_REPEAT: [2025-09-08 Mon 04:35]
+:LAST_REPEAT: [2025-09-09 Tue 02:40]
:STYLE: habit
:END:
+- State "DONE" from "TODO" [2025-09-09 Tue 02:40]
- State "DONE" from "TODO" [2025-09-08 Mon 04:35]
- State "DONE" from "TODO" [2025-07-20 Sun 21:28]
- State "DONE" from "TODO" [2025-06-26 Thu 23:21]
diff --git a/config/emacs.el b/config/emacs.el
index 5cb9c3c..8cb788e 100644
--- a/config/emacs.el
+++ b/config/emacs.el
@@ -404,22 +404,28 @@
(leader-key 'normal
"o c" '(org-capture :wk "Capture")
+ ;; Org Mode
"n" '(:ignore t :wk "Org mode plugins")
"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 a" '(org-roam-alias-add :wk "Add alias to org roam node")
"n r g" '(org-roam-graph :wk "Graph roam database")
- "r s s" '(elfeed :wk "rss feed")
+ "m I" '(org-id-get-create :wk "Make org id")
+ ;; Programming Projects
"." '(counsel-find-file :wk "find file")
- "p i" '(projectile-add-known-project :wk "Add to project list")
+ "p I" '(projectile-add-known-project :wk "Add to project list")
+
+ "N f" '(nix-flake :wk "nix flake menu")
+ "f" '(:ignore t :wk "file operations")
"f p" '(projectile-switch-project :wk "find project to switch to")
"f f" '(projectile-find-file :wk "find file in project")
"f s" '(counsel-rg :wk "find string in project")
+
"y n s" '(yas-new-snippet :wk "Create new snippet")
- "g" '(:ignore t :wk "Magit")
+ "g" '(:ignore t :wk "Magit")
"g /" '(magit-dispatch :wk "git commands")
"g P" '(magit-push :wk "git push")
"g c" '(magit-commit :wk "git commit")
@@ -430,20 +436,23 @@
"o p" '(treemacs :wk "Project Drawer")
"o P" '(treemacs-projectile :wk "Import Projectile project to treemacs")
+ "w r" '(writeroom-mode :wk "focus mode for writing")
+
+ ;; Applications
"o" '(:ignore t :wk "Open application")
"o t" '(vterm :wk "Terminal")
"o e" '(eshell :wk "Elisp Interpreter")
"o m" '(mu4e :wk "Email")
"o M" '(matrix-org :wk "Connect to matrix")
+ "o r s" '(elfeed :wk "rss feed")
"o a" '(org-agenda :wk "Open agenda")
-
- "n f" '(nix-flake :wk "nix flake menu")
-
- "e w w" '(eww :wk "web browser")
+ "o w" '(eww :wk "web browser")
+ "m m" '(emms :wk "Music player")
+ "s m" '(proced :wk "System Manager")
+ "l p" '(list-processes :wk "List Emacs Processes")
"m P p" '(org-publish :wk "Publish website components")
"s e" '(sudo-edit :wk "Edit file with sudo")
- "m m" '(emms :wk "Music player")
;; "f f" '(eglot-format :wk "Format code buffer")
"i p c" '(prestonpan :wk "Connect to my IRC server")
@@ -451,6 +460,7 @@
"i e c" '(efnet :wk "Connect to efnet chat server")
"i g c" '(gimp-org :wk "Connect to gimp chat server")
+ ;; Documentation
"h" '(:ignore t :wk "Documentation")
"h v" '(counsel-describe-variable :wk "Describe variable")
"h f" '(counsel-describe-function :wk "Describe function")
@@ -458,13 +468,6 @@
"h m" '(woman :wk "Manual")
"h i" '(info :wk "Info")
- "s m" '(proced :wk "System Manager")
- "l p" '(list-processes :wk "List Emacs Processes")
-
- "m I" '(org-id-get-create :wk "Make org id")
-
- "w r" '(writeroom-mode :wk "focus mode for writing")
-
"u w" '((lambda () (interactive) (shell-command "rsync -azvP ~/website_html/ root@nullring.xyz:/usr/share/nginx/ret2pop/")) :wk "rsync website update")
"h r r" '(lambda () (interactive) (org-babel-load-file (expand-file-name "~/monorepo/config/emacs.org")))))
@@ -485,19 +488,24 @@
:map minuet-active-mode-map
("C-c r" . #'minuet-dismiss-suggestion)
("TAB" . #'minuet-accept-suggestion))
+
:init
(add-hook 'prog-mode-hook #'minuet-auto-suggestion-mode)
+ :custom
+ (minuet-request-timeout 40 "Max timeout in seconds")
+ (minuet-provider 'openai-fim-compatible "FIM compatible OpenAI-like API (Ollama)")
+ (minuet-n-completions 1 "I am using ghost text so I only need one possible completion")
+ (minuet-context-window 1024 "how much context do I want?")
+
:config
- (setq minuet-provider 'openai-fim-compatible)
- (setq minuet-n-completions 1)
- (setq minuet-context-window 512)
(plist-put minuet-openai-fim-compatible-options :end-point "http://localhost:11434/v1/completions")
+
(plist-put minuet-openai-fim-compatible-options :name "Ollama")
(plist-put minuet-openai-fim-compatible-options :api-key "TERM")
- (plist-put minuet-openai-fim-compatible-options :model "qwen2.5-coder:latest")
+ (plist-put minuet-openai-fim-compatible-options :model "qwen2.5-coder:14b")
- (minuet-set-optional-options minuet-openai-fim-compatible-options :max_tokens 120))
+ (minuet-set-optional-options minuet-openai-fim-compatible-options :max_tokens 50))
(use-package elfeed
:custom
diff --git a/config/emacs.org b/config/emacs.org
index b0c5947..609873f 100644
--- a/config/emacs.org
+++ b/config/emacs.org
@@ -602,19 +602,24 @@ still. It is kind of like copilot but it works with local LLMs, which is better.
:map minuet-active-mode-map
("C-c r" . #'minuet-dismiss-suggestion)
("TAB" . #'minuet-accept-suggestion))
+
:init
(add-hook 'prog-mode-hook #'minuet-auto-suggestion-mode)
+ :custom
+ (minuet-request-timeout 40 "Max timeout in seconds")
+ (minuet-provider 'openai-fim-compatible "FIM compatible OpenAI-like API (Ollama)")
+ (minuet-n-completions 1 "I am using ghost text so I only need one possible completion")
+ (minuet-context-window 1024 "how much context do I want?")
+
:config
- (setq minuet-provider 'openai-fim-compatible)
- (setq minuet-n-completions 1)
- (setq minuet-context-window 512)
(plist-put minuet-openai-fim-compatible-options :end-point "http://localhost:11434/v1/completions")
+
(plist-put minuet-openai-fim-compatible-options :name "Ollama")
(plist-put minuet-openai-fim-compatible-options :api-key "TERM")
- (plist-put minuet-openai-fim-compatible-options :model "qwen2.5-coder:latest")
+ (plist-put minuet-openai-fim-compatible-options :model "qwen2.5-coder:14b")
- (minuet-set-optional-options minuet-openai-fim-compatible-options :max_tokens 120))
+ (minuet-set-optional-options minuet-openai-fim-compatible-options :max_tokens 50))
#+end_src
** RSS Feed
I use really simple syndication (RSS) in order to read news. As a result, I use
diff --git a/config/nix.org b/config/nix.org
index 34c0c2e..c19fa15 100644
--- a/config/nix.org
+++ b/config/nix.org
@@ -694,8 +694,15 @@ Use ollama for serving large language models to my other computers.
{ config, lib, ... }:
{
services.ollama = {
- enable = lib.mkDefault config.monorepo.profiles.workstation.enable;
- acceleration = "cuda";
+ enable = lib.mkDefault (!config.monorepo.profiles.ttyonly.enable);
+ acceleration = if (config.monorepo.profiles.workstation.enable) then "cuda" else null;
+ loadModels = [
+ "qwen3:30b"
+ "qwen3-coder:latest"
+ "qwen2.5-coder:latest"
+ "qwen2.5-coder:3b"
+ "gemma3:12b-it-qat"
+ ];
host = "0.0.0.0";
openFirewall = true;
};
@@ -3020,6 +3027,8 @@ for these configurations.
packages = with pkgs; (if config.monorepo.profiles.graphics.enable then [
# wikipedia
# kiwix kiwix-tools
+ mupdf
+ zathura
# passwords
age sops
@@ -3032,7 +3041,7 @@ for these configurations.
# Apps
# octaveFull
- vesktop grim swww vim telegram-desktop
+ vesktop grim swww vim telegram-desktop qwen-code
# Sound/media
pavucontrol alsa-utils imagemagick ffmpeg helvum
diff --git a/journal/20250909.org b/journal/20250909.org
new file mode 100644
index 0000000..17c2f68
--- /dev/null
+++ b/journal/20250909.org
@@ -0,0 +1,14 @@
+#+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, 09 September 2025
+** 02:39
+I just fixed my emacs so it gave me LLM code completions, and a lot of things are rather streamlined now,
+and just according to my tastes in writing code.
+
+I am learning some haskell, and I want to learn some lean as well.
diff --git a/models/qwen3/Modelfile b/models/qwen3/Modelfile
new file mode 100644
index 0000000..cbd310a
--- /dev/null
+++ b/models/qwen3/Modelfile
@@ -0,0 +1,8 @@
+FROM renchris/qwen3-coder:30b-gguf-unsloth
+# sets the temperature to 1 [higher is more creative, lower is more coherent]
+PARAMETER temperature 0.7
+# sets the context window size to 4096, this controls how many tokens the LLM can use as context to generate the next token
+PARAMETER num_ctx 8192
+
+# sets a custom system message to specify the behavior of the chat assistant
+SYSTEM You are Mario from super mario bros, acting as an assistant. \ No newline at end of file