Closed ghost closed 2 years ago
I really like it but I find that Termonad always takes a long time to launch first time after login. I don't know if this is an intended feature, like compilation of config at first launch or something, but it is very annoying for me as a user of it.
I imagine you're right and this is likely the recompiling and re-exec'ing logic. Although, this sounds like a bug. It should only take a long time the first time Termonad recompiles its config. After that, start ups should be fast, since Termonad has already been recompiled once and it should be able to tell that it doesn't need to be recompiled again.
The gory details of exactly what is happening is here: https://hackage.haskell.org/package/termonad-4.2.0.0/docs/Termonad.html#v:defaultMain
If you're seeing problems here, I'd appreciate if you could debug this try to find out exactly what is taking a lot time. I haven't heard of anyone seeing this same problem. I'm also not able to reproduce it.
If I were to take a random guess at your problem, it is that Termonad is actually failing to recompile, and ~/.cache/termonad/termonad-linux-x86_64
never gets produced. Or, your file system doesn't support mtimes
for some reason.
Other than this aspect, I find your program really useful. I'd suggest having something like
termonad --recompile
to recompile termonad with the new config instead of recompiling new config everytime at first launch after login.
It is unlikely I'd change the defaults here, but I'd be happy to accept a PR adding flag like --dont-recompile
. I'm imagining this would force Termonad to always run ~/.cache/termonad/termonad-linux-x86_64
if it exists and never try to recompile.
I'd rather have some kinda installation method where I don't keep the git dir in my local dir but get installed like xmonad.
I'm not quite sure what you're referring to here. How do you install XMonad? Through your system package manager?
Oh, I should also add that there is a start
function you could use instead of defaultMain
if you want a Termonad that doesn't have the recompiling and re-exec'ing logic.
If you wanted to go this route, you'd likely have to create your own Haskell application, add Termonad as a library, and just directly call start
.
@cdepillabout Thank you for your quick response. Yes after investigating, I think the problem lies in Termonad trying to check for mtime, currently I use btrfs with no-atime flag passed to it. As for how I installed Xmonad, I installed it through the package manager and Xmonad does support --recompile flag. I'm not a dev on Xmonad WM, so, I'm not completely sure how they implement that. I'm guessing they store the code somewhere on install and recompile from the command. I think the simplest approach might be to install it to the system by copying all files over to a suitable dir and then use a shell script to check for the flag --recompile or run termonad previously compiled bin if no flags are passed. I'll have to look into the implementations.
I'd rather have some kinda installation method where I don't keep the git dir in my local dir but get installed like xmonad.
As for how I installed Xmonad, I installed it through the package manager
Unfortunately I don't control how/if distributions package Termonad (except on NixOS). But if you'd like Termonad to be available from your distribution, I'd suggest you ask the maintainers of your distro to include it in their supported package set!
It sounds like the above problems have been solved, but if you'd still really like a --dont-recompile
flag, feel free to open a new issue about it.
Hi, I've been using termonad for a while now. I really like it but I find that Termonad always takes a long time to launch first time after login. I don't know if this is an intended feature, like compilation of config at first launch or something, but it is very annoying for me as a user of it. Other than this aspect, I find your program really useful. I'd suggest having something like:
termonad --recompile
to recompile termonad with the new config instead of recompiling new config everytime at first launch after login. Also, I'd rather have some kinda installation method where I don't keep the git dir in my local dir but get installed like xmonad. Thank you.