This constitutes the backbone of The Complete
Computing Environment. These functions rely on #+KEYWORD
style metadata embedded throughout my
org-roam Knowledge Base and some custom extensions
to org-roam to enable this keyword caching.
Taken together, these functions provide a concrete API (or at the
inspiration for a generic API) for building limited Literate Programming
applications, org-mode
meta applications which can answer interesting questions from across
your knowledge base. It's unfortunate that this relies on patches to
org-roam which aren't upstreamed, I'm awaiting a plugin architecture
that lets me decouple this. In the meantime my home-manager installs the version of org-roam which has these additions. I've
constructed an Ouroboros.
CCE Git Ignore
*.el
*.elc
*.shell
*.conf
*-capture.org
*-template.org
morning-routine-capture
reference-capture-template
gnus-respond
gnus-review
remote-video-capture-template
*.desktop
*.service
emacs-pager-bin
mbsync-endpointrc
termux-url-opener
termux-imap-tunnel
inventory
*.yml
roles
ggs
bash_profile.d
bashrc.d
syncthing.list
userChrome.css
userContent.css
Xmodmap
udev/*
nixlib/*/*.nix
nixlib/*.nix
captures/*
wireguard/*
fehbg.sh
pam_u2f_cfg
env
xmonad.hs
ytmusic-auth.json
ytmusic-cookie.txt
bandcamp-cookie.txt
vdirsyncer-config.txt
Predicate Functions
These are simple predicate functions which can be used in the CCE_PREDICATE
:
defun cce/using-termux ()
("A CCE predicate"
or (not (string-blank-p (or (getenv "ANDROID_DATA") "")))
(and (boundp 'building-for-termux)
(
building-for-termux)))
defun cce/has-display-frames ()
("Dynamic CCE predicate"
and (not (cce/using-termux))
(> (length (frame-list)) 0)))
(
defun cce/using-exwm ()
("Dynamic CCE predicate"
and (not (cce/using-termux))
(not (string-blank-p (getenv "DISPLAY")))))
(
defun cce/using-linux ()
("Dynamic CCE predicate"
eq 'gnu/linux system-type)) (