Commit graph

545 commits

Author SHA1 Message Date
William Carroll
57fbee288b Define additional systemctl fish abbreviations
I often run `systemctl --user status <some-unit>`
2020-03-10 23:07:30 +00:00
William Carroll
3ae100e468 Manage session variables with home-manager
If you haven't noticed, home-manager is managing increasingly more of my
configuration.

- Migrate session variables to home.nix
- Drop support for unused session variables like TERMINAL, VISUAL
2020-03-10 23:07:30 +00:00
William Carroll
82b2c8c27c Remove ssh-agent code from .profile
TIL: gpg-agent sets the SSH_AUTH_SOCK and other values. Since I already use
home-manager to start gpg-agent and SSH has been functioning without issues, I'm
removing the obsolete ssh-agent code.
2020-03-10 23:07:30 +00:00
William Carroll
ad77311c94 Configure keyboard preference with home-manager
Preferring home-manager to reduce some of the clutter I've created.
2020-03-10 23:07:30 +00:00
William Carroll
b6a803d99d Configure bat to use a different theme
Whatever bat's default theme for syntax highlight is, I cannot read it with my
current theme.
2020-03-10 23:07:30 +00:00
William Carroll
94c0081241 Temporarily disable docker and rust from .profile
Attempting to debug nginx.
2020-03-07 16:17:23 +00:00
William Carroll
a9ac4f925b Support root directory and dirs like /tmp
Properly handle display the root directory and sub directories.
2020-03-06 18:45:55 +00:00
William Carroll
2eb9259a1b Manage fish with home-manager
I patched home-manager locally to support fzf keybindings for fish. I will PR
this into home-manager, but I haven't yet, which means that my home.nix file
depends on my local ~/home-manager.
2020-03-06 18:45:55 +00:00
William Carroll
fe61dee511 Splice configs/shared directory
- Move all children from configs/shared into configs.
- Delete "shared" directory.
2020-03-06 10:15:29 +00:00
William Carroll
137bd6dc0c Drop support for terminator
I've been consistently using vterm enough that I don't think I will change
shells anytime soon. Couple this with my previous commit where I hint that I'd
like to curb all terminal usage if possible, and it seems unlikely that I'll
want to keep this terminator configuration.
2020-03-06 10:15:29 +00:00
William Carroll
382ef0be55 Drop support for rofi
Rofi is a nicer alternative to dmenu, but I use neither dmenu nor rofi, so
farewell.
2020-03-06 10:15:29 +00:00
William Carroll
fd0595805f Drop support for mpd
If I'm being candid, I'm not even sure I remember what mpd does. My current
guess is that it's a music player daemon.
2020-03-06 10:15:29 +00:00
William Carroll
e31e8d7dcc Drop support for lf
While I like lf, I don't use it enough to maintain this configuration.
2020-03-06 10:15:29 +00:00
William Carroll
86850e9c61 Drop support for .g4d
I have an Elisp module that encodes these aliases mappings.
2020-03-06 10:15:29 +00:00
William Carroll
813c7f94de Drop support for desktop and laptop
As I pruned increasingly more dependencies, the few dependencies that desktop
and laptop hosted were too trivial for me to justify supporting. And so, I no
longer support them.
2020-03-06 10:15:29 +00:00
William Carroll
f2d9af2745 Support gpg-agent with home-manager
A previous commit supported gpg.conf; this commit supports gpg-agent.conf. I
still have other files in my .gnupg directory that I should audit.
2020-03-06 10:15:29 +00:00
William Carroll
19742e7790 Add programs to home-manager
Support commonly used programs like fd, exa, bat, etc.

For now, I'm unsure how to manage the programs in my emacs/default.nix with my
home.nix. I'll wait until I have a stronger opinion to handle this.
2020-03-06 10:15:29 +00:00
William Carroll
f645b6dadf Support fzf with home-manager
Because (to my knowledge) home-manager doesn't support fish-shell, I need to
retain some fzf-specific configuration in my fish/config.fish file.
2020-03-06 10:15:29 +00:00
William Carroll
cb3d1da6c9 Support lorri with home-manager
Prefer starting lorri with home-manager.

