6.9. Usando o X11

6.9.1. Componentes X.Org

A implementação do X11 disponível na Coleção de Ports é o X.Org. Se o aplicativo depender de componentes X, defina USE_XORG na lista de componentes necessários. Uma lista completa pode ser encontrada em Tabela 6.7, “Componentes Disponíveis do X.Org”. Uma lista sempre atualizada pode ser encontrada em /usr/ports/Mk/bsd.xorg.mk.

Tabela 6.7. Componentes Disponíveis do X.Org
NomeDescrição
dmxBiblioteca de extensão DMX
fontencBiblioteca fontenc
fontutilCrie um índice de arquivos de fontes X em um diretório
iceBiblioteca Inter Client Exchange para X11
libfsBiblioteca FS
oldxAntiga Biblioteca X
pciaccessBiblioteca Genérica de acesso ao PCI
pixmanBiblioteca de manipulação de pixels de baixo nível
smBiblioteca de Gerenciamento de Sessão para X11
x11Biblioteca X11
xauBiblioteca do Protocolo de Autenticação para o X11
xawBiblioteca de Widgets do X Athena
xaw6Biblioteca de Widgets do X Athena
xaw7Biblioteca de Widgets do X Athena
xbitmapsArquivos bitmaps do X.Org
xcbBiblioteca do protocolo X C-language Binding (XCB)
xcompositeBiblioteca de extensão X Composite
xcursorBiblioteca de carregamento do cursor X no lado do cliente
xdamageBiblioteca de extensão X Damage
xdmcpBiblioteca do Protocolo de Controle do X Display Manager
xevieBiblioteca Xevie
xextBiblioteca de Extensão X11
xfixesBiblioteca de extensão X Fixes
xfontBiblioteca de fontes do X
xfont2Biblioteca de fontes do X versão 2.x
xfontcacheBiblioteca Xfontcache
xftAPI de fontes do lado do cliente para aplicativos X
xiBiblioteca de extensão X Input
xineramaBiblioteca X11 Xinerama
xkbfileBiblioteca XKB
xkbuiBiblioteca xkbui
xmuBiblioteca de Utilitários Diversos do X
xmuuBiblioteca de Utilitários Diversos do X
xorg-macrosMacros aclocal de desenvolvimento X.Org
xorg-serverServidor X do X.Org e programas relacionados
xorgprotoCabeçalhos de protocolo do X.Org
xpBiblioteca de impressão do X
xpmBiblioteca Pixmap do X
xprintapputilBiblioteca XprintAppUtil
xprintutilBiblioteca XprintUtil
xrandrBiblioteca de extensão X Resize e Rotate
xrenderBiblioteca de extensão X Render
xresBiblioteca de uso X Resource
xscrnsaverBiblioteca XScrnSaver
xshmfenceMemória compartilhada 'SyncFence' primitiva de sincronização
xtBiblioteca X Toolkit
xtransCódigo de rede abstrato para X
xtrapBiblioteca XTrap
xtstExtensão X Test
xvBiblioteca de Extensão X Video
xvmcBiblioteca X Video Extension Motion Compensation
xxf86dgaX DGA Extension
xxf86miscExtensão X XF86-Misc
xxf86vmExtensão X Vidmode

O Projeto Mesa é um esforço para fornecer implementação gratuita do OpenGL. Para especificar uma dependência em vários componentes deste projeto, use a variável USE_GL. Veja Seção 17.30, “gl para a lista completa dos componentes disponíveis. Para compatibilidade com versões anteriores, o valor yes direciona para glu.

Exemplo 6.14. Exemplo USE_XORG
USES=		gl
USE_GL=		glu
USE_XORG=	xrender xft xkbfile xt xaw

Tabela 6.8. Variáveis ​​para Ports Que Usam X
USES= imakeO port usa imake
XMKMFDefinir o caminho de xmkmf se não no PATH. Padrão para xmkmf -a.

Exemplo 6.15. Usando Variáveis ​​Relacionadas ao X11
# Use some X11 libraries
USE_XORG=	x11 xpm

6.9.2. Ports que Requerem Motif

