tmux source code

Related tags

tmux
Overview

Welcome to tmux!

tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.

This release runs on OpenBSD, FreeBSD, NetBSD, Linux, OS X and Solaris.

Dependencies

tmux depends on libevent 2.x, available from this page.

It also depends on ncurses, available from this page.

To build tmux, a C compiler (for example gcc or clang), make, pkg-config and a suitable yacc (yacc or bison) are needed.

Installation

Binary packages

Some platforms provide binary packages for tmux, although these are sometimes out of date. Examples are listed on this page.

From release tarball

To build and install tmux from a release tarball, use:

./configure && make
sudo make install

tmux can use the utempter library to update utmp(5), if it is installed - run configure with --enable-utempter to enable this.

For more detailed instructions on building and installing tmux, see this page.

From version control

To get and build the latest from version control - note that this requires autoconf, automake and pkg-config:

git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make

Contributing

Bug reports, feature suggestions and especially code contributions are most welcome. Please send by email to:

[email protected]

Or open a GitHub issue or pull request. Please read this document before opening an issue.

There is a list of suggestions for contributions. Please feel free to ask on the mailing list if you're thinking of working on something or need further information.

Documentation

For documentation on using tmux, see the tmux.1 manpage. View it from the source tree with:

nroff -mdoc tmux.1|less

A small example configuration is in example_tmux.conf.

And a bash(1) completion file at:

https://github.com/imomaliev/tmux-bash-completion

For debugging, run tmux with -v or -vv to generate server and client log files in the current directory.

Support

The tmux mailing list for general discussion and bug reports is:

https://groups.google.com/forum/#!forum/tmux-users

Subscribe by sending an email to:

[email protected]

