diff options
author | Preston Pan <ret2pop@gmail.com> | 2025-02-11 04:06:11 -0800 |
---|---|---|
committer | Preston Pan <ret2pop@gmail.com> | 2025-02-11 04:06:11 -0800 |
commit | f10285de4d0b5c69d026e948a9d9d7278a2ffb64 (patch) | |
tree | dc1138970d2dae203aaeede6e036c637fbf3d2a6 | |
parent | be4a011bac9b2212d81b572c3bb9b80f8c326ab0 (diff) |
add resume
-rw-r--r-- | README.org | 2 | ||||
-rw-r--r-- | about.org | 5 | ||||
-rw-r--r-- | agenda.org | 36 | ||||
-rw-r--r-- | blog/normal.org | 43 | ||||
-rw-r--r-- | config/emacs.el | 10 | ||||
-rw-r--r-- | config/emacs.org | 10 | ||||
-rw-r--r-- | config/nix.org | 393 | ||||
-rw-r--r-- | img/topology.svg | 1 | ||||
-rw-r--r-- | index.org | 5 | ||||
-rw-r--r-- | journal/20250211.org | 14 | ||||
-rw-r--r-- | nix/flake.nix | 10 | ||||
-rw-r--r-- | nix/modules/configuration.nix | 4 | ||||
-rw-r--r-- | nix/modules/home/default.nix | 1 | ||||
-rw-r--r-- | nix/modules/home/pantalaimon.nix | 17 | ||||
-rw-r--r-- | nix/modules/nginx.nix | 10 | ||||
-rw-r--r-- | resume.org | 122 | ||||
-rw-r--r-- | resume.pdf | bin | 0 -> 17816 bytes | |||
-rw-r--r-- | resume.tex | 122 | ||||
-rw-r--r-- | resume2.pdf | bin | 22560 -> 0 bytes | |||
-rw-r--r-- | style.css | 13 |
20 files changed, 536 insertions, 282 deletions
@@ -12,7 +12,7 @@ It's ret2pop, a wholistic experience powered by NixOS and Emacs. ** so how did you actually do that? By using the ~org-publish~ function, ~org-roam~, and ~org-journal~, as well as writing a lot of things with a literate config. To see more, see my -[[file:config/emacs.org][emacs configuration]] and my [[file:nix.org][NixOS configuration]]. +[[file:config/emacs.org][emacs configuration]] and my [[file:config/nix.org][NixOS configuration]]. ** So, where is this website of yours located? https://ret2pop.nullring.xyz, it is the road to enlightenment. * Wait, so where are your dotfiles? @@ -29,6 +29,8 @@ Some might know me as ret2pop, some as Preston Pan, and others as LiCoO2. Others I have an ENS domain, at ~ret2pop.eth~. ** Contact Here are all the methods you should use to contact me: +*** Professional +Here you can find [[file:resume.pdf][my resume]] in both pdf and [[file:resume.org][html]] which contains it all. I am always open for new job opportunities! *** IRC - ret2pop on nullring.xyz, 6697. Go to #nullring; this channel is the most active, probably. - ret2pop on libera.chat @@ -50,9 +52,8 @@ This is for all my public keys that are important. Note: for cryptocurrency publ public scanner to get my public keys. - This is [[file:public-key.asc][my gpg public key for ret2pop]]. - This is [[file:id_ed25519.pub][my ssh key]]. + * Feeds RSS (and Atom feeds) are ways of keeping up-to-date in a minimal and universal way. - [[https://git.nullring.xyz/ret2pop-website.git/?format=atom][Website Cgit repo atom feed]] -* Professional -Here you can find [[file:./resume2.pdf][my resume]], which contains it all. I am always open for new job opportunities! @@ -19,30 +19,12 @@ project, it can be referenced here. * Tasks These are general life tasks that I need to do, which don't depend on a specific time or date. -** TODO [#A] ToughNix +** TODO [#B] ToughNix I need to work on my monorepo flake which builds all my systems, and should accommodate future systems and also should be relatively abstractable (i.e. identifiers tied to me should be easily removed from the flake). -*** TODO [#B] VPS -My VPS needs to be a NixOS configuration. -**** DONE Automation -I need to automate deployment of my NixOS VPS. -**** TODO Migration +*** TODO [#B] Migration Migrate all my services to NixOS. -*** DONE [#A] NixOS Modules -:LOGBOOK: -CLOCK: [2025-01-11 Sat 17:03]--[2025-01-11 Sat 19:35] => 2:32 -:END: -I need to fix my NixOS configuration to not be as monolithic and to be more modular. -*** DONE [#B] Workstation -My NixOS Monorepo needs to incorporate my workstation, and I need to install this config. -*** DONE [#C] Gammastep -Fix gammastep in my config so that it actually works on my dell machine. -*** DONE [#C] monorepo -Merge website and toughnix into monorepo. -** TODO [#B] Resume -I need to update my resume with my work experience. Additionally, I want to re-write my resume -in org mode. ** TODO [#B] CSS I need to update my CSS for my website to look better. ** TODO [#B] Nullring @@ -57,6 +39,7 @@ I want to write another song. I want to start making YouTube videos. ** TODO [#C] Analogue Computer I want to make an analogue computer. + * Academic ** TODO Statistics ** TODO QFT @@ -68,24 +51,23 @@ schedules. ** Friends These are tasks related to seeing my friends. There will be tasks listed here when I schedule something. -*** DONE Travis and Friends Meetup -SCHEDULED: <2025-01-12 Sun 17:00> -Eating dinner with them. * Habits These are some habits I want to track. They are repeated according to a calendar schedule in general. ** TODO Stretch -SCHEDULED: <2025-01-12 Sun .+1d> +SCHEDULED: <2025-02-12 Wed .+1d> :PROPERTIES: -:LAST_REPEAT: [2025-01-11 Sat 02:26] +:LAST_REPEAT: [2025-02-11 Tue 04:01] :END: +- 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-02-04 Tue .+1d> +SCHEDULED: <2025-02-12 Wed .+1d> :PROPERTIES: -:LAST_REPEAT: [2025-02-03 Mon 13:57] +:LAST_REPEAT: [2025-02-11 Tue 04:01] :END: +- State "DONE" from "TODO" [2025-02-11 Tue 04:01] - State "DONE" from "TODO" [2025-02-03 Mon 13:57] - State "DONE" from "TODO" [2025-02-03 Mon 03:01] - State "DONE" from "TODO" [2025-01-19 Sun 11:53] diff --git a/blog/normal.org b/blog/normal.org deleted file mode 100644 index ccb40ac..0000000 --- a/blog/normal.org +++ /dev/null @@ -1,43 +0,0 @@ -#+title: Reconstructing Postmodernism -#+author: Preston Pan -#+description: -#+html_head: <link rel="stylesheet" type="text/css" href="../style.css" /> -#+html_head: <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> -#+html_head: <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> -#+html_head: <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> -#+html_head: <link rel="manifest" href="/site.webmanifest"> -#+html_head: <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> -#+html_head: <meta name="msapplication-TileColor" content="#da532c"> -#+html_head: <meta name="theme-color" content="#ffffff"> -#+html_head: <meta name="viewport" content="width=1000; user-scalable=0;" /> -#+language: en -#+OPTIONS: broken-links:t - -* Introduction -In the collective subconscious there is this idea of the "norm" -- a -set of expected cultural attitudes and beliefs that other people hold -in any given society. This idea is used to analyze hierarchical -structures found in society, manifest in concepts like the patriarchy, -queer rights, black liberation, and others. There are many frameworks -that include all of the above as subframeworks and synthesize them in -some way, but often they have a couple ideas in common: that the -concepts that implicitly infect our society in some way via some -hierarchical order are often unjustified and could be dissolved -without much loss. I propose the following: that the conclusions -presented (that often social hierarchies are unjustified) are true -/in some sense/, but that the real story is more complicated. I posit -that our inability to solve the problem of society and our treatment -of minorities isn't a /problem of society/, but rather a framing problem. - -* The Bleak Culture -Our current society is broken. This is a view shared by a vast -majority of people, but many people hold this exact view for a -multitude of reasons. I hold this view because I believe that no -current cultural narrative solves the problem of our "current -generation". The progressive narrative posits that our problems in -society are highly linked with our inability to cope with social -inequalities, often treating minorities and, often times, regular -people poorly in favor of those with high status. The conservative -answer to culture is that we must turn back, back to something that -has been shown to work in the past. - diff --git a/config/emacs.el b/config/emacs.el index d3b251d..787b8d9 100644 --- a/config/emacs.el +++ b/config/emacs.el @@ -24,9 +24,7 @@ (c-doc-comment-style '((c-mode . doxygen) (c++-mode . doxygen))) - :hook ((text-mode . auto-fill-mode) - (text-mode . visual-line-mode) - (prog-mode . auto-fill-mode) + :hook ((text-mode . visual-line-mode) (prog-mode . display-line-numbers-mode) (prog-mode . display-fill-column-indicator-mode) (org-mode . auto-fill-mode) @@ -108,6 +106,7 @@ (org-latex-preview-image-directory (expand-file-name "~/.cache/ltximg/") "don't use weird cache location") (org-preview-latex-image-directory (expand-file-name "~/.cache/ltximg/") "don't use weird cache location") (TeX-PDF-mode t) + (org-latex-compiler "xelatex") (org-latex-pdf-process '("xelatex -interaction=nonstopmode -output-directory=%o %f") "set xelatex as default") (TeX-engine 'xetex "set xelatex as default engine") (preview-default-option-list '("displaymath" "textmath" "graphics") "preview latex") @@ -136,7 +135,7 @@ :html-preamble-format (("en" "<p class=\"preamble\"><a href=\"/index.html\">home</a> | <a href=\"./index.html\">section main page</a></p><hr>"))) ("website-static" :base-directory "~/monorepo" - :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|ico\\|asc\\|pub\\|webmanifest\\|xml" + :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|ico\\|asc\\|pub\\|webmanifest\\|xml\\|svg" :publishing-directory "~/website_html/" :recursive t :publishing-function org-publish-attachment) @@ -356,7 +355,7 @@ :port "6697")) (defun matrix-org () (interactive) - (ement-connect :uri-prefix "http://localhost:8009")) + (ement-connect)) :config (general-create-definer leader-key :prefix "SPC") (leader-key 'normal @@ -380,6 +379,7 @@ "o t" '(vterm :wk "Terminal") "o e" '(eshell :wk "Elisp Interpreter") "o m" '(mu4e :wk "Email") + "o M" '(matrix-org :wk "Connect to matrix") "e w w" '(eww :wk "web browser") "e c c" '(ellama-chat :wk "Chat with Ollama") diff --git a/config/emacs.org b/config/emacs.org index 8dff691..a962ac2 100644 --- a/config/emacs.org +++ b/config/emacs.org @@ -45,9 +45,7 @@ Emacs is self documenting, after all! (c-doc-comment-style '((c-mode . doxygen) (c++-mode . doxygen))) - :hook ((text-mode . auto-fill-mode) - (text-mode . visual-line-mode) - (prog-mode . auto-fill-mode) + :hook ((text-mode . visual-line-mode) (prog-mode . display-line-numbers-mode) (prog-mode . display-fill-column-indicator-mode) (org-mode . auto-fill-mode) @@ -142,6 +140,7 @@ This is my org mode configuration, which also configures latex. (org-latex-preview-image-directory (expand-file-name "~/.cache/ltximg/") "don't use weird cache location") (org-preview-latex-image-directory (expand-file-name "~/.cache/ltximg/") "don't use weird cache location") (TeX-PDF-mode t) + (org-latex-compiler "xelatex" "Use latex as default") (org-latex-pdf-process '("xelatex -interaction=nonstopmode -output-directory=%o %f") "set xelatex as default") (TeX-engine 'xetex "set xelatex as default engine") (preview-default-option-list '("displaymath" "textmath" "graphics") "preview latex") @@ -170,7 +169,7 @@ This is my org mode configuration, which also configures latex. :html-preamble-format (("en" "<p class=\"preamble\"><a href=\"/index.html\">home</a> | <a href=\"./index.html\">section main page</a></p><hr>"))) ("website-static" :base-directory "~/monorepo" - :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|ico\\|asc\\|pub\\|webmanifest\\|xml" + :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|ico\\|asc\\|pub\\|webmanifest\\|xml\\|svg" :publishing-directory "~/website_html/" :recursive t :publishing-function org-publish-attachment) @@ -461,7 +460,7 @@ emacs keybindings. :port "6697")) (defun matrix-org () (interactive) - (ement-connect :uri-prefix "http://localhost:8009")) + (ement-connect)) :config (general-create-definer leader-key :prefix "SPC") (leader-key 'normal @@ -485,6 +484,7 @@ emacs keybindings. "o t" '(vterm :wk "Terminal") "o e" '(eshell :wk "Elisp Interpreter") "o m" '(mu4e :wk "Email") + "o M" '(matrix-org :wk "Connect to matrix") "e w w" '(eww :wk "web browser") "e c c" '(ellama-chat :wk "Chat with Ollama") diff --git a/config/nix.org b/config/nix.org index 52e1e5f..718fd8b 100644 --- a/config/nix.org +++ b/config/nix.org @@ -73,11 +73,6 @@ so that adding new configurations that add modifications is made simple. ]; }; }); - - pkgs = import nixpkgs { - inherit system; - overlays = [ nix-topology.overlays.default ]; - }; in { nixosConfigurations = builtins.listToAttrs (mkConfigs [ "affinity" @@ -87,7 +82,10 @@ so that adding new configurations that add modifications is made simple. ]); topology."${system}" = import nix-topology { - inherit pkgs; + pkgs = import nixpkgs { + inherit system; + overlays = [ nix-topology.overlays.default ]; + }; modules = [ ./topology/default.nix { nixosConfigurations = self.nixosConfigurations; } @@ -872,6 +870,10 @@ because they enhance security. }; }; + nixpkgs.config.permittedInsecurePackages = [ + "olm-3.2.16" + ]; + nix.settings.experimental-features = "nix-command flakes"; time.timeZone = config.monorepo.vars.timeZone; i18n.defaultLocale = "en_CA.UTF-8"; @@ -994,188 +996,189 @@ For my virtual machines. As you can see, I have my installed home packages installed based on the profiles enabled. Also, I have many imports that we'll go through next. #+begin_src nix :tangle ../nix/modules/home/default.nix - { lib, config, pkgs, ... }: - { - imports = [ - ../vars.nix - ./fcitx.nix - ./secrets.nix - ./emacs.nix - ./firefox.nix - ./git.nix - ./hyprland.nix - ./mpv.nix - ./yt-dlp.nix - ./wofi.nix - ./kitty.nix - ./waybar.nix - ./zsh.nix - ./mbsync.nix - ./msmtp.nix - ./gammastep.nix - ./mpd.nix - ./mako.nix - ./user.nix - ]; + { lib, config, pkgs, ... }: + { + imports = [ + ../vars.nix + ./fcitx.nix + ./secrets.nix + ./emacs.nix + ./firefox.nix + ./git.nix + ./hyprland.nix + ./mpv.nix + ./yt-dlp.nix + ./wofi.nix + ./kitty.nix + ./waybar.nix + ./zsh.nix + ./mbsync.nix + ./msmtp.nix + ./gammastep.nix + ./mpd.nix + ./mako.nix + ./user.nix + ./pantalaimon.nix + ]; - options = { - monorepo.profiles = { - enable = lib.mkEnableOption "Enables home manager desktop configuration"; - # Programs - graphics.enable = lib.mkEnableOption "Enables graphical programs for user"; - lang-c.enable = lib.mkEnableOption "Enables C language support"; - lang-sh.enable = lib.mkEnableOption "Enables sh language support"; - lang-rust.enable = lib.mkEnableOption "Enables Rust language support"; - lang-python.enable = lib.mkEnableOption "Enables python language support"; - lang-sol.enable = lib.mkEnableOption "Enables solidity language support"; - lang-openscad.enable = lib.mkEnableOption "Enables openscad language support"; - lang-js.enable = lib.mkEnableOption "Enables javascript language support"; - lang-nix.enable = lib.mkEnableOption "Enables nix language support"; - lang-coq.enable = lib.mkEnableOption "Enables coq language support"; - - crypto.enable = lib.mkEnableOption "Enables various cryptocurrency wallets"; - art.enable = lib.mkEnableOption "Enables various art programs"; - music.enable = lib.mkEnableOption "Enables mpd"; - workstation.enable = lib.mkEnableOption "Enables workstation packages (music production and others)"; - cuda.enable = lib.mkEnableOption "Enables CUDA user package builds"; - hyprland.enable = lib.mkEnableOption "Enables hyprland"; - - email = { - email = lib.mkOption { - type = lib.types.str; - default = "ret2pop@gmail.com"; - example = "john@example.com"; - description = "Email address and imaps/smtps account"; - }; - imapsServer = lib.mkOption { - type = lib.types.str; - default = "imap.gmail.com"; - example = "imap.example.com"; - description = "imaps server address"; - }; - smtpsServer = lib.mkOption { - type = lib.types.str; - default = "smtp.gmail.com"; - example = "smtp.example.com"; - description = "smtp server address"; - }; - enable = lib.mkEnableOption "Enables email"; - }; + options = { + monorepo.profiles = { + enable = lib.mkEnableOption "Enables home manager desktop configuration"; + # Programs + graphics.enable = lib.mkEnableOption "Enables graphical programs for user"; + lang-c.enable = lib.mkEnableOption "Enables C language support"; + lang-sh.enable = lib.mkEnableOption "Enables sh language support"; + lang-rust.enable = lib.mkEnableOption "Enables Rust language support"; + lang-python.enable = lib.mkEnableOption "Enables python language support"; + lang-sol.enable = lib.mkEnableOption "Enables solidity language support"; + lang-openscad.enable = lib.mkEnableOption "Enables openscad language support"; + lang-js.enable = lib.mkEnableOption "Enables javascript language support"; + lang-nix.enable = lib.mkEnableOption "Enables nix language support"; + lang-coq.enable = lib.mkEnableOption "Enables coq language support"; + + crypto.enable = lib.mkEnableOption "Enables various cryptocurrency wallets"; + art.enable = lib.mkEnableOption "Enables various art programs"; + music.enable = lib.mkEnableOption "Enables mpd"; + workstation.enable = lib.mkEnableOption "Enables workstation packages (music production and others)"; + cuda.enable = lib.mkEnableOption "Enables CUDA user package builds"; + hyprland.enable = lib.mkEnableOption "Enables hyprland"; + + email = { + email = lib.mkOption { + type = lib.types.str; + default = "ret2pop@gmail.com"; + example = "john@example.com"; + description = "Email address and imaps/smtps account"; + }; + imapsServer = lib.mkOption { + type = lib.types.str; + default = "imap.gmail.com"; + example = "imap.example.com"; + description = "imaps server address"; + }; + smtpsServer = lib.mkOption { + type = lib.types.str; + default = "smtp.gmail.com"; + example = "smtp.example.com"; + description = "smtp server address"; + }; + enable = lib.mkEnableOption "Enables email"; + }; + }; }; - }; - config = { - home.packages = (if config.monorepo.profiles.email.enable then [ pkgs.mu ] else []) - ++ - (if config.monorepo.profiles.lang-c.enable then (with pkgs; [ - autobuild - clang - gdb - gnumake - bear - clang-tools - ]) else []) - ++ - (if config.monorepo.profiles.lang-js.enable then (with pkgs; [ - nodejs - bun - yarn - typescript - vscode-langservers-extracted - ]) else []) - ++ - (if config.monorepo.profiles.lang-rust.enable then (with pkgs; [ - cargo - rust-analyzer - rustfmt - ]) else []) - ++ - (if config.monorepo.profiles.lang-python.enable then (with pkgs; [ - poetry - python3 - python312Packages.jedi - ]) else []) - ++ - (if config.monorepo.profiles.lang-sol.enable then (with pkgs; [ - solc - ]) else []) - ++ - (if config.monorepo.profiles.lang-openscad.enable then (with pkgs; [ - openscad - openscad-lsp - ]) else []) - ++ - (if config.monorepo.profiles.lang-sh.enable then (with pkgs; [ - bash-language-server - ]) else []) - ++ - (if config.monorepo.profiles.lang-coq.enable then (with pkgs; [ - coq - ]) else []) - ++ - (if config.monorepo.profiles.lang-nix.enable then (with pkgs; [ - nil - nixd - nixfmt-rfc-style - ]) else []) - ++ - (if config.monorepo.profiles.crypto.enable then (with pkgs; [ - bitcoin - electrum - monero-cli - monero-gui - ]) else []) - ++ - (if config.monorepo.profiles.art.enable then (with pkgs; [ - inkscape - krita - ]) else []) - ++ - (if config.monorepo.profiles.music.enable then (with pkgs; [ - mpc-cli - sox - ]) else []) - ++ - (if config.monorepo.profiles.workstation.enable then (with pkgs; [ - alsa-utils - alsa-scarlett-gui - ardour - audacity - blender - fluidsynth - qjackctl - qsynth - qpwgraph - imagemagick - inkscape - kdenlive - kicad - ]) else []); - - monorepo.profiles = { - enable = lib.mkDefault true; - music.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - hyprland.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - email.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - - # Programming - graphics.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - lang-c.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - lang-rust.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - lang-python.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - lang-sol.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - lang-sh.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - lang-openscad.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - lang-js.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - lang-nix.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - lang-coq.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - - crypto.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - art.enable = lib.mkDefault (true && config.monorepo.profiles.enable); - workstation.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + config = { + home.packages = (if config.monorepo.profiles.email.enable then [ pkgs.mu ] else []) + ++ + (if config.monorepo.profiles.lang-c.enable then (with pkgs; [ + autobuild + clang + gdb + gnumake + bear + clang-tools + ]) else []) + ++ + (if config.monorepo.profiles.lang-js.enable then (with pkgs; [ + nodejs + bun + yarn + typescript + vscode-langservers-extracted + ]) else []) + ++ + (if config.monorepo.profiles.lang-rust.enable then (with pkgs; [ + cargo + rust-analyzer + rustfmt + ]) else []) + ++ + (if config.monorepo.profiles.lang-python.enable then (with pkgs; [ + poetry + python3 + python312Packages.jedi + ]) else []) + ++ + (if config.monorepo.profiles.lang-sol.enable then (with pkgs; [ + solc + ]) else []) + ++ + (if config.monorepo.profiles.lang-openscad.enable then (with pkgs; [ + openscad + openscad-lsp + ]) else []) + ++ + (if config.monorepo.profiles.lang-sh.enable then (with pkgs; [ + bash-language-server + ]) else []) + ++ + (if config.monorepo.profiles.lang-coq.enable then (with pkgs; [ + coq + ]) else []) + ++ + (if config.monorepo.profiles.lang-nix.enable then (with pkgs; [ + nil + nixd + nixfmt-rfc-style + ]) else []) + ++ + (if config.monorepo.profiles.crypto.enable then (with pkgs; [ + bitcoin + electrum + monero-cli + monero-gui + ]) else []) + ++ + (if config.monorepo.profiles.art.enable then (with pkgs; [ + inkscape + krita + ]) else []) + ++ + (if config.monorepo.profiles.music.enable then (with pkgs; [ + mpc-cli + sox + ]) else []) + ++ + (if config.monorepo.profiles.workstation.enable then (with pkgs; [ + alsa-utils + alsa-scarlett-gui + ardour + audacity + blender + fluidsynth + qjackctl + qsynth + qpwgraph + imagemagick + inkscape + kdenlive + kicad + ]) else []); + + monorepo.profiles = { + enable = lib.mkDefault true; + music.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + hyprland.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + email.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + + # Programming + graphics.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + lang-c.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + lang-rust.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + lang-python.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + lang-sol.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + lang-sh.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + lang-openscad.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + lang-js.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + lang-nix.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + lang-coq.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + + crypto.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + art.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + workstation.enable = lib.mkDefault (true && config.monorepo.profiles.enable); + }; }; - }; - } + } #+end_src *** Firefox I conditionally enable metamask based on the cryptocurrency option. Everything else here should @@ -2521,6 +2524,28 @@ standard. }; } #+end_src +*** Pantalaimon +This is used with ement as a proxy in order to connect to a remote +matrix server while having encryption. +#+begin_src nix :tangle ../nix/modules/home/pantalaimon.nix + { lib, config, ... }: + { + services.pantalaimon = { + enable = lib.mkDefault config.monorepo.profiles.graphics.enable; + settings = { + Default = { + LogLevel = "Debug"; + SSL = true; + }; + local-matrix = { + Homeserver = "https://social.nullring.xyz"; + ListenAddress = "127.0.0.1"; + ListenPort = "8008"; + }; + }; + }; + } +#+end_src *** User This configuration is the backbone configuration for the default user. It specifies some generally useful packages and something every home should have, as well as some dependencies diff --git a/img/topology.svg b/img/topology.svg new file mode 100644 index 0000000..691ff39 --- /dev/null +++ b/img/topology.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="2735.6" height="1870.8" viewBox="0 0 1367.8 935.4"><style>@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;src:url(data:font/truetype;base64,AAEAAAARAQAABAAQR0RFRhTcBZIAA6YUAAACKkdQT1No6ZpHAAOoQAAAI5ZHU1VCKNvJiAADy9gAAGIUT1MvMhI1C4QAAAGYAAAAYGNtYXBaJFjaAAAdNAAAQmpjdnQgJ1gPGgAAboQAAACoZnBnbWIvA38AAF+gAAAODGdhc3AAAAAQAAOmDAAAAAhnbHlmbBchfQAAimwAAsk8aGVhZBsrYIQAAAEcAAAANmhoZWEANQdXAAABVAAAACRobXR4VPZKDwAAAfgAABs8bG9jYQg0IWQAAG8sAAAbQG1heHAPyBREAAABeAAAACBuYW1llEtOXQADU6gAAAYvcG9zdF1amgQAA1nYAABMM3ByZXCKzZweAABtrAAAANYAAQAAAAJN0xMTPfdfDzz1AA8D6AAAAADf6GZ5AAAAAN/oaIT5Of5wAv0EYAAAAAYAAgABAAAAAAABAAAD/P7UAAACWPk5/1sC/QABAAAAAAAAAAAAAAAAAAAGzwABAAAGzwG4AG4AhwAGAAIClAP2AI0AAAVgDgwAAwABAAQCWAGQAAUAAAKKAlgAAABLAooCWAAAAV4AMgFAAAACAAAJAAAAAAAAoAQC/xIA+fsCAAA8AAAAAEpCAAAAwAAN//8D/P7UAAAD/AEsIAABn9/XAAACJgLaAAAAIAAGAlgAWgJYADICWAAyAlgAMgJYADICWAAyAlgAMgJYADICWAAyAlgAMgJYADICWAAyAlgAMgJYADICWAAyAlgAMgJYADICWAAyAlgAMgJYADICWAAyAlgAMgJYADICWAAyAlgAHgJYAB4CWABdAlgAXAJYAFwCWABcAlgAXAJYAFwCWABcAlgAXAJYAAoCWABcAlgACgJYAGQCWABkAlgAZAJYAGQCWABkAlgAZAJYAGQCWABkAlgAZAJYAGQCWABkAlgAZAJYAGQCWABkAlgAZAJYAGQCWABkAlgAQgJYAGQCWABfAlgAWAJYAFgCWABYAlgAWAJYAFgCWABYAlgAWAJYAF0CWAAKAlgAXQJYAGkCWABpAlgAaQJYAGkCWABpAlgAaQJYAGkCWABpAlgAaQJYAGkCWABpAlgAaQJYAC0CWAAtAlgAXAJYAFwCWACCAlgAdQJYAIICWACCAlgAggJYABQCWABIAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWAJYAFgCWABYAlgAWAJYAFgCWABYAlgAWAJYAFgCWABYAlgAWAJYAFgCWABYAlgAWAJYAFgCWABYAlgAWAJYAFgCWABYAlgAWAJYAFgCWABYAlgAWAJYACMCWAAjAlgAWAJYACgCWABcAlgAWgJYAFACWABdAlgAXQJYAF0CWABdAlgASAJYAEgCWABIAlgASAJYAEgCWABIAlgAXAJYAFoCWAA3AlgANwJYADcCWAA3AlgANwJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWAAyAlgAFAJYABQCWAAUAlgAFAJYABQCWAAoAlgAIwJYACMCWAAjAlgAIwJYACMCWAAjAlgAIwJYACMCWAAjAlgAVQJYAFUCWABVAlgAVQJYABkCWAAZAlgAGQJYABkCWAAZAlgAXQJYAF0CWABYAlgAQwJYAEMCWABDAlgAQwJYAEMCWABDAlgAQwJYAEMCWABDAlgAQwJYAEMCWABDAlgAQwJYAEMCWABDAlgAQwJYAEMCWABDAlgAQwJYAEMCWABDAlgAQwJYAEMCWAAfAlgAHwJYAFwCWABYAlgAWAJYAFgCWABYAlgAWAJYAFgCWABXAlgARgJYAD8CWABaAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAVAJYAFgCWABUAlgAWgJYADcCWABYAlgAWAJYAFgCWABYAlgAWAJYAFgCWABYAlgAXAJYAAACWP/UAlgAVQJYAFUCWABVAlgAVQJYAFUCWABVAlgAVQJYAFUCWABVAlgAVQJYAFUCWABVAlgAVQJYAFUCWABVAlgAVQJYAFUCWABhAlgAYQJYAGcCWAAeAlgAHgJYADICWAAeAlgAHgJYAAoCWAAeAlgAPAJYAFwCWABcAlj/9gJYAFwCWABcAlgAXgJYAFwCWABUAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAVAJYAFQCWABUAlgAWAJYACMCWAAjAlgAVAJYACMCWABcAlgAVwJYAFcCWABwAlgAcAJYAHACWAAjAlgAVQJYAFUCWABVAlgAVQJYAFUCWABVAlgAXAJYAKUCWAAvAlgALwJYAC8CWAAvAlgALwJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYADYCWAAfAlgAHwJYAB8CWAAfAlgAHwJYADICWAA2AlgANgJYADYCWAA2AlgANgJYADYCWAA2AlgANgJYADYCWABaAlgAWgJYAFoCWABaAlgAXAJYAEECWABBAlgAQQJYAEECWABBAlgAQQJYACMCWAAjAlgAIwJYACMCWAAjAlgAMgJYADICWAAyAlgAMgJYADICWAAyAlgAMgJYAFoCWABaAlgAWgJY//sCWP/7Alj/+wJY//sCWP/7Alj/+wJYADwCWAAiAlgAIgJYACICWAAiAlgAIgJYAGQCWABkAlgAZAJYAEECWABGAlgARgJYAEYCWABGAlgANgJYADYCWAA2AlgANgJYADYCWAA2AlgANgJYADYCWAA2AlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYACMCWABBAlgANwJYAK8CWAC5AlgAMgJYAF4CWABdAlgAggJYAIICWACCAlgAGQJYAGQCWABkAlgABgJYADQCWABaAlgAWgJYAFwCWABcAlgAFAJYAEgCWABdAlgAWAJYAF4CWABcAlgAXAJYADcCWAAyAlgAMgJYAC4CWAAoAlgASwJYAF4CWAA8AlgAPAJYAF4CWABeAlj/+wJYADwCWP/7AlgANQJYAEgCWABcAlgATgJYAGkCWABpAlgALQJYAAACWAA8AlgAOAJYAAACWAAeAlgAUQJYAFkCWAAjAlgAIwJYAEECWABfAlgAVAJYAAYCWAA0AlgAWgJYAFgCWABaAlgASwJYAAoCWABdAlgAXQJYAFgCWAAyAlgAMgJYAAACWABDAlgAVgJYAFwCWACHAlgAhwJYAIICWAAbAlgAVAJYAFQCWAAPAlgARgJYAFwCWABcAlgAZwJYAGcCWAAZAlgASAJYAFwCWABUAlgAXAJYAFwCWABYAlgANwJYADYCWAA2AlgAMAJYADICWABOAlgAXAJYADwCWAA8AlgAXAJYAGkCWAAZAlgAPAJYAAUCWAA+AlgAVQJYAFcCWABQAlgAVQJYAFUCWABVAlgAAAJYADwCWAA/AlgAAAJYADICWABcAlgAWwJYADwCWAA8AlgASQJYAGQCWABUAlgADwJYAEYCWABcAlgAVAJYAFoCWABOAlgAWgJYAAoCWABkAlgAZAJYAGQCWAA2AlgANgJYAAACWAAyAlgAXQJYAIICWAAyAlgAZAJYAFUCWABdAlgAWAJYAGkCWABcAlgAMgJYAEgCWABaAlgAUAJYAFgCWABeAlgAXAJYAEsCWAA3AlgAIwJYAC4CWAAoAlgANgJYADICWAAKAlj/jQJY/40CWP+NAlj/sAJY/4MCWP+wAlgAaQJYACMCWABcAlgAXQJYAF0CWABVAlgAXAJYADwCWABUAlgASwJYAGkCWABcAlgAWAJYADcCWABnAlgAMgJYAF0CWAA2AlgAVQJYAFQCWAAZAlgAXgJYAFoCWABVAlgALwJYAFoCWAA2AlgAMgJYADYCWAA2AlgANwJYADcCWAA3AlgAWgJYAFoCWABaAlgAVAJYADYCWABVAlgASwJYAFwCWABcAlgAMAJYAA8CWABkAlgAGgJYAC8CWAAAAlgALgJYAEsCWABKAlgASwJYAFUCWABaAlgASgJYAEsCWABQAlgAGwJYAEsCWABkAlgAMgJYAF8CWABKAlgASwJYAEoCWABLAlgAQQJYADICWABKAlgALgJYAAACWAAeAlgAFAJYAEYCWAA2AlgASwJYAEsCWABBAlgARgJYAEECWABBAlgASwJYAEECWABLAlgASwJYADICWAAPAlgASwJYAEYCWABLAlgAQQJYAC0CWABLAlgANwJYAFACWAAtAlgAAAJYAB4CWAAtAlgARgJYAFACWABaAlgATAJYAEYCWABGAlgASwJYAEACWABSAlgAQgJYAEACWABQAlgAWAJYAFUCWABJAlgAQgJYAFUCWACJAlgAlgJYAJMCWACLAlgAjwJYAI0CWACGAlgAlAJYAIcCWACLAlgAiQJYAJYCWACTAlgAiwJYAI8CWACNAlgAhgJYAJQCWACHAlgAiwJYAIkCWACWAlgAkwJYAIsCWACPAlgAjQJYAIYCWACUAlgAhwJYAIsCWACJAlgAlgJYAJMCWACLAlgAjwJYAI0CWACGAlgAlAJYAIcCWACLAlgAmgJYAJACWACEAlgAmgJYAJACWACEAlgAmgJYAJACWACEAlgAmgJYAJACWACEAlgAhwJYAIcCWACHAlgAhwJYAIoCWACKAlgAigJYAIoCWAAFAlgABQJYAAUCWAAFAlgAiQJYAIkCWACJAlgAkQJYAEwCWADaAlgA0gJYANkCWADNAlgAPAJYAOECWADhAlgAggJYAHMCWADaAlgAtAJYACQCWADNAlgAlgJYAH0CWABpAlgAhwJYACMCWADaAlj/9gJYAEsCWABLAlgACgJYANkAAP8aAAD/eQJYALkCWABzAlgASwJYAF8CWADNAlgAlgJYAEsCWABfAlgAbgJYAJYCWABpAlgAkwJYAM0CWADNAlgAhwJYAJYCWACWAlgAeAJYAKACWABzAlgAjAJYAIwCWABQAlgAAAJYAIwCWAA8AlgA3AJYAGkCWABpAlgAaQJYANICWADcAlgA0gJYAGkCWAAeAlgAJQJYAJMCWACTAlgAFAJYAI8CWAD5Alj+NAJY+9wCWPlNAlj7pgJY/lwCWP39Alj7pQJY/f0CWPulAlj+EQJY/gwCWPl/Alj5fwJY/AkCWP5DAlj+NAJY/rsCWP6OAlj+PgJY/tQCWPyQAlj8cQJY/oICWP5cAlj+0QJY/MkCWPxEAlj+swJY/CwCWP5SAlj+gQJY/oECWP7FAlj8vQJY/sUCWPxoAlj9+AJY+6UCWP6QAlj+kAJY/lwCWPv6Alj+UgJY+5wCWP3lAlj9zAJY/csCWP3LAlj9ywJY/csCWP3LAlj9ywJY/ekCWPuRAlj5OQJY/csCWP3LAlj7cwJY/fMCWPubAlj+EQJY+6ACWP4WAlj+PgJY+/oCWPwTAlj+ZgJY/mYCWPwiAlj95AJY/lwCWPwOAlgAfQJYAGQCWACgAlgAcwJYAC4CWABpAlgA2gJYAM0CWAAAAlgAAAJYAAACWAAAAlgAAAAAAAACWABdAlgAWAJYACsCWABIAlgAWgJYABMCWAAAAlgAMgJYAB4CWABLAlgALQJYACMCWABYAlgASAJYAEYCWAAdAlgAngJYAAACWADaAlgAAAJYAJsCWABGAlgAKAJYAP8CWAAbAlgAnwJYAP8CWAAFAlgAfQJYAIwCWAAjAlj/9gJYACMCWAClAlgA5gJYAHgCWACXAlgAVQJYAC0CWAAAAlgAUAJYADICWABQAlgAIwJY/7ACWAAKAlgA/wJYAC0CWAD/AlgAAAJYAP8CWAD/AlgA/wJYAEECWP/2AlgAQQJYAAACWAAAAlgAFAJYAEYCWP/2AlgAKwJYACsCWAAtAlgAKwJYACsCWABGAlgAIwJYAB4CWAAtAlgAVQJYAEYCWAAjAlgAIwJYAC0CWABVAlgAVQJYAFUCWABVAlgAVQJYACMCWAAjAlgAHgJYAEECWACMAlgAaQJYAGQCWABVAlgAVQJYAFUCWABVAlgAVQJYAFUCWABBAlgARgJYAGQCWABGAlgAUAJYACMCWP/2AlgAPAJYADwCWAArAlgAKwJYAAACWAAyAlgAKAJYADcCWAAeAlgAWgJYAF0CWACbAlgA/wJYAP8CWAD/AlgA/wJYAC0CWAAtAlgADgJY//sCWAB4AlgAoAJYADcCWAA3AlgANwJYA |