Commit graph

124 commits

Author SHA1 Message Date
William Carroll
4d8ce34a7e Simplify EXWM init hook
Anytime something before or during window-manager.el fails to evaluate,
I lose the ability to type, but I *can* still click.

@tazjin recommended that I use the mouse to cycle to the *Warnings*
buffer, which led me to another bug in a series of bugs that I'm
uncovering: ~/briefcase/org didn't exist.

A simple mistake like this should break my WM startup, so I decided to
remove most of my init hook logic.
2020-08-20 11:26:32 +01:00
William Carroll
c9da7c5214 Add XMODIFIERS=emacs
This fixes the latest segfault I encountered after
/usr/bin/{google-emacs,emacs} was updated...
2020-08-20 11:26:32 +01:00
William Carroll
9d7331d63b Debug evil-want-keybindings issue
Problem: dependency loading order

I originally assumed that keybindings.el was the first module to `require
'evil` because init.el shows:

```elisp
(require 'keybindings)
(require 'window-manager)
```

The problem is that keybindings.el calls `require 'window-manager` and
window-manager.el requires evil! I admit, I've created a bit of a birds nest for
myself.

A few thoughts:
- keybindings.el doesn't need to `require 'window-manager`. Fixed!
- window-manager.el shouldn't need to `require 'evil`. TODO...
2020-08-20 11:26:32 +01:00
William Carroll
53be40b1a6 Drop use-package in keybindings.el
I'm attempting to kill that zombie bug about evil-want-keybinding...
2020-08-20 11:26:32 +01:00
William Carroll
39622607ff Add missing dependencies to emacs/default.nix
While debugging some broken Emacs config, I ran Emacs in X, where for some
reason my PATH doesn't have my nix-env dependencies... because of this, when I
call `~/.nix-profile/bin/wpcarros-emacs` to start my Emacs, I saw warnings about
missing packages that I hadn't seen before. Nice!
2020-08-20 11:26:32 +01:00
William Carroll
3dc7f7758b Drop support for wpc-keybindings
In favor of keybindings.el!

Now I have:
- kbd.el: There are no keybindings in this file. It's just a library for working
  with keybindings in Emacs.
- keybindings.el: (hopefully) all of my keybindings for EXWM, evil, etc.
2020-08-20 11:26:32 +01:00
William Carroll
4ae6eff607 Remove unused kbd/install-kbds?
In another refactor, I'd like to move all ad-hoc keybindings out of individual
modules and into keybindings.el.
2020-08-20 11:26:32 +01:00
William Carroll
23cf5d43d8 Centralize <SPC> in normal mode KBDs
Merging keybinding and wpc-keybindings step-by-step...
2020-08-20 11:26:32 +01:00
William Carroll
108da34dd9 Delete unused KBDs
Now that everything is in my monorepo, it's easy for me to use <SPC>jd to search
for these files.
2020-08-20 11:26:32 +01:00
William Carroll
0c71fc9d1d Drop support for dir-locals.nix, <nixpkgs>, etc.
In the spirit of Marie Kondo, I'm tidying up!

TL;DR:
- Prefer .envrc `use_nix` and delete all dir-locals.nix files
- Remove ~all references to <nixpkgs>, <unstable>, <depot> and prefer
  referencing each with briefcase.third_party.{pkgs,unstable,depot}
- Delete nixBufferFromShell function since I was only using that in
  dir-locals.nix files
2020-08-20 11:26:32 +01:00
William Carroll
f032eee79d List directories first in dired view
Ideally I'd use exa insted of ls, but I cannot seem to support that yet.
2020-08-20 11:26:31 +01:00
William Carroll
7e2dcc97cc Drop support for wpc/find-file
Cleaning things up...
2020-08-20 11:26:31 +01:00
William Carroll
de723c142b Prefer project.el to projectile
Today @tazjin told me about Emacs's built-in project.el library, which he
recommended that I extend to support monorepo-specific tooling. It worked like a
charm!