Issues
  • Add control mode command to pause/resume pty output for a pane

    Add control mode command to pause/resume pty output for a pane

    It would be nice to have a control mode command that halted input processing of the pty attached to a given pane.

    The rationale for this is as follows:

    Tmux is very good at processing the pty input very quickly and does this in parallel with notifying the client (since the client notification is queued up via bufferevents). However a receiving client doesn't necessarily process things so fast (especially since it has to also draw it). Ultimately the client can't keep up with the rate it is receiving messages and they either buffer in the client or buffer in the server.

    This isn't a huge issue by itself, however it causes some annoyances when using the client. For example, say a command was unintentionally run that causes very large amounts of output, since tmux processes these messages so fast they will almost immediately become backlogged meaning that when the user tries to ^C the command they have to wait for this backlog to clear, which depending on how fast the client is, can take some time.

    The only sensibly way I can see to resolve this using tmux is to have a mechanism whereby the client can tell the the server to slow down or stop processing the pty input. Do you think this is something that could be added?

    (I think it's just a case of calling bufferevent_{enable/disable} for EV_READ on {window_pane}->event?). Thanks.

    opened by brads55 209
  • Tmux freezes Mac when killing a long running session

    Tmux freezes Mac when killing a long running session

    I have found that when I have a local tmux session running for more than 2-3 hours, and I kill it, my Mac (Running OS X El Capitan GM Candidate) freezes completely.

    Running Tmux 2.0 Stable in Terminal.app (it also happens when using iTerm).

    Additionally, Vim and Terminal apps start becoming sluggish and unresponsive after a session is open for a day or two. I wouldn't mind that too much if I could just kill the session and start it back up again. :)

    opened by dphaener 142
  • Very slow output in less

    Very slow output in less

    tl;dr: commit c5443da2 makes scrolling in less unbearably slow on large screens.

    • Platform: macOS (uname -sp: Darwin i386)
    • $TERM inside: tmux-256color, outside: xterm-256color

    Repro:

    1. Run tmux on a large screen (for example, I'm testing on a window large enough to have $COLUMNS = 478 and $LINES = 118).
    2. Create a "horizontal" (-h) split ($COLUMNS = 239 and $LINES = 118).
    3. less some-large-file (I'm using a file with 118k lines).
    4. Press and hold space.

    Expected result:

    Output in less scrolls smoothly, stopping as soon as you take your thumb off the space bar.

    Actual result:

    Output in less moves very slowly (slow enough to see individual lines moving), scrolling continues even after taking your thumb off the space bar, and tmux becomes unresponsive until scrolling stops (dozens of seconds later).

    Details:

    In investigating this, I tried a few things:

    • Problem repros in iTerm2 v3 (my daily driver) and in Apple's Terminal.app.
    • Problem only repros in the presence of a split.
    • Problem only repros when the window is sufficiently tall; for example, if you halve the height of the window, problem doesn't repro, even with a split.

    The problem is particularly bad in less, but you can also observe a speed difference with simple cat too:

    • On c5443da2:
      • Time to cat long file inside a split: 16s
      • Time to cat long file with no split: 1.3s
      • Time to cat long file inside a split, but smaller dimensions ($COLUMNS = 89, $LINES = 47): 6.43s
    • Immediately prior to c5443da2:
      • Time to cat long file inside a split: 5.32s
      • Time to cat long file with no split: 3.75s
      • Time to cat long file inside a split, but smaller dimensions ($COLUMNS = 89, $LINES = 47): 2.24s

    Seems that there is some size threshold in c5443da2 above which performance hits some pathological bounds, greatly exacerbated in the presence of a split.

    opened by wincent 113
  • Unicode problem

    Unicode problem

    ~ uname -sp && tmux -V && echo $TERM
    Linux unknown
    tmux master
    xterm-termite
    
    • System is ArchLinux.

    Test run with:

    • tmux -Ltest kill-server
    • tmux -vv -Ltest -f/dev/null new
    • vim ./emojis

    Logs and test file used:

    Results:

    overflow

    Issue:

    The overflow on column 80 doesn't happen for vim outside tmux. This issue pervades all console applications.

    opened by oblitum 101
  • [Feature Request] Floating Window Support

    [Feature Request] Floating Window Support

    It will be very cool if tmux can support floating window like neovim!

    Here are related designs:

    I do believe that floating window in tmux will be very useful.

    For example, we can use it to develop

    • a translation plugin that shows the translation results in "floating window"
    • a plugin that allows you to quickly view the man page of current command in "floating window"
    • a plugin that can manage git branch, browse git commit, and more with git!
    • a plugin using zui to create a dashboard in "floating window"
    opened by sainnhe 99
  • support for window and pane scoped hooks

    support for window and pane scoped hooks

    Hi, this is an attempt to support window and pane scoped hooks. I have moved them out of the session hooks. Mostly works, but couple of things remain. I'll update the man soon. Please have a look and comment.

    opened by topcat001 96
  • add support for 24-bit RGB color escape sequences

    add support for 24-bit RGB color escape sequences

    This patch adds support for 24-bit RGB color escape sequences, requested in issue #34, by adjusting Koichi Shiraishi's patch 2, which derives from Christian Hopps's patch 3, which in turn derives from Arnis Lapsa's patch 4, according to feedback given by Nicholas Marriott 1.

    opened by sunaku 96
  • TMUX Keeps Exiting and killing all my sessions.

    TMUX Keeps Exiting and killing all my sessions.

    Hello so I have a script that creates a tmux session then run some few commands, so it actually works really great but the problem is tmux keeps exiting and killing all sessions, I have tried to debug but to be honest I really don't know what is the issue and the tmux logs understanding them is also a pain. Kindly assist, below are the details of my enviroment.

    # Tmux version
    tmux 3.0a
    
    # Linux Box version
    Linux x86_64
    
    # TERM outside tmux
    xterm-256color
    
    # TERM inside tmux
    screen-256color
    
    • Attached are also the logs, kindly assist, I also googled and I thought it was about the default shell and placed the following: set -g default-shell /bin/bash in my tmux config file but nothing has changed.
    opened by iAmG-r00t 93
  • Add TrueColor Support

    Add TrueColor Support

    There was a very long thread about TrueColor support in Tmux that was on SorceForge. I'd be happy to convert it over, but it seems as though the link is no longer valid.

    It was specifically issue number 140 which was the issue about truecolor support in Tmux.

    Update: Here is all of the information I could find. Thanks to @ThomasAdam for the help.

    The old URL was: http://sourceforge.net/p/tmux/tickets/140/ Archive Link: https://www.mail-archive.com/[email protected]/msg06296.html Gist Link: https://gist.github.com/jfelchner/b0c44b1ac199df28fb84

    Current TrueColor Terminal/Program Support Status: https://gist.github.com/XVilka/8346728

    opened by jfelchner 88
  • 3.0a questions or comments

    3.0a questions or comments

    Ask or discuss any quick questions here about 3.0a only please.

    Bug reports please open a new issue with full information, see CONTRIBUTING.

    3.0a is a patch release of 3.0.

    The 3.0a CHANGES file is here.


    Note that you need to change \ to '\' and any {foo} to '{foo}' in .tmux.conf:

    bind \ splitw
    bind x kill-pane -t {top}
    

    Become:

    bind '\' splitw
    bind x kill-pane -t '{top}'
    

    These will work on older tmux versions also.

    opened by nicm 88
  • Feature request: Escape sequence support in tmux config files

    Feature request: Escape sequence support in tmux config files

    Issue description

    I would like a way to specify a character in the tmux config file as an escape sequence (e.g. \uxxxx) instead of having to encode the character directly. Ideally it would support at least the standard C escape sequences.

    Generally speaking, non-ascii characters cannot be as reliably shared and distributed as ascii. Fonts may have inconsistent sets of available glyphs, which means that a file one can edit in the terminal with one font may not show up correctly when edited in a text editor with a different font. Trying to copy and paste something from the internet into an SSH session may not work correctly. It's just more painful to deal with.

    If tmux supported escape sequences, it would bypass this issue by letting the config file be represented purely with ascii characters.

    Required information

    Please provide the following information:

    • tmux version (tmux -V): tmux 2.8
    • Platform (uname -sp): Linux unknown
    • $TERM inside and outside of tmux (echo $TERM). screen-256color inside, xterm-256color outside
    • ~~Logs from tmux (tmux kill-server; tmux -vv new)~~
    opened by khenriks 4
  • ARK - tmux error

    ARK - tmux error

    Hi, after a server reboot,the service Tmux of my ARK-Server,no longer works, do you have any idea? Thank's

    $ ./arkserver start
    /home/arkserver/server1/lgsm/functions/info_distro.sh: line 79: [: : integer expression expected
    /home/arkserver/server1/lgsm/functions/info_distro.sh: line 79: [: : integer expression expected
    Failed to check for virtualization: Permission denied
    /home/arkserver/server1/lgsm/functions/info_distro.sh: line 79: [: : integer expression expected
    [  OK  ] Updating arkserver: Checking for update: SteamCMD
    
    No update available
    * Local build: 6819400
    * Remote build: 6819400
    * Branch: public
    https://steamdb.info/app/376030/
    
    [ .... ] Starting arkserver: Open-Game-Room.com/home/arkserver/server1/lgsm/functions/command_start.sh: line 93: [: : integer expression expected
    /home/arkserver/server1/lgsm/functions/command_start.sh: line 99: [: : integer expression expected
    no server running on /tmp/tmux-1017/default
    [ FAIL ] Starting arkserver: Unable to start Open-Game-Room.com
    [ FAIL ] Starting arkserver: Unable to start Open-Game-Room.com: tmux error:
    
    Command
    =================================
    tmux new-session -d -s "arkserver" " ./ShooterGameServer TheIsland?AltSaveDirectoryName=TheIsland?listen?MultiHome=151.80.40.100?MaxPlayers=10?QueryPort=27004?RCONPort=xxxxx?Port=27002 -automanagedmods -crossplay -PublicIPForEpic=151.80.40.100"
    
    Error
    =================================
    create session failed:  ./ShooterGameServer TheIsland?AltSaveDirectoryName=TheIsland?listen?MultiHome=151.80.40.100?MaxPlayers=10?QueryPort=27004?RCONPort=xxxxx?Port=27002 -automanagedmods -crossplay -PublicIPForEpic=151.80.40.100: Operation not permitted
    1
    
    Fix
    =================================
    tty:x:5:hl2dmserver,csgoserver,kfserver,mcserver,sdtdserver,mcservermod,ts3server,dodsserver,pvkiiserver,arkserver
    No known fix currently. Please log an issue.
    https://linuxgsm.com/support
    
    $ tmux -V
    tmux master
    
    $ uname -sp
    Linux x86_64
    
    $ echo $TERM
    xterm
    

    in /tmp/

    drwxrwxrwx 2 root        root          4096 Jun  6 21:28 tmux-0
    drwxrwxrwx 2 arkserver   arkserver     4096 Jun  6 21:36 tmux-1017
    
    opened by Misoss 0
  • build the latest   ./configure: line 5506: syntax error near unexpected token `newline'

    build the latest ./configure: line 5506: syntax error near unexpected token `newline'

    checking sys/tree.h usability... no
    checking sys/tree.h presence... no
    checking for sys/tree.h... no
    checking util.h usability... no
    checking util.h presence... no
    checking for util.h... no
    checking for library containing sys_signame... no
    checking for fmod in -lm... yes
    checking for library containing flock... none required
    checking for dirfd... yes
    checking for flock... yes
    checking for prctl... yes
    checking for proc_pidinfo... no
    checking for sysconf... yes
    checking for asprintf... yes
    checking for cfmakeraw... yes
    checking for clock_gettime... yes
    checking for closefrom... no
    checking for explicit_bzero... no
    checking for fgetln... no
    checking for freezero... no
    checking for getdtablecount... no
    checking for getdtablesize... yes
    checking for getline... yes
    checking for getprogname... no
    checking for memmem... yes
    checking for setenv... yes
    checking for setproctitle... no
    checking for strcasestr... yes
    checking for strlcat... no
    checking for strlcpy... no
    checking for strndup... yes
    checking for strsep... yes
    checking for working strnlen... yes
    checking for working strtonum... no
    checking for working reallocarray... no
    checking for working recallocarray... no
    checking for library containing clock_gettime... none required
    ./configure: line 5506: syntax error near unexpected token `newline'
    ./configure: line 5506: `PKG_CHECK_MODULES('
    [email protected]:~/github/tmux$
    
    

    apt install automake clang make

     OS: Ubuntu 16.04 xenial
     Kernel: x86_64 Linux 4.4.0-142-generic
    
    opened by QGB 1
  • tmux doesn't protect root user

    tmux doesn't protect root user

    in a tmux session, I opened my root user (with pass) and then detached from the session and logged out from my user. after a few days I attached that session, my root was open yet and no passwords required and this may put the people in danger.

    opened by sina-rostami 1
  • Tmux can't copy long text in copy-paste-mode

    Tmux can't copy long text in copy-paste-mode

    When I am trying to copy text of 95 lines it I am able to copy but when the limit goes to 96 lines it's failing for me.

    I am on mac OS big Sur (vesrion 11.3). I am able to get it working with no config, however with my custom config it's not working.

    ❯ tmux -V tmux 3.2

    ❯ uname -sp Darwin i386

    ❯ echo $TERM screen-256color

    Here's my tmux config

    # improve colors
    set -g default-terminal 'screen-256color'
    
    # Reload config
    bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded"
    
    # act like vim
    setw -g mode-keys vi
    bind h select-pane -L
    bind j select-pane -D
    bind k select-pane -U
    bind l select-pane -R
    bind-key -r C-h select-window -t :-
    bind-key -r C-l select-window -t :+
    
    # ctrl-space for modifier
    unbind C-b
    set -g prefix C-Space
    bind C-Space send-prefix
    
    # start window numbers at 1 to match keyboard order with tmux window order
    set -g base-index 1
    set-window-option -g pane-base-index 1
    
    # renumber windows sequentially after closing any of them
    set -g renumber-windows on
    
    # increase scrollback lines
    set -g history-limit 10000
    
    # switch to last pane
    bind-key C-a last-pane
    
    
    # Shift + arrows to resize pane
    bind -n S-Left resize-pane -L 2
    bind -n S-Right resize-pane -R 2
    bind -n S-Down resize-pane -D 1
    bind -n S-Up resize-pane -U 1
    
    bind-key c new-window -c '#{pane_current_path}'
    bind-key k confirm kill-window
    
    bind-key K run-shell 'tmux switch-client -n \; kill-session -t "$(tmux display-message -p "#S")" || tmux kill-session'
    
    # --- VIM style tmux config ----
    # smart pane switching with awareness of vim splits
    is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"'
    
    bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
    bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
    bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
    bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
    bind -n 'C-\' if-shell "$is_vim" "send-keys 'C-\\'" "select-pane -l"
    
    # Allow mouse usage and copy pasting behavior (Compat with Tmux 2.4+)
    set -g mouse on
    bind-key -T copy-mode-vi WheelUpPane send-keys -X scroll-up
    bind-key -T copy-mode-vi WheelDownPane send-keys -X scroll-down
    unbind -T copy-mode-vi MouseDragEnd1Pane
    
    bind-key -T edit-mode-vi Up send-keys -X history-up
    bind-key -T edit-mode-vi Down send-keys -X history-down
    unbind-key -T copy-mode-vi Space     ;   bind-key -T copy-mode-vi v send-keys -X begin-selection
    unbind-key -T copy-mode-vi Enter     ;   bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
    unbind-key -T copy-mode-vi C-v       ;   bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
    unbind-key -T copy-mode-vi [         ;   bind-key -T copy-mode-vi [ send-keys -X begin-selection
    unbind-key -T copy-mode-vi ]         ;   bind-key -T copy-mode-vi ] send-keys -X copy-selection
    
    bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded"
    
    bind-key M split-window -h "vim ~/.tmux.conf"
    
    bind-key h split-window -v -p 50 -c '#{pane_current_path}'
    bind-key v split-window -h -p 50 -c '#{pane_current_path}'
    
    bind-key ` new-session -s work
    bind-key c new-window -c '#{pane_current_path}'
    bind-key k confirm kill-window
    
    # Quickly edit todo list
    bind-key t split-window -h "vim"
    
    bind-key K run-shell 'tmux switch-client -n \; kill-session -t "$(tmux display-message -p "#S")" || tmux kill-session'
    
    # List of plugins
    set -g @plugin 'tmux-plugins/tpm' # Tmux package manager
    set -g @plugin 'tmux-plugins/tmux-sensible'
    set -g @plugin 'tmux-plugins/tmux-open' # Open highlighted selection directly from Tmux
    set -g @plugin 'tmux-plugins/tmux-resurrect' # Restore previous sessions on reboot
    set -g @plugin 'tmux-plugins/tmux-continuum' # Restore previous sessions on reboot
    set -g @plugin 'tmux-plugins/tmux-battery' #Show battery icon/status
    set -g @plugin 'jimeh/tmux-themepack'
    set -g @plugin 'tmux-plugins/tmux-yank'
    
    # Tmux will auto-start on system boot
    set -g @continuum-boot 'on'
    set -g @continuum-boot-options 'iterm'
    set -g @continuum-restore 'on'
    set -g @continuum-save-interval '5'
    set -g @resurrect-strategy-vim 'session'
    set -g @resurrect-strategy-nvim 'session' #for Neo Vim
    
    # How to install other plugins from Github:
    # To install new plugins press: prefix + I
    # set -g @plugin 'github_username/plugin_name'
    # set -g @plugin '[email protected]/user/plugin'
    # set -g @plugin '[email protected]/user/plugin'
    
    
    # Initializes Tmux plugin manager.
    # Keep this line at the very bottom of tmux.conf.
    run-shell '~/.tmux/plugins/tpm/tpm'
    
    #bind C-l send-keys 'C-l'
    #bind-key -n C-l send-keys C-l \; send-keys -R \; clear-history
    
    # run-shell '. ./tmux-airline-dracula/airline-dracula.tmux'
    
    bind C-l send-keys 'C-l'
    
    set-option  -ga terminal-overrides  ",xterm-kitty:Tc"
    
    set -sg escape-time 0
    set-option -sg escape-time 50
    
    # Status Bar ---------------------
    #
    set -g status on
    
    # soften status bar colors
    set -g status-bg '#586e75'
    set -g status-bg black
    set -g status-fg '#eee8d5'
    
    # remove administrative debris (session name, hostname, time) in status bar
    set -g status-left ''
    set -g status-right ''
    
    set -g status-justify centre
    set -g status-style fg=colour15
    set-option -g status-left-length 50
    set-option -g status-right ""
    set -g status-left ""
    set -g status-interval 1
    
    set -g message-style fg=colour0,bg=colour3
    setw -g window-status-current-style fg=yellow,bold
    setw -g window-status-current-format ' #W '
    setw -g window-status-style fg=colour250
    setw -g window-status-format ' #W '
    setw -g window-status-bell-style fg=colour1
    
    # setw -g monitor-activity on
    
    # Notifications
    set -g visual-activity on
    
    set -g focus-events on
    
    setw -g window-status-current-style fg=yellow,bold
    #setw -g window-status-current-format '#I #W '
    setw -g window-status-current-format '#W '
    
    #setw -g window-status-format '#I #W '
    setw -g window-status-format '#W '
    
    set-option -g default-shell /usr/local/bin/fish
    

    Please find the attached log files with config enabled. tmux-client-64292.log tmux-client-65252.log tmux-out-64294.log

    Here's the sample text that I am trying to copy:

    
    > Task :api:properties
    
    ------------------------------------------------------------
    Project ':api'
    ------------------------------------------------------------
    
    allprojects: [project ':api']
    ant: [email protected]
    antBuilderFactory: [email protected]3
    archivesBaseName: api
    artifacts: org.gra[email protected]5a35cbbc
    asDynamicObject: DynamicObject for project ':api'
    autoTargetJvmDisabled: false
    baseClassLoaderScope: [email protected]d10f000
    buildDir: /Users/jaideepk/Workspace/Java/project-dependencies/api/build
    buildFile: /Users/jaideepk/Workspace/Java/project-dependencies/api/build.gradle
    buildPath: :
    buildScriptSource: [email protected]
    buildscript: [email protected]31c9
    childProjects: {}
    class: class org.gradle.api.internal.project.DefaultProject_Decorated
    classLoaderScope: [email protected]93777eb
    components: SoftwareComponentInternal set
    configurationActions: org.gradle.c[email protected]33cd0c3d
    configurationTargetIdentifier: [email protected]d
    configurations: configuration container
    convention: [email protected]
    defaultArtifacts: extension 'defaultArtifacts'
    defaultTasks: []
    deferredProjectConfiguration: [email protected]401f3
    dependencies: org.gradle.api.interna[email protected]6fc34fbc
    dependencyLocking: org.gr[email protected]323161d5
    depth: 1
    description: null
    detachedState: false
    displayName: project ':api'
    distsDirName: distributions
    distsDirectory: property(org.gradle.api.file.Directory, map(org.gradle.api.file.Directory property(org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory, /Users/jaideepk/Workspace/Java/project-dependencies/api/build)) org.gradle.api.inte[email protected]11ab0223))
    docsDir: /Users/jaideepk/Workspace/Java/project-dependencies/api/build/docs
    docsDirName: docs
    ext: or[email protected]584227c
    extensions: [email protected]
    fileOperations: [email protected]
    fileResolver: [email protected]
    gradle: build 'project-dependencies'
    group: com.example
    identityPath: :api
    inheritedScope: org.gradle.intern[email protected]3a72da
    java: extension 'java'
    javaToolchains: extension 'javaToolchains'
    layout: [email protected]
    libsDirName: libs
    libsDirectory: property(org.gradle.api.file.Directory, map(org.gradle.api.file.Directory property(org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory, /Users/jaideepk/Workspace/Java/project-dependencies/api/build)) org.gradle.api.inte[email protected]2dd139e6))
    listenerBuildOperationDecorator: org.gradl[email protected]2ac1308d
    logger: or[email protected]4f52787d
    logging: [email protected]bad
    model: project :api
    modelIdentityDisplayName: null
    modelRegistry: [email protected]
    modelSchemaStore: org.grad[email protected]584fb60d
    module: [email protected]
    mutationState: project :api
    name: api
    normalization: org.gradle.no[email protected]305b2ca5
    objects: [email protected]
    parent: root project 'project-dependencies'
    parentIdentifier: root project 'project-dependencies'
    path: :api
    pluginContext: false
    pluginManager: [email protected]bd685e2
    plugins: [[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]]
    processOperations: org.gradle.proces[email protected]5a6b1674
    project: project ':api'
    projectConfigurator: org.gra[email protected]23ed5b5b
    projectDir: /Users/jaideepk/Workspace/Java/project-dependencies/api
    projectEvaluationBroadcaster: ProjectEvaluationListener broadcast
    projectEvaluator: [email protected]772
    projectPath: :api
    projectRegistry: [email protected]
    properties: {...}
    providers: or[email protected]7db02f73
    publicType: org.gradle.api.plugins.BasePluginConvention
    rawSourceCompatibility: null
    rawTargetCompatibility: null
    reporting: extension 'reporting'
    reportsDir: /Users/jaideepk/Workspace/Java/project-dependencies/api/build/reports
    repositories: repository container
    resources: [email protected]d
    rootDir: /Users/jaideepk/Workspace/Java/project-dependencies
    rootProject: root project 'project-dependencies'
    rootScript: false
    script: false
    scriptHandlerFactory: org[email protected]68381f51
    scriptPluginFactory: [email protected]
    serviceRegistryFactory: org.gradle.internal.service.scopes.ProjectScopeServices$$Lambda$1827/[email protected]
    services: ProjectScopeServices
    sourceCompatibility: 1.8
    sourceSets: SourceSet container
    standardOutputCapture: [email protected]bad
    state: project state 'EXECUTED'
    status: integration
    subprojects: []
    targetCompatibility: 1.8
    taskThatOwnsThisObject: null
    tasks: task set
    testReportDir: /Users/jaideepk/Workspace/Java/project-dependencies/api/build/reports/tests
    testReportDirName: tests
    testResultsDir: /Users/jaideepk/Workspace/Java/project-dependencies/api/build/test-results
    testResultsDirName: test-results
    version: 1.0
    
    BUILD SUCCESSFUL in 657ms
    1 actionable task: 1 executed
    
    opened by jaideeprana 6
  • nnn fails to redraw when inside tmux

    nnn fails to redraw when inside tmux

    Issue description

    In i3, when opening a new window with splitv layout (when the second window appears in the bottom) or stacking layout (when the second window appears on top of the previous window), and then close this second window, nnn (sysutils/nnn from ports) fails to redraw.

    At first the problem seems to be nnn-related, but the same operation outside tmux causes no problem.

    Steps to reproduce

    1. in i3, open a xterm
    2. enter tmux
    3. open nnn on it
    4. change layout to splitv or stacking
    5. open a second xterm and then close
    6. check that nnn inside tmux will garble chars 6.1. follow steps 1, 3, 4, 5 and check that it's OK without tmux

    Required information

    • tmux openbsd-6.9 (-current, #39: Sun May 30 15:59:42 MDT 2021)
    • OpenBSD amd64
    • screen-256color inside and outside tmux

    Other relevant information

    • nnn v4.0

    Logs

    tmux-client-76743.log tmux-out-97861.log tmux-server-97861.log

    opened by dbolgheroni 9
  • Control mode not echoing on Cygwin

    Control mode not echoing on Cygwin

    Issue description

    On Cygwin the following worked with version 3.1b:

    Terminal 1:

    $ tmux new -s mysession
    

    Terminal 2:

    $ tmux -C attach -t mysession
    split-window
    split-window -h
    

    Terminal 1:

    $ echo "Hello, World!"
    

    With this sequence of commands, the window in Terminal 1 would split in three panes and in Terminal 2 the commands and output coming from Terminal one would be echoed with the %output prefix.

    However, now with version 3.2 (and master) this last part doesn't work anymore. The window in Terminal 1 still gets split into three panes, however the Terminal 2 does not echo anymore and is also not responding to CTRL-C.

    Required information

    $ uname -sp && tmux -V && echo $TERM
    CYGWIN_NT-10.0 unknown
    tmux 3.2
    xterm-256color
    

    Log files

    tmux-server-5446-TERMINAL1.log tmux-client-5444-TERMINAL1.log tmux-out-5446-TERMINAL1.log tmux-client-5486-TERMINAL2.log

    opened by wildmichael 8
  • Correctly interpret `send-keys 0x0` as the null character

    Correctly interpret `send-keys 0x0` as the null character

    This was failing due to udp[0].size being zero and thus tmux ended up sending the literal string 0x0 in the next if statement.

    Check for u being equal to 0 before assuming udp[0].size == 0 was a failure and return 0 if so.

    opened by lanza 1
  • iTerm2 + `tmux -CC` causes tmux to interpret ctrl+space and `send-keys 0x0` to output the literal characters `0x0`

    iTerm2 + `tmux -CC` causes tmux to interpret ctrl+space and `send-keys 0x0` to output the literal characters `0x0`

    key_string_lookup_string takes in 0x0 as the input string and attempts to map it via wctomb which just returns an empty string. utf8_fromcstr then takes this in and incidentally passes back NULL and thus the udp[0].size to be 0 and thus the function returns KEYC_UNKNOWN.

    Then the function exists and we go to the next if (literal) branch which just prints the string literally.

    #2724 is one way to fix it.

    opened by lanza 0
  • Mouse scrolling broken in nested tmux sessions

    Mouse scrolling broken in nested tmux sessions

    Issue description

    After upgrading from 3.1c to 3.2, mouse handling seems broken in my use case, which involves nesting (two levels) of tmux. Mouse events (scrolling, in particular) are passed to the outermost tmux only, whereas previously they would be passed to whichever pane had focus. I've tried to read the changelog (to the point that my eyes are now running ;), but apart from the "it's a lot", nothing obvious stands out.

    TERM seems to be set to screen inside tmux. This is not something I'm doing in login/profile/tmux conf files. If I override this inside the outer tmux, and set xterm-256color, mouse seems to work (from a brief test), but as has always been the case, this breaks any number of other things so it's not really a solution.

    Tested on same OS release and same tmux conf etc., but 3.1c, and confirmed it works there.

    Required information

    tmux 3.2 FreeBSD 13.0-RELEASE-p1 amd64 Inside: TERM=screen Outside: TERM=xterm-256color

    Logs attached. tmux-server-63888.log tmux-client-63886.log tmux-out-63888.log

    opened by ltning 18
Releases(3.2)
Owner
tmux
tmux terminal multiplexer
tmux
:cherry_blossom: A command-line fuzzy finder

fzf is a general-purpose command-line fuzzy finder. It's an interactive Unix filter for command-line that can be used with any list; files, command hi

Junegunn Choi 37.1k Jun 6, 2021
Magnificent app which corrects your previous console command.

The Fuck The Fuck is a magnificent app, inspired by a @liamosaur tweet, that corrects errors in previous console commands. Is The Fuck too slow? Try t

Vladimir Iakovlev 62.3k Jun 5, 2021
:mag: Google from the terminal

googler is a power tool to Google (web, news, videos and site search) from the command-line. It shows the title, URL and abstract for each result, whi

Piña Colada 5.2k Jun 6, 2021
:bookmark: Browser-independent bookmark manager

buku buku in action! Introduction buku is a powerful bookmark manager written in Python3 and SQLite3. When I started writing it, I couldn't find a fle

Piña Colada 4.5k Jun 6, 2021
:duck: DuckDuckGo from the terminal

ddgr ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal. While googler is extremely popular among cmdline users, in many

Piña Colada 2.1k Jun 5, 2021
cloc counts blank lines, comment lines, and physical lines of source code in many programming languages.

cloc Count Lines of Code cloc counts blank lines, comment lines, and physical lines of source code in many programming languages. Latest release: v1.9

null 11.7k Jun 7, 2021
Command-line program to download videos from YouTube.com and other video sites

youtube-dl - download videos from youtube.com or other video platforms INSTALLATION DESCRIPTION OPTIONS CONFIGURATION OUTPUT TEMPLATE FORMAT SELECTION

youtube-dl 95.9k Jun 5, 2021
:zap: A new cd command that helps you navigate faster by learning your habits.

z.lua A command line tool which helps you navigate faster by learning your habits ⚡ An alternative to z.sh with windows and posix shells support and v

Linwei 2k Jun 6, 2021
:speech_balloon: Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc.

Translate Shell Translate Shell (formerly Google Translate CLI) is a command-line translator powered by Google Translate (default), Bing Translator, Y

Mort Yao 5k Jun 6, 2021
Command-line program to download image galleries and collections from several image hosting sites

gallery-dl gallery-dl is a command-line program to download image galleries and collections from several image hosting sites (see Supported Sites). It

Mike Fährmann 3.4k Jun 7, 2021
The next gen ls command

LSD (LSDeluxe) Table of Contents Description Screenshot Installation Configuration External Configurations Required Optional F.A.Q. Contributors Credi

Pierre Peltier 5.8k Jun 6, 2021
A smarter cd command for your terminal

zoxide A smarter cd command for your terminal zoxide is a blazing fast replacement for your cd command, inspired by z and z.lua. It keeps track of the

Ajeet D'Souza 2.7k Jun 6, 2021
A Ruby gem that beautifies the terminal's ls command, with color and font-awesome icons. :tada:

Color LS A Ruby script that colorizes the ls output with color and icons. Here are the screenshots of working example on an iTerm2 terminal (Mac OS),

Athitya Kumar 3.7k Jun 6, 2021