Class Tmux


  • public class Tmux
    extends java.lang.Object
    Terminal multiplexer
    • Field Detail

      • CMD_SPLIT_WINDOW

        public static final java.lang.String CMD_SPLIT_WINDOW
        See Also:
        Constant Field Values
      • CMD_DISPLAY_PANES

        public static final java.lang.String CMD_DISPLAY_PANES
        See Also:
        Constant Field Values
      • CMD_PREVIOUS_WINDOW

        public static final java.lang.String CMD_PREVIOUS_WINDOW
        See Also:
        Constant Field Values
      • CMD_LIST_WINDOWS

        public static final java.lang.String CMD_LIST_WINDOWS
        See Also:
        Constant Field Values
      • WINDOW_CLOCK_TABLE

        private static final int[][][] WINDOW_CLOCK_TABLE
      • dirty

        private final java.util.concurrent.atomic.AtomicBoolean dirty
      • resized

        private final java.util.concurrent.atomic.AtomicBoolean resized
      • terminal

        private final Terminal terminal
      • display

        private final Display display
      • err

        private final java.io.PrintStream err
      • term

        private final java.lang.String term
      • runner

        private final java.util.function.Consumer<Terminal> runner
      • windowsId

        private java.lang.Integer windowsId
      • activeWindow

        private int activeWindow
      • running

        private final java.util.concurrent.atomic.AtomicBoolean running
      • size

        private final Size size
      • identify

        private boolean identify
      • executor

        private java.util.concurrent.ScheduledExecutorService executor
      • clockFuture

        private java.util.concurrent.ScheduledFuture<?> clockFuture
      • serverOptions

        private final java.util.Map<java.lang.String,​java.lang.String> serverOptions
      • keyMap

        private KeyMap<java.lang.Object> keyMap
      • ACTIVE_COLOR

        int ACTIVE_COLOR
      • INACTIVE_COLOR

        int INACTIVE_COLOR
      • CLOCK_COLOR

        int CLOCK_COLOR
    • Constructor Detail

      • Tmux

        public Tmux​(Terminal terminal,
                    java.io.PrintStream err,
                    java.util.function.Consumer<Terminal> runner)
             throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • createKeyMap

        protected KeyMap<java.lang.Object> createKeyMap​(java.lang.String prefix)
      • createEmptyKeyMap

        protected KeyMap<java.lang.Object> createEmptyKeyMap​(java.lang.String prefix)
      • run

        public void run()
                 throws java.io.IOException
        Throws:
        java.io.IOException
      • redrawLoop

        private void redrawLoop()
      • setDirty

        private void setDirty()
      • inputLoop

        private void inputLoop()
      • handleResize

        private void handleResize()
      • execute

        public void execute​(java.io.PrintStream out,
                            java.io.PrintStream err,
                            java.lang.String command)
                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • execute

        public void execute​(java.io.PrintStream out,
                            java.io.PrintStream err,
                            java.util.List<java.lang.String> command)
                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • listWindows

        protected void listWindows​(java.io.PrintStream out,
                                   java.io.PrintStream err,
                                   java.util.List<java.lang.String> args)
                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • previousWindow

        protected void previousWindow​(java.io.PrintStream out,
                                      java.io.PrintStream err,
                                      java.util.List<java.lang.String> args)
                               throws java.lang.Exception
        Throws:
        java.lang.Exception
      • nextWindow

        protected void nextWindow​(java.io.PrintStream out,
                                  java.io.PrintStream err,
                                  java.util.List<java.lang.String> args)
                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • newWindow

        protected void newWindow​(java.io.PrintStream out,
                                 java.io.PrintStream err,
                                 java.util.List<java.lang.String> args)
                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • setOption

        protected void setOption​(java.io.PrintStream out,
                                 java.io.PrintStream err,
                                 java.util.List<java.lang.String> args)
                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • bindKey

        protected void bindKey​(java.io.PrintStream out,
                               java.io.PrintStream err,
                               java.util.List<java.lang.String> args)
                        throws java.lang.Exception
        Throws:
        java.lang.Exception
      • unbindKey

        protected void unbindKey​(java.io.PrintStream out,
                                 java.io.PrintStream err,
                                 java.util.List<java.lang.String> args)
                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • listKeys

        protected void listKeys​(java.io.PrintStream out,
                                java.io.PrintStream err,
                                java.util.List<java.lang.String> args)
                         throws java.lang.Exception
        Throws:
        java.lang.Exception
      • sendKeys

        protected void sendKeys​(java.io.PrintStream out,
                                java.io.PrintStream err,
                                java.util.List<java.lang.String> args)
                         throws java.lang.Exception
        Throws:
        java.lang.Exception
      • clockMode

        protected void clockMode​(java.io.PrintStream out,
                                 java.io.PrintStream err,
                                 java.util.List<java.lang.String> args)
                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • displayPanes

        protected void displayPanes​(java.io.PrintStream out,
                                    java.io.PrintStream err,
                                    java.util.List<java.lang.String> args)
                             throws java.lang.Exception
        Throws:
        java.lang.Exception
      • resizePane

        protected void resizePane​(java.io.PrintStream out,
                                  java.io.PrintStream err,
                                  java.util.List<java.lang.String> args)
                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • selectPane

        protected void selectPane​(java.io.PrintStream out,
                                  java.io.PrintStream err,
                                  java.util.List<java.lang.String> args)
                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • sendPrefix

        protected void sendPrefix​(java.io.PrintStream out,
                                  java.io.PrintStream err,
                                  java.util.List<java.lang.String> args)
                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • splitWindow

        protected void splitWindow​(java.io.PrintStream out,
                                   java.io.PrintStream err,
                                   java.util.List<java.lang.String> args)
                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • layoutResize

        protected void layoutResize()
      • redraw

        protected void redraw()
      • print

        private void print​(long[] screen,
                           Tmux.VirtualConsole terminal,
                           java.lang.String id,
                           int color)
      • drawBorderChar

        private void drawBorderChar​(long[] screen,
                                    Size size,
                                    int x,
                                    int y,
                                    long attr,
                                    int c)
      • addBorder

        private int addBorder​(int c,
                              int oldc)
      • findMatch

        private static int findMatch​(java.lang.String layout,
                                     char c0,
                                     char c1)