wouterdebie / i2cssh

csshX like ssh tool for iTerm2
MIT License
547 stars 68 forks source link

Profile selection doesn't work #117

Closed wouterdebie closed 1 year ago

wouterdebie commented 1 year ago

@damientkk reported:

The profile option with -p appears to be broken. Using the following syntax "i2cssh -b -p Prod -XA -XY -c clusterA", the Prod profile for the windows (e.g Green background) shows up briefly before resetting to the default terminal settings when connections to the various hosts have been established. Any idea why that might be the case?

wouterdebie commented 1 year ago

I can't seem to reproduce this:

i2cssh -b -XA -c mycluster2

image

i2cssh -b -p TestProfile -XA -c mycluster2

image
damientkk commented 1 year ago

Hi Wouter,

Sorry I missed your message. The issue is due to the setting "Prevent control sequences from changing the current profile" I have on iTerm2 Advanced tab, it's currently set to "No" on my end. Instead of using Automatic Profile Switching, I have a shell script/function to change my Profile depending on the host I am sshing to using "echo -e "\033]50;SetProfile=\a". Somehow, when calling i2cssh, the profile I specify e.g Green background is overwritten by something else. This is evident from the initial launch of sessions with Green background, only to change to white background after some additional code run. This behaviour is not happening in the older version of i2cssh/iTerm2.

In the meantime, my workaround is to change the value of "Prevent control sequences from changing the current profile" to Yes when I need to invoke i2cssh.

Thanks, Damien

On Mon, Jan 30, 2023 at 8:09 AM Wouter de Bie @.***> wrote:

I can't seem to reproduce this:

i2cssh -b -XA -c mycluster2

[image: image] https://user-images.githubusercontent.com/172038/215530252-6463bc9e-8ad2-4282-b28b-3818fcfc0fd7.png

i2cssh -b -p TestProfile -XA -c mycluster2

[image: image] https://user-images.githubusercontent.com/172038/215530386-56e84075-ed2b-4096-8738-9e3b9722982f.png

— Reply to this email directly, view it on GitHub https://github.com/wouterdebie/i2cssh/issues/117#issuecomment-1408895489, or unsubscribe https://github.com/notifications/unsubscribe-auth/A5D2MXPAG2ZTU7J22YD3DXTWU7RUVANCNFSM6AAAAAAULKYQ5I . You are receiving this because you were mentioned.Message ID: @.***>

wouterdebie commented 1 year ago

Thanks for the explanation. It's interesting behavior for sure. The old version of i2cssh basically mimicked key strokes with Applescript to split panes, which was kind of wonky, where the new version uses the python API provided by iterm2. The old way of setting the profile was exactly as you do in a script by echoing some escape codes, but the new way is to use the async_split_pane() function the API provides. This function takes a profile name as argument, so i2cssh doesn't do anything special or crazy.

It's interesting that the two don't seem to play nicely. And I can't seem to reproduce it manually though. If I start an i2cssh session with a profile (say p1) and then I do echo -e "\033]50;SetProfile=p2\a" it nicely switches to the p2 profile.

damientkk commented 1 year ago

Can you let me know what is the value you have for "Prevent control sequences from changing the current profile" in the Advanced Tab --> Terminal? And are you using Shell integration? Maybe I have some other settings that might be at play here :)

On Thu, Feb 9, 2023 at 3:18 PM Wouter de Bie @.***> wrote:

Thanks for the explanation. It's interesting behavior for sure. The old version of i2cssh basically mimicked key strokes with Applescript to split panes, which was kind of wonky, where the new version uses the python API provided by iterm2. The old way of setting the profile was exactly as you do in a script by echoing some escape codes, but the new way is to use the async_split_pane() function the API provides. This function takes a profile name as argument, so i2cssh doesn't do anything special or crazy.

It's interesting that the two don't seem to play nicely. And I can't seem to reproduce it manually though. If I start an i2cssh session with a profile (say p1) and then I do echo -e "\033]50;SetProfile=p2\a" it nicely switches to the p2 profile.

— Reply to this email directly, view it on GitHub https://github.com/wouterdebie/i2cssh/issues/117#issuecomment-1424967808, or unsubscribe https://github.com/notifications/unsubscribe-auth/A5D2MXIJWEHNFJLXZRWUODDWWV3LTANCNFSM6AAAAAAULKYQ5I . You are receiving this because you were mentioned.Message ID: @.***>

wouterdebie commented 1 year ago
image
wouterdebie commented 1 year ago

@damientkk any updates here?

wouterdebie commented 1 year ago

Closing this issue since It's been open for a while.