| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
tmux is part of the OpenBSD base system and OpenBSD CVS is the primary source repository:
https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/tmux/
GitHub holds the portable tmux version. There are a few minor differences, mostly for portability.
Code changes to the main tmux code are committed to OpenBSD and then a script automatically applies any new commits to the GitHub repository every few hours.
It is fine to develop and submit code changes with a GitHub PR, but the final form will be a patch file which is applied to OpenBSD CVS.
tmux currently aims for a new release approximately once a year. This may follow the same schedule as OpenBSD, around May and October, but not always.
Code contributions to tmux are welcome. They may be submitted either by email or by opening a PR on GitHub. Asking questions via email or GitHub issue, or opening draft PRs is OK.
tmux is a volunteer project so please be patient if replies take time!
tmux broadly follows the code style outlined in the OpenBSD style(9) manual page. Notably:
Indentation is eight-column tabs.
Keep lines to less than 80 columns in length. Use helper functions and temporary variables to help with this and improve readability.
Space before ( on language builtins (if, switch) but not on functions. Spaces around binary operators, not unary.
{ goes on the same line; omit { and } around single-line statements.
Declarations go together at the head of the function. Avoid declarations in blocks unless they materially improve readability.
Avoid C++-style comments.
Prefer no brackets on sizeof operator unless it is required.
Prefer OpenBSD-style secure string functions such as strlcpy over strncpy; never use strcpy.
tmux is licensed under the ISC license. The license text appears at the top of each source file and is also here.
By contributing code to tmux it is implicit that the author hold the copyright (if the code change is copyrightable) and agree to it being licensed under the ISC license.
Code written with the assistance of AI can be acceptable. However, the question of ownership and copyright of AI-produced work is not yet well-defined in law.
Given this, in order for code produced with AI to be accepted, it must either be trivial enough to be not copyrightable (basic refactoring, one line bug fixes), or there must be a public statement available from the AI publisher showing they do not assert copyright over the work.
This link states:
The code, functions, and other output returned to you by GitHub Copilot are called "Suggestions." GitHub does not own Suggestions. You retain ownership of Your Code and you retain responsibility for Suggestions you include in Your Code.
https://www.anthropic.com/terms section 4:
As between you and Anthropic, and to the extent permitted by applicable law, you retain any right, title, and interest that you have in the Inputs you submit. Subject to your compliance with our Terms, we assign to you all of our right, title, and interest—if any—in Outputs.
And https://www.anthropic.com/legal/commercial-terms section B:
As between the parties and to the extent permitted by applicable law, Anthropic agrees that Customer (a) retains all rights to its Inputs, and (b) owns its Outputs. Anthropic disclaims any rights it receives to the Customer Content under these Terms. Subject to Customer’s compliance with these Terms, Anthropic hereby assigns to Customer its right, title and interest (if any) in and to Outputs.
https://openai.com/en-GB/policies/row-terms-of-use/:
Ownership of content. As between you and OpenAI, and to the extent permitted by applicable law, you (a) retain your ownership rights in Input and (b) own the Output. We hereby assign to you all our right, title, and interest, if any, in and to Output.
And https://openai.com/en-GB/policies/services-agreement/:
As between Customer and OpenAI, to the extent permitted by applicable law, Customer: (a) retains all ownership rights in Input; and (b) owns all Output. OpenAI hereby assigns to Customer all OpenAI’s right, title, and interest, if any, in and to Output.
https://ai.google.dev/gemini-api/terms#use-generated:
Some of our Services allow you to generate original content. Google won't claim ownership over that content.
And https://cloud.google.com/terms/service-terms section 20a:
"Generated Output" means the data or content generated by a Generative AI Service prompted by Customer Data. Generated Output is Customer Data. As between Customer and Google, Google does not assert any ownership rights in any new intellectual property created in the Generated Output.
https://cdn.deepseek.com/policies/en-US/deepseek-terms-of-use.html section 4.2 states:
Subject to applicable law and our Terms, you have the following rights regarding the Inputs and Outputs of the Services: (1) You retain any rights, title, and interests—if any—in the Inputs you submit; (2) We assign any rights, title, and interests—if any—in the Outputs of the Services to you. Due to the nature of our Services and artificial intelligence generally, Outputs may not be unique and other users may receive similar Outputs from our Services.
This is a list of outstanding feature requests, ideas and notes for future development. They are sorted into three sections approximately by complexity of implementation. If there is a GitHub issue then its number is shown in brackets.
It is worth getting in touch before starting work, particularly on larger items, to avoid any duplication of effort.
(#3047) Expand targets as formats. Should this be done by default or require a prefix (maybe a leading + or just look for #{)?
(#2601) A way to handle duplicate window targets (choose MRU?). Note sure if should be default or optional.
(#2671) Add a window-size manual-or-smallest which uses manual size only if there are no smaller clients.
(#2205) In copy mode, should add incremental search with regex (new commands).
(#4987) Support menu-border-lines none in the same way as popups - actually remove the lines.
(#4961) Look into implementing some of the more complex vim key bindings in copy mode.
(#4931) Look into support for the extensions of OSC 133, notably the click regions.
(#4381) Allow middle splits to be resized by resize-pane.
(#3342) Ability to synchronize the scrolling of two panes in copy mode.
(#3166) A way to number matches in copy mode to easily select them, and default keys to number useful stuff.
A key table timeout and a key binding fired when timeout happens with the previous key in a format or something, would allow binding C-b 1 0 to window 10 while keeping C-b 1 for window 1.
(#2495) Per-session window options.
(#2499) & (#2512) Add a way for command-prompt, confirm-before and possibly choose-tree and similar to print choice to stdout. Options are 1) to add flags to do it (like display-message -p) or 2) permit display-message -p to work when used as the choice command. Perhaps they need a blocking flag.
(#1784) A way to disable line wrap but preserve any trimmed content (so it can be viewed if the pane is made bigger).
Moving, joining and otherwise reorganizing panes, windows and session should be easier in tree mode. This should use the marked pane rather than mixing it up with tagging. Maybe keys to break/join/move without leaving tree mode? Also dragging would be nice.
(#918) A way to specify how panes are merged when one is killed. Could be an option to kill-pane.
(#1774) Resizing panes should move to the parent cell and resize it if this would allow the pane to become closer to what is requested.
(#4236) Option to turn off pane borders entirely.
(#5136) Support for notifications (in tmux itself and to pass through - a bit like the progress bar).
| Back | FazBrowse Home | New Git URL |