diff --git a/README.org b/README.org index 024ce8f..961622a 100644 --- a/README.org +++ b/README.org @@ -1,6 +1,225 @@ -#+PROPERTY: header-args :noweb no-export :results silent :comments both :tangle no -#+STARTUP: overview -#+title: Madeleine's nest (=sydnix=) +:PROPERTIES: +:ID: 26ecd52b-1c5c-46b8-8eb9-fe827a753f0a +:ROAM_ALIASES: sydnix +:END: +#+title: Guix-rebound 2 +#+tags: nix + +Current name of ~guix-rebound~ ought to be changed. This is a rewrite from scratch. }:3 + +A second try at NixOS, now that I have a better idea of what I'm doing. The effort is largely inspired by my darling Faye's glorious ~wishsys~. + +* Inbox + +** Refactor: single file per service + +Modules, but lightweight. + +* Tasks + +** Emacs + +*** [#A] One-off environment changes without direnv + +I would like the ability to ergonomically e.g. add HLS to my current environment without setting up an entire project. Perhaps something like "create new workspace under a nix-shell invocation" could work? + +*** minibuffer + +**** DONE jk to escape +CLOSED: [2024-11-20 Wed 12:11] + +**** DONE history navigation in insert mode w/ [[kbd:][C-j]] / [[kbd:][C-k]] +CLOSED: [2024-11-20 Wed 12:11] + +**** [[kbd:][RET]] to send whilst in normal mode + +*** dired + +**** DONE use [[kbd:][/]] to live narrow +CLOSED: [2024-11-14 Thu 04:46] + +*** set up JuliaMono for use with ipa: links + +*** text-mode + +**** grammar + +**** spellcheck and dictionaries + +**** org-mode + +***** init.org for beorg + +***** IPA links + +***** capture templates + +****** journal entry + +****** todo + +***** fancy headline stars + +***** DONE better colour for inline code +CLOSED: [2024-11-21 Thu 09:04] + +**** DONE variable pitch +CLOSED: [2024-11-30 Sat 19:06] + +*** form and element text objects à la vim-sexp + +*** customise the eshell prompt + +*** jump to prev/next hole in haskell + +*** make a bind for inserting hrules + +*** KILL set up emms +CLOSED: [2024-12-11 Wed 13:46] + +- BLOCKER: [[*download my music library][download my music library]] + +it kinda sucks. }:\ + +*** set up JuliaMono for use with IPA glyphs + +*** KILL literate config +CLOSED: [2024-12-27 Fri 19:35] + +*** evil-cp fixes + +**** [[kbd:][(]] / [[kbd:][)]] + +When [[kbd:][)]] is hit whilst the cursor is at ~↓1~, it should move to the matching +bracket, ~↓2~, *not* the right bracket of the ~save-excursion~ call. +#+begin_src elisp +(save-excursion +;; ↓1 ↓2 + (re-search-forward)) +#+end_src + +**** element text objects + +*** automatically close compilation buffer + +*** fix =[e= / =]e= + +*** unmap =TAB= in normal mode + +*** eshell trail à la M-x calc + +#+begin_quote +I really like how you re-examined shells and terminals. I hadn't thought of how +they're kinda unrelated. What I then don't understand is why eshell stuck to +the paradigm of interleaving input and output. It's a relic left over from +terminals. ie: + >>> input + [tonnes of output] + >>> input + [tonnes of output] +to me it seems the input should be entered in the minibuffer (or some separate +frame/window) and the outputs should be in a separate window/frame with separate +read-only buffers. +#+end_quote +[[https://www.reddit.com/r/emacs/comments/6y3q4k/comment/dml16vq/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button][source]] + +** TODO Dotfiles + +- [[https://rgoulter.com/blog/posts/programming/2022-02-20-using-home-manager-to-manage-symlinks-to-dotfiles.html][link]] +- [[https://www.bekk.christmas/post/2021/16/dotfiles-with-nix-and-home-manager][link]] + +*** TODO Emacs + +*** TODO (neo)vim + +*** TODO readline + +** DONE disko +CLOSED: [2024-12-28 Sat 18:13] + +** IDEA refactor disko configs to be more reusable + +** IDEA replace uses of gpg with age + +I don't know anything about either. + +** TODO password store 4 firefox + +** TODO secrets + +** TODO niri + +Or Qtile + +** TODO qtile + +Or Niri + +** TODO tf2.nix + +- declaratively configure tf2 +- tf2Packages? +- mastercomfig integration? +- define aliases / bindings from nix? + +** TODO mpd + +*** TODO mpdscribble + +** TODO syncthing + +** HOLD impermanence + +** TODO ~sydnix.defaults~ module + +** TODO Split up ~flake.nix~ into a file per output + +** TODO default package sets + +Some examples of what I mean: + +- ~defaultPackages.essential = true~ to install ~neovim~ and ~git~; +- ~defaultPackages.development = true~ for ~jj~ and Emacs. +- ~defaultPackages.desktop = true~ for ~cantata~, ~obs~, ~vlc~, ~vesktop~, ~soulseek~; + +Naturally, one would expect some way to say "all these, except this and that." + +** TODO Set envvars + +*** =$EDITOR= + +See [[id:5b4ee1e4-fad7-4783-8e98-301b41579a63][~choose-editor~]]. + +** System maintenance scripts + +It might be a good idea to namespace these as subcommands of a single binary. + +*** TODO ~nix-clean~ + +Collect garbage, clean up boot entries, delete old generations... + +https://discourse.nixos.org/t/what-to-do-with-a-full-boot-partition/2049 + +*** TODO ~choose-editor~ +:PROPERTIES: +:ID: 5b4ee1e4-fad7-4783-8e98-301b41579a63 +:END: + +- If the Emacs daemon is running... + - ...then run ~emacsclient~. + - ...otherwise, prompt the user to choose between Emacs and Vim + - If Emacs: run ~emacs~. + - If Vim: In order, try ~nvim~, ~vim~, then ~vi~. + - If neither are available, use ~nix run nixpkgs#nvim~ + - If this fails, try ~nano~. + +*** TODO ~forget-host HOST~ + +Remove a given host from =~/.ssh/known_hosts=. Something like =sed -i -e '/192.168.122.54/d' .ssh/known_hosts=. + +* Impermanence and persistence + +- Persistent files to be linked into ~/~ go under ~/persist/root~ * References