Compare commits

..

200 Commits

Author SHA1 Message Date
Nathan Dwarshuis 3037d399b0 ENH update packages 2024-08-18 10:05:16 -04:00
Nathan Dwarshuis 99a7bdbcc9 ENH update packages 2024-08-11 10:34:00 -04:00
Nathan Dwarshuis 955c0e6a29 ENH update packages 2024-08-04 12:21:49 -04:00
Nathan Dwarshuis 4bcad96690 ENH update packages 2024-07-28 09:53:20 -04:00
Nathan Dwarshuis 53b136fed8 ENH update packages 2024-07-21 10:12:24 -04:00
Nathan Dwarshuis 99f8e459c5 ENH update packages 2024-07-14 08:05:50 -04:00
Nathan Dwarshuis 4664df1312 ENH don't use useless calendar 2024-07-07 10:57:52 -04:00
Nathan Dwarshuis a2fed80ae7 ENH update packages 2024-07-07 10:35:06 -04:00
Nathan Dwarshuis e375584661 ENH update packages 2024-06-30 14:46:16 -04:00
Nathan Dwarshuis d52ae5bd22 ENH update packages 2024-06-23 15:47:51 -04:00
Nathan Dwarshuis 20a38ace1d ENH update packages 2024-06-16 06:42:54 -04:00
Nathan Dwarshuis c4d3477183 ENH update packages 2024-06-09 10:31:53 -04:00
Nathan Dwarshuis 7425f53b94 ENH update packages 2024-06-02 20:49:57 -04:00
Nathan Dwarshuis 07b78d9cc7 ENH update packages 2024-05-26 09:45:35 -04:00
Nathan Dwarshuis c0fb175b28 ENH update packages 2024-05-19 09:53:26 -04:00
Nathan Dwarshuis 58c356237a ENH update packages 2024-05-12 11:48:26 -04:00
Nathan Dwarshuis e65b341abe ENH disable pyenv 2024-05-06 21:57:06 -04:00
Nathan Dwarshuis 6067be3d40 ENH update packages 2024-05-05 12:01:44 -04:00
Nathan Dwarshuis fa844f5e16 ENH update packages 2024-04-29 21:24:08 -04:00
Nathan Dwarshuis 1ff53fe043 ENH update packages 2024-04-21 10:41:16 -04:00
Nathan Dwarshuis 0d18d3efb6 ENH update packages 2024-04-14 10:51:47 -04:00
Nathan Dwarshuis 36d2040194 ENH update packages 2024-04-07 07:02:38 -04:00
Nathan Dwarshuis 13ab8b24bf ENH update packages 2024-03-31 08:21:25 -04:00
Nathan Dwarshuis 6624ce05bf FIX another quoting bug 2024-03-30 14:32:15 -04:00
Nathan Dwarshuis b18e7ac237 FIX mime type bugs 2024-03-30 14:28:04 -04:00
Nathan Dwarshuis cec9af4ecb ENH update packages 2024-03-17 10:33:00 -04:00
Nathan Dwarshuis 4aa2389cb0 ADD mbsync override script 2024-03-14 21:33:59 -04:00
Nathan Dwarshuis 0d17555500 FIX typo 2024-03-14 10:19:32 -04:00
Nathan Dwarshuis 6df300b58a ENH make email config modular 2024-03-14 10:19:08 -04:00
Nathan Dwarshuis 810f759d1c FIX mime type matching 2024-03-11 13:00:38 -04:00
Nathan Dwarshuis 8e7f54fea6 ENH update packages 2024-03-10 09:42:34 -04:00
Nathan Dwarshuis 3d4fe298ad FIX remove silly border around logo 2024-03-05 09:21:42 -05:00
Nathan Dwarshuis 4a71191a9d ENH disable systemd 2024-03-04 21:16:29 -05:00
Nathan Dwarshuis ebaf5055ef ADD restart options 2024-03-04 21:15:42 -05:00
Nathan Dwarshuis b04ba759c9 ADD master control file 2024-03-04 20:49:16 -05:00
Nathan Dwarshuis 520477884b ADD toggle for light and dark mode 2024-03-04 15:31:55 -05:00
Nathan Dwarshuis 24c327dfd9 ENH update packages 2024-03-03 10:20:10 -05:00
Nathan Dwarshuis caaa0d4597 ENH remove journal from org 2024-03-03 10:20:03 -05:00
Nathan Dwarshuis e27ecc5547 ENH make junk a bit more symbolically sassay 2024-02-29 09:43:00 -05:00
Nathan Dwarshuis db5b994d9e ADD mu4e spam folder 2024-02-28 22:43:19 -05:00
Nathan Dwarshuis 723955a12d ENH update packages 2024-02-25 10:24:03 -05:00
Nathan Dwarshuis a6ef9a3bba ENH remove done entries from link menu 2024-02-19 18:07:49 -05:00
Nathan Dwarshuis 3c1808b652 ENH update packages 2024-02-18 08:15:07 -05:00
Nathan Dwarshuis df12172de1 ENH update packages 2024-02-11 10:25:22 -05:00
Nathan Dwarshuis 37353d6912 ENH update packages 2024-02-04 11:42:34 -05:00
Nathan Dwarshuis 69afcc47bc ENH update packages 2024-01-28 09:56:11 -05:00
Nathan Dwarshuis 3ff5ee83e7 ENH update packages 2024-01-22 10:09:13 -05:00
Nathan Dwarshuis 994635859a ENH update packages 2024-01-14 15:27:03 -05:00
Nathan Dwarshuis 003ea4b0f9 ADD reference targets I forgot 2024-01-12 09:52:36 -05:00
Nathan Dwarshuis 5234596b4c ENH update packages 2024-01-07 11:57:17 -05:00
Nathan Dwarshuis 5af5d4952e ENH commit git buffers in emacs natively 2024-01-07 11:05:03 -05:00
Nathan Dwarshuis acef51b7d6 ADD mu sync script 2024-01-07 10:03:25 -05:00
Nathan Dwarshuis a1010506d8 ADD startup scripts 2024-01-07 09:25:42 -05:00
Nathan Dwarshuis bc9842709c FIX silly bug 2024-01-01 21:52:17 -05:00
Nathan Dwarshuis 7b409b69c5 ENH update packages 2023-12-31 10:45:56 -05:00
Nathan Dwarshuis fb752313ee ENH update packages 2023-12-26 10:38:31 -05:00
Nathan Dwarshuis fd3c511a5d ENH update packages 2023-12-17 15:34:53 -05:00
Nathan Dwarshuis 58659bec49 ENH update packages 2023-12-10 16:21:17 -05:00
Nathan Dwarshuis c1aa4a63b1 ENH update packages 2023-12-03 10:29:59 -05:00
Nathan Dwarshuis ef69737080 ENH update packages 2023-11-26 22:39:08 -05:00
Nathan Dwarshuis 44dccfc006 ENH update packages 2023-11-20 10:23:34 -05:00
Nathan Dwarshuis a6f137d0db ENH update packages 2023-11-13 10:51:45 -05:00
Nathan Dwarshuis 237cf43c74 ENH update packages 2023-11-08 19:35:26 -05:00
Nathan Dwarshuis 65d4152d27 ENH update pckages 2023-10-29 19:45:25 -04:00
Nathan Dwarshuis 4071cf4f68 ENH update packages 2023-10-23 23:02:42 -04:00
Nathan Dwarshuis a45f0414d7 ENH update packages 2023-10-15 14:50:32 -04:00
Nathan Dwarshuis 307cb2676b ENH update packages 2023-10-08 17:18:57 -04:00
Nathan Dwarshuis 94c67f76eb ENH don't use pyenv hook unless we need it 2023-10-06 16:43:14 -04:00
Nathan Dwarshuis e18db58d0c ENH update packages 2023-10-01 15:44:09 -04:00
Nathan Dwarshuis cb1eda831f ENH update packages 2023-09-24 14:48:06 -04:00
Nathan Dwarshuis 894483c013 ENH update packages 2023-09-17 14:56:21 -04:00
Nathan Dwarshuis 0ae075ba75 ENH update packages 2023-09-12 10:32:52 -04:00
Nathan Dwarshuis 1d524aaff2 ENH update packages 2023-09-03 16:29:51 -04:00
Nathan Dwarshuis ea09d97957 ADD bats 2023-09-03 16:29:47 -04:00
Nathan Dwarshuis 39d0ddc2bd ENH update packages 2023-08-28 13:05:13 -04:00
Nathan Dwarshuis adbac12265 ENH update packages 2023-08-20 17:07:12 -04:00
Nathan Dwarshuis 0b98573f79 ENH upate packages 2023-08-13 14:42:12 -04:00
Nathan Dwarshuis 90b48c11b7 FIX ord folding and arrows 2023-08-13 14:42:04 -04:00
Nathan Dwarshuis ebda9d0079 ENH update packages 2023-08-06 23:26:39 -04:00
Nathan Dwarshuis 359e53f581 ENH update packages 2023-07-30 18:31:53 -04:00
Nathan Dwarshuis 34e031d440 ENH update packages 2023-07-23 14:31:08 -04:00
Nathan Dwarshuis d9f78ffb1f ENH update packages 2023-07-16 22:30:49 -04:00
Nathan Dwarshuis 214257ff55 FIX haskell-flycheck bug 2023-07-16 22:30:36 -04:00
Nathan Dwarshuis 7420de7ca3 FIX ess comint color thing 2023-07-09 16:12:12 -04:00
Nathan Dwarshuis 4a3bfe0231 ENH update packages 2023-07-09 14:34:46 -04:00
Nathan Dwarshuis 438bf90289 ENH update packages 2023-07-02 14:05:31 -04:00
Nathan Dwarshuis 64ab96f3cc ENH update packages 2023-06-25 16:10:54 -04:00
Nathan Dwarshuis 49c1ad7a40 ENH update packages 2023-06-18 19:30:54 -04:00
Nathan Dwarshuis eda78d7510 ENH update packages 2023-06-11 14:25:57 -04:00
Nathan Dwarshuis 7ee74cfc69 ENH update packages 2023-06-04 14:00:33 -04:00
Nathan Dwarshuis c32e345f24 ENH update packages 2023-05-28 14:02:09 -04:00
Nathan Dwarshuis 8e8434f8c5 ENH update packages 2023-05-22 21:57:19 -04:00
Nathan Dwarshuis 3048002a3b ENH update packages 2023-05-14 14:36:27 -04:00
Nathan Dwarshuis 571ad2adcd ENH update packages 2023-05-07 15:15:08 -04:00
Nathan Dwarshuis 0a928fa3d6 ENH update packages 2023-04-30 17:54:05 -04:00
Nathan Dwarshuis 04a06d7fa2 ENH update packages 2023-04-23 14:24:07 -04:00
Nathan Dwarshuis 7966b74502 ENH make email not clobber other windows 2023-04-16 17:30:35 -04:00
Nathan Dwarshuis 1b0ab263d3 ENH update packages 2023-04-16 17:29:48 -04:00
Nathan Dwarshuis 2f2be7db16 ENH update packages 2023-04-09 18:36:38 -04:00
Nathan Dwarshuis f040bba676 ENH remove org-mu4e (dead pacakage?) 2023-04-02 18:39:42 -04:00
Nathan Dwarshuis d540b7170d ENH update packages 2023-04-02 18:30:33 -04:00
Nathan Dwarshuis b5968b2016 ENH search for hlint binary properly in flycheck 2023-04-01 15:06:47 -04:00
Nathan Dwarshuis 773e23b81f ENH update mu maildir 2023-03-29 23:29:03 -04:00
Nathan Dwarshuis f262bb4cc1 ENH update packages 2023-03-26 15:34:16 -04:00
Nathan Dwarshuis 5397dde3a1 ENH update packages 2023-03-19 14:25:11 -04:00
Nathan Dwarshuis 39a5b01707 ENH don't depend on system files for python dev 2023-03-12 12:31:26 -04:00
Nathan Dwarshuis a7bfefd99b ENH update packages 2023-03-12 12:28:35 -04:00
Nathan Dwarshuis 3cd1464239 ADD nix 2023-03-12 12:28:29 -04:00
Nathan Dwarshuis 0ad7d01fc7 ENH update packages 2023-03-05 13:52:39 -05:00
Nathan Dwarshuis 94748930d5 ENH use better markdown mode 2023-03-05 13:52:31 -05:00
Nathan Dwarshuis bcf335a45f ENH update packages 2023-02-26 13:22:04 -05:00
Nathan Dwarshuis d790dbe3db ENH update versions 2023-02-19 16:03:43 -05:00
Nathan Dwarshuis e1e91664a5 ENH bump versions 2023-02-12 13:52:00 -05:00
Nathan Dwarshuis b7abf1ae1e ADD haskell flycheck mode to integrate better with cabal/stack 2023-02-12 13:51:42 -05:00
Nathan Dwarshuis e2ac704185 ENH update packages 2023-02-05 13:47:34 -05:00
Nathan Dwarshuis ccbe4b53f0 ENH update packages 2023-01-29 13:49:31 -05:00
Nathan Dwarshuis beaeb82f62 ENH update packages 2023-01-22 14:18:41 -05:00
Nathan Dwarshuis c0c67bed4d ENH update packages 2023-01-16 15:06:50 -05:00
Nathan Dwarshuis 97d3986ebe ENH use r-styler and default to rstudio style 2023-01-09 20:48:56 -05:00
Nathan Dwarshuis ade348c0d6 ENH update packages 2023-01-08 14:06:29 -05:00
Nathan Dwarshuis c8d9c5b373 ENH update packages 2023-01-01 13:37:30 -05:00
Nathan Dwarshuis 55e04349eb ENH use better formatter for haskell 2023-01-01 13:37:24 -05:00
Nathan Dwarshuis 51c6b0bd98 ENH increase dhall type check timeout 2022-12-21 22:51:13 -05:00
Nathan Dwarshuis 6c57f3c661 ENH update packages 2022-12-18 13:36:59 -05:00
Nathan Dwarshuis 08894d7161 ENH remove ledger 2022-12-11 13:01:56 -05:00
Nathan Dwarshuis 73fda400e4 ADD function to toggle dhall type check 2022-12-11 13:00:33 -05:00
Nathan Dwarshuis 5a26514c86 ENH update packages 2022-12-11 13:00:27 -05:00
Nathan Dwarshuis 1a2175cc84 ENH update packages 2022-12-04 13:22:47 -05:00
Nathan Dwarshuis d5047569ec ENH update packages 2022-11-27 14:50:40 -05:00
Nathan Dwarshuis e54a7c31cf ENH update packages 2022-11-20 13:28:58 -05:00
Nathan Dwarshuis ab375567d4 ENH update packages 2022-11-13 22:22:28 -05:00
Nathan Dwarshuis 986224403a ENH update packages 2022-11-05 11:57:15 -04:00
Nathan Dwarshuis f6b2b80f36 ENH update packages 2022-10-30 14:30:25 -04:00
Nathan Dwarshuis af878fe5c2 ENH update packages 2022-10-23 14:48:31 -04:00
Nathan Dwarshuis 5eced7a6a6 ENH don't hide markup (not worth it) 2022-10-16 19:11:46 -04:00
Nathan Dwarshuis 4089810579 ENH update packages 2022-10-16 15:42:57 -04:00
Nathan Dwarshuis b2d062e0bd ENH update packages 2022-10-02 14:38:27 -04:00
Nathan Dwarshuis 184c5ecde0 ENH update packages 2022-09-25 14:36:38 -04:00
Nathan Dwarshuis 768944edb1 REF remove all property drawers 2022-09-18 19:46:35 -04:00
Nathan Dwarshuis d6edb0dd27 REF remove TOC 2022-09-18 19:40:34 -04:00
Nathan Dwarshuis 43a55701b0 ENH update packages 2022-09-18 14:33:13 -04:00
Nathan Dwarshuis b1de625f0d ENH hide markdown markup by default 2022-09-17 19:09:49 -04:00
Nathan Dwarshuis 54bbdfa056 ENH hide org formatting by default 2022-09-17 19:07:01 -04:00
Nathan Dwarshuis 8c486c6aa2 ENH update packages 2022-09-11 14:19:07 -04:00
Nathan Dwarshuis 81274de278 ENH upate packages 2022-09-04 14:28:24 -04:00
Nathan Dwarshuis 8912a63ad7 ENH update packages 2022-08-28 16:22:05 -04:00
Nathan Dwarshuis adf94f0f0f ENH update packages 2022-08-21 15:33:39 -04:00
Nathan Dwarshuis 7770eabe38 ENH update packages 2022-08-14 14:46:11 -04:00
Nathan Dwarshuis 75a7bacb68 WIP add weekly tests 2022-08-14 14:46:05 -04:00
Nathan Dwarshuis 95e03b8eb7 ADD tests for ltg and svg nodes 2022-08-07 22:50:14 -04:00
Nathan Dwarshuis edb4c36eeb ENH update packages 2022-08-07 15:05:32 -04:00
Nathan Dwarshuis aa4e4dffae ADD dhall support 2022-08-06 18:47:52 -04:00
Nathan Dwarshuis d999489572 ENH make highlight modes toggle-able 2022-08-04 12:19:07 -04:00
Nathan Dwarshuis 8035566114 ENH make yaml readable 2022-08-02 12:02:16 -04:00
Nathan Dwarshuis 2e9166fec8 ENH make script to list runtime packages 2022-08-01 00:30:02 -04:00
Nathan Dwarshuis cadf7dbe5a ENH update packages 2022-07-31 15:26:50 -04:00
Nathan Dwarshuis 3d0370f92a ENH update packages 2022-07-24 14:47:03 -04:00
Nathan Dwarshuis 2c6aff682e FIX bugs 2022-07-21 22:49:58 -04:00
Nathan Dwarshuis 24c4701516 ADD straight boot 2022-07-21 18:26:45 -04:00
Nathan Dwarshuis 53e9cc898c ENH update packages 2022-07-17 15:54:04 -04:00
Nathan Dwarshuis 43d3ee862b ENH update packages 2022-07-10 10:23:02 -04:00
Nathan Dwarshuis 19fa7fdfe8 ENH update packages 2022-07-03 14:39:38 -04:00
Nathan Dwarshuis 4cea560dae ENH update install script 2022-06-29 20:51:39 -04:00
Nathan Dwarshuis 02a1069d3c ENH update mu4e symbols 2022-06-29 20:51:19 -04:00
Nathan Dwarshuis 029fcc8cbd ADD ledger mode 2022-06-29 20:51:11 -04:00
Nathan Dwarshuis 66f1844dbb ENH update packages 2022-06-27 20:26:39 -04:00
Nathan Dwarshuis 905a394b40 FIX turn off show-paren-mode 2022-06-21 16:30:18 -04:00
Nathan Dwarshuis ce76d10b65 FIX datetime typos 2022-06-19 14:21:56 -04:00
Nathan Dwarshuis 1b46baf90c ENH update packages 2022-06-19 14:21:35 -04:00
Nathan Dwarshuis 9c0a153872 ENH clean up system dep code 2022-06-14 20:29:44 -04:00
Nathan Dwarshuis efe3eac7c3 ADD test for project deadline 2022-06-12 19:32:38 -04:00
Nathan Dwarshuis ca17ee15d5 ADD a bunch of buffer status tests for actions 2022-06-12 18:07:10 -04:00
Nathan Dwarshuis d58c1b0458 ENH update packages 2022-06-12 15:41:58 -04:00
Nathan Dwarshuis 96a0bdd962 ENH use partitioned timestamps in action projects 2022-06-11 23:29:12 -04:00
Nathan Dwarshuis dc7c134045 ENH make iterator date logic simpler 2022-06-11 22:56:07 -04:00
Nathan Dwarshuis e4ae5ca4a1 ENH make errors for sub-iterators more precise (and working) 2022-06-11 20:13:49 -04:00
Nathan Dwarshuis 33ca950edc ADD a bunch of tests for actions 2022-06-10 19:34:11 -04:00
Nathan Dwarshuis 334681d6fc FIX typo 2022-06-10 19:34:03 -04:00
Nathan Dwarshuis 99a945ad0e ADD test helpers for left and plist 2022-06-08 19:27:16 -04:00
Nathan Dwarshuis eb84acd778 ADD barely useful dag test suite 2022-06-07 23:12:03 -04:00
Nathan Dwarshuis a2b738c704 FIX make new property drawers not demented 2022-06-07 22:53:19 -04:00
Nathan Dwarshuis e263af73ef ADD a bunch of org files to test with the dag framework 2022-06-07 22:53:05 -04:00
Nathan Dwarshuis b5fef3b7eb FIX random side effects when updating network status 2022-06-07 19:13:00 -04:00
Nathan Dwarshuis 4171bb788f FIX child scheds not being propagated in trees 2022-06-07 19:12:09 -04:00
Nathan Dwarshuis 94cefaa250 FIX ignore 'nodes' that don't have property drawers at all 2022-06-07 17:49:37 -04:00
Nathan Dwarshuis bd40a9bbf9 Merge branch 'propagate_scheduled' 2022-06-05 14:40:47 -04:00
Nathan Dwarshuis 730bd0caf8 ENH update packages 2022-06-05 14:40:31 -04:00
Nathan Dwarshuis df094e5344 FIX too many deadlined tasks 2022-06-05 13:32:17 -04:00
Nathan Dwarshuis 0b2b8d7c5a ENH update agenda itemizer 2022-06-05 13:26:33 -04:00
Nathan Dwarshuis d1ffcee540 ENH update archive functions to properly display iterators 2022-06-05 13:15:27 -04:00
Nathan Dwarshuis 1fc1f34df8 ENH kinda fix the incubator itemizer 2022-06-05 12:53:57 -04:00
Nathan Dwarshuis 1d3b70ac5b ENH update iterator itemizer 2022-06-05 12:52:09 -04:00
Nathan Dwarshuis cc1b881d40 ENH update status functions 2022-06-05 12:47:32 -04:00
Nathan Dwarshuis 4ae05ea339 ENH change action network status to use child scheduled timestamps (kinda) 2022-06-05 12:38:04 -04:00
Nathan Dwarshuis 69237c720e ENH make buffer status trees accululate scheduled timestamps 2022-06-05 12:27:12 -04:00
Nathan Dwarshuis a74dd98e4d WIP update action buffer status to use aggregated child scheduled timestamps 2022-06-02 23:35:20 -04:00
Nathan Dwarshuis edf2480b6f ENH make rankfold function accumulate "stuff" in parallel 2022-06-02 18:09:24 -04:00
Nathan Dwarshuis fb3b8f997d FIX typo 2022-06-02 17:33:53 -04:00
Nathan Dwarshuis e4a5de7ea2 Merge branch 'plan_trees' 2022-06-01 22:58:10 -04:00
Nathan Dwarshuis 40ec33fa5c ENH update packages 2022-05-17 18:44:02 -04:00
27 changed files with 2298 additions and 1456 deletions

