In places I've worked in, there's very little pair programming culture. If a dev needs help, maybe the reaction is "push your code to a special branch and I'll take a look later" or if it's really urgent "use screen sharing" instead. A lot of that comes down to different environments: some use Emacs, others use Vim, yet others use VSCode, and remote control isn't really effective because of all the different shortcuts and UI and customizations. That's before even different personal preferences for different tools: I want IDE-like integrated error messages right beside my code, they want error messages in a separate terminal window, etc, etc. Simple screen sharing and dictating things to do is good enough in that case. And if both persons are at least somewhat familiar with the language, you wouldn't be dictating token-by-token.
Until recently, I spent the whole pandemic exclusively remote pairing. We always did driver/navigator and never did any controlling of each other screens. If we switched roles we’d just pull the branch and work on our own machines. Tuple is nice for doing that quickly as you can just take over sharing without having to ask the other person to stop first. Its markup tools are very nice and simple, too.
Having a way to ping things or draw on screen is super useful even if everyone uses their own environment. No more "no, not this line, the 4-th one from top, well now its on bottom, wait don't scroll".
Ha, ya. Tuple's are perfect as it gives you the "draw quick attention to this spot" and then the pen tool auto-disappears with a setting to make it stay forever with a quick shortcut to erase everything. I actually almost exclusively use the pen now, though I use to make a lot of use of the ping.
I can tell you how Pivotal solves this problem (or used to; my time was years ago): Standardize the configuration. If some special tool is making you more productive, share it with the team and get everyone on board. Don't try to be a special snowflake.
IMO this is the right way to do pair programming. It tends to bring everyone up to speed with the latest tools, and it keeps eccentrics out of the weeds. It's not to everyone's taste, of course. But neither is pair programming.
Cater to your own needs. "Special snowflakes" would include disabled folk that need special setups. If you need a special setup to avoid RSI or to be more productive, do it.
Folks with disabilities would not be considered in the snowflake category. If a team member needs a certain setup then you have to support them, of course.
Snowflake behavior is being the person who just can't use the terminal if it isn't "set -o vi" keys. Or insisting that Caps Lock be mapped to Ctrl/Esc/etc.
But if you are used to Caps Lock being mapped to Ctrl/Esc/etc and then suddenly it’s not it is actually pretty jarring. I don’t think that’s special snowflake. The problem is that it’s not absolutely trivial for whoever’s currently using the keyboard to put it in whatever mode they’re used to.
Or that people are sharing a physical keyboard and having this problem at all. You can pair program with more than one keyboard.
'Dealing' with Esc for Vim would fall under RSI prevention in my book. Using Vim almost necessitates some form of easier switching modes; swapping Caps Lock, `jj`, etc. are all considered valid and 'normal' for the general Vim community and to say only one or even none of the options are "okay" in the company, well, unless it was my preference this would be an immediate resignation from me. That or the company better be shelling out and allowing time for employees to configure programmable keyboards they can pop in with their keys hardware configured.
The Pivotal sharing station has separate keyboards and mice for each developer. Many people bring their own keyboards and pointing devices. That's fine.
"I can only be productive in emacs" doesn't fly, unless you happen to be paired with the rare snowflake that feels similarly.
Team, not organization. A big team might be 5 pairs. There was no hard rule that everyone had to use the same setup - you'd occasionally see pairs in vim or whatnot - but since you're switching computers and pairs almost every day, you tended to homogenize quickly.
My team standardized on JetBrains. Even if someone is unfamiliar with the IDE, pairing gets them up to speed fast. Humans can learn any dev environment.
How do you solve that problem?