2.7 KiB
Shared CCE Helpers
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))