Note: I could have removed the `systemctl --user start lorri.service` line
before switching to home-manager by calling `systemctl --user enable
lorri.service`. This would have made a symlink in
`~/.config/systemd/user/default.target.wants`.
2020-03-06 10:15:28 +00:00
William Carroll
0045a0dd5a Drop support for Tmux
I haven't used Tmux for months.

I also suspect that using the terminal in general may be a crutch. Ideally I
could replace everything I do in the terminal with Emacs analogues. Perhaps one
month I'll force myself to work without a terminal to see what happens.
2020-03-05 15:04:04 +00:00
William Carroll
c6dac53b72 Drop support for cloudtop
While I do still technically own a Google cloudtop device, I haven't used it in
at least six months. In the interest of pruning non-critical dependencies, I'm
deleting it. I can alway restore it thanks to Git.
2020-03-05 15:04:04 +00:00
William Carroll
77633d22ae Drop support for personal_laptop
My former Manjaro device is now a NixOS device called "socrates", which hosts
this git repo and a few other projects.
2020-03-05 15:04:04 +00:00
William Carroll
df035ca832 Use home-manager to support SSH
I didn't port everything from .ssh/config to home-manager. I omitted a few hosts
that I don't connect to anymore. I also omitted the `corp-ssh-helper`
configuration.
2020-03-05 15:04:04 +00:00
William Carroll
86e1b82d2d Drop support for ncmpcpp
I don't think I ever fully setup ncmpcpp. This configuration has been collecting
dust in my monorepo for awhile.
2020-03-05 14:20:08 +00:00
William Carroll
bfa1aea14f Drop support for irssi
I've been using ERC for awhile, and I haven't switched back to irssi.
2020-03-05 14:19:44 +00:00
William Carroll
87f592750d Drop support for gvcci
I supported gvcci before I switched to EXWM. Now that I'm using EXWM, I prefer
keeping things simple and using Doom's solarized-light theme.
2020-03-05 14:15:52 +00:00
William Carroll
32fb5b9a1b Move gpg.conf to home-manager
- Migrate gpg.conf settings to home-manager
- Delete gpg.conf
2020-03-05 14:14:03 +00:00
William Carroll
28745c5f84 Drop support for Docker
I don't use Docker shells enough to justify maintaining this.
2020-03-05 14:10:23 +00:00
William Carroll
3b689f03de Support gitconfig with home-manager
- Migrate configuration from .gitconfig to home-manager.
- Delete .gitconfig.
- Delete .gitignore because I'm not using OSX anymore.
2020-03-05 14:09:21 +00:00
William Carroll
0cb1086adc Support Nix home-manager
Last night @adisbladis convinced me to try home manager. I'm growing weary of
wrestling with symlinks, so I'm willing to give this a try.
2020-03-05 13:18:17 +00:00
William Carroll
26c340bfd2 Drop support for functions.fish
I'm not using the functions defined in this file, and it is causing me in
trouble.
2020-03-04 20:43:31 +00:00
William Carroll
8695b5b1d1 Drop support for hub
I'm not using hub much lately and it's causing me trouble.
2020-03-04 20:39:37 +00:00
William Carroll
4a1523caba Ensure fish config is compatible with Tramp
Ensure that my config.fish does not interfere with Tramp.
2020-03-04 20:16:53 +00:00
William Carroll
11d8336733 Support custom fish prompt
Today I wrote myself a custom fish prompt. It's mostly what I'd like, but I'd
like to finely tune it a bit. I'd like to create a separate repository to
release this. In that repository, I'll explain why I wrote this.
2020-03-04 19:49:45 +00:00
William Carroll
ef2ce90aa7 Consolidate fish configuration
Months ago when I was revisiting Nix, I decided to nixify my fish
configuration. This was a useful learning exercise. I've had two config.fish
files floating around this repository ever since then. I sometimes update one
and other times I update the other. I'm consolidating these files into one, so I
that this is no longer as issue.
2020-03-01 22:32:24 +00:00
William Carroll
527b472469 Converge naming of Acer laptop to "socrates"
Prefer "socrates" to "flattop".
2020-02-22 19:04:12 +00:00
William Carroll
00e3526d9a Support SSH config for acer machine
I'd like to setup a NixOS machine that runs in my flat to host my blog and other
projects. For now it's a slow Acer running Manjaro Linux. I'm hoping that I can
install NixOS on it remotely over SSH. But first! SSH access...

