complete-computing-environment/shared_cce_helpers.org

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))