Compare commits

...

8 Commits

Author SHA1 Message Date
Ryan Rix 6446bca846 fetch agenda files from localapi 2024-03-20 15:03:55 -07:00
Ryan Rix 9cf8e20b5d swap to envrc and reintegrate ARROYO_DIRENV_DIR 2024-03-20 15:03:28 -07:00
Ryan Rix 4129d72c8d swap to helpful for help functions 2024-03-20 11:12:49 -07:00
Ryan Rix 7c62881dac add robots.txt to gitea 2024-01-31 16:23:22 -08:00
Ryan Rix fe810b51c9 hide async-forever commands with save-window-excursion 2024-01-31 16:23:00 -08:00
Ryan Rix fb925e7619 update my filter lists 2024-01-31 15:50:00 -08:00
Ryan Rix b6388b4302 update version pins 2024-01-31 15:49:44 -08:00
Ryan Rix 8efc171edc [zfs] add script that makes filesystem snapshot when you activate a new nixos 2024-01-31 15:48:23 -08:00
8 changed files with 253 additions and 189 deletions

View File

@ -22,6 +22,7 @@ In [[id:cce/cce][The Complete Computing Environment]] there are a number of proc
#+begin_src emacs-lisp
(defun cce/async-forever (command buffer-name &optional seconds)
"Run a command in an async buffer forever"
(async-shell-command (concat "while true; do " command "; sleep " (prin1-to-string (or seconds 5)) "; done")
(get-buffer-create buffer-name)))
(save-window-excursion
(async-shell-command (concat "while true; do " command "; sleep " (prin1-to-string (or seconds 5)) "; done")
(get-buffer-create buffer-name))))
#+end_src

View File