I setup port forwarding from my router to this machine for:
- HTTP
- HTTPS
- SSH
2020-02-19 15:01:42 +00:00
William Carroll
e61965cafd Drop support for compton
I'm finding myself running `pkill compton` offer. In the spirit of slimming down
my configuration, I'm dropping support for compton.
2020-02-17 21:18:03 +00:00
William Carroll
a726bf737a Enable lieer-google.timer
After running `systemctl --user enable lieer-google.timer`, systemctl created a
symlink pointing from timers.target.wants -> ../lieer-google.timer. I'm not sure
if tracking symlinks in a git repository is such a useful idea.

This commit reminds me that I could and should be using Nix to better manage
symlink creation and destruction.
2020-02-14 15:43:37 +00:00
William Carroll
3677a7a39e Begin supporting notmuch in Emacs
I'm borrowing from @tazjin's dotfiles, which are stored in Git on Borg. When you
call `nix-build ~/briefcase/mail`, result will output a systemd units, which you
should move to ~/.config/systemd/user/.

The path to `gmi`, which is Lieer's executable, exists in /nix/store, and you
can read it from the systemd unit file (i.e. lieer-google.service). Lieer
synchronizes notmuch with Gmail and Gmail with notmuch.

Here's a general sequence of commands that I ran to set everything up. Special
thank you to @tazjin for helping me with all of this. These steps are not
certified as a tutorial; I'm recalling them from memory. When I set this up
things didn't work as expected immediately and I had to troubleshoot.

```shell
> mkdir -p ~/mail/account.google
> cd ~/mail/account.google
> nix-env -iA nixpkgs.notmuch
> notmuch setup
> nix-build ~/briefcase/mail
> cp ./result/lieer-google.{service,timer} ~/.config/systemd/user
> rm ./result
> systemctl --user cat lieer-google
...copy the /nix/store path to gmi...
> notmuch new
> /nix/store/gmi init
...follow the OAuth login flow...
>
```

Unknowns?
- Do I need to call `systemctl --user start lieer-google` at startup? Or should
  I move these units to user/default.target.wants?
- Can I send email from notmuch?
- How do I use notmuch to delete email? To respond to emails? To do anything?

Todo:
- Once this configuration stabilizes, I should package everything with Nix.
2020-02-13 18:32:26 +00:00
William Carroll
072be0befd Nixify simple_vim idea
I previously had an alias defined as `simple_vim`, which would start an instance
of Vim with a bare bones config. I had a to-do to Nixify it. That is
now (mostly) to-done.

When I try and install it with `nix-env -f ~/briefcase -iA tools.simple_vim`,
Nix fails and says that pkgs.stdenv is undefined. I will need to fix this one
day, but it is neither important nor urgent...
2020-02-12 18:05:32 +00:00
William Carroll
fc8283ff6e Define briefcase alias to cd into my monorepo
Defining an alias in my config.fish makes me realize that I should prune many of
my abbreviations and change the ones that remain into aliases.
2020-02-12 17:01:12 +00:00
William Carroll
61be808a92 Preferring to start wpcarros-emacs with dbus-launch
When I ran `pass show some/password`, gpg, which uses pinentry would start its
ncurses password prompt. For many this wouldn't be a problem but my current
vterm version cannot send the <return> key to ncurses, so once that prompt
appears, I cannot get rid of it without C-c and killing the shell. For a day or
more I just opened suffered through this.

Today I dug more into the issue and when I ran `pinentry --version` it warned
that it couldn't connect to DBUS. After searching for more information on this,
people with similar issues recommended starting their window managers with
`dbus-launch`. I previously started Emacs with `dbus-launch`, but only because
some i3 documentation told me to do so and I just copied them. Then I switched
to EXWM and copied that pattern over. A friend of mine uses EXWM and starts his
without calling `dbus-launch` but `exec emacs`. I mirrored this thinking that I
no longer needed `dbus-launch`. What I didn't know, however, was that this
friend was using a Nix-built Emacs (like me) except that his wrapped a native
Emacs installation while mine doesn't. His natively wrapped Emacs installation
has the proper variables set to interact with dbus and other important Linuxy
things that I don't fully understand. Since I'm using a Nix-built Emacs, some of
my variables are unset or set to different values than programs expect. This is
why when I try and start `gnome-terminal` or `terminator`, they refuse to start
and warn about many unset or incorrectly variables and not being able to bind to
sockets, etc.

