Commit graph

932 commits

Author SHA1 Message Date
William Carroll
4b00548768 Extend {default,max}-cache-ttl in gpg-agent.conf
I recall making these changes days ago, but I cannot seem to find any evidence
of those changes.

Extending the lifetimes of GPG cache to improve the UX of using `pass` and
similar tools.
2020-01-22 21:13:06 +00:00
William Carroll
16dfa55df7 Ensure EDITOR and similar variables work with EXWM setup
After some confusion about my `emacsclient` is currently working as
expected. Perhaps it always did. I had `emacs --daemon` in my
`~/.xsessionrc.shared` for awhile, which may have confused
`emacsclient`. Whatever happened, I'm glad it's working now.
2020-01-22 21:13:06 +00:00
William Carroll
b843e0f8f6 Remove opam-install variable and assertion
The `prelude/assert` for the existence of the `opam-install` directory was
failing.

I believe this assertion would have been failing sooner, but a bug in my
initialization was preventing Emacs from evaluating `wpc-ocaml.el`. It seems
that I removed whatever was jamming the initialization and as such, I uncovered
some more bugs.

Let this serve as a reminder that just because it hasn't bitten you yet, doesn't
mean that your software doesn't have a bug.
2020-01-22 21:13:06 +00:00
William Carroll
59be1ee981 Support today-{expected,actual}
"Everybody has a plan until they get punched in the mouth"
- Mike Tyson
2020-01-22 21:13:06 +00:00
William Carroll
514c5797de Support keynav
I'm trying a mouse-less workflow supported by `keynav`. So far, everything works
pretty well... and then I needed to take a screenshot and I don't know how to
use `scrot --select` without a mouse.
2020-01-22 21:13:06 +00:00
William Carroll
3d6b521919 Ensure scrot.el initializes
- Adds scrot to init.el
- Moves the EXWM keybindings to keybindings.el
2020-01-22 21:13:05 +00:00
William Carroll
16fd606f91 Whitelist keybindings.el in init.el
Also tracking a TODO to consolidate all of my keybinding and keyboard related
modules.
2020-01-22 21:13:05 +00:00
William Carroll
d590fdae42 Debug fonts.el
Removing call to `fonts/fontify`: a function that no longer exists.
2020-01-22 21:13:05 +00:00
William Carroll
3e3ba41c5d Bind chrome/browse to EXWM keybinding
I'm hoping to use `chrome/browse` more often!
2020-01-22 21:13:05 +00:00
William Carroll
84eeb374b7 Debug keybindings.el
Change `keybindings/` -> `keybinding/`. Whoops...
2020-01-22 21:13:05 +00:00
William Carroll
b4a6551dd5 Drop support for evil-leader
Preferring to use the `general` package for defining leader-prefixed keybindings
than `evil-leader`.

This TODO has existed for quite awhile, so I'm pleased to finish it!

During the cleanup, I deleted some keybindings that I no longer used.
2020-01-22 21:13:05 +00:00
William Carroll
40742c612a Track TODO for extending alist/new
See TODO for more information.
2020-01-22 21:13:05 +00:00
William Carroll
64cf4ac920 Begin supporting list/index
This currently doesn't work and as such is a work-in-progress.
2020-01-22 21:13:05 +00:00
William Carroll
0c59df8327 Add tests for vector.el
Adds a few tests for vector{set,set!} functions.
2020-01-22 21:13:05 +00:00
William Carroll
a11af57666 Add --debug-init flag to Emacs startup command
This should tighten my feedback loop slightly.
2020-01-22 21:13:05 +00:00
William Carroll
ddd5d3a7a0 Drop support for ORG_DIRECTORY in envrc
When Emacs starts it's called from xsessionrc.shared, which is called outside of
direnv's .envrc scope. Because of this variables defined therein, like
ORG_DIRECTORY, are undefined and prevent Emacs from initializing.

I'm hard-coding the `org-directory` variable for now and removing references to
`(getenv "ORG_DIRECTORY")`.
2020-01-22 21:13:05 +00:00
William Carroll
8a657fff7f Temporarily prefer start-process instead of prelude/start-process
While my `prelude/start-process` function cannot support arguments in the form
of `'single quotes'`, I'm using `start-process`.
2020-01-22 21:13:05 +00:00
William Carroll
2a9fadd092 Change current-project to mono-repo
Point the constants/current-project variable to my mono-repo.