Now when I press "<leader>f", it will resolve to either the nearest file named
default.nix or directory name .git.
2020-08-13 18:05:45 +01:00
William Carroll
994a632ac3 Set Emacs current-project to ~/briefcase
I don't rely on this often, so it's best to leave it as the top-level directory
for briefcase.
2020-08-13 18:04:54 +01:00
William Carroll
ca06888a56 Remove week / 52 indicator
This is taking up too much space.
2020-07-17 15:39:37 +01:00
William Carroll
5e81144622 Misc Emacs improvements
I stole these bad-boys from @tazjin's config.
2020-07-06 20:45:33 +01:00
William Carroll
7d9cfdbc41 Prefer telephone-line to doom-modeline
After growing frustrated with doom-modeline's compatibility with my EXWM setup,
I decided to borrow @tazjin's setup, which I find to be much more appealing.
2020-07-06 11:11:08 +01:00
William Carroll
183b306159 Use ivy-helpers/list-external-commands
Without the ivy-helpers/ namespace, I believe this code is buggy.
2020-06-16 11:49:56 +01:00
William Carroll
f4fa363c19 Prefer Solarized Light theme
I've said it once, and I'll say it again: my preferences often change.
2020-06-16 11:49:33 +01:00
William Carroll
ef3cba1b39 Support additional KBDs for Clojure
Define KBDs in clojure-mode-map that resemble my common-lisp and elisp KBDs.
2020-06-16 11:48:44 +01:00
William Carroll
b1e358f247 Use dot-time format for modeline timestamp
My current understanding of how computers deal with time:
- Modelling time is easy: use the number of seconds that have elapsed since the
  Unix epoch.
- Display time is complicated. Which timezone should we use? Which format
  string?
2020-06-16 11:46:17 +01:00
William Carroll
675b8084c7 Prefer smaller default font size for laptop
I'll be working without an external monitor for the next few months, so I prefer
this smaller size.
2020-06-16 11:37:24 +01:00
William Carroll
e864074600 Support elm-mode for Emacs
Instead of (ab)using haskell-mode, support elm-mode.

TODO: Support elm-format on buffer save
2020-04-11 17:45:59 +01:00
William Carroll
3dac2f10ff Drop support for Haskell glyphs
I think that glyphs look nice, but they subtley confuse Emacs's UI. In the case
of a two-character glyph condensing into one character's width, the fill-width
indicator -- correctly -- highlights the 81st character as red, but it looks
like it's erroneously highlighting the 80th.

Also when I want to create an anonymous function I type (), which condenses into
the unit character, and it's difficult to delete either the opening or the
closing parenthesis.

Overall I think glyphs are cute, but they're not worth the trouble.
2020-04-11 10:41:49 +01:00
William Carroll
ca67b4256d Debug unresponsive keyboard
After binary searching through my git history to restore my keyboard
functionality, I discovered the issue: I deleted the "Terminal" workspace, but I
did not remove the call to `(exwm/switch "Terminal")`, which silently prevented
EXWM from initializing.

I wish errors like this were noisier.
2020-04-06 11:30:09 +01:00
William Carroll
a180a51620 Don't depend on google-stuff.el
I created a google-stuff.el module months ago, but I have not needed to
use it much. Removing the google-stuff.el module and all of my
dependencies on it.
2020-04-05 17:01:52 +01:00
William Carroll
81b59e9ddd Drop support for ynab.el
YNAB is short for YouNeedABudget.com. I wrote this code before I started
the //monzo_ynab project.
2020-04-05 16:11:42 +01:00
William Carroll
fb6dabfb8d Drop support for wpc-terminal
As I mentioned in the previous commit, I now use vterm.el as my primary
terminal. I wrote most of this Elisp when I first started using Emacs. I
know longer need it.
2020-04-05 16:10:32 +01:00
William Carroll
431f68298d Drop support for terminator.el
Before I switched to vterm.el, I used alacritty as my primary terminal.
I could not install alacritty on gLinux, so I switched to terminator.
When I was ricing my machine, I wanted my Emacs theme to change my
terminator theme. I never finished that project, and it is quite dusty
now.
2020-04-05 16:08:10 +01:00
William Carroll
695ab28a6c Remove wpc-docker.el
I have not needed this configuration in over a year.
2020-04-05 16:07:33 +01:00
William Carroll
408a25415c Remove dotfiles.el
This module is a bit stale.
2020-04-05 15:58:57 +01:00
William Carroll
946ccfb247 Tidy //emacs
TL;DR:
- Add README.md that includes instructions on how to install my Emacs
- Delete unused Makefile
2020-04-05 15:50:58 +01:00
William Carroll
46d817665f Move Emacs documents to //emacs
These documents outline some of my Elisp conventions and ideas. As such,
I think //emacs should host them.
2020-04-04 14:30:27 +01:00
William Carroll
f23e1be416 Drop support for Terminal workspace
I created the Terminal workspace before I wrote a function for finding/creating
vterm instances. I now use the latter almost exclusively.
2020-04-03 10:08:41 +01:00
William Carroll
d8f0f3daf3 Remove :index field from exwm/named-workspace struct
I can compute the index use dash.el's -elem-index. I'm also removing some unused
EXWM workspaces.
2020-04-02 18:36:51 +01:00
William Carroll
099d88739b Tidy window-manager.el
Remove stale code and stale comments.
2020-04-02 18:36:21 +01:00
William Carroll
691583ed5c Refactor opening X applications from Emacs
I borrowed heavily from Vincent's depot.
2020-04-02 18:34:49 +01:00
William Carroll
d12b8b3dcb Build either emacs.{glinux,nixos} depending on my current device
`M-x nix/rebuild-emacs` will build either emacs.glinux or emacs.nixos depending
on whether I'm using a work device or a personal device.
2020-04-02 14:50:53 +01:00
William Carroll
86da482fbf Define device/corporate?
Write a predicate function for checking whether or not I'm on a corporate
device.
2020-04-02 14:50:18 +01:00
William Carroll
401ec6a7a1 Tidy up emacs/default.nix
When I run `nix-env -f '<briefcase>' -iA emacs`, Nix builds a derivation of
wpcarros-emacs using the path to the Emacs derivation. This doesn't work well on
glinux and causes strange behavior. For instance, Chrome crashes when it tries
to browse for files. Building with `nix-env -iA emacs.glinux` fixes this and
other problems.

