Commit graph

938 commits

Author SHA1 Message Date
William Carroll
4952142916 Sketch ideas for YNAB integration
The end goal is to have some functions that help me manage my Monzo and YNAB
accounts. YNAB (i.e. youneedabudget.com) doesn't support Monzo
integrations. However, both services offer APIs. Here I'm sketching ideas for
what the API integrations might look like. Coming soon: monzo.el.
2020-01-27 14:56:10 +00:00
William Carroll
5399b4bd03 Add maybe.el dependency to fn in prelude.el
Not adding it as a top-level dependency since maybe.el depends on on
prelude.el. This shouldn't be a circular dependency when the requirement happens
in the function's scope though.
2020-01-27 14:52:04 +00:00
William Carroll
22968046b7 Rename alarm.el -> egg-timer.el
Add path to `egg-timer.el` module for now until it's published on MELPA.
2020-01-27 14:51:22 +00:00
William Carroll
b5c0d29601 Change Emacs startup
Remove `dbus-launch` and prefer simply `exec emacs`. Add `--no-site-file` and
`--no-site-lisp` flags.

Temporarily disable `google-stuff.el` because it's unavailable with the
`--no-site-lisp` flag.

This should all be fixed when I fully nixify my Emacs.
2020-01-27 14:50:09 +00:00
William Carroll
b6e9952889 Disable auto-fill-mode and company-mode in IRC buffers
Why?
- `company-mode` is too noisy in IRC buffers.
- `auto-fill-mode` inserts newline characters that end up each being their own
  message, which means that I make more noise than I should in IRC.
2020-01-27 11:40:05 +00:00
William Carroll
fb51c8b458 Support nix-eval fish function
Wrapping the `nix eval` incantation in a fish function for two reasons:
1. Document that this is how to evaluate Nix from a file.
2. Provide a more ergonomic way of evaluating Nix from a file.
2020-01-27 11:39:02 +00:00
William Carroll
d1fdc9fa63 Enable ivy-mode globally
This takes care of my outstanding TODO of understanding why something ivy was
being used and other times it wasn't. It turns out that there is a generic
`completing-read` function that many Emacs packages consume. `ivy-mode` ensures
that when that function is called it is used instead of the default Emacs
completing package.

I'm still unsure of the difference between ivy and counsel. My best guess
currently is that counsel is the narrowing framework and ivy is the integration
of the narrowing framework with `completing-read`. Swiper must be the
integration with incremental {forward,backward} search.
2020-01-27 11:26:10 +00:00
William Carroll
11d0a6c794 Add missing require for ivy-clipmenu
Adding the missing dependency requirement for keybindings.el
2020-01-27 11:25:32 +00:00
William Carroll
d8193c3a52 Delete alarm.el
Since I've exported alarm.el as egg-timer.el, prefer requiring the latter, which
is in a separate repository.
2020-01-27 11:24:40 +00:00
William Carroll
d67993266f Add index.html with AdSense script to blog
Adds some dummy markup, which includes my Google AdSense `<script>` tag. The
script won't work unless it is loaded from wpcarro.dev.
2020-01-26 00:29:34 +00:00
William Carroll
130155121a Sketch idea of a buildClojure nix function
The previous commit that adds Java code is part of a larger project intended to
use Nix to package Clojure. I'd like to build something similar to @tazjin's
buildLisp except for Clojure instead of for Common Lisp. Once building for both
ecosystems is similarly easy, it will be easier for me to compare the two
languages. Right now `buildLisp` is so good that it attracts me to Common Lisp
even when I don't know the language.
2020-01-25 19:41:19 +00:00
William Carroll
5a2a1694e3 Support java directory
Add an example of two java files, Main.java and Another.java, where Main.java
depends on Another.java. This is part of a larger example of attempting to use
Nix to package these.

