docs: def _term_size(self):
          """
          Method returns lines and columns according to terminal size
          """
          for fd in (0, 1, 2):
              try:
                  return self._ioctl_GWINSZ(fd)
              except:
                  pass
          # try os.ctermid()
          try:
              fd = os.open(os.ctermid(), os.O_RDONLY)
              try:
                  return self._ioctl_GWINSZ(fd)
              finally:
                  os.close(fd)
          except:
              pass
          # try `stty size`
          try:
              return tuple(int(x) for x in os.popen("stty size", "r").read().split())
          except:
              pass
          # try environment variables
          try:
              return tuple(int(os.getenv(var)) for var in ("LINES", "COLUMNS"))
          except:
              pass
          # i give up. return default.
          return (25, 80)