O que significa definir o “título de ícone” de um terminal?

4

Eu geralmente vejo a sintaxe para definir o título do terminal como (algo como):

echo -e '\e]0;Some Title\a'

Mas notei que esta resposta usava 2 em vez de 0 , o que me levou a fazer uma pouco mais de cavar. De acordo com este documento , você pode definir tanto o "nome do ícone" quanto o "título da janela" com este sintaxe:

·  ESC]0;stringBEL -- Set icon name and window title to string

·  ESC]1;stringBEL -- Set icon name to string

·  ESC]2;stringBEL -- Set window title to string

   where ESC is the escape character (3), and BEL is the bell
   character (%bl0ck_qu0te%7).

Printing one of these sequences within the xterm will cause the window
or icon title to be changed.

Mas isso não explica exatamente o que significa "título do ícone" ou "nome do ícone". Quando eu testo, não vejo nenhuma diferença entre 0 e 2 , e 1 não aparece para fazer nada.

Então, qual é o "título do ícone" e o que deve acontecer quando 0 ou 1 é chamado?

    
por dimo414 25.02.2016 / 16:04

2 respostas

2

Este é o código X11, talvez ignorado ou não implementado pelos gerenciadores de janelas modernos. Felizmente, eu não corro um gerenciador de janelas moderno, então com o FVWM no OpenBSD, eu posso definir o nome do ícone como blah , então minimizar o xterm:

Que produz um ícone com esse nome.

    
por 25.02.2016 / 18:19
2

O título do Xterm HOW-TO é simplificado. De Sequências de controle do XTerm

OSC Ps ; Pt ST
OSC Ps ; Pt BEL

        Ps = 0  -> Change Icon Name and Window Title to Pt.
        Ps = 1  -> Change Icon Name to Pt.
        Ps = 2  -> Change Window Title to Pt.

( OSC poderia ser escape ] ou 0x9d).

Alguns aplicativos (como screen ) sabem sobre as três possibilidades (0 = ambos, 1 = ícone, 2 = título), embora demore um pouco para chegar a esse ponto (verter correção ).

De acordo com a página de manual XStoreName

The XStoreName() function assigns the name passed to window_name to the specified window. A window manager can display the window name in some prominent place, such as the title bar, to allow users to identify windows easily. Some window managers may display a window's name in the window's icon, although they are encouraged to use the window's icon name if one is provided by the application. If the string is not in the Host Portable Character Encoding, the result is implementation dependent.

A chamada define uma propriedade do gerenciador de janelas. Muitas propriedades do gerenciador de janelas são opcionais, permitindo diferentes implementações. Os documentos do ICCM WM_ICON_NAME como

The WM_ICON_NAME property is an uninterpreted string that the client wants to be displayed in association with the window when it is iconified (for example, in an icon label). In other respects, including the type, it is similar to WM_NAME. For obvious geometric reasons, fewer characters will normally be visible in WM_ICON_NAME than WM_NAME.

Clients should not attempt to display this string in their icon pixmaps or windows; rather, they should rely on the window manager to do so.

A codificação mencionada para XStoreName é uma pista. Não é UTF-8. Após vários anos (por volta do início dos anos 2000), da introdução de strings Unicode em aplicativos projetados para ISO-8859-1 (Latin-1), por exemplo, esta gem , alguns desenvolvedores de gerenciadores de janelas criaram Dicas do Gerenciador de Janela Estendida para corrigir a situação e fornecer extensões. Ele usa propriedades de janelas diferentes, por exemplo, _NET_WM_ICON_NAME

The Client SHOULD set this to the title of the icon for this window in UTF-8 encoding. If set, the Window Manager should use this in preference to WM_ICON_NAME.

Novamente, isso é opcional. Desenvolvedores de desktop podem ter idéias diferentes sobre como mostrar ícones, e as imagens gráficas parecem ter recebido mais atenção, geralmente à custa de acessibilidade . No entanto, ainda é parte do padrão, usado por alguns gerenciadores de janelas, como fvwm, twm, ctwm. Se alguém fizesse uma versão acessível do KDE ou do GNOME, eles poderiam usar essa propriedade.

    
por 26.02.2016 / 00:12