Misterio77 / nix-colors

Modules and schemes to make theming with Nix awesome.
GNU General Public License v3.0
465 stars 38 forks source link

On Alacritty autoreload #12

Closed marcosrdac closed 2 years ago

marcosrdac commented 2 years ago

Hey, you who currently use alacritty as main terminal.

Alacritty is known for its ability of automatically reload configs when they are changed. For some reason, it seems not to automatically reload when the configuration file is a symlink (usual for home-manager users) which gets replaced with another link, at least in my experience. This means that changing a colorscheme does not change the existing windows, but the new ones. I tried importing colors from another file (that was also a link hahaha), writing the config as true YAML (home-manager module actually writes it as a JSON), signalling it with SIGUSR1 and SIGHUP (I only killed my existing windows on these tests).

After configuring and automatically reloading colors for almost all my applications using nix-colors (thank @Misterio77 for that), I could not update the one that I though was going to be easy! :laughing:

Did anyone achieve reloading alacritty after a nix-colors scheme change?

Misterio77 commented 2 years ago

Hey!

There's been some discussion around this: https://github.com/alacritty/alacritty/issues/2237

And it should(tm) work with home-manager and alacritty 0.10.0+, thanks to this change: https://github.com/alacritty/alacritty/pull/5399

Misterio77 commented 2 years ago

I'm not sure tho. My current solution for coloring terminals is shellcolord.

It's basically a daemon that should attach to each shell session (by passing its parent shell's pid as argument), and listens for commands on sockets. When passed an apply command, it runs something similar to base16-shell for applying colors to any terminal. It also supports enable and disable commands.

The great thing about it is that you can get different terminal colors depending on which machine you're SSH'd into (take a look at my module if you're interested).

marcosrdac commented 2 years ago

Hey!

There's been some discussion around this: alacritty/alacritty#2237

And it should(tm) work with home-manager and alacritty 0.10.0+, thanks to this change: alacritty/alacritty#5399

Wohohow! It works perfectly! I don't know how I missed that.Thanks :D

marcosrdac commented 2 years ago

I'm not sure tho. My current solution for coloring terminals is shellcolord.

It's basically a daemon that should attach to each shell session (by passing its parent shell's pid as argument), and listens for commands on sockets. When passed an apply command, it runs something similar to base16-shell for applying colors to any terminal. It also supports enable and disable commands.

The great thing about it is that you can get different terminal colors depending on which machine you're SSH'd into (take a look at my module if you're interested).

Thanks for the tip. It would be nice to know which terminal is not on my local machine by its colors, indeed. I'm reading your module.