This change reverts back to using `dbus-launch` until I have a better
understanding of Linux, Nix, etc.
2020-02-10 23:24:38 +00:00
William Carroll
938c1a4eb0 Start lorri with sytemd
Whenever possible, prefer starting things as systemd units instead of
instantiating them in ~/.profile and other dotfiles.
2020-02-07 11:01:34 +00:00
William Carroll
c15a393112 Start lorri daemon in ~/.profile
This does two things:
1. Starts lorri daemon
2. Moves ssh-agent and docker daemon startup calls to ~/.profile

I'm still not entirely sure when ~/.profile is evaluated... I'd like to use
systemd to startup and manage these background services, but I currently don't
have a strong enough desire to do this.
2020-02-07 11:01:24 +00:00
William Carroll
185fa0dda5 Escape sub-shell in config.fish to prevent evaluation
`stack path --local-doc-root` gets evaluated when I create a shell, which is not
what I intended.
2020-02-07 11:01:24 +00:00
William Carroll
0009ba2d71 Drop support for dkish
dkish was an idea to quickly create REPLs for all sorts of languages like
Haskell, Elixir, Clojure. I haven't used these, and if I started wanting these
with my newfound comfort with Nix, I think I'd reach for that instead.
2020-02-07 11:01:24 +00:00
William Carroll
7c2933f3c3 Support hgwhat alias
Support a Mercurial alias for listing the files that have changed on a
particular branch.

This commit is particularly noisy because I reformatted the above aliases to
align with the new width.
2020-02-05 14:41:20 +00:00
William Carroll
837cfe07c7 Rename dotfiles -> briefcase
Renaming my mono-repo briefcase.

I first introduced this commit in master, but it introduced a bug where one of
two things would happen:

1. Emacs wouldn't start and would crash X.
2. Emacs would start but my keyboard wouldn't work.

I learned some valuable debugging skills in the process. Here are some of them:

When my keyboard was broken, I wanted to control my computer using my
laptop. Thankfully this is possible by using `x2x`, which forward X events from
the SSH client to the SSH host.

```shell
> # I'm unsure if this is the *exact* command
> ssh -X desktop x2x -west :0.0
```

Git commit-local bisecting. I didn't need to do a `git bisect` because I knew
which commit introduced the bug; it was HEAD, master. But -- as you can see from
the size of this commit -- there are many changes involved. I wanted to binary
search through the changes, so I did the following workflow using `magit`:

- git reset --soft HEAD^
- git stash 1/2 of the files changed
- re-run `nix-env -f ~/briefcase/emacs -i`
- restart X session
- If the problem persists, the bug exists in the non-stashed files. Repeat the
  process until you find the bug.

In my case, the bug was pretty benign. Calling `(exwm/switch "Dotfiles")` at the
bottom of `window-manager.el` was failing because "Dotfiles" is the name of a
non-existent workspace; it should've been `(exwm/switch "Briefcase")`.

There may have been more problems. I changed a few other things along the way,
including exposing the env vars BRIEFCASE to `wpcarros-emacs` inside of
`emacs/default.nix`.

The important part is that this was a valuable learning opportunity, and I'm
glad that I'm walking away from the two days of "lost productivity" feeling
actually productive.
2020-01-31 15:27:48 +00:00
William Carroll
edea127e07 Support building wpcarros-emacs
I'm using a Makefile until I can remember the command:

```shell
> nix-env -f . -i
```

This will install (i.e. `-i`) any derivations instantiated from the Nix
expression resolvable by `-f`. Ideally the incantation will look something like
this:

```shell
> nix-env -f '<universe>' -iA emacs
```

Informing `nix-env` to install all of the derivations created by the expression
at attribute `emacs` in my `<universe>` repository. For now two things are
preventing this:

1. `emacs` isn't an attribute in my top-level expression defined in the
   `default.nix`.
2. If I do add `emacs` as an attribute and call the above command, my usage of
   `readTree` results in `pkgs` missing `.lib` and a few other stdlib commands
   that are available in `(import <nixpkgs> {})`.

A fix for both of these should be forthcoming.
2020-01-31 13:20:18 +00:00