I found this diagram on SO at one point but I can’t find the post and it is the best explanation I have found for how all of the files work for bash and zsh, each color is an individual path of execution (eg, follow the red line).
Bottom line though, it only really matters if you are overriding something that is already defined, for example I tell my users to use zshrc and I provide defaults and common things in zprofile because zshrc is executed last when they login.
I bet each step/arrow/decision had a good reason at some point, but most of them probably back when computers lived in caves and hunted their tapes using spears and rocks.
I feel like we’re slowly reaching a point where the complexity is collapsing in on itself - just look at the absolute chaos a modern web app is.
Is this a diagram for how it should work? Not how it actually works? Like I put my stuff in the ~/.bashrc, mostly because I think the debian one says like “put your fun stuff below here” or something. The green and grey lines go through the ~/.bashrc, but both of them go through the “no login” bubble in the diagram. But I know my ~/.bashrc works, so the diagram is a suggestion?
A lot of systems will call various inits from others to give you a more simplified flow. (Closer to what zsh does.) Check out some of those files in /etc/ it is calling as well as ~/.bash_profile. Or, you might not even be in a login shell!
Select the color which matches the steps before filenames ((non-)login and (non-)interactive), then follow that arrow the rest of the way. There’s more colors in Bash because Bash makes a distinction between remote and local shells.
Another way to look at the same data for Zsh (note: $ZDOTDIR will be used instead of $HOME if it’s defined at any step along the way):
File
neither
interactive
login
both
/etc/zshenv
x
x
x
x
${ZDOTDIR:-$HOME}/.zshenv
x
x
x
x
${ZDOTDIR:-$HOME}/.zprofile
x
x
${ZDOTDIR:-$HOME}/.zshrc
x
x
${ZDOTDIR:-$HOME}/.zlogin
x
x
${ZDOTDIR:-$HOME}/.zlogout
x
x
One confusion on the Bash side of the diagram is that you see branching paths into ~/.profile, ~/.bash_profile and ~/.bash_login. Bash will use for
And what’s confusing is that many times those files still manually call the others to make it more logical like zsh. That’s what I remember at least, it’s been quite a while since I used bash.
For your mouse double click issue, I have a g600 and ran into the same thing. It’s due to a teeny tiny copper plate in the switch degrading over time. I’m not confident in my soldering skills to swap out the whole switches, but I was able to buy some new switches for like $5, pop open the little plastic switch box, carefully pull out the little copper plate with tweezers, pop open the switch on my mouse, and carefully replace the little copper plate with the new one. Worked like a charm.
Are you me? I had the same Logitech mouse click issue and fixed it the same way; ordered extra switches online, opened them, and swapped only the copper plate. Mouse click works like a charm, as you said.
I had the same issue a few years ago. After spending forever looking for a solution online, I found a fantastic video that explained the reason for this degradation: www.youtube.com/watch?v=v5BhECVlKJA
TLDW, it has to do with some components (the contact plates) being rated for electronics of the 90s, with higher voltage than today’s devices use. So these components are now subject to below optimal voltages (say, 1.8V or 3.3V), and tiny sparks happen that would not be there at 5V, thus damaging the plate ever so slightly.
Immediately after watching that video, I opened my mouse and scratched the plates with a flat screwdriver. I haven’t had a problem since then (it’s been a couple of years). But if it happens again I know exactly what to do to save my beloved G302.
programmer_humor
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.