Se o port requer uma biblioteca Motif, defina USES=motif no Makefile. A implementação padrão do Motif é x11-toolkits/open-motif. Os usuários podem escolher o x11-toolkits/lesstif em vez disso, definindo WANT_LESSTIF no seu make.conf.

O MOTIFLIB será definido por motif.mk para referenciar a biblioteca Motif apropriada. Por favor, corrija o fonte do port para usar ${MOTIFLIB} onde quer que a biblioteca Motif seja referenciada no Makefile original ou no Imakefile.

Existem dois casos comuns:

  • Se o port se referir à biblioteca Motif como -lXm em seu Makefile ou Imakefile, substitua ${MOTIFLIB} por isso.

  • Se o port usa XmClientLibs em seu Imakefile, mude para ${MOTIFLIB} ${XTOOLLIB} ${XLIB}.

Observe que o MOTIFLIB (geralmente) se expande para -L/usr/local/lib -lXm -lXp ou /usr/local/lib/libXm.a, então não há necessidade de adicionar -L ou -l na frente.

6.9.3. Fontes X11

Se o port instalar fontes para o X Window System, coloque-as em LOCALBASE/lib/X11/fontes/local.

6.9.4. Obtendo um DISPLAY Falso com Xvfb

Algumas aplicações requerem uma tela X11 funcional para que a compilação seja bem-sucedida. Isso representa um problema para as máquinas que operam sem um monitor. Quando essa variável é usada, a infraestrutura de compilação iniciará o X virtual framebuffer. Um DISPLAY funcional é então passado para a compilação. Veja USES=exibição para os possíveis argumentos.

USES=	display

6.9.5. Entradas de Desktop

Entradas de desktop (um padrão Freedesktop) fornecem uma maneira de ajustar automaticamente os recursos do desktop quando um novo programa é instalado, sem a necessidade de intervenção do usuário. Por exemplo, programas recém-instalados aparecem automaticamente nos menus de aplicativos de ambientes de desktop compatíveis. Entradas de Desktop surgiram no ambiente de desktop GNOME, mas agora são um padrão e também funcionam com o KDE e o Xfce. Esta pitada de automação fornece um benefício real para o usuário, e as entradas de desktop são incentivadas para aplicativos que podem ser usados ​​em um ambiente desktop.

6.9.5.1. Usando Arquivos .desktop Pré-definidos

Ports que incluem *.desktop pré-definidos devem incluir estes arquivos no pkg-plist e instalá-los no diretório $LOCALBASE/share/applications. A macro INSTALL_DATA é útil para instalar esses arquivos.

6.9.5.2. Atualizando o Banco de Dados do Desktop

Se um port tiver uma entrada MimeType em seu portname.desktop, o banco de dados do desktop deve ser atualizado após a instalação e desinstalação. Para fazer isso, defina USES= desktop-file-utils.

6.9.5.3. Criando Entradas de Desktop com DESKTOP_ENTRIES

As entradas desktop podem ser facilmente criadas para aplicativos usando DESKTOP_ENTRIES. Um arquivo chamado name.desktop será criado, instalado e adicionado ao pkg-plist automaticamente. A sintaxe é:

DESKTOP_ENTRIES=	"NAME" "COMMENT" "ICON" "COMMAND" "CATEGORY" StartupNotify

A lista de possíveis categorias está disponível no Site Freedesktop. StartupNotify indica se a aplicação é compatível com notificações de inicialização. Estes são tipicamente um indicador gráfico como um relógio que aparece no ponteiro do mouse, menu ou painel para dar ao usuário uma indicação quando um programa está sendo iniciado. Um programa que seja compatível com as notificações de inicialização limpa o indicador depois de iniciado. Programas que não são compatíveis com as notificações de inicialização nunca limpariam o indicador (possivelmente confundindo e enfurecendo o usuário) e devem ter StartupNotify definido como false então o indicador não é mostrado.

Exemplo:

DESKTOP_ENTRIES=	"ToME" "Roguelike game based on JRR Tolkien's work" \
			"${DATADIR}/xtra/graf/tome-128.png" \
			"tome -v -g" "Application;Game;RolePlaying;" \
			false

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.