diff --git a/hosts/deertopia/configuration.nix b/hosts/deertopia/configuration.nix index 8ce69b3..d541c0f 100644 --- a/hosts/deertopia/configuration.nix +++ b/hosts/deertopia/configuration.nix @@ -62,6 +62,7 @@ # mullvad.enable = true; # umurmur.enable = true; murmur.enable = true; + anki.enable = true; servarr = { enable = true; prowlarr.enable = true; diff --git a/modules/home/users/crumb/emacs.nix b/modules/home/users/crumb/emacs.nix index 7fdb372..fbcc4ec 100644 --- a/modules/home/users/crumb/emacs.nix +++ b/modules/home/users/crumb/emacs.nix @@ -38,6 +38,32 @@ in { ]); my-tex = pkgs.texlive.combine { + diagrams = pkgs.stdenvNoCC.mkDerivation (final: { + pname = "diagrams-latex"; + version = "0.8.0.6-r3"; + src = pkgs.fetchFromGitHub { + owner = "diagrams"; + repo = "diagrams-builder"; + rev = "v${final.version}"; + hash = "sha256-/6vAxVWcwsPHh2im12zAD08b9VnsvOUXz/5mYsY7pK0="; + }; + nativeBuildInputs = [ pkgs.texlive.combined.scheme-small ]; + passthru = { + pkgs = [ final.finalPackage ]; + tlDeps = with pkgs.texlive; [ + latex + moreverb + ]; + tlType = "run"; + }; + installPhase = '' + runHook preInstall + dir="$out/tex/latex/diagrams-latex" + mkdir -p "$dir" + mv latex/diagrams-latex.sty "$dir" + runHook postInstall + ''; + }); inherit (pkgs.texlive) scheme-basic # Set of common packages. fontspec @@ -56,6 +82,7 @@ in { collection-fontsrecommended # Essential fonts. etoolbox # For Org-mode exports. siunitx # Typesetting units. + moderncv # Tufte-latex and its stupid fucking dependencies. tufte-latex xkeyval diff --git a/modules/home/users/crumb/emacs/lib/syd-prelude.el b/modules/home/users/crumb/emacs/lib/syd-prelude.el index e1a82c4..585a533 100644 --- a/modules/home/users/crumb/emacs/lib/syd-prelude.el +++ b/modules/home/users/crumb/emacs/lib/syd-prelude.el @@ -177,4 +177,7 @@ form." (user-error (concat "Ignoring a call to `lsp-install-server'" " — tell the caller to use Nix!"))) +(defun syd-str (sep &rest strs) + (mapconcat #'identity strs sep)) + (provide 'syd-prelude) diff --git a/modules/home/users/crumb/emacs/projects b/modules/home/users/crumb/emacs/projects new file mode 100644 index 0000000..f9317a1 --- /dev/null +++ b/modules/home/users/crumb/emacs/projects @@ -0,0 +1,3 @@ +;;; -*- lisp-data -*- +(("/persist/dots/") + ("/persist/dots/modules/home/users/crumb/emacs/elpa/org-mode/")) diff --git a/modules/home/users/crumb/emacs/transient/history.el b/modules/home/users/crumb/emacs/transient/history.el new file mode 100644 index 0000000..90b5a84 --- /dev/null +++ b/modules/home/users/crumb/emacs/transient/history.el @@ -0,0 +1 @@ +nil \ No newline at end of file diff --git a/modules/home/users/msyds/emacs/bookmarks b/modules/home/users/msyds/emacs/bookmarks new file mode 100644 index 0000000..95ae9a6 --- /dev/null +++ b/modules/home/users/msyds/emacs/bookmarks @@ -0,0 +1,11 @@ +;;;; Emacs Bookmark Format Version 1;;;; -*- coding: utf-8-emacs; mode: lisp-data -*- +;;; This format is meant to be slightly human-readable; +;;; nevertheless, you probably don't want to edit it. +;;; -*- End Of Bookmark File Format Version Stamp -*- +(("org-capture-last-stored" + (filename . "~/org/20251016074609-hangul_flashcard_deck.org") + (front-context-string . "\n* ㅏ\n\n- 아\n- =[ɐ]") + (rear-context-string . " flashcard deck\n") + (position . 97) + (last-modified 26864 63527 795046 394000)) +) diff --git a/modules/home/users/msyds/emacs/init.el b/modules/home/users/msyds/emacs/init.el index 7568c1b..6523130 100644 --- a/modules/home/users/msyds/emacs/init.el +++ b/modules/home/users/msyds/emacs/init.el @@ -38,6 +38,7 @@ syd/org/superstar syd/org/noter syd/org/tufte-latex + syd/org/srs syd/smartparens syd/snippets syd/ptemplate diff --git a/modules/home/users/msyds/emacs/lisp/syd/org/latex.el b/modules/home/users/msyds/emacs/lisp/syd/org/latex.el index 7b3cb32..4e9b34f 100644 --- a/modules/home/users/msyds/emacs/lisp/syd/org/latex.el +++ b/modules/home/users/msyds/emacs/lisp/syd/org/latex.el @@ -25,6 +25,9 @@ "L r" #'syd-org-latex-preview-recompile-preamble "L c" #'org-latex-preview-clear-cache)) +(defun syd-str (sep &rest strs) + (mapconcat #'identity strs sep)) + (use-package org-latex-preview :defer t :straight nil @@ -35,8 +38,32 @@ (org-latex-preview-live-debounce 0.25) ;; Increase size of previews. (org-latex-preview-appearance-options - (plist-put org-latex-preview-appearance-options :zoom 1.4))) - :hook (org-mode . org-latex-preview-mode)) + (plist-put org-latex-preview-appearance-options :zoom 1.2))) + :hook (org-mode . org-latex-preview-mode) + :config + (add-to-list + 'org-latex-preview-process-alist + `(dvisvgm + :programs ("latex" "dvisvgm") :description "dvi > svg" :message + "you need to install the programs: latex and dvisvgm." + :image-input-type "dvi" :image-output-type "svg" :latex-compiler + ("%l -interaction nonstopmode -output-directory %o %f") + :latex-precompiler + ("%l -output-directory %o -ini -jobname=%b \"&%L\" mylatexformat.ltx %f") + :image-converter + (,(syd-str + " " + "dvisvgm" + "--page=1-" + "--optimize" + "--clipjoin" + "--relative" + "--no-fonts" + "-v3" + "--message='processing page {?pageno}: output written to {?svgpath}'" + "--bbox=min" + "-o %B-%%9p.svg" + "%f"))))) (use-package org-contrib) diff --git a/modules/home/users/msyds/emacs/lisp/syd/org/srs.el b/modules/home/users/msyds/emacs/lisp/syd/org/srs.el new file mode 100644 index 0000000..ce540a7 --- /dev/null +++ b/modules/home/users/msyds/emacs/lisp/syd/org/srs.el @@ -0,0 +1,23 @@ +;; -*- lexical-binding: t; -*- + +(require 'syd/base) +(require 'syd/org) + +(use-package org-srs + :defer t + :hook (org-mode . org-srs-embed-overlay-mode) + :bind (:map org-mode-map + ("" . org-srs-review-rate-easy) + ("" . org-srs-review-rate-good) + ("" . org-srs-review-rate-hard) + ("" . org-srs-review-rate-again))) + +(use-package org-srs + :when (eq system-type 'android) + :defer t + :custom + (org-srs-item-confirm #'org-srs-item-confirm-command) + :config + (org-srs-mouse-mode +1)) + +(provide 'syd/org/srs) diff --git a/modules/home/users/msyds/syncthing.nix b/modules/home/users/msyds/syncthing.nix index 3e408fd..4e35118 100644 --- a/modules/home/users/msyds/syncthing.nix +++ b/modules/home/users/msyds/syncthing.nix @@ -22,14 +22,6 @@ in { ]; ignorePerms = true; }; - "Music" = { - path = "~/Music"; - devices = [ - "deertopia" - "sydpc" - ]; - ignorePerms = true; - }; }; }; }; diff --git a/modules/nixos/deertopia/anki.nix b/modules/nixos/deertopia/anki.nix new file mode 100644 index 0000000..92801d3 --- /dev/null +++ b/modules/nixos/deertopia/anki.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.sydnix.deertopia.anki; +in { + options.sydnix.deertopia.anki = { + enable = lib.mkEnableOption "Anki"; + }; + + config = lib.mkIf cfg.enable { + sydnix.impermanence.directories = [ + "/var/lib/private/anki-sync-server" + ]; + + sydnix.sops.secrets.anki-password.mode = "0600"; + + sydnix.deertopia.nginx.vhosts."anki" = { + directory = null; + vhost = { + forceSSL = true; + enableACME = true; + locations."/".extraConfig = + let port = builtins.toString config.services.anki-sync-server.port; + in '' + proxy_pass http://127.0.0.1:${port}/; + ''; + }; + }; + + services.anki-sync-server = { + enable = true; + address = "0.0.0.0"; + openFirewall = true; + users = [ + { + username = "msyds"; + passwordFile = config.sops.secrets.anki-password.path; + } + ]; + }; + }; +} diff --git a/secrets.yaml b/secrets.yaml index 5bae312..3b71c1c 100644 --- a/secrets.yaml +++ b/secrets.yaml @@ -26,6 +26,7 @@ sssd-environment: ENC[AES256_GCM,data:wDRBM5m5NgFTJorxM0j2TKbFqJW6LHh3or4vlyjdi0 #ENC[AES256_GCM,data:sjMO,iv:SKqEIa7IPojeJ+3JNf1GnHqx/K07ct5N2MfTNSlI4LY=,tag:ncdddnvvVJcjXzo5a5sQow==,type:comment] #ENC[AES256_GCM,data:XDr7C15PJq2MyCXWY5J3PtJZF34ipQaAk1qoXCyKTTiSbPbq2RxnyyEv,iv:e2a7+AQzgCfCyKBff11B92ZP92/8pQ61qimVt91KlNA=,tag:jiN6x4AkIMr+WljYnSsLiQ==,type:comment] webdav-htpasswd: ENC[AES256_GCM,data:1rP5r5pz0OlHj4V6M4sP7FP6wW5eFQUZs/60DRPqYrGc3eK73YYnCN3pYHtnf05pYnoxzYQpe9qLLOwZdzfX4IQRXci2Q4nDk3FtXDCOEAhWxCcbFF4d8ahfMPNzp+GtrtohulsTL38JOkKDLQy0Lar/pXoY5Q7oUw6Aj6wYXvVSE+IjfQo=,iv:YgEFiDlut5Cf/xJhQ77ZHIDcMgO+C8Bk/N3WB/g8dlE=,tag:pqw2lb0myuEyI40XjPkzaA==,type:str] +anki-password: ENC[AES256_GCM,data:plSKMTeeilKt6weAnzw/jMo65A==,iv:lzuPUt1+2Iwi9sHbaFj0OuBLd1p+Do2N5aCYXd45MFQ=,tag:WIABFp1T6NuIGpqqQFHmrg==,type:str] sops: age: - recipient: age10fqh0td67alzpyjyhdex5ncj9thvaty506r0t63vs2nz4ldafgaqadl8mg @@ -46,7 +47,7 @@ sops: TXFLY2l0UHJ3Z0NGZjVpbTQ2UC8yaTQKA7wTmW9Ha6T2KmCr/nkXdizgv8+V6SAp ZhDO+uDQ1evIh2wLWMOXNJ3d/zplLCOTzR2xkqBIUp5V7MXj45RUIA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-09-19T04:26:37Z" - mac: ENC[AES256_GCM,data:z3+56JUmKGTdu16XlADls/UbfrhI8MjC5L197VuIPhDQjVb2sNK1/wwAk1GwmOizyVJEwgAvjmCW5VDr5wEMb30m8LtLz85gfve/tJg27yHx4uAWpBlUWlYzUP3bfqAkhW7452Jeb0IOQfe+QR2c4i68PVe6ib5QA/lhQyUI1n0=,iv:ulVZmZQ1MHps9XXNLm29uVKx88EwMdP7LyWgEqiOCd8=,tag:iQe4S9SyVyA63BvzVSegJg==,type:str] + lastmodified: "2025-10-17T00:58:56Z" + mac: ENC[AES256_GCM,data:hWOPPIYfSH5RQZrF+cb2zIuAXk0pNSQzsxvDbTxVvU/gMZlWACUJmwvoLUI0e8OgGkYTeO57NmGRlanYCb+DNJxwaQdT3Gx3IckmF/hcgQnj4D2m3D1LwjbuJXHwLzMibjE7D7J0dd4b3mGjvyzmcTyycTIQJunkQmHeKDFUwF0=,iv:2VadQjWxloXQxAWn5myCTlpbMiczDnVS9J3fdG9o+PQ=,tag:ye53IU1S97omktedjXBaIw==,type:str] unencrypted_suffix: _unencrypted version: 3.10.2 diff --git a/users/msyds/default.nix b/users/msyds/default.nix index d5baaf2..9858d10 100644 --- a/users/msyds/default.nix +++ b/users/msyds/default.nix @@ -36,7 +36,7 @@ users.msyds = { emacs.enable = true; impermanence.enable = true; - syncthing.enable = true; + syncthing.enable = false; }; };