Also ignoring the *.class files that `javac <filename>` outputs.
2020-01-25 19:39:49 +00:00
William Carroll
b6b8611f69 Prefer keynav daemonize
Instead of `keynav &`.
2020-01-25 18:36:24 +00:00
William Carroll
bd82a25ff2 Add additional KBD for scrot/select
As mentioned in the TODO, I need this redundant KBD for my Ergodox.
2020-01-24 16:59:17 +00:00
William Carroll
7c67334141 Support alarm.el
- Renames productivity-timer.el -> alarm.el
- Support functionality
- Whitelists alarm.el in init.el
2020-01-24 16:58:43 +00:00
William Carroll
e0fa9d907d Define pkill Emacs function
I can kill process from Emacs instead of creating a terminal and using that.
2020-01-24 11:26:57 +00:00
William Carroll
143fc97032 Start working on f.lisp
I would like to port the `f.el` library to Common Lisp. I'm adding a README,
some build files, and the module itself to get started.
2020-01-24 10:55:04 +00:00
William Carroll
e2e59c63e7 Cleanup lisp directory
Removing the default.nix that I used to attempt to build prove, a Common Lisp
unit testing library. Also removing the lisp module with the unit tests
themselves.
2020-01-24 10:53:37 +00:00
William Carroll
95d03facb3 Support prelude.lisp
Using this module to support utility functions that I have not classified
further than being miscellaneous.
2020-01-24 10:52:53 +00:00
William Carroll
b6fa3941b3 Rename common-lisp directory to lisp
I could have renamed common-lisp to common_lisp. I think Nix prefers underscores
to hyphens.
2020-01-24 10:50:05 +00:00
William Carroll
402720792e Prefer opening locate buffers using dired-find-file-other-window
`dired-display-file` opens the file in another window but does not focus that
window. `dired-find-file-other-window` does what `dired-display-file` does
except it focuses that window.
2020-01-24 10:04:49 +00:00
William Carroll
7bf8997830 Support nix/sly-from-universe
This function builds a version of SBCL using `nix.buildLisp` and points `sly` to
the built executable. The result is a REPL with access to your project's
dependencies, which is quite useful. One drawback at the moment is that if new
dependencies are added to the project, I think I need to rebuild SBCL using nix
and restart sly.
2020-01-23 22:02:13 +00:00
William Carroll
e1ccee27d5 Add NIX_PATH to envrc
This way functions like `nix/sly-from-universe` can resolve nix paths like
`<depot>` and `<universe>`.
2020-01-23 22:01:25 +00:00
William Carroll
6108f8df01 Support proof-of-concept blog
After some toil, I have a working proof-of-concept blog. The idea is simple:
write blog posts in markdown and store the posts in the `./posts`
directory. Then use the server and `pandoc` to convert these markdown files into
HTML at request time. I'm using nix to package everything together. It's far
from perfect, but it works at the moment, which is encouraging.
2020-01-23 22:01:06 +00:00
William Carroll
2e3bb0435f Package cl-arrows package
Using Nix to package this library of Clojure-inspired threading macros.

TODO: Send this patch to tazjin.
2020-01-23 21:57:25 +00:00
William Carroll
81d7bc405e Extend blog server to consume nix injections
All of this is still a work-in-progress. Just checking in my work.

Also:
- Write function `render-post` to convert a markdown file into HTML. This is
  still a work-in-progress since we need to capture the output and not just have
  it printed to *standard-out*.
- Return dummy data in /posts
2020-01-23 21:57:25 +00:00
William Carroll
b25d06db7e Attempt to inject dependencies into blog/server
- We need the markdown files, to be in the /nix/store and the server needs to be
  aware of there location.
- Since we're dependending on `pandoc`, our server needs to know about it too.

For both of these cases -- especially for the latter case -- I imagine there may
be a more idiomatic way of doing this.
2020-01-23 21:57:25 +00:00
William Carroll
336a1fdf9f Add <nixpkgs> to NIX_PATH
Lest we forget our roots.
2020-01-23 21:57:25 +00:00
William Carroll
2c28f85946 Start working on a blog
Attempting to write a blog where:

- The server is Common Lisp. Why? I'd like to learn Common Lisp.
- The blog posts can be written in Markdown.
- The package is developed and deployed using Nix.

