Commit graph

302 commits

Author SHA1 Message Date
William Carroll
eb748071ca Define light theme
Well, we have a lot of dark themes, so in the interest of diversity I now
support light themes.
2020-01-17 10:56:21 +00:00
William Carroll
5a60ab886e Reset the custom-file path for Emacs
I temporarily set it to /tmp/custom.el while I was in the midst of Nixifying my
Emacs setup. Since I'm not Nixified at the moment, I'm reverting this, so that
Emacs doesn't ask me the same questions about loading themes every day.
2020-01-17 10:56:21 +00:00
William Carroll
ae75a9df9c Configure deadgrep
Configuring deadgrep to do a number of things:
1. Set `deadgrep--context` to see more context "after" in the output.
2. Define `deadgrep/dwim` to use a region if one is present; otherwise just
   behave as `deadgrep`.

Warning: This commit relies on a patch I made to deadgrep: supporting the
`deadgrep--additional-flags`.
2020-01-17 10:56:21 +00:00
William Carroll
0681753929 Blacklist org-mode and fundamental-mode
More blacklisted modes in my crusade to define what a "source code buffer" is.
2020-01-17 10:56:21 +00:00
William Carroll
2db7edfee0 Define KBD for killing buffers
I'm tired of `C-x k`. That's right... my fingers hurt.
2020-01-17 10:56:21 +00:00
William Carroll
2e3813f169 Support additional magit modes in buffer/source-code-blacklist
I'm sure I'll discover more modes that I'd like to blacklist; I just haven't
encountered them yet.
2020-01-17 10:56:21 +00:00
William Carroll
71c24104eb Refactor MRU EXWM workspace using cycle/focus-previous!
Instead of consuming `cycle/previous-focus`, define a function
`cycle/focus-previous!` that "focuses" the element at `previous-index` and
returns that element.

This function greatly simplified the code in window-manager.el and eliminated
the unnecessary `exwm/previous-workspace` variable that was managing the state.
2020-01-17 10:56:21 +00:00
William Carroll
1399eae319 Cover struct.el
Add some basic test coverage to struct.el.
2020-01-17 10:56:21 +00:00
William Carroll
b52d210b9b Support cycle/previous-focus
Define a `cycle/previous-focus` function that returns the item that was
previously "focused" in the cycle. This is helpful for toggling back-and-forth
between buffers and EXWM workspaces for example without needing to define ad-hoc
variables to support it.

Also: Adds tests to cycle.el.

Also: Prefers `struct/set!` instead of `setf`. See the previous commit's message
for more information about that preference.
2020-01-17 10:56:21 +00:00
William Carroll
ef881e059b Prefer struct/set! to setf
I originally tried using `struct/set` instead of `setf`, which I had forgotten
was the *immutable* version of `struct/set!`. When this didn't work, I reverted
to `setf`. After a good night's sleep and with a fresh set of eyes, I dug into
the issue and discovered that `struct/set!` was what I wanted the whole.

