Processo a ser executado no modo de tela cheia

1

Estou tentando desenvolver um aplicativo de bate-papo cuja interface é baseada em terminal. Para isso, eu tenho brincado com os comandos screen e tmux .

No entanto, eu encontrei uma semelhança com os dois: meus comandos não são executados no modo de tela cheia, como se eu ressejo o suficiente nos frames / panels / pane / windows, ainda posso visualizar o histórico e o shell .

Como eu poderia fazer meu programa rodar no modo de tela inteira exatamente como o vi, por exemplo?

Obrigado!

    
por tehAnswer 15.02.2018 / 21:12

1 resposta

2

Então você quer criar um aplicativo TUI (interface de usuário baseada em texto)? Como a página da TUI na Wikipédia diz:

In Unix-like operating systems, TUIs are often constructed using the terminal control library curses, or ncurses, a mostly compatible library.

Uma maneira fácil de interagir com ncurses é com a ferramenta de linha de comando tput . E com isso podemos abordar sua pergunta específica sobre um "modo de tela cheia". Geralmente é feito ativando uma tela secundária (que deve estar disponível em qualquer emulador de terminal decente):

tput smcup

A tela atual ficará oculta (por exemplo, você não poderá rolar para cima e ver a saída anterior) e, na nova tela "nova", renderizará sua inscrição. Quando as saídas são revertidas para a tela principal com:

tput rmcup

... e tudo será restaurado como era antes.

Aqui está uma amostra de outros recursos tput

tput cup 23 4  # move the cursor to row 23, column 4 of your terminal

tput ed  # clear to end of screen

tput setaf 2  # set foreground color to bright green

tput cubl  # move cursor left one space

tput rev  # turn on reverse video mode

tput sc  # save the cursor position
tput rc  # restore the cursor position

Veja man tput e man 5 terminfo . Para este último, você vai querer rolar para a seção Predefined Capabilities em particular.

E há muitos recursos interessantes on-line para saber mais, como o link

(Observe que nenhum dos itens acima está relacionado a se você está ou não usando tmux ou algo semelhante.)

    
por 17.02.2018 / 12:58

Tags