pane.send_key(literal=False) not sending c-c
bubylou opened this issue · comments
Running the code listed below just sends the characters c-c
to the pane instead of the Control + C key combination used to close a program but if you add the suppress_history=False
flag then it works as intended. I wasn't sure if there was something with my specific environment or software versions that was causing this. I am using libtmux version 0.8.5 and tmux 2.8. Is anyone else having this issue?
session = tmux.find_where({'session_name': 'TEST')
window = session.list_windows()[0]
pane = window.list_panes()[0]
pane.send_keys('c-c', literal=False)
I was going to send a pull request but could think of a couple different ways to handle this.
- The easiest way would be to just document this behavior to make everyone aware that the history suppression must be turned off in order for keys like control to be sent.
- History suppression could also be turned off by default and explain in the documentation that if it is turned on keys will not be sent. I don't see this flag being all that important (at least not to me) and since it's an extra feature which is not normal to regular tmux turning it off by default shouldn't be a huge deal.
- Another way to fix it would be to make
literal=True
the default and remove the history prefix from the non-literal one. Since the only reason to useliteral=False
then would be to send actual keys instead of text having the history suppression off would not affect anything since those keys are not stored in shell history. - The only other idea I had was somehow determining what is being sent is a key not just some characters then turning history suppression off. I couldn't think of any easy way to do this so it's likely not worth considering.