I am curious now about `struct/update` versus `struct/update!`; shouldn't the
former be immutable and the latter be mutable? I'll save that investigation for
a later date.
2020-01-17 10:56:21 +00:00
William Carroll
5407eeb146 Add missing dependency to set.el
I had startup problems without the struct.el module being required since set.el
consumes `struct/update`.
2020-01-17 10:56:21 +00:00
William Carroll
271e7f9561 Support functions for navigating buffer caches
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 10:56:21 +00:00
William Carroll
2c03651483 Support KBDs for quickly editing common dotfiles
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 10:56:21 +00:00
William Carroll
ca8cb3fe21 Support utils for finding Emacs dotfiles and Org files
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 10:56:21 +00:00
William Carroll
a51afca1cc Support xsessionrc and config.fish in dotfiles.el
Add entries for xsessionrc and config for the `dotfiles/edit` function.
2020-01-17 10:56:21 +00:00
William Carroll
88f5791fb5 Install ts.el for timestamp functions in Elisp
I've been looking for this! Thank you, @alphapapa.
2020-01-17 10:56:21 +00:00
William Carroll
e8e5ec5f40 Install prism for scope-highlighting > syntax highlighting
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 10:56:21 +00:00
William Carroll
6e77fc7978 Revert Nixified Emacs configuration
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 10:56:21 +00:00
William Carroll
069ca63082 WIP: Nixify Emacs setup
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 10:56:21 +00:00
William Carroll
7175d230c2 Nixify fish configuration
This isn't 100% usable, but it works. You can build it with `nix-env` and then
run it with `wpcarros-fish`.
2020-01-17 10:56:21 +00:00
William Carroll
73e988c298 Define nix_find command in fish
Defining a function for outputting the /nix/store path to a package built with
Nix.
2020-01-06 15:25:25 +00:00
William Carroll
8c667af902 Support Wall-E theme
Add Wall-E theme to consume the latest `doom-material` theme.
2020-01-06 15:25:25 +00:00
William Carroll
9f209f5ccd Support EXWM workspace for IRC
Supporting this since my chat workspace is already a bit populous.
2020-01-06 15:25:25 +00:00
William Carroll
74ed4b6b11 Debug lt ZSH function
Change `-all` to `--all`.
2020-01-06 15:25:25 +00:00
William Carroll
47d16e2512 Support lispyville KBDs
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 15:25:25 +00:00
William Carroll
6d87dcb710 Decrease default font size on laptop
See diff for more information.
2020-01-06 15:25:25 +00:00
William Carroll
f182410fd2 Support Freenode IRC
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 15:25:25 +00:00
William Carroll
50f99976e0 Support set/{reduce,intersection,equal?,distinct?}
Adds additional functions for the set.el module. See the function documentation
and tests for more information.
2020-01-06 15:25:25 +00:00
William Carroll
d5cd2719e7 Support pasting in read-expression-map
This was something small that has been slightly bothering me for a *very* long
time. Now it's fixed!
2020-01-06 15:25:25 +00:00
William Carroll
d13e347b9f Prefer variadic cycle/new
TODO: Ensure all */new functions in my Elisp library share this API.
2020-01-06 15:25:25 +00:00
William Carroll
837a74f10f Support alist/{find,map-keys,map-values} and tests
Supporting iterable / enumerable functions for alists.
2020-01-06 15:25:25 +00:00
William Carroll
9d20c1b894 Prefer Telegram native over Telegram web
I installed nixpkgs.tdesktop to support dark-mode and access other useful
features of the native Telegram client.
2020-01-06 15:25:25 +00:00
William Carroll
5785a5d126 Support prelude/start-process
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 15:25:25 +00:00
William Carroll
c078f04526 Change &keys -> &key in cl-defun
These were latent bugs.
2020-01-06 15:25:25 +00:00
William Carroll
15d889fa0e Prefer start-process to shell-command for pulse-audio module
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 15:25:25 +00:00
William Carroll
7ec4dca723 Reduce latency of screen-brightness/{increase,decrease}
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 15:25:25 +00:00
William Carroll
5fbe860b95 Prefer start-process to shell-command
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 15:25:25 +00:00
William Carroll
4e454f0466 Define new Emacs theme
Defining "Shapely Patterns" theme... surely I can come up with better names than
this... :/
2020-01-06 15:25:25 +00:00
William Carroll
7ae17daa98 Drop support for i3
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 15:25:25 +00:00
William Carroll
25ce422abd Support microphone toggling
Use pactl and exwm KBDs to support toggling my microphone setting from Emacs.
2020-01-06 15:25:25 +00:00
William Carroll
ba1034a9c8 Begin the Emacs email journey
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 15:25:25 +00:00
William Carroll
67f060d6f9 Temporarily disable flycheck
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 15:25:25 +00:00
William Carroll
852783827c Ensure git yday alias formats commits like git today
Prefer the --oneline flag for `git yday` so that it is formatted like the
`git today` command.
2020-01-06 15:25:25 +00:00
William Carroll
7bb4201905 Support more fish abbr's for git
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 15:25:25 +00:00
William Carroll
6cf8517cab Combine google-{stuff,tooling}
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 15:21:34 +00:00
William Carroll
96032dbeb0 Support JS-style header in web-mode
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 15:21:34 +00:00
William Carroll
27c57a1f16 Drop support for purpose.el
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 15:21:34 +00:00
William Carroll
0cd3b44ce3 Support evil-magit, refine
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 15:21:34 +00:00
William Carroll
7bd668ee8f Defensively install all-the-icons assets
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 15:21:34 +00:00
William Carroll
d1566dd0e6 Refactor strings.el tests
Ensure that string.el follows the latest whim in my Elisp testing circus.
2019-12-24 15:21:34 +00:00
William Carroll
90955a3c02 Support ensure_{file,dir} in zsh
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 15:21:34 +00:00
William Carroll
82717e3f22 Support rainbow-delimiters-mode
Why did I ever remove this? Perhaps git can help me answer that.
2019-12-24 15:21:34 +00:00
William Carroll
998646995f Support Typescript
I had previously only worked with Facebook's Flow. Typescript support in Emacs
is excellent!
2019-12-24 15:21:34 +00:00
William Carroll
3a204cec24 Update Tramp configuration
I'm unsure if this file should be included in my dotfiles, but it doesn't seem
to contain sensitive information.
2019-12-24 15:21:34 +00:00
William Carroll
274219cc63 Prefer somes? to some? in math.el
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 15:21:34 +00:00
William Carroll
56692b3833 Update docs for macros/support-file-extension
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 15:21:34 +00:00
William Carroll
afcd663c7c Fix typo in keyboard configuration
I was missing a trailing comma in my xmodmap call. This rectifies that mistake.
2019-12-24 15:21:34 +00:00
William Carroll
ebe67fc73d Remove aliases for personal project
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 15:21:34 +00:00
William Carroll
8fc68d8edb Update OCaml support
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 15:21:34 +00:00
William Carroll
3dc1bc4f84 Delete "conflicted copy" files
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.
2019-12-24 15:21:34 +00:00
William Carroll
7adb776927 Support Prolog
Register the .pl file extension with `prolog-mode'. This is useful because I'm
reading the "Learn Prolog Now!" book at the moment.
2019-12-24 15:21:34 +00:00
William Carroll
f739534203 Support fish shell!
After some back-and-forth, I'm trialing fish shell instead of zsh as my default
shell. For now, I'm porting the aliases.zsh into config.fish -- defining them as
abbreviations instead of aliases; this preference may change. See the commentary
in config.fish for more information.

A spent a lot of time in zsh and built much configuration, so supporting fish
may take considerable time. Here's some work that remains:

TODO:
- Port functions.zsh
- Port variables.zsh
- Port zle.zsh
2019-12-24 15:21:34 +00:00
William Carroll
b3342afbfa Temporarily disable code that creates circular deps
After attempting to package some of my Elisp libraries using Nix, I exposed
circular dependencies between modules that has existed for awhile.

I'm temporarily disabling this code since I do not have time to refactor
everything. When I get around to packaging everything, I'll need to resolve
these issues.

For now, I must carry on.
2019-12-24 15:21:34 +00:00
William Carroll
6b456c1b7a Massive configuration overhaul
Currently paying the price of months of non-diligent git usage.

Here's what has changed.

- Theming support in Gvcci and wpgtk
- Dropping support for i3
- Supporting EXWM
- Many Elisp modules
- Collapsed redundant directories in ./configs
2019-12-24 15:21:34 +00:00
William Carroll
a7c72adb2e Support functions for navigating Google3
I had `tbz`, which toggles between a project directory and it's associated
blaze-bin.

I added three functions which support navigating to blaze-bin, blaze-genfiles,
and to the project root.
2019-05-14 17:00:28 +01:00
William Carroll
6fba42e306 Support hardware-based aliases
Hibernating, sleeping, WiFi configuration...
2019-05-13 16:39:48 +01:00
William Carroll
c41e9fe49c Support additional mercurial aliases
More analogue to git for mercurial.
2019-05-13 16:39:22 +01:00
William Carroll
940ea173f6 Delete duplicate Google3 alias
Whoops...
2019-05-13 16:38:59 +01:00
William Carroll
dac7e40a43 Prefer floating lf window
Ensures that the lf instances are floating windows when created.
2019-05-13 16:38:34 +01:00
William Carroll
5cb0aebbd3 Support sandboxes for Elixir, Haskell, Clojure
The dream is to create an offline version of something like repl.it.
2019-05-13 16:37:47 +01:00
William Carroll
011d302b9e Supports home_theater function
Helpful reminder for how to setup bluetooth, TV streaming, etc.

Sadly I need this because I still have a lot of trouble working with Linux.
2019-05-13 16:36:24 +01:00
William Carroll
a59605c756 Support alternative lock screen
Also adds some rules for the Compton configuration so, that the lock screen
isn't transparent.
2019-05-13 16:35:38 +01:00
William Carroll
aafc240c16 Support g4d for Google repositories
Support aliases to quickly navigate the Google3 source code tree.
2019-05-13 16:34:43 +01:00
William Carroll
1e84900ac9 Support alias for tput reset
Useful command to run instead of `clear` - especially after printing sensitive
information to STDOUT. E.g. after running - `pass show misc/secret`.
2019-04-15 13:25:14 +01:00
William Carroll
4e39998671 Support compton
Compton helps composite windows in X. This supports shadows, transparency, and
some other effects of which I'm unaware at the moment.
2019-04-15 13:24:28 +01:00
William Carroll
0faa588ae1 Support i3-gaps
Re-enabling support for i3-gaps after successfully installing it from source.
2019-04-15 13:23:24 +01:00
William Carroll
119ea8b6ad Don't log DONE time in org-mode
At the moment, I don't find these timestamps useful.
2019-04-15 13:21:41 +01:00
William Carroll
ef08e2228c Support directory alias for google3 experimental
I intend on using my experimental folder more regularly for Java, Blaze,
etc. tests.
2019-04-09 18:38:53 +01:00
William Carroll
748e880762 Support align KBD for evil-leader
<leader>= should align a selected region. This should have been added awhile
ago, but it's great to have now!
2019-04-09 18:38:16 +01:00
William Carroll
d26abe7edb Support Java snippet for main function
Should output: `public static void main(String[] args)`. More of these Java
snippets to come.
2019-04-09 18:37:37 +01:00
William Carroll
5144384bec Support Google IRC in irssi
Also changes a few config settings for auto{connect,join}ing. This is still a
WIP.
2019-04-08 17:19:37 +01:00
William Carroll
9bc3cbece2 Drop i3 support for spawning apps in horizontal or vertical mode
Prefer using i3's "active edge" to control where apps are spawned.
2019-04-08 17:18:47 +01:00
William Carroll
79ef9e0c63 Drop support for extending Emacs's default word regex
This was causing problems with my Emacs initialization. I don't have time to
troubleshoot, so I'm removing this for now.
2019-04-08 17:17:41 +01:00
William Carroll
7d2bfc8a28 Support alias for Google's Intellij path
Hardlink paths are hard for me to remember.

NOTE: It's now more reliable with the DISPLAY fix
2019-04-03 17:22:09 +01:00
William Carroll
a414fefa03 Reintroduce nohup to browse function
Updates the implementation to ensure that the nohup.txt file isn't
created.
2019-04-03 17:21:23 +01:00
William Carroll
c492c8f4bf Update regexp used with evil-mode's * and # KBDs
I'd bet that there is a better way to achieve this, but I couldn't find
it, and I need this experience to be better.
2019-04-03 17:20:33 +01:00
William Carroll
4c1fbe01f6 Fix $DISPLAY issues with Tmux
Ensure that DISPLAY is set correctly so that commands executed in Tmux
that require X windows don't disappear.
2019-04-03 17:19:46 +01:00
William Carroll
10aef4e40d Support dmenu integration for Chrome bookmarks
I'd like to regain control of my browsing bookmarks with a simpler solution
using `dmenu`, `i3`, and a text file.

TODO: drop support for Chrome bookmarks by porting all remaining bookmarks to
bookmarks.txt

NOTE: maybe change bookmarks.txt to bookmarks.json to support nesting. Could be
simply with `jq`.
2019-04-03 13:12:52 +01:00
William Carroll
8220336205 Support sandboxing languages like Elixir, Haskell
The previous commit foreshadows this change. This also introduces so changes for
the Docker tooling.
2019-04-02 21:29:46 +01:00
William Carroll
c88f3da4ac Augment clipmenu KBD to paste-in-place
Introduces the `xdotool` dependency, which is a way to simulate X window events
from the CLI.
2019-04-02 21:27:47 +01:00
William Carroll
7646143843 Support .docker/config file
Useful since helpful aliases and functions around creating sandboxed REPL
environments for languages like, Elixir, Haskell are on the way. Other languages
that might be interesting to support would be Clojure.
2019-04-02 21:26:01 +01:00
William Carroll
698cff169a Augment i3statusbar
- support battery indicator
- format indentation
2019-04-01 18:28:03 +01:00
William Carroll
9ef4b5bb0a Support run_java
I probably won't need this as I become more familiar with Java.
2019-04-01 18:27:20 +01:00
William Carroll
6a2d7ef035 Support dmenu clipboard manager
Still needs a bit of fine-tuning to be ideal, but it's already pretty useful.
2019-04-01 18:26:40 +01:00
William Carroll
cc3aecb1e3 Support Java alias for jshell
The `jshell` alias currently imports libs like guava and jOOL into the `jshell`,
which is nice for experimenting.

Experimenting with keeping some helpful `.jars` in `~/programming/jars`. This
may be a bad idea, and there may exist a more idiomatic way to do this instead
of wrapping `jshell` in an alias, but for now, I need to move on.

Also documents some abbreviations for applications. `jv` will be necessary so
that I don't conflict with `j` or `js` for javascript. Eventually I'll need to
be more organized to avoid naming collisions, but this is okay for now.
2019-03-29 17:19:29 +00:00
William Carroll
54c13a8848 Update Cider KBD to use google-chrome
This allows me to take advantage of the --app=<URL> flag that google-chrome
supports, which is nice for a version of cider that bleeds all the way to the
window's edges. It makes Cider feel more like a native application experience.
2019-03-28 17:32:21 +00:00
William Carroll
653ffd381a Support $mod+Return for starting up a terminal
This comes with the default configuration on i3. I removed this KBD originally
because I was hoping to use the $mod+{,Shift+}t KBDs frequently. I still do, but
as I get more comfortable with i3, splits, parent containers, etc. I may prefer
to create terminals this way. We'll see...
2019-03-28 17:30:32 +00:00
William Carroll
d69d6421b2 Support KBD to unfocus parent container
Been missing this for awhile. Useful since I'm using $mod+a more often.
2019-03-28 17:29:43 +00:00
William Carroll
97c156be88 Support SpeWall in bash variables
NOTE: consider migrating from GH private repo to Google's Git on Borg. This is
preferable since GH gets hacked and private repos can be exposed. While a path
to a Google 3 repo like SpeWall may not pose a large security risk, it certainly
isn't optimal. Imagine a path to a repository whose name leaked a secret
project. Two options:

1. embrace encryption options like Mozilla's `sops` and remain on GH private
2. switch wholesale from private GH to GoB
3. classify "sensitve" parts of dotfiles as such and move those to GoB and keep
   everything else on private GH

One added perk of switching to GoB is saving the $7 monthly fee to support
private GH repos.
2019-03-28 17:29:24 +00:00
William Carroll
79387acb96 Create generic loop fn
Might be useful for things like:

```
loop 'PAGER="" hgst' 1 y
```

```
loop 'du -hs .'
```

```
loop ll
```
2019-03-27 18:27:49 +00:00