about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2020-01-17 Support functions for navigating buffer cachesWilliam Carroll2-4/+138
I've wanted an MRU/LRU sort of my "source code buffers" in Emacs. This commit support three ways for working with a cache of source code buffers. So first, what's a source code buffer? Well it isn't a buffer like *Messages*; we can call these "Emacs-generated" buffers for convenience. Other problematic buffers are buffers like `magit-status` and `dired-mode` and `erc` buffers. I added some predicates for querying buffers for their major modes. Supporting three KBDs for quickly accessing these functions: 1. <SPC><SPC> Toggle previous buffer 2. <SPC>b Use ivy to fuzzily search source code buffers 3. C-{f,b} Cycle {forwards,backwards} through the source code buffer cache.
2020-01-17 Support KBDs for quickly editing common dotfilesWilliam Carroll1-1/+4
I had forgotten that I defined <SPC>J. Maybe I should switch to using Hydras or transient mode to improve the discoverability of my own setup... well in the spirit of support things that I will likely forget, here's a new KBD for editing config files in the `~/.config` directory.
2020-01-17 Support utils for finding Emacs dotfiles and Org filesWilliam Carroll3-11/+53
Defined `dotfiles/find-emacs-file` and `org-helpers/find-file`, to clean up some of the `find-file` calls I have with long path names. This DRYs things up as well so that the path can be changed without breaking many other things.
2020-01-17 Support xsessionrc and config.fish in dotfiles.elWilliam Carroll1-0/+2
Add entries for xsessionrc and config for the `dotfiles/edit` function.
2020-01-17 Install ts.el for timestamp functions in ElispWilliam Carroll1-0/+5
I've been looking for this! Thank you, @alphapapa.
2020-01-17 Install prism for scope-highlighting > syntax highlightingWilliam Carroll3-0/+19
I've wanted a library like this ever since I saw Douglas Crockford's JS talk about scope highlighting as a more useful alternative to syntax highlighting.
2020-01-17 Revert Nixified Emacs configurationWilliam Carroll2-12/+6
I attempted to Nixify my Emacs over winter break. I made some meaningful progress, but not enough progress to use my Nixified Emacs setup. Since Emacs is my primary editor and my window manager at work and at home, having a partially baked setup is untenable at the moment. Reverting these changes so that I can get on with my work, but checking them in so that I can pick up where I left off one day.
2020-01-17 WIP: Nixify Emacs setupWilliam Carroll4-5/+155
The things that I dislike about this setup are: 1. `xref-find-definitions` takes me to `/nix/store`, which is a read-only version of the source code, so I cannot edit it, which doesn't feel lispy. 2. I need to rebuild the derivation when I change something, which also doesn't feel lispy. There are ways to circumvent both of these drawbacks, but for now, I'm checking this in only to later revert it.
2020-01-17 Nixify fish configurationWilliam Carroll4-31/+500
This isn't 100% usable, but it works. You can build it with `nix-env` and then run it with `wpcarros-fish`.
2020-01-06 Define nix_find command in fishWilliam Carroll1-0/+4
Defining a function for outputting the /nix/store path to a package built with Nix.
2020-01-06 Support Wall-E themeWilliam Carroll2-1/+7
Add Wall-E theme to consume the latest `doom-material` theme.
2020-01-06 Support EXWM workspace for IRCWilliam Carroll1-7/+35
Supporting this since my chat workspace is already a bit populous.
2020-01-06 Debug lt ZSH functionWilliam Carroll1-1/+1
Change `-all` to `--all`.
2020-01-06 Support lispyville KBDsWilliam Carroll1-3/+4
After deciding to support the `C-s-` prefix for lispyville KBDs, I'm re-introducing support for: - `lispyville-drag-backward` - `lispyville-drag-forward` - `lispyville-end-of-defun` - `lispyville-beginning-of-defun`
2020-01-06 Decrease default font size on laptopWilliam Carroll1-1/+1
See diff for more information.
2020-01-06 Support Freenode IRCWilliam Carroll2-17/+113
Previously my ERC setup just supported Google's internal IRC. Now I have Freenode for things like #nixos, #emacs. This complicated my KBDs for cycling through IRC channels since certain channels only exist on certain servers. To remedy this, I introduced a temporary solution that looks up the server given a particular channel. This isn't ideal, but it works for now.
2020-01-06 Support set/{reduce,intersection,equal?,distinct?}William Carroll1-16/+66
Adds additional functions for the set.el module. See the function documentation and tests for more information.
2020-01-06 Support pasting in read-expression-mapWilliam Carroll1-0/+6
This was something small that has been slightly bothering me for a *very* long time. Now it's fixed!
2020-01-06 Prefer variadic cycle/newWilliam Carroll1-2/+2
TODO: Ensure all */new functions in my Elisp library share this API.
2020-01-06 Support alist/{find,map-keys,map-values} and testsWilliam Carroll1-1/+50
Supporting iterable / enumerable functions for alists.
2020-01-06 Prefer Telegram native over Telegram webWilliam Carroll1-1/+1
I installed nixpkgs.tdesktop to support dark-mode and access other useful features of the native Telegram client.
2020-01-06 Support prelude/start-processWilliam Carroll8-62/+93
If you refer to the previous commit where I change shell-command usages to start-process function calls, you'll see the rationale for why I prefer start-process. This commit introduces a more ergonomic API for start-process that fits most of my current use-cases of it. This cleans up the code. I have introduced a bug in the way that I'm tokenizing the COMMAND value. I've tracked that with a TODO. For now it only affects the `xmodmap -e '<command-string>'` calls, which isn't too disruptive.
2020-01-06 Change &keys -> &key in cl-defunWilliam Carroll2-2/+2
These were latent bugs.
2020-01-06 Prefer start-process to shell-command for pulse-audio moduleWilliam Carroll1-13/+49
Continuing the series of easy-win commits that increase the speed of commands that I was previously using `shell-command` to run by using `start-process` instead.
2020-01-06 Reduce latency of screen-brightness/{increase,decrease}William Carroll1-15/+12
As promised in the previous commit, I'm refactoring usages of `shell-command` to prefer the faster alternative `start-process`. So far, I'm pleased with the results.
2020-01-06 Prefer start-process to shell-commandWilliam Carroll1-2/+9
Without doing any benchmarking (break this naughty habit), I'm preferring to call `start-process` instead of `shell-command` in my `wallpaper/set` function. I noticed that the `shell-command` call was unnecessarily polluting my `pstree` call when I debugging my randomly changing wallpaper bug. I'm mostly likely going to change a few more `shell-command` calls to prefer `start-process`.
2020-01-06 Define new Emacs themeWilliam Carroll1-0/+6
Defining "Shapely Patterns" theme... surely I can come up with better names than this... :/
2020-01-06 Drop support for i3William Carroll21-1156/+5
While I first switched to EXWM warily and thinking it would only be temporary, it seems like this switch is here to stay. It turns out that EXWM was exactly the integration I've been looking for. How serendipitous it that I found it when I did. Thank you, @tazjin.
2020-01-06 Support microphone togglingWilliam Carroll1-1/+9
Use pactl and exwm KBDs to support toggling my microphone setting from Emacs.
2020-01-06 Begin the Emacs email journeyWilliam Carroll2-0/+12
While this commit isn't much (i.e. notmuch), it represents one brave step forward in the quest for supporting email in Emacs -- something I'm estimating to be somewhere between a 1.5x and 2x workflow booster.
2020-01-06 Temporarily disable flycheckWilliam Carroll1-7/+3
TL;DR: Problem: I ran into a bug where my computer wallpaper was changing every five seconds whenever my init.el file was open and I was typing in it. Short-term solution: Disable flycheck. Long-term solution: Disable flycheck just for Elisp or just for init.el in Elisp. Post Mortem: Warning: If you have flycheck-emacs-lisp-initialize-packages set to auto or really anything other than nil, than the emacs-lisp flycheck-checker will spin up a new Emacs instance, and evaluate all of the Elisp in init.el. Why does this matter? Well, if like me, you have code anywhere in your init.el (and any files downstream from init.el), that code will get evaluated not just twice. But countless times... tens, hundreds, w/e. So... while you might think you have code that is just running at startup this code will be called incessantly. As a dramatic, contrived example, if you had something like... ```elisp (bank/send :amount 100 :to "wpcarro@gmail.com") ``` ...anywhere in that your init.el would evaluate, you may end up sending wpcarro@gmail.com millions of dollars. To make debugging this problem a bit more complicated is that because this runs in a separate Emacs instance, you can't do something like... ```elisp (defvar already-evaluated? nil) (unless already-evaluated? (bank/send :amount 100 :to "wpcarro@gmail.com")) (setq already-evaluated? t) ``` ...since the `already-evaluated?` variable will be local to the Emacs instance. So if you needed a mechanism to ensure code like this runs only once, you would need a way to share this semaphore across Emacs instances -- e.g. writing to and reading from disk.
2020-01-06 Ensure git yday alias formats commits like git todayWilliam Carroll1-2/+2
Prefer the --oneline flag for `git yday` so that it is formatted like the `git today` command.
2020-01-06 Support more fish abbr's for gitWilliam Carroll1-0/+2
I'm sure that there is a fish package that supports git aliases or abbreviations. This time, I'm preferring to write my own. Side note: The more that I use fish's abbreviations, the less that I like them -- at least for the way in which I'm using them.
2020-01-06 Ignore .gnupg/random_seedWilliam Carroll1-0/+1
I'm not actually sure if this is sensitive information, but I'm erring on the side of caution and ignoring it in case it is. squash! Ignore .gnupg/random_seed
2019-12-24 Combine google-{stuff,tooling}William Carroll3-58/+31
Google-related files should eventually be moved out of GitHub hosting and onto Google infrastructure (e.g. Git on Borg). When I do this, I should run: ```fish > git grep --ignore-case google (git rev-list --all) ``` To assess the reference I've introduced into this repository. Other tools that should come in handy when I do this are: - git filter-branch - BFG repo-cleaner
2019-12-24 Support JS-style header in web-modeWilliam Carroll1-0/+7
Yasnippet supports a way to share snippets between related modes. I should do this instead of just defining a new snippet here. Well... until then.
2019-12-24 Drop support for purpose.elWilliam Carroll1-54/+1
For now, my lack of understanding of purpose results in purpose getting in my way. One day, I may reinvestigate this. For now, I'm attempting to learn Prolog and Nix, which is occupying most of my tolerance for new technology.
2019-12-24 Support evil-magit, refineWilliam Carroll2-1/+10
It took me awhile to install evil-magit because I believed that evil-collection supported it. My grasp of Emacs bindings was enough to tolerate the strangely "inconsistent" KBD support of in magit. Eventually though my tolerance waned, and I verified that evil-collection does *not* support magit, and suggests that users seek evil-magit. I did that. I do not regret it. Installing Wilfred's refine.el, which is a lovely package for interactively editing data structures. Go LISP!
2019-12-24 Defensively install all-the-icons assetsWilliam Carroll1-20/+10
Wrap installation call with a predicate that checks on the file-system for the icon assets. Along the way, document other parts of the wpc-ui package.
2019-12-24 Refactor strings.el testsWilliam Carroll1-23/+18
Ensure that string.el follows the latest whim in my Elisp testing circus.
2019-12-24 Support ensure_{file,dir} in zshWilliam Carroll1-4/+18
Support functions for ensuring the existence of directories and files. These functions represent the type of small ergonomic wins that I believe libraries should support.
2019-12-24 Support rainbow-delimiters-modeWilliam Carroll1-0/+4
Why did I ever remove this? Perhaps git can help me answer that.
2019-12-24 Support TypescriptWilliam Carroll1-3/+26
I had previously only worked with Facebook's Flow. Typescript support in Emacs is excellent!
2019-12-24 Update Tramp configurationWilliam Carroll1-4/+23
I'm unsure if this file should be included in my dotfiles, but it doesn't seem to contain sensitive information.
2019-12-24 Prefer somes? to some? in math.elWilliam Carroll1-4/+4
In a moment of strong opinions against variadic functions, I defined maybe/somes? and redefined maybe/some? to be non-variadic. I'm not sure if I feel as strongly about that change as I did when I made it. Either way, the change remains and math.el is broken unless it consumes maybe/somes?, so... this does that!
2019-12-24 Update docs for macros/support-file-extensionWilliam Carroll1-1/+1
I provided the wrong usage example in my documentation. This goes to show how critical generated documentation is to the goal of documentation reliability, which itself bolsters the goal of documentation in general.
2019-12-24 Fix typo in keyboard configurationWilliam Carroll1-1/+1
I was missing a trailing comma in my xmodmap call. This rectifies that mistake.
2019-12-24 Remove aliases for personal projectWilliam Carroll1-4/+0
I believe that I defined these aliases when I was optimistic about using them. I never ended up habituating that usage, so these are covered in dust.
2019-12-24 Update OCaml supportWilliam Carroll2-3/+3
After attempting to run OCaml on a separate machine, I realized that I needed to update the documentation in my wpc-ocaml package.
2019-12-24 Delete "conflicted copy" filesWilliam Carroll3-53/+0
TODO: It may be preferable to augment my git history to remove the traces of these files ever existing. For now, since I value a precise git history over a pristine git history and my tendancy to maintain the former is sometimes at odds with my goal of the latter, I'm saving this work for a later date.