4
.gitignore vendored
View File

@ -2,7 +2,9 @@
!.gitignore
!README.org
!init.el
!install_deps
!straight-boot.el
!runtime_pkgs
!bin
# track versions of installed packages
!straight

21
bin/autogit Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
### Add org file changes to git repo
for REPO in $1
do
echo "repository: $REPO"
eval "cd $REPO"
# check for errors
if ! git fsck --strict > /dev/null 2>&1; then
notify-send "Org git commit failed."
fi
# remove deleted files
git ls-files --deleted -z | xargs -0 git rm >/dev/null 2>&1
# add new files
git add . >/dev/null 2>&1
git commit -m "$(date)"
# push
git push origin master
done
echo Done

5
bin/emacs-start Executable file
View File

@ -0,0 +1,5 @@
#! /bin/bash
# start the emacs daemon
emacs --fg-daemon > /dev/null 2>&1

5
bin/emacs-stop Executable file
View File

@ -0,0 +1,5 @@
#! /bin/bash
# stop the emacs daemon
emacsclient --eval "(kill-emacs)"

76
bin/emacs_ctl Executable file
View File

@ -0,0 +1,76 @@
#!/bin/bash
state=/tmp/emacs-use-dark-mode
start_daemon () {
emacs --fg-daemon > /dev/null 2>&1
}
stop_daemon () {
emacsclient --eval "(kill-emacs)" 2> /dev/null
}
kill_daemon () {
killall emacsclient 2> /dev/null
killall emacs 2> /dev/null
}
restart_daemon () {
stop_daemon
start_daemon
}
hard_restart_daemon () {
kill_daemon
start_daemon
}
set_light () {
echo 0 > "$state"
}
set_dark () {
echo 1 > "$state"
}
if [[ -z "$1" ]]; then
echo "Need a command to perform"
exit 1
elif [[ "$1" == "start" ]]; then
start_daemon &
elif [[ "$1" == "stop" ]]; then
stop_daemon
elif [[ "$1" == "kill" ]]; then
kill_daemon
elif [[ "$1" == "restart" ]]; then
restart_daemon &
elif [[ "$1" == "hard_restart" ]]; then
hard_restart_daemon &
elif [[ "$1" == "theme" ]]; then
if [[ "$2" == "toggle" ]]; then
# if no state file assume light theme
if [[ ! -f "$state" ]]; then
set_light
elif [[ "$(cat $state)" == 0 ]]; then
set_dark
else
set_light
fi
elif [[ "$2" == "light" ]]; then
set_light
elif [[ "$2" == "dark" ]]; then
set_dark
else
echo 'Invlalid theme command'
exit 1
fi
if [ "$3" == "restart" ]; then
restart_daemon &
elif [ "$3" == "hard_restart" ]; then
hard_restart_daemon &
fi
else
echo 'Invalid command'
exit 1
fi