@ -3,7 +3,7 @@
:ROAM_REFS: https://github.com/direnv/direnv/wiki/Nix https://direnv.net/
:END:
#+TITLE: direnv
#+filetags: :CCE:
#+filetags: :Project:CCE:
#+ARCOLOGY_KEY: cce/direnv
#+PROPERTY: header-args :mkdirp yes
@ -31,14 +31,20 @@ Those who have installed and are using the Nix package manager often use its com
Anyways it has an [[id:cce/emacs][Emacs]] package which works really well and refreshes the process environment when swapping buffers.
#+ARROYO_MODULE_WANTED: cce/run_hooks_after_init.org
#+begin_src emacs-lisp
(use-package direnv
:config
(direnv-mode))
;; (use-package direnv
;; :config
;; (direnv-mode))
(use-package envrc
:hook
(after-cce . envrc-global-mode))
(with-eval-after-load 'evil-leader
(evil-leader/set-key "e" #'envrc-command-map))
(provide 'cce/direnv)
#+end_src
#+ARROYO_HOME_MODULE: hm/direnv.nix
#+begin_src nix :tangle ~/arroyo-nix/hm/direnv.nix
{pkgs, ...}:
@ -77,23 +83,28 @@ cat ~/org/arcology-fastapi/.envrc
One of the issues of doing [[id:cce/literate_programming][Literate Programming with Org Babel]] is that if I work inside of my [[id:cce/org-roam][org-roam]] directory the direnv stuff won't map to the tangled directory. If I add a =ARROYO_DIRENV_DIR= file property to a document it will use the directory environment from that directory instead of the org-roam directory:
#+begin_src emacs-lisp :results none
(with-eval-after-load "arroyo-db"
(add-to-list 'arroyo-db-keywords "ARROYO_DIRENV_DIR")
(defun direnv--directory ()
(with-eval-after-load "arcology-localapi-commands"
(defun envrc--find-env-dir ()
"Return the relevant directory for the current buffer, or nil."
(let* ((buffer (or (buffer-base-buffer) (current-buffer)))
(mode (buffer-local-value 'major-mode buffer))
(file-name (buffer-file-name buffer))
(arroyo-maybe (when (and file-name
(equal (file-name-extension file-name) "org"))
(car
(arroyo-db-get "ARROYO_DIRENV_DIR" (expand-file-name file-name)))))
(thread-last
file-name
(arcology-file-metadata)
(alist-get 'page)
(alist-get 'keywords)
(alist-get 'ARROYO_DIRENV_DIR))))
(buffer-directory
(cond (arroyo-maybe
arroyo-maybe)
(file-name
(file-name-directory file-name))
((apply #'direnv--provided-mode-derived-p mode direnv-non-file-modes)
default-directory))))
(if arroyo-maybe
(expand-file-name arroyo-maybe)
arroyo-maybe
(locate-dominating-file default-directory #'envrc--env-dir-p))))
buffer-directory)))
#+end_src
** NEXT make this work with new [[id:arcology/django/interfaces][Interfacing with the Arcology]]
thinking about a localhost query API too...

View File

@ -94,13 +94,10 @@ a query against the [[id:cce/org-roam][org-roam]] =tags= table is unfortunately
(defun cce/org-roam-files-with-tags (&optional tags)
"Return a list of note files containing Project tag."
(let ((tags (or tags '("Project" "Agendize"))))
(->> (org-roam-db-query
[:select file :from nodes
:join tags :on (= node_id id)
:where (in tag $v1)]
(apply #'vector tags))
(delete-dups)
(-map #'car))))
(thread-last
tags
(mapcar #'arcology-files-by-tag)
(apply #'append))))
#+end_src
and an advice function to update the DB before showing the agenda:

View File

@ -10,7 +10,7 @@
#+AUTO_TANGLE: t
#+begin_src nix :tangle ~/arroyo-nix/nixos/gitea.nix
{ config, ... }:
{ pkgs, config, ... }:
let cfg = config.services.gitea;
in {
@ -66,6 +66,17 @@ in {
];
services.nginx.virtualHosts."code.rix.si" = {
locations."=/robots.txt" = {
alias = pkgs.writeTextFile {
name = "gitea-robots-txt";
text = ''
User-agent: *
Disallow: /upstreams
Disallow: /compost
Disallow: /rrix/*/commit
'';
};
};
locations."/" = {
proxyPass = "http://${cfg.settings.server.HTTP_ADDRESS}:${toString cfg.settings.server.HTTP_PORT}";
extraConfig = ''

View File

@ -205,146 +205,155 @@ There's probably more of these than this.
I want to filter this in to "marketing i was tricked in to subscribing to" and "things I actually care about"...
#+NAME: newsletters-lists
| Predicate | Value | Destination | Comment |
|-----------+-----------------------------------+-------------+---------------------|
| subject | account statement is available | newsletters | |
| sender | aclunc.org | newsletters | |
| sender | aclu.org | newsletters | |
| sender | @acm.org | newsletters | |
| sender | @ACM.ORG | newsletters | |
| sender | action@eff.org | newsletters | |
| sender | ajatt.com | newsletters | |
| sender | b2contact@backblaze.com | newsletters | |
| sender | bandcamp.com | newsletters | |
| sender | @bandsintown.com | newsletters | |
| sender | @basicrights.org | newsletters | |
| sender | @blockpartyapp.com | newsletters | |
| sender | ciida@arboretumfoundation.org | newsletters | |
| sender | comp.compilers@googlegroups.com | newsletters | |
| sender | contact@oregonfoodbank.org | newsletters | |
| sender | corey@lastweekinaws.com | newsletters | |
| sender | crowdsupply.com | newsletters | |
| sender | dataairlines.net | newsletters | |
| sender | dbweekly@cooperpress.com | newsletters | |
| sender | dieselsweeties.com | newsletters | |
| sender | @discogs.com | newsletters | |
| sender | discourse.nixos.org | newsletters | |
| sender | dnalounge.com | newsletters | |
| sender | donate@wikimedia.org | newsletters | |
| sender | dsz@dasharez0ne.com | newsletters | |
| sender | @dustri.al | newsletters | |
| sender | ebay@ebay.com | newsletters | |
| sender | e.chase.com | newsletters | |
| sender | editor@eff.org | newsletters | |
| sender | @e.lego.com | newsletters | |
| sender | email.patagonia.com | newsletters | |
| sender | email.seattletimes.com | newsletters | |
| sender | @e.peakdesign.com | newsletters | |
| sender | eric@lispcast.com | newsletters | |
| sender | ericriveracooks@gmail.com | newsletters | |
| sender | @eugenearthouse.com | newsletters | |
| sender | evening-edition@muledesign.com | newsletters | |
| sender | @extrafoc.us | newsletters | |
| sender | ezine@apogeerockets.com | newsletters | |
| sender | floatingleaves.com | newsletters | |
| sender | @fortelabs.co | newsletters | |
| sender | @friendsoffamilyfarmers.org | newsletters | |
| sender | @gaffta.org | newsletters | |
| sender | gareth@morethanseven.net | newsletters | |
| sender | @geekli.st | newsletters | |
| sender | getpocket.com | newsletters | |
| sender | gridsagegames@gmail.com | newsletters | |
| sender | groupsupdates@yahoo.com | newsletters | |
| sender | hello@sqlfordevs.com | newsletters | |
| sender | @heroku.com | newsletters | |
| sender | @humblebundle.com | newsletters | |
| sender | humblebundle.com | newsletters | |
| sender | iam8bit | newsletters | |
| sender | i.drop.com | newsletters | |
| sender | @ilovewasting.ink | newsletters | |
| sender | info@ridewithgps.com | newsletters | |
| sender | instacartemail.com | newsletters | |
| subject | is now available on Steam! | newsletters | |
| sender | jason@eff.org | newsletters | |
| sender | @katmaiconservancy.org | newsletters | |
| sender | kitsch-bent.com | newsletters | |
| sender | lex@sreweekly.com | newsletters | |
| sender | livingcomputers.org | newsletters | |
| sender | @longnow.org | newsletters | |
| sender | @lwn.net | newsletters | |
| sender | @mail.frame.work | newsletters | |
| sender | @mail.rally.tv | newsletters | |
| sender | mail.zillow.com | newsletters | |
| sender | marketplace.amazon.com | newsletters | |
| sender | marketplace-messages@amazon.com | newsletters | |
| sender | messages.squareup.com | newsletters | |
| sender | @monasticacademy.org | newsletters | |
| sender | motortrend.com | newsletters | |
| sender | Mozilla@e.mozilla.org | newsletters | |
| sender | nature.org | newsletters | |
| sender | nepalteasllc.com | newsletters | |
| sender | @newegg.com | newsletters | |
| sender | news@citylight.seattle.gov | newsletters | |
| sender | newscomms.squareup.com | newsletters | |
| sender | news-googleplay@google.com | newsletters | |
| sender | newsletters.vice.com | newsletters | |
| sender | news@sender.abebooks.com | newsletters | |
| sender | news@wrcplus.sportmailer.com | newsletters | |
| sender | noreply-googleplay@google.com | newsletters | |
| sender | noreply@hirefrederick.com | newsletters | |
| sender | no-reply@kickstarter.com | newsletters | |
| sender | noreply@messaging.squareup.com | newsletters | |
| sender | noreply@musicbrainz.org | newsletters | |
| sender | no-reply@sellfymail.com | newsletters | |
| sender | @notices.rei.com | newsletters | |
| sender | office@stillsitting.com | newsletters | |
| sender | organizing@eff.org | newsletters | |
| sender | @patreon.com | newsletters | |
| sender | peacevans.com | newsletters | |
| sender | pebble.com | newsletters | |
| sender | peterc.org | newsletters | |
| sender | peter@webopsweekly.com | newsletters | |
| sender | phxart.org | newsletters | |
| sender | picks@eventbrite.com | newsletters | |
| sender | pono@sfconservancy.org | newsletters | |
| sender | @portlandgp.com | newsletters | |
| sender | postmaster@itch.io | newsletters | |
| sender | postmaster@updates.itch.io | newsletters | |
| sender | press@newsletter.fastmailteam.com | newsletters | |
| sender | privacyxfn@transcend.io | newsletters | |
| sender | purelyfunctional.tv | newsletters | |
| sender | pythonweekly.com | newsletters | |
| sender | response.hcn.org | newsletters | |
| sender | retromodding.com | newsletters | |
| sender | riseofprivacytech.com | newsletters | |
| sender | rumi.tsuchihashi | newsletters | |
| sender | sfmarketing.twitch.tv | newsletters | |
| sender | shop.kobo.com | newsletters | |
| sender | simplelooseleaf.com | newsletters | |
| subject | Steam wishlist are on sale | newsletters | |
| subject | Steam wishlist is for sale | newsletters | |
| subject | Steam wishlist is on sale | newsletters | |
| sender | store-news@amazon.com | newsletters | |
| sender | Storesteampowered.com | newsletters | |
| sender | substack.com | newsletters | |
| sender | support@linode.com | newsletters | |
| sender | theinformation.com | newsletters | |
| sender | thisweek@indiewebcamp.com | newsletters | |
| sender | this-week-in-rust@webstream.io | newsletters | |
| sender | ticketmaster.com | newsletters | |
| sender | tindie.com | newsletters | |
| sender | @tokyoflash.com | newsletters | |
| sender | transitriders.org | newsletters | |
| sender | translifeline.org | newsletters | |
| sender | twir@rust-lang.org | newsletters | |
| sender | Uber Eats | newsletters | |
| subject | 📢 Update | newsletters | indiegogo campaigns |
| sender | @update.strava.com | newsletters | |
| sender | visakanv@creators.gumroad.com | newsletters | |
| sender | @warprecords.com | newsletters | |
| sender | @white2tea.com | newsletters | |
| sender | workingwa.org | newsletters | |
| sender | youngmountaintea.com | newsletters | |
| Predicate | Value | Destination | Comment |
|-------------+-----------------------------------+-------------+---------------------|
| subject | account statement is available | newsletters | |
| sender | aclunc.org | newsletters | |
| sender | aclu.org | newsletters | |
| sender | @acm.org | newsletters | |
| sender | @ACM.ORG | newsletters | |
| sender | action@eff.org | newsletters | |
| sender | ajatt.com | newsletters | |
| sender | b2contact@backblaze.com | newsletters | |
| sender | bandcamp.com | newsletters | |
| sender | @bandsintown.com | newsletters | |
| sender | @basicrights.org | newsletters | |
| sender | @blockpartyapp.com | newsletters | |
| sender | .org | newsletters | |
| sender | comp.compilers@googlegroups.com | newsletters | |
| sender | contact@oregonfoodbank.org | newsletters | |
| sender | corey@lastweekinaws.com | newsletters | |
| sender | crowdsupply.com | newsletters | |
| sender | dataairlines.net | newsletters | |
| sender | dbweekly@cooperpress.com | newsletters | |
| sender | dieselsweeties.com | newsletters | |
| sender | @discogs.com | newsletters | |
| sender | discourse.nixos.org | newsletters | |
| sender | dnalounge.com | newsletters | |
| sender | donate@wikimedia.org | newsletters | |
| sender | dsz@dasharez0ne.com | newsletters | |
| sender | @dustri.al | newsletters | |
| sender | ebay@ebay.com | newsletters | |
| sender | e.chase.com | newsletters | |
| sender | editor@eff.org | newsletters | |
| sender | @e.lego.com | newsletters | |
| sender | email.patagonia.com | newsletters | |
| sender | email.seattletimes.com | newsletters | |
| sender | @e.peakdesign.com | newsletters | |
| sender | eric@lispcast.com | newsletters | |
| sender | ericriveracooks@gmail.com | newsletters | |
| sender | @eugenearthouse.com | newsletters | |
| sender | info@metro-cinemas.com | newsletters | |
| sender | evening-edition@muledesign.com | newsletters | |
| sender | @extrafoc.us | newsletters | |
| sender | ezine@apogeerockets.com | newsletters | |
| sender | floatingleaves.com | newsletters | |
| sender | @fortelabs.co | newsletters | |
| sender | @friendsoffamilyfarmers.org | newsletters | |
| sender | @gaffta.org | newsletters | |
| sender | gareth@morethanseven.net | newsletters | |
| sender | @geekli.st | newsletters | |
| sender | getpocket.com | newsletters | |
| sender | gridsagegames@gmail.com | newsletters | |
| sender | groupsupdates@yahoo.com | newsletters | |
| sender | hello@sqlfordevs.com | newsletters | |
| sender | @heroku.com | newsletters | |
| sender | @humblebundle.com | newsletters | |
| sender | humblebundle.com | newsletters | |
| sender | iam8bit | newsletters | |
| sender | i.drop.com | newsletters | |
| sender | @ilovewasting.ink | newsletters | |
| sender | info@ridewithgps.com | newsletters | |
| destination | rwgps@rix.si | newsletters | |
| sender | instacartemail.com | newsletters | |
| subject | is now available on Steam! | newsletters | |
| sender | jason@eff.org | newsletters | |
| sender | @katmaiconservancy.org | newsletters | |
| sender | kitsch-bent.com | newsletters | |
| sender | lex@sreweekly.com | newsletters | |
| sender | livingcomputers.org | newsletters | |
| sender | @longnow.org | newsletters | |
| sender | @lwn.net | newsletters | |
| sender | @mail.frame.work | newsletters | |
| sender | @mail.rally.tv | newsletters | |
| sender | mail.zillow.com | newsletters | |
| sender | marketplace.amazon.com | newsletters | |
| sender | marketplace-messages@amazon.com | newsletters | |
| sender | messages.squareup.com | newsletters | |
| sender | @monasticacademy.org | newsletters | |
| sender | motortrend.com | newsletters | |
| sender | Mozilla@e.mozilla.org | newsletters | |
| sender | nature.org | newsletters | |
| sender | nepalteasllc.com | newsletters | |
| sender | @newegg.com | newsletters | |
| sender | news@citylight.seattle.gov | newsletters | |
| sender | newscomms.squareup.com | newsletters | |
| sender | news-googleplay@google.com | newsletters | |
| sender | newsletters.vice.com | newsletters | |
| sender | news@sender.abebooks.com | newsletters | |
| sender | news@wrcplus.sportmailer.com | newsletters | |
| sender | noreply-googleplay@google.com | newsletters | |
| sender | noreply@hirefrederick.com | newsletters | |
| sender | no-reply@kickstarter.com | newsletters | |
| sender | noreply@messaging.squareup.com | newsletters | |
| sender | noreply@musicbrainz.org | newsletters | |
| sender | no-reply@sellfymail.com | newsletters | |
| sender | @notices.rei.com | newsletters | |
| sender | office@stillsitting.com | newsletters | |
| sender | organizing@eff.org | newsletters | |
| sender | @patreon.com | newsletters | |
| sender | peacevans.com | newsletters | |
| sender | pebble.com | newsletters | |
| sender | peterc.org | newsletters | |
| sender | peter@webopsweekly.com | newsletters | |
| sender | phxart.org | newsletters | |
| sender | picks@eventbrite.com | newsletters | |
| sender | pono@sfconservancy.org | newsletters | |
| destination | announce@sfconservancy.org | newsletters | |
| sender | @portlandgp.com | newsletters | |
| sender | postmaster@itch.io | newsletters | |
| sender | postmaster@updates.itch.io | newsletters | |
| sender | press@newsletter.fastmailteam.com | newsletters | |
| sender | privacyxfn@transcend.io | newsletters | |
| sender | purelyfunctional.tv | newsletters | |
| sender | pythonweekly.com | newsletters | |
| sender | response.hcn.org | newsletters | |
| sender | retromodding.com | newsletters | |
| sender | riseofprivacytech.com | newsletters | |
| sender | rumi.tsuchihashi | newsletters | |
| sender | sfmarketing.twitch.tv | newsletters | |
| sender | shop.kobo.com | newsletters | |
| sender | simplelooseleaf.com | newsletters | |
| subject | Steam wishlist are on sale | newsletters | |
| subject | Steam wishlist is for sale | newsletters | |
| subject | Steam wishlist is on sale | newsletters | |
| sender | store-news@amazon.com | newsletters | |
| sender | Storesteampowered.com | newsletters | |
| sender | substack.com | newsletters | |
| sender | support@linode.com | newsletters | |
| sender | theinformation.com | newsletters | |
| sender | thisweek@indiewebcamp.com | newsletters | |
| sender | this-week-in-rust@webstream.io | newsletters | |
| sender | ticketmaster.com | newsletters | |
| sender | tindie.com | newsletters | |
| sender | @tokyoflash.com | newsletters | |
| sender | transitriders.org | newsletters | |
| sender | translifeline.org | newsletters | |
| sender | twir@rust-lang.org | newsletters | |
| sender | Uber Eats | newsletters | |
| subject | 📢 Update | newsletters | indiegogo campaigns |
| sender | @update.strava.com | newsletters | |
| sender | visakanv@creators.gumroad.com | newsletters | |
| sender | @warprecords.com | newsletters | |
| sender | @white2tea.com | newsletters | |
| sender | workingwa.org | newsletters | |
| sender | youngmountaintea.com | newsletters | |
| sender | joshc@jteainternational.com | newsletters | |
| sender | @freedom.press | newsletters | |
| sender | @roguelike.club | newsletters | |
| sender | @remapradio.com | newsletters | |
| sender | @nepalteallc.com | newsletters | |
| sender | contact@evilmadscientist.com | newsletters | |
#+begin_src lua :tangle ~/arroyo-nix/files/imapfilter.lua :noweb yes
<<call-imapfilter-from-table(newsletters-lists)>>
@ -449,6 +458,7 @@ Marketing shit I would prefer to never see again. I would like to add some Lua t
| sender | @newsletters.sourceforge.net | newsletters/round-file | |
| sender | nianticlabs.com | newsletters/round-file | |
| sender | noreply@bandainamcoent.com | newsletters/round-file | |
| sender | @bandainamcoent.com | newsletters/round-file | |
| sender | noreply@blizzard.com | newsletters/round-file | |
| sender | noreply@ultimaker.com | newsletters/round-file | |
| sender | notification@mention.com | newsletters/round-file | |
@ -500,6 +510,9 @@ Marketing shit I would prefer to never see again. I would like to add some Lua t
| sender | @wolfram.com | newsletters/round-file | |
| sender | xheli.com | newsletters/round-file | |
| sender | zipcar.com | newsletters/round-file | |
| sender | touchofmodern.com | newsletters/round-file | |
| sender | bedbathandbeyond.com | newsletters/round-file | |
| sender | alkibikeandboardseattle@gmail.com | newsletters/round-file | |
#+begin_src lua :tangle ~/arroyo-nix/files/imapfilter.lua :noweb yes
<<call-imapfilter-from-table(round-file-lists)>>

View File

@ -2,33 +2,40 @@
:ID: cce/smarter_emacs_help
:END:
#+TITLE: Smarter Emacs Help
#+PROPERTY: header-args :mkdirp yes :results none
#+PROPERTY: header-args:emacs-lisp :tangle hydra-help.el
#+ARROYO_EMACS_MODULE: hydra-help
#+ARCOLOGY_KEY: cce/hydra-help
#+ARCOLOGY_ALLOW_CRAWL: t
#+ARROYO_EMACS_MODULE: hydra-help
#+ARROYO_MODULE_WANTS: cce/configure_packaging.org
#+ARROYO_MODULE_WANTS: cce/selectrum_etc.org
#+ARROYO_MODULE_WANTS: cce/hydra.org
#+ARCOLOGY_ALLOW_CRAWL: t
Now with more [[https://github.com/Wilfred/helpful][helpful]] help:
#+begin_src emacs-lisp
(provide 'cce/hydra-help)
#+end_src
#+BEGIN_SRC emacs-lisp
(use-package helpful)
(use-package which-key
:diminish
:config
(which-key-mode))
(defhydra hydra-help (:columns 4)
("v" describe-variable "Desc Variable")
("v" helpful-variable "Desc Variable")
("w" embark-bindings "Desc Bindings")
("s" describe-syntax "Desc Syntax")
("." helpful-at-point "At Point")
("P" describe-package "Desc Package")
("o" describe-symbol "Desc Symbols")
("m" describe-mode "Desc Mode")
("k" describe-key "Desc Keys")
("f" describe-function "Desc Functions")
("k" helpful-key "Desc Keys")
("f" helpful-callable "Desc Functions")
("d" apropos-documentation "Apropos Docs")
("a" apropos-command "Apropos Commands")
("j" cce/man-at-point "Man for symbol at point.")

View File

@ -67,11 +67,15 @@ homeManager = _: builtins.fetchGit {
By structuring these invocations like this it is possible to write a function contained in my [[id:20220913T104837.013589][nix-update]] page which will iterate over all the call sections and update the =builtins.fetchGit= entities, and then update the revisions and =sha256= of the rest of the document, and safely tangle the new values out on save. This is probably a useful pattern in developing [[id:128ab0e8-a1c7-48bf-9efe-0c23ce906a48][Hypermedia]] in org-mode.
* NEXT update my [[id:c75d20e6-8888-4c5a-ac97-5997e2f1c711][NixOS]] version pins and deploy
SCHEDULED: <2023-12-13 Wed .+2w>
SCHEDULED: <2024-02-14 Wed .+2w>
:PROPERTIES:
:LAST_REPEAT: [2023-11-29 Wed 17:11]
:LAST_REPEAT: [2024-01-31 Wed 15:49]
:END:
:LOGBOOK:
- State "DONE" from "NEXT" [2024-01-31 Wed 15:49]
- State "DONE" from "NEXT" [2024-01-22 Mon 18:28]
CLOCK: [2024-01-22 Mon 10:24]--[2024-01-22 Mon 10:26] => 0:02
CLOCK: [2024-01-22 Mon 09:54]--[2024-01-22 Mon 10:19] => 0:25
- State "DONE" from "NEXT" [2023-11-29 Wed 17:11]
- State "DONE" from "NEXT" [2023-11-12 Sun 21:52]
- State "DONE" from "NEXT" [2023-09-08 Fri 18:42]
@ -135,7 +139,7 @@ Right now I am running off a branch of [[id:c75d20e6-8888-4c5a-ac97-5997e2f1c711
#+NAME: prefetch-hm
#+results:
: "1488651d02c1a7a15e284210f0d380a62d8d8cef"
: "10cd9c53115061aa6a0a90aad0b0dde6a999cdb9"
#+begin_src nix :noweb-ref homeManager :noweb yes
homeManager = _: builtins.fetchGit {
@ -153,7 +157,7 @@ homeManager = _: builtins.fetchGit {
#+NAME: prefetch-em
#+results:
: "47798c4ab07d5f055bb2625010cf6d8e3f384923"
: "bfd3b792ef19d8dbe826c7c8e17cdaccd2f82f20"
#+NAME: emacsOverlay
#+begin_src nix :noweb yes
@ -177,7 +181,7 @@ emacsOverlay = _: /home/rrix/Code/emacs-overlay;
#+NAME: prefetch-p2n
#+results:
: "9d9d434528404a22fb0c8283fea1ea3a7410ff80"
: "e0b44e9e2d3aa855d1dd77b06f067cd0e0c3860d"
#+NAME: poetry2nix
#+begin_src nix :noweb yes
@ -234,9 +238,9 @@ consult-org-roam-rev = "268f436858e1ea3b263782af466a54e4d603a7d2";
consult-org-roam = {pkgs, ...}: pkgs.fetchFromGitHub {
owner = "jgru";
repo = "consult-org-roam";
rev = "47e43a7ffa703b1cc4c73cae953dadea4eff83df";
sha256 = "1f39k9mc8srghlbmncz811cdpzr5s5s99m9vclkda4hi7m34z93j";
# date = "2023-10-07T09:50:58+02:00";
rev = "8e5b60a61eee9d0582afd309bc4e70ca3b1054cb";
sha256 = "0hzc8kd52f2r5nrx5l3pbkj17mz2ms3715gq814k5iw2z9ir6ha3";
# date = "2024-01-15T12:45:32+01:00";
};
#+end_src
@ -264,9 +268,9 @@ org-fc = rec {
src = { pkgs, ... }: pkgs.fetchFromGitHub {
owner = "l3kn";
repo = "org-fc";
rev = "7ab1791dfa6aa6ca252a69d8f43d5b5e8c841190";
sha256 = "0hq11kp4l5qs0jgcvjfhggdr31jyl6mcgaj5c8dwr9x7b8awnh6j";
# date = "2023-05-14T13:41:04+02:00";
rev = "0fea2849150032199fdf275c2fee660cc586095d";
sha256 = "0911lr5qlk7p1fg8ady5x39ai08yws70z6yg2w1qgc8zadyqp0w4";
# date = "2024-01-31T03:20:05+01:00";
};
};
#+end_src
@ -279,12 +283,15 @@ ement = rec {
src = { pkgs, ... }: pkgs.fetchurl {
url = "https://github.com/alphapapa/ement.el/archive/8aea26acefd9e3eafa24db240e41aa9d41603586.tar.gz";
sha256 = "1zs8j9zvwda029ld2lnqkw03i7zsibrdy68fpsz5ylw7czd6qfzi";
# date = "2023-12-17T17:45:23-0800";
# date = "2024-01-31T15:49:01-0800";
};
};
#+end_src
** [[id:20221216T003951.778630][=cpmtools=]]
:LOGBOOK:
CLOCK: [2024-01-22 Mon 10:24]--[2024-01-22 Mon 10:24] => 0:00
:END:
#+begin_src nix :noweb-ref cpmtools
cpmtools = {
@ -339,9 +346,9 @@ delve = {
src = { pkgs, ... }: pkgs.fetchFromGitHub {
owner = "publicimageltd";
repo = "delve";
rev = "f06bd7b1d8759a041601a2b8a870e60151cb750c";
sha256 = "1b9wf45y600vcf9747d36mnb9mrkaqbn6dwsqr5mik41dgxcw13l";
# date = "2023-03-27T09:59:51+02:00";
rev = "0c84a886d9c2fa8a6743c2882551d4b1c0b4cc4f";
sha256 = "1cd2lbq5xky0ayqqvc3mc0zbvmskdc00h37jqzdvp6vsajqfnpxn";
# date = "2024-01-10T08:36:50+01:00";
};
};
#+end_src
@ -399,9 +406,9 @@ bandcamp-dl = {
src = { pkgs, ... }: pkgs.fetchFromGitHub {
owner = "iliana";
repo = "bandcamp-dl";
rev = "5b434a8401f51397e4cc7c9bce87f6f137d3ec90";
sha256 = "1kqjnsmdpw4mv4f68fxfyclcimn4r6n4fxp5gz838l0dyc7kzqmv";
# date = "2023-04-08T22:16:38+00:00";
rev = "2334dbba00da874210191704b1e86ae489e543c0";
sha256 = "1h4jjrbgndsg2kg5hg0ar0m7bn1sb8b0chzp63pzqbyjsrr53lhm";
# date = "2023-12-26T23:03:05-08:00";
};
};
#+end_src

View File

@ -30,8 +30,25 @@ This stuff is pretty straightforward. I set up automatic snapshots, and SSD TRIM
};
services.zfs.trim.enable = true;
services.zfs.autoScrub.enable = true;
imports = [ ./zfs-snapshot-activation.nix ];
}
#+end_src
everyone I've seen talk about this sort of just says "oh =boot.zfs.devNodes= is a thing you do to make virtualization disks work" or whatever, but [[(devNodes)]] instructs ZFS to load the underlying physical devices out of =/dev/mapper= which is where LUKS volumes unvaulted with =cryptsetup luksOpen= will end up.
* Snapshot ZFS volumes when you activate a nixos generation:
#+begin_src nix :tangle ~/arroyo-nix/nixos/zfs-snapshot-activation.nix
{ config, pkgs, ... }:
with pkgs; let
mkSnapshotCommand = fsName: fsAttrs: "${config.boot.zfs.package}/bin/zfs snapshot ${fsAttrs.device}@${config.system.nixos.label}-$(date +%s) \n";
eligibleFs = lib.filterAttrs (name: attrs: attrs.fsType == "zfs") config.fileSystems;
snapshotCommands = lib.mapAttrsToList mkSnapshotCommand eligibleFs;
in {
system.activationScripts.zfs-snapshot.text = lib.concatStrings snapshotCommands;
}
#+end_src