While starting the tmux sessions from fish worked some environment
variables were not getting picked up in tmux session.
For example DISPLAY is set after we log in and the graphical sway
session starts but since tmux sessions were started before that it
would be absent from the tmux session. We may be wrong about the
exact order and reasoning for this but atleast that is the observed
behaviour.
Fix this by defining a sway session target and making the tmux session
service dependent on it.
From the twitter discussion with fnm author, shell inference seems to be
slow. Passing the shell to use manually seems to speed this up.
fnm env --log-level=quiet | source
Executed in 534.50 millis fish external
usr time 0.62 millis 620.00 micros 0.00 millis
sys time 4.76 millis 0.00 micros 4.76 millis
fnm env --shell=fish --log-level=quiet | source
Executed in 1.51 millis fish external
usr time 1.06 millis 0.00 micros 1.06 millis
sys time 0.58 millis 579.00 micros 0.00 millis
Also, see the github issue
https://github.com/Schniz/fnm/issues/621
- Drop starship. This also helps us to get rid of ttf-font-nerd install
which is a dependency of starship.
- Source fnm env only once on login. This makes fish shell/terminal load
much much faster. Add an alias to invoke fnm use easily.
- Set path or environment variables only when required path or binary
exists.
- Introduce a function to profile fish easily.
- Borrow the fish prompt logic from Alexis King's configuration.
- Factor out key binding related settings.
- Make su launch fish.
Prompt and other ideas for clean up taken from
https://github.com/lexi-lambda/dotfiles/tree/master/fish
For some reason, BROWSER always gets set to firefox instead of
firefox-wayland which is our own desktop file for starting firefox
in wayland.
Setting the systemd environment variables or using the env in desktop
file has not helped.
sway seems to not start at all when using lightdm to login. We disabled
lightdm and now just use the login shell to start sway. sway never
recommended login managers so this was long due anyways.
See https://github.com/swaywm/sway/wiki#login-managers.