Miscellaneous other changes:
- Remove unnecessary fix-point recursion
- Drop support for unused dottime.el
- Remove unused overrideEmacs
- Remove unused withLocalConfig
- Support emacs.glinux and emacs.nixos alternative derivations
2020-04-02 14:37:47 +01:00
William Carroll
8c3bf2debf Set Gruvbox theme as my default Emacs theme
I want to use a dark theme for awhile.
2020-04-02 14:37:09 +01:00
William Carroll
be13644f1c Tidy up themes.el
TL;DR:
- Prune unused themes
- Prefer "JetBrainsMono" font for all themes
- Remove TODOs that I've either supported or that I'm uninterested in supporting
2020-04-02 14:36:12 +01:00
William Carroll
8fa3140253 Increase default font size for laptop
I'm working off of my laptop but I'm using my 4k monitor. The expression that
sets `fonts/size` could be more sophisticated and detect this, but for now, I'm
just bumping up the size.
2020-04-02 14:34:31 +01:00
William Carroll
d88a4d5792 Drop support for org-capture
I don't use org-capture, and I am not currently interested in developing that
habit.
2020-04-01 21:02:30 +01:00
William Carroll
90154fd2dd Prefer briefcase/org to Dropbox/org
I would like to version-control most but not all of my org files.
2020-04-01 21:01:17 +01:00
William Carroll
7dbf7b025a Delete dusty Elisp code
When I first switched to EXWM, I wrote a lot of Elisp. I think I was mostly
excited about having a monorepo and, as I had a backlog of ideas that I wanted
to implement, I ended up writing many halfly baked ideas in Elisp. These are
mostly sketches.
2020-04-01 20:58:10 +01:00
William Carroll
f2ba5aca31 Ensure Emacs prettier hook activates
Problem:
prettier-js waits for rjsx-mode. rjsx-mode only runs on .js files. As such,
the hook that installs prettier-js-mode for *all* of my frontend hooks, which
includes more than just js files, does not install until a javascript file is
opened.

Solution:
Do not conditionally load prettier-js.

Bonus:
Remove the .js mode from rjsx.
2020-03-27 10:59:57 +00:00
William Carroll
47a0b45f5f Change theme to doom-one
TL;DR
- Prefer doom-one theme to solarized light
- Prefer colorscheme/set to themes/set
2020-03-26 23:34:40 +00:00
William Carroll
1cc1ce5ccf Change the value of constants/current-project
Yesterday evening, I moved the blog directory to website/blog; I forgot to
update this value.
2020-03-20 16:56:46 +00:00
William Carroll
117f0be7c2 Unbind <SPC> in evil's motion map
By default this just advances the point one character, which I don't use nor
want especially because my leader key is the space key.
2020-03-20 12:12:42 +00:00