The constants.el file isn't as populated as I was expecting and I think
supporting it introduces indirection in my code. I'm considering removing it.
2020-01-22 21:13:05 +00:00
William Carroll
ec21e072a1 Prefer general to evil-leader
Another small step towards dropping support for evil-leader, which general
supplants.
2020-01-22 21:13:05 +00:00
William Carroll
d85df45bab Attempt to tidy Emacs mode line
Removing the major-modes and VCS information from my mode line, since I don't
use this much and I think my mode line is noisy enough as is.
2020-01-22 21:13:05 +00:00
William Carroll
c010e6d6cf Practice dijkstra's algorithm
Getting some practice with Python's heapq module (which I'm unsure if I used
correctly) to do a priority-first-traversal of a graph: known as Dijkstra's
algorithm.
2020-01-22 11:07:07 +00:00
William Carroll
91811236a5 Complete which-appears-twice
Solves the InterviewCake.com problem that asks us to write a function that
returns the number, y, that occurs twice in a list, xs, where xs is an unsorted
list of integers from 1..n with a length of n + 1.
2020-01-22 11:06:10 +00:00
William Carroll
4f6191b34c Complete reverse-linked-list problem
Completing the deceptively tricky reverse-linked-list problem from
InterviewCake.com.
2020-01-22 11:05:43 +00:00
William Carroll
2a0540d76d Create org table of sorting algorithms and their efficiency
This is just a small org table that I created to help me

Fun fact: In Emacs, you can insert literal TAB character by pressing `C-q
TAB`. For creating tables, using TAB characters feels perfectly
acceptable. Perhaps the TAB name comes from TABle.
2020-01-22 10:12:27 +00:00
William Carroll
de039c7133 Complete find-rotation-point
Solves an InterviewCake.com problem that returns the index of the element in a
list that should be the first element in that list. It's an exercise that's
useful for seeing other applications of a binary search.
2020-01-22 10:11:23 +00:00
William Carroll
bbea699f06 Complete string permutations problem
Solves an InterviewCake.com problem that returns all of the permutations of a
string input. The problem states that it's acceptable to assume that your input
string will not have repeated characters, which is why using a Set is
acceptable. I like this solution because it builds a permutations tree and then
assembles all of the permutations by doing a DFT over that tree.
2020-01-22 10:09:46 +00:00
William Carroll
64bd3f0303 Complete balanced binary tree problem
Supporting a function that returns true if a tree has no two leaf nodes with
depth differences greater than 1.
2020-01-22 10:08:56 +00:00
William Carroll
cb39efd0ac Remove unused keybindings
In the interest of slimming down, removing these dusty keybindings.
2020-01-18 22:51:27 +00:00
William Carroll
66f597ac39 Format modules
Add missing headers and remove gratuitious whitespace.
2020-01-18 22:50:56 +00:00
William Carroll
77d46eb5e1 Debug failed initialization of keybindings
Some more pains of weening off of Dropbox is that my Emacs initialization is
sensitive to dependencies and missing require statements. I'm still debugging
everything.