Most of this is a learning exercise. The blog itself is something that I'd like
to use instead of Medium and other forums.
2020-01-23 16:34:07 +00:00
William Carroll
7f37acf548 Prefer <depot> and <universe>
Consuming the aliases that I defined in `NIX_PATH` in `.envrc`.
2020-01-23 16:33:47 +00:00
William Carroll
e76843d337 Create third_party
Create a third_party subdirectory and a third_party/lisp. This directory layout
resembles and is inspired by the layout of Google's mono-repo, Google3. @tazjin
borrowed this idea from Google and I'm borrowing the idea from him.
2020-01-23 16:31:54 +00:00
William Carroll
393bd0a5c7 Nixify repo
Using @tazjin's depot/default.nix to bootstrap this project. I'll be borrowing
his Nix idioms until I better understand Nix and have preferences of my own.
2020-01-23 16:30:39 +00:00
William Carroll
01539a9988 Support .envrc
Add `NIX_PATH` aliases for `depot` and `universe`.
2020-01-23 16:30:06 +00:00
William Carroll
ccd8907e22 Exposing the text-mode snippest to lisp-mode
This gives me access to some generic-purpose snippets that allow me to easily
insert characters like this: ✓ and ✗!
2020-01-23 14:56:01 +00:00
William Carroll
fcfed99600 Assert that the labels used in the bookmark/magit-status are defined
My current self hoping to help my future self.
2020-01-23 14:55:22 +00:00
William Carroll
e11ba0598e Move the location of tazjins-depot
Since I spend a decent amount of time scouring the excellent work of my
colleague, @tazjin, I figured having some functions and KBDs setup to make this
work cheaper would be beneficial.

Also preferring the name `"depot"` to `"tazjins-depot"`. I don't think the
namespace `"tazjin-"` is useful at this time. I'm considering renaming my
mono-repo `"universe"`... a bit grandiose, but hey, let me get my kicks.
2020-01-23 14:53:43 +00:00
William Carroll
7edd5d81f5 Explicitly set that yasnippet directory
I'd like to limit the available snippets to those snippets that I have
explicitly defined. I ran into this problem when defining the `defpackage`
snippet for `lisp-mode`; it appeared that another snippet for `defpackage`
existed somewhere on my machine.
2020-01-23 14:52:18 +00:00
William Carroll
190d5e4406 Support set/{super,sub}set
Define predicates for testing whether two sets are supersets or subsets.
2020-01-23 14:51:50 +00:00
William Carroll
d7c52e4e64 Define CL snippet for a module header
Since I'm new to the CL world, snippets are a useful note-taking analogue with
the added benefit of potentially speeding up my workflow should the
muscle-memory set.
2020-01-23 13:51:53 +00:00
William Carroll
3732ed4795 Define CL snippet for an untyped function
For the times when I'd like to be DyNaMiC.
2020-01-23 13:51:27 +00:00
William Carroll
37f8ca04f2 Update dired-mode-map KBDs
- Ensure `"<SPC>"` is available for my "leader" KBDs
- Define `"o"` as `#'dired-find-file-other-window`
2020-01-23 13:50:18 +00:00
William Carroll
df112d34b6 Support CL snippet for a typed function
This depends on the `type` macro that's defined in my mono-repo. Perhaps another
reason why my dotfiles needs to be merged into the mono-repo.
2020-01-23 13:49:31 +00:00
William Carroll
d262d30543 Attempt to package CL unit testing with Nix
My first foray trying to package Common Lisp with Nix. I'm using @tazjin's
buildLisp and other libraries, all of which I'm importing as `tpkgs`, and all of
which have been a tremendous boon to my productivity.
2020-01-23 13:45:57 +00:00
William Carroll
55860debe5 Support Common Lisp
Adding some Common Lisp here to get the party started! *cues music*
2020-01-23 13:45:18 +00:00
William Carroll
1a2ae5499e Support bookmark/magit-status
Add function to quickly get `magit-status` buffers for some repositories in
which I spend time.
2020-01-22 21:55:33 +00:00
William Carroll
857ef43d2d Support bookmark/from-label
Add function to resolve a bookmark from its label.
2020-01-22 21:55:07 +00:00
William Carroll
589349282f Format bookmark.el
Move `bookmark/install-kbds?` to the top of the module.
2020-01-22 21:54:22 +00:00
William Carroll
61c2050f23 Support additional bookmarks
- Adds bookmark for my mono-repo
- Adds bookmark for tazjins-depot
2020-01-22 21:53:43 +00:00
William Carroll
5a66f175e5 Support magit-popup
One of my Google Emacs libraries depends on the `magit-popup` library. I believe
it's `fig-status` and I'm unsure why that library didn't ship with
`magit-popup`... tune in next week for more packaging woes.
2020-01-22 21:13:10 +00:00
William Carroll
b3e24a1783 Support Emacs restclient
An excellent HTTP and REST client built into Emacs! Consider reaching for this
instead of reaching for `httpie`, `curl`.
2020-01-22 21:13:06 +00:00