10
bin/mbsync Executable file
View File

@ -0,0 +1,10 @@
#! /bin/sh
rcpath=$XDG_CONFIG_HOME/emacs/local/lib/mu4e/mbsyncrc
if [ ! -f $rcpath ]; then
echo "mbsyncrc does not exist"
exit 1
fi
/usr/bin/mbsync -c "$rcpath" "$@"

12
bin/mu-index-emacs-maybe Executable file
View File

@ -0,0 +1,12 @@
#! /bin/sh
## indexes mu depending on whether emacs mu4e is running
## assume the mu server is only started by mu4e
if pgrep -fx '/usr/bin/mu server' > /dev/null; then
echo indexing mu through emacs
emacsclient -e '(mu4e-update-index)' > /dev/null
else
echo indexing mu natively
mu index
fi

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 14 KiB

38
init.el
View File

@ -1,42 +1,6 @@
;;;; init the straight package manager
;; disable automatic package updates
(setq straight-check-for-modifications nil)
;; watch for repo modifications if we have python3 and watchexec
;; otherwise just use a save hook
;; (setq straight-check-for-modifications
;; (if (and (executable-find "python3")
;; (executable-find "watchexec"))
;; '(watch-files find-when-checking)
;; '(check-on-save find-when-checking)))
;; add pinned packages to straight
;; (setq straight-profiles
;; '((nil . "default.el")
;; ;; Packages which are pinned to a specific commit.
;; (pinned . "pinned.el")))
;; bootstrap straight
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
;; load experimental straight functions for pinning
;; (autoload #'straight-x-pull-all "straight-x")
;; (autoload #'straight-x-freeze-versions "straight-x")
;; install use-package itself
(straight-use-package 'use-package)
(load-file (expand-file-name "straight-boot.el" user-emacs-directory))
;; configure all config paths before anything else is loaded
(use-package no-littering :straight t)

View File

@ -1,18 +0,0 @@
#!/bin/bash
## Install all dependencies for emacs to run at full capacity
if emacs -batch -l "init.el"; then
IFS=' ' read -r -a emacs_pkgs \
< <(emacs -batch -l "init.el" --eval \
'(print (format "pkgs: %s" (s-join " " (nd/get-dependencies (list :pacman :aur)))))' \
2>/dev/null | \
sed -n -e 's/"pkgs: \(.*\)"/\1/p')
echo "Emacs requires the following system pkgs: ${emacs_pkgs[*]}"
else
echo "Could not get list of emacs dependencies."
emacs_pkgs=()
fi
MAKEFLAGS="-j$(nproc)" \
yay --needed --noconfirm --norebuild --removemake -S "${emacs_pkgs[@]}"

1
local/lib/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
mu4e

View File

@ -36,16 +36,20 @@ left/right slot."
;; monad-y things
(defmacro either>>= (either form)
"Bind EITHER to FORM where the right slot is bound to 'it'."
(declare (indent 1))
(defmacro either-as>>= (sym either form)
"Bind EITHER to FORM where the right slot is bound to SYM."
(declare (indent 2))
(let ((e (make-symbol "--either")))
`(let ((,e ,either))
(pcase ,e
(`(:left ,_) ,e)
(`(:right ,it) ,form)
(`(:right ,,sym) ,form)
(e (error "Learn to use monads, dummy; this isn't one: %s" e))))))
(defmacro either>>= (either form)
"Bind EITHER to FORM where the right slot is bound to 'it'."
`(either-as>>= it ,either ,form))
(defun either-foldM (fun init xs)
"Mondically apply FUN to XS (a list).

File diff suppressed because it is too large Load Diff

View File

@ -1965,7 +1965,7 @@ and slow."
(org-ml-to-string)
(org-ml-build-node-property org-x-prop-created))))
(org-ml-update-this-headline*
(org-ml-headline-map-node-properties* (cons np it) it))))
(org-ml-headline-map-node-properties* (-snoc it np) it))))
(defun org-x-set-expired-time (&optional arg)
"Set the expired time of the current headline.

View File

@ -0,0 +1,223 @@
* projects
** TODO this is an active project
:PROPERTIES:
:ID: a98df83f-bc98-4767-b2bc-f1054dbf89f9
:CREATED: [2022-06-07 Tue 22:41]
:END:
*** NEXT this is a project task
:PROPERTIES:
:ID: 2db32ed8-0a1f-488c-8e41-dd3549ac8b1b
:CREATED: [2022-06-07 Tue 22:41]
:END:
** TODO this is an active project (scheduled)
:PROPERTIES:
:ID: 3788c7bc-390e-4caf-af8e-06831ff3276b
:CREATED: [2022-06-10 Fri 19:29]
:END:
*** TODO this is a scheduled task
SCHEDULED: <2022-06-10 Fri>
:PROPERTIES:
:ID: 19a7d558-e087-47ec-b686-feee29d352a1
:CREATED: [2022-06-10 Fri 19:29]
:END:
** TODO this is a waiting project
:PROPERTIES:
:ID: 26586b4d-7fc7-4a9f-b86f-e3c26a83a507
:CREATED: [2022-06-10 Fri 19:18]
:END:
*** WAIT this is a waiting subtask
:PROPERTIES:
:ID: cf58280a-ac7c-4951-a3de-a3f79f92f2b0
:CREATED: [2022-06-10 Fri 19:18]
:END:
** HOLD this is a held project
:PROPERTIES:
:ID: d5065c21-b717-41fe-8232-22afbd6b2243
:CREATED: [2022-06-10 Fri 19:14]
:END:
*** TODO this is a subtask masked by a hold
:PROPERTIES:
:ID: ee9c6ec9-7626-40f5-9f06-3c91bc1338ed
:CREATED: [2022-06-10 Fri 19:14]
:END:
** TODO this is a project held by a subtask
:PROPERTIES:
:ID: a771dc18-0c5f-4196-903d-ada3c8a9d817
:CREATED: [2022-06-10 Fri 19:15]
:END:
*** HOLD this is a held subtask
:PROPERTIES:
:ID: 4f743d31-2df4-4e32-85de-cedae0cffeb2
:CREATED: [2022-06-10 Fri 19:15]
:END:
** TODO this is a stuck project
:PROPERTIES:
:CREATED: [2022-06-07 Tue 22:41]
:ID: c93fe96f-7130-4433-a960-98c07a3b21f4
:END:
*** TODO this is a subtask
:PROPERTIES:
:ID: 2def43a3-e814-4793-adc7-38ddbbf30411
:CREATED: [2022-06-10 Fri 19:08]
:END:
** DONE this is a completed project
CLOSED: [2022-06-10 Fri 19:10]
:PROPERTIES:
:ID: 87682ef6-cd4c-41a7-8f0d-6ac41e572b05
:CREATED: [2022-06-10 Fri 19:10]
:END:
*** DONE this is a completed subtask
CLOSED: [2022-06-10 Fri 19:26]
:PROPERTIES:
:ID: 61866e72-7153-44d1-ae0f-af527fe5f9f4
:CREATED: [2022-06-10 Fri 19:10]
:END:
*** CANC this is a cancelled task
CLOSED: [2022-06-10 Fri 19:26]
:PROPERTIES:
:ID: 322af50a-f431-4940-8caf-cc5acdf5a555
:CREATED: [2022-06-10 Fri 19:25]
:END:
** CANC this is a cancelled project
CLOSED: [2022-06-10 Fri 19:13]
:PROPERTIES:
:ID: eca77dea-4a40-4697-a69d-d1ec798fe9ba
:CREATED: [2022-06-10 Fri 19:13]
:END:
*** TODO this is a subtask masked by a cancel
:PROPERTIES:
:ID: a834a585-acd1-44e9-8e62-17793146d6ab
:CREATED: [2022-06-10 Fri 19:13]
:END:
** TODO this is a deadlined project
DEADLINE: <2022-06-12 Sun>
:PROPERTIES:
:ID: 51798071-f860-48fb-b3d8-e526ce270290
:CREATED: [2022-06-12 Sun 18:09]
:END:
*** NEXT subtask
:PROPERTIES:
:ID: fc1f3dda-a4b7-4b0d-b37c-fa67e112023a
:CREATED: [2022-06-12 Sun 18:10]
:END:
:LOGGING:
- State "NEXT" from "TODO" [2022-06-12 Sun 18:10]
:END:
* iterators
** TODO this is an iterator
:PROPERTIES:
:ID: 2711e9b9-f765-415d-930f-b7ff16b3140b
:CREATED: [2022-06-07 Tue 22:41]
:PARENT_TYPE: iterator
:ARCHIVE: archive.org_archive::* something
:TIME_SHIFT: +1w
:END:
*** TODO repeated thing
SCHEDULED: <2022-06-07 Tue>
:PROPERTIES:
:ID: b02619f6-b9da-4d78-acdd-409a4c5d747b
:CREATED: [2022-06-07 Tue 22:41]
:END:
*** TODO repeated thing
SCHEDULED: <2022-06-14 Tue>
:PROPERTIES:
:ID: d1576921-41b6-4ca9-b775-8f4997983bc4
:CREATED: [2022-06-07 Tue 22:43]
:END:
*** TODO repeated thing
SCHEDULED: <2022-06-21 Tue>
:PROPERTIES:
:ID: a3653d7d-fd29-422e-83ac-06df2594c747
:CREATED: [2022-06-07 Tue 22:43]
:END:
** TODO this is an empty iterator
:PROPERTIES:
:ID: 15cfb339-358a-49ce-8cb3-9bcfb1c5a126
:CREATED: [2022-06-12 Sun 16:40]
:PARENT_TYPE: iterator
:ARCHIVE: archive.org_archive::* something
:TIME_SHIFT: +1w
:END:
** DONE this is a complete iterator
CLOSED: [2022-06-10 Fri 19:13]
:PROPERTIES:
:ID: f2002c13-5ddd-46ec-9895-67182d89dd19
:CREATED: [2022-06-12 Sun 16:44]
:PARENT_TYPE: iterator
:ARCHIVE: archive.org_archive::* something
:TIME_SHIFT: +1w
:END:
*** DONE subiter 1
CLOSED: [2022-06-10 Fri 19:13]
:PROPERTIES:
:ID: fa290644-ba9a-42ac-a25a-a0cca5704d44
:CREATED: [2022-06-12 Sun 16:44]
:END:
*** DONE subiter 2
CLOSED: [2022-06-12 Sun 16:44]
:PROPERTIES:
:ID: 4ec18d87-dda9-43a6-b5e3-4a633160cfec
:CREATED: [2022-06-12 Sun 16:44]
:END:
*** DONE subiter 3
CLOSED: [2022-06-12 Sun 16:44]
:PROPERTIES:
:ID: 30dfcebe-33e8-4190-9460-9bb439cb75e1
:CREATED: [2022-06-12 Sun 16:44]
:END:
** DONE this is a complete empty iterator
CLOSED: [2022-06-10 Fri 19:13]
:PROPERTIES:
:ID: 6ac25533-ba98-4cce-b8a3-9dcf2ada5d77
:CREATED: [2022-06-12 Sun 17:01]
:PARENT_TYPE: iterator
:ARCHIVE: archive.org_archive::* something
:TIME_SHIFT: +1w
:END:
** TODO iterator with projects
:PROPERTIES:
:ID: 6b33c33b-2ce8-405d-b2bb-917305dfa840
:CREATED: [2022-06-12 Sun 17:10]
:PARENT_TYPE: iterator
:ARCHIVE: archive.org_archive::* something
:TIME_SHIFT: +1w
:END:
*** TODO subiter project
:PROPERTIES:
:ID: ed5ff869-2d98-457e-8718-ebb0ca9c1e72
:CREATED: [2022-06-12 Sun 17:10]
:END:
**** TODO subsubiter task
SCHEDULED: <2022-06-12 Sun>
:PROPERTIES:
:ID: b49556a8-0ec3-487d-84bd-78bd29c9eaef
:CREATED: [2022-06-12 Sun 17:10]
:END:
**** TODO subsubiter task
SCHEDULED: <2022-06-14 Tue>
:PROPERTIES:
:ID: f6c2b3ff-66d6-418e-90ec-0d0643bd16ea
:CREATED: [2022-06-12 Sun 17:10]
:END:
* tasks
** TODO this is a standalone task
:PROPERTIES:
:ID: cda28b1a-2b7d-48ea-b1df-e006be799c2f
:CREATED: [2022-06-07 Tue 22:43]
:END:
* metadata tests
** header with a nice tag :nice_tag:
:PROPERTIES:
:ID: c5d3083b-7079-4f76-b8f8-0d994879d8f7
:CREATED: [2022-06-07 Tue 22:43]
:END:
*** TODO task with nice parent tag
:PROPERTIES:
:ID: 3de25d74-b90e-4c77-9f7f-8190187e7ed0
:CREATED: [2022-06-07 Tue 22:43]
:END:
** TODO task with a random local tag :random_tag:
:PROPERTIES:
:ID: e4876e82-c8c8-4ff8-ad23-f78e3904b927
:CREATED: [2022-06-12 Sun 16:34]
:END:

View File

@ -0,0 +1,10 @@
* TODO this is a project all by itself with one goal
:PROPERTIES:
:ID: 49436f7a-629b-4686-b681-c70c7a116ce7
:CREATED: [2022-06-07 Tue 22:45]
:END:
** TODO project task
:PROPERTIES:
:ID: 2f507e50-78ba-4f81-83ce-988358b98200
:CREATED: [2022-06-07 Tue 22:45]
:END:

View File

@ -0,0 +1,10 @@
* 2022 :Y22:
** June :M06:
*** 2022-06-07 :D07:
**** TODO buy boatload of cement for bunker
SCHEDULED: <2022-06-07 Tue>
:PROPERTIES:
:ID: 25ffaad9-d996-48b7-a387-10aa1d46fba8
:CREATED: [2022-06-07 Tue 22:52]
:END:

View File

@ -0,0 +1,18 @@
* TODO this endpoint goal has a parent
:PROPERTIES:
:ID: c2289aeb-f1f4-4e26-8878-f64157d3f724
:CREATED: [2022-06-07 Tue 22:37]
:END:
:X_PARENT_LINKS:
- LTG :: [[id:d6e92244-b1a0-4161-83bc-5a1f0af5541d][/be good at something]]
:END:
** TODO this is a child goal
:PROPERTIES:
:ID: c90f3351-cee6-426f-98ab-d5e9518983ac
:CREATED: [2022-06-07 Tue 22:38]
:END:
* TODO this one doesn't
:PROPERTIES:
:ID: 48322fb9-27c1-455b-a514-d8a4b4da5c2e
:CREATED: [2022-06-07 Tue 22:38]
:END:

View File

@ -0,0 +1,15 @@
* TODO be good at something
:PROPERTIES:
:ID: d6e92244-b1a0-4161-83bc-5a1f0af5541d
:CREATED: [2022-06-07 Tue 22:36]
:END:
* TODO don't be a dick
:PROPERTIES:
:ID: 06592f95-9cf5-4d7e-8546-da7796d76813
:CREATED: [2022-06-07 Tue 22:36]
:END:
** TODO say nice things
:PROPERTIES:
:ID: adc08873-b9fa-423d-950d-db645db05fe5
:CREATED: [2022-06-07 Tue 22:36]
:END:

View File

@ -0,0 +1,49 @@
* 2022 :Y22:
** Quarter 2 :Q2:
*** environmental :_env:
**** TODO something good for the environment
:PROPERTIES:
:ID: aa3e549c-b309-40a2-a687-6d9791653a18
:CREATED: [2022-06-07 Tue 22:48]
:END:
*** financial :_fin:
*** intellectual :_int:
*** metaphysical :_met:
*** physical :_phy:
**** TODO something physically pleasing
:PROPERTIES:
:ID: d6d4dbd9-4d8c-4a1c-81a4-a26776b9627b
:CREATED: [2022-06-07 Tue 22:48]
:END:
*** professional :_pro:
*** recreational :_rec:
*** social :_soc:
** Quarter 3 :Q3:
*** environmental :_env:
*** financial :_fin:
**** TODO make it raaaaaaaain
:PROPERTIES:
:ID: a1a68f4f-1749-425b-afdc-ef79bbe10417
:CREATED: [2022-06-07 Tue 22:49]
:END:
*** intellectual :_int:
**** TODO something that tickles my brain
:PROPERTIES:
:ID: 63259156-ce5d-442a-b6e4-fd4053239db5
:CREATED: [2022-06-07 Tue 22:48]
:END:
*** metaphysical :_met:
*** physical :_phy:
*** professional :_pro:
**** TODO be a wall street bro
:PROPERTIES:
:ID: 9e63d6aa-f217-422b-a996-d9612c972855
:CREATED: [2022-06-07 Tue 22:49]
:END:
*** recreational :_rec:
*** social :_soc:
**** TODO get a life
:PROPERTIES:
:ID: e9c2474f-1c27-4ba4-b46e-5d4e40d560b8
:CREATED: [2022-06-07 Tue 22:49]
:END:

View File

@ -0,0 +1,15 @@
* TODO don't die of hunger
:PROPERTIES:
:ID: 4e7a934a-62ec-4ed5-ab84-e9e7e745b495
:CREATED: [2022-06-07 Tue 22:39]
:END:
* TODO don't get nuked
:PROPERTIES:
:ID: 26bbf72f-51cf-40ba-a7dd-ca689bcd1627
:CREATED: [2022-06-07 Tue 22:40]
:END:
** TODO make a bunker
:PROPERTIES:
:ID: e16514a0-626c-476f-b647-1eaf6580c57a
:CREATED: [2022-06-07 Tue 22:40]
:END:

View File

@ -0,0 +1,71 @@
* 2022 :Y22:
** June :M06:
*** TODO 2022-06-06
SCHEDULED: <2022-06-06 Mon>
:PROPERTIES:
:ID: 76534d4a-e516-495c-b083-5b053c44af1d
:X-WEEK-LEN: 7
:END:
**** TODO Monday
SCHEDULED: <2022-06-06 Mon>
:PROPERTIES:
:ID: 6b53ee41-b467-4bfb-a580-6218a3c78068
:END:
***** DONE be social
CLOSED: [2022-08-07 Sun 23:28]
:PROPERTIES:
:ID: f02504bd-45f8-4da6-936e-1b15e043f3d4
:CREATED: [2022-06-07 Tue 22:50]
:END:
:LOGGING:
- State "DONE" from "TODO" [2022-08-07 Sun 23:28]
:END:
**** TODO Tuesday
SCHEDULED: <2022-06-07 Tue>
:PROPERTIES:
:ID: 93955806-3b04-4ee5-8be5-fb8a9117c6b7
:END:
**** TODO Wednesday
SCHEDULED: <2022-06-08 Wed>
:PROPERTIES:
:ID: 8b0de76b-fff9-4890-9e85-8f4ccabf4f12
:END:
***** TODO learn about bitcoin
:PROPERTIES:
:ID: ed1406ad-1231-46de-b026-8067411133dc
:CREATED: [2022-06-07 Tue 22:51]
:END:
**** TODO Thursday
SCHEDULED: <2022-06-09 Thu>
:PROPERTIES:
:ID: f977dca9-c8e6-47d0-a9cd-eba8194fcb96
:END:
**** TODO Friday
SCHEDULED: <2022-06-10 Fri>
:PROPERTIES:
:ID: 1d926eef-94c9-4b57-8cb0-225a308711e9
:END:
***** CANC learn to gamble
CLOSED: [2022-08-07 Sun 23:28]
:PROPERTIES:
:ID: ab077745-4041-458f-90ec-02aaecb2729d
:CREATED: [2022-06-07 Tue 22:51]
:END:
:LOGGING:
- State "CANC" from "TODO" [2022-08-07 Sun 23:28]
:END:
**** TODO Saturday
SCHEDULED: <2022-06-11 Sat>
:PROPERTIES:
:ID: 24659f4b-1e0d-4022-a4cc-359a7bb15592
:END:
***** TODO build nuclear bunker
:PROPERTIES:
:ID: bfe5d3c1-3b7d-46f9-9c60-8a2bdec08d6d
:CREATED: [2022-06-07 Tue 22:51]
:END:
**** TODO Sunday
SCHEDULED: <2022-06-12 Sun>
:PROPERTIES:
:ID: 541245c4-e51d-48ae-ab51-e29325d5c9fe
:END:

View File

@ -0,0 +1,442 @@
;;; org-x-dag-test.el --- Smesh my API -*- lexical-binding: t -*-
;; Copyright (C) 2015 Free Software Foundation, Inc.
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; run tests with this (in the org-x directory above this one):
;; emacs -batch -l init.el -l local/lib/org-x/test/org-x-dag-test.el -f buttercup-run
;;; Code:
(require 's)
(require 'dash)
(require 'either)
(require 'org-x)
(defun setup ()
(setq org-directory (nd/expand-lib-directory "org-x/test/dag")
org-x-action-files (list "action1.org" "action2.org")
org-x-endpoint-goal-file "endpoint.org"
org-x-lifetime-goal-file "lifetime.org"
org-x-survival-goal-file "survival.org"
org-x-daily-plan-file "daily.org"
org-x-weekly-plan-file "weekly.org"
org-x-quarterly-plan-file "quarterly.org"))
(defun partition-timestamp (s)
(->> (org-ml-from-string 'timestamp s)
(org-x-dag-partition-timestamp)))
(defun timestamp-to-datetime (s)
(->> (org-ml-from-string 'timestamp s)
(org-ml-timestamp-get-start-time)))
(defun timestamp-to-epoch (s)
(->> (org-ml-from-string 'timestamp s)
(org-ml-timestamp-get-start-time)
(org-ml-time-to-unixtime)))
(buttercup-define-matcher :to-be-left-with (a x)
(cl-destructuring-bind
((a-expr . a) (x-expr . x))
(mapcar #'buttercup--expr-and-value (list a x))
(either-from a
(lambda (l)
(if (equal l x)
`(t . ,(format "Expected %s left with %s" a-expr x))
`(nil . ,(format "Expected %s left with %s, but got left with %s"
a-expr x l))))
(lambda ()
`(nil . ,(format "Expected %s to be a left, got a right" a-expr))))))
(buttercup-define-matcher :to-be-right-with (a x)
(cl-destructuring-bind
((a-expr . a) (x-expr . x))
(mapcar #'buttercup--expr-and-value (list a x))
(either-from a
(lambda ()
`(nil . ,(format "Expected %s to be a right, got a left" a-expr)))
(lambda (r)
(if (equal r x)
`(t . ,(format "Expected %s right with %s" a-expr x))
`(nil . ,(format "Expected %s right with %s, but got right with %s"
a-expr x r)))))))
(defun split-plists (eq-funs a b)
(cl-flet
((get-keys
(x)
(->> (-partition 2 x)
(-map #'car)))
(key-eq
(k)
(let ((av (plist-get a k))
(bv (plist-get b k))
(f (or (plist-get eq-funs k) #'equal)))
(funcall f av bv))))
(let* ((a* (get-keys a))
(b* (get-keys b))
(a- (-difference a* b*))
(b- (-difference b* a*))
(common (->> (-intersection a* b*)
(--reduce-from (if (key-eq it) acc
(cons (list it
(plist-get a it)
(plist-get b it))
acc))
nil))))
`(,a- ,b- ,common))))
(defun plists-equal-p (a b)
(equal (split-plists nil a b) '(nil nil nil)))
(defun element-equal-p (a b)
;; NOTE this does not compare children of elements/objects
(cl-flet
((get-useful-props
(node)
(->> (org-ml-get-all-properties node)
(-partition 2)
(--remove (memq (car it) '(:parent :begin :end :contents-begin :contents-end)))
(-flatten-n 1))))
(and (eq (org-ml-get-type a) (org-ml-get-type b))
(plists-equal-p (get-useful-props a) (get-useful-props b)))))
(defun pts-equal-p (a b)
(-let (((&plist :datetime da :repeater ra :warning wa :length la) a)
((&plist :datetime db :repeater rb :warning wb :length lb) b))
(and (equal da db)
(equal ra rb)
(equal wa wb)
(equal la lb))))
(defun plist-diff-msg (eq-funs expr a b)
(-let (((a-diff b-diff common-diffs) (split-plists eq-funs a b)))
(cond
((and a-diff b-diff)
(format "Expected %s to have keys '%s' and not to have keys '%s'"
expr b-diff a-diff))
(a-diff
(format "Expected %s not to have keys '%s'" expr a-diff))
(b-diff
(format "Expected %s to have keys '%s'" expr b-diff))
(common-diffs
(-let (((as bs)
(->> common-diffs
(--map `((,(car it) ,(nth 1 it)) (,(car it) ,(nth 2 it))))
(apply #'-zip-lists))))
(format "Expected %s to have key/value pairs '%s' but instead had '%s'"
expr as bs))))))
(defun status-diff-msg (eq-funs expr type subtype data to-test)
(-let* (((type* . rest) to-test)
((subtype* last) (-split-at (length subtype) rest))
(data* (car last)))
(cond
((not (eq type* type))
(format "Expected %s to have type '%s' but instead had type '%s'"
expr type type*))
((and subtype (not (equal subtype* subtype)))
(format "Expected %s to have subtype '%s' but instead had subtype '%s'"
expr subtype subtype*))
(t
(plist-diff-msg eq-funs expr data data*)))))
(defun ancestry-diff-msg (eq-funs expr ancestry inner-fun to-test)
(declare (indent 3))
(-let* (((&plist :ancestry A :local L) to-test))
(or (plist-diff-msg eq-funs expr A ancestry)
(funcall inner-fun L))))
(defun buffer-status-diff-msg (expr type inner-fun to-test)
(declare (indent 3))
(-let (((type* . rest) to-test))
(if (eq type type*) (funcall inner-fun rest)
(format "Expected buffer-status %s to be type '%s' but instead was type '%s'"
expr type type*))))
(defun right-diff-msg (expr inner-fun to-test)
(declare (indent 2))
(either-from to-test
(lambda ()
(format "Expected %s to be a right, got a left" expr))
inner-fun))
;; TODO this will eventually have canceled as part of it
(buttercup-define-matcher :id-to-be-tlg (to-test type status)
(cl-destructuring-bind
((test-expr . test) (_ . y) (_ . s))
(->> (list to-test type status)
(-map #'buttercup--expr-and-value))
(let ((f (->> (-partial #'status-diff-msg nil test-expr s nil nil)
(-partial #'buffer-status-diff-msg test-expr y)
(-partial #'right-diff-msg test-expr))))
(-if-let (m (funcall f (org-x-dag-id->bs test)))
(cons nil m)
(cons t (format "Expected '%s' not to be the indicated action" test-expr))))))
(buttercup-define-matcher :id-to-be-action (to-test canceled held deadline
type subtype data)
(cl-destructuring-bind
((test-expr . test) (_ . c) (_ . h) (_ . e) (_ . y) (_ . s) (_ . d))
(->> (list to-test canceled held deadline type subtype data)
(-map #'buttercup--expr-and-value))
(let* ((ancestry (list :canceled-parent-p c
:held-parent-p h
:parent-deadline e))
(ancestry-eq-funs nil)
(local-eq-funs (list :sched #'element-equal-p
:child-scheds #'pts-equal-p))
(f (->> (-partial #'status-diff-msg local-eq-funs test-expr y s d)
(-partial #'ancestry-diff-msg ancestry-eq-funs test-expr ancestry)
(-partial #'buffer-status-diff-msg test-expr :action)
(-partial #'right-diff-msg test-expr))))
(-if-let (m (funcall f (org-x-dag-id->bs test)))
(cons nil m)
(cons t (format "Expected '%s' not to be the indicated action" test-expr))))))
(buttercup-define-matcher :id-to-be-qtp (to-test status deadline date)
(cl-destructuring-bind
((test-expr . test) (_ . s) (_ . d) (_ . D))
(->> (list to-test status deadline date)
(-map #'buttercup--expr-and-value))
(let* ((local-eq-funs (list :deadline #'element-equal-p :date #'eq))
(abs-date (org-x-dag-date-to-absolute D))
(data (list :deadline d :date abs-date))
(f (->> (-partial #'status-diff-msg local-eq-funs test-expr s nil data)
(-partial #'buffer-status-diff-msg test-expr :quarterly)
(-partial #'right-diff-msg test-expr))))
(-if-let (m (funcall f (org-x-dag-id->bs test)))
(cons nil m)
(cons t (format "Expected '%s' not to be the indicated action" test-expr))))))
;; (buttercup-define-matcher :id-to-be-wkp (to-test status subtype date)
;; (cl-destructuring-bind
;; ((test-expr . test) (_ . s) (_ . y) (_ . d))
;; (->> (list to-test status subtype date)
;; (-map #'buttercup--expr-and-value))
;; (let* ((abs-date (org-x-dag-date-to-absolute d))
;; (f (->> (-partial #'status-diff-msg nil test-expr y `(,s) abs-date)
;; (-partial #'buffer-status-diff-msg test-expr :weekly)
;; (-partial #'right-diff-msg test-expr))))
;; (-if-let (m (funcall f (org-x-dag-id->bs test)))
;; (cons nil m)
;; (cons t (format "Expected '%s' not to be the indicated action" test-expr))))))
;; (buttercup-define-matcher :to-have-same-as-plist (a b)
;; (cl-destructuring-bind
;; ((a-expr . a) (b-expr . b))
;; (mapcar #'buttercup--expr-and-value (list a b))
;; (let* ((a* (-partition 2 a))
;; (b* (-partition 2 b))
;; (a-diff (->> (-difference a* b*) (--map (format "%S" it)) (s-join ", ")))
;; (b-diff (->> (-difference b* a*) (--map (format "%S" it)) (s-join ", "))))
;; (cond
;; ((and a-diff b-diff)
;; (cons nil (format "Expected %s to have pairs '%s' and not to have pairs '%s'"
;; a-expr b-diff a-diff)))
;; (a-diff
;; (cons nil (format "Expected %s not to have pairs '%s'" a-expr a-diff)))
;; (b-diff
;; (cons nil (format "Expected %s to have pairs '%s'" a-expr b-diff)))
;; (t
;; (cons t (format "Expected %s not to have same items as '%s'"
;; a-expr b-expr)))))))
(defmacro bs-ltg-active (id)
(declare (indent 1))
`(expect (org-x-dag-id->bs ,id) :to-be-right-with '(:lifetime :active)))
(describe "Sync DAG"
(before-all
(setup))
(it "Sync completes without error"
(expect (org-x-dag-sync t) :not :to-throw))
(describe "Lifetime buffer statuses"
(it "Active (toplevel)"
(expect "d6e92244-b1a0-4161-83bc-5a1f0af5541d" :id-to-be-tlg
:lifetime :active))
(it "Active (nested)"
(expect "adc08873-b9fa-423d-950d-db645db05fe5" :id-to-be-tlg
:lifetime :active)))
(describe "Survival buffer statuses"
(it "Active (toplevel)"
(expect "4e7a934a-62ec-4ed5-ab84-e9e7e745b495" :id-to-be-tlg
:survival :active))
(it "Active (nested)"
(expect "e16514a0-626c-476f-b647-1eaf6580c57a" :id-to-be-tlg
:survival :active)))
(describe "Action buffer statuses"
(describe "Projects"
(it "Active"
(expect "a98df83f-bc98-4767-b2bc-f1054dbf89f9" :id-to-be-action
nil nil nil :sp-proj '(:proj-active) '(:child-scheds nil)))
(it "Active (scheduled)"
(let ((sched (partition-timestamp "<2022-06-10 Fri>")))
(expect "3788c7bc-390e-4caf-af8e-06831ff3276b" :id-to-be-action
nil nil nil :sp-proj '(:proj-active)
`(:child-scheds (,sched)))))
(it "Wait"
(expect "26586b4d-7fc7-4a9f-b86f-e3c26a83a507" :id-to-be-action
nil nil nil :sp-proj '(:proj-wait) nil))
(it "Held (toplevel)"
(expect "d5065c21-b717-41fe-8232-22afbd6b2243" :id-to-be-action
nil nil nil :sp-proj '(:proj-held) nil))
(it "Held (subtask)"
(expect "a771dc18-0c5f-4196-903d-ada3c8a9d817" :id-to-be-action
nil nil nil :sp-proj '(:proj-held) nil))
(it "Stuck"
(expect "c93fe96f-7130-4433-a960-98c07a3b21f4" :id-to-be-action
nil nil nil :sp-proj '(:proj-stuck) nil))
(it "Completed"
(expect "87682ef6-cd4c-41a7-8f0d-6ac41e572b05" :id-to-be-action
nil nil nil :sp-proj '(:proj-complete)
'(:canceledp nil :epoch 1654902600)))
(it "Canceled"
(expect "eca77dea-4a40-4697-a69d-d1ec798fe9ba" :id-to-be-action
nil nil nil :sp-proj '(:proj-complete)
'(:canceledp t :epoch 1654902780))))
(describe "Project Tasks"
(it "Active"
(expect "2db32ed8-0a1f-488c-8e41-dd3549ac8b1b" :id-to-be-action
nil nil nil :sp-task '(:task-active)
'(:todo "NEXT" :sched nil :dead nil)))
(it "Waiting"
(expect "cf58280a-ac7c-4951-a3de-a3f79f92f2b0" :id-to-be-action
nil nil nil :sp-task '(:task-active)
'(:todo "WAIT" :sched nil :dead nil)))
(it "Held"
(expect "4f743d31-2df4-4e32-85de-cedae0cffeb2" :id-to-be-action
nil nil nil :sp-task '(:task-active)
'(:todo "HOLD" :sched nil :dead nil)))
(it "Completed"
(expect "61866e72-7153-44d1-ae0f-af527fe5f9f4" :id-to-be-action
nil nil nil :sp-task '(:task-complete)
'(:canceledp nil :epoch 1654903560)))
(it "Canceled"
(expect "322af50a-f431-4940-8caf-cc5acdf5a555" :id-to-be-action
nil nil nil :sp-task '(:task-complete)
'(:canceledp t :epoch 1654903560)))
(it "Deadlined"
(let ((d (timestamp-to-epoch "<2022-06-12 Sun>")))
(expect "fc1f3dda-a4b7-4b0d-b37c-fa67e112023a" :id-to-be-action
nil nil d :sp-task '(:task-active)
'(:todo "NEXT" :sched nil :dead nil)))))
(describe "Standalone Tasks"
(it "Active"
(expect "cda28b1a-2b7d-48ea-b1df-e006be799c2f" :id-to-be-action
nil nil nil :sp-task '(:task-active)
'(:sched nil :dead nil :todo "TODO"))))
(describe "Iterators"
(it "Active non-empty"
(let ((s0 (partition-timestamp "<2022-06-07 Tue>"))
(s1 (partition-timestamp "<2022-06-14 Tue>"))
(s2 (partition-timestamp "<2022-06-21 Tue>")))
(expect "2711e9b9-f765-415d-930f-b7ff16b3140b" :id-to-be-action
nil nil nil :sp-iter '(:iter-nonempty :nonempty-active)
(list :child-scheds `(,s0 ,s1 ,s2)
:leading-sched-dt (plist-get s2 :datetime)
:dead nil))))
(it "Active non-empty (with project)"
(let ((s0 (partition-timestamp "<2022-06-12 Tue>"))
(s1 (partition-timestamp "<2022-06-14 Tue>")))
(expect "6b33c33b-2ce8-405d-b2bb-917305dfa840" :id-to-be-action
nil nil nil :sp-iter '(:iter-nonempty :nonempty-active)
(list :child-scheds `(,s0 ,s1)
:leading-sched-dt (plist-get s1 :datetime)
:dead nil))))
(it "Active empty"
(expect "15cfb339-358a-49ce-8cb3-9bcfb1c5a126" :id-to-be-action
nil nil nil :sp-iter '(:iter-empty :empty-active) nil))
(it "Complete non-empty"
(expect "f2002c13-5ddd-46ec-9895-67182d89dd19" :id-to-be-action
nil nil nil :sp-iter '(:iter-nonempty :nonempty-complete)
'(:canceledp nil :epoch 1654902780)))
(it "Active empty"
(expect "6ac25533-ba98-4cce-b8a3-9dcf2ada5d77" :id-to-be-action
nil nil nil :sp-iter '(:iter-empty :empty-complete)
'(:canceledp nil :epoch 1654902780))))
(describe "Sub-iterators"
(it "Active task"
(let ((s (partition-timestamp "<2022-06-07 Tue>")))
(expect "b02619f6-b9da-4d78-acdd-409a4c5d747b" :id-to-be-action
nil nil nil :sp-subiter '(:si-task :task-active)
(list :sched s :dead nil))))
(it "Complete task"
(expect "fa290644-ba9a-42ac-a25a-a0cca5704d44" :id-to-be-action
nil nil nil :sp-subiter '(:si-task :task-complete)
'(:canceledp nil :epoch 1654902780)))
(it "Active project"
(let ((s0 (partition-timestamp "<2022-06-12 Sun>"))
(s1 (partition-timestamp "<2022-06-14 Sun>")))
(expect "ed5ff869-2d98-457e-8718-ebb0ca9c1e72" :id-to-be-action
nil nil nil :sp-subiter '(:si-proj :proj-active)
(list :dead nil
:child-scheds `(,s0 ,s1)
:leading-sched-dt (plist-get s1 :datetime)))))))
;; TODO add deadline to this (but in absolute form)
(describe "Quarterly buffer statuses"
(it "Active"
(expect "aa3e549c-b309-40a2-a687-6d9791653a18" :id-to-be-qtp
:active nil '(2022 4 1))))
;; (describe "Weekly buffer statuses"
;; (it "Active (leaf)"
;; (expect "ed1406ad-1231-46de-b026-8067411133dc" :id-to-be-wkp
;; :active :leaf '(2022 6 6))))
(describe "Metadata Tests"
(it "parent tag"
(expect (org-x-dag-id->tags "3de25d74-b90e-4c77-9f7f-8190187e7ed0")
:to-equal '("nice_tag")))
(it "local tag"
(expect (org-x-dag-id->local-tags "e4876e82-c8c8-4ff8-ad23-f78e3904b927")
:to-equal '("random_tag")))))
(provide 'org-x-dag-test)
;;; org-x-dag-test.el ends here

11
runtime_pkgs Executable file
View File

@ -0,0 +1,11 @@
#!/bin/bash
# Print a list of all pacman packages required to run this emacs configuration
this_dir=$(dirname "$0")
emacs -batch \
-l "$this_dir/init.el" \
-f nd/dump-arch-dependencies \
2> /dev/null | \
sed 's/"//'

33
straight-boot.el Normal file
View File

@ -0,0 +1,33 @@
;; disable automatic package updates
(setq straight-check-for-modifications nil)
;; watch for repo modifications if we have python3 and watchexec
;; otherwise just use a save hook
;; (setq straight-check-for-modifications
;; (if (and (executable-find "python3")
;; (executable-find "watchexec"))
;; '(watch-files find-when-checking)
;; '(check-on-save find-when-checking)))
;; add pinned packages to straight
;; (setq straight-profiles
;; '((nil . "default.el")
;; ;; Packages which are pinned to a specific commit.
;; (pinned . "pinned.el")))
;; bootstrap straight
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
;; install use-package itself
(straight-use-package 'use-package)

View File

@ -1,139 +1,136 @@
(("ESS" . "e83ac622fe7e3cbfc848481a9257e5ed5c7b5afb")
(("ESS" . "950bf61054bd96d2203ac0457792c0af8dfba721")
("Highlight-Indentation-for-Emacs" . "d88db4248882da2d4316e76ed673b4ac1fa99ce3")
("ace-window" . "0577c426a9833ab107bab46c60d1885c611b2fb9")
("anaconda-mode" . "cbea0fb3182321d34ff93981c5a59f8dd72d82a5")
("annalist.el" . "134fa3f0fb91a636a1c005c483516d4b64905a6d")
("auctex" . "53b82804c9dd9dbea306876f3be84ebacbeb7e74")
("auth-source-xoauth2" . "d3890eaa3a46dc89758ec6b789949e70ae782896")
("avy" . "ba5f035be33693d1a136a5cbeedb24327f551a92")
("beacon" . "bde78180c678b233c94321394f46a81dc6dce1da")
("biblio.el" . "517ec18f00f91b61481214b178f7ae0b8fbc499b")
("blacken" . "764912ada13c3bf57e770fcd978c81a1ce26666a")
("ace-window" . "77115afc1b0b9f633084cf7479c767988106c196")
("anaconda-mode" . "f900bd7656a03aa24ef3295251f266736f7756eb")
("annalist.el" . "e1ef5dad75fa502d761f70d9ddf1aeb1c423f41d")
("auctex" . "ca8c9077c4c889cc11d150af9f0d9bd5914d702e")
("auth-source-xoauth2" . "5d1adfa649bb5a9df20a2fa89f235a55a64b52e4")
("avy" . "be612110cb116a38b8603df367942e2bb3d9bdbe")
("bats-mode" . "fa88930b1baba101ae6474f289a239a236a7d19f")
("beacon" . "85261a928ae0ec3b41e639f05291ffd6bf7c231c")
("biblio.el" . "ee52f6cda82ea6fbc3b400e7b12132595cc0374c")
("blacken" . "3c6eb86ad871ca14fcfd4e5c0e7b285afa1f1f71")
("c-eldoc" . "f4ede1f37f6de583376669735326367d84a0a917")
("cider" . "b2dd4a7d9def83d420424fcaf69fd791198a264b")
("citeproc-el" . "ba49516265fa24b138346c4918d39d19b4de8a62")
("clang-format" . "e48ff8ae18dc7ab6118c1f6752deb48cb1fc83ac")
("clojure-mode" . "b6f41d74904daa9312648f3a7bea7a72fd8e140b")
("company-anaconda" . "da1566db41a68809ef7f91ebf2de28118067c89b")
("citeproc-el" . "54184baaff555b5c7993d566d75dd04ed485b5c0")
("clang-format" . "9f4358fcc8b04018cc1ed46fcc96fc7bfa361a47")
("company-anaconda" . "169252fca79a79da41ef22f2ec0eab0cf1313966")
("company-auctex" . "9400a2ec7459dde8cbf1a5d50dfee4e300ed7e18")
("company-c-headers" . "9d384571b1190e99d0a789e5296176d69a3d0771")
("company-irony" . "b44711dfce445610c1ffaec4951c6ff3882b216a")
("company-math" . "45778f5731c97a21a83e3b965cbde42018709afd")
("company-mode" . "d5145006b948f93e673f439a766da01f636d39fc")
("compat" . "81378ce2549e6c6df5141d459036438cb98b9ad3")
("conda.el" . "7a34e06931515d46f9e22154762e06e66cfbc81c")
("csv-mode" . "53beddc207864b0c3f81da85b59245dff8eea5ce")
("dash.el" . "76606f90774c5349f7adac20c33e6d37a1939a1f")
("delight" . "70cb8cec9e5eb2c24364e065d85c2ea8f14a587c")
("dired-du" . "4ce114a0195b852022a81b05f0c8e0cbbc1ed013")
("dired-hacks" . "7c0ef09d57a80068a11edc74c3568e5ead5cc15a")
("dockerfile-mode" . "b63a3d12b7dea0cb9efc7f78d7ad5672ceab2a3f")
("ebib" . "0e243a78f435038dda31953c5b48cbddf2a89e27")
("el-get" . "a620c91fe7d6d482c0e7538df75e10af0af1bb16")
("elpy" . "1746e7009000b7635c0ea6f1559018143aa61642")
("emacs-async" . "c78bab7506a70a735d2c3deab13fa87bf44a83d3")
("emacs-buttercup" . "ceedad5efa797e860dbb356bc2c3028a4e0321ec")
("emacs-calfw" . "03abce97620a4a7f7ec5f911e669da9031ab9088")
("emacs-dashboard" . "1e691b346b9220b73337fd4962bbe6ef775ad9e7")
("emacs-format-all-the-code" . "828280eaf3b46112e17746a7d03235570a633425")
("emacs-htmlize" . "dd27bc3f26efd728f2b1f01f9e4ac4f61f2ffbf9")
("emacs-language-id" . "5325af36d9cd726de47a698ac159fce59f3fd6d9")
("company-math" . "3eb006874e309ff4076d947fcbd61bb6806aa508")
("company-mode" . "1321e285a54dfe43cae71f52e58bff4f0c8c161d")
("compat" . "99d74e635b76c3fa0b8403391e9d2efbd29f9901")
("conda.el" . "ce748a53f9c7d7a7d112632d32c848d6e5482e18")
("csv-mode" . "6979fc18ebe133cfe2fca02efda9a9f0cd13428a")
("dash.el" . "1de9dcb83eacfb162b6d9a118a4770b1281bcd84")
("delight" . "15acb0f0ba400c470e378f9984b315f9e02c1122")
("dhall-mode" . "87ab69fe765d87b3bb1604a306a8c44d6887681d")
("dired-du" . "c16cad8c40a022a03dee1956a15ff44d1e42dc07")
("dired-hacks" . "e9e408e8571aee5574ca0a431ef15cac5a3585d4")
("dockerfile-mode" . "39a012a27fcf6fb629c447d13b6974baf906714c")
("ebib" . "5ea510a1e4ab17a442352d0212777da5f78d4be2")
("el-get" . "c0713e8d8e8ad987fe1283d76b9c637a10f048ef")
("elpy" . "c40bab559fe77dcef6b90d5502eba1ecd566e86d")
("emacs-async" . "e1d46f97a56e0c57206bd1ea31d04311097a8cbb")
("emacs-buttercup" . "dfbef2177209e3a045e981b7d2956ec46ce3b25b")
("emacs-dashboard" . "187699e2d80f6a3b0ec7b2fb2e1d7ece2712208f")
("emacs-format-all-the-code" . "f8feea08fef7ed542b8e676e90445d57ebd2c458")
("emacs-htmlize" . "ed5e5b05fd260e8f161a488d56f10e7f6e01fb75")
("emacs-language-id" . "44452e4f7962aca41cc2539fce1d27799d6e656c")
("emacs-refactor" . "cac1b52932926f56d7f6d2923732d20bbd20670d")
("emacs-web-server" . "22ce66ea43e0eadb9ec1d691a35d9695fc29cee6")
("emacs-which-key" . "1ab1d0cc88843c9a614ed3226c5a1070e32e4823")
("emacsmirror-mirror" . "f5e5fc8fb9c6dd5d9319819ab0161a9f78c2e657")
("epl" . "78ab7a85c08222cd15582a298a364774e3282ce6")
("evil" . "157af04d2cf466e301e82b0e667c5e7203fd96a2")
("emacs-reformatter" . "0d29a04d69d47599e2cb7f1a8f8e897a2b592921")
("emacs-request" . "01e338c335c07e4407239619e57361944a82cb8a")
("emacs-web-server" . "3982c55e9061475038a3ccd61aecb2de3d407cec")
("emacs-which-key" . "38d4308d1143b61e4004b6e7a940686784e51500")
("emacsmirror-mirror" . "8cbbdaa750c897d05ee71980834699a7d7c2d208")
("evil" . "5db0bdc7dcd9300b983526d37cbe480f35e36211")
("evil-ReplaceWithRegister" . "91cc7bf21a94703c441cc9212214075b226b7f67")
("evil-collection" . "e1bbf13194e06c435cd3328b2b431c9c46fbbf40")
("evil-commentary" . "2dab6ac34d1617971768ad219d73af48f7473fec")
("evil-org-mode" . "0d10ff7bb9a3a93d25cd91018b17f0a052b335f3")
("evil-surround" . "c9e1449bf3f740b5e9b99e7820df4eca7fc7cf02")
("f.el" . "e0dc429f9c20322c7af735a828fe2404bb416715")
("evil-collection" . "772571fc6762b6cd1d35cc869e266de9a5c6022b")
("evil-commentary" . "c5945f28ce47644c828aac1f5f6ec335478d17fb")
("evil-org-mode" . "b1f309726b1326e1a103742524ec331789f2bf94")
("evil-surround" . "da05c60b0621cf33161bb4335153f75ff5c29d91")
("f.el" . "1e7020dc0d4c52d3da9bd610d431cab13aa02d8c")
("fill-column-indicator" . "c35f9de072c241699b57bcb46da84bed5af29cfe")
("flycheck" . "66a973afca1d03b8284baaa7590eb2b8615a1e6a")
("flycheck" . "7a6398ea3538a898eba0276f0f89b2f878325a89")
("flycheck-clang-analyzer" . "646d9f3a80046ab231a07526778695d5decad92d")
("flycheck-package" . "615c1ed8c6fb7c73abec6aaa73d3fef498d231bc")
("flyspell-correct" . "7d7b6b01188bd28e20a13736ac9f36c3367bd16e")
("gnu-elpa-mirror" . "808923d95777d378ca340b8020dd571e6a62460a")
("goto-chg" . "278cd3e6d5107693aa2bb33189ca503f22f227d0")
("graphviz-dot-mode" . "6e96a89762760935a7dff6b18393396f6498f976")
("haskell-mode" . "5a9f8072c7b9168f0a8409adf9d62a3e4ad4ea3d")
("helm-bibtex" . "ce8c17690ddad73d01531084b282f221f8eb6669")
("ht.el" . "c4c1be487d6ecb353d07881526db05d7fc90ea87")
("hydra" . "9e9e00cb240ea1903ffd36a54956b3902c379d29")
("flycheck-haskell" . "b7c4861aa754220b7d0cfc05aa0895bb35665683")
("flycheck-package" . "75efa098cf17dc14c363e2ca9b68afdac7766b5b")
("flyspell-correct" . "1e7a5a56362dd875dddf848b9a9e25d1395b9d37")
("gnu-elpa-mirror" . "3d0759ef4792b6461f2979a4e70e1c819df7283a")
("goto-chg" . "72f556524b88e9d30dc7fc5b0dc32078c166fda7")
("graphviz-dot-mode" . "8ff793b13707cb511875f56e167ff7f980a31136")
("haskell-mode" . "727f72a2a4b8e4fd0a7b62129668baea55a2c3e0")
("helm-bibtex" . "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c")
("ht.el" . "1c49aad1c820c86f7ee35bf9fff8429502f60fef")
("hydra" . "317e1de33086637579a7aeb60f77ed0405bf359b")
("iedit" . "27c61866b1b9b8d77629ac702e5f48e67dfe0d3b")
("impatient-mode" . "479a2412596ff1dbdddeb7bdbba45482ce5b230c")
("inf-ruby" . "dbf4386bac12f1733257db6105e3f1fca05ffb79")
("inheritenv" . "c2c879acf89682559b157fb069e1da008f4912ea")
("irony-mode" . "870d1576fb279bb93f776a71e65f45283c423a9e")
("impatient-mode" . "a4e4e12852840996b027cb8e9fb2b809c37a0ee3")
("inf-ruby" . "b234625c85a48cc71e7045f5d48f079f410d576a")
("inheritenv" . "bac62ca6324828623cf8ce5a3d6aee0fcb65d620")
("irony-mode" . "40e0ce19eb850bdf1f77225f11713cc816250d95")
("jinja2-mode" . "03e5430a7efe1d163a16beaf3c82c5fd2c2caee1")
("js-comint" . "7920252e88eb610add7c9760f7016bb9b884307a")
("json-mode" . "eedb4560034f795a7950fa07016bd4347c368873")
("js-comint" . "ef2ccccad5740f3d8b5295f52a35df4f62471480")
("json-mode" . "77125b01c0ddce537085201098bea9b4b8ba6be3")
("json-snatcher" . "b28d1c0670636da6db508d03872d96ffddbc10f2")
("let-alist" . "592553db5929b54db40af0df90c5add0aaca045b")
("lispy" . "df1b7e614fb0f73646755343e8892ddda310f427")
("list-utils" . "ca9654cd1418e874c876c6b3b7d4cd8339bfde77")
("lua-mode" . "5a9bee8d5fc978dc64fcb677167417010321ba65")
("magit" . "4b8eab3af130c47421482c1d28c1cbcb033106fc")
("map" . "9f46b9c966505874d68d9036827a4f63b55ab846")
("markdown-mode" . "4477f381de0068a04b55e198c32614793f67b38a")
("math-symbol-lists" . "590d9f09f8ad9aab747b97f077396a2035dcf50f")
("melpa" . "6ade7599f12a93517f24f5871091fa74c6c2e387")
("no-littering" . "a5aa3faada054f96b70b32ba9d9447f7a4cf403c")
("let-alist" . "4e05e158612f360f6080b1349d3962b1c8fee902")
("lispy" . "fe44efd21573868638ca86fc8313241148fabbe3")
("list-utils" . "f02dcef36330871855346f9eab97eef58d323d9a")
("lua-mode" . "d074e4134b1beae9ed4c9b512af741ca0d852ba3")
("magit" . "61f6a778ab5b0ca97069778a5955ae527996cd0f")
("markdown-mode" . "8a7773f87733866a961ea4c518a4a2f283f21970")
("math-symbol-lists" . "ac3eb053d3b576fcdd192b0ac6ad5090ea3a7079")
("melpa" . "a21e230a1e8034076b2a271809ccf613476eeea7")
("nix-mode" . "719feb7868fb567ecfe5578f6119892c771ac5e5")
("no-littering" . "8b07314d2f0594ff22bf798d9a5f5bf44b4dd4cd")
("nongnu-elpa" . "a9a649210a8d8b9295b5a1d0c7b60a77db03c14c")
("org-bullets" . "767f55feb58b840a5a04eabfc3fbbf0d257c4792")
("org-ml" . "3974435bbf72722801f7ed78855381d77a773162")
("org-ref" . "2d91eba9274a79f908723a4a215e0f0b5c04ed01")
("org-sql" . "71b6e01ff94be4c68cfeb17a34518bf1f118cf95")
("org-super-agenda" . "3108bc3f725818f0e868520d2c243abe9acbef4e")
("org-ml" . "f57336a9126a168ad32ccce017c072474555395a")
("org-ref" . "fd178abf12a85f8e12005d1df683564bdc534124")
("org-sql" . "43376abf46b897a9a862cfcc1c087f4b8688634c")
("org-super-agenda" . "05a710065af5ee4b3982f9619f864f7af12ca1d3")
("origami.el" . "e558710a975e8511b9386edc81cd6bdd0a5bda74")
("outline-magic" . "2a5f07417b696cf7541d435c43bafcc64817636b")
("ox-pandoc" . "0a35d0fbfa56bdd9ec5ba5bac2fe002b61c05c52")
("package-lint" . "80a9d9815ab2919c992ad29ae4846443dec43a35")
("paredit" . "8330a41e8188fe18d3fa805bb9aa529f015318e8")
("parsebib" . "dd4c5540fa6c2cd990cba324741d7abbc8ed2f23")
("parseclj" . "1ce54fa2eb7a5d99d34c07d271e18eaabd0489da")
("parseedn" . "a67204eeaa32ca8f11f6aeecc2a88349f196add6")
("password-store" . "c4d8a1d815e79ddd89a85d3e36a41d29f0475771")
("pcre2el" . "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d")
("pdf-tools" . "f9ccdf99e560bae70d3a13325cec9dc0e3cc45b0")
("php-mode" . "4503672471b8fdaaea6c454344817a119c87fcc6")
("pkg-info" . "76ba7415480687d05a4353b27fea2ae02b8d9d61")
("pkgbuild-mode" . "8faee70e4640bd6ec1857651ec64e139e4dc2833")
("poly-R" . "e4a39caaf48e1c2e5afab3865644267b10610537")
("poly-markdown" . "d4ca396ec4a7d674ef0d671a6896f929ce5b504c")
("ox-pandoc" . "34e6ea97b586e20529d07158a73af3cf33cdd1d5")
("package-lint" . "972dd8403ac8d2d43f298ef89a6b118e49c7355f")
("paredit" . "037b9b8acbca75151f133b6c0f7f3ff97d9042e5")
("parsebib" . "ace9df707108b17759c004c7387655277122d4c1")
("password-store" . "b5e965a838bb68c1227caa2cdd874ba496f10149")
("pcre2el" . "b4d846d80dddb313042131cf2b8fbf647567e000")
("pdf-tools" . "30b50544e55b8dbf683c2d932d5c33ac73323a16")
("php-mode" . "59814bd80c59894022bc5950fb3bdf02420e8a89")
("pkgbuild-mode" . "8ef396d8fa9187b65c065a6bc2ca15dfaf3255df")
("poly-R" . "8024e852cfca642dea2045a41b2033baa2f1f9a5")
("poly-markdown" . "98695eb7ca4ca11dcec71a1cab64903bbf79b4d3")
("poly-noweb" . "3b0cd36ca9a707e8a09337a3468fa85d81fc461c")
("polymode" . "2094c92403fe395dfb2b8b2521da1012a966e9ab")
("popup-el" . "114d646f0f4dd49de19dfedd78630018f71470e5")
("powerline" . "566c77844f053cb39fa7acdfbc143a855450f0b5")
("projectile" . "e60883ff370c1545499b97cf56479de1a58c5b3b")
("pyenv-mode" . "b818901b8eac0e260ced66a6a5acabdbf6f5ba99")
("pythonic" . "fe75bc17baae314bf8f5e0b12aad3fccfc6c5397")
("polymode" . "ca060e081a1f849a880732670dc15370ac987b89")
("popup-el" . "c83d6e5f5fa693e08a542ea9ad7c06eced652de9")
("powerline" . "c35c35bdf5ce2d992882c1f06f0f078058870d4a")
("projectile" . "01fb6a5ef023bcfc52b209586dcb4fd13db00218")
("pythonic" . "c1e5643e044f1faaf6ecfadc719b981c048aeb79")
("pyvenv" . "31ea715f2164dd611e7fc77b26390ef3ca93509b")
("queue" . "130c2d656cd5d7376552272fab9e50a7c37d0c4a")
("rainbow-delimiters" . "a32b39bdfe6c61c322c37226d66e1b6d4f107ed0")
("rainbow-mode" . "55a8c15782197cd9db8950d2f5ed1b9caca08dae")
("robe" . "11207bd549a5a78e3a4d70265c3715990dcdab71")
("queue" . "8df1334d54d4735d2f821790422a850dfaaa08ef")
("rainbow-delimiters" . "f40ece58df8b2f0fb6c8576b527755a552a5e763")
("rainbow-mode" . "2e6b18609c2fdd1a2dc513937a64d276fd6cf24c")
("robe" . "6bc8a07fc483407971de0966d367a11006b3ab80")
("ruby-test-mode" . "d66db4aca6e6a246f65f7195ecfbc7581d35fb7a")
("rvm.el" . "c1f2642434b0f68d9baa0687127079ecd884ba12")
("s.el" . "08661efb075d1c6b4fa812184c1e5e90c08795a9")
("sesman" . "e0f555f963c9f02f8e4a50e06fc353eb4c15ee77")
("snakemake-mode" . "0dfeaff6079558c39081c2c078c41369da01903b")
("spaceline" . "9a81afa52738544ad5e8b71308a37422ca7e25ba")
("spacemacs-theme" . "bd376f705d6eb7afd9a1dfa0c1bd407e869d1e9f")
("spinner" . "34905eae12a236753fa88abc831eff1e41e8576e")
("straight.el" . "af5437f2afd00936c883124d6d3098721c2d306c")
("string-inflection" . "fd7926ac17293e9124b31f706a4e8f38f6a9b855")
("sudo-edit" . "23b78a39053088839f281bc0c3134203d7e04e50")
("swiper" . "f8d80a4055514f92d94f128f5fcb1cda79e5cd22")
("systemd-mode" . "b6ae63a236605b1c5e1069f7d3afe06ae32a7bae")
("tablist" . "faab7a035ef2258cc4ea2182f67e3aedab7e2af9")
("toc-org" . "bf2e4b358efbd860ecafe6e74776de0885d9d100")
("transient" . "2e4426fe8161893382f09b3f4635e152ee02488e")
("ts.el" . "3fee71ceefac71ba55eb34829d7e94bb3df37cee")
("use-package" . "a7422fb8ab1baee19adb2717b5b47b9c3812a84c")
("with-editor" . "4ab8c6148bb2698ff793d4a8acdbd8d0d642e133")
("yaml-mode" . "535273d5a1eb76999d20afbcf4d9f056d8ffd2da")
("yasnippet" . "5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6")
("rvm.el" . "e1e83b5466c132c066142ac63729ba833c530c83")
("s.el" . "dda84d38fffdaf0c9b12837b504b402af910d01d")
("seq" . "da86da9bf111f68fb81efd466d76d53af5aebc00")
("snakemake-mode" . "4ad41da69e4b95b38a3d3273874c44caab20cc56")
("spaceline" . "086420d16e526c79b67fc1edec4c2ae1e699f372")
("spacemacs-theme" . "d02edec79404e807445b62d0d2fc1a6fbcc10c71")
("straight.el" . "88e574ae75344e39b436f863ef0344135c7b6517")
("string-inflection" . "617df25e91351feffe6aff4d9e4724733449d608")
("sudo-edit" . "74eb1e6986461baed9a9269566ff838530b4379b")
("swiper" . "2a25a6fb5b081cb141c5eccac8ee58ab1feeb747")
("tablist" . "fcd37147121fabdf003a70279cf86fbe08cfac6f")
("toc-org" . "6d3ae0fc47ce79b1ea06cabe21a3c596395409cd")
("transient" . "3d3f8711d4f6a6ff7f53bc22e465ec82587c62ed")
("ts.el" . "552936017cfdec89f7fc20c254ae6b37c3f22c5b")
("use-package" . "a6e856418d2ebd053b34e0ab2fda328abeba731c")
("with-editor" . "8c550d9e799a0baedb2164471e7ed19fc15d9196")
("xterm-color" . "2ad407c651e90fff2ea85d17bf074cee2c022912")
("yaml-mode" . "7b5ce294fb15c2c8926fa476d7218aa415550a2a")
("yasnippet" . "eb5ba2664c3a68ae4a53bb38b85418dd131b208f")
("zoutline" . "32857c6c4b9b0bcbed14d825a10b91a98d5fed0a"))
:beta
:gamma