Some modules called `exwm-input-set-key` before the `window-manager` module
loaded, which itself requires EXWM. This broke initialization. To get around
this I could've called `(require 'exwm)` in each of those modules. I chose to
define a `keybindings.el` module to whitelist some of my EXWM keybindings. I'm
not sure if this is the best way forward, but it is *some* way forward.
2020-01-18 22:47:11 +00:00
William Carroll
068a648736 Support string/contains?
Simple wrapper around s-contains? but in the interest of avoiding a mixture of
s.el and stirng.el functions, the wrapper was defined.
2020-01-18 22:37:27 +00:00
William Carroll
fa681ffdf0 Use assert in prelude/start-process
Since the tokenizing isn't working as expected, my keyboard.el function
keyboard/swap-caps-lock-and-escape was silenting failing.

I'm adding a prelude/refute in that function to make the failures noisy until
the tokenizing is properly supported.
2020-01-18 22:34:55 +00:00
William Carroll
bb0de3dec2 Begin tests for Haskell File module
Cameron sent over some property tests for his File.split function, which is a
part of a larger effort to port f.el, a nice library for working with file
paths, over to Haskell.
2020-01-18 17:05:32 +00:00
William Carroll
34dc3e05c8 Complete practice algorithms from InterviewCake.com
While I've done these algorithms before, I'm preparing for an on-site with
DeepMind, so I created a subdirectory called deepmind where I'm storing my
second attempts at these problems. The idea of storing them in a second
directory is to remove the urge to check my existing solutions that also exist
in this repository.
2020-01-18 17:04:05 +00:00
William Carroll
e7200fb033 Ignore transient/history.el
I find that this file makes too much noise for me to care to track it.
2020-01-18 17:03:08 +00:00
William Carroll
158b66fbb5 Support Gruvbox theme
Add Gruvbox theme in themes.el.

Also made a note to consider supporting themes:
- with solid colors as wallpaper
- without compton's transparency
2020-01-18 17:00:22 +00:00
William Carroll
2e4092f67e Prefer general to evil-leader
One small change in a larger effort to drop support for evil-leader.
2020-01-18 16:59:46 +00:00
William Carroll
b00fa4ffe8 Load entr.el at Emacs initialization
Also make a note to rename entr.el to something else. That module should be
refactored, but it gets the job done currently.
2020-01-18 16:58:43 +00:00
William Carroll
a62553f7b7 Add DeepMind subdirectory
I need to prepare for my on-site with DeepMind, so I'll host some attempts to
solve data structures and algorithms questions here.
2020-01-17 20:08:24 +00:00
William Carroll
1ba65acfd6 Don't start emacs server at login
Since I'm using EXWM, I'm unsure what benefits starting the Emacs server gives
me. In the interest of cleaning up my xsessionrc, I'm deleting this.
2020-01-17 19:07:50 +00:00
William Carroll
68395b29f9 Re-order functions.el module
Move `wpc/find-file-split` directly below `wpc/find-file`.

TODO: This module is quite old and served as a bit of a dumping grounds for me
for a long time. As such, I think I should consider deleting dead code and
moving some of these functions to other modules.
2020-01-17 19:06:09 +00:00
William Carroll
fa640ed8a3 Ignore __pycache__ directory
I don't believe I'll be needing this.
2020-01-17 19:05:33 +00:00
William Carroll
7bd17ed07c Remove xset and xmodmap calls from xsessionrc
These are defined in keyboard.el, so these are redundant.
2020-01-17 18:55:03 +00:00
William Carroll
dd058004fe Don't start a tmux session when X starts
I've stopped using Tmux almost entirely.
2020-01-17 18:53:53 +00:00
William Carroll
cd3b879e7b Support clipboard/contents
This function returns the contents of the clipboard without calling paste.
2020-01-17 18:52:16 +00:00
William Carroll
e197dc5aba Re-enable wpc-org with direnv support
After moving some environment variables out of `~/.profile` and into a `.envrc`
file, I broke some of my modules because Emacs, which is started in
`~/.xsessionrc.shared`, is started from outside of the `.envrc` scope.

Thankfully someone wrote an excellent Emacs integration with `direnv` so now the
world keeps turning and it is even more beautiful than it was previously.
2020-01-17 10:56:21 +00:00
William Carroll
2108ee933a Support google3 as a citc alias
Sometimes I just want to visit //google3.
2020-01-17 10:56:21 +00:00
William Carroll
9108c3fa7d Drop support for prism-mode
Many times when I run `prism-mode` the contrast between the colors isn't strong
enough. This is unfortunate because I really like the idea.

Perhaps one day I can submit a PR to ensure that it uses the highest-contrast
colors available to it.
2020-01-17 10:56:21 +00:00
William Carroll
97fd83272c Prefer fullscreen for magit-status
Magit as a fullscreen buffer helps me focus by removing the noise of additional
buffers.
2020-01-17 10:56:21 +00:00
William Carroll
6ad100c5fa Debug colorscheme.el
`colorscheme/prev` was calling `colorscheme/load`, which has been changed to
`colorscheme/set`.
2020-01-17 10:56:21 +00:00