Lorri does not cleanly integrate with my corporate device, which cannot run
NixOS. To expose dependencies to Emacs buffers, I will use nix-buffer.el, which
reads its values from dir-locals.nix. To easily expose dependencies from my
existing shell.nix files into dir-locals.nix, I wrote a Nix utility function.
Nix home-manager generates an .xsession file for me. I believe there are a few
files for managing X-sessions:
- .xinitrc
- .xsession
- .xsessionrc: Only exists on Debian systems, which is why home-manager
generates an .xsession file instead. gLinux is a Debian system.
Whenever I close Emacs, another Emacs initializes. I believe this is because
after I allowed home-manager to manage my X-sessions, I unintentionally
supported two X-session configuration files: .xsession and .xsessionrc; both of
these files initialize Emacs.
I'm deleting my .xsessionrc, and I'm hoping that will remove the issue.
Enable autorandr with Nix home-manager. I discovered autorandr when looking
through the home-manager source code. I was hoping it would automatically
enable/disable my external monitor when I connect/disconnect my HDMI cable, but
it doesn't.
With autorandr, I run...
```shell
> autorandr --load mobile
```
...to load my randr settings for just my laptop without the external monitor,
and I run...
```shell
> autorandr --load docked
```
...to load my randr settings for my external monitor.
I'm not sure if this brings much more value than my existing display.el module,
but I'm willing to try it for now.
From what I understand, gLinux and Nix are sometimes compatible and sometimes
incompatible.
Some nix-installed programs rely on system state that differs from gLinux's
system state. In other cases, Google wraps existing programs (e.g. git) to
provide Google-specific configuration.
Ever since I switched to home-manager and set `programs.git.enable = true`,
magit, which uses the git that PATH exposes hasn't been able to push, fetch, and
a few other commands.
TODO(wpcarro): Define a base home.nix that my gLinux and NixOS machines can
extend.
Get all pstree outputs for a given process name.
Usage:
```fish
> ptree ssh-agent
```
I'm unsure if I like home-managers; I'd prefer defining this functions in a
functions.fish file for a few reasons:
- I like syntax highlighting.
- home-manager compiles this into poorly formatted fish code.
For two days I tried using gpg-agent to emulate ssh-agent, but it did not work
the same way as ssh-agent. For example, gcert stopped working. Also, when I
tried adding keys to ~/.gnupg/sshcontrol using `ssh-add ~/.ssh/id_rsa`, the
command failed.
While the concept of reusing gpg-agent for ssh-agent appeals to me...
- Fewer agent processes
- pinentry support
...in practice, it fell short of my expectations. Some or all of this may be
because I tried running this on a gLinux machine.
I removed the startup code from .profile. I also depend on a fork of
home-manager until I submit my PR from wpcarro/home-manager into
rycee/home-manager.
redshift didn't properly work because it couldn't read the DISPLAY environment
variable. I can fix this ad-hoc with `systemctl --user import-environment
DISPLAY`, but home-manager will do this automatically if I allow it to manage my
xsession.
I'm not doing enough Rust development to justify supporting this. I'm also in
the midst of a cleaning frenzy, so it's possible that this is just collateral
damage. I don't think it is because I can always use lorri to set this value
when I'm writing Rust (hopefully the second 1/2 of this year).
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
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.
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.
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.
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.
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.
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`.
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.
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.
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.