alacritty / alacritty

A cross-platform, OpenGL terminal emulator.
https://alacritty.org
Apache License 2.0
54.14k stars 2.96k forks source link

Restart config monitor on file reload #7981

Open tllilleh opened 1 month ago

tllilleh commented 1 month ago

Making changes to a configuration file that is imported by the main alacritty.toml file do not trigger an automatic config reload.

In order to get the changes without restarting alacritty I normally just do something like touch ~/.config/alacritty/alacritty.toml.

System

OS: Linux Version: alacritty 0.13.2 (bb8ea18e)

kchibisov commented 1 month ago

you need to touch imported files and not the main one to reload them.

tllilleh commented 1 month ago

If I modify (or touch) the toml file being imported (say theme.toml), it does not auto reload the config (as I believe it should). Instead, I need to touch the top level config (alacritty.toml) for it reload the changes I made in theme.toml

chrisduerr commented 1 month ago

Any symlinking involved? It works just fine for me.

tllilleh commented 1 month ago

My entire ~/.config/alacritty directory is a symlink to my dotfiles directory:

lrwxrwxrwx 1 tllilleh tllilleh 39 May 14 10:13 alacritty -> ../dotfiles/alacritty/.config/alacritty/

But inside the alacritty directory there are no symlinks:

$ ll -R
.:
total 16
drwxrwxr-x 3 tllilleh tllilleh 4096 May 15 15:19 ./
drwxrwxr-x 3 tllilleh tllilleh 4096 May 14 10:11 ../
-rw-rw-r-- 1 tllilleh tllilleh  576 May 15 17:24 alacritty.toml
drwxrwxr-x 2 tllilleh tllilleh 4096 May 15 17:24 themes/

./themes:
total 28
drwxrwxr-x 2 tllilleh tllilleh 4096 May 15 17:24 ./
drwxrwxr-x 3 tllilleh tllilleh 4096 May 15 15:19 ../
-rw-rw-r-- 1 tllilleh tllilleh  711 May 15 16:39 base16.toml
-rw-rw-r-- 1 tllilleh tllilleh  494 May 15 08:54 everforest_dark.toml
-rw-rw-r-- 1 tllilleh tllilleh  573 May 15 08:56 gruvbox_dark.toml
-rw-rw-r-- 1 tllilleh tllilleh  638 May 15 17:24 kanagawa_dragon.toml
-rw-rw-r-- 1 tllilleh tllilleh  556 May 15 08:54 zenburn.toml
chrisduerr commented 1 month ago

Does it work without any symlinks?

Nvm, I managed to reproduce without symlinks.

chrisduerr commented 1 month ago

Is it accurate to say you added the import after starting Alacritty? Config imports are only monitored if the import is present at startup.

tllilleh commented 1 month ago

Is it accurate to say you added the import after starting Alacritty? Config imports are only monitored if the import is present at startup.

Yes, that seems to be the issue. If I restart alacritty now changes to my theme files are auto reloaded.

chrisduerr commented 1 month ago

I think there's two reasonable options here, both of which should work fine: 1) Shut down config monitor when the imports change 2) Notify the config monitor about changes to specific files (add/remove)

ksolowoniuk commented 3 weeks ago

My config imports a theme file but live_config_reload doesn't work and doesn't work if I comment out the import??

vext01 commented 1 week ago

I've been trying to figure out why my script to flip alacritty themes between light and dark themes only updates some of the terminals. I think it may be this issue.

In the meantime, is there a command I can run to force alacritty to re-read its config file? touch doesn't seem to work for some reason. If I edit the config file in vim and :w the terminals all update.