aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorPreston Pan <ret2pop@gmail.com>2025-02-11 04:06:11 -0800
committerPreston Pan <ret2pop@gmail.com>2025-02-11 04:06:11 -0800
commitf10285de4d0b5c69d026e948a9d9d7278a2ffb64 (patch)
treedc1138970d2dae203aaeede6e036c637fbf3d2a6 /config
parentbe4a011bac9b2212d81b572c3bb9b80f8c326ab0 (diff)
add resume
Diffstat (limited to 'config')
-rw-r--r--config/emacs.el10
-rw-r--r--config/emacs.org10
-rw-r--r--config/nix.org393
3 files changed, 219 insertions, 194 deletions
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