tmux-python / tmux-python/libtmux
pane.send_key(literal=False) not sending c-c
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 127
- Avg merge
- 2h 13m
- Merged PRs (30d)
- 1
Description
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=Truethe default and remove the history prefix from the non-literal one. Since the only reason to useliteral=Falsethen 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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the pane.send_keys entry point and reproduce the supplied libtmux 0.8.5 and tmux 2.8 example, comparing literal and suppress_history behavior. Review how key sequences and history suppression are handled, then confirm with maintainers whether the expected outcome is a behavior change or documentation; done means the chosen behavior is implemented or clearly documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100